使用statsmodels评估回归系数的t检验

时间:2017-08-16 14:24:08

标签: python linear-regression statsmodels

我有一个包含大约100多个功能的数据集。我也有一小组协变量。

我使用statsmodels建立OLS线性模型,对于每个协变量,特征x和因变量y,y = x + C1 + C2 + C3 + C4 + ... + Cn。

我试图对回归系数进行假设检验以测试系数是否等于0.我认为t检验是适当的方法,但我不太确定如何使用statsmodels在Python中实现它。

我知道,特别是,我想要使用http://www.statsmodels.org/devel/generated/statsmodels.regression.linear_model.RegressionResults.t_test.html#statsmodels.regression.linear_model.RegressionResults.t_test

但我不确定我是否了解r_matrix参数。我能为此提供什么?我确实看过这些例子,但我不清楚。

此外,我对协变量本身的t检验不感兴趣,而只是x的回归共同效应。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:5)

您确定不想要statsmodels.regression.linear_model.OLS吗?这将执行OLS回归,使参数估计值和相应的p值(以及许多其他内容)可用。

from statsmodels.regression import linear_model
from statsmodels.api import add_constant

Y = [1,2,3,5,6,7,9]
X = add_constant(range(len(Y)))

model = linear_model.OLS(Y, X)
results = model.fit()
print(results.params) # [ 0.75        1.32142857]
print(results.pvalues) # [  2.00489220e-02   4.16826428e-06]

这些p值来自每个拟合参数的t检验等于0。

似乎RegressionResults.t_test对于较不传统的假设很有用。