一元线性回归进行F检验和t检验的代码python
时间: 2024-09-29 17:04:25 浏览: 47
一元线性回归中的F检验和t检验通常用于评估模型的整体显著性和单个系数的显著性。在Python中,我们可以使用`statsmodels`库来进行这些统计检验。假设你已经有了一个名为`model`的`statsmodels.apiOLS`实例,代表了拟合的一元线性模型。
**F检验(检查整个模型是否显著)**:
```python
from statsmodels.stats.anova import anova_lm
# 获取残差平方和
residual_sum_of_squares = model.resid_deviance
total_sum_of_squares = model.ssr
# 计算F值和p-value
df_model = model.df_model
df_resid = model.df_resid
f_statistic, f_pvalue = anova_lm(residual_sum_of_squares, total_sum_of_squares, df_model, df_resid)
print(f"F值: {f_statistic}, p值: {f_pvalue}")
```
**t检验(检查单个系数的显著性)**:
```python
# 找到某个特定系数,例如"feature_name"
coefficient = model.params['feature_name']
std_error = model.bse['feature_name']
# 使用t分布计算t值和p-value
t_value = coefficient / std_error
t_pvalue = stats.t.sf(np.abs(t_value), model.df_resid) # sf表示小数面积下界
print(f"系数'{feature_name}': t值: {t_value}, p值: {t_pvalue}")
```
这里假设`params`和`bse`分别是模型系数和标准误,`df_model`和`df_resid`分别是模型的自由度和残差自由度。
阅读全文