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
Anleitung zur Übung
- Berechne die Korrelation zwischen
xundymit der Methode.corr(). - Führe eine Regression aus:
- Wandle die Series
xzuerst in einen DataFramedfxum. - Füge mit
sm.add_constant()eine Konstante hinzu und speichere das Ergebnis indfx1. - Regrediere
yaufdfx1mitsm.OLS().fit().
- Wandle die Series
- 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())