Bass Model and SIR Model: Surprising Relationship between Marketing and Infectious Disease Mathematics
Introduction
So far, we have explained the Bass Model, which predicts the diffusion of new products. On the other hand, due to the recent pandemic, we have increasingly heard the term SIR Model, which predicts the spread of infectious diseases, so I would like to summarize it once.
In fact, “information propagation (word of mouth)” in marketing and “virus transmission (infection)” in epidemiology are surprisingly similar mathematically.
This article compares the Bass Model and the SIR Model, explaining their commonalities and decisive differences.
Source Code
GitHub
- The Jupyter Notebook file is available here
Google Colaboratory
- To run on Google Colaboratory, click here
Execution Environment
The OS is macOS. Note that the options may differ from Linux or Unix commands.
!sw_vers
ProductName: macOS
ProductVersion: 15.5
BuildVersion: 24F74
!python -V
Python 3.14.0
Import necessary libraries.
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
# Graph style settings
plt.style.use('seaborn-v0_8-darkgrid')
1. Review of Bass Model
The differential equation of the Bass Model is as follows:
$$ \frac{dN}{dt} = \left( p + q \frac{N}{M} \right) (M - N) $$
Here:
- $N$: Cumulative number of adopters
- $M$: Potential market size (total population including non-adopters)
- $p$: Innovation coefficient (external factors such as advertising)
- $q$: Imitation coefficient (internal factors such as word of mouth)
Expanding the right side gives: $$ \frac{dN}{dt} = p(M-N) + \frac{q}{M} N (M-N) $$
The first term represents “adoption due to advertising”, and the second term represents “adoption due to contact between existing adopters ($N$) and non-adopters ($M-N$)”.
2. Overview of SIR Model
The SIR Model considers the population divided into the following three states:
- S (Susceptible): Uninfected (susceptible to infection)
- I (Infected): Infected (capable of infecting others)
- R (Recovered): Recovered (acquired immunity and will not be infected again)
The basic differential equations are as follows:
$$ \begin{aligned} \frac{dS}{dt} &= -\beta S I \\ \frac{dI}{dt} &= \beta S I - \gamma I \\ \frac{dR}{dt} &= \gamma I \end{aligned} $$
Here:
- $\beta$: Infection rate (probability of transmission upon contact)
- $\gamma$: Recovery rate
3. Comparison of Bass Model and SIR Model
3.1 Mathematical Similarity
Let’s consider a simple case (SI Model) in the SIR model where recovery is not considered ($\gamma=0$). Assuming the total population $N_{total} = S + I$ is constant, then $S = N_{total} - I$. The increment of the number of infected people $I$ is:
$$ \frac{dI}{dt} = \beta S I = \beta (N_{total} - I) I $$
On the other hand, considering the case where there is no advertising effect ($p=0$) in the Bass Model:
$$ \frac{dN}{dt} = \frac{q}{M} N (M - N) $$
Comparing these two equations, we can see that the structure is exactly the same.
| Bass Model | SI Model |
|---|---|
| Cumulative Adopters $N$ | Infected $I$ |
| Market Size $M$ | Total Population $N_{total}$ |
| Imitation Coefficient $q$ | Infectivity $\beta N_{total}$ |
The formulas match perfectly. In other words, the “Bass Model without innovation effect (advertising, etc.)” is mathematically equivalent to the “Infectious Disease Model without recovery (SI Model)”.
3.2 Decisive Differences
However, in practice, they differ significantly in the following two points.
1. The “Patient Zero” Problem
- SI/SIR Model: If $I(0) = 0$, then $\frac{dI}{dt}=0$, so the infection never starts. A first infected person (Patient Zero) is always required.
- Bass Model: Even if $N(0) = 0$, due to the innovation effect $p(M-N)$, diffusion starts spontaneously.
2. Reversibility of State (Adoption vs Infection)
- Bass Model: Usually deals with the purchase of durable goods (refrigerators, cars), so once “adopted”, it continues to be counted as a cumulative number ($N(t)$ does not decrease).
- SIR Model: Like influenza, people “recover” and lose infectivity, so the current number of infected people $I(t)$ increases and decreases in a mountain shape.
The number of active users on SNS, etc., may show behavior closer to the SIR model (or SIRS model) than the Bass model, because users register (infect) but get bored and leave (recover).
4. Simulation Comparison with Python
Let’s write some code to visualize the differences in behavior. Here, we compare the following three models:
- Bass Model: Standard Bass Model
- SI Model: Infection model without recovery (with initial infected person)
- SIR Model: Infection model with recovery
# Definition of models
def bass_diff_eq(N, t, M, p, q):
return (p + q * N / M) * (M - N)
def sir_diff_eq(y, t, N_total, beta, gamma):
S, I, R = y
dSdt = -beta * S * I
dIdt = beta * S * I - gamma * I
dRdt = gamma * I
return dSdt, dIdt, dRdt
# Parameter settings
M = 10000 # Total population
t_max = 50
t = np.linspace(0, t_max, 500)
# 1. Bass Model (p=0.03, q=0.3)
p_bass = 0.03
q_bass = 0.3
N_bass = odeint(bass_diff_eq, 0, t, args=(M, p_bass, q_bass)).flatten()
n_bass = np.gradient(N_bass, t) # New adopters
# 2. SI Model (Set beta corresponding to Bass's q, need initial infected person since p=0)
# beta * N_total = q => beta = q / M
beta_si = q_bass / M
I0_si = 100 # Initial infected 100 people (1%)
S0_si = M - I0_si
# gamma = 0
si_result = odeint(sir_diff_eq, [S0_si, I0_si, 0], t, args=(M, beta_si, 0))
I_si = si_result[:, 1]
# 3. SIR Model (With recovery)
# Set gamma so that R0 = 2.0 approximately
# R0 = (beta * M) / gamma = q / gamma = 2.0 => gamma = q / 2.0
gamma_sir = q_bass / 2.0
sir_result = odeint(sir_diff_eq, [S0_si, I0_si, 0], t, args=(M, beta_si, gamma_sir))
I_sir = sir_result[:, 1]
R_sir = sir_result[:, 2]
# Plot
fig, axes = plt.subplots(1, 3, figsize=(18, 5))
# Plot 1: Bass Model
axes[0].plot(t, N_bass, label='Cumulative $N(t)$', color='tab:blue')
axes[0].plot(t, n_bass * 10, label='New Adopters $n(t) \times 10$', color='tab:blue', linestyle='--')
axes[0].set_title('Bass Model (Product Adoption)')
axes[0].set_xlabel('Time')
axes[0].legend()
# Plot 2: SI Model
axes[1].plot(t, I_si, label='Infected $I(t)$', color='tab:orange')
axes[1].set_title('SI Model (Irreversible Infection)')
axes[1].set_xlabel('Time')
axes[1].legend()
# Plot 3: SIR Model
axes[2].plot(t, I_sir, label='Infected $I(t)$', color='tab:red')
axes[2].plot(t, R_sir, label='Recovered $R(t)$', color='tab:green')
axes[2].set_title(f'SIR Model (Epidemic, $R_0={q_bass/gamma_sir:.1f}$)')
axes[2].set_xlabel('Time')
axes[2].legend()
plt.tight_layout()
plt.show()
Discussion of Simulation Results
Bass vs SI:
- The curve shapes of the Bass model (left) and the SI model (middle) are very similar (S-shaped curve).
- The difference is the initial condition. Bass can start from 0, but SI does not start unless an initial value ($I_0=100$) is given.
- This shows how important “advertising ($p$)” is in marketing, or how important “seeding influencers ($I_0$)” is.
Characteristics of SIR Model:
- In the SIR model (right), the number of infected people $I(t)$ (red line) turns to decrease after reaching a peak.
- This is because the source of infection decreases due to “recovery”.
- The transition of active users of trendy games or SNS apps often shows behavior closer to this SIR model than the cumulative Bass model.
5. Application: “Survival” Conditions for Services
Let’s apply the knowledge of the SIR model to subscription services. “Recovery” in a service corresponds to “Churn”.
Translating the basic reproduction number $R_0 = \frac{\beta N_{total}}{\gamma}$ into service terms:
$$ R_0 = \frac{\text{Viral Coefficient} \times \text{Potential Customers}}{\text{Churn Rate}} $$
(Strict definition depends on context, but conceptually). Maintaining $R_0 > 1$ is a condition for the service to grow autonomously. In other words, mathematical models also make it clear that either (or both) of the following is essential:
- Increasing word-of-mouth power (increasing $\beta$)
- Decreasing churn rate (decreasing $\gamma$)
Conclusion
In this article, we compared the Bass Model and the SIR Model, explaining their mathematical equivalence and structural differences.
- Bass Model: Suitable for cumulative diffusion prediction of durable goods. Includes advertising effect ($p$) and can handle startup from 0.
- SIR Model: Suitable for trendy services and infectious diseases. Considers recovery (churn) and can handle increase/decrease in active numbers.
It is very important to select (or extend) the appropriate model according to the nature of the product or phenomenon being handled.