data = read.csv('Advertising.csv', header = TRUE, stringsAsFactors = FALSE)
plot (data$TV, data$sales)#以电视广告投入和销售量为坐标轴绘制散点图
abline(a = 0, b = 0.095, col = 'red')#插入估计的回归
model1 = lm(sales~TV, data = data)#对电视投入和销售量两个数据进行回归分析
summary (model1)#生成回归分析报告
abline (model1, col = 'green')#绘制新的回归曲线
plot (model1, 1)#线性假设,对于任意自变量的值来说,残差的期望应该是0(红线应与0基本一致)
同方差假设:残差的值应该均匀落在x轴两侧;解决方法:数据变换
plot (model1, 2)#正态分布假设:因变量与残差应该服从正太分布,生成Q-Q PLOT
点应该大致落在直线上
生成的回归分析报告:
三大假设保证模型的合理性,在三大假设成立的基础上,我们才能确保估计值服从我们希望的随机分布形式(t正太分布,F分布),才能进行统计推断
利用线性回归模型做预测:
确定范围:95%或者99%,例如预测TV = 100时的sales,代码如下:
new = data[1,]
new[2]=100
predict (model1, new, interval = 'prediction', se.fit=TRUE, level = 0.95)
predict用法:
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf, interval = c(“none”, “confidence”, “prediction”), level = 0.95, type = c(“response”, “terms”), terms = NULL, na.action = na.paspred.var = res.var/weights, weights = 1, …)
newdata参数:An optional data frame in which to look for variables with which to predict. If omitted, the fitted values are used.
se.fit参数:A switch indicating if standard errors are required.是否采取标准误
interval参数:区间计算的类型
level:置信度
运行结果:
预测值 下界 上界