sc4s2cg
sc4s2cg

Reputation: 163

How can I get the p-value for whether my binomial regression is significantly different from a null model in R?

I have a dataset demos_mn of demographics and an outcome variable. There are 5 variables of interest, so that my glm and null models looks like this:

# binomial model
res.binom <- glm(var.bool ~ var1 + var2*var3 + var4 + var5,
                 data = demos_mn, family = "binomial")
# null model
res.null <- glm(var.bool ~ 1,
                 data = demos_mn, family = "binomial")
# calculate marginal R2
print(r.squaredGLMM(res.binom))
# show p value
print(anova(res.null, res.binom))

That is my work flow for glm mixed models, but for my binomial model I do not get a p-value for the overall model only for the predictors. I'm hoping someone could enlighten me?

I did have some success using glmer for a repeated measures version of the model, however that unfortunately means I had to get rid of some key variables that were not measured repeatedly.

Upvotes: 0

Views: 1054

Answers (1)

Ben Bolker
Ben Bolker

Reputation: 226057

Perhaps you forgot test="Chisq" ? From ?anova.glm:

test: a character string, (partially) matching one of ‘"Chisq"’, ‘"LRT"’, ‘"Rao"’, ‘"F"’ or ‘"Cp"’. See ‘stat.anova’.

example("glm") ## to set up / fit the glm.D93 model
null <- update(glm.D93, . ~ 1)
anova(glm.D93, null, test="Chisq")
Analysis of Deviance Table

Model 1: counts ~ outcome + treatment
Model 2: counts ~ 1
  Resid. Df Resid. Dev Df Deviance Pr(>Chi)
1         4     5.1291                     
2         8    10.5814 -4  -5.4523    0.244

test="Chisq" is poorly named: it's a likelihood ratio test, note it's an asymptotic test [relies on a large sample size]. For GLMs with an adjustable scale parameter (Gaussian, Gamma, quasi-likelihood) you would use test="F".

Upvotes: 2

Related Questions