Testing 测试样本上的最佳子集回归(k倍后)
我正在R studio中运行最佳子集回归分析。我正在使用以下库: 图书馆(外文) 图书馆(glmnet) 图书馆(caTools) 图书馆(飞跃) 图书馆(ISLR) 图书馆(knitr) 图书馆(ggvis) 我想将我的样本分为三个样本:培训、交叉验证和测试(可能是50%、30%、20%) 我已经成功地在我们的培训中运行了best subset,并使用以下脚本交叉验证了这些结果:Testing 测试样本上的最佳子集回归(k倍后),testing,regression,subset,cross-validation,training-data,Testing,Regression,Subset,Cross Validation,Training Data,我正在R studio中运行最佳子集回归分析。我正在使用以下库: 图书馆(外文) 图书馆(glmnet) 图书馆(caTools) 图书馆(飞跃) 图书馆(ISLR) 图书馆(knitr) 图书馆(ggvis) 我想将我的样本分为三个样本:培训、交叉验证和测试(可能是50%、30%、20%) 我已经成功地在我们的培训中运行了best subset,并使用以下脚本交叉验证了这些结果: k = 10 set.seed(1) folds = sample(1:k,nrow(best_demo_trai
k = 10
set.seed(1)
folds = sample(1:k,nrow(best_demo_train),replace=TRUE)
table(folds)
cv.errors=matrix(NA,k,5, dimnames=list(NULL, paste(1:5)))
predict.regsubsets = function(object, newdata, id, ...) {
form = as.formula(object$call[[2]])
mat = model.matrix(form, newdata)
coefi = coef(object, id = id)
mat[, names(coefi)] %*% coefi
}
for(j in 1:k){
best.fit = regsubsets(selfaware ~., data=best_demo_train[folds != j,])
for (i in 1:5){
pred = predict(best.fit, best_demo_train[folds == j, ], id = i)
cv.errors[j, i] = mean((best_demo_train$selfaware[folds == j] - pred)^2)
}
}
mean.cv.errors=apply(cv.errors,2,mean)
mean.cv.errors
which.min(mean.cv.errors)
par(mfrow=c(1,1))
plot(mean.cv.errors,type='b')
points(which.min(mean.cv.errors),mean.cv.errors[which.min(mean.cv.errors)],
col="red",cex=2,pch=20)
reg.best=regsubsets (selfaware~.,data=best_demo_train)
coef(reg.best ,3)
reg.summary=summary(reg.best ,3)
reg.summary$adjr2
所以,一旦我有了“最佳”变量,我想用20%的数据“测试”这个模型。有人能帮我解决这个问题吗?我不知道测试这个模型的脚本是什么,在网上搜索失败了
谢谢,我很感激。
莎拉