R语言使用Bass模型进行手机市场产品周期预测

简介: R语言使用Bass模型进行手机市场产品周期预测

主要观点

巴斯Bass扩散模型已成功地用于预测各种新推出的产品以及成熟产品的市场份额。

该模型的主要思想来自两个来源:

  1. 消费者不受社会影响的产品意愿。
  2. 因为其他人已经采用了该产品,所以倾向于采用该产品。因此,在优质产品的生命周期中的早期采用者的影响变得足够强大,以致驱使许多其他人也采用该产品。

Bass模型显示了如何使用销售数据的前几个时期的信息来对未来的销售做出相当好的预测。可以很容易地看出,虽然该模型来自营销领域,但它也可以很容易地用于对现金流量的预测进行建模以确定初创公司的价值。


历史事例

Bass模型的文献中有一些经典的例子。例如,请参见下图所示的80年代VCR的实际与预测市场增长情况。

 

基本思想

将单个人从零时间到时间tt购买产品的累计概率定义为F(t)。那么,在时间tt的购买概率为密度函数f(t)= F'(t)。

从目前来看,在目前没有购买的情况下,时间t的购买率符合逻辑,即

 

建模就像在给定时间t建模产品的采用率


微分方程

巴斯建议将此采用率定义为

 

在这里,我们可以将p定义为 采用产品的消费者的  独立比率,将q定义为模仿率,因为q可以  模拟累积采用强度F(t)的影响。

因此,如果我们可以找到某产品的p和q,则可以预测其随着时间的采用,从而生成销售的时间路径。总结一下:

  • p:创新系数。
  • q:模仿系数。

求解F(t)的模型

我们重写方程:

并注意F(0)= 0。

解决方案中的步骤是:


另一种解决方案

一种替代方法(这是学生Muhammad Sagarwalla根据Alexey Orlovsky的想法提出的)如下。

 

所以我们写

 

 

 

我们得到

 

 

 

与公式(*)相同。以前的解决方案是

 

 

求解f(t)

 

因此,如果目标市场的大小为m,则在每个t处,采用率简单地由m×f(t)给出。

例如,设置m = 100,000,p = 0.01和q = 0.2。然后,采用率如下图所示。



