如何解决留一法交叉验证 GLM 模型
我试图通过首先将我的数据拟合到 glm 模型,然后使用预测来进行留一法交叉验证。显然我没有正确设置交叉验证,因为我收到错误。有人知道这应该怎么写正确吗?
data <- structure(list(hsa_miR_1306_5p = c(5.66281697186733,6.58664110311681,8.24680160610849,7.59469600671128,5.11353374464181,5.21216070738553
),hsa_miR_576_5p = c(3.01744918102835,4.94428256624179,6.47085031132479,6.341071987735,4.94239499718096),V3 = c(3,5,3,5),V4 = c(29.9,27.1,32.7,24.9,30.2,29.9),V5 = c(1957,1948,1951,1954,1946,1952),V6 = c(1,1,0)),row.names = c("1004773522","1108651363","1170306251","1170306252","1170306253","1170306258"
),class = "data.frame")
LOOCV 模型:
loocv <- sapply(1:nrow(data),function(x) {
loo.data <- data[-x,]
model <- glm(as.factor(V3) ~ hsa_miR_1306_5p + hsa_miR_576_5p + V4 + V5 + V6,family=binomial(logit),data=loo.data)
predict(model,newdata=data[x,],type = "lp")
})
情节:
roc.data <-roc(model$y,model$fitted.values,ci=T,predictor = loocv)
plot.roc(roc.data)
错误:
Error in match.arg(type) :
'arg' should be one of “link”,“response”,“terms”
解决方法
你需要小心你正在使用的包。请在分析前加载两个包:
library(pROC)
library(rms)
基础 R predict(或 predict.glm)函数有一个类型参数,但只有选项
type = c("link","response","terms")
通过指定获得线性预测变量
predict(...,type = "link")
您使用的语法来自 rms::predictrms() 函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。