更多专业的人工智能相关文章,微信搜索 : robot-learner , 或扫码
在疫情持续过程中,想要准确估算治愈率的困难之处在于时间的动态性。假设一年以后来算治愈率,这个问题将非常简单和准确,公式如下:
治愈率 = 总的治愈人数 / 总的确诊人数
但是,随着疫情的持续发展,前几日刚刚确诊的人群可能还没有开始住院治疗,自然也不可能治愈。所以此时的统计数字一定是低估的。比如腾讯疫情关注的每日治愈率,就是每日的治愈人数除以每日确诊人数得出。
这个其实可以稍微改进一下:用前一日的确诊人数作为分母,今日的治愈人数作为分子。毕竟不可能今天刚刚确诊的人数就开始治疗。这样做一个小的修正后,每天统计的治愈率如下图,截至2020年2月12日:
(注: 自2020年2月13日,武汉统计确诊人数方法发生变化。因为历史数据不大可能被更新,所以这个图上的2月13号后的数字会出现一个不光滑的跳跃)。
如上图,刚开始时候治愈率下降,是因为确诊增加人数速度很快,治疗还没有跟上。 但随着防控和医疗力度加大,治愈率也不断提高。 这个图上的数字最终会接近1.0,可能0.97以上,但是得等到几个月后疫情基本结束以后。
所以上面的方法来计算治愈率,虽然简单,但是有缺陷,目前应该是大幅低估了真正的治愈率。
下面我们用数据挖掘和最小二乘法的算法来估算确诊一段时间以后,到底多少人被治愈了,比如2周或者10天。首先我们来分析问题。对于任何一天,我们都会有一个累计的治愈人数。这个治愈人数的来源可以分为两部分: 一个是2周以前确诊的人在这一天看来已经治愈的人数,另一个是2周以内确诊的人在这一天看来已经治愈的人数。 如下图所示:
那么上图用一个简单数学公式表达就是:
其中
- y 代表某日的累计治愈人数,
- N1代表2周内总的确诊人数,
- x1代表2周内确诊人群在测量日看来的治愈比例,
- N2代表2周以上总的确诊人数,
- x2代表2周以上确诊人群在测量日看来的治愈比例。
请注意我们的用词。比如x2, 模型计算的其实不是确诊病人2周以上的治愈率;而是确诊2周以上的病人,在今天来检查的时候,发现已经治愈人数所占的比例。 这两个说法是不太一样的,聪明的读者可以自己想一下。
上面的公式其实是一个简单的线性回归模型(有兴趣的读者可以查看公众号之前专门讲线性回归模型的文章)。从2020年1月23日,每天用这个公式计算一次,我们会获得21个数据点。利用Python中的statsmodels包的最小二乘法 OLS library,我们可以很轻松的获得关于x1和x2的估算结果如下:
结果显示,2周以内确诊人群今天看来不到5%人数治愈, 但是2周以外确诊的人群在今天看来,有接近80%人数治愈。
上面的结果显示,新型肺炎的确需要一段时间才能治愈,2周以内治愈比例还是较低的。这个可能也正常,就是流感也得1周多才能康复。2周以上来看的话,这个治愈率目前看来还是比较鼓舞人心的。因为目前数据点还不足够多,并且2周以外的时间段对于每个数据点都是不一样的,有的长有的短。所以给这个数字还是偏低的。随着数据点的增加,和后期医疗手段的提高,治愈率数字会进一步提高和准确。