6 MATLAB参数估计与假设-正态总体参数的检验

正态总体参数的检验

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

  1 总体标准差已知时的单个正态总体均值的U检验

  例:

 某切割机正常工作时,切割的金属棒的长度服从正态分布N(100,4)。从该切割机切割的一批金属棒中随机抽取15根,测得长度为:

 97 102 105 112 99 103 102 94 100 95 105 98 102 100 103

假设总体的方差不变,试检验该切割机工作是否正常,即检验总体均值是否等于100?,取显著性水平a=0.05。

分析:

这是总体标准差已知时的单个正态总体均值的检验,根据题目要求可写出如下假设:

  H0:u=u0=100,                H1=u /=u0(u不等于u0)

 H0称为原假设,H1称为被择假设(或对立假设)

MATLAB统计工具箱中的ztest函数用来做总体标准差已知时的单个正态总体均值的检验

调用格式ztest

[h,p,muci,zval]=ztest(x,mu0,Sigma,Alpha,Tail)

x:是输入的观测向量

mu0:假设的均值

Sigma:总体标准差

Alpha:显著性水平,默认0.05

Tail:尾部类型变量,‘both’双侧检验(默认),u不等于uo;‘right’右侧检验,u>u0; ‘left’左侧检验,u<u0;

返回值:

h:假设的结果(0,1),h=0时,接受假设H0;h=1,拒绝假设H0

p:检验的p值,p>Alpha时,接受原假设H0;p<=Alpha时,拒绝原假设H0.

muci:总体均值u的置信水平为1-Alpha的置信区间

zval:检验统计量的观测值

%定义样本观测值向量

x=[97 102 105 112 99 103 102 94 100 95 105 98 102 100 103];

mu0=100;       %原假设中的mu0

sigma=2;       %总体标准差

Alpha=0.05;    %显著性水平

%调用ztest函数做总体均值的双侧检验(默认),

%返回变量h,检验的p值,均值的置信区间muci,检验统计量的观测值zval

[h,p,muci,zval]=ztest(x,mu0,sigma,Alpha)

h =

     1

p =

    0.0282

muci =

  100.1212  102.1455

zval =

    2.1947

由ztest函数返回值可以看到,h=1,且p=0.0282<0.05,所以在显著性水平=0.05下拒绝的原假设H0:u=u0=100,因此认为该切割机不能正常工作,同时还返回了总体均值的置信水平为95%(1-0.05)的置信区间为[100.1212  102.1455]。

现在我们已经知道u不等于u0(100),那么接下来还需要做如下的检验

H0:u<=u0=100;               H1:u>u0

这里就需要设置一下尾部类型变量了,Tail用来指定备择假设H1的形式,它可能取的字符串‘both’,‘right’和'left',对应的备择假设分别为H1:u/=u0(不等于),(双侧检验)、

H1:u>u0,(右尾检验)和H1:u<u0(左尾检验)

%定义样本观测值向量

x=[97 102 105 112 99 103 102 94 100 95 105 98 102 100 103];

mu0=100;       %原假设中的mu0

sigma=2;       %总体标准差

Alpha=0.05;    %显著性水平

tail='right';

%调用ztest函数做总体均值的双侧检验(默认),

%返回变量h,检验的p值,均值的置信区间muci,检验统计量的观测值zval

[h,p,muci,zval]=ztest(x,mu0,sigma,Alpha,tail)

h =

     1

p =

    0.0141

muci =

  100.2839       Inf

zval =

    2.1947

返回值中,h=1且p=0.0141<0.05,在显著性水平下=0.05下拒绝了原假设H0:u<=u0=100;

如果:

H0:u>uo=100;      H1=u<u0

那么tail应为‘left’;

返回值将会 h=0,p>0.05,接受原假设H0,即认为u>100;

2 总体标准差未知时的单个正态总体均值的t检验

例:

化肥厂用自动包装机包装化肥,某日测得9包化肥的质量如下:

