检查回归中的两个系数在 Python statsmodels 中是不是不同
Posted
技术标签:
【中文标题】检查回归中的两个系数在 Python statsmodels 中是不是不同【英文标题】:Check whether two coefficients in a regression differ in Python statsmodels检查回归中的两个系数在 Python statsmodels 中是否不同 【发布时间】:2019-04-09 07:02:01 【问题描述】:在 R 中,car::linearHypothesis
函数可用于检验两个系数相等的假设(即它们的差值与零显着不同)。这是来自其documentation 的示例:
linearHypothesis(mod.duncan, "income = education")
根据this CrossValidated answer,这在 MATLAB 中也可以作为 linhyptest
使用。
是否有 Python statsmodels
回归模型的等价物?
【问题讨论】:
我不知道有没有内置的东西,但是你是否可以检索两个参数的值和方差-协方差矩阵的子集(即两行, 两列子矩阵)这两个参数,我们可以告诉你如何实现它... 可能从这里开始:statsmodels.org/dev/generated/… 【参考方案1】:大多数模型的结果类都有多种 Wald 检验方法。
t_test
为单一假设向量化。wald_test
为联合假设。wald_test_terms
自动测试“项”,即系数子集共同为零,类似于类型 3 ANOVA基于 Wald 测试的表。
请参阅 OLS 之后的 t_test
的文档字符串,但所有模型都继承相同的方法并以相同的方式工作 (*)。
https://www.statsmodels.org/dev/generated/statsmodels.regression.linear_model.OLSResults.t_test.html
例如
>>> t_test = results.t_test("income = education")
>>> print(t_test)
(*) 有一些模型不遵循标准模式,这些 wald 测试尚不可用。
t_test 使用正态分布或 t 分布,其他两个 wald 检验使用卡方或 F 分布。可以使用model.fit
中的use_t
关键字选择分布。
如果use_t=True
则使用 t 和 F 分布。如果是False
,则使用正态分布和卡方分布。线性回归模型的默认值为 t 和 F,所有其他模型的默认值为正态和卡方。
【讨论】:
有没有办法在 IV2SLS 上使用它? statsmodels 中的 IV2SLS 继承了与其他模型相同的 wald 测试方法。但是,我不确定公式支持的效果如何。如果没有公式,则需要直接提供限制矩阵,而不是字符串。 有没有机会告诉我如何提取所需的限制矩阵?我在这里有一个悬而未决的问题:***.com/questions/69595896/…以上是关于检查回归中的两个系数在 Python statsmodels 中是不是不同的主要内容,如果未能解决你的问题,请参考以下文章