summary.glm() 中的分散

机器算法验证 r 广义线性模型 负二项分布
2022-02-04 11:21:07

我进行了 glm.nb 通过

glm1<-glm.nb(x~factor(group))

其中 group 是一个分类变量,x 是一个度量变量。当我尝试获取结果摘要时,我得到的结果略有不同,具体取决于我是否使用summary()summary.glm. summary(glm1)给我

    ...
Coefficients:
                    Estimate Std. Error z value Pr(>|z|)  
    (Intercept)       0.1044     0.1519   0.687   0.4921  
    factor(gruppe)2   0.1580     0.2117   0.746   0.4555  
    factor(gruppe)3   0.3531     0.2085   1.693   0.0904 .
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    (Dispersion parameter for Negative Binomial(0.7109) family taken to be 1)

而 summary.glm(glm1) 给了我

    ...
Coefficients:
                    Estimate Std. Error t value Pr(>|t|)  
    (Intercept)       0.1044     0.1481   0.705   0.4817  
    factor(gruppe)2   0.1580     0.2065   0.765   0.4447  
    factor(gruppe)3   0.3531     0.2033   1.737   0.0835 .
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

    (Dispersion parameter for Negative Binomial(0.7109) family taken to be 0.9509067)

我理解色散参数的含义,但不理解线的含义

(Dispersion parameter for Negative Binomial(0.7109) family taken to be 0.9509067).

在手册中它说,这将是估计的分散,但它似乎是一个错误的估计,因为 0.95 并不接近 0.7109,或者估计的分散与估计的分散参数不同?我想,我必须将色散设置summary.nb(x, dispersion=)为某个值,但我不确定是否必须将色散设置为 1(这将产生与summary()或是否应该插入色散参数的估计值相同的结果,在这种情况下导致summary.nb(glm1, dispersion=0.7109)或其他什么?或者我只使用summary(glm1)?

2个回答

首先,您不应该summary.glm在 class 的对象上使用"negbin"如果您查看 的函数代码summary.glm,您将在顶部看到 的计算dispersion请注意,summary.glm 知道可以拟合的模型,glm因此它挑选出二项式和泊松族进行特殊处理,其中色散参数ϕ假定等于 1。对于这些以外的模型ϕ是从模型对象计算的,但请注意,这是基于这样的假设,即这适用于二项式或泊松的族。family拟合的模型glm.nb"Negative Binomial(theta)"因此,当您summary.glm在由 拟合的模型上使用时glm.nb,in 代码

if (is.null(dispersion)) 
    dispersion <- if (object$family$family %in% c("poisson", 
        "binomial")) 
        1
    else if (df.r > 0) {
        est.disp <- TRUE
        if (any(object$weights == 0)) 
                warning("observations with zero weight not used for calculating dispersion")
            sum((object$weights * object$residuals^2)[object$weights > 
            0])/df.r
    }

测试"poisson""binomial"失败,然后计算ϕ实际上,默认情况下假定该系列等于 1(根据summary.negbin.

这没有问题,只是调用正确的方法并为ϕ通过论证dispersion

其次,你误解了输出。当你看到

Negative Binomial(0.7109)

正如我上面提到的,括号中引用的数字是θ^,负二项分布的参数。该值是在拟合期间估计的值。它不是ϕ,色散参数,因此这两个数字不一定相等;它们只是两个数字。

作为计算的分散ϕ(按照我上面引用的代码)非常接近一(~0.95),假设ϕ=1用于标准误差在summary.negbin. 你当然可以,只是做

summary(glm1, dispersion = 0.9509)

并获得该negbin方法为您提供的额外输出,以及计算的而不是假定的值ϕ.

来自 Venables & Ripley (2002), Modern Applied Statistics with S : 'Theta' 定义了具有形状的伽马分布θ& 规模1θ, 因此均值1&方差1θ. E是具有此分布的随机变量;一个回应Y有条件地分布在E作为平均泊松μE, 在哪里μ是预测变量和系数的函数,具体取决于您选择的链接。边际上,它的分布是负二项式的,具有质量函数

f(y)=Γ(θ+y)Γ(θ)y!μyθθ(μ+θ)θ+y

期待

EY=μ

&方差

VarY=μ+μ2θ

正如@Momo 指出的那样,色散参数完全是另一回事,你可以让它变化来做准似然估计。对于负二项式模型和(真)泊松模型,它正确地固定为值 1。