CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Calculez la corrélation entre x et y avec la méthode .corr().
  • Exécutez une régression :
    • Convertissez d’abord la Series x en DataFrame dfx.
    • Ajoutez une constante avec sm.add_constant(), et assignez le résultat à dfx1.
    • Régresssez y sur dfx1 à l’aide de sm.OLS().fit().
  • 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())
Modifier et exécuter le code