使用 ncov 包获取并分析疫情数据

使用 ncov 包获取并分析疫情数据

昨天的推文里,我介绍了开发一个最简单的 R 包的工作流程,相信不少同学已经对 R 包的开发流程有所了解了,今天我们就用这个 ncov 包获取疫情数据然后分析分析吧!

首先我们从 GitHub 上安装或本地安装这个包:

1
2
3
4
# 从 GitHub 上,需要先安装 devtools 包
devtools::install_github('czxa/ncov')
# 本地安装
install.packages('~/Desktop/ncov_0.0.0.9000.tar.gz', repos = NULL, type = "source")

加载这个包:

1
library(ncov)

初始化一个 ncov 对象,初始化的过程中所有的数据都会准备好存储在 df 中:

1
2
3
4
df <- ncov$new()
# 可以查看 df 所属的类
class(df)
#> [1] "ncov" "R6"

可以看到 df 是一个 ncov 类,而这个类是基于 R6 类进行封装的,下面再看下这个对象中存储的数据,首先是一些字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 当前时间:
df$times
#> [1] "截至2月8日12时08分"

# 确诊人数
df$confirm
#> [1] "34598"

# 疑似人数
df$suspect
#> [1] "27657"

# 治愈人数
df$cure
#> [1] "2052"

plot() 函数

我在 ncov 类里封装了一个 plot 函数,这个函数封装了 hchinamap 包的 hchinamap 函数,因此可以直接使用 plot() 作用 ncov 对象进行绘图:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

这样绘图过于粗糙,我们下面还是从数据出发,手工一步步分析疫情数据。

确诊人数的省份分布

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

绘制地图就很简单了:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

如果我们想为每个省份添加一个地图的话,我们可以先计算每个省的质心:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

由于湖北省的确诊数量比其它省份实在是高太多了,所以我们还是把 value 这个变量先分段然后再进行绘图:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

确诊人数的市级分布

由于我提供的地图数据里面直辖市是作为整体的,所以我手动把获取到的市级数据里面的直辖市数据加总了一下。注意,这里我是使用城市名称的前两个字匹配的,这样匹配的成功率高一些:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

确诊人数的全球分布

这幅图之前画过:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

历史数据趋势

突然发现我忘记把历史数据封装进 ncov 对象里面了!没事,还可以使用 jsondata 进行提取:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

新冠病毒的传染能力:R0

前面已经介绍过 R0 的计算了,这里就不再介绍了。我们来使用最新的数据计算 R0:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

从数据上就能看到,R0 下降的很快,而且很稳定,这是因为我使用的是增量数据(并没有固定窗口)。再绘图展示:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

预测

一般来说,如果一个传染病的 R0 低于 1,那么这个传染病就会自动消失;如果 R0 为 0 就说明这个病没有传染能力。所以我们关注两个时点,第一,什么时候 R0 会低于 1;第二,什么时候 R0 会达到 0。0 之后的预测就没有意义了。

sweep 包提供了一套时间序列预测的整洁工具(tidy tool),首先我们加载需要的一些包:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

去除 R0DF 的第一列:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

建模预测:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

绘图展示预测结果:

代码去哪了?

代码可以加入我的知识星球后从知识星球下载附件获取~
要了解如何加入我的知识星球,可以阅读关于界面或者添加我的微信咨询。

感觉最早到本月底才能出现拐点呢,慢慢熬吧!

知识星球附件链接:该附件无法通过知识星球的审核,可以添加我的微信索要。

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×