Examiner le R-carré d'une régression
Le R-carré mesure dans quelle mesure les données suivent la droite de régression; dans une régression simple, il est donc lié à la corrélation entre les deux variables. Plus précisément, la valeur absolue de la corrélation est la racine carrée du R-carré, et le signe de la corrélation correspond au signe du coefficient de régression.
Dans cet exercice, vous commencerez à utiliser le progiciel statistique statsmodels, qui effectue une grande partie de la modélisation et des tests statistiques que l'on retrouve dans R et dans des logiciels comme SAS et MATLAB.
Vous prendrez deux séries, x et y, calculerez leur corrélation, puis ferez la régression de y sur x à l'aide de la fonction OLS(y,x) de la bibliothèque statsmodels.api (notez que la variable dépendante, ou variable du côté droit, y, est le premier argument). La plupart des régressions linéaires comportent une constante, qui est l'ordonnée à l'origine (le \(\small \alpha\) dans la régression \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Pour inclure une constante avec la fonction OLS(), vous devez ajouter une colonne de 1 au côté droit de la régression.
Le module statsmodels.api a été importé pour vous sous le nom sm.
Cette activité fait partie du cours
Analyse des séries chronologiques en Python
Instructions de l’exercice
- Calculez la corrélation entre
xetyà l'aide de la méthode.corr(). - Exécutez une régression :
- Commencez par convertir la Series
xen DataFramedfx. - Ajoutez une constante avec
sm.add_constant(), et assignez le résultat àdfx1. - Réalisez la régression de
ysurdfx1à l'aide desm.OLS().fit().
- Commencez par convertir la Series
- Affichez les résultats de la régression et comparez le R-carré avec la corrélation.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Import the statsmodels module
import statsmodels.api as sm
# Compute correlation of x and y
correlation = ___
print("The correlation between x and y is %4.2f" %(correlation))
# Convert the Series x to a DataFrame and name the column x
dfx = pd.DataFrame(x, columns=['x'])
# Add a constant to the DataFrame dfx
dfx1 = sm.add_constant(___)
# Regress y on dfx1
result = sm.OLS(___, ___).fit()
# Print out the results and look at the relationship between R-squared and the correlation above
print(result.summary())