前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >matlab用高斯曲线拟合模型分析疫情数据

matlab用高斯曲线拟合模型分析疫情数据

作者头像
拓端
发布2022-06-08 16:30:55
发布2022-06-08 16:30:55
1.2K00
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

原文链接:http://tecdat.cn/?p=19211

本文用matlab分析疫情数据集。

数据源

我们检查解压缩的文件。包含:

  • confirmed.csv-确诊病例的时间序列数据
  • deaths.csv-死亡人数的时间序列数据
  • recovered.csv-康复人数的时间序列数据

地图上可视化

我们在地图上可视化已确诊病例的数量。我们首先加载纬度和经度变量。

代码语言:javascript
代码运行次数:0
运行
复制
opts = detectImportOptions(filenames(4), "TextType","string");

数据集包含“省/州”变量,但我们要在“地区”等级汇总数据。在此之前,我们需要稍微整理一下数据。

现在,我们可以使用 groupsummary 将已确认的案例相加并平均经纬度来按地区汇总数据。

代码语言:javascript
代码运行次数:0
运行
复制
country = groupsummary(times_conf,"Country/Region",{'sum','mean'},vars(3:end));

输出中包含不必要的列,例如纬度和经度的总和。我们删除这些变量。

代码语言:javascript
代码运行次数:0
运行
复制
vars = regexprep(vars,"^(sum_)(?=L(a|o))","remove_");
vars = regexprep(vars,"^(mean_)(?=\[0-9\])","remove_");
代码语言:javascript
代码运行次数:0
运行
复制
让我们使用  geobubble  可视化数据集中的第一个和最后一个日期数据。
代码语言:javascript
代码运行次数:0
运行
复制
for ii = \[4, length(vars)\]
    times\_conf\_exChina.Category = categorical(repmat("<100",height(times\_conf\_exChina),1));
    times\_conf\_exChina.Category(table2array(times\_conf\_exChina(:,ii)) >= 100) = ">=100";
    gb.LegendVisible = "off";

美国确诊病例

进入省/州级别。

代码语言:javascript
代码运行次数:0
运行
复制
figure
t = tiledlayout("flow");
for ii = \[5, length(vars)\]

    gb.BubbleColorList = \[1,0,1;1,0,0\];
    gb.LegendVisible = "off";
    gb.Title = "As of " + vars(ii);
    gb.SizeLimits = \[0, max(times\_conf\_us.(vars{length(vars)}))\];
    gb.MapCenter = \[44.9669 -113.6201\];
    gb.ZoomLevel = 1.7678;

可以看到它始于华盛顿,并在加利福尼亚和纽约爆发了大规模疫情。

按确诊病例排名国家/地区

让我们比较按国家/地区确认的病例数。日期时间格式中存在不一致之处,因此我们一开始会将其视为文本。

代码语言:javascript
代码运行次数:0
运行
复制
opts = detectImportOptions(filenames(3), "TextType","string","DatetimeType","text");

清理日期时间格式。

代码语言:javascript
代码运行次数:0
运行
复制
Data.nDate = regexprep(Data.Date,"\\/20$","/2020");
Data.Date = datetime(Data.Date);

我们还需要标准化“国家/地区”中的值。

代码语言:javascript
代码运行次数:0
运行
复制
Country\_Region(Country\_Region == "Iran (Islamic Republic of)") = "Iran";

数据集包含省/州变量。让我们在“国家/地区”级别汇总数据。

代码语言:javascript
代码运行次数:0
运行
复制
countryData = groupsummary(provData,{'ObservationDate','Country_Region'}, ...
    "sum",{'Confirmed','Deaths','Recovered'});

countryData包含每日累积数据。我们只需要最新的数字。

确认病例按国家/地区的增长

我们还可以检查这些国家中病例的增长速度。

代码语言:javascript
代码运行次数:0
运行
复制
figure
plot(countryData.ObservationDate(countryData.Country_Region == labelsK(2)), ...
hold on
for ii = 3:length(labelsK)
    plot(countryData.ObservationDate(countryData.Country_Region == labelsK(ii)), ...

尽管韩国显示出增长放缓的迹象,但它在其他地方正在加速发展。

按国家/地区划分的新病例增长

我们可以通过减去两个日期之间已确认病例的累计数量来计算新病例的数量。

代码语言:javascript
代码运行次数:0
运行
复制
for ii = 1:length(labelsK)
    country = provData(provData.Country_Region == labelsK(ii),:);
    country = groupsummary(country,{'ObservationDate','Country_Region'}, ...

    if labelsK(ii) ~= "Others"
        nexttile

您可以看到,中国和韩国没有很多新病例。可见,已经遏制住了疫情。

我们来看看仍有多少活跃病例。您可以通过从确诊病例中减去恢复病例和死亡来计算活跃病例。

代码语言:javascript
代码运行次数:0
运行
复制
for ii = 1:length(labelsK)
    by\_country{ii}.Active = by\_country{ii}.Confirmed - by_country{ii}.Deaths - 

figure

拟合曲线

有效案例的数量正在下降,曲线看起来大致为高斯曲线。我们可以拟合高斯模型并预测活动案例何时为零吗?

我使用 曲线拟合工具箱 进行高斯拟合。

代码语言:javascript
代码运行次数:0
运行
复制
ft = fittype("gauss1");

\[fobj, gof\] = fit(x,y,ft,opts);
gof
代码语言:javascript
代码运行次数:0
运行
复制
gof = 
  struct with fields:

           sse: 4.4145e+08
       rsquare: 0.9743
           dfe: 47
    adjrsquare: 0.9732
          rmse: 3.0647e+03

让我们通过增加20天来将输出预测。

现在我们对结果进行绘制。

代码语言:javascript
代码运行次数:0
运行
复制
figure
area(ObservationDate,by_country{1}.Active)
hold on
plot(xdates,yhat,"lineWidth",2)

韩国

让我们来查看韩国的活跃病例,恢复案例和死亡人数。

使用高斯模型无法获得任何合适的结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接:http://tecdat.cn/?p=19211
  • 本文用matlab分析疫情数据集。
  • 数据源
  • 地图上可视化
  • 按确诊病例排名国家/地区
  • 确认病例按国家/地区的增长
  • 按国家/地区划分的新病例增长
  • 我们来看看仍有多少活跃病例。您可以通过从确诊病例中减去恢复病例和死亡来计算活跃病例。
  • 拟合曲线
  • 韩国
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档