我有一组假设来自泊松分布的数字。该集合也有一些异常值,因此,最大似然估计受到严重影响。我听说在这种情况下,稳健的估计程序可以提供帮助。任何人都可以解释如何做到这一点?我不是统计学专业的学生。
我发现glmrobR 中的函数可以用于此。(我对 R 很陌生)。但我无法弄清楚,尽管阅读了手册页,如何使用它。特别是我无法理解如何获得forumulaglmrob 函数的第一个参数。
谢谢。
我有一组假设来自泊松分布的数字。该集合也有一些异常值,因此,最大似然估计受到严重影响。我听说在这种情况下,稳健的估计程序可以提供帮助。任何人都可以解释如何做到这一点?我不是统计学专业的学生。
我发现glmrobR 中的函数可以用于此。(我对 R 很陌生)。但我无法弄清楚,尽管阅读了手册页,如何使用它。特别是我无法理解如何获得forumulaglmrob 函数的第一个参数。
谢谢。
@cardinal 在评论中电报了一个答案。让我们充实一下。他的观点是,虽然一般线性模型(例如由lmand 实现,在这种情况下,glmRob)似乎旨在评估变量之间的关系,但它们也可以成为研究单个变量的强大工具。诀窍依赖于这样一个事实,即根据常数回归数据只是估计其平均值(“位置”)的另一种方式。
例如,生成一些泊松分布的数据:
set.seed(17)
x <- rpois(10, lambda=2)
在这种情况下,的泊松分布中生成值R的向量。估计它的位置:xglmRob
library(robust)
glmrob(x ~ 1, family=poisson())
响应告诉我们截距估计为。当然,任何使用统计方法的人都需要知道它是如何工作的:当您使用泊松族的广义线性模型时,标准的“链接”函数是对数。这意味着截距是估计位置的对数。所以我们计算
exp(0.7268)
结果非常接近:该过程似乎有效。要查看它在做什么,请绘制数据:
plot(x, ylim=c(0, max(x)))
abline(exp(0.7268), 0, col="red")

拟合线是纯水平的,因此估计了垂直值的中间值:我们的数据。这就是正在发生的一切。
为了检查稳健性,让我们通过在 的第一个值上添加几个零来创建一个糟糕的异常值x:
x[1] <- 100
这一次,为了在后期处理中获得更大的灵活性,我们将保存输出glmRob:
m <- glmrob(x ~ 1, family=poisson())
要获得估计的平均值,我们可以要求
exp(m$coefficients)
这次的值等于: 有点偏离,但不会太远,因为x( 获得mean(x)) 的平均值是. 这就是这个过程“稳健”的意义。更多信息可以通过
summary(m)
除其他外,它的输出向我们展示了与离群值相关的权重在x[1]只是, 几乎,查明可疑的异常值。