全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6137 2
2016-03-23
R语言实战一书使用bootstrap包中的crossval()进行交叉验证
代码为
shrinkage<-function(fit,k=10){
  require(bootstrap)

  theta.fit<-function(x,y){lsfit(x,y)}
  theta.predict<-function(fit.x){cbind(1,x)%*%fit$coef}

  x<-fit$model[,2:ncol(fit$model)]
  y<-fit$model[,1]

  results<-crossval(x,y,theta.fit,theta.predict,ngroup = k)
  r2<-cor(y,fit$fitted.values)^2
  r2cv<-cor(y,results$cv.fit)^2
  cat("Original R-square=",r2,"\n")
  cat(k,"Fold Cross-Validated R-square=",r2cv,"\n")
  cat("Change=",r2-r2cv,"\n")
}



states<-as.data.frame(state.x77[,c("Murder","Population",
                                   "Illiteracy","Income","Frost")])
fit<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
shrinkage(fit)


我对照数次都觉得我并没有输入错误,但是R却显示如下信息
Error in theta.predict(u, x[groups[[j]], ]) :
  unused argument (x[groups[[j]], ])

求解答TAT谢谢大大!!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-3-9 15:57:06
我也是新手。。不明白为什么你的不对,我刚才对着你的一遍,没有找出来,但是我的可以运行,给你看看我的代码吧。


shrinkage<-function(fit,k=10){
require(bootstrap)
theta.fit<-function(x,y){lsfit(x,y)}
theta.predict<-function(fit,x){cbind(1,x)%*%fit$coef}
x<-fit$model[,2:ncol(fit$model)]
y<-fit$model[,1]
results<-crossval(x,y,theta.fit,theta.predict,ngroup=k)
r2<-cor(y,fit$fitted.values)^2
r2cv<-cor(y,results$cv.fit)^2
cat("Original R-square=", r2,"\n")
cat(k,"Fold Cross-Validated R-square =",r2cv,"\n")
cat("Change =",r2-r2cv,"\n")
}
fit<-lm(Murder ~ Population + Income + Illiteracy +Frost,
data=states)
shrinkage(fit)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-3-13 11:54:53
少女AAAAA 发表于 2017-3-9 15:57
我也是新手。。不明白为什么你的不对,我刚才对着你的一遍,没有找出来,但是我的可以运行,给你看看我的代 ...
谢谢谢谢!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群