留一法交叉验证 GLM 模型

如何解决留一法交叉验证 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?