49.4  50.5  50.7  51.7  49.8  47.9  49.2  51.4  48.9 

设每包化肥的质量服从正态分布,是否可以认为每包化肥的平均质量为50?取显著性水平a=0.05。

分析:这是总体标准差未知时的单个正态总体均值的检验,根据题目要求可以写出如下假设:

 H0:u=u0=50,                      H1:u/=u0(u不等于u0)

MATLAB统计工具箱中提供了ttest函数用来做总体标准差未知时的正态总体均值的检验,调用格式和ztest类似,返回值有点不同

[h,p,muci,stats]=ttest(x,mu0,Alpha,Tail)

输入参数中没有标准差,其它都一样

返回值stats是一个结构体变量,包括t检验统计量的观测值,自由度,和样本的标准差;其它都一样

%定义样本观测值向量

x=[49.9 50.5 50.7 51.7 49.8 47.9 49.2 51.4 48.9];

mu0=50;    %原假设中的均值u0=50

Alpha=0.05;  %显著性水平alpha

%调用ttest函数做总体均值的双侧检验

%返回变量h,检验值p,均值的置信空间muci,结构体变量stats

[h,p,muci,stats]=ttest(x,mu0,Alpha)

h =

     0

p =

    1.0000

muci =

   49.0625   50.9375

stats =

    tstat: -1.7478e-14

       df: 8

       sd: 1.2196

由于返回值h=0,p=1>0.05,所以在显著性水平=0.05下接受原假设H0:u=u0=50,认为每包化肥的平均质量为50,并且总体均值u的置信水平为95%的置信区间为[49.0625 50.9375]

3 总体标准差未知时的两个正态总体均值的比较 t 检验

  (1)两独立样本的 t 检验

   例:

  甲、乙两台机床加工同一种产品,从这两台机床加工的产品中随机抽取若干件,测得产品直径为:

  甲机床:20.1,20.0,19.3,20.6,20.2,19.9,20.0,19.9,19.1,19.9

  乙机床:18.6, 19.1,20.0,20.0,20.0,19.7,19.9,19.6,20.2

  设甲、乙两机床加工的产品的直径分布服从正态分布N(u1,a1^2)和N(u2,a2^2),试比较甲、乙两台机床加工的产品的直径均值是否有显著性差异,取显著性水平a=0.05

 分析:这是总体标准差未知,并且两样本是相互独立的,对这两样本均值做比较检验,根据题目要求,可写出如下假设

  H0:u1=u2                       H1:u1/=u2(u1不等于u2)

 MATLAB统计工具箱中的ttest2函数可以用来做总体标准差未知时的两个正态总体均值的比较检验;

调用格式:

[h,p,muci,stats]=ttest(x,y,Alpha,Tail,vartype)

x,y为输入的两个样本观测值

Alpha为显著性水平

tail为尾部类型

cartype:为方差类型,用来指定两总体方差是否相等,‘equal’表示等方差,‘unequal’表示异方差

返回值与ttest函数一致,muci是指均值差的置信空间

%定义甲机床的样本观测值向量

x=[20.1,20.0,19.3,20.6,20.2,19.9,20.0,19.9,19.1,19.9];

%定义乙机床的样本观测值向量

y=[18.6, 19.1,20.0,20.0,20.0,19.7,19.9,19.6,20.2];

Alpha=0.05;               %显著性水平

tail='both';              %尾部类型为双侧

vartype='equal';          %方差类型为等方差

%调用ttest2函数作两个正态总体均值的比较检验

%返回变量h,检验的p值,均值差的置信区间,结构体变量stats

[h,p,muci,stats]=ttest2(x,y,Alpha,tail,vartype)

h =

     0

p =

    0.3191

muci =

   -0.2346    0.6791

stats =

    tstat: 1.0263

       df: 17

       sd: 0.4713

