目录
一、数据
可以直接使用我上传的数据(经过处理,直接导入使用)
从网页https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/regression/mg获取mg数据,该数据有1个因变量和6个自变量。
将数据复制进excel,选中第一列,数据->分列->分隔符号->空格,将数据进行分列。

将数据中的x:删去(可以使用替换功能)

最后在第一行加入变量名,另存为csv文件,即可以在R中正常载入。

二、十折交叉验证
1.思想
十折交叉验证的方法用于判断实验结果的可靠性。
其基本实现方法是:将所有数据划分为十份,依次选取一份数据作为测试集,其余九份做训练集,共建立十个模型,可分别得到10个标准化的均方误差(NMSE),求出10次平均的NMSE。

对于训练集来说,其NMSE=1-R²,对于测试机来说,NMSE与回归得到的R²没有太大关系。交叉验证主要关心的是测试集的NMSE。
2.实现
rm(list=ls())
#setwd("") #设置路径
#随机选择Z折下标集的函数,n样本量,seed随机种子
CV=function(n,Z=10,seed=888){
z=rep(1:Z,ceiling(n/Z))[1:n]
set.seed(seed)
z=sample(z,n)
mm=list()
#mm[[i]]为第i个下标集
for (i in 1:Z) mm[[i]]=(1:n)[z==i];return(mm)
}
#数据导入
w=read.csv("mg.csv")
n=nrow(w);Z=10;mm=CV(n,Z);D=1
MSE=rep(0,Z) #建立一个向量储存结果
for(i in 1:Z){ #循环十次
m=mm[[i]];
M=mean((w[m,D]-mean(w[m,D]))^2)
a=lm(y~.,w[-m,]) #简单线性回归,[-m]为训练集

本文详细介绍了使用R语言进行回归分析的过程,包括十折交叉验证、决策树、随机森林、支持向量机回归等方法,并对比了不同模型的性能。
最低0.47元/天 解锁文章
660





