R中的glm-哪个pvalue表示整个模型的拟合优度?


10

我正在R(通用线性模型)中运行glms。我以为我知道pvalues-直到我看到调用glm的摘要不会为您提供代表整个模型的压倒性pvalue-至少不是在线性模型可以做到的地方。

我想知道这是否作为系数表顶部的Intercept的p值给出。因此,在下面的示例中,尽管Wind.speed..knots和canopy_density对模型可能很重要,但是我们如何知道模型本身是否很重要?我如何知道是否信任这些价值观?我是否想知道(Intercept)的Pr(> | z |)代表模型的重要性?这个模特重要吗?谢谢!

我应该注意,运行F检验不会给出pvalue,因为我收到一条错误消息,指出在二项式族上运行F检验是不合适的。

Call:
glm(formula = Empetrum_bin ~ Wind.speed..knots. + canopy_density, 
    family = binomial, data = CAIRNGORM)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.2327  -0.7167  -0.4302  -0.1855   2.3194  

Coefficients:
                   Estimate Std. Error z value Pr(>|z|)  
(Intercept)          1.8226     1.2030   1.515   0.1298  
Wind.speed..knots.  -0.5791     0.2628  -2.203   0.0276 *
canopy_density      -2.5733     1.1346  -2.268   0.0233 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 59.598  on 58  degrees of freedom
Residual deviance: 50.611  on 56  degrees of freedom
  (1 observation deleted due to missingness)
AIC: 56.611

1
如果我在二项式回归中正确地记得,您应该使用偏差检验,也就是对数似然检验-与线性回归中使用的F检验类似。这是-2 *(空LL-饱和LL),适合卡方分布。尽管在您的摘要输出中看不到模型对数可能性。它在模型对象中,而不在摘要输出中吗?
SamPassmore 2014年

Answers:


10

您可以对(59.598-50.611)进行渐近卡方检验,对(58-56)df进行卡方检验,也可以anova()在glm对象上使用(不直接进行检验,但至少可以计算( 59.598-50.611)和(58-56)。

这是对偏差的有效分析

这是您可以执行的计算类型(在R附带的不同数据集上):

spray1=glm(count~spray,family=poisson,data=InsectSprays)  # full model
spray0=glm(count~1,family=poisson,data=InsectSprays)      # null model
with(anova(spray0,spray1),pchisq(Deviance,Df,lower.tail=FALSE)[2]) 

给出基于偏差渐近卡方统计量的p值。

或者,您可以使用deviancedf.residual函数来做到这一点:

 pchisq(deviance(spray0)-deviance(spray1),
     df.residual(spray0)-df.residual(spray1),
    lower.tail=FALSE)

-

许多人会使用完整模型和空模型AIC之间的比较(或者在某些情况下,可能是感兴趣模型与饱和模型之间的比较)来确定该模型在这种意义上是否比空模型更好。

-

我是否想知道(Intercept)的Pr(> | z |)代表模型的重要性?

没有。确实,截距p值通常没有直接的意义。

如果您正在考虑使用带有色散参数的模型,那么我已经看到有人争辩说要进行F检验而不是渐近卡方。它对应于使用t检验而不是单个系数的z的人。在小样本中不太可能是合理的近似值。对于GLM而言,我还没有看到任何推导或模拟结果表明F必然是一个合适的近似值(即,比渐近结果更好)。一个可能存在,但我还没有看到。


2
您也可以运行Anova(fit, type = 2)car图书馆
Algorithmatic

3

假设您的模型位于对象“拟合”中,则可以使用此代码对二项式模型执行对数似然测试如您所指出的那样,F检验不适合,但是该测试将测试模型的预测是否更好比随机。

LLR = -2 * (fit$null.deviance - fit$deviance)

这是对数似然比检验的公式。

pchisq(LLR, 2, lower.tail = FALSE)

这将为您提供p值。虽然我不是100%确信这是正确的df。我很确定这是参数数量上的差异,您的饱和模型中有2个参数,而在Null模型中没有参数,ergo df = 3-1 =2。但这可能是后续的事情。


1

Fχ2

或者,您可以查看AIC或类似的措施BIC。

[R2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.