1. Учиться
  2. /
  3. Courses
  4. /
  5. Pythonで学ぶ統計シミュレーション

Connected

Exercise

回帰のブートストラップ

ここでは、回帰にブートストラップを適用する方法を見ていきます。ブートストラップは、標準的でない推定量の不確実性の評価に役立ちます。回帰に付随する \(R^{2}\) 統計量を考えましょう。最小二乗法で回帰を実行すると、\(R^{2}\) の値が得られます。では、\(R^2\) の95% CIをどのように求められるでしょうか。

df.head() を使って、従属変数 \(y\) と2つの独立変数 \(X1\) と \(X2\) をもつ DataFrame df を確認してください。次のように statsmodels(sm)でこの回帰はすでに当てはめ済みです。

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

reg_fit.summary() で結果を確認すると、\(R^{2}=0.3504\) となっています。ブートストラップを使って95% CIを計算しましょう。

Инструкции

100 XP
  • pandas の DataFrame の sample() メソッドを使って、元のデータセットからブートストラップ標本を作成します。行数は元の DataFrame と同じにします。
  • sm.OLS() で reg_fit() と同様の回帰を当てはめ、rsquared 属性を使って \(R^{2}\) 統計量を取得します。
  • 得られた \(R^{2}\) をリスト rsquared_boot に追加します。
  • np.percentile() を用いて、rsquared_boot の95% CI を r_sq_95_ci として計算します。