乌龟性别与温度地数学模型.docx
- 文档编号:10709478
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:17
- 大小:182.64KB
乌龟性别与温度地数学模型.docx
《乌龟性别与温度地数学模型.docx》由会员分享,可在线阅读,更多相关《乌龟性别与温度地数学模型.docx(17页珍藏版)》请在冰点文库上搜索。
乌龟性别与温度地数学模型
数学建模期末作业
乌龟性别的决定因素问题
(习题10——10)
姓名:
李红军
学号:
2012212816
专业:
数学与应用数学
年级:
2012级
摘要
本文针对幼龟性别温度关系进行建立模型,在建模时建立温度与雄龟比例的模型,由于雄龟比例只可能在【0,1】之间取值,所以不能建立一般的统计回归模型,所以可以建立Logit模型。
利用MATLAB统计工具箱中的命令glmfit求解。
再求出各个系数估计值后用EXCEL表格进行处理算出每个温度下雄龟比例的估计值,对模型进行验证,为了提高模型的拟合效果可以在Logit模型中添加t的高次方,并用利用MATLAB统计工具箱中的命令regress求解,求出各个系数估计值,置信区间和模型相关系数。
为了能直观的比较模型拟合效果可以利用MATLAB中的plot工具会出(t,logit)的散点图,并用利用Tools下BasicFitting工具找出一条拟合效果最好的曲线,并得出其对应的系数。
最后可以通过logit基本模型得出当温度为27.7329度幼龟比例为1:
1,而且温度每增加一度雄龟与雌龟比例扩大9.12484倍。
关键词:
logit模型,置信区间,相关系数
一、问题提出
人类的性别是由基因决定的,乌龟的性别主要有什么因素决定的呢?
科学研究表明,决定幼龟性别的最关键的因素是乌龟孵化时的温度。
为了研究温度是如何影响幼龟的雌雄比例,美国科学家对某一类乌龟的孵化过程做了实验,试验在五个不同恒定温度下进行,每个温度下分别观察3批乌龟蛋的孵化过程,得到的数据如下:
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
27.2
10
1
9
10%
8
0
8
0%
9
1
8
11.1%
27.7
10
7
3
70%
6
4
2
66.7%
8
6
2
75%
28.3
13
13
0
100%
9
6
3
66.7%
8
7
1
87.5%
28.4
10
7
3
70%
8
5
3
62.5%
9
7
2
77.8%
29.9
11
10
1
90.9%
8
8
0
100%
9
9
0
100%
二、基本假设
假设1;幼龟性别只与温度有关
三、符号说明
符号
意义
单位
备注
t
乌龟孵化时的温度
℃
P(x)
雄龟比例
S
乌龟蛋总数
个
X
雄龟个数
个
C
雌龟个数
个
四、问题分析
在本题由于是求温度与性别比例的模型,在数据表中每个温度都记录了三批乌龟,所以首先要对数据进行处理,利用excel算出每个温度对应下乌龟的总数,雄龟总个数,雌龟总个数和雄龟比例。
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
27.2
27
2
25
7.41%
27.7
24
17
7
70.83%
28.3
30
26
4
86.67%
28.4
27
19
8
70.37%
29.9
28
27
1
96.43%
为了使得运算更简单可以把温度进行预处理,把27.2看成0,以此类推可得
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
0
27
2
25
7.41%
0.5
24
17
7
70.83%
1.1
30
26
4
86.67%
1.2
27
19
8
70.37%
2.7
28
27
1
96.43%
为了更直观观察其回归关系,利用MATLAB绘制出散点图。
从图中可以看出回归曲线是一条近于3次样条的多项式回归曲线,其回归模型为
(1)
然而在这个问题中
(1)是回归方程中P(x)的取值不一定在[0,1]中,即使P(x)取值在[0,1]中,有意在给定t是,误差项
也只能取0,1两个值,显然不具有正态性,而且
的方差依赖于与t,具有异方差性,这些都违反了普通回归分析的前提条件,因此,该题不能用用普通回归分析。
由于P(x)在[0,1]之间取值,可以使用Logit模型。
五、模型的建立与求解
5.1模型的建立
5.2模型的求解
Logit模型是一种广义线性模型,可利用MATLAB统计工具箱总的命令glmfit求解。
参数
参数估计值
标准差
B0
-101783
0.3739
B1
2.2110
0.4309
所以估计值为
即
所以当幼龟比例为1:
1时计算出温度为27.7329度
令odd(t)为雄龟与雌龟比例,故有
当温度增加1度时odd比为
于是
由于b1=2.2110,所以温度每增加一度时雄龟与雌龟比例增加到原来的9.12484倍
5.3结果的分析及验证
对模型各个温度进行验证
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
7.41%
0.235357
0.5
24
17
7
70.83%
0.481812
1.1
30
26
4
86.67%
0.777955
1.2
27
19
8
70.37%
0.813801
2.7
28
27
1
96.43%
0.991768
5.3模型改进
从以上结果可知拟合偏差太大,不适合于做为最终结果。
由于模型的右端是温度t的线性函数,可以考虑加入t的二次项后,看是否能提高模型的拟合程度。
即考虑模型为
执行以下程序
>>[b2,dev2]=glmfit([tt.^2],[xs],'binomial','logit');
b2,pval=1-chi2cdf(dev-dev2,1)
b2=
-1.6582
3.7840
-0.7745
pval=
0.0304
计算出b0,b1,b2的估计值为-1.6582、3.7840、-0.7745
所以模型为
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
7.41%
0.160003
0.5
24
17
7
70.83%
0.512178
1.1
30
26
4
86.67%
0.827363
1.2
27
19
8
70.37%
0.854124
2.7
28
27
1
96.43%
0.948461
由以上表可知拟合偏差减小,由此可知,加入高次方后可以提高拟合偏差,所以为了进一步提高拟合效果,可以先计算出logit对应的值并画出并绘出(t,logit)的散点图
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
Logit(t)
0
27
2
25
7.41%
-2.52535
0.5
24
17
7
70.83%
0.8871418
1.1
30
26
4
86.67%
1.87209067
1.2
27
19
8
70.37%
0.8649796
2.7
28
27
1
96.43%
3.296252
再利用Tools下BasicFitting工具找出一条拟合效果最好的曲线,并得出其对应的系数
可知模型为
个系数为
所以模型为
当所以幼龟比例为1:
1时P(x)=0.5.所以logit=0;即
可以得出当温度为27.57932852、28.4627667和29.854698时幼龟比例为1:
1;
再次各个数据进行验证可得
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
7.41%
0.0741
0.5
24
17
7
70.83%
0.7083
1.1
30
26
4
86.67%
0.86666
1.2
27
19
8
70.37%
0.7035
2.7
28
27
1
96.43%
0.9633
由以上结果可以看出拟合程度很好。
在用MATLAB统计工具中的命令regress求解得知相关系数R为1;拟合效果很好。
六、参考文献
数学模型第四版高等教育出版社
七、附录
模型1求解程序
>>t=[00.51.11.22.7]';
>>x=[217261927]';
>>s=[2724302728]';
>>proport=x./s;
>>[b,dev,stats]=glmfit(t,[xs],'binomial','logit');
>>logitfit=glmval(b,t,'logit');
>>plot(t,proport,'o',t,logitfit,'r-');
>>xlabel('t');ylabel('proportionofx')
>>b,bi=stats.se,dev
b=
-1.1783
2.2110
bi=
0.3739
0.4309
dev=
14.8629
模型1验证程序
>>x=[01;0.51;1.11;1.21;2.71]
x=
01.0000
0.50001.0000
1.10001.0000
1.20001.0000
2.70001.0000
>>y=[-2.525350.88714181.872090670.86497963.296252]';
alpha=0.05;
[b,bint,r,rint,stats]=regress(y,x,alpha)
b=
1.8372
-1.1419
bint=
-0.06673.7411
-3.85991.5760
r=
-1.3834
1.1105
0.9931
-0.1978
-0.5223
rint=
-2.7014-0.0654
-2.02104.2419
-2.61444.6005
-4.41154.0160
-2.16771.1230
stats=
0.75879.43110.05451.4817
模型2的验证程序
x=[001;0.50.5^21;1.1^21.11;1.2^21.21;2.7^22.71]
x=
001.0000
0.50000.25001.0000
1.21001.10001.0000
1.44001.20001.0000
7.29002.70001.0000
>>y=[-2.525350.88714181.872090670.86497963.296252]';
alpha=0.05;
[b,bint,r,rint,stats]=regress(y,x,alpha)
b=
-0.3797
2.7004
-1.1635
bint=
-3.99123.2317
-7.401812.8026
-6.36454.0374
r=
-1.3618
1.5654
0.5246
-0.6652
-0.0631
rint=
-3.51300.7893
-1.33324.4641
-6.00707.0562
-6.76985.4395
-0.38360.2575
stats=
0.72712.66420.27292.5134
绘制(t,P(x))散点图程序
>>t=[00.51.11.22.7];
p=[0.07410.70830.86670.70370.9643];
>>plot(t,p,'r*')
绘制(t,logit)散点图程序
>>t=[00.51.11.22.7];
p=[-2.525350.88714181.872090670.86497963.296252];
>>plot(t,p,'r*')
用第三模型计算幼龟比例为1:
1时温度程序
>>y=[4.1581-15.1139.969105.9619-2.5254]
y=
4.1581-15.11309.969105.9619-2.5254
>>roots(y)
ans=
2.6755
1.2628
-0.3415+0.5977i
-0.3415-0.5977i
0.3793
vpa(roots(y),8)
ans=
2.6754698
1.2627667
0.59774412*i-0.34148611
-0.59774412*i-0.34148611
0.37932852
第三模型各个温度对应雄龟比例结果验证程序
>>Y=@(t)-2.5254+5.9619*t+9.9691*t^3-15.113*t^4+4.1581*t^5
Y=
@(t)-2.5254+5.9619*t+9.9691*t^3-15.113*t^4+4.1581*t^5
>>f=@(t)exp(Y(t))/(1+exp(Y(t)))
f=
@(t)exp(Y(t))/(1+exp(Y(t)))
>>f(0)
ans=
0.0741
>>f(0.5)
ans=
0.7083
>>f(1.1)
ans=
0.8666
>>f(1.2)
ans=
0.7035
>>f(2.7)
ans=
0.9633
用regress验证模型程序
x=[000001;0.5^50.5^40.5^30.5^20.51;1.1^51.1^41.1^31.1^21.11;1.2^51.2^41.2^31.2^21.21;2.7^52.7^42.7^32.7^22.71]
x=
000001.0000
0.03130.06250.12500.25000.50001.0000
1.61051.46411.33101.21001.10001.0000
2.48832.07361.72801.44001.20001.0000
143.489153.144119.68307.29002.70001.0000
>>y=[-2.525350.88714181.872090670.86497963.296252]';
alpha=0.05;
[b,bint,r,rint,stats]=regress(y,x,alpha)
Warning:
Xisrankdeficienttowithinmachineprecision.
>Inregressat82
b=
4.1581
-15.1125
9.9691
0
5.9619
-2.5254
bint=
NaNNaN
NaNNaN
NaNNaN
00
NaNNaN
NaNNaN
r=
1.0e-013*
0.3775
-0.0511
0.0311
0.0100
0.4263
rint=
NaNNaN
NaNNaN
NaNNaN
NaNNaN
NaNNaN
stats=
1NaNNaNNaN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 乌龟 性别 温度 数学模型