二项式 glmer() 预测的分类精度
Classification accuracy of binomial glmer() predictions
我一直在绞尽脑汁(非 r-savy)让 R 为二项式 glmer 模型生成正确预测的百分比。我知道这在统计上不是很有用,但经常被报道;所以我也想举报
数据:
因变量:Tipo,它有 2 个值:'s' 或 'p'。
一堆因子预测变量,而不是单个连续变量。
2 随机截取:测试对象,名词 s/he 回复
模型使用的代码:
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()
接受模型对象并根据该模型制定预测,但我似乎无法让它为我工作。如果您愿意分享代码,我将不胜感激。
提前致谢。
为了做出预测,您需要一个阈值(关于这个主题有整篇文献 [搜索 "ROC curve" 或 "AUC"] ...)天真地选择一个 0.5 的截止值(这是一个合理的默认值,如果你不知道或不想假设任何关于误报与假阴性的相对成本,或等效的敏感性与特异性的价值),那么
p <- as.numeric(predict(model, type="response")>0.5)
应该给出预测概率并将它们分别转换为0或1。那么
mean(p==datafile$Tipo)
应该给你正确的比例。
table(p,datafile$Tipo)
应该给你一个预测与观察 table。
我一直在绞尽脑汁(非 r-savy)让 R 为二项式 glmer 模型生成正确预测的百分比。我知道这在统计上不是很有用,但经常被报道;所以我也想举报
数据:
因变量:Tipo,它有 2 个值:'s' 或 'p'。 一堆因子预测变量,而不是单个连续变量。 2 随机截取:测试对象,名词 s/he 回复
模型使用的代码:
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()
接受模型对象并根据该模型制定预测,但我似乎无法让它为我工作。如果您愿意分享代码,我将不胜感激。
提前致谢。
为了做出预测,您需要一个阈值(关于这个主题有整篇文献 [搜索 "ROC curve" 或 "AUC"] ...)天真地选择一个 0.5 的截止值(这是一个合理的默认值,如果你不知道或不想假设任何关于误报与假阴性的相对成本,或等效的敏感性与特异性的价值),那么
p <- as.numeric(predict(model, type="response")>0.5)
应该给出预测概率并将它们分别转换为0或1。那么
mean(p==datafile$Tipo)
应该给你正确的比例。
table(p,datafile$Tipo)
应该给你一个预测与观察 table。