R语言Bass模型进行销售预测

R语言Bass模型进行销售预测

BASS扩散模型三个参数:#最终购买产品的总人数,m; 创新系数p; 和#系数的模仿:

 BASS扩散模型

q# exampleT79<-1:10Tdelt<-(1:100)/10Sales<-c(840,1470,2110,4000,7590,10950,10530,9470,7790,5890)Cusales<-cumsum(Sales)Bass.nls<-nls(Sales~M*(((P+Q)^2/P)*exp(-(P+Q)*T79))/(1+(Q/P)*exp(-(P+Q)*T79))^2,start=list(M=60630,P=0.03,Q=0.38))summary(Bass.nls)

##

## Formula: Sales ~ M * (((P + Q)^2/P) * exp(-(P + Q) * T79))/(1 + (Q/P) *

## exp(-(P + Q) * T79))^2

##

## Parameters:

## Estimate Std. Error t value Pr(>|t|)

## M 6.80e+04 3.13e+03 21.74 1.1e-07 ***

## P 6.59e-03 1.43e-03 4.61 0.0025 **

## Q 6.38e-01 4.14e-02 15.41 1.2e-06 ***

## ---

## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##

## Residual standard error: 727 on 7 degrees of freedom

##

## Number of iterations to convergence: 8

## Achieved convergence tolerance: 7.32e-06

# get coefficient

Bcoef <- coef(Bass.nls)

m <- Bcoef[1]

p <- Bcoef[2]

q <- Bcoef[3]

#将M的起始值设置为记录的总销售额。

ngete <- exp(-(p + q) * Tdelt)

# plot pdf

Bpdf <- m * ((p + q)^2/p) * ngete/(1 + (q/p) * ngete)^2

plot(Tdelt, Bpdf, xlab = "Year from 1979", ylab = "Sales per year", type = "l")

points(T79, Sales)


# plot cdfBcdf <- m * (1 - ngete)/(1 + (q/p) * ngete)plot(Tdelt, Bcdf, xlab = "Year from 1979", ylab = "Cumulative sales", type = "l")points(T79, Cusales)

#当q = 0时,只有创新者没有模仿者。

Ipdf <- m * ((p + 0)^2/p) * exp(-(p + 0) * Tdelt)/(1 + (0/p) * exp(-(p + 0) *

Tdelt))^2# plot(Tdelt, Ipdf, xlab = 'Year from 1979',ylab = 'Isales per year',# type='l')Impdf <- Bpdf - Ipdfplot(Tdelt, Bpdf, xlab = "Year from 1979", ylab = "Sales per year", type = "l",

col = "red")lines(Tdelt, Impdf, col = "green")lines(Tdelt, Ipdf, col = "blue")

#当q = 0时

Icdf <- m * (1 - exp(-(p + 0) * Tdelt))/(1 + (0/p) * exp(-(p + 0) * Tdelt))

# plot(Tdelt, Icdf, xlab = 'Year from 1979',ylab = 'ICumulative sales',

# type='l')

Imcdf <- m * (1 - ngete)/(1 + (q/p) * ngete) - Icdf

plot(Tdelt, Imcdf, xlab = "Year from 1979", ylab = "Cumulative sales", type = "l",

col = "red")

lines(Tdelt, Bcdf, col = "green")

lines(Tdelt, Icdf, col = "blue")


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds