泊松分布的稳健估计

机器算法验证 r 估计 泊松分布 广义线性模型 强大的
2022-03-19 12:44:15

我有一组假设来自泊松分布的数字。该集合也有一些异常值,因此,最大似然估计受到严重影响。我听说在这种情况下,稳健的估计程序可以提供帮助。任何人都可以解释如何做到这一点?我不是统计学专业的学生。

我发现glmrobR 中的函数可以用于此。(我对 R 很陌生)。但我无法弄清楚,尽管阅读了手册页,如何使用它。特别是我无法理解如何获得forumulaglmrob 函数的第一个参数。

谢谢。

1个回答

@cardinal 在评论中电报了一个答案。让我们充实一下。他的观点是,虽然一般线性模型(例如由lmand 实现,在这种情况下,glmRob)似乎旨在评估变量之间的关系,但它们也可以成为研究单个变量的强大工具。诀窍依赖于这样一个事实,即根据常数回归数据只是估计其平均值(“位置”)的另一种方式

例如,生成一些泊松分布的数据:

set.seed(17)
x <- rpois(10, lambda=2)

在这种情况下,的泊松分布中生成R的向量估计它的位置(1,5,2,3,2,2,1,1,3,1)x2glmRob

library(robust)
glmrob(x ~ 1, family=poisson())

响应告诉我们截距估计为当然,任何使用统计方法的人都需要知道它是如何工作的:当您使用泊松族的广义线性模型时,标准的“链接”函数是对数。这意味着截距是估计位置的对数所以我们计算0.7268

exp(0.7268)

结果非常接近:该过程似乎有效。查看它在做什么,请绘制数据:2.06852

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)

这次的值等于2.496: 有点偏离,但不会太远,因为x( 获得mean(x)) 的平均值是12. 这就是这个过程“稳健”的意义。更多信息可以通过

summary(m)

除其他外,它的输出向我们展示了与离群值相关的权重100x[1]只是0.02179, 几乎0,查明可疑的异常值。