如何使用fitnlm

129(30天)
彼得Derivolkov
彼得Derivolkov 2020年4月26日
评论道: 图像分析 2020年5月5日
你好我想acurve适合我的数据,但是我不知道从哪里开始或做什么?任何帮助将appretiated !
这是我的数据的图表和代码。我有附加的excel文件数据。
一个= xlsread (Plague_data.xlsx);
(t =: 12);
c = (:, 13);
图(1)
Number.of.cases =情节(t c '。', '颜色',' b ')

接受的答案

图像分析
图像分析 2020年4月27日
编辑:图像分析 2020年4月27日
试试这个:
%符合高斯为CoVid-19美国每日死亡,其中包括数据只有高斯的左边部分,不完整的高斯。
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%清理——初始化步骤
clc;%清除命令窗口。
流(“开始运行% s.m。\ n”,mfilename);
关闭所有;%关闭所有数据(除了imtool。)
clearvars;%擦掉所有现有的变量。
工作空间;%确定工作区面板显示。
格式长g;
格式紧凑的;
字形大小= 20;
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%的培训资料准备
从工作簿%读入数据。
数据= readmatrix (“Fitnlm_Gaussian_CoVid19.xlsx”);
%摆脱nan
validRows = ~ isnan(数据(:,2));
%去掉零计数
validRows = validRows &(数据(:,2)> 0);
data =数据(validRows,:)
X =数据(:1);
Y =数据(:,2);
hFig =图;
情节(X, Y,“b -”,“线宽”2,“MarkerSize”,30);
网格;
包含(“日期”,“字形大小”、字形大小);
ylabel (“每日死亡”,“字形大小”、字形大小);
标题(“CoVid-19每日死亡”,“字形大小”、字形大小);
% x轴是日期。
datetick (“x”,“嗯dd, yyyy”,“keepticks”);
甘氨胆酸ax =;
斧子。XTickLabelRotation = -45;
% X和Y转换成一个表,即形式fitnlm()喜欢输入数据。
台=表(X (:), Y (:));
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%模型定义
%的模型定义为Y = a + b * exp (- (x - c) ^ 2 / d)
%为它创建一个匿名函数。
%注意的“x”ModelFunction有关大x和Y。
% x((: 1)实际上是x, x(:, 2)实际上是Y -第一和第二列的表。
ModelFunction = @ (b, x) b (1) + (2) * exp (- b (x (: 1) - (3)) ^ 2 / b (4));
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%模型创建:估计的参数
%的猜测开始模型值。把你最好的猜测。
%这只是起点期间将调整系数和适合生产真正的系数。
beta0 =[0,马克斯(X),意味着(X), var (X));%猜测的系数。
%现在,下一行是实际的模型计算。
mdl = fitnlm(资源描述、ModelFunction beta0);
%现在模型创建和系数进行确定。
%耶! ! ! !
%从模型中提取系数的值对象。
%的实际系数是“估计”列的“系数”表的模式的一部分。
系数= mdl.Coefficients {:,“估计”}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%模型策划:策划/安装估计X的值在整个范围。
%让我们做一个健康,但是让我们得到更多的点合适,不仅仅是广泛的训练点,
%,这样我们会更平滑的曲线。
xFitted = linspace (min (X)马克斯(X), 1920);%我们用1920点,这将适合在高清电视屏幕上每个像素的一个示例。
%创建平滑/退化数据使用模型:
yFitted = ModelFunction(系数,xFitted (:));
% yFitted系数=系数(1)+ (2)* exp (- (xFitted -系数(3))。(4)^ 2 /系数);
%现在我们知道,因为这是一个高斯不应当有任何负面的价值观。所以剪辑为0
yFitted = max (0, yFitted);
%现在做完了,我们可以画出平滑模型作为红线经历吵闹的蓝色标记。
持有;
情节(xFitted yFitted,的r -,“线宽”2);
网格;
标题(“CoVid-19每日死亡在美国——指数回归fitnlm ()”,“字形大小”、字形大小);
%在画一条线。
暗绿色= [0,0.5,0];
参照线(系数(3),“颜色”暗绿色,“线宽”3);
%将绿线的文本。
str = sprintf (“在% s的峰值datestr(系数(3)));
文本(str系数(3),100年,“颜色”暗绿色,“字形大小”14岁的“FontWeight”,“大胆”);
legendHandle =传奇(的实际Y ','拟合Y ',“位置”,“西北”);
legendHandle。字形大小= 25;
hFig。WindowState =“最大化”;
流(“运行% s.m。\ n”,mfilename);
2的评论
图像分析
图像分析 2020年5月5日
附件是一个新版本,它问你如果你想让一个偏移量对高斯。加上它使用条形图和最近的数据。

登录置评。

答案(1)

基冈卡瓦略
基冈卡瓦略 2020年4月27日
首先,你需要知道你正在寻找拟合曲线;线性、二次等。我已经与polyfit可以以后使用评估的变量T和C。
一个= xlsread (“Plague_data.xlsx”);
(t =: 12);
c = (:, 13);
C = isnan (C);
T = isnan (T);如果变量有NaN值% polyfit不能操作
fit1 = polyfit (t (t ~), c (~ c), 1);可以使用% polyfit和NaN值省略
你可以用上面的,后来开始使用polyval评估。读到 polyfit,健康。
希望这可以帮助!
2的评论
彼得Derivolkov
彼得Derivolkov 2020年4月27日
谢谢你我很感激!

登录置评。

类别

找到更多的在生物和健康科学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!