# -----------多元回归的实现-------------
load("F:/桌面/classR/exercise/movie.RData")
movie
# 多元回归的实现
attach(movie) #将数据集中的变量列入搜索路径里
lm.sol=lm(Box~Cost+Baidu+Days) # 所以没有写data=
summary(lm.sol) # 提取结果
# 影响因素的强度
Zmovie<-data.frame(scale(movie))
lm.sol2=lm(Box~0+Cost+Baidu+Days,data=Zmovie)
summary(lm.sol2)
#预测
new=data.frame(Cost=1.3,Baidu =1445,Days=76)
predict(lm.sol,newdata = new,interval = "prediction")
# 回归模型的诊断
attach(movie)
lm.sol=lm(Box~Cost+Baidu+Days,data=movie)
plot(lm.sol)
shapiro.test(lm.sol$residuals)
residuals(lm.sol)
#or
shapiro.test(residuals(lm.sol))
#---------曲线回归模型-------------
#从前提假设的角度
fit1=lm(Box~Score,data=movie)
plot(fit1)
shapiro.test(residuals(fit1))
fit2=lm(I(log(Box))~Score,data = movie) # I表示括号里做数值运算
shapiro.test(residuals(fit2))
#从拟合效果的角度
plot(Box~Days,movie)
lm.sol3=lm(log(Box)~Days,data=movie)
summary(lm.sol3)
plot(lm.sol3)
fit3=lm(Box~Days,data=movie)
summary(fit3)
#一种模型选择方法AIC 曲线回归和线性回归不能通过R^2比较
AIC(lm.sol3)
AIC(fit3)
#-----------练习:二次回归模型--------------
lm.sol3=lm(log(Box)~Days,data=movie)
summary(lm.sol3)
AIC(lm.sol3)
lm.sol4=lm(Box~Days+I(Days^2),movie)
summary(lm.sol4)
AIC(lm.sol4)
#可以转换成线性模型的函数
#回归分析过程