R语言 数据集回归模型
1. 读取csv文件
data <- read.csv("D:\\路径")
2. 相关性分析 与 共线性判断
可以用R语言的cor函数来计算两个变量之间的相关性
值得注意的是用R中cor函数来计算相关性也是有局限的,即不能计算非线性模型
d_cor = cor(data)
kappa(d_cor)
kappa()为计算卡帕系数的函数:
- 当卡帕系数<100 , 说明共线性程度小;
- 当100<卡帕系数<1000 , 有较强的多重共线性;
- 当卡帕系数>1000,存在严重的多重共线性。
此外,利用car包中的 vif() 函数可以查看各自变量间的共线情况
library(car)
lm.test = lm(y~.,data)
vif(lm.test)
可以可视化两个变量间的相关性
plot(x.tc ~ x.ldl, col = "red", data)
3. 常见回归模型
① 线性回归
mod <- lm(y ~ ., data )
② 岭回归
- R语言中可以利用MASS包中的函数lm.ridge()来实现岭回归,而其中的lambda值需要自行定义,可以通过计算得到使得广义交叉验证GCV最小的lambda值。
而为了简便起见,这里利用ridge包中的linearRidge()函数进行自动选择岭回归参数。
library(ridge)
mod <- linearRidge(y ~ ., data )
③ Lasso回归
R语言中有多个包可以实现Lasso回归
可以使用lars包实现
library(lars)
mod <- lars(x,y,type = "lasso")
还可以使用glmnet包实现
library(glmnet)
fit <- glmnet(x, y, family="gaussian", nlambda=50, alpha=1)
④ 随机森林回归
在R语言中,randomForest包提供了随机森林的实现
library(randomForest)
fit <- randomForest(y~.,data = data,importance=TRUE, ntree=1000)
⑤ 回归树
library(rpart)
fit=rpart(y~.,data[train,])