使用线性与其他非线性模型

Contents

昨日模型预估5月18日新增确诊病例数约为520-570例,实际新增确诊270例。误差为92.6-111% ,误差极大。误差原因为新增病例数较前一日减小,而指数模型假设为单调增加,因此造成较大误差。

由于疫情仍处于上升期,且数据点少,很难从本组数据中推断明日(5月19日)新增病例数会较前一日增加或减少。5月18日的降低可能是数据噪声,但也可能是实际在下降

这时,使用更多其他数据作辅助判断的机器学习模型能够较好胜任预测。其原因在于机器学习模型是高维的、非线性的。高维的优势在于能够考虑多个变量对输出的影响。非线性的优势在于能有更真实地对现实情况进行建模。由于其复杂性,建立模型所需的知识储备和时间都较多,所以不在这里举例。

由于数据变动较大,今天我们除原先的指数模型,还考虑线性和其他非线性模型

使用指数模型,我们有

P(t)=AektP(t) = Ae^{kt}

除了原先提到过的局限性,还需要注意的是,指数模型只能够单调增加或单调减少。因此,在由增加转减少的时候不适用。这也是昨日模型误差大的原因。

今日,指数模型提示,若新增确诊病例数持续增加,则可以来到约380例,在300-400例的区间。

/posts/2021/%E4%BD%BF%E7%94%A8%E7%BA%BF%E6%80%A7%E4%B8%8E%E5%85%B6%E4%BB%96%E9%9D%9E%E7%BA%BF%E6%80%A7%E6%A8%A1%E5%9E%8B/exponential.png
指数模型

使用线性模型,我们有

P(t)=kt+bP(t) = kt+b

与指数模型相同,线性模型只能够单调增加或单调减少。但是线性模型增加率比指数模型小得多。因此更加适用于疫情趋缓的情况。

今日,线性模型提示,若新增确诊病例数持续增加,则可以来到约360例,在300-400例的区间。 前几日的和平均的线性模型提示,新增确诊病例也可能到200例至400余例不等。

/posts/2021/%E4%BD%BF%E7%94%A8%E7%BA%BF%E6%80%A7%E4%B8%8E%E5%85%B6%E4%BB%96%E9%9D%9E%E7%BA%BF%E6%80%A7%E6%A8%A1%E5%9E%8B/linear.png
线性模型

挑选适合的非线性模型,我们有

P(t)=Atnekt+bP(t) = At^n e^{kt} + b

作简单的分析,我们能够得知:

  • tt较小时,tnt^n项主导该模型,P(t)P(t)持续依照tnt^n的趋势增加(在此,一般有n1n \ge 1
    • t0t \to 0时,P(t)bP(t) \to b. 新增确诊数在初始状态
  • tt较大时,ekte^{kt}项主导该模型,P(t)P(t)持续依照ekte^{kt}的趋势减小(在此,一般有k<0k < 0
    • tt \to \infty时,P(t)0P(t) \to 0. 疫情结束,新增确诊数趋近于零
  • tt达到最高点时,P(t)P(t)停止增加
    • 求得导数,并将其设置为0,求得tt
    • 可以估算到达高峰的时间
    • 注意:n1n \ge 1k<0k < 0,所以t>0t>0

P(t)=A(ntn1ekt+ktnekt)P'(t) = A(nt^{n-1} e^{kt} + k t^n e^{kt}) n+kt=0n+kt = 0 t=nkt = -\dfrac{n}{k}

与先前模型不同的是,这里选择的非线性模型在最高点前单调增加,在最高点后或单调减小。该模型能更好地将疫情整体情况建模,但在面对更多复杂趋势时会无法适用。

例如,很多先前的数据点仅有单调增加或增加幅度不成比例地大,所以先前的模型都无法很好地拟合数据点。

由于减少的数据点的出现,该模型在今日能够更好地发挥其优势。

今日,非线性模型提示,若新增确诊病例数已经到达最高点并开始下降,则5月18日新增病例可以下降到约240例,在200-300例的区间。 值得注意的是,由于数据点较少,该假设仍需更多的数据的支持。

/posts/2021/%E4%BD%BF%E7%94%A8%E7%BA%BF%E6%80%A7%E4%B8%8E%E5%85%B6%E4%BB%96%E9%9D%9E%E7%BA%BF%E6%80%A7%E6%A8%A1%E5%9E%8B/nonlinear.png
非线性模型

本文也发于微信公众号