给定一个使用 Tweedie 的 GLM,我如何找到系数?

机器算法验证 广义线性模型 tweedie-distribution
2022-04-05 02:24:46

是一个随机变量,它服从参数的 Tweedie 分布。让链接函数为自然对数。假设我们有一个表格的数字数据库Yα=1.1

(y1,x1,1,x1,2,...,x1,m)

(y2,x2,1,x2,2,...,x2,m)

...

(yn,xn,1,xn,2,...,xn,m)

变量是分类变量和连续变量的混合。因为这是一个 GLM,我们知道

E[Y]=eXβ所以这是我的问题:给定数字数据库并使用这是具有给定参数的 Tweedie 分布的事实,我使用什么算法来最好地选择是否有我需要最小化的误差函数,或者我是否估计最大似然的参数?β

1个回答

你熟悉 R 中的广义线性模型吗?如果是这样,您可以像任何其他 glms 一样安装 Tweedie glms。实现这一点所需的 glm 系列定义由 CRAN 的 statmod R 包提供。

Tweedie glms 假设方差函数是幂函数: 特殊情况包括普通 glms ( )、Poisson glms),伽马 glms()和逆高斯 glms()。

var(y)=V(μ)ϕ=μαϕ
α=0α=1α=2α=3

以下是 R 代码示例:

> library(statmod)
> y <- c(4.0, 5.9, 3.9, 13.2, 10.0, 9.0)
> x <- 1:6
> fit <- glm(y~x, family = 
           tweedie(var.power=1.1, 
           link.power=0))
> summary(fit)

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

Deviance Residuals: 
      1        2        3        4        5        6  
-0.2966   0.1183  -1.0742   1.4985   0.1205  -0.6716  

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)   1.3625     0.4336   3.143   0.0348 *
x             0.1794     0.1008   1.779   0.1498  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Tweedie family taken to be 1.056557)

    Null deviance: 7.3459  on 5  degrees of freedom
Residual deviance: 3.9670  on 4  degrees of freedom
AIC: NA

Number of Fisher Scoring iterations: 4

Tweedie 包允许您为 glm 安装任何电源功能和任何电源链接。在 glm 系列调用中, var.power 是参数,因此 var.power=1.1 指定var.power 指的是 glm 方差函数的指数,因此 var.power=0 表示正常族,var.power=1 表示泊松族,var.power=2 表示伽马族,var.power=3 表示逆高斯族等。不允许使用 0 到 1 之间的值,但实际上允许使用其他任何值。αα=1.1

link.power=0指定日志链接。链接是根据 Box-Cox 变换幂指定的,link.power=1身份链接也是如此,link.power=0 表示对数。

上述模型假设其中 yiTweedieα(μi,ϕ)

logμi=β0+β1xi
var(yi)=μi1.1ϕ

回归系数已通过最大似然估计。已使用残差平方和的残差估计分散参数βjϕ

无论您使用什么或链接,R 中为 glms 提供的任何下游函数都将适用于由.αglm()