我一直在破坏我的(非r-savy)大脑,以获得R来产生二项式glmer模型的正确预测百分比。我知道这不是统计上的超级信息,但它经常被报道;所以我也想报告一下。
DATA:
从属变量:Tipo,有2个值:'s'或'p'。 一系列因子预测因子,而不是一个连续变量。 2个随机截距:测试对象,以及他/她回答的名词
用于模型的代码:
model <- glmer(Tipo ~ agency + tense +
co2pr + pr2pr + socialclass +
(1|muestra) + (1|nouns),
data=datafile, family="binomial",
control=glmerControl(optimizer="bobyqa"),
contrasts=c("sum", "poly"))
我知道有一个函数predict()
,它接受一个模型对象并根据该模型制定预测,但我似乎无法让它对我有用。如果您愿意分享代码,我将不胜感激。
提前致谢。
答案 0 :(得分:7)
为了进行预测,您需要一个阈值(有关此主题的整个文献[搜索&#34; ROC曲线&#34;或&#34; AUC&#34;] ...)天真地采摘0.5截止值(如果你不知道或想要假设任何关于假阳性与假阴性的相对成本,或者相当于敏感性与特异性的值),这是一个合理的默认值,那么
p <- as.numeric(predict(model, type="response")>0.5)
应该给出预测的概率并将它们分别转换为0或1。然后
mean(p==datafile$Tipo)
应该给你正确的比例。
table(p,datafile$Tipo)
应该给你一个预测与观察的表格。