大数据集不适合假设检验吗?


129

在《Amstat新闻》最近的一篇文章中,作者(Mark van der Laan和Sherri Rose)说:“我们知道,对于足够大的样本量,每项研究(包括无效假设为零的研究)都将声明具有统计学意义的效果。”。

好吧,我一个人都不知道。这是真的?这是否意味着假设检验对大数据集毫无价值?


10
+1:这个问题通常会提出一些有趣的观点。
user603 2010年

7
有关大型数据集的更多讨论,请参见stats.stackexchange.com/q/7815/919。(重点是那里的回归建模。)
笨蛋


8
如果一个大样本让您认为假设检验是错误的工具,那么假设检验在较小样本上也没有真正回答正确的问题-错误的观点在大样本量时变得更加明显,但是相同的考虑也很重要。如果以很小的效果就得出了显着的结果,而您却说:“嗯,那不是我想要的,我想告诉我它是否很重要”,那么假设检验就是错误的开始。对于这类问题,有更合适的工具(例如置信区间,等效检验等)。
Glen_b

Answers:


91

这不是真的。如果原假设是正确的,那么在大样本量时,拒绝小假设的可能性将较小。错误拒绝率通常设置为0.05(alpha),但与样本大小无关。因此,从字面上看,该语句是错误的。但是,在某些情况下(甚至整个字段),所有空值都是假的是可能的,因此,如果N足够高,则所有空值都会被拒绝。但这是一件坏事吗?

真实的是,对于非常大的样本量,可以发现微小的影响是“显着的”。这并不意味着您不应该拥有如此大的样本量。这意味着您解释发现的方式取决于测试的效果大小和敏感性。如果您的效应量很小且检测灵敏度很高,则必须认识到统计学意义上的发现可能没有意义或无用。

鉴于某些人不相信零假设的检验,当零为true时,其错误率始终等于为任何样本大小选择的截止点,这是R证明这一点的简单模拟。使N尽可能大,I型错误的发生率将保持恒定。

# number of subjects in each condition
n <- 100
# number of replications of the study in order to check the Type I error rate
nsamp <- 10000

ps <- replicate(nsamp, {
    #population mean = 0, sd = 1 for both samples, therefore, no real effect
    y1 <- rnorm(n, 0, 1) 
    y2 <- rnorm(n, 0, 1)
    tt <- t.test(y1, y2, var.equal = TRUE)
    tt$p.value
})
sum(ps < .05) / nsamp

# ~ .05 no matter how big n is. Note particularly that it is not an increasing value always finding effects when n is very large.

8
+1:的确,这里的所有三个答案在逻辑上都是一致的。
user603 2010年

1
最终,我发现了(非统计)教授很久以前告诉我的东西。
亚瑟(Jase)2012年

