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

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

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

数据源

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

  • data.csv -2020年全球病例每日水平数据
  • confirmed.csv-确诊病例的时间序列数据


地图上可视化


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

opts = detectImportOptions(filenames(4), "TextType","string");

在此之前,我们需要稍微整理一下数据。现在,我们可以使用  groupsummary  将已确认的案例相加并平均经纬度来按地区汇总数据。



country = groupsummary(times_conf,"Country/Region",{'sum','mean'},vars(3:end));

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

让我们使用  geobubble  可视化数据集中的第一个和最后一个日期数据。



for ii = [4, length(vars)]


times_conf_exChina.Category = categorical(repmat("<100",hmes_c

美国确诊病例



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,

 

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

按确诊病例排名地区

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



opts = detectImportOptions(filenames(3), "TextType","string","DatetimeType","text");

清理日期时间格式。


Data.nDate = regexprep(Data.Date,"\/20$","/2020");
Data.Date = datetime(Data.Date);

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

Country_Region(Country_Region == "Iran (Islamic Republic of)") = "Iran";

让我们在“地区”级别汇总数据。



countryData = groupsummary(provData,{'ObservationDate','Country_Region'}, ...


"sum",{'Confirmed','Deaths','Recovered'});

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

 

按地区的增长

我们还可以检查这些地区病例的增长速度。



figure
plot(countryData.ObservationDate(countryData.Country_Region == labelsK(2)), ...
hold on
for ii = 3:length(labelsK)
plot(countryData.ObservationDate(countryData.Country_Region == labelsK(ii)), ...

 

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

按地区划分的新病例增长

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




for ii = 1:length(labelsK)
country = provData(provData.Country_Region == labelsK(ii),:);


country = groupsummary(country,{'ObservationDate','Country_Region'}, ...


if labelsK(ii) ~= "Others"
nexttile

您可以看到,已经遏制住了疫情。

计算活跃病例。


for ii = 1:length(labelsK)
by_country{ii}.Active = by_country{ii}.Confirmed - by_country{ii}.Deaths -


figure

 

拟合曲线

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

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



ft = fittype("gauss1");


[fobj, gof] = fit(x,y,ft,opts);
gof
gof =
struct with fields:


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

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

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

figure
area(ObservationDate,by_country{1}.Active)
hold on
plot(xdates,yhat,"lineWidth",2)

 

 

韩国

让我们来查看病例人数。

 

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


最受欢迎的见解

相关文章
|
5天前
|
算法 计算机视觉 异构计算
基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于肤色检测算法的摘要:使用MATLAB 2022a和Vivado 2019.2进行测试和仿真,涉及图像预处理、RGB到YCbCr转换、肤色模型(基于阈值或概率)以及人脸检测。核心程序展示了如何读取图像数据并输入到FPGA处理,通过`tops`模块进行中值滤波、颜色空间转换及人脸检测,最终结果输出到&quot;face.txt&quot;。
|
5天前
|
数据可视化 算法
MATLAB Simulink晶闸管的特性分析
MATLAB Simulink晶闸管的特性分析
13 2
|
5天前
|
数据安全/隐私保护
matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应,自定义脉冲模型,提取脉冲波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
算法 数据安全/隐私保护
matlab程序,傅里叶变换,频域数据,补零与不补零傅里叶变换
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
matlab 曲线光滑,去毛刺,去离群值,数据滤波,高通滤波,低通滤波,带通滤波,带阻滤波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
时域与频域数据互相转换,傅里叶变换与逆傅里叶变换,matlab程序,时域转频域
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
matlab生成拟合规范谱的人工波,生成人工地震波,拟合自定义加速度反应谱,生成人工地震波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章