nCOV 数据简要分析 (0326)

matlabdatacov

简介

碰巧看到了数据上传, 正在跑数据的我想着要不拟合一下看看, 然后, 就做了两个小时, 这里做一个简单的记录过程, 后续可能做在线的 实时预测,,(坑...)

这个结果还是不能乱发的, 不然下一个谣言就是我了, 狗命要紧..

时代的一粒尘,落到个人身上就是一座大山,偏偏我们生活在尘土飞扬的时代

------ 方方

灾难并不是死了两万人这样一件事,而是死了一个人这件事,发生了两万次

-------北野武

这是 灾难给我的印象最深的两句话, 愿逝者安息, RIP

获取数据

目前数据很多, 我比较信赖的是 JHU 给的一个 全球的数据集 CSSEGISandData/COVID-19 数据[1], 也有更为详细的国内的数据集比如 DXY-COVID-19-Data[2], 相信之后也会有很多人进行数据分析,

我这边使用的是 2020年3月25日归档数据

数据整理

拿到数据之后是一个 502x66的数据, 包括全世界 省/州 62天来的时间序列数据, 有着国家/省/经纬度 以及时间序列


部分数据示例

我们不做具体的每个地区的分析, 这里直接纵向累加即可, 最终得到的数据是 501x62 尺寸的数据

进而累加之后 进行时间序列的绘制

这里为了顺手 所以这边分析暂时都是使用的 MATLAB


自2020-1-22的全球确诊数据

数据拟合

这里避免一些数据问题, 我这单独标记出来了自 25天的数据,

在这之前的数据只有中国的, 这里只取后面的数据进行分析,

第25天也就是 2020年2月16日的数据,

这里使用了 MATLAB 的 cftool 进行曲线拟合[3]

具体的使用方法见参考链接

这边使用的是二次的指数拟合

最终得到的结果如图


2月16号之后拟合数据

最终的到的拟合结果 三组结果都可以, 一般取第一组数据

  1. General model Exp2: 


  2. f(x) = a*exp(b*x) + c*exp(d*x) 


  3. Coefficients (with 95% confidence bounds): 



  4. a = 7.173e+04 (7.011e+04, 7.336e+04) 


  5. b = 0.007432 (0.004555, 0.01031) 


  6. c = 654.7 (443.6, 865.9) 


  7. d = 0.1647 (0.1564, 0.1729) 




  8. Goodness of fit: 


  9. SSE: 9.988e+07 


  10. R-square: 0.9994 


  11. Adjusted R-square: 0.9994 


  12. 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月份的上旬或者 中旬左右,

愿逝者安息, 世间平平安安

代码

最终附带 分析代码

  1. % COV data an 



  2. [city,day] = size(serial); 



  3. time_sum = zeros(1,day); 



  4. for i=1:day 


  5. time_sum(1,i) = sum(serial(:,i)); 


  6. end 



  7. plot(time_sum,'-*'); 


  8. days = 1:day; 


  9. d = 25; 


  10. l_days = 1:day-d; 



  11. for i=1:day-d 


  12. time_sum2(1,i) = sum(serial(:,i+d)); 


  13. end 





  14. time_sum2 = time_sum2 - time_sum2(1); 


  15. % 运行 2月16号之后的数据 



  16. figure 


  17. hold on 



  18. % 从 第25天的数据 也就是 02/16日开始 


  19. init_day = datetime(2020,02,15); 




  20. t1 = init_day + l_days; 


  21. plot(t1,time_sum2,'-o'); 



  22. % 绘制 拟合曲线 


  23. a = 7.173e+04; 


  24. b = 0.007432; 


  25. c = 645.7; 


  26. d = 0.1647; 



  27. set_day = 45; 



  28. hold on 


  29. x = 1:set_day; 


  30. y= a*exp(b*x)+c*exp(d*x); 



  31. % 绘制 10000000 边界线 


  32. y_max = 1000000*ones(1,set_day); 


  33. plot(t,y_max); 



  34. % 绘制 预测线 


  35. t = init_day+(x); 


  36. plot(t,y,'-*'); 




  37. % 创建 xlabel 


  38. xlabel({'2月16号 以后日期序列'}); 


  39. datetick('x',6); 


  40. % 创建 ylabel 


  41. ylabel('Confirm 人数'); 



