nCOV 数据简要分析 (0326)
nCOV 数据简要分析 (0326)
简介
碰巧看到了数据上传, 正在跑数据的我想着要不拟合一下看看, 然后, 就做了两个小时, 这里做一个简单的记录过程, 后续可能做在线的 实时预测,,(坑...)
这个结果还是不能乱发的, 不然下一个谣言就是我了, 狗命要紧..
时代的一粒尘,落到个人身上就是一座大山,偏偏我们生活在尘土飞扬的时代
------ 方方
灾难并不是死了两万人这样一件事,而是死了一个人这件事,发生了两万次
-------北野武
这是 灾难给我的印象最深的两句话, 愿逝者安息, RIP
获取数据
目前数据很多, 我比较信赖的是 JHU 给的一个 全球的数据集 CSSEGISandData/COVID-19 数据[1], 也有更为详细的国内的数据集比如 DXY-COVID-19-Data[2], 相信之后也会有很多人进行数据分析,
我这边使用的是 2020年3月25日归档数据
数据整理
拿到数据之后是一个 502x66的数据, 包括全世界 省/州 62天来的时间序列数据, 有着国家/省/经纬度 以及时间序列

我们不做具体的每个地区的分析, 这里直接纵向累加即可, 最终得到的数据是 501x62 尺寸的数据
进而累加之后 进行时间序列的绘制
这里为了顺手 所以这边分析暂时都是使用的 MATLAB

数据拟合
这里避免一些数据问题, 我这单独标记出来了自 25天的数据,
在这之前的数据只有中国的, 这里只取后面的数据进行分析,
第25天也就是 2020年2月16日的数据,
这里使用了 MATLAB 的 cftool 进行曲线拟合[3]
具体的使用方法见参考链接
这边使用的是二次的指数拟合

最终得到的结果如图

最终的到的拟合结果 三组结果都可以, 一般取第一组数据
- General model Exp2:
- f(x) = a*exp(b*x) + c*exp(d*x)
- Coefficients (with 95% confidence bounds):
- a = 7.173e+04 (7.011e+04, 7.336e+04)
- b = 0.007432 (0.004555, 0.01031)
- c = 654.7 (443.6, 865.9)
- d = 0.1647 (0.1564, 0.1729)
- Goodness of fit:
- SSE: 9.988e+07
- R-square: 0.9994
- Adjusted R-square: 0.9994
- RMSE: 1767
SSE :错误的平方和。此统计量测量响应的拟合值的偏差。接近0的值表示更好的匹配。
R-square :多重测定系数。数值的大小在0到1之间,越接近1,表明方程的变量对y的解释能力越强。
Adjusted R-square :自由度调整 r 平方。接近1的值表示更好的匹配。当您向模型中添加附加系数时, 它通常是适合质量的最佳指示器。
RMSE :均方根误差。接近0的值表示更好的匹配。
这里这个数据拟合的已经很好了, 测试发现使用 傅里叶多项式3次以上也能很好的拟合或者 高斯4次以上 都能很好的拟合, 拟合得到的相似程度已经很接近了, 如果单纯的数据分析已经足够了, 真的要去做的话还是要用医学模型进行分析, 这里只是简单的做以下

数据预测
有了数据曲线之后能做的事情就很多了, 按照得到的曲线方程进行后续拟合, 然后看什么时候能够达到 100W 的数据大关

