← 返回题库
初级

置信区间

未完成 100%
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import pandas as pd
    import statsmodels.api as sm
    import matplotlib.pyplot as plt
    import numpy as np
    
    df = pd.read_csv('https://liangdaima.com/static/data/wooldridge/wage1.csv')
    X = sm.add_constant(df[['educ', 'exper', 'tenure']])
    model = sm.OLS(df['wage'], X).fit()
    
    ci = model.conf_int()
    params = model.params.drop('const')
    ci = ci.drop('const')
    
    plt.figure(figsize=(10,6))
    y_pos = np.arange(len(params))
    plt.errorbar(params, y_pos, xerr=[params - ci[0], ci[1] - params], 
                 fmt='o', capsize=5, color='steelblue', markersize=8)
    plt.axvline(x=0, color='k', linestyle='--', linewidth=0.5)
    plt.yticks(y_pos, params.index)
    plt.title('回归系数95%置信区间', fontsize=14)
    plt.xlabel('系数值', fontsize=12)
    plt.ylabel('变量', fontsize=12)
    plt.grid(alpha=0.3)
    plt.tight_layout()
    plt.show()
    
    print(round(ci.loc['educ', 0], 4))

示例

输入
solve()
期望输出
0.4982
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码