f = function(p,q,t) {


p = 0.01
q = 0.20
plot(t,m*f(p,q,t),type="l",col="blue",l

 

R中的符号数学



#BASS 模型


FF = expression(p*(exp((p+q)*t)-1)/(p*exp((p+q)*t)+q))


## expression(p * (exp((p + q) * t) - 1)/(p * exp((p + q) * t) +
##     q))
#取导数
D(FF,"t")
## p * (exp((p + q) * t) * (p + q))/(p * exp((p + q) * t) + q) -
##     p * (exp((p + q) * t) - 1) * (p * (exp((p + q) * t) * (p +
##         q)))/(p * exp((p + q) * t) + q)^2
#设置函数
ff = function(p,q,t) {
res
#评估
plot(t,m*eval(ff(p,q,t)),type="l",col="red",lwd=3)
 

 

iPhone销售预测

例如,让我们看一下iPhone销量的趋势(我们将季度销量存储在一个文件中并读入文件,然后进行Bass模型分析)。

此计算的R代码如下:



#使用苹果iPHONE销售数据
data = read.table("tecdat/iphone.txt",header=TRUE)
##   Quarter Sales_MM_units
## 1   Q3_07           0.27
## 2   Q4_07           1.12
## 3   Q1_08           2.32
## 4   Q2_08           1.70
## 5   Q3_08           0.72
## 6   Q4_08           6.89print(tail(data))
##    Quarter Sales_MM_units
## 30   Q4_14          39.27
## 31   Q1_15          74.47
## 32   Q2_15          61.17
## 33   Q3_15          47.53
## 34   Q4_15          48.05
## 35   Q1_16          74.78
##
## Call:
## lm(formula = isales ~ cum_isales + cum_isales2)
##
## Residuals:
##     Min      1Q  Median      3Q     Max
## -14.050  -3.413  -1.429   2.905  19.987
##
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)  3.696e+00  2.205e+00   1.676   0.1034
## cum_isales   1.130e-01  1.677e-02   6.737 1.31e-07 ***
## cum_isales2 -5.508e-05  2.110e-05  -2.610   0.0136 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.844 on 32 degrees of freedom
## Multiple R-squared:  0.8729, Adjusted R-squared:  0.865
## F-statistic: 109.9 on 2 and 32 DF,  p-value: 4.61e-15b = res$coefficients
#拟合模型
m1 = (-b[2]+sqrt(b[2]
m2 = (-b[2]-sqrt(b[2]^2-4
## cum_isales cum_isales
##  -32.20691 2083.82202## [1] 2083.822
##                                 (Intercept)           cum_isales2
##                "p,q=" "0.00177381124189973"   "0.114767511363674"
##绘制拟合的模型




plot(t,fn_f,type="l"


lines(1:n,isales,col="red",lwd=2,lty=2)

三星Galaxy手机销量



#读取Galaxy销售数据
data = read.csv("tecdat/galaxy.csv")


#获取系数


res = lm(isales ~ cum_isales+cum_isales2)
print(summary(res))
## Residuals:
##      Min       1Q   Median       3Q      Max
## -11.1239  -6.1774   0.4633   5.0862  13.2662
##
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)  5.375e+01  4.506e+00  11.928 2.87e-10 ***
## cum_isales   7.660e-02  1.068e-02   7.173 8.15e-07 ***
## cum_isales2 -2.806e-05  5.074e-06  -5.530 2.47e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 7.327 on 19 degrees of freedom
## Multiple R-squared:  0.8206, Adjusted R-squared:  0.8017
## F-statistic: 43.44 on 2 and 19 DF,  p-value: 8.167e-08
b = res$coefficients


#拟合模型


m1 = (-b[2]+sqrt(b[2]^2-4*
m2 = (-b[2]-sqrt(b[2]^
print(c(m1,m2))
## cum_isales cum_isales
##  -578.9157  3308.9652## [1] 3308.965
##                               (Intercept)          cum_isales2
##               "p,q=" "0.0162432614649845" "0.0928432001791269"
#绘制拟合模型
nqtrs = 100
t=seq(0


plot(t,fn_f,type="l"


lines(1:n,isales,col="red",lwd=2,lty=2)

 

全球半导体销量



#读取半导体销售数据
data = read.csv("tecdat/semi.csv")


#获取系数
isales = d


res = lm(isales ~ cum_isales+cum_isales2)
## Residuals:
##     Min      1Q  Median      3Q     Max
## -42.359 -12.415   0.698  12.963  45.489
##
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)  5.086e+01  8.627e+00   5.896 3.76e-06 ***
## cum_isales   9.004e-02  9.601e-03   9.378 1.15e-09 ***
## cum_isales2 -6.878e-06  1.988e-06  -3.459  0.00196 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 21.46 on 25 degrees of freedom
## Multiple R-squared:  0.9515, Adjusted R-squared:  0.9476
## F-statistic: 245.3 on 2 and 25 DF,  p-value: < 2.2e-16




#拟合模型
m1 = (-b[2]+sqrt(b[2]^2
m2 = (-b[2]-sqrt(b[
print(c(m1,m2))
## cum_isales cum_isales
##  -542.4036 13633.3003## [1] 13633.3
##                                 (Intercept)           cum_isales2
##                "p,q=" "0.00373048366213552"  "0.0937656034785294"
#绘制拟合的模型


plot(t,fn_f,type="l",


lines(1:n,isales,col="red"
 

显示数据框:


print(df)
##       t   V2       fn_f
## 1     0 1988  50.858804
## 2     1 1989  55.630291
## 3     2 1990  60.802858
## 4     3 1991  66.400785
## 5     4 1992  72.447856
## 6     5 1993  78.966853
## 7     6 1994  85.978951
## 8     7 1995  93.503005
## 9     8 1996 101.554731
## 10    9 1997 110.145765
## 11   10 1998 119.282622
## 12   11 1999 128.965545
## 13   12 2000 139.187272

权衡p vs q

在Bass模型中,如果模仿系数相对于创新系数增加,那么以下哪一项是最有效的?

  1. 产品生命周期的高峰发生在稍后。
  2. 产品生命周期的高峰出现得更快。
  3. 两个生命周期高峰的机会可能会增加。
  4. 高峰可能迟早会出现,具体取决于创新系数。

使用高峰时间公式,用x = q / p代替:

x的微分:

从Bass模型中,我们知道q> p> 0,即x> 1,否则我们可以在0≤F<1区域获得负的接受度或形状,而没有最大值。因此,∂t∗ /∂x的符号与:

 

但是这个非线性方程

根x≈3.59

换句话说,当x> 3.59时,导数∂t∗ /∂x为负,而当x <3.59时为正。对于x = q / p的低值,模仿系数q的增加会增加达到销售高峰的时间,而对于q / p的高值,时间会随着q的增加而减少。因此,该问题的正确答案似乎是“它取决于p和q的值



t = seq(0,5,
.1)
p = 0.1;


lines(t,f(p,q,t),type="l",col="red",lwd=2)

 

在图中,当x变小时,峰值更早。


相关文章
|
7月前
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量
|
7月前
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测
|
3月前
|
人工智能 机器人 UED
数字人模型网页手机云推流语音交互
随着AI技术的发展,数字人与大型语言模型的结合迎来了新机遇,各类数字人服务不断涌现,应用于多种场景。点量小芹发现许多厂商仍在探索如何优化数字人在移动端的表现。通过云推流实时渲染解决方案。无论是直播中的数字人形象定制,还是网页客服与大屏讲解的应用,只需将数字人模型置于服务器端,借助云渲染技术,用户即可在网页或移动设备上轻松使用高精度的数字人,显著降低硬件需求,提升互动体验。
139 13
|
3月前
|
vr&ar 图形学 UED
电子沙盘VR模型大屏平板手机微信使用方案
数字孪生电子沙盘和VR模型被广泛应用在房地产等行业,为不同设备定制不同版本的模型是常见做法。然而,通过实时云渲染技术,可以将PC端的VR模型转化为网页版,使用户能够在平板或手机上流畅浏览详细信息,无需开发多个版本。这不仅提升了用户体验,还简化了模型提供商的工作流程,降低了成本。尤其在新楼盘发布时,可通过公众号或广告链接快速吸引潜在客户。成本主要取决于并发用户数及显卡性能要求,但该技术显著提高了跨设备访问的便利性。
52 1
|
3月前
|
编解码 异构计算
无影云电脑产品使用黑神话悟空之是否可以想主播们玩的那样手机屏幕上有虚拟按键
这段内容主要讨论了无影云电脑在使用过程中遇到的五个问题及其解答,包括是否能在手机屏幕上显示虚拟按键、解决服务器网络异常导致的连接问题、处理活动前购买的云电脑无法开启电竞模式的情况、解决游戏崩溃问题,以及处理打开游戏时报错的问题。文中提供了详细的解决步骤和参考链接。
|
3月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
4月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
7月前
|
编解码 人工智能 自然语言处理
让大模型理解手机屏幕,苹果多模态Ferret-UI用自然语言操控手机
【5月更文挑战第29天】苹果推出Ferret-UI,一个结合图像识别和自然语言处理的多模态大语言模型,允许用户通过自然语言指令操控手机。该系统能适应不同屏幕布局,识别UI元素并执行相应操作,有望变革手机交互方式,提升无障碍体验,并在测试和开发中发挥作用。但需面对屏幕多样性及准确性挑战。[论文链接](https://arxiv.org/pdf/2404.05719.pdf)
174 3
|
7月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
7月前
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码