最新乌龟性别与温度的数学模型.docx
《最新乌龟性别与温度的数学模型.docx》由会员分享,可在线阅读,更多相关《最新乌龟性别与温度的数学模型.docx(18页珍藏版)》请在冰豆网上搜索。
![最新乌龟性别与温度的数学模型.docx](https://file1.bdocx.com/fileroot1/2023-1/1/1e072644-cbda-4d6a-affe-112d71a19f58/1e072644-cbda-4d6a-affe-112d71a19f581.gif)
最新乌龟性别与温度的数学模型
数学建模期末作业
乌龟性别的决定因素问题
(习题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
5、就业机会和问题分析86.67%
(二)创业优势分析1.87209067
2003年,上海市人均GDP按户籍人口计算就达到46700元,是1995年的2.5倍;居民家庭人均月可支配收入为14867元,是1995年的2.1倍。
收入不断增加的同时,居民的消费支出也在增加。
2003年上海居民人均消费支出为11040元,其中服务性消费支出为3369元,是1995年的3.6倍。
1.2
27
19
(四)大学生对手工艺制品消费的要求8
70.37%
beadorks公司成功地创造了这样一种气氛:
商店和顾客不再是单纯的买卖关系,营业员只是起着参谋的作用,顾客成为商品或者说是作品的作参与者,营业员和顾客互相交流切磋,成为一个共同的创作体0.8649796
当然,在竞争日益激烈的现代社会中,创业是件相当困难的事。
我们认为,在实行我们的创业计划之前,我们首先要了解竞争对手,吸取别人的经验教训,制订相应竞争的策略。
我相信只要我们的小店有自己独到的风格,价格优惠,服务热情周到,就一定能取得大多女孩的信任和喜爱。
2.7
28
27
加拿大beadworks公司就是根据年轻女性要充分展现自己个性的需求,将世界各地的珠类饰品汇集于“碧芝自制饰品店”内,由消费者自选、自组、自制,这样就能在每个消费者亲手制作、充分发挥她们的艺术想像力的基础上,创作出作品,达到展现个性的效果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