1
@Sympa,不。仅仅因为SE随着N的上升而下降,并不意味着您总会发现N较大的效果(请参见仿真)。请记住,随着SE的下降,效果估计的质量也在增加。如果没有总体影响,则很有可能接近0并且没有差异。实际上,无论何时为零,无论样本大小如何,p值的分布都是平坦的(为此编写您自己的模拟)。答案没有矛盾。
约翰·约翰(John

4
那你会错的。您可能还需要考虑在此处阅读其他答案。由于您无法跟踪模拟与假设检验之间的关系,我想我只能指出您的主要主张是,随着标准误差下降,t上升,p下降。这只有在效果保持恒定的情况下才是正确的。但是效果是随机样本,当真实效果为0时,随着N的增加,观察到的效果趋于降低。因此,即使随着N的增加SE下降,它也不会增加t值,因为t值中的分子也会更低。
约翰

1
在示例中,rnorm不能产生无理数的事实是无关紧要的。即使从0的平均值和sd的1平均值得出的值不能精确地绘制为法线,两个样本的法线也不相同。I型错误率可能与.05略有偏离,但无论N值如何,它都应保持恒定。而且对于所有仿真而言,这都不是正确的,因为我可以选择一个不成问题的离散型。(如果您真的想提出一个深奥的问题,那么您应该已经解决了伪随机性问题。)
John

31

我同意已经出现的答案,但是我想补充一点,也许这个问题可以重定向。是否检验假设是一个研究问题,至少在一般情况下,该问题应与一个人拥有多少数据无关。如果您确实需要检验假设,请这样做,不要害怕发现微小影响的能力。但是首先要问这是否属于您的研究目标。

现在来看一些疑问:

  • 从构造上来说,某些零假设是绝对正确的。例如,当您测试伪随机数生成器的均分布并且PRG是真正均分布的(这将是一个数学定理)时,则保留null。你们中的大多数人可能会想到在治疗实际上没有效果的实验中因随机化而产生的更有趣的真实示例。(我将提供有关esp的全部文献作为示例。;-)

  • 如传统的t检验或z检验那样,在针对“复合”替代方案测试“简单” null的情况下,通常需要与成正比的样本量来检测效应量。任何研究中都有一个实际的上限,这意味着可检测的效应大小有一个实际的下限。因此,从理论上讲,der Laan和Rose是正确的,但在应用他们的结论时应格外小心。 ϵ1/ϵ2ϵ


这不是I型错误还是II型错误(或功率)问题吗?如果将I型错误概率()固定为0.05,则显然(离散情况除外),样本是否较大将为0.05。但是对于给定的类型I,错误概率为0.05(例如,功效),或者在存在这种效应时您会检测到这种效应的概率,对于大样本量而言更大。α

@fcop您的意见尽管正确,但似乎针对其他答案。他们错过了这一点,这表明并不是所有的统计分析都需要进行假设检验。I型和II型错误仅在进行正式的假设检验时才有意义。
ub

OP引用了以下声明:“我们知道,对于足够大的样本量,每项研究(包括无效假设为零的研究)都将声明具有统计学意义的影响。”因此,如果您测试例如与那么在大样本中,功效是如此之高,以至于您甚至检测到与1的微小偏差。因此,我认为他们的说法是不正确的,但是大样本中的功效使您可以检测很小的差异。H 1μ 1H0:μ=1H1:μ1

@fcop感谢您的解释。我同意您的推理:当null为真时,那么通过构造,即使是大型研究也将发现显着效果,其机会最多等于其测试的大小-也就是说,它们不太可能找到显着效果。
ub

19

假设检验传统上将重点放在p值上,以在alpha小于0.05时得出统计显着性,这是一个主要弱点。而且,就是说,只要样本量足够大,任何实验最终都可以拒绝原假设,并检测出微小的差异,这些差异最终证明具有统计学意义。

这就是制药公司组织临床试验以获取FDA批准的大量样品的原因。大样本将使标准误差降低到接近零。反过来,这将人为地提高t stat并相应地将p值降低至接近0%。

我聚集在没有受到经济诱因和相关利益冲突假设影响的科学社区中,假设检验正在从任何p值度量向效应大小度量迈进。这是因为效果大小分析中统计距离或差异的单位是标准偏差而不是标准误差。而且,标准偏差完全独立于样本量。另一方面,标准误差完全取决于样本量。

因此,任何对假设检验持怀疑态度的人都可以基于大样本和与p值相关的方法得出具有统计学意义的结果,这是正确的。他们应使用相同的数据重新运行分析,但应使用效果量统计测试。然后,观察效果大小是否被认为是重要的。通过这样做,您可以观察到在统计学上有意义的一堆差异与无关紧要的效果大小相关联。这就是临床试验研究人员有时在结果具有统计意义但不具有“临床意义”时的意思。他们的意思是,一种疗法可能比安慰剂更好,但是这种差异非常小,以至于在临床范围内不会对患者产生任何影响。


1
一个人的大样本就是另一个人的小样本。:)
Iterator

3
那你不是问错了问题吗?也许FDA批准程序应该指定比安慰剂更大的收益(可能与药物成本有关,包括其不良反应),而不是仅仅需要统计意义?因为可能很小,但实际上可能存在真正的差异,并且无论差异多么小,该差异在统计上都具有显着意义。
EmilVikström2014年