返回的检验值p>0.05,所以在显著性水平=0.05下,接受原假设H0:u1=u2,认为甲、乙两台机床加工的产品的直径没有显著差异。此时,u1-u2的置信水平为95%的置信区间为[-0.2346    0.6791]

 (2)配对样本的 t 检验

    (两样本不是独立的)

 例:

 两组(各10名)有资质的评酒员分别对12种不同的酒进行品评,每个评酒员在品尝后进行评分,然后对每组的每个样品计算其平均分,评分结果如下

                样品1      样本2      样品3    样品4     样品5      样品6      样品7      样品8      样品9      样品10    样品11     样品12   

第一组     80.3      68.6          72.2     71.5      72.3          70.1         74.6        73.0        58.7        78.6         85.6           78.0

第二组     74.0       71.2        66.3      65.3     66.0           61.6        68.8          72.6        65.7        72.6         77.1           71.5

设两组评酒员的评分分布服从正态分布N(u1,a1^2)和N(u2,a2^2),试比较两组评酒员的评分是否有显著差异,取显著性水平a=0.05

分析:由于每个红酒样本都对应两个评分,显然样本等长,并且两样本不独立,这是配对样本的比较问题,根据题目要求可写出如下的假设:

  H0:u1=u2,                      H1:u1/=u2(u1不等于u2)

 由于两个样本不独立,通常的做法是将两个样本对应数据最差,把两个正态总体均值的比较检验转化为单个正态总体均值的检验,然后就可用ttest函数进行检验

 上面的假设改写为如下假设

  H0:u=u1-u2=0,                   H1:u/=0(u不等于0)

然后调用ttest函作配对样本的比较 t 检验

调用格式

[h,p,muci,stats]=ttest(x,y,Alpha,Tail)

x,y为输入的观测样本观测值向量,其它参数与ttest一致

%样本1

x=[80.3,68.6,72.2,71.5,72.3,70.1,74.6,73.0,58.7,78.6,85.6,78.0];

%样本2

y=[74.0,71.2,66.3,65.3,66.0,61.6,68.8,72.6,65.7,72.6,77.1,71.5];

Alpha=0.05;     %显著性水平

tail='both';    %尾部类型为双侧

%调用ttest函数作配对样本的比较t检验

%返回变量h,检验的p值,均值差的置信区间muci,结构体变量stats

[h,p,muci,stats]=ttest(x,y,Alpha,tail)

h =

     1

p =

    0.0105

muci =

    1.2050    7.2617

stats =

    tstat: 3.0768

       df: 11

       sd: 4.7662

返回值p=0.0105<0.05,所以在显著性水平a=0.05下拒绝原假设H0:u=u1-u2=0,认为两组评酒员的评分有显著差异。此时两总体均值差的置信水平为95%的置信区间为

[  1.2050    7.2617],该区间不包含0,说明第一组评酒员的评分明显高于第二组评酒员的评分。

​4 总体均值未知时的单个正态总体方差的卡方检验

例:

化肥厂用自动包装机包装化肥,某日测得9包化肥的质量如下:

49.4  50.5  50.7  51.7  49.8  47.9  49.2  51.4  48.9 

设每包化肥的质量服从正态分布,是否可以认为每包化肥的质量的方差等于1.5?取显著性水平a=0.05。

分析:这是总体均值未知时的单个正态总体方差的检验,根据题目要求可以写出如下假设:

H0:a^2=a0^2=1.5,                      H1:a^2/=a0^2(a^2不等于a0^2)

MATLAB统计工具箱中的vartest函数可用来做总体均值未知时的单个正态总体方差的检验

调用格式:

[h,p,varci,stats]=vattest(x,v,alpha,tail)

输出参数

x:样本观测值向量

v:原假设中的方差

alpha:显著性水平

tail:尾部类型

输出参数

varci为方差的置信区间,其他都一样

%定义样本观测值向量

x=[49.9,50.5,50.7,51.7,49.8,47.9,49.2,51.4,48.9];

