0

第一篇文章,所以轻松一点。

在 GLMing 的保险领域,经典的方法是对索赔频率和平均严重程度进行建模。考虑到这一点,我建立了几个模型来为自己进行实验,现在有一个问题。

有人可以解释一下 GLM 如何处理数据集的不同级别的汇总,特别是在错误估计方面?

考虑下面的例子。数据显示两个变量的严重程度趋势: - A 的索赔比 B 高 - 福特 > 起亚 > 沃克斯 > 捷豹

我为数据集的未汇总和汇总版本拟合了一个模型,因此 GLM 在两种情况下都拟合了相同的参数

然而,GLM 为未汇总的数据表明了一个拟合良好的模型。但是当我总结并使用加权平均值时,即平均严重性,模型拟合得很差。也许这正如您所期望的那样,毕竟未汇总的数据有更多可用于建模的点。此外,加权平均值似乎用于表示相对强度,因此在这里,指定加权平均值是没有意义的,因为它们都是相同的权重。

但更根本的是,我不能用 GLM 模拟平均严重性吗?我的意思是,我知道将 GLM 拟合到未汇总的数据集的结果将是平均严重性,但我希望将模型拟合到已经汇总的数据。似乎在聚合数据集上建模并不能真正表明模型拟合。

抱歉,如果这是一个愚蠢的问题,我不是统计学家,所以不完全理解 Hessian 矩阵。

请看下面的代码:

library(boot) 
library(reshape) 

dataset <- data.frame(
  Person = rep(c("A", "B"), each=200), 
  Car = rep(c("Ford", "Kia", "Vaux", "Jag"), 2, each=50),
  Amount = c(rgamma(50, 200), rgamma(50, 180), rgamma(50, 160), rgamma(50, 140), 
         rgamma(50, 100), rgamma(50, 80), rgamma(50, 60), rgamma(50, 40))
)

Agg1 <- ddply(dataset, .(Person, Car), summarise, mean=mean(Amount), length=length(Amount))

m1 <- glm(Amount ~ Person + Car, data = dataset, family = Gamma(link="log")) 
m2 <- glm(mean ~ Person + Car, data = Agg1, family = Gamma(link="log"), weights=length) 

summary(m1)
summary(m2)

谢谢,

缺口

4

1 回答 1

0

底线是两个模型是相同的——聚合模型“拟合不佳”的原因完全是由于聚合导致的自由度降低。

在讨论为什么模型相同之前,我应该指出,这并不一定意味着任何一个模型都非常合适。您应该在两者上运行诊断程序,尤其是使用:

par(mfrow=c(2,2))
plot(m1)

当你这样做时。您会看到残差是正态分布的(这是必不可少的),但它们遵循一种模式(-、+、-),这令人不安。在宣布这是一个很好的模型之前,我想了解这一点。[诚然,这是虚构的数据,但原则仍然适用。]

将聚合模型与基本模型进行比较,查看系数值。

coef.m1 <- summary(m1)$coefficients
coef.m2 <- summary(m2)$coefficients
cbind(coef.m1[,1],coef.m2[,1])
#                   [,1]       [,2]
# (Intercept)  5.4096980  5.4096976
# PersonB     -0.9249371 -0.9249366
# CarJag      -0.6144606 -0.6144602
# CarKia      -0.1786556 -0.1786555
# CarVaux     -0.3597925 -0.3597923

您认为聚合模型“更差”的原因是因为 p 值,但这些取决于t = coeff/se. 对于所有系数,se in m1vs.的比率m2是相同的:

coef.m2[,2]/coef.m1[,2]
# (Intercept)     PersonB      CarJag      CarKia     CarVaux 
#    7.836171    7.836171    7.836171    7.836171    7.836171 

自从

se ~ sd / √ df

两个模型的 se 比率应约为

se m1 /se m2 = √( (n m1 -1) / (n m2 -1) )

sqrt((nrow(dataset)-1)/(nrow(Agg1)-1))
# [1] 7.549834

坦率地说,我很困惑为什么这个比率不完全等于 7.55。

换句话说,glm(...)无法知道您汇总了数据。它认为您正在尝试拟合具有 4 个参数和截距到 8 个数据点的模型。

于 2014-02-08T04:48:37.330 回答