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

Bootstrapping v regresi

Podívejme se teď, jak bootstrapping funguje v kontextu regrese. Bootstrapping pomáhá odhadnout nejistotu u nestandardních odhadů. Vezměme si například statistiku \(R^{2}\) spojenou s regresí. Při obyčejné metodě nejmenších čtverců dostaneš konkrétní hodnotu \(R^{2}\), ale jak získat 95% interval spolehlivosti (CI) pro \(R^2\)?

Prohlédni si DataFrame df se závislou proměnnou \(y\) a dvěma nezávislými proměnnými \(X1\) a \(X2\) pomocí df.head(). Regresi jsme už předem natrénovali pomocí statsmodels (sm) takto:

reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()

Výsledky si prohlédni pomocí reg_fit.summary() — zjistíš, že \(R^{2}=0.3504\). Teď pomocí bootstrappingu vypočítej 95% CI.

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

Statistické simulace v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytáhni bootstrap vzorek z původního datasetu pomocí metody sample() pandas DataFrame. Počet řádků musí být stejný jako v původním DataFrame.
  • Natrénuj regresi podobně jako reg_fit() pomocí sm.OLS() a získej statistiku \(R^{2}\) pomocí parametru rsquared.
  • Přidej hodnotu \(R^{2}\) do seznamu rsquared_boot.
  • Vypočítej 95% CI pro rsquared_boot jako r_sq_95_ci pomocí np.percentile().

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

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

rsquared_boot, coefs_boot, sims = [], [], 1000
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()

# Run 1K iterations
for i in range(sims):
    # First create a bootstrap sample with replacement with n=df.shape[0]
    bootstrap = ____
    # Fit the regression and append the r square to rsquared_boot
    rsquared_boot.append(____(bootstrap['y'],bootstrap.iloc[:,1:]).fit().rsquared)

# Calculate 95% CI on rsquared_boot
r_sq_95_ci = ____
print("R Squared 95% CI = {}".format(r_sq_95_ci))
Upravit a spustit kód