在《Amstat新闻》最近的一篇文章中,作者(Mark van der Laan和Sherri Rose)说:“我们知道,对于足够大的样本量,每项研究(包括无效假设为零的研究)都将声明具有统计学意义的效果。”。
好吧,我一个人都不知道。这是真的?这是否意味着假设检验对大数据集毫无价值?
在《Amstat新闻》最近的一篇文章中,作者(Mark van der Laan和Sherri Rose)说:“我们知道,对于足够大的样本量,每项研究(包括无效假设为零的研究)都将声明具有统计学意义的效果。”。
好吧,我一个人都不知道。这是真的?这是否意味着假设检验对大数据集毫无价值?
Answers:
这不是真的。如果原假设是正确的,那么在大样本量时,拒绝小假设的可能性将较小。错误拒绝率通常设置为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.
我同意已经出现的答案,但是我想补充一点,也许这个问题可以重定向。是否检验假设是一个研究问题,至少在一般情况下,该问题应与一个人拥有多少数据无关。如果您确实需要检验假设,请这样做,不要害怕发现微小影响的能力。但是首先要问这是否属于您的研究目标。
现在来看一些疑问:
从构造上来说,某些零假设是绝对正确的。例如,当您测试伪随机数生成器的均分布并且PRG是真正均分布的(这将是一个数学定理)时,则保留null。你们中的大多数人可能会想到在治疗实际上没有效果的实验中因随机化而产生的更有趣的真实示例。(我将提供有关esp的全部文献作为示例。;-)
如传统的t检验或z检验那样,在针对“复合”替代方案测试“简单” null的情况下,通常需要与成正比的样本量来检测效应量。任何研究中都有一个实际的上限,这意味着可检测的效应大小有一个实际的下限。因此,从理论上讲,der Laan和Rose是正确的,但在应用他们的结论时应格外小心。 ϵ
假设检验传统上将重点放在p值上,以在alpha小于0.05时得出统计显着性,这是一个主要弱点。而且,就是说,只要样本量足够大,任何实验最终都可以拒绝原假设,并检测出微小的差异,这些差异最终证明具有统计学意义。
这就是制药公司组织临床试验以获取FDA批准的大量样品的原因。大样本将使标准误差降低到接近零。反过来,这将人为地提高t stat并相应地将p值降低至接近0%。
我聚集在没有受到经济诱因和相关利益冲突假设影响的科学社区中,假设检验正在从任何p值度量向效应大小度量迈进。这是因为效果大小分析中统计距离或差异的单位是标准偏差而不是标准误差。而且,标准偏差完全独立于样本量。另一方面,标准误差完全取决于样本量。
因此,任何对假设检验持怀疑态度的人都可以基于大样本和与p值相关的方法得出具有统计学意义的结果,这是正确的。他们应使用相同的数据重新运行分析,但应使用效果量统计测试。然后,观察效果大小是否被认为是重要的。通过这样做,您可以观察到在统计学上有意义的一堆差异与无关紧要的效果大小相关联。这就是临床试验研究人员有时在结果具有统计意义但不具有“临床意义”时的意思。他们的意思是,一种疗法可能比安慰剂更好,但是这种差异非常小,以至于在临床范围内不会对患者产生任何影响。
准确地说,(惯常的)假设检验解决了观察到的数据的概率问题,或者如果原假设为真,则可能会出现更极端的情况。这种解释与样本量无关。无论样本大小为5还是1,000,000,该解释都是有效的。
一个重要的警告是测试仅与采样误差有关。任何测量错误,采样问题,覆盖范围,数据输入错误等均不在采样错误范围内。随着样本数量的增加,非抽样误差的影响会更大,因为小的偏差会导致与随机抽样模型产生重大偏差。结果,重要性检验变得不太有用。
这绝不是对重要性测试的起诉。但是,我们需要注意归因。结果可能具有统计意义。但是,当样本量较大时,我们应谨慎对待如何进行归因。这是由于我们假设的生成过程相对于采样误差而造成的差异,还是由于可能影响测试统计量(该统计量未解释)的多种可能的非采样误差中的任何一个的结果?
大样本的另一个考虑因素是结果的实际意义。一项重要的测试可能表明(即使我们可以排除非采样误差)在实际意义上微不足道的差异。即使在抽样模型下该结果不太可能,但在问题的背景下是否有意义?给定足够大的样本,在比较两组之间的收入时,几美元的差额可能足以产生具有统计意义的结果。这在任何有意义的意义上重要吗?统计意义不能替代良好的判断力和主题知识。
顺便说一句,null既不是true也不是false。这是一个模型。这是一个假设。我们假设无效为真,并根据该假设评估我们的样本。如果在这种假设下我们的样本不太可能,那么我们会更加信任我们的选择。质疑实践中是否曾经有过空值是对重要性检验逻辑的误解。
在另一个答案中没有直接提到的一个简单观点是,“所有无效假设都是错误的”根本不是真的。
一个简单的假设,即一枚实物硬币的正面概率恰好等于0.5,好,这是错误的。
但是,物理硬币正面概率大于0.499而小于0.501的复合假设可能是正确的。如果是这样,则无论进行多少次硬币翻转,都没有假设检验能够以大于的概率拒绝该假设(该检验的假阳性约束)。
因此,医疗行业一直在测试“非自卑”假设,例如,一种新的抗癌药必须证明其患者无进展生存的可能性比现有药物的生存率低3个百分点以上。 ,处于一定的置信度(,通常为0.05)。
从某种意义上讲,[所有] 许多零假设都是[总是]错误的(住在奇数房屋中的人的平均收入永远不会与住在偶数房屋中的人的平均收入完全相同)。
在常客制框架中,要问的问题是两组之间的收入差异是否大于(其中是……的分布的分位数)空值下的测试统计信息)。显然,随着无限增长,该带变得越来越容易突破。
这不是统计测试的缺陷。这是以下事实的结果:在没有进一步信息的情况下(先前),我们不得不将大量与null不一致的微小矛盾作为反对null的证据。无论这些琐事多么琐碎,都变得如此。
在大型研究中,将问题重新构造为贝叶斯测试变得很有意思,即问自己(例如)什么是。
最简洁的答案是不”。在过去的15到20年中,由于微阵列数据和金融数据的应用,在无限观察和多重假设的渐近状态下进行假设检验的研究非常活跃。长答案在Stat 329的课程页面“大型同时推理”中,该课程于2010年由Brad Efron教授。一个完整的章节是专门用于大规模假设检验。
对大数据的假设检验应考虑所需的差异水平,而不是是否存在差异。您对H0的估计值刚好为0并不感兴趣。一种通用方法是测试零假设与观察值之间的差是否大于给定的截止值。
如您的原假设意味着:
您可以轻松地使用它来测试重大和相关的差异。在R中,您也可以使用T分布的非中心性参数来针对较小的样本量推广该结果。您应该考虑到这是一个单面测试,替代的是。¯ X 1 - &OverBar; X 2 > δ
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
“这是否意味着假设检验对大数据集毫无价值?”
不,这并不意味着。一般信息是,在进行假设检验后做出的决策应始终考虑估计的效应大小,而不仅是p值。特别地,在具有非常大的样本量的实验中,考虑效应量的必要性变得显着。当然,通常来说,用户不喜欢这样做,因为该过程变得不太“自动”。
考虑这个模拟示例。假设您从标准正态分布中随机抽取了一百万个观测值,
n <- 10^6
x <- rnorm(n)
另一个随机样本是从正态分布的100万个观测值中获得的,均值等于,方差等于1。
y <- rnorm(n, mean = 0.01)
将两个总体的均值与在标准的置信水平下的t检验进行比较,我们得到的小p值约为。2.5 × 10 − 14
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 ]
这两个数量级的总体均值之间的差异是否与我们正在研究的特定问题有关?
但是人们通常对这些确定的事物假设不感兴趣。如果您考虑使用假设检验实际要做什么,您将很快认识到,只有在您有更好的替代条件时,才应拒绝原假设。即使您的null不能解释数据,除非将其替换,否则将其丢弃也没有用。现在,您是否总是将空值替换为“确定性”假设?可能不是,因为您不能使用这些“确定的东西”假设来推广数据集之外的内容。它只不过是打印出数据而已。
因此,您应该做的是指定一个假设,假设您的假设是真的,那么您实际上会对该假设感兴趣。然后进行适当的测试,以将这些替代方案彼此进行比较-而不是与您知道是虚假或无法使用的某种不相关的假设类别进行比较。
结论基本上是您需要指定假设空间-您实际上对那些假设感兴趣。对于大数据,这似乎是一件非常重要的事情,仅仅是因为您的数据具有如此大的解析能力。似乎比较假设(点与点,复合与复合)以得到表现良好的结果也很重要。
没错。所有有用的点假设检验都是一致的,因此,如果仅样本量足够大且存在一些不相关的影响,则将显示出显着的结果。为了克服统计假设检验的这个缺点(上面的Gaetan Lion的答案已经提到过),有相关性检验。这些与等效性测试相似,但不那么普遍。对于相关性测试,预先规定了最小相关效果的大小。相关性测试可以基于效果的置信区间:如果置信区间和相关区域不相交,则可以拒绝空值。
但是,范德兰(Van der Laan)和罗斯(Rose)在他们的陈述中假设,即使是真实的零假设也在研究中得到了检验。如果原假设为真,则拒绝的可能性不大于alpha,特别是在样本数量较大甚至错误指定的情况下,我只能看到样本分布与总体分布在系统上有所不同,
就标准的频繁测试而言,您提到的文章确实有道理。这就是为什么测试给定效果大小非常重要的原因。为了说明这一点,下面是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()
我认为它们的意思是,人们经常对原假设的概率密度做出一种假设,该假设具有“简单”形式,但并不对应于真实的概率密度。
现在,对于较小的数据集,您可能没有足够的敏感性来看到这种影响,但是对于足够大的数据集,您将拒绝原假设,并得出结论是存在新的影响,而不是得出关于原假设的假设错误的结论。
功效随样本大小而增加(所有其他条件都相同)。
但是这样的说法:“我们知道,对于足够大的样本量,每项研究(包括无效假设都成立的研究)将宣布具有统计学意义的影响。” 是不正确的。