群体药动学算法推导

对群体药动学参数估计算法的推导,内容主要来自王亚宁早年的一篇文章。本文最初写作于2021年,目前已烂尾。

1. 基础知识

1.1 正态分布

设随机变量xx来自正态分布N(μ,σ2)N(\mu, \sigma^2),则

(1)P(xμ,σ2)=12πσ2exp(xμ2σ2)P(x \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi \sigma^2}} \cdot \exp(\frac{x-\mu}{-2 \sigma^2}) \tag{1}

式(1)称为正态分布的概率密度函数。将式(1)取对数,得

(2)2lnP(xμ,σ2)=ln(2πσ2)+(xμ)2σ2-2 \ln P(x \mid \mu, \sigma^2) = \ln(2\pi \sigma^2)+\frac{(x-\mu)^2}{\sigma^2} \tag{2}

1.2 泰勒公式

泰勒公式可以将复杂的函数近似地用多项式表示。f(x)f(x)x0x_0处的一阶展开式为

(3)f(x)=f(x0)+f(x0)(xx0)+ξf(x)=f(x_0)+{f}'(x_0)(x-x_0)+\xi \tag{3}

x0x_0处的二阶展开式为

(4)f(x)=f(x0)+f(x0)2(xx0)2+f(x0)(xx0)+ξf(x)=f(x_0)+\frac{{f}''(x_0)}{2} (x-x_0)^2+{f}'(x_0)(x-x_0)+\xi \tag{4}

在一定的允许范围内,余项ξ\xi可以忽略。

1.3 条件概率

设某离散型随机变量XX来自分布f(θ)f(\theta)XX有2个取值:aabb,参数θ\theta也有2个取值:1122,则可写出如下分布律,其中,P(a,1)P(a,1)称为联合概率P(1)P(1)P(a)P(a)均称为边缘概率

