主要内容

选择样本量

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

测试已知标准偏差的正态平均值,单侧

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

当我们进行统计检验时,我们通常检验a无效假设针对一个备择假设.我们找到一个检验统计量T,看看它在零假设下的分布。如果我们观察到一个异常值,如果零假设成立,这个异常值发生的概率小于5%那么我们就拒绝零假设,而选择另一个。(5%的概率被称为显著性水平如果该值不异常,我们不会拒绝无效假设。

在这种情况下,检验统计量T是样本平均值。在零假设下,它的平均值为100,标准偏差为20/sqrt(N)首先让我们看一个固定的样本大小,比如N=16。如果T在阴影区域,我们将拒绝无效假设,这是其分布的上尾。这使得这是一个单侧检验,因为如果T在下尾,我们不会拒绝。这个阴影区域的截止值是平均值以上的1.6个标准偏差。

rng(0,“龙卷风”);mu0 = 100;sig = 20;N = 16;α= 0.05;参看= 1α;cutoff = 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(样本均值的); 伊拉贝尔(“密度”); 文本(96.01,sprintf)('如果平均值大于%.4g,则拒绝\n平均值=0.05',截止),“颜色”,“b”);

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

mu1 = 110;y2 = normpdf (x, mu1团体/√(N));h2 =线(x, y2,“颜色”,“r”); yhi=[0,y2(x>=截止值)];补丁(xhi,yhi,“r”,“FaceAlpha”, 0.25);P = 1 - normcdf(cutoff,mu1,sig/根号(N));文本(115 .06点sprintf (“拒绝如果T > %。4 g \ 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(设计);cutoff = mu0 + zval * sig /根号(N);线((90年,截止截止),(参看参看0),“线型”,“:”);味精= sprintf ('截止值= 100 + %。2g \\乘以20 / \\surd{n}',zval);文本(截止,.15,msg,“颜色”,“b”);文本(min (x)、sprintf (“%g%%测试”100 *α),“颜色”,“b”,...“verticalalignment”,“顶级”)palt=正常CDF(截止,mu1,sig/sqrt(N));行([90,截止],[palt,palt],“颜色”,“r”,“线型”,“:”);文本(91,palt+.02,sprintf('功率为1-%.2g=%.2g'、palt 1-palt),“颜色”,[1 0 0]); 图例(h12,“零假设”,备择假设的);

这张图显示了当N=16时,对于两个不同的mu值,获得显著统计量(拒绝零假设)的概率。

这个幂函数定义为当备择为真时拒绝零假设的概率。它取决于备选方案的价值和样本量。我们将把幂(即1减去cdf)作为N的函数画出来,将其固定为110。我们将选择N来达到80%的乘方。从图中可以看出,我们需要N=25。

DesiredPower = 0.80;Nvec = 1:30;cutoff = mu0 + norminv(conf)*sig./sqrt(Nvec);电源= 1 - normcdf(cutoff, mu1, sig./sqrt(Nvec));情节(Nvec、电力、“bo - - - - - -”, 30[0]、[DesiredPower DesiredPower),凯西:”); xlabel(‘N=样本量’) ylabel (“权力”)标题('替代方案的功率函数:\mu = 110')

在这个非常简单的例子中,有一个公式可以直接计算所需的值,从而得到80%的幂:

Mudiff = (mu1 - mu0) / sig;N80 = ceiv (((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) =中兴通讯(Z0 mu0,团体,α,“对”);Z1 = normrnd (mu1,团体,N, 1);h1 (j) =中兴通讯(Z1、mu0团体,α,“对”);结束P0 = cumsum(h0) ./ samplenum;P1 = cumsum(h1) ./ samplenum;情节(samplenum p0,“b -”samplenum p1,“r-”)包含(的样本数量) ylabel (的比例显著)标题(“功率计算的验证”)传说(“零假设”,备择假设的,“位置”,“东”)

检验具有未知标准偏差的正态平均数,双面

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

检验统计量是一个t统计量,它是样本均值与被检验均值之间的差,除以均值的标准误差。在零假设下,它有N-1个自由度的学生t分布。在备择假设下,该分布是非中心t分布,其非中心参数等于真均值与被测均值的归一化差。

对于这种双面检验,我们必须将零假设下的误差的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”); 伊拉贝尔(“密度”);文本(2.5,0。,sprintf ('如果t>%.4g\n预测值=0.025,则拒绝'cutoff2),“颜色”,“b”);文本(-4.5,0。,sprintf (如果t < %的拒绝。4 g \ nProb = 0.025 'cutoff1),“颜色”,“b”);

我们可以把它看成是mu的函数而不是在零假设下的幂函数。当mu在任意方向远离零假设值时,幂会增加。我们可以使用sampsizepwr命令功能,用于计算功率。对于功率计算,我们需要指定一个标准偏差的值,我们认为它大约是20。这是样本容量N=16时的幂函数图。

N = 16;x = linspace (90127);功率= sampsizepwr (“t”20 [100], x, [], N);情节(x,权力);包含(“真正的意思是“) ylabel (“权力”)标题(' N=16的幂函数')

当平均值为110时,我们需要80%的幂。根据这张图,当样本量为N=16时,我们的幂小于50%。什么样的样本量会给出我们想要的幂?

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

我们需要34个样本。与前面的例子相比,我们需要额外的9个观察来允许一个双边检验,以弥补不知道真实的标准偏差。

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

Nvec = 2;功率= sampsizepwr (“t”, 110年20 [100],[],Nvec);情节(Nvec、电力、“bo - - - - - -”, 40 [0], [DesiredPower DesiredPower),凯西:”); 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)=测试(Z0,mu0,alpha);Z1=normrnd(mu1,sig,N,1);h1(j)=测试(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%区分开来。

这里的想法和以前一样。这里我们可以使用样本数作为检验统计量。这个计数是二项分布。对于任何样本量N,我们都可以计算拒绝原假设的截止时间P=0.30。例如,对于N=100,如果样本数量大于以下计算的截止值,我们将拒绝null假设:

N=100;α=0.05;p0=0.30;p1=0.33;截止值=binoinv(1-α,N,p0)
截止值=38

二项分布的复杂性在于它是离散的。超过截止值的概率不完全是5%:

1 - binocdf(截止,N, p0)
ans = 0.0340

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

Nvec = 50:50:2000;功率= sampsizepwr (“p”Nvec, p0, p1, [],“尾巴”,“对”);绘图(Nvec、电源、,“bo - - - - - -”2000年,[0],[DesiredPower DesiredPower),凯西:”); xlabel(‘N=样本量’) ylabel (“权力”)标题('替代方案的幂函数:p = 0.33')

我们可以使用sampsizepwr函数请求80%功率所需的样本大小。

approxN=sampsizepwr(“p”0.80 p0, p1, [],“尾巴”,“对”)
警告:值N>200是近似值。将功率绘制成N的函数可以显示具有所需功率的较低的N个值。approxN = 1500

一个警告信息告诉我们答案只是近似的。如果我们观察不同样本容量下的幂函数,我们会发现函数一般是递增的,但不规则因为二项分布是离散的。让我们看看在样本容量从1470到1480的范围内,p=0.30和p=0.33都拒绝零假设的概率。

次要情节(1,1);Nvec = 1470:1480;功率= sampsizepwr (“p”Nvec, p0, p1, [],“尾巴”,“对”);绘图(Nvec、电源、,“ro - - - - - -”,[min(Nvec),max(Nvec)],[DesiredPower DesiredPower],凯西:”);伊拉贝尔(斯普林特)(的概率(T >截止)\ nif p = 0.33 ') h_gca = gca;h_gca。XTickLabel ='';ylim([。78 .82]);次要情节(3、1、2);阿尔夫= sampsizepwr (“p”Nvec p0, p0, [],“尾巴”,“对”);情节(Nvec,阿尔夫,“bo - - - - - -”[min (Nvec), max (Nvec)],[αα],凯西:”);伊拉贝尔(斯普林特)(的概率(T >截止)\ nif p = 0.30 ') h_gca = gca;h_gca。XTickLabel ='';ylim([。04、06]);次要情节(3,1,3);cutoff = binoinv(1-alpha, Nvec, p0);情节(Nvec截止,“去,”); xlabel(‘N=样本量’) ylabel (“切断”)

这张图揭示了幂函数曲线(上图)不仅是不规则的,而且在某些样本量下也会减小。为了使显著性水平(中间图)不大于5%,有必要增加临界值(底部图)。我们可以在这个范围内找到一个更小的样本量,提供所需的80%的功率:

分钟(Nvec(功率> = 0.80))
ans = 1478

测试相关

在我们迄今所考虑的例子中,我们能够找出一个检验统计量的截止点,以达到某个显著水平,并在一个备选假设下计算超过该截止值的概率。对于我们的最后一个例子,让我们考虑一个不那么容易的问题。

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

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

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

然后,我们可以在替代假设下生成样本,并估计检验的功效。

nsamples=1000;mu=[0;0];sig=[10.4;0.41];r=0(1,nsamples);j=1:nsamples xy=mvnrnd(μ,sig,N);r(j)=corr(xy(:,1),xy(:,2));结束(电力、powerci) = binofit(和(r >截止),nsamples)
Power = 0.6470 powerci = 0.6165 0.6767

我们估计功率为65%,我们有95%的信心,真实值介于62%和68%之间。要获得80%的功率,我们需要更大的样本量。我们可以尝试将N增加到50,估计此样本量的截止值,并重复功率模拟。

nsamples=10000;N=50;α=0.05;conf=1-alpha;r=零(1,n样本);j=1:nsamples xy=normrnd(0,1,N,2);r(j)=corr(xy(:,1),xy(:,2));结束Cutoff = quantile(r,conf) nsamples = 1000;μ= [0;0);Sig = [1 0.4;0.4 - 1];r = 0(1、nsamples);j=1:nsamples xy=mvnrnd(μ,sig,N);r(j)=corr(xy(:,1),xy(:,2));结束(电力、powerci) = binofit(和(r >截止),nsamples)
切断=0.2315功率=0.8990功率CI=0.8786 0.9170

这个样本量比我们的目标高出80%。我们可以继续这样做,试图找到一个小于50的样本,以满足我们的要求。

结论

统计学和机器学习工具箱中的概率函数可以用来确定在假设检验中达到期望的能力水平所需的样本量。在某些问题上,可以直接计算样本容量;在其他情况下,需要在一个样本大小范围内搜索,直到找到正确的值。随机数生成器可以帮助验证所需的功率是满足的,也可以用来研究在可选条件下特定测试的功率。