让 statsmodels 在系数 t 检验中使用异方差校正的标准误差

Posted

技术标签:

【中文标题】让 statsmodels 在系数 t 检验中使用异方差校正的标准误差【英文标题】:Getting statsmodels to use heteroskedasticity corrected standard errors in coefficient t-tests 【发布时间】:2015-08-13 18:03:02 【问题描述】:

我一直在研究 statsmodels.regression.linear_model.RegressionResults 的 API,并找到了如何检索不同风格的异方差校正标准错误(通过 HC0_se 等属性)但是,我不太清楚如何对系数进行 t 检验,以使用这些修正后的标准误差。有没有办法在 API 中做到这一点,还是我必须手动做到这一点?如果是后者,您能否就如何使用 statsmodels 结果提供任何指导?

【问题讨论】:

【参考方案1】:

线性模型、离散模型和 GLM 的 fit 方法采用 cov_typecov_kwds 参数来指定稳健的协方差矩阵。这将附加到结果实例并用于汇总表中报告的所有推理和统计数据。

不幸的是,文档并没有真正以适当的方式显示这一点。 根据选项实际选择三明治的辅助方法显示了选项和所需的参数: http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLS.fit.html

例如,估计一个OLS模型并使用HC3协方差矩阵可以用

model_ols = OLS(...)
result = model_ols.fit(cov_type='HC3')
result.bse
result.t_test(....)

假设mygroups 是一个包含组标签的数组,一些三明治需要额外的参数,例如集群稳健标准误差,可以通过以下方式选择:

results = OLS(...).fit(cov_type='cluster', cov_kwds='groups': mygroups
results.bse
...

一些稳健的协方差矩阵无需检查即可对数据做出额外假设。例如异方差性和自相关稳健标准误或 Newey-West,HAC,标准误假设一个连续的时间序列结构。一些面板数据稳健标准误还假设个人时间序列的堆叠。

一个单独的选项 use_t 可用于指定默认情况下是否应将 t 和 F 或正态和卡方分布用于 Wald 检验和置信区间。

【讨论】:

很抱歉再次打扰您,但是在 t-测试中使用来自HC* 的稳健残差需要调用result.bse 并出现在result.resid?还是我只需要model_ols.fit(cov_type='HC3') 不,您不需要在fit 之后调用任何其他内容。 bset_test 只是使用指定 cov_type 的两个示例。稳健的三明治协方差存储在cov_params_default 中,并在我们需要参数估计协方差的任何地方使用。验证它的一种简单方法是创建两个具有不同cov_types 的结果实例,并检查依赖于协方差矩阵的结果是否不同,例如在summary().

以上是关于让 statsmodels 在系数 t 检验中使用异方差校正的标准误差的主要内容,如果未能解决你的问题,请参考以下文章

为 statsmodels t 检验转换数据框

检查回归中的两个系数在 Python statsmodels 中是不是不同

如何使用 statsmodels 获得多元线性回归的标准化(Beta)系数

在回归分析中,部分系数没有通过显著性检验,该如何处理?

怎么对多元线性回归模型的回归系数β做t检验和F检验

SPSS 多元线性回归结果中,系数模型下的1,B,t,Sig.分别啥意思。在线等!!急求高手解答!!