1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 하는 통계 시뮬레이션

Connected

연습 문제

회귀의 부트스트래핑

이번에는 회귀 분석에서 부트스트래핑이 어떻게 동작하는지 살펴보겠습니다. 부트스트래핑은 비표준 추정량의 불확실성을 추정하는 데 도움이 됩니다. 회귀에 연결된 \(R^{2}\) 통계량을 생각해 봅시다. 단순 최소제곱 회귀를 실행하면 \(R^{2}\) 값을 얻을 수 있죠. 그렇다면 $R^2$의 95% 신뢰구간(CI)은 어떻게 구할 수 있을까요?

종속 변수 $y$와 두 개의 독립 변수 \(X1\), $X2$를 가진 DataFrame df를 df.head()로 살펴보세요. 이 회귀는 이미 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}\) 통계량을 추출하세요.
  • 리스트 rsquared_boot에 \(R^{2}\) 값을 추가하세요.
  • np.percentile()을 사용해 rsquared_boot의 95% CI를 r_sq_95_ci로 계산하세요.