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
Pokyny k cvičení
- Vypočítej korelaci mezi
xaypomocí metody.corr(). - Proveď regresi:
- Nejprve převeď Series
xna DataFramedfx. - Přidej konstantu pomocí
sm.add_constant()a výsledek ulož dodfx1. - Regreduj
ynadfx1pomocísm.OLS().fit().
- Nejprve převeď Series
- 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())