var0=1.5;    %原假设中的方差

Alpha=0.05;  %显著性水平

tail='both'; %尾部类型为双侧

%调用vartest函数作单个正态总体方差的双侧检验

%返回值变量h,检验值p,方差的置信区间varci,结构体变量stats

[h,p,varci,stats]=vartest(x,var0,Alpha,tail)

h =

     0

p =

    0.8800

varci =

    0.6787    5.4594

stats =

    chisqstat: 7.9333    %卡方检验统计量的观测值

           df: 8                     %卡方检验统计量的自由度

返回值p=0.88>0.05,所以在显著性水平a=0.05下接受原假设H0:a^2=a0^2=1.5,认为每包化肥的质量的方差等于1.5,此时总体方差a^2的置信水平为95%的置信区间为[0.6787    5.4594]

5 总体均值未知时的两个正态总体方差的比较F检验

甲、乙两台机床加工同一种产品,从这两台机床加工的产品中随机抽取若干件,测得产品直径为:

  甲机床:20.1,20.0,19.3,20.6,20.2,19.9,20.0,19.9,19.1,19.9

  乙机床:18.6, 19.1,20.0,20.0,20.0,19.7,19.9,19.6,20.2

  设甲、乙两机床加工的产品的直径分布服从正态分布N(u1,a1^2)和N(u2,a2^2),试比较甲、乙两台机床加工的产品的直径方差是否有显著性差异,取显著性水平a=0.05

分析:这是总体均值未知时的两个正态总体方差的比较检验,根据题目要求可写出如下假设:

  H0:a1^2=a2^2,                         H1:a1^2/=a2^2(a1^2不等于a2^2)

MATLAB统计工具箱中的vartest2函数可以用来做总体均值未知时的两个正态总体方差的比较检验

调用格式:

[h,p,varci,stats]=vattest2(x,y,alpha,tail)

输入参数:

x,y为样本观测值向量

alpha:显著性水平

tail:尾部类型

返回值与vartest函数一致,置信区间varci是a1^2/a2^2的置信区间

%定义甲机床的样本观测值向量

x=[20.1,20.0,19.3,20.6,20.2,19.9,20.0,19.9,19.1,19.9];

%定义乙机床的样本观测值向量

y=[18.6, 19.1,20.0,20.0,20.0,19.7,19.9,19.6,20.2];

Alpha=0.05;               %显著性水平

tail='both';              %尾部类型为双侧

[h,p,varci,stats]=vartest2(x,y,Alpha,tail)

h =

     0

p =

    0.5798

varci =

    0.1567    2.8001

stats =

    fstat: 0.6826    %F检验统计量的观测值

      df1: 9               %F检验统计量的分子自由度

      df2: 8              %F检验统计量的分母自由度

返回的检验的p值p=0.5789>0.05,所以在显著性水平a=0.05下接受原假设H0:a1^2=a2^2,认为甲乙两台机床加工产品的直径的方差相等。此时a1^2/a2^2的置信水平为95%的置信区间为[  0.1567    2.8001]

6 检验功效与样本容量的计算

 (1)假设检验的两类错误

   假设检验可能会犯两类错误:第一类错误是本来原假设H0正确,却由于抽样的原因拒绝了H0,这类错误又称之为“拒真”错误,犯第一类错误的概率记为a;第二类错误是本来H0不正确,却由于抽样的原因接受了H0,这类错误又称为“取伪”错误,犯第二类错误的概率记为b,假设检验需要控制犯两类错误的概率均在一个较低的水平,而实际上在样本容量固定的前提下,降低a的同时会增加b,,降低b的同时a也会增加,为了平衡这一矛盾,提出了显著性检验的概念,也就是在控制犯第一类错误的概率不超过某一水平(即显著性水平)的前提下去制约b。

 (2)检验功效与样本容量的关系

 原假设不成立的条件下,拒绝原假设的概率(即1-b)称为检验的功效,它反映了一个显著性检验能够区分原假设和备择假设的能力,通常情况下,应使得检验功效达到一个较高的水平(例如90%以上)。

 当给定样本容量时可以求得检验功效,样本容量越大,检验功效越高,即区分原假设与备择假设的能力越强;反之,给定检验功效,也可求出样本容量

