具有强残差模式的泊松回归

机器算法验证 广义线性模型 残差 泊松回归
2022-04-02 16:14:55

我正在运行这个泊松回归,并且在偏差和皮尔逊残差方面面临着非常强烈的模式,什么是纠正模型的合适方法?

在此处输入图像描述

在此处输入图像描述

这是我的数据的负责人:

> head(bob_poisson_aggreg)
  ticketCount artistVotes capacity ticketsRemain
1         120        1168      169            49
2          21        4365      379           358
3         153        3710     2352          2199
4         158        8766      615           457
5          25         622       50            25
6         314        7700      700           386
  bob_poisson_mean_aggreg.artistRating
1                                 4.57
2                                 4.67
3                                 4.90
4                                 4.49
5                                 4.38
6                                 4.42

这是我运行的模型:

mod_poi_1 <- glm(ticketCount ~. , family = poisson , data = bob_poisson_aggreg)
summary(mod_poi_1)
Call:
glm(formula = ticketCount ~ ., family = poisson, data = bob_poisson_aggreg)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-10.5927   -2.5578    0.1436    2.0250    7.7396  

Coefficients:
                                       Estimate Std. Error  z value
(Intercept)                           2.699e+00  1.260e-01   21.418
artistVotes                          -1.124e-05  4.252e-07  -26.435
capacity                              8.464e-03  7.584e-05  111.604
ticketsRemain                        -8.449e-03  8.109e-05 -104.188
bob_poisson_mean_aggreg.artistRating  1.914e-01  2.823e-02    6.781
                                     Pr(>|z|)    
(Intercept)                           < 2e-16 ***
artistVotes                           < 2e-16 ***
capacity                              < 2e-16 ***
ticketsRemain                         < 2e-16 ***
bob_poisson_mean_aggreg.artistRating 1.19e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 18688.0  on 274  degrees of freedom
Residual deviance:  3388.1  on 270  degrees of freedom
AIC: 4972

Number of Fisher Scoring iterations: 4

我什至不确定泊松模型在这里是否合适,但如果是,我应该如何继续?我会对响应变量进行转换:“ticketCount”。

是否有一些一般程序可以遵循?

我将非常感谢任何见解或参考!

2个回答

我不会从转换响应变量 (DV) 开始。

我会首先考虑您是否具有正确的链接函数,或者是否应该转换一些 x(自变量)。

如果您希望 ticketCount 与其中一些预测变量成比例(我肯定会),您可能想要使用身份链接或输入一些相关预测变量的日志,可能将它们作为偏移量放入;选择取决于您是否将 IV 与响应相关的方式视为在未转换的 ticketCount 尺度上的加法或乘法。

您还可以考虑其他事项,但仔细考虑 DV 和 IV 之间的关系对于选择好的模型至关重要。

这是一个模拟泊松数据的示例,其中模拟使用了恒等链接(即中是线性的——在这种情况下实际上与它成正比),而拟合使用了默认的对数链接:E(Y)x

显示错误链接函数对残差与拟合图的曲线影响的图

这与你所看到的相当一致。当我看到你的情节时,我的第一个想法是“可能需要一个身份链接”,然后在查看了你的变量名之后,这似乎很有意义;我可能会先尝试身份链接。

这是我使用我提出的两个解决方案时得到的结果:

使用身份链接和使用 log(x) 作为预测变量时的残差图

您可以看到它们都解决了缺乏拟合的问题,但是在我将不同的链接拟合到我用来生成数据的链接的情况下存在一些异方差(这是预期的)。


# example code included as requested
#(assumes we have already used `par` to get 1x2 grid for plots like above)

# generate data
x=runif(1000,1,20)
y=rpois(1000,33*x)

#fit (incorrect in this case) log-link function
pfit=glm(y~x,family=poisson)

# first plot
plot(x,y)
plot(pfit,which=1) #shows bowed appearance 

# identity link (correct in this case)
#  generalizes to additive in predictors
pfiti=glm(y~x,family=poisson(link="identity"))

# log link, log predictor, suits *multiplicative* model
#  and general case is in powers - could fit a model like
#   E(Y) = a . X1 . X2 . X3^b3 . X4^b4 using offsets
pfitl=glm(y~log(x),family=poisson)

# second plot
plot(pfiti,which=1)
plot(pfitl,which=1)

当然,具有最大可能容量值的票数最多只能接近泊松。将其建模为票数不足的二项式可能更合乎逻辑吗?

如果不是因为这显然是一个潜在的不适当分布,我会想知道您是否可能已经忽略(或没有可供您使用)导致过度分散的重要预测变量 - 您可能通过使用任何解释变量来部分解释您拥有或允许过度分散(例如,通过使用负二项式模型 - 或者在二项式模型的情况下,使用 beta-二项式模型或其他一些随机效应模型)。