一、分布参数估计的MATLAB函数
二、常见分布的参数估计
【例10.1-1】从某厂生产的滚珠中随机抽取10个,测得滚珠的直径(单位:mm)如下: 15.14 14.81 15.11 15.26 15.08 15.17 15.12 14.95 15.05 14.87 若滚珠直径服从正态分布N(μσ2),其中,μσ未知,求,μσ的最大似然估计和置信水平为90%的置信区间。
>> x = [15.14 14.81 15.11 15.26 15.08 15.17 15.12 14.95 15.05 14.87]; >> [muhat,sigmahat,muci,sigmaci]=normfit(x,0.1) muhat = 15.0560 sigmahat = 0.1397 muci = 14.9750 15.1370 sigmaci = 0.1019 0.2298 >> [mu_sigma,mu_sigma_ci]=mle(x,'distribution','norm','alpha',0.1) mu_sigma = 15.0560 0.1325 mu_sigma_ci = 14.9750 0.1019 15.1370 0.2298
【例】调用normrnd函数生成100个服从均值为10,标准差为4的正态分布的随机数,然后调用mle函数求均值和标准差的最大似然估计。
>> x = normrnd(10,4,100,1); >> [phat,pci] = mle(x) phat = 9.4920 3.7598 pci = 8.7422 3.3178 10.2418 4.3897 >> [phat,pci] = mle(x,'distribution','normal') phat = 9.4920 3.7598 pci = 8.7422 3.3178 10.2418 4.3897 >> [phat,pci] = mle(x,'pdf',@normpdf,'start',[0,1]) phat = 9.4920 3.7598 pci = 8.7551 3.2388 10.2289 4.2809 >> [phat,pci] = mle(x,'cdf',@normcdf,'start',[0,1]) phat = 9.4920 3.7598 pci = 8.7422 3.3178 10.2418 4.3897
三、自定义分布的参数估计
ztest函数 调用格式:
h = ztest(x,m,sigma)
h = ztest(...,alpha)
h = ztest(...,alpha,tail)
h = ztest(...,alpha,tail,dim)
[h,p] = ztest(...)
[h,p,ci] = ztest(...)
[h,p,ci,zval] = ztest(...)
【例】某切割机正常工作时,切割的金属棒的长度服从正态分布N(100,4). 从该切割机切割的一批金属棒中随机抽取15根,测得它们的长度(单位:mm)如下: 97 102 105 112 99 103 102 94 100 95 105 98 102 100 103. 假设总体方差不变,试检验该切割机工作是否正常,即总体均值是否等于100mm?取显著性水平α=0.05.
%双侧检验
>> x = [97 102 105 112 99 103 102 94 100 95 105 98 102 100 103]; >> [h,p,muci,zval] = ztest(x,100,2,0.05) h = 1 p = 0.0282 muci = 100.1212 102.1455 zval = 2.1947
%单侧检验
>> [h,p,muci,zval] = ztest(x,100,2,0.05,'right') h = 1 p = 0.0141 muci = 100.2839 Inf zval = 2.1947
二、总体标准差未知时的单个正态总体均值的t检验
ttest函数
调用格式:
h = ttest(x)
h = ttest(x,m)
h = ttest(x,y)
h = ttest(...,alpha)
h = ttest(...,alpha,tail)
h = ttest(...,alpha,tail,dim)
[h,p] = ttest(...)
[h,p,ci] = ttest(...)
[h,p,ci,stats] = ttest(...)
【例】化肥厂用自动包装机包装化肥,某日测得9包化肥的质量(单位:kg)如下: 49.4 50.5 50.7 51.7 49.8 47.9 49.2 51.4 48.9 设每包化肥的质量服从正态分布,是否可以认为每包化肥的平均质量为50kg?取显著性水平α=0.05.
>> x = [49.4 50.5 50.7 51.7 49.8 47.9 49.2 51.4 48.9]; >> [h,p,muci,stats] = ttest(x,50,0.05) h = 0 p = 0.8961 muci = 48.9943 50.8945 stats = tstat: -0.1348 df: 8 sd: 1.2360
三、总体标准差未知时的两个正态总体均值的比较 t检验
1. 两独立样本的比较t检验
ttest2函数
调用格式:
h = ttest2(x,y)
h = ttest2(x,y,alpha)
h = ttest2(x,y,alpha,tail)
h = ttest2(x,y,alpha,tail,vartype)
h = ttest2(x,y,alpha,tail,vartype,dim)
[h,p] = ttest2(...)
[h,p,ci] = ttest2(...)
[h,p,ci,stats] = ttest2(...)
2. 配对样本的比较t检验
调用格式:
h = ttest(x,y)
h = ttest(...,alpha)
h = ttest(...,alpha,tail)
h = ttest(...,alpha,tail,dim)
[h,p] = ttest(...)
[h,p,ci] = ttest(...)
[h,p,ci,stats] = ttest(...)
四、总体均值未知时的单个正态总体方差的卡方检验
vartest函数
调用格式:
H = vartest(X,V)
H = vartest(X,V,alpha)
H = vartest(X,V,alpha,tail)
[H,P] = vartest(...)
[H,P,CI] = vartest(...)
[H,P,CI,STATS] = vartest(...)
[...] = vartest(X,V,alpha,tail,dim)
五、总体均值未知时的两个正态总体方差的比较 F 检验
vartest2函数
调用格式:
H = vartest2(X,Y)
H = vartest2(X,Y,alpha)
H = vartest2(X,Y,alpha,tail)
[H,P] = vartest2(...)
[H,P,CI] = vartest2(...)
[H,P,CI,STATS] = vartest2(...)
[...] = vartest2(X,Y,alpha,tail,dim)
第三节 常用非参数检验
一、游程检验
作用:用来检验来自于同一总体样本数据是否随机
1. 游程的定义
以时间顺序或其他顺序排列的有序数列中,具有相同的事件或符号的连续部分称为一个游程,通常用R表示游程总个数。
2. 游程检验基本原理
求出样本中位数,将样本观测值分为大于中位数和小于中位数的两个部分。用1,0(或+ -)交错形成的序列的游程个数来检验样本是否随机。
在固定样本量之下,如果游程个数过少,说明0和1相对比较集中,如果游程过多,说明0和1交替周期特征明显,这都不符合序列随机性的要求。也就是说游程个数过多或过少都应拒绝原假设。
3. 游程检验的MATLAB函数
runstest函数
调用格式:
h = runstest(x)
h = runstest(x,v)
h = runstest(x,'ud')
h = runstest(...,param1,val1,param2,val2,...)
[h,p] = runstest(...)
[h,p,stats] = runstest(...)
二、符号检验
作用:用来检验中位数是否等于给定常数。
1. 符号检验的MATLAB函数
调用格式:
[p,h,stats] = signtest(x)
[p,h,stats] = signtest(x,m,param1,val1,…)
[p,h,stats] = signtest(x,y,param1,val1,…)
三、Wilcoxon符号秩检验
作用:用来检验中位数是否等于给定常数。
1. Wilcoxon符号秩检验的MATLAB函数
调用格式:
[p,h,stats] = signrank(x)
[p,h,stats] = signrank(x,m,param1,val1,…)
[p,h,stats] = signrank(x,y,param1,val1,…)
四、Mann-Whitney秩和检验
作用:对两总体均值作比较检验。
Mann-Whitney秩和检验的MATLAB函数
调用格式:
[p,h,stats] = ranksum(x,y,param1,val1,…)
五、分布的检验
1、卡方拟合优度检验
当统计量的观测值超过某个临界值时可认为数据不服从理论分布。
调用格式:
h = chi2gof(x)
[h,p] = chi2gof(...)
[h,p,stats] = chi2gof(...)
[...] = chi2gof(X,'Name',value)
2、Kolmogorov-Smirnov检验
调用格式:
h = kstest(x)
h = kstest(x,CDF)
h = kstest(x,CDF,alpha)
h = kstest(x,CDF,alpha,type)
[h,p,ksstat,cv] = kstest(...)
调用格式:
h = kstest2(x1,x2)
h = kstest2(x1,x2,alpha,type)
[h,p] = kstest2(...)
[h,p,ks2stat] = kstest2(...)
调用格式:
h = lillietest(x)
h = lillietest(x,alpha)
h = lillietest(x,alpha,distr)
[h,p] = lillietest(...)
[h,p,kstat] = lillietest(...)
[h,p,kstat,critval] = lillietest(...)
[h,p,...] = lillietest(x,alpha,distr,mctol)