Logistics 模型

1 算法介绍

logistics 方程由比利时数学家Pierre François Verhulst提出,是一个对S型曲线进行数学描述的模型。这个方程应用于一些特殊的领域建模与预测,例如单位面积内某种生物的数量、人口数量等社会经济指标、某种商品(例如手机)的普及率等。

2 原理

logistics 方程定义:

x t = 1 c + a e b t (1) x_t = \frac{1}{c+ae^{bt}} \tag{1} xt=c+aebt1(1)

其中,t 表示时间变量,a,b,c 为模型的参数;当趋势比较完整时, a > 0 , b < 0 , c > 0 a>0, b<0, c>0 a>0,b<0,c>0 。其曲线如下图:

Logistics 模型_第1张图片

根据方程和图像可知:

t → − ∞ , x ( t ) → 1 / c t \to -\infty,x(t) \to 1/c tx(t)1/c。为研究 Logistics 曲线好的增长特性,对 Logistics 方程求一阶导数:

d x d t = − a b e b t ( c + a e b t ) 2 > 0 \frac{dx}{dt}=\frac{-abe^{bt}}{{(c+a e^{bt})}^2} > 0 dtdx=(c+aebt)2abebt>0

2.1 Yule 算法

根据方程 (1),微分写成差分式:

x t + 1 − x t x t + 1 \frac{x_{t+1}-x_t}{x_{t+1}} xt+1xt+1xt

= 1 − x t x t + 1 = 1 - \frac{x_t}{x_{t+1}} =1xt+1xt

= 1 − c + a e b ( t + 1 ) c + a e b t = 1 - \frac{c+ae^{b(t+1)}}{c+ae^{bt}} =1c+aebtc+aeb(t+1)

= ( a e b t + c − c ) ( 1 − e b ) c + a e b t = \frac{(ae^{bt}+c-c)(1-e^b)}{c+ae^{bt}} =c+aebt(aebt+cc)(1eb)

= ( 1 − e b ) − c ( 1 − e b ) x t = (1-e^b)-c(1-e^b)x_t =(1eb)c(1eb)xt

z t = x t + 1 − x t x t + 1 , γ = 1 − e b , β = − c ( 1 − e b ) z_t=\frac{x_{t+1}-x_t}{x_{t+1}}, \gamma=1-e^b, \beta=-c(1-e^b) zt=xt+1xt+1xt,γ=1eb,β=c(1eb),那么上面的方程可以写成线性方程:

z t = γ + β x t z_t=\gamma+\beta x_t zt=γ+βxt

利用最小二乘法(OLS)可以得到这个方程参数的估计值,进而 b 和 c 的估计值也可以进一步得到。

为了得到 a 的估计值,Logistics 方程两边同时取对数:

l n ( 1 x t − c ^ ) = l n a ^ + b ^ t (2) ln(\frac{1}{x_t}-\hat{c})=ln \hat{a}+\hat{b}t \tag{2} ln(xt1c^)=lna^+b^t(2)

左右分别对 t 求和:

∑ t = 1 n l n ( 1 x t − c ^ ) = n l n a ^ − n ( n + 1 ) 2 b ^ (3) \sum_{t=1}^{n} ln(\frac{1}{x_t}-\hat{c})=nln\hat{a}-\frac{n(n+1)}{2}\hat{b} \tag{3} t=1nln(xt1c^)=nlna^2n(n+1)b^(3)

可以很容易得到 a 的估计值:

a ^ = e x p ( 1 n ( ∑ t = 1 n l n ( 1 x t − c ^ − n ( n + 1 ) 2 b ^ ) ) ) (4) \hat{a}=exp \left( \frac{1}{n} \left( \sum_{t=1}^n ln(\frac{1}{x_t}-\hat{c}-\frac{n(n+1)}{2}\hat{b}) \right) \right) \tag{4} a^=exp(n1(t=1nln(xt1c^2n(n+1)b^)))(4)

2.2 Rhodes 算法

根据 Logistics 方程可以得到:

1 x t + 1 \frac{1}{x_{t+1}} xt+11

= c + a e b ( t + 1 ) = c + ae^{b(t+1)} =c+aeb(t+1)

= c − c e b + c e b + a e b ( t + 1 ) =c-ce^b+ce^b+ae^{b(t+1)} =cceb+ceb+aeb(t+1)

= c ( 1 − e b ) + e b x t =c(1-e^b)+\frac{e^b}{x_t} =c(1eb)+xteb

z t = 1 x t + 1 、 s t = 1 x t 、 γ = c ( 1 − e b ) 、 β = e b z_t=\frac{1}{x_{t+1}}、s_t=\frac{1}{x_t}、\gamma =c(1-e^b)、\beta =e^b zt=xt+11st=xt1γ=c(1eb)β=eb,那么该方程可以写成线性方程:

z t = γ + β s t z_t=\gamma + \beta s_t zt=γ+βst

利用最小二乘法(OLS)可以得到这个方程参数的估计值,进而 b 和 c 的估计值也可以进一步得到。利用方程 (2)-(4) 可以得到 a 的估计值。

2.3 Nair 算法

Yule 算法的差分式结果可以进一步写成:

