武汉nocv-2019新冠状病毒疫情预测

#武汉nocv-2019新冠状病毒疫情预测

2月3日题记:算法是昨天写的,今天最新的数据和我昨天的预测差异较大,但作为一个数据分析的学习过程,还是把预测的算法记录下来。

##关于ncov冠状病毒肺炎感染预测的几点想法:

1 首先湖北的数据,受到早期瞒报,中后期测试试剂和医疗资源不足,大量人员无法确诊的影响,已经非常失真,没有参考意义,所以仅使用湖北外的确诊案例进行预测。
2 看了网上部分其他人员的预测,但其他人仅考虑了数据本身的增长曲线,按他们的模型每日确诊将是一个一直增长的曲线,这样预测就失去了意义。
3 统计了北京市提供的162个确诊患者的数据,发现一个人从出现症状到确诊,需要5天时间,这导致了每日确诊数据存在一定程度的滞后性,需要考虑。
4 其他考虑因素:1月23日武汉封城、春运影响、潜伏期。
5 数据来源:卫健委每日通报。

算法核心理念:假设1月15日武汉出城的病毒携带人数为num,随着疫情的扩大,随后每天新出城的感染者为num*x因子的幂次倍。例如假设num为500,x为1.1,那么:
武汉nocv-2019新冠状病毒疫情预测_第1张图片
这些病毒携带者,收到潜伏期的影响,他们将在2-14天后发病,潜伏期的概率密度分布,参考自新英格兰医学杂志的论文(https://mp.weixin.qq.com/s/4MrNMiGWdvEDlyKyHviDiQ)
而从发病到确诊的天数的概率密度分布,参考自北京每日公布的病例的数据,计算而得:
武汉nocv-2019新冠状病毒疫情预测_第2张图片
通过这2个概率分布,从而求出这些潜在的离开湖北的感染者将会分别在哪一天被确诊。
最后通过卫健委已经公布的每日湖北外各省新增病例数,去求得前边提到得变量num,x。然后推出后边每天得预测数据:
武汉nocv-2019新冠状病毒疫情预测_第3张图片
关于预测不准得思考:我这个模型中仅考虑了来自武汉的潜在感染者,没有考虑他们离开湖北后造成的人传人2代病例。因为之前看新闻,大多数病例都有武汉接触史。但今天北京的新闻提到被感染的病例比例已经有一半了,远超当初估计,还有多个省份爆出了大量聚集性传播病例,所以二代感染者越来越多导致模型失效。
二代传播病例该如何计算还没有什么想法。

代码写的非常啰嗦,还没整理,就不全提供了,这里主要贴下概率分布的那部分代码吧:

#df2 为每日出城人数预估
    df2 = pd.DataFrame(dfout)
    num_days=np.zeros(40)
    
    for index, row in df1.iterrows():
        for index2, row2 in df2.iterrows():
            day=int(row['days']+row2['days'])
            num_days[day]+=(row2['num']*row['proba'])
    
            
    day3=list(range(0,40))
    df3={'days':day3,'num':num_days}
    df3 = pd.DataFrame(df3)
    
    #df4为发病到确诊天数分布概率密度
    df4=pd.read_csv("ncov-bj2.csv")
    df4=df4.groupby('发病到确诊时间').count()
    df4['proba']=df4['公布时间']/163
    
    
    num_days1=np.zeros(100)
    for index, row in df3.iterrows():
        for index2, row2 in df4.iterrows():
            day=int(row['days']+index2)
            num_days1[day]+=(row['num']*row2['proba'])
            
    nfinal=np.floor(num_days1)

你可能感兴趣的:(武汉nocv-2019新冠状病毒疫情预测)