1、-122-第十章 数据的统计描述和分析数理统计研究的对象是受随机因素影响的数据,以下数理统计就简称统计,统计是以概率论为基础的一门应用学科。数据样本少则几个,多则成千上万,人们希望能用少数几个包含其最多相关信息的数值来体现数据样本总体的规律。描述性统计就是搜集、整理、加工和分析统计数据,使之系统化、条理化,以显示出数据资料的趋势、特征和数量关系。它是统计推断的基础,实用性较强,在统计工作中经常使用。面对一批数据如何进行描述与分析,需要掌握参数估计和假设检验这两个数理统计的最基本方法。我们将用 Matlab 的统计工具箱(Statistics Toolbox)来实现数据的统计描述和分析。1 统计
2、的基本概念1.1 总体和样本总体是人们研究对象的全体,又称母体,如工厂一天生产的全部产品(按合格品及废品分类) ,学校全体学生的身高。总体中的每一个基本单位称为个体,个体的特征用一个变量(如 )来表示,如x一件产品是合格品记 ,是废品记 ;一个身高 170(cm)的学生记 。0x1x 170从总体中随机产生的若干个个体的集合称为样本,或子样,如 件产品,100 名n学生的身高,或者一根轴直径的 10 次测量。实际上这就是从总体中随机取得的一批数据,不妨记作 , 称为样本容量。n,21简单地说,统计的任务是由样本推断总体。1.2 频数表和直方图一组数据(样本)往往是杂乱无章的,作出它的频数表和直
3、方图,可以看作是对这组数据的一个初步整理和直观描述。将数据的取值范围划分为若干个区间,然后统计这组数据在每个区间中出现的次数,称为频数,由此得到一个频数表。以数据的取值为横坐标,频数为纵坐标,画出一个阶梯形的图,称为直方图,或频数分布图。若样本容量不大,能够手工作出频数表和直方图,当样本容量较大时则可以借助Matlab 这样的软件了。让我们以下面的例子为例,介绍频数表和直方图的作法。例 1 学生的身高和体重学校随机抽取 100 名学生,测量他们的身高和体重,所得数据如表身高 体重 身高 体重 身高 体重 身高 体重 身高 体重172 75 171 62 166 62 160 55 155 57
4、 173 58 166 55 170 63 167 53 173 60 178 60 169 55 168 67 168 65 175 67 176 64 168 50 161 49 169 63 171 61 178 64 177 66 169 64 165 52 164 59 173 74 172 69 169 52 173 57 173 61 166 70 163 57 170 56 171 65 169 62 170 58 172 64 169 58 167 72 175 76 164 59 166 63 169 54 167 54 167 47 168 65 165 64 168 5
5、7 176 57 170 57 158 51 165 62 172 53 169 66 169 58 -123-173 73 163 47 165 66 170 60 163 50 172 57 182 63 171 59 177 64 170 58 173 67 172 59 170 62 172 59 177 58 176 68 175 68 184 70 160 65 165 58 177 66 169 63 176 60 177 67 172 56 165 56 166 49 179 62 176 63 182 69 186 77 166 76 169 72 173 59 169 65
6、 171 71 172 50 162 52 175 75 174 66 167 63 166 50 174 64 168 62 170 59 (i) 数据输入数据输入通常有两种方法,一种是在交互环境中直接输入,如果在统计中数据量比较大,这样作不太方便;另一种办法是先把数据写入一个纯文本数据文件 data.txt 中,格式如例 1 的表格,有 20 行、10 列,数据列之间用空格键或 Tab 键分割,该数据文件 data.txt 存放在 matlabwork 子目录下,在 Matlab 中用 load 命令读入数据,具体作法是:load data.txt这样在内存中建立了一个变量 data,它是
7、一个包含有 个数据的矩阵。102为了得到我们需要的 100 个身高和体重各为一列的矩阵,应做如下的改变:high=data(:,1:2:9);high=high(:)weight=data(:,2:2:10);weight=weight(:)(ii)作频数表及直方图用 hist 命令实现,其用法是:N,X = hist(Y,M)数组(行、列均可)Y 的频数表。它将区间 min(Y),max(Y)等分为 M 份(缺省时 M设定为 10) ,N 返回 M 个小区间的频数,X 返回 M 个小区间的中点。hist(Y,M)数组 Y 的直方图。对于例 1 的数据,编写程序如下:load data.txt
8、;high=data(:,1:2:9);high=high(:);weight=data(:,2:2:10);weight=weight(:);n1,x1=hist(high)%下面语句与hist命令等价%n1=length(find(high=158.1i=1;while (feof(fid1)data=fgetl(fid1);a=length(find(data=97);b=length(find(data=99);c=length(find(data=103);d=length(find(data=116);e=length(find(data=97f(i,:)=a b c d e a+
9、b+c+d;i=i+1;endfhe=sum(f(:,1) sum(f(:,2) sum(f(:,3) sum(f(:,4).sum(f(:,5) sum(f(:,6)fid2=fopen(pinshu.txt,w);fprintf(fid2,%8d %8d %8d %8d %8d %8dn,f);fclose(fid1);fclose(fid2);我们把统计结果最后写到一个纯文本文件 pinshu.txt 中,在程序中多引进了几个变量,是为了检验字符串是否只包含 a、g、c、t 四个字符。1.3 统计量-125-假设有一个容量为 的样本(即一组数据) ,记作 ,需要对它n ),(21nxx进
10、行一定的加工,才能提出有用的信息,用作对总体(分布)参数的估计和检验。统计量就是加工出来的、反映样本数量特征的函数,它不含任何未知量。下面我们介绍几种常用的统计量。(i)表示位置的统计量算术平均值和中位数算术平均值(简称均值)描述数据取值的平均位置,记作 ,xnix1(1)中位数是将数据由小到大排序后位于中间位置的那个数值。Matlab 中 mean(x)返回 x 的均值,median(x)返回中位数。(ii)表示变异程度的统计量标准差、方差和极差标准差 定义为s211)(niixs(2)它是各个数据与均值偏离程度的度量,这种偏离不妨称为变异。方差是标准差的平方 。2s极差是 的最大值与最小值
11、之差。),(1nxxMatlab 中 std(x)返回 x 的标准差,var(x)返回方差,range(x)返回极差。你可能注意到标准差 的定义(2)中,对 个 的平方求和,却被n)(xi除,这是出于无偏估计的要求。若需要改为被 除,Matlab 可用 std(x,1)和)(nvar(x,1)来实现。(iii )中心矩、表示分布形状的统计量偏度和峰度随机变量 的 阶中心矩为 。xrrEx)(随机变量 的偏度和峰度指的是 的标准化变量 的三阶中心矩和DxEx/)(四阶中心矩: ,)()(2/331 xDxE.)()(2442 E偏度反映分布的对称性, 称为右偏态,此时数据位于均值右边的比位于左0
12、1边的多; 称为左偏态,情况相反;而 接近 0 则可认为分布是对称的。011峰度是分布形状的另一种度量,正态分布的峰度为 3,若 比 3 大得多,表示分2布有沉重的尾巴,说明样本中含有较多远离均值的数据,因而峰度可以用作衡量偏离正态分布的尺度之一。Matlab 中 moment(x,order)返回 x 的 order 阶中心矩,order 为中心矩的阶数。-126-skewness(x)返回 x 的偏度,kurtosis(x)返回峰度。在以上用 Matlab 计算各个统计量的命令中,若 x 为矩阵,则作用于 x 的列,返回一个行向量。对例 1 给出的学生身高和体重,用 Matlab 计算这些
13、统计量,程序如下:clcload data.txt;high=data(:,1:2:9);high=high(:);weight=data(:,2:2:10);weight=weight(:);shuju=high weight;jun_zhi=mean(high weight)zhong_wei_shu=median(shuju)biao_zhun_cha=std(shuju)ji_cha=range(shuju)pian_du=skewness(shuju)feng_du=kurtosis(shuju)统计量中最重要、最常用的是均值和标准差,由于样本是随机变量,它们作为样本的函数自然也是随
14、机变量,当用它们去推断总体时,有多大的可靠性就与统计量的概率分布有关,因此我们需要知道几个重要分布的简单性质。1.4 统计中几个重要的概率分布1.4.1 分布函数、密度函数和分位数随机变量的特性完全由它的(概率)分布函数或(概率)密度函数来描述。设有随机变量 ,其分布函数定义为 的概率,即 。若 是连续XxX)(xXPxF型随机变量,则其密度函数 与 的关系为)(p.xdF)(分位数是下面常用的一个概念,其定义为:对于 ,使某分布函数10的 ,成为这个分布的 分位数,记作 。)(xx我们前面画过的直方图是频数分布图,频数除以样本容量 ,称为频率, 充分nn大时频率是概率的近似,因此直方图可以看
15、作密度函数图形的(离散化)近似。1.4.2 统计中几个重要的概率分布(i)正态分布正态分布随机变量 的密度函数曲线呈中间高两边低、对称的钟形,期望(均值)X,方差 ,记作 , 称均方差或标准差,当EX2D),(2N时称为标准正态分布,记作 。正态分布完全由均值 和方差1,0 10X决定,它的偏度为 0,峰度为 3。2正态分布可以说是最常见的(连续型)概率分布,成批生产时零件的尺寸,射击中弹着点的位置,仪器反复量测的结果,自然界中一种生物的数量特征等,多数情况下都服从正态分布,这不仅是观察和经验的总结,而且有着深刻的理论依据,即在大量相互独立的、作用差不多大的随机因素影响下形成的随机变量,其极限
16、分布为正态分布。鉴于正态分布的随机变量在实际生活中如此地常见,记住下面 3 个数字是有用的:68%的数值落在距均值左右 1 个标准差的范围内,即-127-;68.0XP95%的数值落在距均值左右 2 个标准差的范围内,即;9599.7%的数值落在距均值左右 3 个标准差的范围内,即.7(ii) 分布(Chi square)2若 为相互独立的、服从标准正态分布 的随机变量,则它们nX,1 )1,0(N的平方和 服从 分布,记作 , 称自由度,它的期望 ,iiY22)(2nYnEY方差 。D(iii ) 分布t若 , ,且相互独立,则 服从 分布,记作)1,0(NX)(2nnYXT/t, 称自由度
17、。 分布又称学生氏(Student)分布。)ntTt分布的密度函数曲线和 曲线形状相似。理论上 时,1,0N,实际上当 时它与 就相差无几了。),(3)1,0((iv) 分布F若 , ,且相互独立,则 服从 分布,记作12nX)(2nY21/nYXF, 称自由度。),(1),(21.4.3 Matlab 统计工具箱(ToolboxStats)中的概率分布Matlab 统计工具箱中有 20 种概率分布,这里只对上面所述 4 种分布列出命令的字符:norm 正态分布; chi2 分布;2t 分布 f 分布F工具箱对每一种分布都提供 5 类函数,其命令的字符是:pdf 概率密度; cdf 分布函数;
18、 inv 分布函数的反函数;stat 均值与方差; rnd 随机数生成当需要一种分布的某一类函数时,将以上所列的分布命令字符与函数命令字符接起来,并输入自变量(可以是标量、数组或矩阵)和参数就行了,如:p=normpdf(x,mu,sigma) 均值 mu、标准差 sigma 的正态分布在 的密度函数 x(mu=0,sigma=1 时可缺省)。p=tcdf(x,n) 分布(自由度 n)在 x 的分布函数。tx=chi2inv(p,n) 分布(自由度 n)使分布函数 F(x)=p 的 x(即 p 分位数) 。2m,v=fstat(n1,n2) 分布(自由度 n1,n2)的均值 m 和方差 v。F
19、几个分布的密度函数图形就可以用这些命令作出,如:x=-6:0.01:6;y=normpdf(x);z=normpdf(x,0,2);plot(x,y,x,z),gtext(N(0,1),gtext(N(0,22)分布函数的反函数的意义从下例看出:x=chi2inv(0.9,10)x =-128-15.9872如果反过来计算,则P=chi2cdf(15.9872,10)P =0.90001.5 正态总体统计量的分布用样本来推断总体,需要知道样本统计量的分布,而样本又是一组与总体同分布的随机变量,所以样本统计量的分布依赖于总体的分布。当总体服从一般的分布时,求某个样本统计量的分布是很困难的,只有在
20、总体服从正态分布时,一些重要的样本统计量(均值、标准差)的分布才有便于使用的结果。另一方面,现实生活中需要进行统计推断的总体,多数可以认为服从(或近似服从)正态分布,所以统计中人们在正态总体的假定下研究统计量的分布,是必要的与合理的。设总体 , 为一容量 的样本,其均值 和标准差 由),(2NXnx,21 xs式(1) 、 (2)确定,则用 和 构造的下面几个分布在统计中是非常有用的。xs或 ,n )1,0(/Nn(3)).1()1(22s(4))(/ntsx(5) 设有两个总体 和 ,及由容量分别为 , 的两,21NX),(2Y1n2个样本确定的均值 和标准差 ,则yx,s1,0/)()(2
21、12n(6))2(/)()(1212 tsyx(7)其中 ,)()(212nss)1,(/211nFs(8)对于(7)式,假定 ,但它们未知,于是用 代替。在下面的统计推断中我们21s要反复用到这些分布。2 参数估计-129-利用样本对总体进行统计推断的一类问题是参数估计,即假定已知总体的分布,通常是 ,估计参数的分布,如 。参数估计分点估计和区间估计),(2NX2,两种。2.1 点估计点估计是用样本统计量确定总体参数的一个数值。评价估计优劣的标准有无偏性、最小方差性、有效性等,估计的方法有矩法、极大似然法等。最常用的是对总体均值 和 方差(或标准差 )作点估计。让我们暂时抛开2评价标准,当从
22、一个样本按照式(1) 、 (2)算出样本均值 和方差 后,对 和x2s(或 )一个自然、合理的点估计显然是(在字母上加表示它的估计值)2, , xss(9)2.2 区间估计点估计虽然给出了待估参数的一个数值,却没有告诉我们这个估计值的精度和可信程度。一般地,总体的待估参数记作 (如 ) ,由样本算出的 的估计量记作2,,人们常希望给出一个区间 ,使 以一定的概率落在此区间内。若有 ,21, P10(10)则 称为 的置信区间, 分别称为置信下限和置信上限, 称为置信,21 21, 概率或置信水平, 称为显著性水平。给出的置信水平为 的置信区间 ,称为 的区间估计。置信区间越小,,21估计的精度
23、越高;置信水平越大,估计的可信程度越高。但是这两个指标显然是矛盾的,通常是在一定的置信水平下使置信区间尽量小。通俗地说,区间估计给出了点估计的误差范围。2.3 参数估计的 Matlab 实现Matlab 统计工具箱中,有专门计算总体均值、标准差的点估计和区间估计的函数。对于正态总体,命令是mu,sigma,muci,sigmaci=normfit(x,alpha)其中 x 为样本(数组或矩阵) ,alpha 为显著性水平 (alpha 缺省时设定为 0.05) ,返回总体均值 和标准差 的点估计 mu 和 sigma,及总体均值 和标准差 的区间估计 muci 和 sigmaci。当 x 为矩
24、阵时返回行向量。Matlab 统计工具箱中还提供了一些具有特定分布总体的区间估计的命令,如expfit,poissfit,gamfit,你可以从这些字头猜出它们用于哪个分布,具体用法参见帮助系统。3 假设检验统计推断的另一类重要问题是假设检验问题。在总体的分布函数完全未知或只知其形式但不知其参数的情况,为了推断总体的某些性质,提出某些关于总体的假设。例如,提出总体服从泊松分布的假设,又如对于正态总体提出数学期望等于 的假设0等。假设检验就是根据样本对所提出的假设做出判断:是接受还是拒绝。这就是所谓的假设检验问题。3.1 单个总体 均值 的检验),(2N-130-原假设(或零假设)为: 。00:
25、H备选假设有三种可能:; ; 。01:H1:13.1.1 已知,关于 的检验( 检验)2u在 Matlab 中 检验法由函数 ztest 来实现,命令为uh,p,ci=ztest(x,mu,sigma,alpha,tail)其中输入参数 x 是样本,mu 是 中的 ,sigma 是总体标准差 ,alpha 是显著性0H水平 (alpha 缺省时设定为 0.05) ,tail 是对备选假设 的选择: 为 时 1H10用 tail=0(可缺省) ; 为 时用 tail=1; 为 时用 tail=-1。输出10参数 h=0 表示接受 ,h=1 表示拒绝 ,p 表示在假设 下样本均值出现的概率,00p
26、 越小 越值得怀疑,ci 是 的置信区间。0H0例 3 某车间用一台包装机包装糖果。包得的袋装糖重是一个随机变量,它服从正态分布。当机器正常时,其均值为 0.5 公斤,标准差为 0.015 公斤。某日开工后为检验包装机是否正常,随机地抽取它所包装的糖 9 袋,称得净重为(公斤):0.497 0.506 0.518 0.524 0.498 0.511 0.520 0.515 0.512问机器是否正常?解 总体 已知, , 未知。于是提出假设)015.,(2Nx和 。5.0:0H5.0:1HMatlab 实现如下:x=0.497 0.506 0.518 0.524 0.498.0.511 0.52
27、0 0.515 0.512;h,p,ci=ztest(x,0.5,0.015)求得 h=1,p=0.0248,说明在 0.05 的水平下,可拒绝原假设,即认为这天包装机工作不正常。3.1.2 未知,关于 的检验( 检验)2t在 Matlab 中 检验法由函数 ttest 来实现,命令为th,p,ci=ttest(x,mu,alpha,tail)例 4 某种电子元件的寿命 (以小时计)服从正态分布, 均未知.现得 16 只x2,元件的寿命如下:159 280 101 212 224 379 179 264 222 362 168 250 149 260 485 170 问是否有理由认为元件的平均
28、寿命大于 225(小时)?解 按题意需检验,25:,25:100 HH取 。Matlab 实现如下:5.x=159 280 101 212 224 379 179 264 .222 362 168 250 149 260 485 170;h,p,ci=ttest(x,225,0.05,1)求得 h=0,p=0.2570,说明在显著水平为 0.05 的情况下,不能拒绝原假设,认为元件的平均寿命不大于 225 小时。-131-3.2 两个正态总体均值差的检验( 检验)t还可以用 检验法检验具有相同方差的 2 个正态总体均值差的假设。在 Matlab 中t由函数 ttest2 实现,命令为:h,p,
29、ci=ttest2(x,y,alpha,tail)与上面的 ttest 相比,不同处只在于输入的是两个样本 x,y(长度不一定相同) ,而不是一个样本和它的总体均值;tail 的用法与 ttest 相似,可参看帮助系统。例 5 在平炉上进行一项试验以确定改变操作方法的建议是否会增加钢的得率,试验是在同一平炉上进行的。每炼一炉钢时除操作方法外,其它条件都可能做到相同。先用标准方法炼一炉,然后用建议的新方法炼一炉,以后交换进行,各炼了 10 炉,其得率分别为1标准方法 78.1 72.4 76.2 74.3 77.4 78.4 76.0 75.6 76.7 77.3 2新方法 79.1 81.0
30、77.3 79.1 80.0 79.1 79.1 77.3 80.2 82.1设这两个样本相互独立且分别来自正态总体 和 , 均未),(21N)(221,知,问建议的新方法能否提高得率?(取 。)05.解 (i)需要检验假设, .0:210H:21(ii)Matlab 实现x=78.1 72.4 76.2 74.3 77.4 78.4 76.0 75.6 76.7 77.3;y=79.1 81.0 77.3 79.1 80.0 79.1 79.1 77.3 80.2 82.1;h,p,ci=ttest2(x,y,0.05,-1)求得 h=1,p=2.212610-4。表明在 的显著水平下,可以
31、拒绝原假设,即05.认为建议的新操作方法较原方法优。3.3 分布拟合检验在实际问题中,有时不能预知总体服从什么类型的分布,这时就需要根据样本来检验关于分布的假设。下面介绍 检验法和专用于检验分布是否为正态的“偏峰、峰2度检验法” 。3.3.1 检验法2:总体 的分布函数为 ,0Hx)(xF: 总体 的分布函数不是1 .在用下述 检验法检验假设 时,若在假设 下 的形式已知,但其参20H0)(xF数值未知,这时需要先用极大似然估计法估计参数,然后作检验。检验法的基本思想如下:将随机试验可能结果的全体 分为 个互不相容的2 k事件 。于是在假设kA,.,31 ),21, ,(1 jiAjiki 下,我们可以计算 (或 ) , 。在 次试验中,事0H)iPp)(iip.n件 出现的频率 与 ( )往往有差异,但一般来说,若 为真,且试验的次数i nfi/i 0H又甚多时,则这种差异不应该很大。基于这种想法,皮尔逊使用kiipf122 kiipnf12)(或