Le test du rapport de vraisemblance et le test de Wald fournissent des conclusions différentes pour glm dans R

11

Je reproduis un exemple de modèles généralisés, linéaires et mixtes . Mon MWE est ci-dessous:

Dilution <- c(1/128, 1/64, 1/32, 1/16, 1/8, 1/4, 1/2, 1, 2, 4)
NoofPlates <- rep(x=5, times=10)
NoPositive <- c(0, 0, 2, 2, 3, 4, 5, 5, 5, 5)
Data <- data.frame(Dilution,  NoofPlates, NoPositive)

fm1 <- glm(formula=NoPositive/NoofPlates~log(Dilution), family=binomial("logit"), data=Data)
summary(object=fm1)

Production


Call:
glm(formula = NoPositive/NoofPlates ~ log(Dilution), family = binomial("logit"), 
    data = Data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.38326  -0.20019   0.00871   0.15607   0.48505  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept)      4.174      2.800   1.491    0.136
log(Dilution)    1.623      1.022   1.587    0.112

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 8.24241  on 9  degrees of freedom
Residual deviance: 0.64658  on 8  degrees of freedom
AIC: 6.8563

Number of Fisher Scoring iterations: 6

Code


anova(object=fm1, test="Chisq")

Production


Analysis of Deviance Table

Model: binomial, link: logit

Response: NoPositive/NoofPlates

Terms added sequentially (first to last)


              Df Deviance Resid. Df Resid. Dev Pr(>Chi)   
NULL                              9     8.2424            
log(Dilution)  1   7.5958         8     0.6466  0.00585 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Code


library(aod)
wald.test(b=coef(object=fm1), Sigma=vcov(object=fm1), Terms=2)

Production


Wald test:
----------

Chi-squared test:
X2 = 2.5, df = 1, P(> X2) = 0.11

Les coefficients estimés correspondent parfaitement aux résultats donnés dans le livre, mais les SE sont très éloignés. Sur la base du test LRT, la pente est significative, mais sur la base du coefficient de pente de Wald et Z-test est insignifiant. Je me demande si je manque quelque chose de basique. Merci d'avance pour votre aide.

MYaseen208
la source

Réponses:

12

Le principal problème est que si vous utilisez le ratio comme variable de réponse, vous devez utiliser l' weightsargument. Vous devez avoir ignoré un avertissement concernant les "succès non entiers dans un GLM binomial" ...

Dilution <- c(1/128, 1/64, 1/32, 1/16, 1/8, 1/4, 1/2, 1, 2, 4)
NoofPlates <- rep(x=5, times=10)
NoPositive <- c(0, 0, 2, 2, 3, 4, 5, 5, 5, 5)
Data <- data.frame(Dilution,  NoofPlates, NoPositive)


fm1 <- glm(formula=NoPositive/NoofPlates~log(Dilution),
     family=binomial("logit"), data=Data, weights=NoofPlates)

coef(summary(fm1))
##               Estimate Std. Error  z value     Pr(>|z|)
## (Intercept)   4.173698  1.2522190 3.333042 0.0008590205
## log(Dilution) 1.622552  0.4571016 3.549653 0.0003857398

anova(fm1,test="Chisq")
##               Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
## NULL                              9     41.212              
## log(Dilution)  1   37.979         8      3.233 7.151e-10 ***

Les résultats des tests LRT et Wald sont encore assez différents ( valeurs de contre ), mais pour des raisons pratiques, nous pouvons aller de l'avant en disant qu'ils sont tous les deux fortement significatif ... (Dans ce cas (avec un seul paramètre), donne exactement la même valeur de p que .)p4×1047×1010aod::wald.test()summary()

Les intervalles de confiance Wald vs profil sont également modérément différents, mais le fait que les IC [indiqués ci-dessous] de (0,7,2,5) (Wald) et (0,9, 2,75) (LRT) soient pratiquement différents dépend de la situation particulière.

Wald:

confint.default(fm1)
##                   2.5 %   97.5 %
## (Intercept)   1.7193940 6.628002
## log(Dilution) 0.7266493 2.518455

Profil:

confint(fm1)
##                   2.5 %   97.5 %
## (Intercept)   2.2009398 7.267565
## log(Dilution) 0.9014053 2.757092
Ben Bolker
la source