model4 = lm(sales~TV + I(TV^2), data = data)
summary (model4)
将tv作为二次项放入回归模型中,I for isolated,结果如下:

新增二次项P>0.05,统计意义上显著性不强,二次项不明确;调整后R方变化,新增加变量t统计量大于1时调整后R方会增加
*注意区分经济学意义上的显著性和统计学意义上的显著性
将二次函数(抛物线)绘制于散点图上无法用abline(只能画直线),使用lines函数,以点代线
plot (data$TV, data$sales)#绘制散点图
cc = data
cc[, 2] = seq (0, 300, length.out=200)#将TV一行替换为直线的多个点的x坐标轴,seq函数的意思是生成一组数字,从from开始,到to结束,每两个数间的间隔是length。length.out的作用是以数字数量自动定义步长
dd = predict (model4,cc)#预测出200个点的y坐标
lines (cc[,2], dd, col = 'red')#拼凑出一条抛物线
在之前的model3当中,我们看到model3的并不满足线性假设和同方差假设:

通过如下代码引入二次项TV建立model5并进行验证:
model5 = lm(sales~TV + radio + I(TV^2), data = data)
plot (model5, 1)
得到:

可以看到点密集程度提高,但是线性假设仍然存在问题,考虑添加特殊的二次项:交乘项,捕捉自变量之间的互补或者替代效应:
model6 = lm(sales~TV + radio + I(TV^2) + I(TV * radio), data = data)
plot (model6, 1)
得到如下散点图:

线性假设拟合明显提升

同时分析报告结果显示,每一个变量的显著性十分明显,意味着每一个变量的添加都是有意义的
上述步骤是回归诊断,通过
1. ggpaits()函数生成对比图找出主要相关变量和无关变量
2. 建立多远线性模型,然后通过Anova函数筛选出有解释力显著性高的自变量
3. 观察残差分布图与Q-Q图,增加高次项
如果三大假设出现问题,第一步解决异方差性问题,常用方法:变换因变量,比如对因变量求对数
如:
data = data %>% mutate (lnsales = log(sales))
model7 = lm (lnsales ~ TV + radio + I(TV^2)+I(TV*radio), data = data)

明显有了较大改善
第二步,解决线性问题
常用方法:对自变量进行变换,比如正u型可以增加二次项
第三步,解决正态性问题
如果之前没有的话,一般对自变量和因变量进行对数变换,真实世界往往是正态+头部效益
对广义线性模型的解释:
1. 加入平方项:y = k1x+k2x^2 + b
x每增加1,y增加k1+2k2x,增速在加快/放缓
2. 加入交乘项:y = k1x1 + k2x2 + k3x1*x2+b
k1和k2同为正:
如果k3是显著为正的,x1和x2有互补作用
如果k3是显著为负的,x1和x2有替代作用
3. 对数变换:
ln(y) = kx+b,x增加1, y增加100k%
y = k*ln(x)+b,x增加1%,y增加0.01k
ln(y) = k*ln(x)+b,x增加1%,y增加k%。经济学中“弹性”的概念