CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

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