基于M估计的鲁棒线性模型的Python Statsmodels测试系数

时间:2014-02-03 21:47:25

标签: python statsmodels

我有一个线性模型,我试图在内生变量中使用好的异常值来适应数据,但不在外生空间中。我研究过基于M估计的RLM在这种情况下是好的。

当我按照以下方式将RLM放入我的数据时:

import numpy as np
import statsmodels.formula.api as smf
import statsmodels as sm

modelspec = ('cost ~ np.log(units) + np.log(units):item + item') #where item is a categorical variable
results = smf.rlm(modelspec, data = dataset, M = sm.robust.norms.TukeyBiweight()).fit()
print results.summary()

摘要结果显示了z统计量,并且看似显着性的系数检验是基于此而不是t统计量。但是,以下R手册(http://www.dst.unive.it/rsr/BelVenTutorial.pdf)显示了对pg使用t统计数据。 19-21

两个问题:

  1. 有人可以从概念上向我解释为什么statsmodels使用z测试而不是t测试吗?

  2. 所有术语和互动在结果中都非常重要(| z |> 4)。在大多数情况下,每个项目有40个或更多的观察。有些项目有21-25个观察结果。是否有理由相信RLM在小样本环境中无效?在重新加权异常值之后,它产生的线必须是最佳拟合线,但z测试对于这个大小的样本是有效的(即,是否有理由相信smf.rlm()产生的置信区间不会产生95%概率覆盖?我知道对于t检验这可能是一个问题......)?

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

我主要只是一般性答案,我从未读过M-estimators的任何小样本蒙特卡罗研究。

至1。

在许多模型中,如M-estimators,RLM或广义线性模型GLM,我们只有渐近结果,除了一些特殊情况。渐近结果提供了估计器正态分布的条件。鉴于此,statsmodels默认使用线性回归模型,OLS等类型之外的所有模型的正态分布,而使用chisquare而不是具有联合假设的Wald检验的F分布。

有证据表明,在许多情况下,使用t或F分布并选择适当的自由度,可以提供更好的小样本近似于检验统计量的分布。这依赖于蒙特卡罗的结果,据我所知,这个理论没有直接证明这一点。

在下一个版本和当前开发版本中,statsmodels用户可以选择使用t和F分布来获得结果,而不是普通和chisquare分布。默认值保持不变。

在其他情况下,不清楚是否应使用t分布和小样本自由度。在许多情况下,statsmodels试图遵循STATA的引导,例如在OLS之后的集群稳健标准错误中。 另一个结果是,有时作为不同模型的特殊情况的等效模型在分布中使用不同的默认假设,无论是在Stata还是在statsmodel中。

我最近阅读了M-estimators的SAS文档,SAS正在使用chisquare分布,即正常假设,用于参数估计的重要性和置信区间。

至2。

(见第一句)

我认为与线性模型相同也适用于此。如果数据非常不正常,则测试统计信息可能在小样本中具有不正确的覆盖范围。一些强大的夹心协方差估计也可能是这种情况。另一方面,如果我们不使用异方差性或相关鲁棒协方差估计,那么测试也会有很强的偏差。

对于像M-估计器,RLM这样的稳健估计方法,有效样本大小还取决于内部数量或分配给观测值的权重,而不仅仅是观测总数。

对于您的情况,我认为z值和样本量足够大,例如,使用t分布不会使它们变得不那么重要。 比较具有不同规范和尺度估计的M估计量将额外检查对异常值的假设的稳健性以及鲁棒估计量的选择。另一个交叉检查:具有下降异常值的OLS(RLM估计中具有小权重的观测值)是否给出了类似的答案。

最后作为一般警告: 关于鲁棒方法的参考经常警告我们不应盲目地使用(异常 - )稳健方法。使用稳健的方法估计基于“内部”的关系。但是,我们对异常值的丢弃或减少是否合理?或者,我们是否缺少非线性,缺失变量,混合分布或不同的制度?