FDA不需要“仅具有统计意义”。那太荒谬了。行业中的每个人都理解“临床意义”的含义。FDA权衡了通过临床终点(例如缓解)针对健康和安全问题衡量的药物功效的统计证据。在做出毫无根据的断言之前,请阅读FDA指南。
qwr

15

准确地说,(惯常的)假设检验解决了观察到的数据的概率问题,或者如果原假设为真,则可能会出现更极端的情况。这种解释与样本量无关。无论样本大小为5还是1,000,000,该解释都是有效的。

一个重要的警告是测试仅与采样误差有关。任何测量错误,采样问题,覆盖范围,数据输入错误等均不在采样错误范围内。随着样本数量的增加,非抽样误差的影响会更大,因为小的偏差会导致与随机抽样模型产生重大偏差。结果,重要性检验变得不太有用。

这绝不是对重要性测试的起诉。但是,我们需要注意归因。结果可能具有统计意义。但是,当样本量较大时,我们应谨慎对待如何进行归因。这是由于我们假设的生成过程相对于采样误差而造成的差异,还是由于可能影响测试统计量(该统计量未解释)的多种可能的非采样误差中的任何一个的结果?

大样本的另一个考虑因素是结果的实际意义。一项重要的测试可能表明(即使我们可以排除非采样误差)在实际意义上微不足道的差异。即使在抽样模型下该结果不太可能,但在问题的背景下是否有意义?给定足够大的样本,在比较两组之间的收入时,几美元的差额可能足以产生具有统计意义的结果。这在任何有意义的意义上重要吗?统计意义不能替代良好的判断力和主题知识。

顺便说一句,null既不是true也不是false。这是一个模型。这是一个假设。我们假设无效为真,并根据该假设评估我们的样本。如果在这种假设下我们的样本不太可能,那么我们会更加信任我们的选择。质疑实践中是否曾经有过空值是对重要性检验逻辑的误解。


3
这支持了随着样本量变大而增加模型复杂性的论点-在大样本情况下,采样误差不再是不确定性的主要来源。当然,这仅在贝叶斯框架中是“有意义的”,其允许除了采样误差之外的其他不确定性来源。
概率

13

在另一个答案中没有直接提到的一个简单观点是,“所有无效假设都是错误的”根本不是真的。

一个简单的假设,即一枚实物硬币的正面概率恰好等于0.5,好,这是错误的。

但是,物理硬币正面概率大于0.499而小于0.501的复合假设可能是正确的。如果是这样,则无论进行多少次硬币翻转,都没有假设检验能够以大于的概率拒绝该假设(该检验的假阳性约束)。α

因此,医疗行业一直在测试“非自卑”假设,例如,一种新的抗癌药必须证明其患者无进展生存的可能性比现有药物的生存率低3个百分点以上。 ,处于一定的置信度(,通常为0.05)。α


9

从某种意义上讲,[所有] 许多零假设都是[总是]错误的(住在奇数房屋中的人的平均收入永远不会与住在偶数房屋中的人的平均收入完全相同)。

在常客制框架中,要问的问题是两组之间的收入差异是否大于(其中是……的分布的分位数)空值下的测试统计信息)。显然,随着无限增长,该带变得越来越容易突破。Tαn0.5Tααn

这不是统计测试的缺陷。这是以下事实的结果:在没有进一步信息的情况下(先前),我们不得不将大量与null不一致的微小矛盾作为反对null的证据。无论这些琐事多么琐碎,都变得如此。

在大型研究中,将问题重新构造为贝叶斯测试变得很有意思,即问自己(例如)什么是。P^(|μ¯1μ¯2|2>η|η,X)


太奇怪了...从直觉上讲,这似乎与大数定律相矛盾。
卡洛斯·阿乔里

卡洛斯:>您能具体一点吗?
user603 2010年

n

1
@Carlos-但是融合并不意味着平等;这仅在无穷大的无穷限制中得到保证。所以没有矛盾;-)

5

最简洁的答案是不”。在过去的15到20年中,由于微阵列数据和金融数据的应用,在无限观察和多重假设的渐近状态下进行假设检验的研究非常活跃。长答案在Stat 329的课程页面“大型同时推理”中,该课程于2010年由Brad Efron教授。一个完整的章节是专门用于大规模假设检验。


