ÎncepețiÎncepe gratuit

Analiza R-Squared al unei regresii

R-squared măsoară cât de bine se potrivesc datele cu dreapta de regresie, prin urmare R-squared dintr-o regresie simplă este legat de corelația dintre cele două variabile. Mai precis, magnitudinea corelației este rădăcina pătrată a lui R-squared, iar semnul corelației este semnul coeficientului de regresie.

În acest exercițiu, vei începe să folosești pachetul statistic statsmodels, care realizează o mare parte din modelarea statistică și testarea regăsite în R și în pachete software precum SAS și MATLAB.

Vei prelua două serii, x și y, vei calcula corelația dintre ele, apoi vei regresa y față de x folosind funcția OLS(y,x) din biblioteca statsmodels.api (reține că variabila dependentă y este primul argument). Majoritatea regresiilor liniare includ un termen constant, adică interceptul (\(\small \alpha\) din regresia \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Pentru a include un termen constant cu funcția OLS(), trebuie să adaugi o coloană de 1 în partea dreaptă a regresiei.

Modulul statsmodels.api a fost importat pentru tine ca sm.

Acest exercițiu face parte din cursul

Analiza seriilor de timp în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează corelația dintre x și y folosind metoda .corr().
  • Rulează o regresie:
    • Mai întâi, convertește seria x într-un DataFrame dfx.
    • Adaugă o constantă folosind sm.add_constant() și atribuie rezultatul variabilei dfx1.
    • Regresează y față de dfx1 folosind sm.OLS().fit().
  • Afișează rezultatele regresiei și compară R-squared cu corelația.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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())
Editează și rulează codul