主要内容

选择样本大小

此示例显示如何确定执行统计测试所需的样本数量或观察数。它说明了一个简单问题的样本大小计算,然后显示如何使用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α;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(样本均值的);ylabel('密度');文字(96,4.01,Sprintf('拒绝如果平均值>%。4G \ nprob = 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(截止,mu1,sig / sqrt(n));文字(115,.06,Sprintf('拒绝如果t>%。4g \ nprob =%.2g',截止,p),'颜色', (1 0 0));传奇((h1 h2),'零假设'“替代假设”);

如果替代方案是真的,有可能拒绝零假设的可能性较大。这只是我们想要的。如果我们查看累积分布函数(CDF)而不是密度(PDF),则更容易可视化。我们可以直接从此图中读取概率,而不是必须计算区域。

Ynull = normcdf(x,mu0,sig / sqrt(n));yalt = normcdf(x,mu1,sig / sqrt(n));h12 = plot(x,ynull,“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'......'垂直对齐''最佳')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值的显着统计(拒绝零假设)的概率。

幂函数被定义为拒绝拒绝零假设的概率。这取决于替代方案和样本大小的值。我们将根据n的函数(将一个减去CDF)进行图表,在110处修复替代方案。我们将选择n以达到80%的功率。图表显示我们需要大约n = 25。

潜气台= 0.80;nvec = 1:30;截止= mu0 + norminv(conf)* sig。/ sqrt(nvec);power = 1  -  normcdf(截止,mu1,sig./sqrt(nvec));情节(NVEC,Power,'bo-',[030],[潜气功率所需的功率],'k:');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;H0 =零(1,nsamples);H1 = H0;为了j = 1:nsamples z0 = normrnd(mu0,sig,n,1);H0(j)= ztest(z0,mu0,sig,alpha,“对”);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统计数据,这是样本均值与所测试的平均值之间的差异,除以平均值的标准误差。在零假设下,这具有学生的T分布,具有N-1自由度。在替代假设下,分布是非中心地区的非中心参数等于真正平均值与所测试的平均值之间的归一化差异。

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

N = 16;df = n-1;α= 0.05;参看= 1α;Cutoff1 = Tinv(alpha / 2,df);Cutoff2 = Tinv(1-alpha / 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');

而不是在零假设下检查功率函数和穆的单个替代值,我们可以将其视为mu的函数。电源增加,因为MU在任一方向上远离零假设值移动。我们可以使用sampsizepwr函数来计算电源。对于功率计算,我们需要指定标准偏差的值,我们怀疑大约是20。以下是示例大小n = 16的功率函数的图片。

N = 16;x = linspace(90,127);power = sampsizepwr('T',[100 20],x,[],n);绘图(x,power);Xlabel('真的意思') ylabel ('力量') 标题('n = 16'的电源函数

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

n = sampsizepwr('T',[100 20],110,0.8)
n = 34.

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

我们可以为各种值进行功率函数的曲线图。

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

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

nsamples = 400;samplenum = 1:nsamples;n = 34;H0 =零(1,nsamples);H1 = H0;为了j = 1:nsamples z0 = normrnd(mu0,sig,n,1);H0(j)= ttest(z0,mu0,alpha);Z1 = normrnd (mu1,团体,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',[100 20],[],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(截止,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',p0,p1,0.80,[],'尾巴'“对”
警告:值n> 200是近似值的。根据n的函数绘制电源可以揭示具有所需功率的低N值。大约= 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',p0,p0,[],nvec,'尾巴'“对”);情节(Nvec,阿尔夫,'bo-',[min(nvec),max(nvec)],[alpha alpha],'k:');ylabel(Sprintf(的概率(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分布来求出样本相关性的分布,但我们可以使用一种方法,即使在无法求出检验统计量分布的问题中也可以使用这种方法。

对于给定的样本大小,我们可以使用Monte Carlo模拟来确定相关性测试的近似截止值。让我们做一个大的模拟运行,所以我们可以准确地获得这个值。我们将从示例大小开始为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));结尾Cutoff = Smianile(r,conf)
截止= 0.3372.

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

nsamples = 1000;mu = [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));结尾[POWER,POWERCI] = binofit(SUM(r>截止),nsamples)
POWER = 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));结尾Cutoff = Smianile(r,conf)nsamples = 1000;mu = [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));结尾[POWER,POWERCI] = binofit(SUM(r>截止),nsamples)
截止= 0.2315功率= 0.8990 PowerCi = 0.8786 0.9170

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

结论

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