ゴンペルツ成長モデル:時間に依存する成長の遅延
モデル 1
$$ {{ d N } \over { dt }} = r e^{ - \alpha t} N \qquad, \alpha 0 $$
変数
- $N(t)$: $t$ 時点での個体数を表す。
パラメータ
- $r \in \mathbb{R}$: 固有の増加率intrinsic Rate of Increaseとして、$0$ より大きければ成長し、$0$ より小さければ衰退する。出生率birth rate $b$ と 死亡率death rate $d$ の差 $r:=b-d$ として定義されることもある。
- $\alpha>0$: ある種の減衰率を示す定数で、大きいほど成長の減退も早くなる。
説明
マルサスの成長モデル $\displaystyle {{ d N } \over { dt }} = r N$ と比べると、時間 $t$ による成長抑制を示す項 $e^{- \alpha t}$ が加わっている点が異なり、人口動態モデルでは珍しい非自律システムである。
理にかなっていれば、実際にフィッティングする場合、どこでゴンペルツ成長モデルを使用しても問題ないが、主にビジネス分野での需要予測や、生物学で腫瘍(Tumor)の成長をフィッティングするために使用される。
- (1) 需要予測では、「人口」とは、商品やサービスを求める消費者の数を意味する。新しい何かが市場に出た時、それが消費者の心に訴えるならば、爆発的な成長を遂げて売れるだろうが、それも永遠には続かないし、時間が経つにつれて成長は必ず鈍化する。これは、ロジスティック成長モデルで成長が停止する理由として思い浮かべる「もう受け入れるスペースがない」や「種間競争が激しくなる」などとは根本から異なるアイデアだ。
- (2) 腫瘍の成長では、腫瘍の大きさが大きくなるにつれて、体積に対する表面積の比が小さくなり、成長自体が鈍化する。腫瘍を構成する細胞自体は増えているが、実際に腫瘍の大きさを増やすことができる細胞が徐々に減っていくことを簡単にモデリングできる。
コード
次は、記事のアニメーションを作成するためのJuliaコードだ。
cd(@__DIR__) # 파일 저장 경로
@time using Plots
@time using DifferentialEquations
#---
end_time = 30.
function logistic_growth!(du,u,p,t)
N = u[1]
r, K = p
du[1] = dN = r/K*N*(K-N)
end
u0 = [1.0]
p = [0.5, 100.]
tspan = (0.,end_time)
prob = ODEProblem(logistic_growth!,u0,tspan,p)
sol1 = solve(prob; saveat=(0.0:0.1:end_time))
function gompertz_growth!(du,u,p,t)
N = u[1]
r, α = p
du[1] = dN = r*exp(-α*t)*N
end
u0 = [1.0]
p = [1., 0.217]
tspan = (0.,end_time)
prob = ODEProblem(gompertz_growth!,u0,tspan,p)
sol2 = solve(prob; saveat=(0.0:0.1:end_time))
compare = plot(sol1,vars=(0,1),
linestyle = :dash, color = :black,
size = (400,300), label = "logistic", legend=:bottomright)
plot!(compare, sol2,vars=(0,1),
linestyle = :solid, color = :red,
size = (400,300), label = "gompertz", legend=:bottomright)
png(compare, "gompertz.png")
Allen. (2006). An Introduction to Mathematical Biology: p245. ↩︎