我目前在理解使用 Gamma 分布拟合 GLM 的 R 语法时遇到问题。
我有一组数据,其中每一行包含 3 个协变量()、一个响应变量()和一个形状参数()。我想将 Gamma 分布的比例建模为 3 个协变量的线性函数,但我不明白如何将每行数据
我认为类似的情况是,对于二项分布,GLM 要求每个数据条目
我目前在理解使用 Gamma 分布拟合 GLM 的 R 语法时遇到问题。
我有一组数据,其中每一行包含 3 个协变量()、一个响应变量()和一个形状参数()。我想将 Gamma 分布的比例建模为 3 个协变量的线性函数,但我不明白如何将每行数据
我认为类似的情况是,对于二项分布,GLM 要求每个数据条目
我使用了Balajari (2013)描述的MASS包的gamma.shape函数,以便事后估计形状参数,然后调整 GLM 中的系数估计和预测。我建议你按原样阅读讲座,在我看来,关于 GLM 中伽马分布的使用非常清晰和有趣。
glmGamma <- glm(response ~ x1, family = Gamma(link =
"identity")
library(MASS)
myshape <- gamma.shape(glmGamma)
gampred <- predict(glmGamma , type = "response", se = TRUE,
dispersion = 1/myshape$alpha)
summary(glmGamma, dispersion = 1/myshape$alpha)
通常的伽马 GLM 包含形状参数是恒定的假设,就像正常线性模型假设恒定方差一样。
用 GLM 的说法,色散参数中的 \phi通常是常数。
更一般地说,您有,但这无济于事。
也许可以使用加权 Gamma GLM 来合并指定形状参数的这种效果,但我还没有研究过这种可能性(如果它有效,它可能是最简单的方法,但我一点也不肯定会的)。
如果您有双 GLM,您可以将该参数估计为协变量的函数......如果双 glm 软件允许您在方差项中指定偏移量,您可以这样做。看起来dglm
包中的函数dglm
允许您指定偏移量。我不知道它是否会让您指定像(比如说)这样的方差模型~ offset(<something>) + 0
。
另一种选择是直接最大化可能性。
> y <- rgamma(100,10,.1)
> summary(glm(y~1,family=Gamma))
Call:
glm(formula = y ~ 1, family = Gamma)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.93768 -0.25371 -0.05188 0.16078 0.81347
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0103660 0.0003486 29.74 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Gamma family taken to be 0.1130783)
Null deviance: 11.223 on 99 degrees of freedom
Residual deviance: 11.223 on 99 degrees of freedom
AIC: 973.56
Number of Fisher Scoring iterations: 5
它说的那一行:
(Dispersion parameter for Gamma family taken to be 0.1130783)
是你想要的那个。
那与 Gamma 的形状参数有关。