如何从glmmPQL获得预测输出以使用R?

时间:2017-04-20 03:51:32

标签: r prediction predict

问题

我在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)

它给出的输出如下:

enter image description here

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

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)

output from logistic predict

尝试

我认为解决上述问题的方法是将其转换为如下所示的格式(1.3)。我使用R尝试过以下的事情并且一直在失败。

我尝试使用p1.0及其他内容在as.numeric()中投射as.list()。我希望看起来像p中的1.3 R对象。换句话说,我相信格式是为什么事情不适合我的原因?

无论我尝试什么变异或演员,我似乎都无法将其变成1.3中的形式并按照需要显示图像。特别是将索引作为列功能。 我空出了stackoverflow和R帮助文件。当我使用命令class(p)时,都告诉我它们是数字的。

问题

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

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

1 个答案:

答案 0 :(得分:1)

如果您使用as.numeric(p),那么您将获得所需的值 - 那么唯一的区别是GLM输出具有名称。您可以使用以下内容添加这些内容:

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

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