Examiner le R-carré d’une régression
Le R-carré mesure à quel point les données s’ajustent à la droite de régression ; ainsi, dans une régression simple, le R-carré est lié à la corrélation entre les deux variables. En particulier, la valeur absolue de la corrélation est la racine carrée du R-carré et le signe de la corrélation est celui du coefficient de régression.
Dans cet exercice, vous allez commencer à utiliser le paquet statistique statsmodels, qui réalise une grande partie de la modélisation et des tests statistiques que l’on trouve dans R et des logiciels comme SAS et MATLAB.
Vous allez prendre deux séries, x et y, calculer leur corrélation, puis régresser y sur x à l’aide de la fonction OLS(y,x) de la bibliothèque statsmodels.api (notez que la variable dépendante, située à gauche, y, est le premier argument). La plupart des régressions linéaires contiennent un terme constant, 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 membre de droite de la régression.
Le module statsmodels.api a été importé pour vous sous le nom sm.
Cet exercice fait partie du cours
Analyse des séries temporelles en Python
Instructions
- Calculez la corrélation entre
xetyavec la méthode.corr(). - Exécutez une régression :
- Convertissez d’abord la Series
xen DataFramedfx. - Ajoutez une constante avec
sm.add_constant(), et assignez le résultat àdfx1. - Régresssez
ysurdfx1à l’aide desm.OLS().fit().
- Convertissez d’abord 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 cet exemple de code.
# 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())