Frank Bass (1926-2006) - priekopník matematických modelov v marketingu
F. Bass, A New Product Growth for Model Consumer Durables, Management Science, Vol. 15 (January 1969)
Jeden z desiatich článkov vo výbere Top 10 Most Influential Papers published in the 50-year history of Management Science (2004)
Perhaps the first thing to notice. . . is the title. It contains a typo. The correct title should be A New Product Growth Model for Consumer Durables. I suppose that I was so excited about having the paper accepted for publication that I failed to carefully proofread the galley proofs. (Frank Bass, 2004)
Matematický model pre zavedenie nového produktu na trh
Príklad z pôvodného Bassovho článku:
Základná myšlienka modelu - na trhu sú dva typy zákazníkov:
inovátori (innovators) - tovar si kúpia na základe informácií o novom produkte, reklamy a pod.
imitátori (imitators) - rozhodujú sa podla skúseností iných používatelov a ich hodnotenia
Inovátori a imitátori - počet nových zákazníkov:
Počet nových zákazníkov spolu:
Počet nových zákazníkov a kumulatívny počet zákazníkov:
Spojitý čas \(t\)
\(F(t)\) = podiel ľudí z celkového objemu trhu, ktorí si produkt zakúpili do času \(t\)
\(f(t)\) = podiel ľudí z celkového objemu trhu, ktorí si produkt zakúpili “v čase \(t\)”, platí \(f(t) = F'(t)\)
Základný predpoklad modelu: Pravdepodobnosť toho, že si človek kúpi produkt v čase \(t\), ak si ho doteraz nekúpil, je \(p + qF(t)\)
Parametre: \(p\) vyjadruje vplyv inovátorov, \(q\) vyjadruje vplyv imitátorov
Dostávame rovnicu: \[\frac{f(t)}{1-F(t)} = p+q F(t)\] s podmienkou \(F(0)=0\)
Máme teda obyčajnú diferenciálnu rovnicu pre funkciu \(F(t)\): \[\frac{F'(t)}{1-F(t)} = p+q F(t), F(0)=0\]
Dá sa vyriešiť separáciou premenných: \[\frac{dF}{(1-F)(p+qF)} = dt \Rightarrow F(t) = \frac{1-e^{-(p+q)t}}{1+\frac{q}{p} e^{-(p+q)t}}\]
Príslušná funkcia \(f(t) = F'(t)\):
\[f(t)=\frac{(p+q)^2 e^{-(p+q)t}}{p \left[ 1 + \frac{q}{p} e^{-(p+q)t} \right]^2}\]
Z článku Christophe Van den Bulte: Want to know how diffusion speed varies across countries and products? Try using a Bass model. PDMA Visions 26(4) 2002, pp. 12-15
Grafické znázornenie:
Definujme funkciu:
grafy <- function(p,q,t.max) {
t <- seq(from=0,to=t.max,by=0.01)
Bass.f <- ((p+q)^2/p)*exp(-(p+q)*t)/(1+(q/p)*exp(-(p+q)*t))^2
Bass.F <- (1-exp(-(p+q)*t))/(1+(q/p)*exp(-(p+q)*t))
par(mfrow=c(1,2))
plot(t, Bass.f, type="l"); plot(t, Bass.F, type="l")
}
Teraz vieme kresliť napríklad:
grafy(0.016, 0.409, 20) # baseline z tabulky
Ukážeme si, ak robit takéto interaktívne grafy:
Načítajte (ak treba, aj nainštalujte) knižnicu manipulate
:
library(manipulate)
Použitie funkcie manipulate
najlepšie vidieť na príklade (dostaneme graf z predchádzajúceho obrázku):
manipulate(grafy(p,q,t.max),
p=slider(min=0.001, max=0.1, step=0.001),
q=slider(min=0.1, max=1, step=0.01),
t.max=slider(min=5, max=30, step=5))
V parametroch pre slider
sa dá zadať aj začiatocná hodnota - pomocou initial=...
- vyskúšajte.
Podrobnejšie: ?slider
Ak máme historické dáta, môžeme fitovať funkciu \(f\) metódou najmenších štvorcov.
Parametre modelu určíme tak, aby sa minimalizovala suma štvorcov odchýlok skutočných a namodelovaných dát - závislosť \(f\) od parametrov je nelineárna, preto ide o nelineárnu metódu nejmenších štvorcov
Zdroj dát: P. S. P. Cowpertwait, A. V. Metcalfe, Introductory Time Series with R. Springer 2009. Kapitola 3.3.4, str. 52-54
Budeme modelovať predaj VCR v USA v rokoch 1980-1989:
T <- 1:10 # casova premenna, rok = 1979 + T
Sales <- c(840,1470,2110,4000,7590,10950,10530,9470,7790,5890) # trzby
Model: Sales(t) = M * f(t)
, kde M
zodpovedá nasýteniu trhu
Úloha 1: Vykreslite priebeh tržieb.
Nelineárna MNŠ v R-ku: funkcia nls
Potrebuje štartovacie hodnoty pre odhadované parametre:
pre p
a q
ich zoberieme z horeuvedenej tabuľky z článku
pre M
zoberieme doterajšie tržby (už klesajú a oveľa viac ich už nebude)
alebo pomocou interaktívnych grafov nájdeme parametre, ktoré naše dáta “nefitujú zle”.
Použitie funkcie:
Bass.nls<-nls(Sales ~ M*(((P+Q)^2/P)*exp(-(P+Q)*T))/(1+(Q/P)*exp(-(P+Q)*T))^2,
start=c(list(M=sum(Sales),P=0.008,Q=0.6)))
summary(Bass.nls)
##
## Formula: Sales ~ M * (((P + Q)^2/P) * exp(-(P + Q) * T))/(1 + (Q/P) *
## exp(-(P + Q) * T))^2
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## M 6.798e+04 3.128e+03 21.74 1.10e-07 ***
## P 6.594e-03 1.430e-03 4.61 0.00245 **
## Q 6.381e-01 4.140e-02 15.41 1.17e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 727.2 on 7 degrees of freedom
##
## Number of iterations to convergence: 6
## Achieved convergence tolerance: 3.836e-06
Vidíme, že algoritmus skonvergoval a dostali sme odhady parametrov M, P, Q
.
Úloha 2: Porovnajte skutočné tržby s fitovanými a spravte predikciu na nasledujúce roky.
Poznámka: Užitočný môže byt prístup k odhadnutým parametrom:
coef(Bass.nls)
## M P Q
## 6.798093e+04 6.593972e-03 6.380909e-01
coef(Bass.nls)["P"]
## P
## 0.006593972
Odvoďte uvedené vzťahy pre \(f(t)\) a \(F(t)\)
Dokážte, že ak \(q>p>0\), tak funkcia \(f\) nadobúda maximum v čase \[t^* = \frac{\textrm{ln}(p/q)}{p+q}\] Voľne povedané, je to čas, v ktorom sa predá najviac výrobkov
Odvoďte vzťah pre maximum funkcie \(f\) v prípade, že \(p>q>0\). Čo od tohto prípadu - keď prevláda vplyv inovátorov - očakávame?
Pomocou knižnice manipulate
napíšte skript, ktorý nakreslí reálne dáta ako body a hodnoty z modelu ako hladkú krivku. Zmenou hodnôt parametrov takto potom môžeme nájsť vhodné štartovacie hodnoty pre nelineárnu metódu najmenších štvorcov.
V slovníku nájdeme aj nasledovný význam anglického slova sleeper:
Čo takáto charakteristika hovorí o parametroch Bassovho modelu, ak by sme ho chceli použiť na modelovanie tržieb takéhoto filmu alebo knihy?