急!!各位数学高手请过来帮忙做一道数学建模问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 23:21:37
世界卫生组织颁布的“体重指数”的定义是体重(kg)除以身高(m)的平方,显然它比体重本身更能反映人的胖瘦。下表给出了随机抽查的30个人的血压与年龄.体重指数.吸烟习惯数据。试建立血压与年龄(year).体重.吸烟习惯之间的数学模型,作回归分析。并讨论吸烟习惯会使血压升高。若一个50岁的人体指数为25,请预测其血压。
序号 血压 年龄 体重指数 吸烟习惯 序号 血压 年龄 体重指数 吸烟习惯
1 144 39 24.2 0 16 130 48 22.2 1
2 215 47 31.1 1 17 135 45 27.4 0
3 138 45 22.6 0 18 114 18 18.8 0
4 145 47 24.0 1 19 116 20 22.6 0
5 162 65 25.9 1 20 124 19 21.5 0
6 142 46 29.1 0 21 136 36 25.0 0
7 170 67 29.5 1 22 142 50 26.2 1
8 124 42 19.7 0 23 120 39 23.5 0
9 158 67 27.2 1 24 120 21 20.3 0
10 154 56 19.3 0 25 160 44 27.1 1
11 162 64 28.0 1 26 158 53 28.6 1
12 150 56 25.8 0 27 144 63 28.3 0
13 140 59 27.3 0 28 130 29 22.0 1
14 110 34 20.1 0 29 125 25 25.3 0
15 128 42 21.7 0 30 175 69 27.4 1
各位大人注意了,不可以用计算机算,要有具体的建模过程 .

y=[64 60 71 61 54 77 81 93 93 51 76 96 77 93 95 54 468 99]';
x1=[0.4 0.4 3.1 0.6 4.7 1.7 9.4 10.1 11.6 12.6 10.9 23.1 23.1 21.6 23.1 1.9 26.8 29.9]';
x2=[53 23 19 34 24 65 44 31 29 58 37 46 50 44 56 36 58 51]';
x3=[158 163 37 157 59 123 46 117 173 112 111 114 134 73 168 143 202 124]';
x=[ones(18,1),x1,x2,x3];
[b,bint,r,rint,stats]=regress(y,x,0.05);
b
stats

以上是程序,你找个电脑黏贴运行下就可以了。
运行的结果是:
b=
-43.3990
3.8088
0.1132
0.7405
其中y关于x1,x2,x3的线性方程就是:
y=b[0]+b[1]*x1+b[2]*x3+b[3]*x3;注:b[0~3]就是程序输出b值的第一个到第四个。
stats= 0.3563 2.5836 0.0948(有的Matlab可能会输出四个来),第一个为R^2,要尽可能的趋向1;第二个为F,应该尽可能的大;第三个为p,应该尽可能的趋向0;以上三个都符合要求的话,就说明回归有效。这里看来参数都不是很好。

clear;
clc;
clg;
ck=[20;60;100;140;180;220;260;300;340;380;420;460;500];
response=[2/90;13/39;30/38;30/35;1;19/20;18/19;13/14;1;1;1;1;1];
beta=[0.5 0.5];
betahat = nlinfit(ck,response,@logi