某类疾病发生率的数据最小二乘法拟合

% 某类疾病发生率的数据最小二乘法拟合
% 2022/12/5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 设定样本值
x=1:1:19;  % 定义样本范围
y=[0.898,2.38,3.07,1.84,2.02,1.94,2.22,2.77,4.02,4.76,5.46,6.53,10.9,16.5,22.5,35.7,50.6,61.6,81.8];  % 定义样本值变量
plot(x,y,'ob');  % 绘制样本点
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 设置画布风格
xlabel('年龄段/5年');ylabel('得某类疾病概率%');
set(gca,'xgrid','on');set(gca,'ygrid','on');
set(gca, 'XTick', 0:20/20:20);set(gca, 'YTick', -30:130/13:100);
set(gca, 'GridAlpha', 0.2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 最小二乘法拟合函数
hold on;  % 保留结果
z=log(y);  % 取对数方便拟合
p=polyfit(x,z,1);z1=polyval(p,x);y1=exp(z1);  % 拟合直线函数对应y值
x_drawline=0:0.01:20;  % 创建x=0~20范围用于绘制光滑拟合函数
z_drawline=polyval(p,x_drawline);
y_drawline=exp(z_drawline);  % 计算得用于绘制光滑拟合函数的值
plot(x_drawline,y_drawline,'-black','Linewidth',1.5);
hold on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 数据分析
y_error=y1-y;  % 拟合y值与样本y值之差
J_error=mse(y_error);  % 均方误差
plot(x,y_error,'r--');  % 误差图
title('样本点、拟合函数以及误差可视化');
legend('样本点','拟合函数','误差');
text(1,80,['均方误差=', num2str(J_error)],'FontSize',12, 'Color', [0 0.4470 0.7410]);
text(1,70,['最大偏差=', num2str(max(abs(y_error)))],'FontSize',12, 'Color', [0 0.4470 0.7410]);

输出图像

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NowLoadY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值