主要内容

选择样本大小

此示例显示如何确定执行统计测试所需的样本数量或观察数。它说明了一个简单问题的样本大小计算,然后显示如何使用Sampsizepwr.函数计算功率和样本大小为两个更现实的问题。最后,它说明了使用统计和机器学习工具箱™函数来计算测试所需的样本量Sampsizepwr.功能不支持。万博1manbetx

用已知的标准偏差测试正常平均值,单面

只是为了介绍一些概念,让我们考虑一个不切实际的简单的例子,我们想要测试均值,我们知道标准偏差。我们的数据是连续的,可以用正常分布进行建模。我们需要确定样本大小,以便我们可以区分100的平均值和110的平均值。我们知道标准差是20。

当我们进行统计检验时,我们通常检验a零假设针对一个替代假设。我们找到一个测试统计数据,并在零假设下看其分布。如果我们观察到一个不寻常的价值,如果零假设是真的,那么如果是真的,那么就没有比5%发生的可能性,那么我们拒绝了零假设,有利于替代方案。(5%的概率被称为意义程度测试。)如果该值并不罕见,我们不会拒绝NULL假设。

在这种情况下,测试统计T是样本意味着。在零假设下,它具有100的平均值和20 / SQRT(n)的标准偏差。首先让我们看一下固定的样本大小,说n = 16。如果T处于阴影区域中,我们将拒绝零假设,这是其分布的上尾。这使得这是一个片面的测试,因为如果T处于较低的尾部,我们不会拒绝。这种阴影区域的截止为1.6均匀的标准偏差。

RNG(0,'twister');mu0 = 100;sig = 20;N = 16;α= 0.05;参看= 1α;截断= norminv(conf, mu0, sig/sqrt(N));X = [linspace(90,cutoff), linspace(cutoff,127)];y = normpdf (x, mu0团体/√(N));h1 =情节(x, y); xhi = [cutoff, x(x>=cutoff)]; yhi = [0, y(x>=cutoff)]; patch(xhi,yhi,'B');标题('样本的分布意味着,n = 16');Xlabel(样本均值的);ylabel(“密度”);文字(96,4.01,Sprintf('拒绝如果平均值>%。4G \ nprob = 0.05',截止),'颜色''B');

这是T在零假设下的表现,那么在另一种假设下呢?备选分布的均值是110,用红色曲线表示。

mu1 = 110;y2 = normpdf(x,mu1,sig / sqrt(n));h2 =线(x,y2,'颜色''r');yhi = [0,y2(x> =截止)];补丁(Xhi,Yhi,'r''Facealpha',0.25);p = 1  -  normcdf(截止,mu1,sig / sqrt(n));文字(115,.06,Sprintf('拒绝如果t>%。4g \ nprob =%.2g',截止,P),'颜色', (1 0 0));传奇((h1 h2),'零假设'备择假设的);

如果备选项为真,则拒绝原假设的可能性更大。这正是我们想要的。如果我们看累积分布函数(cdf)而不是密度(pdf),更容易形象化。我们可以直接从这个图中读出概率,而不必计算面积。

