I've been busting my (non-r-savy) brains on a way to get R to produce the percentage of correct predictions for a binomial glmer model. I know this is not super informative statistically, but it is often reported; so I would like to report it as well.
DATA:
Dependent variable: Tipo, which has 2 values: 's' or 'p'. Bunch of factor predictors, not a single continuous variable. 2 random intercepts: the test subject, and the nouns s/he responded to
code used for the model:
model <- glmer(Tipo ~ agency + tense +
co2pr + pr2pr + socialclass +
(1|muestra) + (1|nouns),
data=datafile, family="binomial",
control=glmerControl(optimizer="bobyqa"),
contrasts=c("sum", "poly"))
I know there is a function predict()
which takes a model object and formulates predictions based upon that model, but I can't seem to make it work for me. I would appreciate if you would be willing to share the code.
Thanks in advance.
In order to make predictions, you need a threshold (there is a whole literature [search for "ROC curve" or "AUC"] on this topic ...) Naively picking a 0.5 cutoff (which is a reasonable default if you don't know or want to assume anything about the relative cost of false positives vs. false negatives, or equivalently the value of sensitivity vs. specificity), then
p <- as.numeric(predict(model, type="response")>0.5)
should give predicted probabilities and convert them to 0 or 1 respectively. Then
mean(p==datafile$Tipo)
should give you the proportion correct.
table(p,datafile$Tipo)
should give you a predicted-vs-observed table.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With