R: robust package -- lmRob 如何找到计算中使用的 psi 函数

R: robust package -- lmRob how to find the psi function used in the calculations

我正在使用 lmRob。

require(robust)
stack.rob.int <- lmRob(Loss ~.*., data = stack.dat)

很好,但是,我想知道如何在实际拟合中获得 lmRob 函数使用的 psi 函数。在此先感谢您的帮助!

如果我要在 robustbase 中使用 lmrob 函数,是否可以更改 psi 函数以将其减去一个常数。我正在尝试根据 Lahiri(统计年鉴,1992 年)实施 bootstrap,其中提到仍然保持 bootstrap 有效的方法是用原始 psi() 减号替换 psi()为稳健线性模型拟合 bootstrap 时的残差均值。

因此,robust::lmRob().

无法直接访问 psi 函数

简单地说,lmRob()调用lmRob.fit() (or lmRob.wfit() if you supply weights) which subsequently calls lmRob.fit.compute() that then sets initial values for a Fortran version depending on the lmRob.control() set to either "bisquare" or "optimal"

作为上述讨论的结果,如果您需要访问 psi 函数,您可能希望使用 robustbase as it has easy access to many psi functions (c.f. the biweights)

编辑 1

关于:

psi function evaluated at the residuals in lmRob

没有。 运行 lmRob 之后可用的详细信息在 lmRob.object 中可用。该文档可通过 ?lmRob.object 访问。关于残差,以下lmRob对象中可用。

  • residualscoefficients中返回的估计对应的残差向量。
  • T.residualsT.coefficients中返回的估计对应的残差向量。
  • M.weights:对应于 coefficients 中最终 MM 估计的稳健估计权重,如果适用。
  • T.M.weights:对应于 T.coefficients 中初始 S 估计的稳健估计权重,如果适用。

关于

what does "optimal" do in lmRob?

最优参考以下psi函数:

sign(x)*(- (phi'(|x|) + c) / (phi(|x|) )

其他传统的psi函数,不妨看看robustbase's vignette 或一本健壮的教科书。