11 22
aa P(a,1)P(a,1) P(a,2)P(a,2) P(a)P(a)
bb P(b,1)P(b,1) P(b,2P(b,2) P(b)P(b)
P(1)P(1) P(2)P(2) 11

X=aX=a的边缘概率为

(5)P(a)=P(a,1)+P(a,2)=P(a1)P(1)+P(a2)P(2)P(a) = P(a,1) + P(a,2) = P(a \mid 1)\cdot P(1) + P(a \mid 2) \cdot P(2) \tag{5}

θ=1\theta=1的边缘概率为

(6)P(1)=P(1,a)+P(1,b)=P(1a)P(a)+P(1b)P(b)P(1) = P(1,a) + P(1,b) = P(1 \mid a)\cdot P(a) + P(1 \mid b) \cdot P(b) \tag{6}

P(a1)=P(a,1)P(1)P(1a)=P(1,a)P(a)P(a \mid 1)=\frac{P(a, 1)}{P(1)}、P(1 \mid a)=\frac{P(1, a)}{P(a)}均称为条件概率。可见

=条件概率=\frac{联合概率}{边缘概率}

将式(5)扩展

(7)P(a)=P(a,i)=P(ai)P(i)P(a) = \sum P(a,i) = \sum P(a \mid i)\cdot P(i) \tag{7}

θ\theta的取值从离散(ii)扩展到连续(tt),XX从离散型随机变量扩展到连续型

(8)P(x)=P(x,t)dt=P(xt)P(t)dtP(x) = \int P(x,t) \mathrm{d}t = \int P(x \mid t)\cdot P(t) \mathrm{d}t \tag{8}

1.4 似然

P(xt)P(x\mid t)表示在参数θ=t\theta=t的条件下,X=xX=x的概率。大多数时候,我们并不知道θ\theta的值,却有XX的结果,即参数未知而数据已知。但是,未知参数的取值会影响数据结果,即产生数据的概率反映了未知参数的可能取值。因此,可以根据数据结果反推参数取值。

将已知数据X=xX=x的情况下,θ=t\theta=t的可能性称为似然,有

(9)L(tx)=P(xt)L(t \mid x)= P(x \mid t) \tag{9}

因此,可以根据已知数据XX,计算出θ\theta不同取值的可能性

(10)L(θX)=P(Xθ)L(\theta \mid X)=P(X \mid \theta) \tag{10}

L(θX)L(\theta \mid X)是一个关于θ\theta的函数。在θ\theta的所有取值中,能够使L(θX)L(\theta \mid X)最大化的值θ^\hat{\theta}就是θ\theta最有可能的取值。我们可以把θ^\hat{\theta}作为θ\theta的估计值,这种方法称为最大似然估计(MLE)。

1.5 经验贝叶斯估计

在1.3节中,已知X=aX=a的条件下,θ=1\theta=1的概率

(11)P(1a)=P(1,a)P(a)=P(a1)P(1)P(a)P(1 \mid a)=\frac{P(1,a)}{P(a)}=\frac{P(a \mid 1)P(1)}{P(a)}\tag{11}

式(10)中,P(1)P(1)P(1a)P(1\mid a)都表示θ=1\theta=1的概率,但是P(1)P(1)的值与XX的取值无关,称为先验概率P(1a)P(1 \mid a)是建立在X=aX=a的基础上的(额外知晓了一些信息),称为后验概率。分子中的P(a1)=L(1a)P(a \mid 1)=L(1 \mid a),表示θ=1\theta=1时产生数据X=aX=a的概率,称为似然。分母中P(a)P(a)X=aX=a边缘概率,在θ\theta所有的值都确定,并且θ\theta各个取值下产生aa的概率也确定的情况下,P(a)P(a)是一个常数。

因此,有

(12)=××后验概率=\frac{似然\times 先验概率}{边缘概率} \propto 似然\times 先验概率 \tag{12}

换成连续变量,在x=xix=x_i的条件下,θ\theta的后验概率

(13)P(θxi)=P(xiθ)P(θ)P(xθ)P(θ)dxP(xiθ)P(θ)P(\theta \mid x_i)=\frac{P(x_i \mid \theta)\cdot P(\theta)}{\int P(x \mid \theta) P(\theta) \mathrm{d}x} \propto P(x_i \mid \theta)\cdot P(\theta) \tag{13}

P(θxi)P(\theta \mid x_i)称为θ\theta经验贝叶斯后验分布,将该概率最大化(最大似然),对应的θ^\hat{\theta}就是θ\theta经验贝叶斯估计值(EBE)。

2. NONMEM的参数估计

2.1 多层嵌套的随机效应

在NONMEM中,随机效应分为两层:(1)参数层面:个体间变异;(2)函数值层面:残差变异。

数据产生的过程如下:

  • 第1步:从参数的随机变异N(0,ω2)N(0, \omega^2)中抽样出一个值η\eta
  • 第2步:在已经抽到η\eta的条件下,将参数的典型值θ\theta和变异η\eta,带入到事先选定的结构模型ff中,得到预测值f(θ,η)f(\theta, \eta)
  • 第3步:将预测值加上一个随机变异ε\varepsilon,以表示预测值与实测值之间的残差,其中ε\varepsilon服从N(0,σ2)N(0, \sigma^2)

因此,在已知参数典型值θ\theta、个体间变异分布N(0,ω2)N(0, \omega^2)、残差变异分布N(0,σ2)N(0, \sigma^2)的情况下,得到数据yy的概率(即yy的边缘概率)为

(14)P(yθ,ω2,σ2)=P(yθ,σ2,η)P(ηω2)dηP(y\mid \theta, \omega^2, \sigma^2)=\int P(y \mid\theta, \sigma^2, \eta) P(\eta \mid \omega^2) \mathrm{d}\eta \tag{14}

式(14)中,P(ηω2)P(\eta \mid \omega^2)表示第1步(抽取η\eta)的概率,P(yθ,σ2,η)P(y \mid\theta, \sigma^2, \eta)表示第2、3步(在抽到η\eta情况下生成yy)的概率。

式(14)就是NONMEM的目标函数的雏形。NONMEM的参数估计,就是根据现有数据yy,找到最合适的θ\thetaω2\omega^2σ2\sigma^2的值,使现有数据出现的概率最大化:

(15)L(θ,σ2,ηy)=P(yθ,σ2,η)L(\theta, \sigma^2, \eta \mid y)=P(y \mid\theta, \sigma^2, \eta) \tag{15}

相应的取值就是对应参数的估计值,这实际上前文所述的最大似然估计过程。通常会对似然函数取对数再乘以-2,因此似然函数的最大化对应NONMEM目标函数值(OFV)的最小化。

NONMEM的目标函数比较复杂,所以会进行一些近似。

2.2 拉普拉斯近似

式(4)是泰勒二阶展开式,由于目标函数是积分形式,并且会对其做对数处理,因此在以下表达式中对函数f(x)f(x)x0x_0处做二阶泰勒展开

(16)exp(f(x))exp(f(x0)+f(x0)2(xx0)2+f(x0)(xx0))=exp(f(x0))exp(f(x0)2(xx0)2+f(x0)(xx0))=exp(f(x0))2πf(x0)exp(f(x0)22f(x0))\begin{aligned} \int \exp(f(x))&\approx\int \exp \left (f(x_0)+\frac{{f}''(x_0)}{2} (x-x_0)^2+{f}'(x_0)(x-x_0) \right ) \\ &= \exp(f(x_0))\cdot \int \exp(\frac{{f}''(x_0)}{2} (x-x_0)^2+{f}'(x_0)(x-x_0)) \\ &= \exp(f(x_0))\cdot \sqrt{\frac{2\pi}{-{f}''(x_0)}} \cdot \exp(-\frac{{f}'(x_0)^2}{2{f}''(x_0)}) \end{aligned} \tag{16}

式(16)的推导来自正态分布,过程略。

NONMEM的似然函数为

(17)L(θ,σ2,ηy)=P(yθ,σ2,η)=P(yθ,σ2,η)P(ηω2)dηL(\theta, \sigma^2, \eta \mid y)=P(y \mid\theta, \sigma^2, \eta)=\int P(y \mid\theta, \sigma^2, \eta) P(\eta \mid \omega^2) \mathrm{d}\eta \tag{17}

式(17)中,P(yθ,σ2,η)P(y \mid\theta, \sigma^2, \eta)这一项是似然。令l(η)=P(yθ,σ2,η)l(\eta)=P(y \mid\theta, \sigma^2, \eta),-2倍的对数似然为

(18)Φ(η)=2lnl(η)\Phi(\eta)=-2 \ln l(\eta) \tag{18}

Φ(η)\Phi(\eta)的一阶导数和二阶导数分别是

(19)G(η)=2l(η)l(η)G(\eta)=-2\cdot \frac{{l}'(\eta)}{l(\eta)} \tag{19}

(20)H(η)=2(l(η)l(η))H(\eta)=-2\cdot {\left (\frac{{l}'(\eta)}{l(\eta)} \right )}' \tag{20}

式(17)中,P(ηω2)P(\eta \mid \omega^2)这一项是η\eta的先验分布。令h(η)=P(ηω2)h(\eta)=P(\eta \mid \omega^2),这是一个正态分布N(0,ω2)N(0,\omega^2),因此

(21)h(η)=12πω2exp(η22ω2)h(\eta) = \frac{1}{\sqrt{2\pi \omega^2}} \cdot \exp(\frac{\eta^2}{-2\omega^2}) \tag{21}

(22)h(η)=12πω2exp(η22ω2)(ηω2){h}'(\eta) = \frac{1}{\sqrt{2\pi \omega^2}} \cdot \exp(\frac{\eta^2}{-2\omega^2})\cdot (\frac{\eta}{-\omega^2}) \tag{22}

(23)h(η)h(η)=ηω2\frac{{h}'(\eta)}{h(\eta)} = \frac{\eta}{-\omega^2} \tag{23}

(24)(h(η)h(η))=1ω2{\left (\frac{{h}'(\eta)}{h(\eta)} \right )}' = \frac{1}{-\omega^2} \tag{24}

g(η)=ln(l(η)h(η))g(\eta)= \ln (l(\eta) \cdot h(\eta))

(25)g(η)=lnl(η)+lnh(η)=l(η)l(η)+h(η)h(η)=12G(η)ηω2{g}'(\eta)={\ln l(\eta)}'+{\ln h(\eta)}'=\frac{{l}'(\eta)}{l(\eta)}+\frac{{h}'(\eta)}{h(\eta)}=-\frac{1}{2}G(\eta)-\frac{\eta}{\omega^2} \tag{25}

(26)g(η)=(l(η)l(η))+(h(η)h(η))=12H(η)1ω2{g}''(\eta)={\left (\frac{{l}'(\eta)}{l(\eta)} \right )}'+{\left (\frac{{h}'(\eta)}{h(\eta)} \right )}'=-\frac{1}{2}H(\eta)-\frac{1}{\omega^2} \tag{26}

则NONMEM的目标函数(即-2倍的似然函数)为

(27)2lnL(θ,σ2,ηy)=2lnl(η)h(η)dη=2lnexp(g(x))dη2ln(exp(g(η0))2πg(η0)exp(g(η0)22g(η0)))=2g(η0)2ln2πg(η0)2(g(η0)22g(η0))=2ln(l(η0)h(η0))2ln(2πg(η0))12+g(η0)2g(η0)=2lnl(η0)2lnh(η0)ln2πg(η0)+g(η0)2g(η0)=2lnl(η0)+ln(2πω2)+η02ω2ln(2π)+ln(g(η0))+g(η0)2g(η0)=2lnl(η0)+lnω2+η02ω2+ln(g(η0))+g(η0)2g(η0)=Φ(η0)+lnω2+η02ω2+ln(H(η0)2+1ω2)(G(η0)2+η0ω2)2H(η0)2+1ω2\begin{aligned} -2\ln L(\theta, \sigma^2, \eta \mid y) &= -2\ln \int l(\eta)\cdot h(\eta) \mathrm{d}\eta \\ &= -2 \ln \int \exp(g(x)) \mathrm{d}\eta \\ &\approx -2 \ln \left (\exp(g(\eta_0))\cdot \sqrt{\frac{2\pi}{-{g}''(\eta_0)}} \cdot \exp\left (-\frac{{g}'(\eta_0)^2}{2{g}''(\eta_0)}\right )\right ) \\ &= -2g(\eta_0) -2 \ln \sqrt{\frac{2\pi}{-{g}''(\eta_0)}} -2 \cdot \left (-\frac{{g}'(\eta_0)^2}{2{g}''(\eta_0)}\right ) \\ &= -2 \ln (l(\eta_0) \cdot h(\eta_0)) -2 \ln \left (\frac{2\pi}{-{g}''(\eta_0)} \right )^{\frac{1}{2}} + \frac{{g}'(\eta_0)^2}{{g}''(\eta_0)} \\ &= -2 \ln l(\eta_0) -2 \ln h(\eta_0) - \ln \frac{2\pi}{-{g}''(\eta_0)} + \frac{{g}'(\eta_0)^2}{{g}''(\eta_0)} \\ &= -2 \ln l(\eta_0) +\ln(2\pi \omega^2)+\frac{\eta_0^2}{\omega^2} - \ln(2\pi) + \ln(-{g}''(\eta_0)) + \frac{{g}'(\eta_0)^2}{{g}''(\eta_0)} \\ &= -2 \ln l(\eta_0) +\ln\omega^2+\frac{\eta_0^2}{\omega^2} + \ln(-{g}''(\eta_0)) + \frac{{g}'(\eta_0)^2}{{g}''(\eta_0)} \\ &= \Phi(\eta_0) +\ln\omega^2+\frac{\eta_0^2}{\omega^2} + \ln \left (\frac{H(\eta_0)}{2}+\frac{1}{\omega^2}\right ) - \frac{(\frac{G(\eta_0)}{2}+\frac{\eta_0}{\omega^2})^2}{\frac{H(\eta_0)}{2}+\frac{1}{\omega^2}} \\ \end{aligned} \tag{27}

η0\eta_0g(x)g(x)的极值点时,式(6)的最后一项等于0,因此

(28)2lnL(θ,σ2,ηy)=Φ(η0)+lnω2+η02ω2+ln(H(η0)2+1ω2)-2\ln L(\theta, \sigma^2, \eta \mid y) = \Phi(\eta_0) +\ln\omega^2+\frac{\eta_0^2}{\omega^2} + \ln \left (\frac{H(\eta_0)}{2}+\frac{1}{\omega^2}\right ) \tag{28}