2019-nCov-SIRmodel
2019-nCov-SIRmodel copied to clipboard
新型肺炎数据爬取代码
您好! 我阅读您的知乎及其GitHub上的代码,对您的这个项目十分感兴趣,请问可否上传爬取肺炎患者相关数据的代码? 谢谢!
您好,数据是直接从卫健委网站上获得的,手工编辑csv文件,没用代码爬。卫健委疫情数据网页: http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml
好的,十分感谢!
caixin有个csv每天更新,也是按照卫建委数据。不过不知道为什么2月4日以后停止了。链接在这里 http://datanews.caixin.com/interactive/2020/iframe/pneumonia-new/data/data2.csv
收到,十分感谢!
非常感谢您的模型,使我收获满满!不过有一些地方还是不明白,请问 SIR.py 中的 第98行:穷举法,找出与实际数据差的平方和最小的S0和beta值 这里是如何运行的呢,显示ValueError: operands could not be broadcast together with shapes (63,) (21,)
ValueError: operands could not be broadcast together with shapes
您好,这是用预测数据跟实际数据进行对比,我一开始做的时候是用前21天的疫情数据来估算的,之后每天都更新数据,而这里还是用前21天的数据,所以数组大小就不一致了。 解决方法: 把第90行,error函数里的“err = (data["感染者"] - res)**2” 改成 "err = (data["感染者"].iloc[:21] - res)**2"就行了。最新的提交已经更改了。谢谢提醒!
ValueError: operands could not be broadcast together with shapes
您好,这是用预测数据跟实际数据进行对比,我一开始做的时候是用前21天的疫情数据来估算的,之后每天都更新数据,而这里还是用前21天的数据,所以数组大小就不一致了。 解决方法: 把第90行,error函数里的“err = (data["感染者"] - res)**2” 改成 "err = (data["感染者"].iloc[:21] - res)**2"就行了。最新的提交已经更改了。谢谢提醒!
这里应该用err = (data["现有感染者"] - res)**2 更合适吧
ValueError: operands could not be broadcast together with shapes
您好,这是用预测数据跟实际数据进行对比,我一开始做的时候是用前21天的疫情数据来估算的,之后每天都更新数据,而这里还是用前21天的数据,所以数组大小就不一致了。 解决方法: 把第90行,error函数里的“err = (data["感染者"] - res)**2” 改成 "err = (data["感染者"].iloc[:21] - res)**2"就行了。最新的提交已经更改了。谢谢提醒!
这里应该用err = (data["现有感染者"] - res)**2 更合适吧
模型算的是累计感染人数,我改了一下试试,结果模型计算结果与实际相差很大。要改成现有感染者,后面的res也要重新计算,减去退出人数才对了。