शुरू करेंमुफ़्त में शुरू करें

बूटस्ट्रैपिंग रिग्रेशन

अब देखते हैं कि रिग्रेशन के साथ बूटस्ट्रैपिंग कैसे काम करती है। बूटस्ट्रैपिंग, 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))
कोड संपादित करें और चलाएँ