在家没事大家一起来分析nCov2019的数据吧

最近国内的朋友们都在家没事无聊,不如自己download最新病情数据做点简单的新型冠状病毒的数据分析吧!

在这里首先致谢Guangchuang Yu实现了一个R包可以自动下载拿到当前最新的病情数据(https://github.com/GuangchuangYu),数据应该来自腾讯。所以,一旦拿到每天每省每市的感染(confirmed), 疑似(suspect), 死亡(dead), 治愈(heal) 的人数,我们可以尝试用数据回答几个简单有趣的问题。我个人觉得我下面的一些分析适合中小学生的数学和编程能力。感兴趣的不妨试一试?!

根据目前每日confimed确诊染病人数,可否预测明天的染病人数?
大家拿到数据以后,可以尝试做几个regression analysis。每日确诊的病人数量符合线性分布,指数分布,多项式分布,还是什么分布呢?在此我先给出几个简单的尝试,抛砖引玉。

从下面的两个图中,很显然每日confirmed的染病人数不服从线性方程、也不服从指数方程。

左:线性; 右:指数

继续尝试,我们发现好像每日confirmed的染病人数服从polynomial (3次方)或者generalized additive model.

左:polynomial; 右:generalized additive model

所以,按照polynomial(3次方)的拟合, 我们得到的model如下。你可以看到,我们的model的R-squared is 0.9987, p-value is very significant. 有了方程,我们便可以根据Coefficients预测明天的可能会感染的人数。你要不要来试一试?

Call:
lm(formula = confirm ~ poly(date_numeric, 3), data = num_day)

Coefficients:
           (Intercept)  poly(date_numeric, 3)1  poly(date_numeric, 3)2  
                  3815                   20365                   11613  
poly(date_numeric, 3)3  
                  3146

Residuals:
    Min      1Q  Median      3Q     Max 
-448.01  -79.27   -2.68  144.17  257.33 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             3814.71      44.99   84.80  < 2e-16 ***
poly(date_numeric, 3)1 20364.75     206.15   98.78  < 2e-16 ***
poly(date_numeric, 3)2 11612.94     206.15   56.33  < 2e-16 ***
poly(date_numeric, 3)3  3146.24     206.15   15.26 2.35e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 206.2 on 17 degrees of freedom
Multiple R-squared:  0.9987,    Adjusted R-squared:  0.9985 
F-statistic:  4388 on 3 and 17 DF,  p-value: < 2.2e-16

当然,你也可以随便画出每个省现在的感染新型冠状病毒的人数。下面是我用R画的图。当然你有时间有兴趣,也可以画每个市的分布图来预测些有趣的东西。


bian'c

今天就到这儿吧,有兴趣的同学可以向我要代码,我很愿意分享。
(对于死亡人数的模拟我就不做了)

Fan at Boston
2020-02-02

你可能感兴趣的:(在家没事大家一起来分析nCov2019的数据吧)