ynull = normcdf (x, mu0团体/√(N));yalt = normcdf (x, mu1团体/√(N));ynull h12 =情节(x,“b -”,x,yalt,'r-');ZVAL = NORMINV(CONF);截止= mu0 + zval * sig / sqrt(n);线([90,截止,截止],[conf,conf,0],“线型”':');msg = sprintf(‘截止时间= 100% + %。2g \\times 20 / \\surd{n}',zval);文字(截止,.15,msg,'颜色''B');文字(min(x),conf,sprintf('%g %% test',100 * alpha),'颜色''B'......“verticalalignment”'最佳')palt = normcdf(截止,mu1,sig / sqrt(n));线([90,截止],[Palt,Palt],'颜色''r'“线型”':');文字(91,Palt + .02,Sprintf('力量是1  - %。2g =%.2g',帕特,1宫),'颜色', (1 0 0));传奇(H12,'零假设'备择假设的);

该图显示当n = 16时,在n = 16时获得两个不同mu值的显着统计(拒绝零假设)的概率。

功率功能定义为当备选项为真时,拒绝原假设的概率。这取决于备选项的值和样本容量。我们画出幂函数(即1 - cdf)作为N的函数,选择值固定在110。我们将选择N来达到80%的幂。这张图显示我们大约需要N=25。

DesiredPower = 0.80;Nvec = 1:30;cutoff = mu0 + norminv(conf)*sig./sqrt(Nvec);power = 1 - normcdf(cutoff, mu1, sig./sqrt(Nvec));情节(NVEC,Power,'bo-',[030],[潜气功率所需的功率],'k:');Xlabel('n =样本大小') ylabel ('力量') 标题('替代方案的功率功能:\ mu = 110'

在这个非常简单的例子中,有一个公式来直接计算所需的值以获得80%的功率:

Mudiff = (mu1 - mu0) / sig;N80 = ceil(((norminv(1-DesiredPower)-norminv(conf)) / mudiff)^2))
歌曲到手机上= 25

为了验证这是可行的,让我们做一个蒙特卡罗模拟,生成400个大小为25的样本在均值为100的零假设和均值为110的备选假设下。如果我们检验每个样本的均值是否为100,那么第一组中有5%和第二组中有80%是显著性的。

nsamples = 400;samplenum = 1: nsamples;N = 25;nsamples h0 = 0 (1);h1 = h0;j = 1:nsamples z0 = normrnd(mu0,sig,n,1);H0(j)= ztest(z0,mu0,sig,alpha,“对”);z1 = normrnd(mu1,sig,n,1);H1(j)= ztest(z1,mu0,sig,alpha,“对”);结束p0 = cumsum(h0)./ samplenum;p1 = cumsum(h1)./ samplenum;绘图(Samplenum,P0,“b -”samplenum p1,'r-')包含('样品号码') ylabel ('比例重大') 标题(“功率计算的验证”)传说('零假设'备择假设的“位置”'东方的'

测试正常平均值,与未知的标准偏差,双面

假设我们不知道标准差,我们想进行双侧检验,也就是拒绝零假设的检验样本均值是高是低。

测试统计是T统计数据,这是样本均值与所测试的平均值之间的差异,除以平均值的标准误差。在零假设下,这具有学生的T分布,具有N-1自由度。在替代假设下,分布是非中心地区的非中心参数等于真正平均值与所测试的平均值之间的归一化差异。

对于这个双面测试,我们必须同样地分配误差下的误差的5%的几率,并且如果测试统计论在任一方向过极端,则拒绝。我们还必须在任何其他方面考虑两条尾巴。

N = 16;df = n - 1;α= 0.05;参看= 1α;cutoff1 = tinv(α/ 2,df);cutoff2 = tinv(1α/ 2,df);X = [linspace(-5,cutoff1), linspace(cutoff1,cutoff2),linspace(cutoff2,5)];y = tpdf (x, df);h1 =情节(x, y);xlo = [x (x < = cutoff1) cutoff1]; ylo = [y(x<=cutoff1),0]; xhi = [cutoff2,x(x>=cutoff2)]; yhi = [0, y(x>=cutoff2)]; patch(xlo,ylo,'B');补丁(Xhi,Yhi,'B');标题('T统计数据分布,n = 16');Xlabel(“t”);ylabel(“密度”);文本(2.5,0。,sprintf ('拒绝如果t>%。4g \ nprob = 0.025',cutoff2),'颜色''B');文字(-4.5,.05,Sprintf('如果t <%拒绝。4g \ nprob = 0.025'cutoff1),'颜色''B');

我们可以把它看作是的函数,而不是在零假设和一个单独的替代值下检验幂函数。无论向哪个方向,当远离零假设值时,幂都增加。我们可以使用Sampsizepwr.函数来计算功率。对于功率计算,我们需要为标准偏差指定一个值,我们认为大约是20。这是样本容量N=16时幂函数的图像。

N = 16;x = linspace(90,127);power = sampsizepwr(“t”20 [100], x, [], N);情节(x,权力);Xlabel('真的意思') ylabel ('力量') 标题(' N=16的幂函数'

当平均值为110时,我们希望电源为80%。根据该图,我们的电源小于50%,样本量为n = 16。什么样的样本大小将给出我们想要的力量?

N = sampsizepwr (“t”,[100 20],110,0.8)
n = 34.

我们需要大约34的样本量。与前面的例子相比,我们需要采取9个额外的观察结果,以允许双向检验,并弥补不知道真正的标准偏差。

我们可以画出不同N值的幂函数的曲线图。

nvec = 2:40;power = sampsizepwr(“t”, 110年20 [100],[],Nvec);情节(NVEC,Power,'bo-',[0 40],[潜气功率所需的功率],'k:');Xlabel('n =样本大小') ylabel ('力量') 标题('替代方案的功率功能:\ mu = 110'

我们可以进行类似于早期的模拟,以验证我们需要我们需要的电力。

nsamples = 400;samplenum = 1: nsamples;N = 34;nsamples h0 = 0 (1);h1 = h0;j = 1:nsamples z0 = normrnd(mu0,sig,n,1);H0(j)= ttest(z0,mu0,alpha);z1 = normrnd(mu1,sig,n,1);H1(J)= TTEST(Z1,MU0,alpha);结束p0 = cumsum(h0)./ samplenum;p1 = cumsum(h1)./ samplenum;绘图(Samplenum,P0,“b -”samplenum p1,'r-')包含('样品号码') ylabel ('比例重大') 标题(“功率计算的验证”)传说('零假设'备择假设的“位置”'东方的'

假设我们能够采取50的样本大小。大概我们检测替代价值Mu = 110的力量将大于80%。如果我们以80%保持电力,我们可以检测到哪些替代方案?

mu1 = sampsizepwr(“t”20[100],[]。8,50)
mu1 = 108.0837

测试比例

现在让我们转向确定区分两个比例所需的样本大小的问题。假设我们正在抽出一群人,其中约30%的人倾向于一些候选人,我们希望抽出足够的人,以便将这个值与33%区分开来。

这里的想法与以前相同。在这里,我们可以使用样本计数作为我们的测试统计信息。这计数具有二项份分布。对于任何示例大小,我们可以计算拒绝禁止假假设P = 0.30的截止。例如,对于n = 100,如果样本计数大于计算的截止值,我们将拒绝NULL假设,如下所示:

n = 100;α= 0.05;p0 = 0.30;p1 = 0.33;截止=贝诺纳(1-alpha,n,p0)
截止= 38.

与二项式分布的复杂性来自,因为它是离散的。超出截止值的概率并不是5%:

1 - binocdf(cutoff, N, p0)
ans = 0.0340

再一次,让我们计算一个样本容量范围内P=0.33的幂次。我们将使用单边(右尾)测试,因为我们只对大于30%的替代值感兴趣。

nvec = 50:50:2000;power = sampsizepwr('P',p0,p1,[],nvec,'尾巴'“对”);情节(NVEC,Power,'bo-',[02000],[潜气功率所需的功率],'k:');Xlabel('n =样本大小') ylabel ('力量') 标题('替代方案的功率功能:P = 0.33'

我们可以使用Sampsizepwr.函数要求功率为80%所需的示例大小。

大约= sampsizepwr('P'0.80 p0, p1, [],'尾巴'“对”
警告:值N>200是近似值。将幂作为N的函数绘制出来可以显示出具有所需幂的较低的N值。approxN = 1500

一个警告消息告诉我们答案只是近似的。如果我们观察不同样本容量的幂函数,我们可以看到函数通常是增加的,但由于二项分布是离散的,所以不规则。让我们看看在1470到1480的样本容量范围内,p=0.30和p=0.33时拒绝零假设的概率。

子图(3,1,1);nvec = 1470:1480;power = sampsizepwr('P',p0,p1,[],nvec,'尾巴'“对”);情节(NVEC,Power,'ro-',[min(nvec),max(nvec)],[常见的电力所需的功率],'k:');ylabel(Sprintf(的概率(T >截止)\ nif p = 0.33 ')) h_gca = gca;h_gca。XTickLabel ='';ylim([78,.82]);子图(3,1,2);alf = sampsizepwr('P'Nvec p0, p0, [],'尾巴'“对”);情节(Nvec,阿尔夫,'bo-'[min (Nvec), max (Nvec)],[αα],'k:');ylabel(Sprintf('prob [t>截止] \ nif p = 0.30')) h_gca = gca;h_gca。XTickLabel ='';ylim([04,.06]);子图(3,1,3);截止=贝诺纳(1-alpha,nvec,p0);情节(NVEC,截止,'去-');Xlabel('n =样本大小') ylabel ('隔断'

从图中可以看出,幂函数曲线(顶部图)不仅不规则,而且在一定样本量下呈下降趋势。为了保持显著性水平(中间水平)不大于5%,有必要对这些样本大小增加截止值(底部地块)。我们可以在这个范围内找到一个更小的样本量,使所需的功率达到80%:

MIN(NVEC(POWER> = 0.80))
ans = 1478

测试相关

在我们考虑到到目前为止的例子中,我们能够弄清楚测试统计数据的截止,以实现一定的意义水平,并计算在替代假设下超出该截止的可能性。对于我们的最后一个例子,让我们考虑一个问题,这不是那么容易。

假设我们可以从两个变量X和Y中取样本,我们想知道我们需要多少样本来测试它们是否不相关而不是它们的相关性高达0。4。虽然可以通过将样本相关性转化为t分布来计算样本相关性的分布,但我们可以使用一种方法即使在无法计算检验统计量分布的问题中我们也可以使用这种方法。

对于给定的样本容量,我们可以使用蒙特卡罗模拟来确定一个近似的截断值来检验相关性。让我们做一个大型的模拟运行,以便我们能准确地得到这个值。我们从25个样本开始。

nsamples = 10000;N = 25;α= 0.05;参看= 1α;r = zeros(1,nsamples);j = 1:nsamples xy = normrnd(0,1,n,2);r(j)= cor(xy(:,1),xy(:,2));结束截止=分位数(r, conf)
截止= 0.3372

然后我们可以在替代假设下产生样本,并估计测试的力量。

nsamples = 1000;μ= [0;0);Sig = [1 0.4;0.4 - 1];r = zeros(1,nsamples);j = 1:nsamples xy = mvnrnd(mu,sig,n);r(j)= cor(xy(:,1),xy(:,2));结束(电力、powerci) = binofit(和(r >截止),nsamples)
功率= 0.6470 powerci = 0.6165 0.6767

我们估计了65%的权力,我们有95%的信心,真正的价值在62%和68%之间。要获得80%的力量,我们需要更大的样本大小。我们可能会尝试增加n到50,估计该样本大小的截止值,并重复功率仿真。

nsamples = 10000;n = 50;α= 0.05;参看= 1α;r = zeros(1,nsamples);j = 1:nsamples xy = normrnd(0,1,n,2);r(j)= cor(xy(:,1),xy(:,2));结束nsamples = 1000; / /分位数μ= [0;0);Sig = [1 0.4;0.4 - 1];r = zeros(1,nsamples);j = 1:nsamples xy = mvnrnd(mu,sig,n);r(j)= cor(xy(:,1),xy(:,2));结束(电力、powerci) = binofit(和(r >截止),nsamples)
截止= 0.2315功率= 0.8990 PowerCi = 0.8786 0.9170

这种样本大小比我们的目标达到80%的尺寸。我们可以继续尝试这种方式,试图找到小于50的样本大小,这将满足我们的要求。

结论

统计和机器学习工具箱中的概率函数可用于确定在假设测试中实现所需功率水平所需的样本大小。在一些问题中,样本大小可以直接计算;在其他人中,有必要在找到右值之前搜索一系列样本尺寸。随机数生成器可以帮助验证满足所需的功率,也可用于在替代条件下研究特定测试的功率。