R语言学习笔记——线性回归

多次使用$和^ 两个符号识别出现问题 因此加了空格 实际使用时代码之间没有空格。
参考书目:R语言实战

#简单线性回归
fit <- lm(weight~height,data=women)
summary(fit) #展示模型的详细结果
women$weight
fitted(fit) #列出模型模拟的预测值
residuals(fit) #列出拟合模型的残差值
plot(women $ height,women $ weight,
xlab=“Height(in inches)”,
ylab=“Weight(in pounds)”)
#生成评价拟合模型的诊断图
abline(fit)

#多项式回归
fit2 <- lm(weight~height+I(height^2),data=women)
summary(fit2)
plot(women height,women weight,
xlab=“Height(in inches)”,
ylab=“Weight(in lbs)”)
lines(women$height,fitted(fit2))

#三次多项式
library(car)
fit3 <- lm(weight~height+I(height ^ 2)+I(height ^ 3),data=women)
scatterplot(weight~height,data=women,
spread=FALSE,lty.smooth=2,pch=19,
main=“Women Age 30-39”,
xlab=“Height(inches)”,
ylab=“Weight(lbs.)”)

#多元线性回归
#将数据集转化为数据框
states <- as.data.frame(state.x77[,c(“Murder”,“Population”,“Illiteracy”,“Income”,“Frost”)])
#检测二变量关系
cor(states)
library(car)
scatterplotMatrix(states,spread=FALSE,lty.smooth=2,main=“Scatter Plot Matrix”)
#多元线性回归分析
fit <- lm(Murder~Population+Illiteracy+Income+Frost,data=states)
summary(fit)

#有交互作用的多元线性回归
fit <- lm(mpg~hp+wt+hp:wt,data=mtcars)
summary(fit)
library(effects)
plot(effect(“hp:wt”,fit,list(wt=c(2.2,3.2,4.2))),multiline=TRUE)

#回归诊断 (正态性 独立性 线性 同方差性)
#标准方法
fit <- lm(Murder~Population+Illiteracy+Income+Frost,data=states)
par(mfrow=c(2,2))
plot(fit)

#改进的方法
#1.正态性
#car包
library(car)
fit <- lm(Murder~Population+Illiteracy+Income+Frost,data=states)
qqPlot(fit,labels=row.names(states),id.method=“identify”,simulate=TRUE,main=“Q-Q Plot”)
#关注离群值Nevada点
states(fit)[“Nevada”]
fitted(fit)[“Nevada”]
residuals(fit)[“Nevada”]
rstudent(fit)[“Nevada”]
#residplot()函数生成学生化残差柱状图
residplot <- function(fit,nbreaks=10){
z <- rstudent(fit)
hist(z,breaks = nbreaks,freq = FALSE,
xlab = “Studentized Residual”,
main=“Distribution of Errors”)
rug(jitter(z),col=“blue”,lwd=2)
lines(density(z) $ x,density(z)$y,
col=“red”,lwd=2,lty=2)
legend(“topright”,legend = c(“Normal Curve”,“Kernel Density Curve”),
lty=1:2,col=c(“blue”,“red”),cex = .7)}
residplot (fit)
#2.误差独立性
#Durbin-Watson检验
durbinWatsonTest(fit) #p值不显著(p=0.282)说明无自相关性,误差项之间独立
#3.线性
library(car)
crPlots(fit)
#4.同方差性
library(car)
ncvTest(fit)
spreadLevelPlot(fit)#可以看到,计分检验不显著(p=0.19),说明满足方差不变假设

#线性模型综合假设方法
install.packages(“gvlma”)
library(gvlma)
gvmodel <- gvlma(fit)
summary(gvmodel)

#多重共线性问题
library(car)
vif(fit)
sqrt(vif(fit))>2 #结果表明预测变量不存在多重共线性问题,存在多重共线性可用逐步回归。
#逐步回归
df <- read.csv(“Rhomework.csv”,header=T)
lmfit <- lm(pro~hour+tem+pre+days,data=df)
#AIC越小越好 衡量模型优劣的指标 X2影响最大 看T或者P值 t值绝对值越大越好
lmfit <- lm(pro~hour+tem+pre+days,data=df)
step(lmfit)
lmfit2<-lm(pro~hour+tem+pre+days,data=df)
summary(lmfit2)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值