我在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尝试过以下的事情并且一直在失败。
我尝试使用p
和1.0
及其他内容在as.numeric()
中投射as.list()
。我希望看起来像p
中的1.3
R对象。换句话说,我相信格式是为什么事情不适合我的原因?
无论我尝试什么变异或演员,我似乎都无法将其变成1.3
中的形式并按照需要显示图像。特别是将索引作为列功能。
我空出了stackoverflow和R帮助文件。当我使用命令class(p)
时,都告诉我它们是数字的。
给出上述内容,有人可以告诉我如何使用R以预测函数可以使用的格式从glmmPQL获取输出,如上所示吗?
换句话说,如何确保1.0
中的输出与R中1.3
的输出相匹配?我的尝试失败了,我会非常感谢R中更熟练的人指出我失败的地方?
答案 0 :(得分:1)
如果您使用as.numeric(p),那么您将获得所需的值 - 那么唯一的区别是GLM输出具有名称。您可以使用以下内容添加这些内容:
p <- as.numeric(p)
names(p) <- 1:length(p)
如果这不起作用,您可以使用str(p)
更深入地检查对象的结构。