初级
t检验
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
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()
t_stat = model.tvalues['educ']
p_value = model.pvalues['educ']
plt.figure(figsize=(10,6))
x = np.linspace(-4, 4, 1000)
plt.plot(x, stats.t.pdf(x, df=len(df)-4), 'b-', linewidth=2, label='t分布')
plt.axvline(x=t_stat, color='r', linestyle='--', linewidth=2, label=f't统计量={t_stat:.2f}')
plt.fill_between(x[x > abs(t_stat)], stats.t.pdf(x[x > abs(t_stat)], len(df)-4),
alpha=0.3, color='red')
plt.title(f't检验:educ系数显著性 (p={p_value:.6f})', fontsize=14)
plt.xlabel('t值', fontsize=12)
plt.ylabel('密度', fontsize=12)
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
print(round(model.tvalues['educ'], 4))
示例
输入
solve()
期望输出
11.6795
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199