Bắt đầu ngayBắt đầu miễn phí

Bootstrapping hồi quy

Giờ hãy xem bootstrapping hoạt động thế nào với hồi quy. Bootstrapping giúp ước lượng mức độ bất định của các bộ ước lượng không chuẩn. Xét thống kê \(R^{2}\) gắn với một mô hình hồi quy. Khi bạn chạy hồi quy bình phương tối thiểu đơn giản, bạn nhận được một giá trị \(R^{2}\). Nhưng làm sao để lấy khoảng tin cậy 95% cho \(R^2\)?

Quan sát DataFrame df với biến phụ thuộc \(y\) và hai biến độc lập \(X1\) và \(X2\) bằng df.head(). Chúng ta đã ước lượng mô hình hồi quy này với statsmodels (sm) dùng:

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

Xem kết quả bằng reg_fit.summary() để thấy \(R^{2}=0.3504\). Hãy dùng bootstrapping để tính khoảng tin cậy 95%.

Bài tập này là một phần của khóa học

Mô phỏng Thống kê bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Lấy một mẫu bootstrap từ bộ dữ liệu gốc bằng phương thức sample() của pandas DataFrame. Số hàng phải bằng với số hàng của DataFrame gốc.
  • Ước lượng một mô hình hồi quy giống reg_fit() bằng sm.OLS() và trích xuất thống kê \(R^{2}\) bằng thuộc tính rsquared.
  • Thêm giá trị \(R^{2}\) vào danh sách rsquared_boot.
  • Tính khoảng tin cậy 95% cho rsquared_boot thành r_sq_95_ci bằng np.percentile().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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))
Chỉnh sửa và Chạy Mã