在零处聚集的非负数据模型(Tweedie GLM、零膨胀 GLM 等)能否预测精确的零?

机器算法验证 r 广义线性模型 预言 零通胀 tweedie-distribution
2022-01-21 08:58:55

当参数(均方差关系中的指数)在 1 和 2 之间时,Tweedie 分布可以对点质量为零的偏态数据进行建模。p

类似地,零膨胀(无论是连续的还是离散的)模型可能有大量的零。

我无法理解为什么当我使用这些模型进行预测或计算拟合值时,所有预测值都不为零。

这些模型真的可以预测精确的零点吗?

例如

library(tweedie)
library(statmod)
# generate data
y <- rtweedie( 100, xi=1.3, mu=1, phi=1)  # xi=p
x <- y+rnorm( length(y), 0, 0.2)
# estimate p
out <- tweedie.profile( y~1, p.vec=seq(1.1, 1.9, length=9))
# fit glm
fit <- glm( y ~ x, family=tweedie(var.power=out$p.max, link.power=0))
# predict
pred <- predict.glm(fit, newdata=data.frame(x=x), type="response")

pred现在不包含任何零。我认为 Tweedie 分布等模型的有用性来自其预测精确零点和连续部分的能力。

我知道在我的示例中,变量x的预测性不是很强。

3个回答

请注意,GLM 中的预测值是平均值。

对于非负值的任何分布,要预测平均值为 0,它的分布必须完全是 0 处的尖峰。

但是,使用对数链接,您永远不会拟合完全为零的平均值(因为这需要转到)。η

所以你的问题不是 Tweedie 的问题,而是更普遍的问题;例如,对于普通泊松(无论是零膨胀还是普通泊松 GLM),或者二项式、0-1 膨胀贝塔以及非负实线上的任何其他分布,您都会遇到完全相同的问题。

我认为 Tweedie 分布的有用性来自它预测精确零点和连续部分的能力。

由于对于具有对数链接的非负值的任何分布都不会发生精确的零预测,因此您对此的想法一定是错误的。

它的吸引力之一是它可以对数据中的精确零进行建模,而不是平均预测将为 0。[当然,具有非零均值的拟合分布仍然有可能恰好为零,即使均值必须超过 0 . 例如,一个合适的预测区间很可能包括 0。]

拟合分布包含任何相当大比例的零一点都不重要 - 这不会使拟合均值为零(除非在您达到全零时的极限内)。

请注意,如果您将链接函数更改为标识链接,它并不能真正解决您的问题——非全零的非负随机变量的平均值将为正。

预测零的比例

我是 statmod 包的作者和 tweedie 包的联合作者。您示例中的所有内容都正常工作。该代码正确地考虑了数据中可能存在的任何零。

正如 Glen_b 和 Tim 所解释的,预测的平均值永远不会完全为零,除非零的概率是 100%。不过,可能感兴趣的是预测的零比例,这可以很容易地从模型拟合中提取出来,如下所示。

这是一个更明智的工作示例。首先模拟一些数据:

> library(statmod)
> library(tweedie)
> x <- 1:100
> mutrue <- exp(-1+x/25)
> summary(mutrue)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.3829  1.0306  2.7737  5.0287  7.4644 20.0855 
> y <- rtweedie(100, mu=mutrue, phi=1, power=1.3)
> summary(y)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.8482  2.9249  4.7164  6.1522 24.3897 
> sum(y==0)
[1] 12

数据包含 12 个零。

现在适合 Tweedie glm:

> fit <- glm(y ~ x, family=tweedie(var.power=1.3, link.power=0))
> summary(fit)

Call:
glm(formula = y ~ x, family = tweedie(var.power = 1.3, link.power = 0))

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.71253  -0.94685  -0.07556   0.69089   1.84013  

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.816784   0.168764   -4.84 4.84e-06 ***
x            0.036748   0.002275   16.15  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Tweedie family taken to be 0.8578628)

    Null deviance: 363.26  on 99  degrees of freedom
Residual deviance: 103.70  on 98  degrees of freedom
AIC: NA

Number of Fisher Scoring iterations: 4

当然,对的回归非常显着。离散度的估计值为xϕ

可以从以下公式计算值的零的预测比例:x

> Phi <- 0.85786
> Mu <- fitted(fit)
> Power <- 1.3
> Prob.Zero <- exp(-Mu^(2-Power) / Phi / (2-Power))
> Prob.Zero[1:5]
        1         2         3         4         5 
0.3811336 0.3716732 0.3622103 0.3527512 0.3433024 
> Prob.Zero[96:100]
          96           97           98           99          100 
1.498569e-05 1.121936e-05 8.336499e-06 6.146648e-06 4.496188e-06 

因此,预测的零点比例从最小平均值的 38.1% 下降到最大平均值的 4.5e-6。

精确零概率的公式可以在Dunn & Smyth (2001) Tweedie Family Densities: Methods of EvaluationDunn & Smyth (2005) Series evaluation of Tweedie 指数色散模型密度中找到。

这个答案是从另一个询问预测零膨胀回归模型的线程合并的,但它也适用于 Tweedie GLM 模型。

类回归模型预测某些分布的平均值(线性回归为正态,逻辑回归为伯努利,泊松回归为泊松等)。在零膨胀回归的情况下,您预测零膨胀分布的平均值例如泊松,二项式)。当非膨胀分布的概率密度函数为时,则零膨胀分布的概率密度函数是零点质量和的混合:ff

fzeroinfl(y)=πI{0}(y)+(1π)f(y)

其中是指标函数。零膨胀回归模型预测的平均值Ifzeroinfl(y)

μi=π0+(1π)g1(xiβ)

其中是链接函数的逆。因此,由于您正在预测此分布的均值,因此您不会在预测中看到多余的零,因为零不是分布的均值(虽然它们将均值缩小到零),与线性回归不预测相同残差。g1

这在下图中进行了说明,其中随机变量的值相对于绘制,其中遵循零膨胀泊松分布,均值以为条件。黑点是用于拟合零膨胀泊松回归模型的实际数据,红点是预测,蓝点是六组任意的平均值。如您所见,显然零膨胀泊松回归模型估计了YXYXYXE(Y|X)

例子