乐趣区

关于算法:R语言Bass模型进行销售预测

原文链接:http://tecdat.cn/?p=3937

原文出处:拓端数据部落公众号

BASS 扩散模型

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

nls(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

# 取得系数

Bcoef <- coef(Bass.nls)

m <- Bcoef\[1\]

p <- Bcoef\[2\]

q <- Bcoef\[3\]

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

ngete <- exp(-(p + q) * Tdelt)
# 绘制概率密度函数
Bpdf <- m * ((p + q)^2/p) * ngete/(1 + (q/p) * ngete)^2
plot(Tdelt, Bpdf

plot(Tdelt, Bcdf, xlab = "Year from 1979"

# 当 q = 0 时,只有创新者没有模仿者。Ipdf <- m * ((p + 0)^2/p) * exp(-(p + 0) * Tdelt)/(1 + (0/p) * exp(-(p + 0) *


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))





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

退出移动版