如何从 glmmPQL 获得预测输出以使用 R 处理性能?

How to get the prediction output from glmmPQL to work with performance using R?

问题

我在 Windows 10(x64 位)上使用 R 3.3.3。我从 glmmPQL 预测函数得到以下预测输出,如下所示:

library(MASS)
library(nlme) 
library(dplyr)

model<-glmmPQL(a ~ b + c + d, data = trainingDataSet, family = binomial, random = list( ~ 1 | e), correlation = corAR1())

给出预测值如下:

p <- predict(model, newdata=testingDataSet, type="response",level=0) (1.0)

它给出的输出如下:

然后我尝试使用以下代码测量此输出的性能:

pr <- prediction(p, testingDataSet$a)(1.1)

它给我们如下错误:

Error in prediction(p, testingDataSet$a) : Format of predictions is invalid. (1.2)

当数据如下所示时,我已经成功地使用其他函数(glm、svm、nn)在 R 中使用预测方法:

model<-glm(a ~ b + c + e, family = binomial(link = 'logit'), data = trainingDataSet)

p <- predict(model, newdata=testingDataSet, type="response") (1.3)

尝试次数

我相信解决上述问题的方法是将其转换为如下所示的格式 (1.3)。我使用 R 尝试了以下操作,但都失败了。

我尝试使用 as.numeric()as.list() 和其他东西将 p 转换为 1.0。我想要看起来像 1.3 中的 p R 对象。换句话说,我认为格式是我无法正常工作的原因?

无论我尝试什么变异或转换,我似乎都无法将其放入 1.3 中的形式并按需要显示图像。特别是具有索引作为列功能。 我在 Whosebug 和 R 帮助文件上空手而归。当我使用命令 class(p) 时,两者都告诉我它们是数字。

问题

给出以上内容,有人能告诉我如何使用 R 以预测函数可以使用的格式从 glmmPQL 获取输出,如上所示吗?

换句话说,我如何确保 1.0 中的输出可以与 R 中 1.3 中的输出相匹配?我的尝试失败了,我非常感谢 R 方面更熟练的人指出我失败的地方?

如果你使用 as.numeric(p) 那么你会得到你想要的值 - 那么唯一的区别就是 GLM 输出有名字。您可以使用以下内容添加这些内容:

p <- as.numeric(p)
names(p) <- 1:length(p)

如果这不起作用,您可以使用str(p)更深入地检查对象的结构。