बूटस्ट्रैपिंग रिग्रेशन
अब देखते हैं कि रिग्रेशन के साथ बूटस्ट्रैपिंग कैसे काम करती है। बूटस्ट्रैपिंग, non-standard एस्टिमेटर्स की अनिश्चितता का आकलन करने में मदद करती है। रिग्रेशन के साथ जुड़े \(R^{2}\) स्टैटिस्टिक पर विचार करें। जब आप simple least squares रिग्रेशन चलाते हैं, तो आपको \(R^{2}\) का एक मान मिलता है। लेकिन देखें कि हम \(R^2\) के लिए 95% CI कैसे निकाल सकते हैं।
df.head() का उपयोग करके DataFrame df की जाँच कीजिए, जिसमें एक dependent वैरिएबल \(y\) और दो independent वैरिएबल \(X1\) और \(X2\) हैं। हमने पहले ही statsmodels (sm) का उपयोग करके यह रिग्रेशन फिट किया है:
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()
reg_fit.summary() का उपयोग करके परिणाम की जाँच करें और पाएँ कि \(R^{2}=0.3504\) है। 95% CI निकालने के लिए बूटस्ट्रैपिंग का प्रयोग करें।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Statistical Simulation
अभ्यास निर्देश
- 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के रूप में 계산 करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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))