当前位置:   article > 正文

信息传播学习笔记(1)——SIS模型原理与公式推导

sis模型

本文是SIS模型的原理与公式推导,不涉及代码(后续补充)。

对了宝贝儿们,卑微小李的公众号【野指针小李】已开通,期待与你一起探讨学术哟~摸摸大!

1 背景

SIS模型是流行病学中的一个模型,流行病是具有传播效应的,能够在一个社会网络中进行传播(比如今年的疫情),在这个网络中,每个节点代表一个人,当两个人联系(建立边)的时候,疾病就有可能进行传播。

而信息传播(information dissemination,也称信息扩散)也可以看作是流行病传播,因为信息传播也需要节点与节点之间有边,才能产生概率进行传播。

就比如我得关注某个小姐姐的微博,并且评论了一句“小姐姐真好看,还缺男朋友么”,那么我和小姐姐就是两个节点,关注与评论这个过程就是建立边的过程,这个边是有向边,由我这个节点指向小姐姐这个节点,我传播的信息是“小姐姐真好看,还缺男朋友么”,但是如果小姐姐私信太多,忽略了我这个私信,或者直接把我拉黑了,那么我这个消息就传播不过去。

流行病学模型中是将传播过程分为了三类:

  1. 敏感期(susceptible):节点尚未患病(获得信息),并且处于容易被邻居传染的时期;
  2. 感染期(infectious):一个被传染了的节点(获得信息),并且有一定的几率把疾病(信息)传感给处于敏感期的邻居;
  3. 隔离期(removed):当一个节点经历了完整的感染期,就不会再被感染(免疫了),也不会再感染其他的节点。

本文讨论的是SIS模型,即节点只有敏感期和感染期的节点,不考虑隔离期的节点。

2 SIS模型原理

由于没有隔离期,所以SIS模型只允许节点在 S S S I I I两个状态之间交替变换,就如新冠一样,你病好了依然有可能继续被感染,所以大家一定要勤通风,多戴口罩。

在《网络、群体与市场》这本书上,将整个模型的流程概括为:

  1. 初始情况下,一些节点处于状态 I I I,其余节点处于状态 S S S
  2. 每个状态 I I I的节点 v v v在固定数量的步骤 t i t_i ti期间内具有传染性;
  3. t i t_i ti期间的每一步, v v v以概率 p p p将疾病传染给它所有出在状态 S S S的邻居;
  4. 经过 t i t_i ti步骤后,节点 v v v不再具有传染性,返回状态 S S S

但是还有种情况,也就是我主要要讲的情况:

  1. 整个网络中共有 N N N个人,该网络并不会发生变化;
  2. 在最初时刻,有 I I I个被感染的人, S S S个易感染的人,即 N = I + S N=I+S N=I+S
  3. 每个时刻被感染者的比例为 i ( t ) i(t) i(t),易感者的比例为 s ( t ) s(t) s(t),这里 i ( t ) + s ( t ) = 1 i(t)+s(t)=1 i(t)+s(t)=1 i ( t ) i(t) i(t) t t t时刻的 I ( t ) N \frac{I(t)}{N} NI(t) s ( t ) s(t) s(t) t t t时刻的 S ( t ) N \frac{S(t)}{N} NS(t)
  4. 假设在每一个时刻每个感染者有 λ \lambda λ的概率把毒传染给邻居,且有 μ \mu μ的概率被治疗成功。

由于这是个需要考虑变化率的问题,所以我们可以通过构建微分方程求解。微分方程为:
N d i ( t ) d t = N i ( t ) λ s ( t ) − μ N i ( t ) N \frac{di(t)}{dt} = N i(t) \lambda s(t) - \mu Ni(t) Ndtdi(t)=Ni(t)λs(t)μNi(t)

N d s ( t ) d t = − N i ( t ) λ s ( t ) + μ N i ( t ) N \frac{ds(t)}{dt} = - N i(t) \lambda s(t) + \mu Ni(t) Ndtds(t)=Ni(t)λs(t)+μNi(t)

我们以第一个公式来看,该公式表达了在 t t t时刻感染者 i ( t ) i(t) i(t)的变化率,其构成为当日新增的患者 N i ( t ) λ s ( t ) N i(t) \lambda s(t) Ni(t)λs(t)减去当日治愈的患者 μ N i ( t ) \mu Ni(t) μNi(t)

N i ( t ) λ s ( t ) N i(t) \lambda s(t) Ni(t)λs(t)的意思是,一共有 N i ( t ) N i(t) Ni(t)个患者,每个人有 λ \lambda λ的概率感染别人,被感染的人的比率那么就有 λ s ( t ) \lambda s(t) λs(t) μ N i ( t ) \mu Ni(t) μNi(t)的意思是,一共有 N i ( t ) N i(t) Ni(t)个患者,每个人有 μ \mu μ的概率被治愈。这里都是概率,是因为 d i ( t ) d t \frac{di(t)}{dt} dtdi(t)求的就是比率。

由上面的内容我们可以绘制出如下图:
模型图
有了公式后,我们就开始解该微分方程。

3 求解微分方程