x t + 1 − x t x t + 1 = ( 1 − e b ) ( 1 − c x t ) \frac{x_{t+1}-x_t}{x_{t+1}}=(1-e^b)(1-cx_t) xt+1xt+1xt=(1eb)(1cxt)
1 1 − e b = x t + 1 ( 1 − c x t ) x t + 1 − x t \frac{1}{1-e^b}=\frac{x_{t+1}(1-cx_t)}{x_{t+1}-x_t} 1eb1=xt+1xtxt+1(1cxt)
1 + e b 1 − e b = 2 1 − e b − 1 \frac{1+e^b}{1-e^b}=\frac{2}{1-e^b}-1 1eb1+eb=1eb21
= 1 x t + 1 x t + 1 − 2 c 1 x t − 1 x t + 1 =\frac{\frac{1}{x_t}+\frac{1}{x_{t+1}}-2c}{\frac{1}{x_t}-\frac{1}{x_{t+1}}} =xt1xt+11xt1+xt+112c

进一步整理得到;

1 x t − 1 x t + 1 = 1 − e b 1 + e b ( 1 x t + 1 x t + 1 ) − 2 c ( 1 − e b ) 1 + e b (5) \frac{1}{x_t}-\frac{1}{x_{t+1}} = \frac{1-e^b}{1+e^b}(\frac{1}{x_t}+\frac{1}{x_{t+1}})-\frac{2c(1-e^b)}{1+e^b} \tag{5} xt1xt+11=1+eb1eb(xt1+xt+11)1+eb2c(1eb)(5)

z t = 1 x t − 1 x t + 1 、 s t = 1 x t + 1 x t + 1 、 γ = 2 c ( 1 − e b ) 1 + e b 、 β = 1 − e b 1 + e b z_t=\frac{1}{x_t}-\frac{1}{x_{t+1}}、s_t=\frac{1}{x_t}+\frac{1}{x_{t+1}}、\gamma =\frac{2c(1-e^b)}{1+e^b}、\beta = \frac{1-e^b}{1+e^b} zt=xt1xt+11st=xt1+xt+11γ=1+eb2c(1eb)β=1+eb1eb ,那么方程 (5) 可以写成线性方程:

z t = γ + β s t z_t = \gamma + \beta s_t zt=γ+βst

利用最小二乘法(OLS)可以得到这个方程的参数估计值,进而 b 和 c 的估计值也可以得到,利用方程 (2)-(4) 可以得到 a 的估计值。

3 Logistics 模型与 Logistics 回归理解与使用

Logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。Logistic回归的因变量可以是二分类的,也可以是多分类的。

3.1 Logistic回归跟多元线性回归差不多,但是有区别
  • 线性回归:y是一个定量的变量,这时y对于不同的自变量来说有相应的值。
  • Logistic回归:y是一个定性的变量,比如y只能等于0或1。
3.2 模型的基本形式

P ( Y = 1 ∣ x 1 , x 2 , . . . , x n ) = e x p ( β 0 + β 1 x 1 + . . . + β n x n ) 1 + e x p ( β 0 + β 1 x 1 + . . . + β n x n ) P(Y=1 | x_1, x_2, ..., x_n)=\frac{exp(\beta _0+\beta _1x_1 + ... + \beta _n x_n)}{1+exp(\beta _0+\beta _1x_1 + ... + \beta _n x_n)} P(Y=1∣x1,x2,...,xn)=1+exp(β0+β1x1+...+βnxn)exp(β0+β1x1+...+βnxn)

在实际应用该模型的时候,常常不是不是直接对P进行回归,而是先 定义单调连续概率函数 π \pi π

π = P ( Y = 1 ∣ x 1 , x 2 , . . . , x n ) , 0 < π < 1 \pi=P(Y=1 | x_1, x_2, ..., x_n), 0 < \pi < 1 π=P(Y=1∣x1,x2,...,xn),0<π<1

于是Logistic模型就可以变形为:

l n π 1 − π = β 0 + β 1 x 1 + . . . + β n x n , 0 < π < 1 ln\frac{\pi}{1- \pi}=\beta _0+\beta _1x_1 + ... + \beta _n x_n, 0 < \pi < 1 ln1ππ=β0+β1x1+...+βnxn,0<π<1

即:

l n π 1 − π = β 0 + β 1 x 1 + . . . + β n x n , 0 < π < 1 (1) ln\frac{\pi}{1- \pi}=\beta _0+\beta _1x_1 + ... + \beta _n x_n, 0 < \pi < 1 \tag{1} ln1ππ=β0+β1x1+...+βnxn,0<π<1(1)

π = e x p ( β 0 + β 1 x 1 + . . . + β n x n ) 1 + e x p ( β 0 + β 1 x 1 + . . . + β n x n ) (2) \pi=\frac{exp(\beta _0+\beta _1x_1 + ... + \beta _n x_n)}{1+exp(\beta _0+\beta _1x_1 + ... + \beta _n x_n)} \tag{2} π=1+exp(β0+β1x1+...+βnxn)exp(β0+β1x1+...+βnxn)(2)

P = { 0 π ≤ A 1 π ≥ 1 − A (3) P=\begin{cases} 0 & \pi \le A \\ 1 & \pi \ge 1 - A \end{cases} \tag{3} P={01πAπ1A(3)

通过多元线性回归解出 β 0 , β 1 , . . . , β n \beta _0, \beta _1, ..., \beta _n β0,β1,...,βn ,带入求得 π \pi π ,根据 π \pi π 的值判断 P 的取值。

你可能感兴趣的:(数据结构算法,学习笔记,算法,Logistics)