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

Evaluating a t-test on regression coefficients using statsmodels

我有一个包含大约 100 多个特征的数据集。我还有一小部分协变量。

我使用 statsmodels 为 y = x + C1 + C2 + C3 + C4 + ... + Cn 为每个协变量、特征 x 和因变量 y 构建了一个 OLS 线性模型。

我正在尝试对回归系数执行假设检验以检验系数是否等于 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 的回归系数感兴趣。

感谢任何帮助!

你确定不想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 值来自每个拟合参数等于 0 的 t 检验。

似乎 RegressionResults.t_test 对不太常规的假设很有用。