图片缩略图

fitVirus

版本2.1.2 (3.47 MB) by 米兰巴蒂斯塔
用logistic模型估计冠状病毒COVID-19疫情规模

248下载

更新2020年4月14日

查看许可协议

编者按:该文件被选为中央MATLAB本周精选

函数fitVirus03实现了一个逻辑模型,用于根据每天的预测来估计流行病的最终大小。这个模型是数据驱动的,所以它的预测和数据一样好。同时,假定模型是对单阶段流行的合理描述。但是,如果流行病发展到第二阶段,模型就变得无用了。该模型对于初始流行阶段也是无用的。

本文包含了奥地利、比利时、中国、克罗地亚、丹麦、德国、匈牙利、法国、伊朗、意大利、伦巴第群岛、挪威、荷兰、纽约州、葡萄牙、斯洛文尼亚、韩国、西班牙、瑞士、英国、美国的冠状病毒数据以及中国以外的数据(截至2020年3月24日)。

对于纯初始猜测或小数据集,回归收敛可能会失败,因此该方法不适用于流行病的早期阶段。此外,如果回归统计量不满足最低标准,如R^2 > 0.8, p-value < 0.05,则结果是无用的。

在epidemy评价图表区域的颜色分离epidemy相(这些都没有标准,但任意选择为方便起见):
红色-快速增长阶段
黄色-过渡到稳定状态相
绿-末期(高原期)

所产生的第二个数字是对每日流行程度的评估。如果这些值不收敛于一个常数,那么流行病可能还不稳定。

更详细的描述中可以找到
https://www.researchgate.net/publication/339240777_Estimation_of_the_final_size_of_coronavirus_epidemic_by_the_logistic_model
例子可以在
https://www.researchgate.net/publication/339912313_Forecasting_of_final_COVID-19_epidemic_size_200318

一种基于SIR模型的新版本可在
//www.tatmou.com/matlabcentral/fileexchange/74658-fitviruscovid19

其他国家的数据可以从
https://ourworldindata.org/coronavirus-source-data

免责声明。软件和数据是教育,而不是用于医疗或商业用途。

引用作为

