乌龟性别与温度的数学模型.docx
《乌龟性别与温度的数学模型.docx》由会员分享,可在线阅读,更多相关《乌龟性别与温度的数学模型.docx(12页珍藏版)》请在冰豆网上搜索。
乌龟性别与温度的数学模型
Companynumber:
【0089WT-8898YT-W8CCB-BUUT-202108】
乌龟性别与温度的数学模型
数学建模期末作业
乌龟性别的决定因素问题
(习题10——10)
姓名:
***
专业:
数学与应用数学
年级:
2012级
摘要
本文针对幼龟性别温度关系进行建立模型,在建模时建立温度与雄龟比例的模型,由于雄龟比例只可能在【0,1】之间取值,所以不能建立一般的统计回归模型,所以可以建立Logit模型。
利用MATLAB统计工具箱中的命令glmfit求解。
再求出各个系数估计值后用EXCEL表格进行处理算出每个温度下雄龟比例的估计值,对模型进行验证,为了提高模型的拟合效果可以在Logit模型中添加t的高次方,并用利用MATLAB统计工具箱中的命令regress求解,求出各个系数估计值,置信区间和模型相关系数。
为了能直观的比较模型拟合效果可以利用MATLAB中的plot工具会出(t,logit)的散点图,并用利用Tools下BasicFitting工具找出一条拟合效果最好的曲线,并得出其对应的系数。
最后可以通过logit基本模型得出当温度为度幼龟比例为1:
1,而且温度每增加一度雄龟与雌龟比例扩大倍。
关键词:
logit模型,置信区间,相关系数
一、问题提出
人类的性别是由基因决定的,乌龟的性别主要有什么因素决定的呢科学研究表明,决定幼龟性别的最关键的因素是乌龟孵化时的温度。
为了研究温度是如何影响幼龟的雌雄比例,美国科学家对某一类乌龟的孵化过程做了实验,试验在五个不同恒定温度下进行,每个温度下分别观察3批乌龟蛋的孵化过程,得到的数据如下:
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
10
1
9
10%
8
0
8
0%
9
1
8
%
10
7
3
70%
6
4
2
%
8
6
2
75%
13
13
0
100%
9
6
3
%
8
7
1
%
10
7
3
70%
8
5
3
%
9
7
2
%
11
10
1
%
8
8
0
100%
9
9
0
100%
二、基本假设
假设1;幼龟性别只与温度有关
三、符号说明
符号
意义
单位
备注
t
乌龟孵化时的温度
℃
P(x)
雄龟比例
S
乌龟蛋总数
个
X
雄龟个数
个
C
雌龟个数
个
四、问题分析
在本题由于是求温度与性别比例的模型,在数据表中每个温度都记录了三批乌龟,所以首先要对数据进行处理,利用excel算出每个温度对应下乌龟的总数,雄龟总个数,雌龟总个数和雄龟比例。
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
为了使得运算更简单可以把温度进行预处理,把看成0,以此类推可得
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
0
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
为了更直观观察其回归关系,利用MATLAB绘制出散点图。
从图中可以看出回归曲线是一条近于3次样条的多项式回归曲线,其回归模型为
(1)
然而在这个问题中
(1)是回归方程中P(x)的取值不一定在[0,1]中,即使P(x)取值在[0,1]中,有意在给定t是,误差项
也只能取0,1两个值,显然不具有正态性,而且
的方差依赖于与t,具有异方差性,这些都违反了普通回归分析的前提条件,因此,该题不能用用普通回归分析。
由于P(x)在[0,1]之间取值,可以使用Logit模型。
五、模型的建立与求解
模型的建立
模型的求解
Logit模型是一种广义线性模型,可利用MATLAB统计工具箱总的命令glmfit求解。
参数
参数估计值
标准差
B0
-101783
B1
所以估计值为
即
所以当幼龟比例为1:
1时计算出温度为度
令odd(t)为雄龟与雌龟比例,故有
当温度增加1度时odd比为
于是
由于b1=,所以温度每增加一度时雄龟与雌龟比例增加到原来的倍
结果的分析及验证
对模型各个温度进行验证
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
模型改进
从以上结果可知拟合偏差太大,不适合于做为最终结果。
由于模型的右端是温度t的线性函数,可以考虑加入t的二次项后,看是否能提高模型的拟合程度。
即考虑模型为
执行以下程序
>>[b2,dev2]=glmfit([tt.^2],[xs],'binomial','logit');
b2,pval=1-chi2cdf(dev-dev2,1)
b2=
pval=
计算出b0,b1,b2的估计值为、、
所以模型为
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
由以上表可知拟合偏差减小,由此可知,加入高次方后可以提高拟合偏差,所以为了进一步提高拟合效果,可以先计算出logit对应的值并画出并绘出(t,logit)的散点图
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
Logit(t)
0
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
再利用Tools下BasicFitting工具找出一条拟合效果最好的曲线,并得出其对应的系数
可知模型为
个系数为
所以模型为
当所以幼龟比例为1:
1时P(x)=.所以logit=0;即
可以得出当温度为27.、和时幼龟比例为1:
1;
再次各个数据进行验证可得
温度
乌龟蛋个数
雄龟个数
雌龟个数
雄龟比例
雄龟估计值
0
27
2
25
%
24
17
7
%
30
26
4
%
27
19
8
%
28
27
1
%
由以上结果可以看出拟合程度很好。
在用MATLAB统计工具中的命令regress求解得知相关系数R为1;拟合效果很好。
六、参考文献
数学模型第四版高等教育出版社
七、附录
模型1求解程序
>>t=[0]';
>>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=,dev
b=
bi=
dev=
模型1验证程序
>>x=[01;1;1;1;1]
x=
0
alpha=;
[b,bint,r,rint,stats]=regress(y,x,alpha)
b=
bint=
r=
rint=
stats=
模型2的验证程序
x=[001;^21;^21;^21;^21]
x=
00
alpha=;
[b,bint,r,rint,stats]=regress(y,x,alpha)
b=
bint=
r=
rint=
stats=
绘制(t,P(x))散点图程序
>>t=[0];
p=[];
>>plot(t,p,'r*')
绘制(t,logit)散点图程序
>>t=[0];
>>plot(t,p,'r*')
用第三模型计算幼龟比例为1:
1时温度程序
>>y=[0]
y=
0
>>roots(y)
ans=
+
-
vpa(roots(y),8)
ans=
第三模型各个温度对应雄龟比例结果验证程序
>>Y=@(t)+*t+*t^*t^4+*t^5
Y=
@(t)+*t+*t^*t^4+*t^5
>>f=@(t)exp(Y(t))/(1+exp(Y(t)))
f=
@(t)exp(Y(t))/(1+exp(Y(t)))
>>f(0)
ans=
>>f
ans=
>>f
ans=
>>f
ans=
>>f
ans=
用regress验证模型程序
x=[000001;^5^4^3^21;^5^4^3^21;^5^4^3^21;^5^4^3^21]
x=
00000
alpha=;
[b,bint,r,rint,stats]=regress(y,x,alpha)
Warning:
Xisrankdeficienttowithinmachineprecision.
>Inregressat82
b=
0
bint=
NaNNaN
NaNNaN
NaNNaN
00
NaNNaN
NaNNaN
r=
*
rint=
NaNNaN
NaNNaN
NaNNaN
NaNNaN
NaNNaN
stats=
1NaNNaNNaN