本文内容来自参考书《数学建模(第四版)》高等教育出版社
背景
牙膏公司销售部的研究人员收集了过去30个销售周期(每个销售周期为四周)公司生产的牙膏的 销售量、销售价格、投入的广告费用 以及同期其他厂家生产的同类牙膏的市场平均销售价格。试根据这些数据建立一个数学模型,分析牙膏销售量与其他因素的关系
分析与假设
由于牙膏是生活必需品,对于大多数顾客来说购买同类产品的牙膏时更多地会在意不同品牌之间的价格差异,而不是价格本身。因此,在研究各个因素对销售量的影响时,用价格差代替公司销售价格和其他厂家平均价格更为合适。
基本模型
利用散点图观察销售量与价格差和广告费用的关系
df<-read.csv("Python_practice/shuxuejianmu/practice_10_chapter.csv")
df$P5<-df$P3^2
head(df)#P4代表价格差;P3代表广告费用
library(ggplot2)
ggplot(df,aes(x=P4,y=Sales))+geom_point()+labs(x="价格差",y="销售量")+geom_smooth(method="lm",se=F)+theme_bw()
ggplot(df,aes(x=P3,y=Sales))+geom_point()+geom_smooth(se=F)+labs(x="广告费用",y=“销售量”)+theme+bw()
从图一可以发现随着价格差(x1)的增加,销售量(y)有比较明显的线型增长趋势,建立简单模型 y = β0 + β1·x1+随机误差 。图二可以看出,随着广告费用的增加,销售量有向上弯曲增加的趋势,建立简单模型 y = β0 + β1·x2 +β2·x2·x2+随机误差
综合上面的分析,建立如下回归模型 y = β0 + β1·x1 + β2·x2 +β3·x2·x2+随机误差,x为回归变量,y是给定x时牙膏销售量的平均值,β称为回归系数,如果模型选择的合适,随机误差大致服从均值为0的正态分布。
模型求解
利用R语言的lm()函数
lm.out<-lm(Sales~P4+P3+P5,data=df)
summary(lm.out)
输出结果结果分析
R-squared = 0.907 指因变量y(销售量)的90.7%可由模型确定,F-statistic值远远超过F检验的临界值,p-value远小于0.05,因而模型从整体来看是可用的。
销售量预测
将回归系数的估计值代入模型,只需知道该销售周期的价格差和投入的广告费用,即可预测公司未来某个销售周期牙膏的销售量y。
PS:参考书给的模型求解工具是MATLAB,可同时求出参数的置信区间。自己在《应用统计分析与R语言实战》这本参考书里找到了利用R进行模型求解同时输出参数置信区间的方法,抽时间补上这部分内容。