参考链接

  1. 2020-03-25 数据存档

nCOV 数据简要分析 (0326)的更多相关文章

  1. ITS简要分析流程(using Qiime)

    Qiime安装 参考资料:http://blog.sina.com.cn/s/blog_83f77c940101h2rp.html Qiime script官方说明http://qiime.org/s ...

  2. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...

  4. Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析

    原文发表于 2013 年 8 月 28 日 由 三石 根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给出了Fork Join的实现.在Java SE 7的API中,多了ForkJoin ...

  5. [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp85   根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给 ...

  6. [Java] Hashtable 源码简要分析

    Hashtable /HashMap / LinkedHashMap 概述 * Hashtable比较早,是线程安全的哈希映射表.内部采用Entry[]数组,每个Entry均可作为链表的头,用来解决冲 ...

  7. RxJava && Agera 从源码简要分析基本调用流程(2)

    版权声明:本文由晋中望原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/124 来源:腾云阁 https://www.qclo ...

  8. qemu网络虚拟化之数据流向分析三

    2016-09-27 前篇文章通过分析源代码,大致描述了各个数据结构之间的关系是如何建立的,那么今天就从数据包的角度,分析下数据包是如何在这些数据结构中间流转的! 这部分内容需要结合前面两篇文章来看, ...

  9. CVPR2018 关于视频目标跟踪(Object Tracking)的论文简要分析与总结

    本文转自:https://blog.csdn.net/weixin_40645129/article/details/81173088 CVPR2018已公布关于视频目标跟踪的论文简要分析与总结 一, ...

随机推荐

  1. C/C++知识总结 二 C/C++基础知识

    C/C++基础知识 C/C++基本格式说明 C/C++基本常识说明 C/C++基本格式说明 C语言基本格式 #include<stdio.h> //预处理文件 int main() //自 ...

  2. VAuditDemo-文件包含漏洞的审计

    包含漏洞 include.require等先关函数,include($file) 文件包含漏洞的问题在于参数可控(路径.文件名.后缀) include($path.$filename.$ext) 包含 ...

  3. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法

    错误原因在于由于文件 node_modules 太大,在项目上传时有些人会删掉 导致我们下载的项目中缺少这个文件 在尝试把自己项目的 node_modules文件夹直接复制过去之后发现问题还没有得到解 ...

  4. shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上

    shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上 naonao_127关注2人评论19401人阅读2012-06-08 11:26:16         生产环境下脚本自动备份脚本是 ...

  5. 01 微信小程序创建组件和使用组件

    01 创建组件 遇见的困难 图标显示不出来,是因为你没有在组件的css中引入,所以显示不出来. 我一直以为是一个坑.结果是自己没有整清楚 01==>在page的同级目录下,创建一个文件夹,命名为 ...

  6. 家庭版记账本app开发之关于(数据库查找出数据)圆饼图的生成

    这次完成的主要的怎样从数据库中调出数据.之后通过相关的数据,生成想要的圆饼图.以方便用户更加直观的看见关于账本的基本情况. 在圆饼图生成中用到了一些外部资源 具体的import如下: import c ...

  7. 家庭版记账本app开发进度。开发到现在整个app只剩下关于图表的设计了,具体功能如下

    首先说一下自己的功能: 实现了用户的登录和注册.添加收入记账和添加支出记账.粗略显示每条账单基本情况.通过点击每条账单来显示具体的情况, 之后就是退出当前用户的操作. 具体的页面情况如下: 这就是整个 ...

  8. PTA 6-1 单链表逆转

    本题是一个非常经典的题目:单链表逆转. 这是链表结点的定义: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储 ...

  9. Python设计模式(8)-抽象工厂

    # coding=utf-8 这种方式反倒把事情做复杂了 可取之处在于有了更高层次的抽象 class IEmployee: def insert_employee(self): pass class ...

  10. Linux中vim编辑器 的 快捷键 --- 常用 的 都比较全

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到 ...