LoslegenKostenlos loslegen

Den R-Quadrat-Wert einer Regression betrachten

R-Quadrat misst, wie gut die Daten zur Regressionsgeraden passen. Daher hängt das R-Quadrat in einer einfachen Regression mit der Korrelation zwischen den beiden Variablen zusammen. Genauer gesagt ist der Betrag der Korrelation die Quadratwurzel des R-Quadrat, und das Vorzeichen der Korrelation entspricht dem Vorzeichen des Regressionskoeffizienten.

In dieser Übung beginnst du mit dem Statistikpaket statsmodels, das einen großen Teil der statistischen Modellierung und Tests abbildet, die du aus R und Softwarepaketen wie SAS und MATLAB kennst.

Du wirst zwei Reihen, x und y, nehmen, ihre Korrelation berechnen und anschließend y auf x mit der Funktion OLS(y,x) aus der Bibliothek statsmodels.api regressieren (beachte, dass die abhängige Variable y als erstes Argument übergeben wird). Die meisten linearen Regressionen enthalten einen Konstanten-Term, also den Achsenabschnitt (das \(\small \alpha\) in der Regression \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Um mithilfe der Funktion OLS() eine Konstante einzubeziehen, musst du der rechten Seite der Regression eine Spalte mit 1en hinzufügen.

Das Modul statsmodels.api wurde bereits als sm importiert.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Korrelation zwischen x und y mit der Methode .corr().
  • Führe eine Regression aus:
    • Wandle die Series x zuerst in einen DataFrame dfx um.
    • Füge mit sm.add_constant() eine Konstante hinzu und speichere das Ergebnis in dfx1.
    • Regrediere y auf dfx1 mit sm.OLS().fit().
  • Gib die Regressionsergebnisse aus und vergleiche R-Quadrat mit der Korrelation.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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())
Code bearbeiten und ausführen