gen<-function(n){ x<-matrix(runif(5*n),n,5) TT<-10*sin(pi*x[,1]*x[,2])+20*(x[,3]-0.5)^2+10*x[,4]+5*x[,5] y<-TT+rnorm(n) list(x,y,TT) } library(randomForest) hw6<-function(times){ n=200 ptm <- proc.time() result<-rep(0,times) resulttest<-rep(0,times) for(i in 1:times){ #calculate loss #set.seed() da<-gen(n) #generate data tr<-da[[3]] #true value y<-da[[2]] #response y xx<-da[[1]] #independent variables X rffit<-randomForest(xx,y) #fit a randomforest yhat<-rffit$predicted #OOB yhat lossrf<-sum((tr-yhat)^2)/n result[i]<-lossrf #calculate prediction error tda<-gen(n) #generate testing data ytest<-tda[[2]] #testing data response y xtest<-tda[[1]] #testing data independent variables X yhattest<-predict(rffit,xtest) #predicted value of the testing data using the fit from training data testrf<-sum((ytest-yhattest)^2)/n resulttest[i]<-testrf } print(result) print(resulttest) loss<-mean(result) pe<-mean(resulttest) print(loss) print(pe) }