(3) 调用sampsizepwr函数求样本容量和检验功效

 MATLAB统计工具箱中提供了sampsizepwr函数,用来求样本容量和检验功效,其调用格式如下:

   <1> n=sampsizepwr(testtype,p0,p1)

    对于不同类型的双侧检验,在显著性水平0.05下,求使得检验功效不低于90%的最小的样本容量n。输入参数p0和p1分别用来指定原假设和备择假设中的参数值,testtype用来指定检验类型,是字符串变量,其取值如下表

testtype参数取值                       说明                                                               备注

‘z’                                          标准差已知时                             p0是形如[u0,a0]的向量,其元素分别为原假设对应的总体均值

                                          正态总体均值的检验                               和标准差。p1是备择假设对应的总体均值


‘t’                                       标准差未知正态总体                       p0是形如[u0,a0]的向量,其元素分别为原假设对应的总体均值

                                           均值的检验                                                和样本标准差,p1是备择假设对应的总体均值


‘var’                                     正态总体的方差检验                             p0和p1分别是原假设和备择假设对应的总体方差


‘p’                                   二项分布的比例(成功概率)检验            p0和p1分别是原假设和备择假设对应的参数值

当参数p1为向量时,输出参数n是与p1等长的向量


<2>n=sampsizepwr(testtype,p0,p1,power)

        求样本容量,用power参数指定参数功效,其值介于0-1之间

 <3>power=sampsizepwr(testtype,p0,p1,[ ],n)

   给定样本容量n,求检验功效power

 <4>p1=sampsizepwr(testtype,p0,[  ],power,n)

  给定样本容量n和检验功效power,求备择假设中的参数p1.

 <5> [......]=sampsizepwr(.....,n,param1,val1,param2,val2,......)

  用可选的成对出现的参数名和参数值控制计算结果,可用的参数名与参数值如下

参数名                      参数值及说明

‘alpha’                   检验的显著性水平,取值0--1之间,默认值0.05


‘tail’                        尾部类型变量,用来指定备择假设的形式,  

                                   可取值‘both’,‘right’,‘left’


例:设需要对某一正态总体的均值进行如下检验:

         H0:u=100,                H1:u>104

  已知总体标准差a=6.58,取显著性水平=0.05,同时要求检验功效达到90%以上,求所需要的样本容量

  调用sampsizepwr函数求解


mu0=100;       %原假设对应的总体均值
sigma0=6.58;   %原假设对应的标准差
mu1=104;       %备择假设对应的总体均值
pow=0.9;       %检验功效

%调用sampsizepwr函数求样本容量
 n=sampsizepwr('z',[mu0,sigma0],mu1,pow,[],'tail','right')

n =

    24

要检验功效达到90%以上,需要的样本容量至少为24,如果指定不同的样本容量,还可求得相应的检验功效


n=1:60;   %指定不同的样本容量,1,2,....60
mu0=100;  %原假设对应的总体均值
sigma0=6.58;  %原假设对应的标准差
mu1=104;      %备择假设对应的总体均值
%调用sampsizepwr函数求不同样本容量对应的检验功效
pow=sampsizepwr('z',[mu0,sigma0],mu1,[],n,'tail','right');
plot(n,pow,'k');   %绘制检验功效与样本容量关系曲线
xlabel('样本容量');
ylabel('检验功效');

由图可知,随着样本容量的增大, 检验功效逐渐趋向于1.

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016


原创文章 100 获赞 339 访问量 56万+

猜你喜欢

转载自blog.csdn.net/MATLAB_matlab/article/details/55802793