案例:回归分析-R实现
1)业务需求:
某牙膏制造企业为了更好的拓展产品市场,有效管理库存,董事会要求销售部门根据市场调查,找出公司生产牙膏销售量与销售价格以及广告投入等之间的关系,从而预测出在不同价格和广告费用下的销售量。
2)分析:
由于牙膏是生活必需品,对于大多数顾客来说,在购买时,更多地考虑不同品牌之间的价格差。所以,在研究各个因素对销量的影响时,用价格差代替公司销售价格和其他品牌平均价格更为合适。
3)建立模型:
Y : 牙膏销售量;X1:价格差;X2:公司广告费
###导入数据
toothpaste<-data.frame(
X1=c(-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,-0.15,0.15,0.20, 0.10,0.40,0.45,0.35,0.30, 0.50,0.50, 0.40,-0.05,-0.05,-0.10,0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55),
X2=c( 5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,5.25,6.00,6.50,6.25,7.00,6.90,6.80,6.80,7.10,7.00,6.80,6.50,6.25,6.00,6.50,7.00,6.80,6.80,6.50,5.75,5.80,6.80),
Y =c( 7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.87,7.10,8.00,7.89,8.15,9.10,8.86,8.90,8.87,9.26,9.00,8.75,7.95,7.65,7.27,8.00,8.50,8.75,9.21,8.27,7.67,7.93,9.26))
###建立模型
lm.sol<-lm(Y~X1+X2, data=toothpaste)
summary(lm.sol)
模型为,Y=4.0475+1.5883X1+0.5635X2,乍一看,系数通过了F和T检验,R方还算可以。但进一步分析。
##绘制X1与Y散点图与回归直线
attach(toothpaste)
plot(Y~X1); abline(lm(Y~X1))
##绘制X2与Y散点图与回归曲线
plot(Y~X2);
lm2.sol<-lm(Y~X2+I(X2^2))
x<-seq(min(X2), max(X2), len=200)
y<-predict(lm2.sol, data.frame(X2=x))
lines(x,y)
x2与y不仅仅是线性关系。所以
##更新模型
lm.new<-update(lm.sol,.~.+I(X2^2))
summary(lm.new)
模型残差的标准差有所下降,相关系数的平方R2有所上升,但又出现问题了,x2系数对应的p值大于0.05。
##去掉X2的一次项
lm2.new<-update(lm.new,.~.-X2)
summary(lm2.new)
虽然通过了F检验与T检验,但模型残差的标准差上升,R2下降。进一步修正,考虑X1与X2的交互作用。
##再次更新模型
lm2.new<-update(lm.new,.~.+X1*X2)
summary(lm2.new)
最终,Y=29.1133+ 11.1342X1 −7.6080X2+0.6712X22−1.4777X1*X2
总结:1,业务分析(价格差);2,建立模型;3,模型调整。
——————————————
往期精彩: