import wooldridge as wooimport numpy as npimport statsmodels.formula.api as smfimport pandas as pdimport matplotlib.pyplot as pltgpa2 = woo.dataWoo('gpa2')# regress and report coefficients:reg = smf.ols(formula='colgpa ~ sat', data=gpa2)results = reg.fit()print(f'beta_hat: \n{results.params}\n')# regressor (SAT) values for prediction from 400 to 1600 in steps of 100:SAT = pd.DataFrame({'sat': np.arange(400, 1600 + 1, 100)})# predictions and 95% confidence intervals:colgpa_pred = results.get_prediction(SAT)colgpa_pred_CI = colgpa_pred.summary_frame(alpha=0.05)[['mean', 'mean_ci_lower', 'mean_ci_upper']]print(f'colgpa_pred_CI: \n{colgpa_pred_CI}\n')# plot:plt.plot(SAT, colgpa_pred_CI['mean'], color='black', linestyle='-', label='')plt.plot(SAT, colgpa_pred_CI['mean_ci_upper'], color='green', linestyle='--', label='upper CI')plt.plot(SAT, colgpa_pred_CI['mean_ci_lower'], color='red', linestyle='--', label='lower CI')plt.ylabel('colgpa')plt.xlabel('sat')plt.legend()plt.savefig('PyGraphs/Confidence-Bands.pdf')# quadratic model as an alternative:reg2 = smf.ols(formula='colgpa ~ sat + I(sat**2)', data=gpa2)results2 = reg2.fit()colgpa_pred2 = results2.get_prediction(SAT)colgpa_pred2_CI = colgpa_pred2.summary_frame(alpha=0.05)[['mean', 'mean_ci_lower', 'mean_ci_upper']]# plot:plt.plot(SAT, colgpa_pred2_CI['mean'], color='black', linestyle='-', label='')plt.plot(SAT, colgpa_pred2_CI['mean_ci_upper'], color='green', linestyle='--', label='upper CI')plt.plot(SAT, colgpa_pred2_CI['mean_ci_lower'], color='red', linestyle='--', label='lower CI')plt.ylabel('colgpa')plt.xlabel('sat')plt.legend()plt.savefig('PyGraphs/Confidence-Bands2.pdf')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。