米兰巴蒂斯塔(2020)。fitVirus(//www.tatmou.com/matlabcentral/fileexchange/74411-fitvirus), MATLAB中央文件交换。检索

评论和评分(43)

你能补充科索沃的数据吗?

非常感谢你更新我的程序,并修复了故障。

罗伯托,你安装统计工具箱了吗?

你好,我有一个问题,试图运行fitVirus03函数和Matlab呈现给我这个错误:

>> fitVirus03(@getDataGermany);
**** epidemy尺寸为德国的估计
初始猜测K = 126123 r = 0.287012 A = 18645
使用optimoptions出错(第105行)
“specifyobjective - gradient”不是lsqefit的选项。
选项列表可以在LSQCURVEFIT文档页面上找到。

误差在fitVirus03(线50)
OPTS = optimoptions( 'lsqcurvefit', '显示', '关闭',...

他们可以帮助我知道我做错了。
谢谢

谢谢你!

请使用来自fitVirusCOVID19的图形更新此代码。

谢谢你!

略标志

贡纳

大,但潜行将有较大的影响,它是否会在GNU八度运行过(即optimoptions和嵌套功能需要兼容的版本)。

有谁试图端口Matlab代码给其他的解决方案,如GNU八度?

我给来自巴西的巴蒂斯塔做先生的数据,这样他就可以添加到报表。

要将所有。SIR模型版本改进了收敛性和初始猜测计算。我认为它比Logistic模型好,不过,它更强劲。
//www.tatmou.com/matlabcentral/fileexchange/74658-fitviruscovid19

亲爱的Claudio,谢谢你的建议。请记住,物流模式非常简单。每天的天气预报可能非常好。我对斯洛文尼亚的预测是到3月19日增长几个百分点。但在那一天,我们有一个局部爆发(跳跃)。在这样的事件之后,由于每日预测值低于实际值,预测在几天内是无用的。这种情况在几天内发生了变化(如在Chana 2月12日)。SIR模型也有类似的问题。

亲爱的米兰,我一直在使用你在智利的功能,在过去的三天里,预测是相当不错的。我为“第二天”的预测增加了95%的置信区间。由于您已经在使用SML工具箱,它可能对更多用户有用。以下是我的代码行:

[betaNL, RNL JNL] = nlinfit (samplaTime (1: n), sampleC (1: n), @fun,系数);
[Ypredδ]= nlpredci (@fun [samplaTime(结束)+ 1]”,RNL betaNL“可比”,JNL);
T =表(samplaTime(结束)+ 2轮(Ypred)轮(δ)VariableNames,{“天”,“预测”,“词”})

再次感谢分享。

非常酷!

Ivo L

伟大的米兰。对于葡萄牙,我建议检查这个来源(葡萄牙卫生部):
https://covid19.min-saude.pt/ponto-de-situacao-atual-em-portugal/

“fitnlm”需要统计和机器学习工具箱,你应该更新的要求。

约书亚麦吉

有关COVID-19和每个国家的压缩代码(都在一个.m文件中)和自动数据检索的更新版本:
//www.tatmou.com/matlabcentral/fileexchange/74603-covid19modeling-fitvirus-adaptation

约书亚麦吉

伟大的工作米兰!

嗨,你最后那句话是什么意思?

sjcosta

嗨,

首先感谢Matlab模型。看起来效果很好。我更新了葡萄牙的案例,它似乎也在完美地预测。如何更新葡萄牙数字?

罗尔夫Boelens教授提供了荷兰和美国的数据和脚本。

优秀的模型。每天使用它。谢谢你的辛勤工作。你知道我们什么时候能看到美国模式吗?

谢谢你!该计划的预期目标是帮助人们评估流行病何时结束,并评估这些措施是否有效。现在,我在上面的web地址发布每日报告。

谢谢你的更新!做得好!
我们能指望每隔一天就能得到新的曲线图吗?
这里还是其他地方?

彼得Graat

不错,但需要优化工具箱

ilPlus30

我尝试了更新意大利数据的模型。好工作。谢谢你的分享。

连续回归使用MATLAB函数lsqefit,该函数没有统计输出。用MATLAB函数fitnlm进行另一次拟合。结果可能不同(对于小数据集)-我不知道为什么-因此警告只是提醒人们要小心对结果的解释。

绝对令人难以置信的工作和模型,只是努力的一些国家通过它现在。在德国,虽然回归模型似乎适合,我得到以下信息:“***警告:lsqcurvefit和fitnlm不同的结果显著。
Knlm / Klsq = 358.476
rnlm / rlsq = 0.998951
Anlm / Alsq = 357.319”

我无法理解的根本原因,作为初始猜测是succesfull ...

我没有使用Github的经验,但是我会尽量按照你的建议去做。

@milan我想也许将在Github / Gitlab代码,以便其他人可以派拉的请求等。

做得好米兰!谢谢你的分享。

他们可以做出自己的MATLAB贡献,并免费添加fitVirus脚本。你有什么建议?

这是一个很好的想法,也是一个让学生学习MATLAB和统计学的好机会。

为其他国家提供数据文件的最佳方式是什么?

更新

2.1.2

改变形象

2.1.1

将RMSE添加到图中。更新数据。

2.1.0

更改图形布局。更新数据。

2.0.25

当实际病例数大于实际病例数时,抑制无效预测

2.0.24

正确的描述

2.0.23

添加数据来源

2.0.22

添加丹麦、匈牙利、挪威、纽约州的数据

2.0.21

提高初始猜测。添加数据为比利时,克罗地亚,英国。更新荷兰的数据(感谢罗尔夫·伯伦斯)

2.0.20

添加关于fitVirusCOVID19计划的说明

2.0.19

正确链接到新版本

2.0.18

正确iniGuess(感谢尼古拉Wernecke)。每日实际情况下被添加到图。R2总例,感染率添加到总结。葡萄牙的数据都包括在内。

2.0.17

添加备注有关程序的新版本(感谢约书亚麦基)

2.0.16

更新需求

2.0.15

增加了荷兰和美国的数据和脚本(感谢Rolf Boelens)

2.0.14

更新描述

2.0.13

添加链接的例子

2.0.12

添加数据,奥地利

2.0.11

正确的数据

2.0.10

更新数据。添加数据,法国,瑞士

2.0.9

变更摘要

2.0.8

添加数据为西班牙

2.0.7

更新描述

2.0.6

添加德国的数据

2.0.5

更新数据。向活动脚本添加汇总报告。

2.0.4

删除上限。

2.0.3

更新数据。细微的变化。R2现在包括在表中。

2.0.2

细微的变化

2.0.1

改变映象

2.0.0

主要修订。删除威布尔回归,删除图形的高峰时间,为epidemy评价和速度相结合图表。epidemy持续时间和结束日期添加到报告。与C0更换回归一个。斯洛文尼亚添加数据。

1.0.14

小的更正

1.0.13

伊朗进出中国的添加数据。威布尔回归现在是可选的。

1.0.12

加起来数据7.Mar.2020

1.0.11

韩国的正确数据

1.0.10

添加2020年3月5日的数据

1.0.9

每日预测相对误差的正确计算

1.0.8

添加数据,意大利

1.0.7

正确的描述

1.0.6

添加2020年3月4日的数据

1.0.5

正确的描述

1.0.4

添加2020年3月3日的数据

1.0.3

更新描述

1.0.2中

更新的例子

1.0.1

添加图片

MATLAB版本兼容性
创建R2019b
与任何版本兼容
平台的兼容性
窗户 macOS Linux