7
我相信Efron的书着重于大量变量(以及由此引起的多重测试问题),而不是样本量。
Galit Shmueli 2011年

4

对大数据的假设检验应考虑所需的差异水平,而不是是否存在差异。您对H0的估计值刚好为0并不感兴趣。一种通用方法是测试零假设与观察值之间的差是否大于给定的截止值。

X1¯>X2¯

T=X1¯X2¯δS2n+δS2nN(δS2n,1)
T=X1¯X2¯S2nN(δS2n,1)

如您的原假设意味着:H0:X1¯X2¯=δ

X1¯X2¯δS2nN(0,1)

您可以轻松地使用它来测试重大和相关的差异。在R中,您也可以使用T分布的非中心性参数来针对较小的样本量推广该结果。您应该考虑到这是一个单面测试,替代的是。¯ X 1 - &OverBar; X 2 > δHAX1¯X2¯>δ

mod.test <- function(x1,x2,dif,...){
    avg.x1 <- mean(x1)
    avg.x2 <- mean(x2)
    sd.x1 <- sd(x1)
    sd.x2 <- sd(x2)

    sd.comb <- sqrt((sd.x1^2+sd.x2^2)/2)
    n <- length(x1)
    t.val <- (abs(avg.x1-avg.x2))*sqrt(n)/sd.comb
    ncp <- (dif*sqrt(n)/sd.comb)
    p.val <- pt(t.val,n-1,ncp=ncp,lower.tail=FALSE)
    return(p.val)
}

n <- 5000

test1 <- replicate(100,
  t.test(rnorm(n),rnorm(n,0.05))$p.value)
table(test1<0.05)
test2 <- replicate(100,
  t.test(rnorm(n),rnorm(n,0.5))$p.value)
table(test2<0.05)

test3 <- replicate(100,
   mod.test(rnorm(n),rnorm(n,0.05),dif=0.3))
table(test3<0.05)

test4 <- replicate(100,
   mod.test(rnorm(n),rnorm(n,0.5),dif=0.3))
table(test4<0.05)

这使 :

> table(test1<0.05)
FALSE  TRUE 
   24    76 

> table(test2<0.05)
TRUE 
 100 

> table(test3<0.05)
FALSE 
  100 

> table(test4<0.05)
TRUE 
 100 

第一个公式中没有复制/过去的错字吗?
user603 2010年

我没看到吗?
Joris Meys

4

“这是否意味着假设检验对大数据集毫无价值?”

不,这并不意味着。一般信息是,在进行假设检验后做出的决策应始终考虑估计的效应大小,而不仅是p值。特别地,在具有非常大的样本量的实验中,考虑效应量的必要性变得显着。当然,通常来说,用户不喜欢这样做,因为该过程变得不太“自动”。

考虑这个模拟示例。假设您从标准正态分布中随机抽取了一百万个观测值,

n <- 10^6
x <- rnorm(n)

另一个随机样本是从正态分布的100万个观测值中获得的,均值等于,方差等于1。0.01

y <- rnorm(n, mean = 0.01)

将两个总体的均值与在标准的置信水平下的t检验进行比较,我们得到的小p值约为。2.5 × 10 1495%2.5×1014

t.test(x, y)

        Welch Two Sample t-test

data:  x and y
t = -7.6218, df = 1999984, p-value = 2.503e-14
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.013554059 -0.008009031
sample estimates:
   mean of x    mean of y 
0.0008947038 0.0116762485

正确的说是t检验“检测到”两个总体的均值是不同的。但是,对于两个总体均值之间的差异,请看一下非常短的置信区间:。[ - 0.013 - 0.008 ]95%[0.013,0.008]

这两个数量级的总体均值之间的差异是否与我们正在研究的特定问题有关?


我同意您回答中的所有内容,但第一句话除外,我将其更改为“是,通常意味着”,因为对于一百万个左右的大样本,效果大小是如此之小。
zbicyclist

α

3

HST:d1=1.23,d2=1.11,di

