【问题标题】:Evaluating a t-test on regression coefficients using statsmodels使用 statsmodels 评估回归系数的 t 检验
【发布时间】:2018-01-24 18:04:24
【问题描述】:

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

我使用 statsmodels 为每个协变量、特征 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 的回归系数感兴趣。

任何帮助表示赞赏!

【问题讨论】:

    标签: python linear-regression statsmodels


    【解决方案1】:

    您确定不想要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 对不太常规的假设很有用。

    【讨论】:

    • t检验的结果不应该和我做的一样吗?
    • @TimelordViktorious 他们应该,是的
    • 当然,假设假设是相同的,我想。
    • @TimelordViktorious 是的,假设替代假设的形式为 B_i0
    • 我通常会做这样的事情tt = results.t_test(np.eye(len(results.params); print(tt.summary()) 来检查 t_test 的等价性以及相应的属性,如 tvalues 和 pvalues。
    猜你喜欢
    • 2017-01-02
    • 2020-06-01
    • 2015-06-13
    • 1970-01-01
    • 2020-09-12
    • 2015-05-09
    • 2019-04-20
    • 2016-10-03
    相关资源
    最近更新 更多