版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(2645)
>
虫友互识
(189)
>
导师招生
(128)
>
文献求助
(95)
>
论文投稿
(62)
>
公派出国
(45)
>
硕博家园
(42)
>
休闲灌水
(39)
>
考博
(35)
>
招聘信息布告栏
(29)
>
教师之家
(22)
>
论文道贺祈福
(21)
>
找工作
(21)
>
考研
(20)
>
博后之家
(17)
>
基金申请
(17)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
计算模拟
»
【求助】逐一法交叉验证相关系数
1
1/1
返回列表
查看: 1920 | 回复: 4
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
本帖产生 1 个 计算强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
snoopyzhao
至尊木虫
(职业作家)
计算强帖: 1
应助: 157
(高中生)
贵宾: 0.02
金币: 18844.7
红花: 29
帖子: 3803
在线: 1422.4小时
虫号: 183750
注册: 2006-02-13
专业: 污染生态化学
★ ★ ★ ★ ★
luoqiquan(金币+5, 计算强帖+1):thank you very much 2010-11-05 20:30:43
贴一个我用 R 语言写的 LOO-LGO CV 的程序,应该能够看得懂,至于其它语言如何实现,我就无能为力了……
CODE:
lmcv <- function(obj, ng = NULL, random = FALSE) {
#
# The Leave-One-Out (LOO) and/or Leave-Group-Out (LGO) Cross-Validation in R for (Multiple) Linear Regression.
#
# Input:
# obj: the model of MLR
# ng: number of group, if missing, do LOO
# random: logical, if TRUE, do random CV
#
# Output:
# q.squared: cross-validation relation coefficient.
# SDEP: Standard Deviation of Error of Predictions
# newsq: variance in Y explained only for LOO CV
#
# Usage:
# loo <- cv.lm(obj)
# lgo <- cv.lm(obj, ng = 5)
#
data <- data.frame(y = obj$model[,1], x = obj$model[, -1])
col.names <- colnames(data)
N <- nrow(data)
if (random == TRUE) data <- data[sample(1:N),]
if (missing(ng)) ng <- N # LOO CV
ytest <- numeric(N)
ypred <- numeric(N)
newrsq <- numeric(ng)
g <- N %/% ng
for (i in 1:ng) {
if (g == 1) {
index <- i
}
else {
index <- c(i, ng * seq(1, (g - 1)) + i)
if (N %% ng != 0 & i <= N %% ng) index <- c(index, (g * ng + i))
}
ytest[index] <- data[index,1]
newtrain <- data[-index, ]
xtest <- data.frame(x = data[index, -1])
colnames(xtest) <- col.names[-1]
newfm <- lm(y ~., data = newtrain)
newrsq[i] <- summary(newfm)$r.squared
ypred[index] <- predict(newfm, xtest)
}
q.squared <- 1 - sum((ytest - ypred)^2) / sum((ytest - mean(ytest))^2)
SDEP <- sqrt(sum((ytest - ypred)^2) / N)
return(list(q.squared = q.squared, SDEP = SDEP, newrsq = newrsq))
}
赞
一下
(2人)
回复此楼
3楼
2010-11-05 20:09:14
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
智能机器人
Robot
(super robot)
我们都爱小木虫
找到一些相关的精华帖子,希望有用哦~
留一法交叉验证求助
已经有7人回复
交叉验证相关系数q方和相关系数R方
已经有14人回复
【求助】交叉验证相关系数
已经有5人回复
【求助】什么软件可以实现Leave-one-out交叉验证计算?【已完结】
已经有3人回复
【求助】QSAR模型中交叉验证系数(q2)怎么获得?
已经有19人回复
点击这里搜索更多相关资源
科研从小木虫开始,人人为我,我为人人
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
songbin7957
的主题更新
1
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定