Začněte nyníZačněte zdarma

R-squared regresního modelu

R-squared (koeficient determinace) měří, jak těsně data přiléhají k regresní přímce. V jednoduché regresi proto úzce souvisí s korelací mezi dvěma proměnnými – konkrétně platí, že absolutní hodnota korelace je odmocninou R-squared a znaménko korelace odpovídá znaménku regresního koeficientu.

V tomto cvičení začneš pracovat se statistickým balíčkem statsmodels, který pokrývá velkou část statistického modelování a testování, jakou znáš třeba z R nebo softwarových nástrojů jako SAS a MATLAB.

Vezmeš dvě řady, x a y, vypočítáš jejich korelaci a poté provenedeš regresi y na x pomocí funkce OLS(y,x) z knihovny statsmodels.api (nezapomeň, že závislá proměnná y je prvním argumentem). Většina lineárních regresí obsahuje konstantní člen, tedy intercept (\(\small \alpha\) v rovnici \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Aby funkce OLS() konstantu zahrnula, musíš na pravou stranu regrese přidat sloupec jedniček.

Modul statsmodels.api je již naimportován jako sm.

Toto cvičení je součástí kurzu

Analýza časových řad v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej korelaci mezi x a y pomocí metody .corr().
  • Proveď regresi:
    • Nejprve převeď Series x na DataFrame dfx.
    • Přidej konstantu pomocí sm.add_constant() a výsledek ulož do dfx1.
    • Regreduj y na dfx1 pomocí sm.OLS().fit().
  • Vypiš výsledky regrese a porovnej R-squared s hodnotou korelace.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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())
Upravit a spustit kód