%***************************读取数据,绘制散点图*****************************
clear
close all
clc
HeadData = read_data(); %读取数据
x = HeadData(:, 1);
y = HeadData(:, 6);
plot(x, y, 'k.') % 绘制x和y的散点图
xlabel('年龄(x)') % 为X轴加标签
ylabel('头围(y)') % 为Y轴加标签
%***********************调用nlinfit函数作一元非线性回归**********************
HeadData = sortrows(HeadData, 1); % 为作图需要,将HeadData按第4列从小到大排序
x = HeadData(:, 1); % 提取排序后年龄数据
y = HeadData(:, 6); % 提取排序后头围数据
options = statset; % 创建一个结构体变量,用来设定迭代算法的控制参数
options.Robust = 'on'; % 调用稳健拟合方法
% 调用nlinfit函数作非线性回归
[beta,r,J,COVB,mse] = nlinfit(x,y,@HeadCir1,[53,-0.2604,0.6276], options);
%[beta,r,J,COVB,mse] = nlinfit(x,y,'HeadCir1',[53,-0.2604,0.6276],options);
%HeadCir2 = @(beta, x)beta(1)*exp(beta(2)./(x+beta(3))); % 定义匿名函数
%[beta,r,J,COVB,mse] = nlinfit(x,y,HeadCir2,[53,-0.2604,0.6276],options);
beta %查看未知参数估计值
mse % 查看均方残差平方和
%**************************绘制一元非线性回归曲线****************************
yhat = HeadCir1(beta, x); % 求y的估计值
figure % 新建一个空的图形窗口
plot(x, y, 'k.') % 绘制x和y的散点图
hold on
% 绘制robustfit函数对应的回归直线,蓝色实线,线宽为3
plot(x, yhat, 'linewidth', 3)
xlabel('年龄(x)') % 给X轴加标签
ylabel('头围(y)') % 给Y轴加标签
legend('原始数据散点','非线性回归曲线') % 为图形加标注框
%**************************参数估计值的置信区间*****************************
% 求参数估计值的95%置信区间的第1种方式
ci1 = nlparci(beta, r, 'covar', COVB, 'alpha', 0.05)
% 求参数估计值的95%置信区间的第2种方式
ci1 = nlparci(beta, r, 'jacobian', J, 'alpha', 0.05)
%**************************绘制头围观测值的预测区间**************************
xx =[0:0.1:16]'; % 设定年龄向量
% 计算给定年龄处头围预测值和预测区间
[ypred,delta] = nlpredci(@HeadCir1,xx,beta,r,'covar',COVB,'mse',mse, ...
'predopt','observation');
yup = ypred + delta; % 预测区间上限(线)
ydown = ypred - delta; % 预测区间下限(线)
figure % 新建一个空的图形窗口
hold on
h1 = fill([xx; flipud(xx)],[yup; flipud(ydown)],[0.5,0.5,0.5]); % 填充预测区间
set(h1,'EdgeColor','none','FaceAlpha',0.5); % 设置填充区域边界线条颜色和面板透明度
plot(xx,yup,'r--','LineWidth',2); % 画预测区间上限曲线,红色虚线
plot(xx,ydown,'b-.','LineWidth',2); % 画预测区间下限曲线,蓝色点划线
plot(xx, ypred, 'k','linewidth', 2) % 画回归曲线,黑色实线
grid on % 添加辅助网格
ylim([32, 57]) % 设置y轴的显示范围为32至57
xlabel('年龄(x)') % 给X轴加标签
ylabel('头围(y)') % 给Y轴加标签
h2 = legend('预测区间','预测区间上限','预测区间下限','回归曲线'); % 为图形加标注框
set(h2, 'Location', 'SouthEast') % 设置标注框的放置位置为图形窗口右下角
function y = HeadCir1(beta, x)
y = beta(1) * exp(beta(2) ./ (x + beta(3)));
end
function data = read_data()
data = [11 132 136.0476 168.7998 0.805970149 50.90952163 48.30080056
1.666666667 20 149.9043 161.2416 0.9296875 50.42820344 49.01562276
10 120 144.4456 156.6227 0.922252011 51.35180748 48.14725269
3 36 145.7053 163.761 0.88974359 50.27417164 48.7330496
3 36 139.8267 153.2635 0.912328767 48.52064123 46.92500092
5 60 146.965 155.7829 0.943396226 50.30916853 48.04408147
4 48 151.164 163.761 0.923076923 52.34006384 50.33477366
8 96 139.8267 159.9819 0.874015748 49.0582108 47.44783996
8 96 138.9869 169.2197 0.82133995 51.17691827 49.05428636
0.916666667 11 133.1083 145.2854 0.916184971 46.21403595 44.36468072
4 48 146.965 163.3411 0.899742931 51.89274059 49.36296483
7 84 146.1252 157.8824 0.925531915 50.62493208 48.03440814
12 144 139.4068 164.1809 0.849104859 51.56222745 49.28173775
9 108 146.965 161.6615 0.909090909 51.30848034 48.94731183
1.416666667 17 138.9869 154.1033 0.901907357 48.79478263 46.65893451
1.416666667 17 137.3073 153.2635 0.895890411 48.37179226 46.63237469
1.416666667 17 128.4894 142.3461 0.902654867 45.22911882 43.64938173
2 24 139.4068 148.6446 0.937853107 47.57130093 45.43775303
0.75 9 124.7103 129.3292 0.964285714 42.37303946 40.85552404
0.833333333 10 143.6058 148.6446 0.966101695 47.963124 45.77293249
8 96 144.4456 170.4794 0.84729064 51.99232613 50.10451373
2 24 142.766 155.7829 0.916442049 48.59163853 47.33546085
5 60 145.7053 157.0426 0.927807487 49.8631294 47.90242741
3 36 143.1859 151.5839 0.944598338 48.86461988 47.20783043
2 24 138.9869 159.9819 0.868766404 50.27549724 47.18763945
2 24 132.2685 160.4018 0.82460733 48.46335145 46.67279096
0.416666667 5 110.0138 126.3899 0.870431894 42.97906059 39.19787428
0.666666667 8 125.5501 143.6058 0.874269006 43.84535038 42.8157713
8 96 146.1252 165.8605 0.881012658 52.0647552 49.70725644
7 84 144.8655 172.159 0.841463415 51.9286787 50.42889439
1.25 15 138.567 147.3849 0.94017094 47.35430801 45.57509873
3 36 141.0864 152.0038 0.928176796 48.84000371 46.4998926
1 12 133.5282 147.8048 0.903409091 46.34277145 44.18534036
1.416666667 17 134.368 141.9262 0.946745562 45.88305436 44.07016566
1.666666667 20 139.8267 153.6834 0.909836066 48.10552885 46.50980039
5 60 145.7053 155.7829 0.935309973 49.40383707 47.23806455
10 120 145.2854 165.4406 0.878172589 52.56574898 49.84750911
5 60 151.5839 157.8824 0.960106383 50.48853768 48.64584063
0.666666667 8 141.0864 142.3461 0.991150442 46.18700717 45.04135717
4 48 151.164 158.7222 0.952380952 51.36840475 48.91028605
1 12 139.8267 135.2078 1.034161491 45.54985445 43.79312405
0.416666667 5 126.3899 129.7491 0.974110032 42.55454241 39.96820555
3 36 148.6446 155.7829 0.954177898 49.81891088 48.30412739
1.166666667 14 138.1471 149.9043 0.921568627 46.84128886 45.44180903
8 96 137.3073 165.4406 0.829949239 49.92557387 48.13682848
1.916666667 23 136.4675 149.4844 0.912921348 47.30033674 45.79341177
0.136111111 1.633333333 110.4337 119.2516 0.926056338 38.20754452 35.93503464
1.416666667 17 132.6884 153.6834 0.863387978 48.35648558 46.01962421
3 36 142.3461 153.2635 0.928767123 48.29683342 46.46451086
0.25 3 109.5939 113.373 0.966666667 37.27620385 34.73069399
14 168 149.4844 168.7998 0.885572139 52.55798881 50.57996025
0.916666667 11 133.1083 150.3242 0.88547486 45.89132849 44.79221019
1.416666667 17 138.9869 146.1252 0.951149425 46.8227378 45.23553667
0.916666667 11 133.1083 133.9481 0.993730408 43.70860156 42.05953174
2 24 139.8267 149.9043 0.932773109 48.29896423 46.47161318
1.166666667 14 121.3511 134.7879 0.900311526 41.84188476 40.61304558
11 132 152.0038 163.3411 0.93059126 52.05098127 49.90514513
4 48 149.0645 158.3023 0.941644562 50.31384339 48.35552
0.583333333 7 124.2904 146.1252 0.850574713 45.83631434 42.88763412
1 12 131.8486 144.4456 0.912790698 45.61946012 44.40171625
2 24 140.6665 156.2028 0.900537634 49.38137649 47.20301078
1.5 18 147.3849 147.3849 1 48.27853793 47.31215928
5 60 138.1471 171.3192 0.806372549 50.66742737 48.56526877
4 48 136.0476 164.6008 0.826530612 49.02998506 47.70619723
0.916666667 11 138.9869 144.4456 0.962209302 46.28058056 45.1751772
1.666666667 20 148.2247 145.7053 1.017291066 47.71103973 46.22977257
1.416666667 17 128.9093 146.1252 0.882183908 45.77065149 43.82861807
0.75 9 128.9093 143.6058 0.897660819 45.43281436 44.80999357
7 84 146.1252 171.7391 0.850855746 52.39209171 50.57353695
0.916666667 11 138.567 147.3849 0.94017094 46.80252318 45.37692002
3 36 144.8655 158.7222 0.912698413 49.76678935 47.94281147
7 84 149.0645 165.4406 0.901015228 52.24124547 49.87153357
9 108 155.363 163.761 0.948717949 53.01050359 50.87797344
7 84 141.9262 162.5013 0.873385013 51.16544283 49.00906421
11 132 144.4456 175.5182 0.822966507 52.24725667 50.63652047
1.5 18 142.3461 156.6227 0.908847185 48.39335774 47.02414986
2 24 141.0864 152.8436 0.923076923 49.14016557 46.67135174
4 48 137.7272 163.761 0.841025641 50.16956999 47.96988662
3 36 139.8267 150.7441 0.927576602 48.0415393 46.12940423
4 48 152.8
非线性回归分析MATLAB代码
5星 · 超过95%的资源 需积分: 5 7 浏览量
2023-04-25
16:28:36
上传
评论 5
收藏 115KB ZIP 举报
CJ-leaf
- 粉丝: 5w+
- 资源: 55
最新资源
- YOLOV4-TINY权重文件
- 以下是一个使用贪心算法解决多机调度问题的基本步骤0.txt
- 基于大数据的房产估价是近年来随着技术的发展而兴起的一种新型估价方法.txt
- 企业供应链管理系统v3.rar
- 富芮坤FR8016HA蓝牙开发板使用手册+硬件PCB图+封装库+DEMO演示软件源代码.zip
- 基于YOLOv7的芯片表面缺陷检测系统
- 京东物流 数字化供应链综合研究报告2018.rar
- 基于YOLOv7的植物虫害识别&防治系统
- 2000.1-2023.8中国经济政策不确定性指数月度数据.xlsx
- Screenshot_2024-04-21-20-42-15-443_com.tencent.mm.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页