由于两个公式只是个负号的区别,所以我们只讨论第一个公式:
N d i ( t ) d t = N i ( t ) λ s ( t ) − μ N i ( t ) N \frac{di(t)}{dt} = N i(t) \lambda s(t) - \mu Ni(t) Ndtdi(t)=Ni(t)λs(t)μNi(t)

我们首先先把公式改为习惯的样子:
d i d t = λ i s − μ i \frac{di}{dt} = \lambda i s - \mu i dtdi=λisμi

这里只是为了方便书写,把 ( t ) (t) (t)去掉了,但是大家要时刻记得 i i i s s s都是关于 t t t的函数,而 λ \lambda λ μ \mu μ是常数项。

并且我们由已知可得:
s ( t ) + i ( t ) = 1 → s ( t ) = 1 − i ( t ) s(t)+i(t)=1 \rightarrow s(t)=1-i(t) s(t)+i(t)=1s(t)=1i(t)

于是公式转换为:
d i d t = ( λ − μ ) i − λ i 2 \frac{di}{dt} = (\lambda - \mu)i - \lambda i^2 dtdi=(λμ)iλi2

由于有 i 2 i^2 i2,所以这是个伯努利方程,采用伯努利方程的解法,等式两边同时除 i 2 i^2 i2
i − 2 i ′ − ( λ − μ ) i − 1 = − λ i^{-2}i' - (\lambda - \mu)i^{-1} = -\lambda i2i(λμ)i1=λ

i − 1 = u i^{-1}=u i1=u,并对其求导可得:
− i − 2 i ′ = d u d t → i − 2 i ′ = − d u d t -i^{-2}i'=\frac{du}{dt} \rightarrow i^{-2}i'=-\frac{du}{dt} i2i=dtdui2i=dtdu

于是原等式变为:
− d u d t − ( λ − μ ) u = − λ -\frac{du}{dt} - (\lambda - \mu)u=-\lambda dtdu(λμ)u=λ

将负号去掉:
d u d t + ( λ − μ ) u = λ \frac{du}{dt} + (\lambda - \mu)u=\lambda dtdu+(λμ)u=λ

我们发现这是一个一阶线性微分方程,直接带通解公式得:
u = e − ∫ ( λ − μ ) d t [ ∫ λ e ∫ ( λ − μ ) d t d t + c ] u=e^{-\int(\lambda - \mu)dt}[\int \lambda e^{\int (\lambda - \mu)dt}dt + c] u=e(λμ)dt[λe(λμ)dtdt+c]

对其求解积分得:
u = e − ( λ − μ ) t [ λ λ − μ e ( λ − μ ) t + c ] u=e^{-(\lambda - \mu)t}[\frac {\lambda}{\lambda - \mu} e^{ (\lambda - \mu)t} + c] u=e(λμ)t[λμλe(λμ)t+c]

将其化简可得:
u = λ λ − μ + c e − ( λ − μ ) t u = \frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t} u=λμλ+ce(λμ)t

u u u变回 i i i得:
i − 1 = λ λ − μ + c e − ( λ − μ ) t i^{-1} = \frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t} i1=λμλ+ce(λμ)t

解得 i i i
i = [ λ λ − μ + c e − ( λ − μ ) t ] − 1 i=[\frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t}]^{-1} i=[λμλ+ce(λμ)t]1

我们现在的目标是求解 c c c,令 i ( 0 ) = b i(0)=b i(0)=b,代入上面的方程得:
b = [ λ λ − μ + c ] − 1 b=[\frac{\lambda}{\lambda - \mu} + c]^{-1} b=[λμλ+c]1

解得:
c = 1 b − λ λ − μ c=\frac{1}{b}-\frac{\lambda}{\lambda - \mu} c=b1λμλ

于是得到结果:
i = [ λ λ − μ + ( 1 b − λ λ − μ ) e − ( λ − μ ) t ] − 1 i=[\frac{\lambda}{\lambda - \mu} + (\frac{1}{b}-\frac{\lambda}{\lambda - \mu}) e^{-(\lambda - \mu)t}]^{-1} i=[λμλ+(b1λμλ)e(λμ)t]1

到这里公式就求解完毕了,不过需要讨论 λ \lambda λ μ \mu μ的关系:

  1. 如果 λ ≠ μ \lambda ≠ \mu λ=μ,那么就是上面的公式;
  2. 如果 λ = μ \lambda = \mu λ=μ,那么公式为: i = [ λ t + 1 b ] − 1 i=[\lambda t + \frac{1}{b}]^{-1} i=[λt+b1]1

至于这个怎么算出来的,我查了许多资料都没有讲解的,只有这么一串代码:
代码
那么这告诉我们,这不是人算的,所以只要会用就行了。

4 参考

[1]大卫·伊斯利, 乔恩·克莱因伯格.网络、群体与市场——揭示高度互联世界的行为原理与效应机制[M].清华大学出版社:北京,2011-10:398-411.
[2]贺先平贺先平.传染病模型(微分方程)[EB/OL].https://wenku.baidu.com/view/0783ee1e2e3f5727a4e9620d.html,2014-6-22.
[3]KeepLearn.数学建模常用算法——传染病模型(二)SIS模型[EB/OL].https://zhuanlan.zhihu.com/p/142017716,2020-5-20.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/374978
推荐阅读
相关标签
  

闽ICP备14008679号