实验六 概率统计、回归分析模型
I. 实验目的
1. 复习数据的录入、保存和调用 2. 直观了解统计基本内容.
3. 掌握用数学软件包Matlab求解概率、统计问题.
4. 综合提高用Matlab软件解决实际问题的能力. 学会分析问题、建立问题的数学表达式并加以求解和推广,体会数学建模的整个过程.
II. 实验课时 2 III.实验内容
一、数据的录入、保存和调用
例1 上海市区社会商品零售总额和全民所有制职工工资总额的数据如下 78 79 80 81 82 83 84 85 86 87 年份 职工工资总额(亿元) 23.8 27.6 31.6 32.4 33.7 34.9 43.2 52.8 63.8 73.4 商品零售总额(亿元) 44.1 51.8 61.7 67.9 68.7 77.5 95.9 137.4 155.0 175.0 1、输入矩阵: data=[78,79,80,81,82,83,84,85,86,87;
23.8,27.6,31.6,32.4,33.7,34.9,43.2,52.8,63.8,73.4; 41.4,51.8,61.7,67.9,68.7,77.5,95.9,137.4,155.0,175.0] 2、将矩阵data的数据保存在文件data1中:save data1 data 3、进行统计分析时,先用命令: load data1
调用数据文件data1中的数据,再用以下命令分别将矩阵data的第一、二、三行的数据赋给变量t、x、y:
t=data(1,:) x=data(2,:) y=data(3,:)
若要调用矩阵data的第j列的数据,可用命令: data(:,j) 二、基本统计量
对随机变量x,计算其基本统计量的命令如下:
均值:mean(x) 中位数:median(x) 标准差:std(x) 方差:var(x)
偏度:skewness(x) 峰度:kurtosis(x)
例2 对例1中的职工工资总额x,可计算上述基本统计量.
load data1 x=data(2,:) mean=mean(x) median=median(x) std=std(x) var=var(x)
skewness=skewness(x) kurtosis=kurtosis(x) 三、常见概率分布的函数
常见的几种分布的命令字符为:
正态分布:norm 指数分布:exp
36
泊松分布:poiss 分布:beta
威布尔分布:weib 2分布:chi2 t分布:t F分布:F
Matlab工具箱对每一种分布都提供五类函数,其命令字符为: 概率密度:pdf 概率分布:cdf 逆概率分布:inv 均值与方差:stat 随机数生成:rnd
(当需要一种分布的某一类函数时,将以上所列的分布命令字符与函数命令字符接起来,并输入自变量(可以是标量、数组或矩阵)和参数即可.) 例如,对均值为mu、标准差为sigma的正态分布,举例如下:
1、密度函数:p=normpdf(x,mu,sigma) (当mu=0,sigma=1时可缺省)
例3 画出正态分布N(0,1)和N(0,22)的概率密度函数图形. 在Matlab中输入以下命令:
x=-6:0.01:6;
y=normpdf(x); z=normpdf(x,0,2); plot(x,y,x,z)
2、概率分布:P=normcdf(x,mu,sigma) 例4.X~N(0,1),求P(1X1). 命令为:P=normcdf(1)-normcdf(-1) 结果为:P =0.6827
3、逆概率分布:x=norminv(P,mu,sigma). 即求出x ,使得P{X 0.05时,P=0.975, u0.975norminv(0.975)=1.96 4、均值与方差:[m,v]=normstat(mu,sigma) 例6 求正态分布N(3,52)的均值与方差. 命令为:[m,v]=normstat(3,5) 结果为:m=3,v=25 5、随机数生成:normrnd (mu,sigma,m,n). 产生mn阶的正态分布随机数矩阵. 例7 命令:M=normrnd([1 2 3;4 5 6],0.1,2,3) 结果为:M=0.9567 2.0125 2.8854 3.8334 5.0288 6.1191 此命令产生了23的正态分布随机数矩阵,各数分别服从N(1,0.12), N(2,22), N(3, 32), N(4,0.12), N(5, 22),N(6, 32) 四、频数直方图的描绘 1、给出数组data的频数表的命令为: [N,X]=hist(data,k) 此命令将区间[min(data),max(data)]分为k个小区间(缺省为10),返回数组data落在每一个小区间的频数N和每一个小区间的中点X. 2、描绘数组data的频数直方图的命令为: hist(data,k) 五、参数估计 1、正态总体的参数估计 设总体服从正态分布,则其点估计和区间估计可同时由以下命令获得: [muhat,sigmahat,muci,sigmaci] = normfit(X,alpha) 37 此命令在显著性水平alpha下估计数据X的参数(alpha缺省时设定为0.05),返回值muhat是X的均值的点估计值,sigmahat是标准差的点估计值, muci是均值的区间估计,sigmaci是标准差的区间估计. 2、其它分布的参数估计 有两种处理办法: (i) 取容量充分大的样本(n>50),按中心极限定理,它近似地服从正态分布; (ii) 使用Matlab工具箱中具有特定分布总体的估计命令. (1)[muhat, muci] = expfit(X,alpha)----- 在显著性水平alpha下,求指数分布的数据X的均值的点估计及其区间估计. (2)[lambdahat, lambdaci] = poissfit(X,alpha)----- 在显著性水平alpha下,求泊松分布的数据X 的参数的点估计及其区间估计. (3)[phat, pci] = weibfit(X,alpha)----- 在显著性水平alpha下,求Weibull分布的数据X 的参数的点估计及其区间估计. 六、假设检验 在总体服从正态分布的情况下,可用以下命令进行假设检验. 1、总体方差sigma2已知时,总体均值的检验使用 z-检验 [h,sig,ci] = ztest(x,m,sigma,alpha,tail) 检验数据 x 的关于均值的某一假设是否成立,其中sigma 为已知方差, alpha 为显著性水平,究竟检验什么假设取决于 tail 的取值: tail = 0,检验假设“x 的均值等于 m ” tail = 1,检验假设“x 的均值大于 m ” tail =-1,检验假设“x 的均值小于 m ” tail的缺省值为 0, alpha的缺省值为 0.05. 返回值 h 为一个布尔值,h=1 表示可以拒绝假设,h=0 表示不可以拒绝假设,sig 为假设成立的概率,ci 为均值的 1-alpha 置信区间. 例8 Matlab统计工具箱中的数据文件gas.mat.中提供了美国1993年一月份和二月份的汽油平均价格(price1,price2分别是一,二月份的油价,单位为美分),它是容量为20的双样本.假设一月份油价的标准偏差是一加仑四分币(=4),试检验一月份油价的均值是否等于115. 解 作假设:m = 115. 首先取出数据,再检验: load gas price1 [h,sig,ci] = ztest(price1,115,4) 返回:h = 0,sig = 0.8668,ci = [113.3970 116.9030]. 检验结果: 1. 布尔变量h=0, 表示不拒绝零假设. 说明提出的假设均值115 是合理的. 2. sig-值为0.8668, 远超过0.5, 不能拒绝零假设 3. 95%的置信区间为[113.4, 116.9], 它完全包括115, 且精度很高. 2、总体方差sigma2未知时,总体均值的检验使用t-检验 [h,sig,ci] = ttest(x,m,alpha,tail) 检验数据 x 的关于均值的某一假设是否成立,其中alpha 为显著性水平,究竟检验什么假设取决于 tail 的取值: tail = 0,检验假设“x 的均值等于 m ” tail = 1,检验假设“x 的均值大于 m ” tail =-1,检验假设“x 的均值小于 m ” tail的缺省值为 0, alpha的缺省值为 0.05. 返回值 h 为一个布尔值,h=1 表示可以拒绝假设,h=0 表示不可以拒绝假设,sig 为假设成立 38 的概率,ci 为均值的 1-alpha 置信区间. 例9 试检验例7中二月份油价 Price2的均值是否等于115. 解 作假设:m = 115, price2为二月份的油价,不知其方差,故用以下命令检验 load gas price2 [h,sig,ci] = ttest( price2 ,115) 返回:h = 1,sig = 4.9517e-004,ci =[116.8 120.2]. 检验结果: 1. 布尔变量h=1, 表示拒绝零假设. 说明提出的假 设油价均值115是不合理的. 2. 95%的置信区间为[116.8 120.2], 它不包括 115, 故不能接受假设. 3. sig-值为4.9517e-004, 远小于0.5, 不能接受零 假设. 3、两总体均值的假设检验使用 t-检验 [h,sig,ci] = ttest2(x,y,alpha,tail) 检验数据 x ,y 的关于均值的某一假设是否成立,其中alpha 为显著性水平,究竟检验什么假设取决于 tail 的取值: tail = 0,检验假设“x 的均值等于 y 的均值 ” tail = 1,检验假设“x 的均值大于 y 的均值 ” tail =-1,检验假设“x 的均值小于 y 的均值 ” tail的缺省值为 0, alpha的缺省值为 0.05. 返回值 h 为一个布尔值,h=1 表示可以拒绝假设,h=0 表示不可以拒绝假设,sig 为假设成立的概率,ci 为与x与y均值差的的 1-alpha 置信区间. 例10 试检验例7中一月份油价Price1与二月份的油价Price2均值是否相同. 解 用以下命令检验 [h,sig,ci] = ttest2(price1,price2) 返回:h = 1,sig = 0.0083,ci =[-5.8,-0.9]. 检验结果:1. 布尔变量h=1, 表示拒绝零假设. 说明提出的假设“油价均值相同”是不合理的. 2. 95%的置信区间为[-5.8,-0.9],说明一月份油价比二月份油价约低1至6分. 3. sig-值为0.0083, 远小于0.5, 不能接受“油价均相同”假设. load gas [h,sig,ci] = ttest2(price1,price2) 4、非参数检验:总体分布的检验 Matlab工具箱提供了两个对总体分布进行检验的命令: (1)h = normplot(x) 此命令显示数据矩阵x的正态概率图.如果数据来自于正态分布,则图形显示出直线性形态.而其它概率分布函数显示出曲线形态. (2)h = weibplot(x) 此命令显示数据矩阵x的Weibull概率图.如果数据来自于Weibull分布,则图形将显示出直线性形态.而其它概率分布函数将显示出曲线形态. 例11 一道工序用自动化车床连续加工某种零件,由于刀具损坏等会出现故障.故障是完全随机的,并假定生产任一零件时出现故障机会均相同.工作人员是通过检查零件来确定工序是否出现故障的.现积累有100次故障纪录,故障出现时该刀具完成的零件数如下: 459 362 624 542 509 584 433 748 815 505 612 452 434 982 640 742 565 706 593 680 926 653 164 487 734 608 428 1153 593 844 527 552 513 781 474 388 824 538 862 659 39 775 859 755 49 697 515 628 954 771 609 402 960 885 610 292 837 473 677 358 638 699 634 555 570 84 416 606 1062 484 120 447 654 564 339 280 246 687 539 790 581 621 724 531 512 577 496 468 499 544 645 764 558 378 765 666 763 217 715 310 851 试观察该刀具出现故障时完成的零件数属于哪种分布. 1、数据输入 x1=[459 362 624 542 509 584 433 748 815 505]; x2=[612 452 434 982 640 742 565 706 593 680]; x3=[926 653 164 487 734 608 428 1153 593 844]; x4=[527 552 513 781 474 388 824 538 862 659]; x5=[775 859 755 49 697 515 628 954 771 609]; x6=[402 960 885 610 292 837 473 677 358 638]; x7=[699 634 555 570 84 416 606 1062 484 120]; x8=[447 654 564 339 280 246 687 539 790 581]; x9=[621 724 531 512 577 496 468 499 544 645]; x10=[764 558 378 765 666 763 217 715 310 851]; x=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10]; save dj x 2、作频数直方图(看起来刀具寿命服从正态分布) load dj hist(x,10) 3、分布的正态性检验(刀具寿命近似服从正态分布) load dj normplot(x) 4、参数估计: load dj [muhat,sigmahat,muci,sigmaci] = normfit(x) 估计出该刀具的均值为594,方差204,均值的0.95置信区间为[ 553.4962,634.5038],方差的0.95置信区间为[ 179.2276,237.1329]. 5、假设检验 已知刀具的寿命服从正态分布,现在方差未知的情况下,检验其均值 m 是否等于594. load dj [h,sig,ci] = ttest( x ,594) 结果:h = 0,sig = 1,ci =[553.4962,634.5038]. 检验结果: 1. 布尔变量h=0, 表示不拒绝零假设,说明提出的假设寿命均值594是合理的. 2. 95%的置信区间为 [553.5,634.5], 它完全包括594, 且精度很高. 3. sig-值为1, 远超过0.5, 不能拒绝零假设. IV. 练习 6-1 某校60名学生的一次考试成绩如下: 93 75 83 93 91 85 84 82 77 76 77 95 94 89 91 88 86 83 96 81 79 97 78 75 67 69 68 84 83 81 75 66 85 70 94 84 83 82 80 78 74 73 76 70 86 76 90 89 71 66 86 73 80 94 79 78 77 63 53 55 1)计算均值、标准差、方差、偏度、峰度,画出直方图; 2)检验分布的正态性; 3)若检验符合正态分布,估计正态分布的参数并检验参数. 6-2 据说某地汽油的价格是每加仑115美分,为了验证这种说法,一位学者开车随机选择了一些加油站,得到某年一月和二月的数据如下: 一月:119 117 115 116 112 121 115 122 116 118 109 112 119 112 117 113 114 109 109 118 40 二月:118 119 115 122 118 121 120 122 128 116 120 123 121 119 117 119 128 126 118 125 1)分别用两个月的数据验证这种说法的可靠性; 2)分别给出1月和2月汽油价格的置信区间; 3)给出1月和2月汽油价格差的置信区间; 6-3 (报童售报策略问题)报童每天清晨从报站批发报纸零售,晚上将没有买完的报纸退回.设每份报纸的批发价为b元,零售价为a元,退回价为c元,且设abc.因此,报童每售出一份报纸赚钱 (a-b),退回一份报纸赔钱(b-c).报童如果每天批发报纸太少,不够卖的话就会少赚钱;如果批发报纸太多,卖不完的话就会赔钱. (1) 报童应如何确定每天批发报纸的数量,才能获得最大的收益? (2) 为了掌握需求量的随机规律,可收集历史资料或向其他报童调查的办法作市场预测.假设已经得到159天报纸需求量的情况如表: 需求量 100~ 120~ 140~ 160~ 180~ 200~ 220~ 240~ 260~ 280~ 3 9 13 22 32 35 20 15 8 2 天 数 根据这些数据,(i)求出上表中的频数表,直方图及均值;(ii)检验分布的正态性;(iii)假定a=1元,b=0.8元,c=0.75元,为报童提供最佳决策. 6-4 根据牙膏销售量与销售差价、广告费用等数据(见下表),建立数学模型,分析牙膏销售与其它因素的关系,为制订价格策略和广告投入策略提供数量依据. 销售周期 广告费用(百万元) 价格差(元) 销量量(百万支) 1 5.5 -0.05 7.38 2 6.75 0.25 8.51 3 7.25 0.60 9.52 4 5.5 0 7.5 5 7 0.25 9.33 6 6.5 0.2 8.28 7 6.75 0.15 8.75 8 5.25 0.05 7.87 9 5.25 -0.15 7.1 10 6 0.15 8 11 6.5 0.2 7.89 12 6.25 0.1 8.15 13 7 0.4 9.1 14 6.9 0.45 8.86 15 6.80 0.35 8.9 16 6.8 0.3 8.87 17 7.1 0.5 9.26 18 7 0.5 9 19 6.8 0.4 8.75 20 6.5 -0.05 7.95 21 6.25 -0.05 7.65 22 6 -0.1 7.27 23 6.5 0.2 8 24 7 0.1 8.5 25 6.8 0.5 8.75 26 6.8 0.6 9.21 27 6.5 -0.05 8.27 28 5.75 0 7.67 29 5.8 0.05 7.93 30 6.8 0.55 9.26 41 因篇幅问题不能全部显示,请点此查看更多更全内容