但是人们通常对这些确定的事物假设不感兴趣。如果您考虑使用假设检验实际要做什么,您将很快认识到,只有在您有更好的替代条件时,才应拒绝原假设。即使您的null不能解释数据,除非将其替换,否则将其丢弃也没有用。现在,您是否总是将空值替换为“确定性”假设?可能不是,因为您不能使用这些“确定的东西”假设来推广数据集之外的内容。它只不过是打印出数据而已。

因此,您应该做的是指定一个假设,假设您的假设是真的,那么您实际上会对该假设感兴趣。然后进行适当的测试,以将这些替代方案彼此进行比较-而不是与您知道是虚假或无法使用的某种不相关的假设类别进行比较。

H0:μ=0H1:μ{±1,±2,±3,±4,±5,±6}0.5100

结论基本上是您需要指定假设空间-您实际上对那些假设感兴趣。对于大数据,这似乎是一件非常重要的事情,仅仅是因为您的数据具有如此大的解析能力。似乎比较假设(点与点,复合与复合)以得到表现良好的结果也很重要。


3

没错。所有有用的点假设检验都是一致的,因此,如果仅样本量足够大且存在一些不相关的影响,则将显示出显着的结果。为了克服统计假设检验的这个缺点(上面的Gaetan Lion的答案已经提到过),有相关性检验。这些与等效性测试相似,但不那么普遍。对于相关性测试,预先规定了最小相关效果的大小。相关性测试可以基于效果的置信区间:如果置信区间和相关区域不相交,则可以拒绝空值。

但是,范德兰(Van der Laan)和罗斯(Rose)在他们的陈述中假设,即使是真实的零假设也在研究中得到了检验。如果原假设为真,则拒绝的可能性不大于alpha,特别是在样本数量较大甚至错误指定的情况下,我只能看到样本分布与总体分布在系统上有所不同,


3

就标准的频繁测试而言,您提到的文章确实有道理。这就是为什么测试给定效果大小非常重要的原因。为了说明这一点,下面是3组之间的方差分析,其中B组与A组和C组略有不同。请在r中尝试以下操作:

treat_diff=0.001 #size of treatment difference
ns=c(10, 100, 1000, 10000, 100000, 1000000) #values for sample size per group considered
reps=10 #number of test repetitions for each sample size considered
p_mat=data.frame(n=factor(), p=double()) #create empty dataframe for outputs
for (n in ns){ #for each sample size
  for (i in c(1:reps)){ #repeat anova test ‘reps’ time
    treatA=data.frame(treatment="A", val=rnorm(n)) 
    treatB=data.frame(treatment="B", val=rnorm(n)+treat_diff) #this is the group that has the means slightly different from the other groups
    treatC=data.frame(treatment="C", val=rnorm(n))
    all_treatment=rbind(treatA, treatB, treatC)
    treatment_aov=aov(val~treatment, data=all_treatment)
    aov_summary=summary(treatment_aov)
    p=aov_summary[[1]][["Pr(>F)"]][1]
    temp_df=data.frame(n=n, p=p)
    p_mat=rbind(p_mat, temp_df)
  }
}

library(ggplot2)
p <- ggplot(p_mat, aes(factor(n), p))
p + geom_boxplot()

不出所料,每次测试的样本数量更多,测试的统计显着性增加: 在此处输入图片说明


2

我认为它们的意思是,人们经常对原假设的概率密度做出一种假设,该假设具有“简单”形式,但并不对应于真实的概率密度。

现在,对于较小的数据集,您可能没有足够的敏感性来看到这种影响,但是对于足够大的数据集,您将拒绝原假设,并得出结论是存在新的影响,而不是得出关于原假设的假设错误的结论。


1
我不知道Mark和Shern是否考虑到您的观点,只是重新表述了您的观点-如果null下的数据模型是“错误的”,那么对于足够大的数据,您将拒绝null假设。

1

α

H0H1

功效随样本大小而增加(所有其他条件都相同)。

但是这样的说法:“我们知道,对于足够大的样本量,每项研究(包括无效假设都成立的研究)将宣布具有统计学意义的影响。” 是不正确的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.