如果单纯从数据的角度考虑, 数据拟合的是没有问题的 , 数据显示 大改会在 03/30号 那天 数据会超过 100W的情况,
数据仅供参考, 没有任何意义
其他
这个结果没有任何意义, 实际上的模型要复杂很多, 我希望这个数据从明天就不再继续增加了, 然后 所有人都恢复健康,
希望数据不会成真, 但是我预感这个数据很可能会突破 100W, 应该在4月份的上旬或者 中旬左右,
愿逝者安息, 世间平平安安
代码
最终附带 分析代码
- % COV data an
- [city,day] = size(serial);
- time_sum = zeros(1,day);
- for i=1:day
- time_sum(1,i) = sum(serial(:,i));
- end
- plot(time_sum,'-*');
- days = 1:day;
- d = 25;
- l_days = 1:day-d;
- for i=1:day-d
- time_sum2(1,i) = sum(serial(:,i+d));
- end
- time_sum2 = time_sum2 - time_sum2(1);
- % 运行 2月16号之后的数据
- figure
- hold on
- % 从 第25天的数据 也就是 02/16日开始
- init_day = datetime(2020,02,15);
- t1 = init_day + l_days;
- plot(t1,time_sum2,'-o');
- % 绘制 拟合曲线
- a = 7.173e+04;
- b = 0.007432;
- c = 645.7;
- d = 0.1647;
- set_day = 45;
- hold on
- x = 1:set_day;
- y= a*exp(b*x)+c*exp(d*x);
- % 绘制 10000000 边界线
- y_max = 1000000*ones(1,set_day);
- plot(t,y_max);
- % 绘制 预测线
- t = init_day+(x);
- plot(t,y,'-*');
- % 创建 xlabel
- xlabel({'2月16号 以后日期序列'});
- datetick('x',6);
- % 创建 ylabel
- ylabel('Confirm 人数');
参考链接
CSSEGISandData/COVID-19 https://github.com/CSSEGISandData/COVID-19 ↩
DXY-COVID-19-Data https://github.com/BlankerL/DXY-COVID-19-Data ↩
matlabcftool用法及其菜单 https://blog.csdn.net/misskissC/article/details/8797655 ↩
nCOV 数据简要分析 (0326)的更多相关文章
- ITS简要分析流程(using Qiime)
Qiime安装 参考资料:http://blog.sina.com.cn/s/blog_83f77c940101h2rp.html Qiime script官方说明http://qiime.org/s ...
- 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析
作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...
- Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
原文发表于 2013 年 8 月 28 日 由 三石 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现.在Java SE 7的API中,多了ForkJoin ...
- [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp85 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给 ...
- [Java] Hashtable 源码简要分析
Hashtable /HashMap / LinkedHashMap 概述 * Hashtable比较早,是线程安全的哈希映射表.内部采用Entry[]数组,每个Entry均可作为链表的头,用来解决冲 ...
- RxJava && Agera 从源码简要分析基本调用流程(2)
版权声明:本文由晋中望原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/124 来源:腾云阁 https://www.qclo ...
- qemu网络虚拟化之数据流向分析三
2016-09-27 前篇文章通过分析源代码,大致描述了各个数据结构之间的关系是如何建立的,那么今天就从数据包的角度,分析下数据包是如何在这些数据结构中间流转的! 这部分内容需要结合前面两篇文章来看, ...
- CVPR2018 关于视频目标跟踪(Object Tracking)的论文简要分析与总结
本文转自:https://blog.csdn.net/weixin_40645129/article/details/81173088 CVPR2018已公布关于视频目标跟踪的论文简要分析与总结 一, ...
随机推荐
- python数据分析工具 | matplotlib
不论是数据挖掘还是数学建模,都免不了数据可视化的问题.对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图.它不但提供了一整套和 Matl ...
- Coding 是门技术
今天的分享来源于工作中的点点滴滴…… 01. 习惯性自嘲 代码写久了,伴随肩疼头痛眼近视,于是乎也就成了名副其实的 code farmer(码农),作为如牛吃草挤奶般的码农,吃草(撸)挤奶(码)便是日 ...
- STM32F103ZET6外部中断
1.EXTI功能 外部中断/事件控制器EXTI管理了STM32的20个中断/事件线. EXTI的功能框图如下: 在功能框图中,可以看到很多在信号线上打了一个斜杠并标注“20”的字样,这是表示在STM3 ...
- Docket 容器引擎
Docker 是世界领先的软件容器平台.是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中, 然后发布到任何流行的Linux或Windows机器上,可以实现虚拟化(软件 ...
- docker下安装centos,并在其上搭建lnmp环境
一.安装CentOs容器 1.进入docker下载CentOs,这里我使用的CentOs6.8 docker pull centos:6.8 2.创建容器 sudo docker run --priv ...
- 33.2 案例:输出指定目录下的所有java文件名(包含子目录)
package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static ...
- 28.5 Integer-- int的包装类
* 由于基本数据类型只能做一些简单的操作和运算,所以Java为我们封装了基本数据类型,为每种基本数据类型提供了包装类 * 包装类就是封装了基本数据类型的类,为我们提供了更多复杂的方法和一些变量 * * ...
- Git应用详解第六讲:Git协作与Git pull常见问题
前言 前情提要:Git应用详解第五讲:远程仓库Github与Git图形化界面 git除了可以很好地管理个人项目外,最大的一个用处就是实现团队协作开发.况且,linus大神开发git的初衷就是为了维护L ...
- Netty是如何处理新连接接入事件的?
更多技术分享可关注我 前言 前面的分析从Netty服务端启动过程入手,一路走到了Netty的心脏——NioEventLoop,又总结了Netty的异步API和设计原理,现在回到Netty服务端本身,看 ...
- 012-C语言小游戏之推箱子
012-C语言小游戏之推箱子 一.创建游戏地图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #define ROWS 11 #define COLS 12 char ...