ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

为什么假设检验要写“不拒绝原假设”?从两类错误到功效分析

为什么假设检验要写“不拒绝原假设”?从两类错误到功效分析 给研究生上统计课那几年每到期中作业的同一道假设检验题总有超过一半的人会把结论写成“接受原假设认为某参数等于XX”。一开始我以为只是表述习惯差异直到有个学生追到办公室问“老师既然统计量落在接受域里不写接受原假设那这道题到底要我写什么”我意识到这一句话背后的困惑几乎埋着整个假设检验逻辑里最容易被跳过的一层。1. 全班都在写“接受原假设”但我叫了暂停1.1 题目本身不难难的是结论怎么说那道题本身很普通很多教材里都能找到变体某零件厂声称其生产的零件平均长度为10cm。现随机抽取36件测得样本均值为10.2cm样本标准差为1cm。给定显著性水平α0.05检验该厂声称是否可信。这道题的机械步骤很简单建立假设、算统计量、查临界值、下结论。大部分学生都能算出正确检验统计量也都知道|t|临界值所以“落在接受域”。于是结论栏里齐刷刷写着“接受原假设认为零件平均长度就是10cm。”问题就出在这个结论上。单独看一次作业这句话似乎没什么毛病。但如果把这道题稍微改一下数据——把样本量从36改成6000其他不变——结论仍然是“不拒绝原假设”这时再写“认为零件平均长度就是10cm”很多学生自己都会觉得别扭样本均值明明偏离10cm有0.2cm这么大的样本量下为什么还能“认为”它等于10cm这个别扭感就是通往两类错误本质的第一道门。1.2 这不是语文抠字眼是统计逻辑的分水岭“接受原假设”和“不拒绝原假设”在很多人看来只是同一个意思的两种礼貌说法。不是的。这两句话背后对应着两套不同的统计哲学也直接影响你对检验结果的理解深度。先说结论在经典频率学派假设检验的框架下当p值大于显著性水平时我们不能“接受原假设”只能说“没有足够的证据拒绝原假设”。这不是咬文嚼字而是因为“接受”一词暗示了“原假设为真”而我们的检验流程根本没有为这个结论提供证据支持。你得时刻记得假设检验设计的初衷是保护“拒绝”这个动作的可靠性。它从头到尾都在帮我们回答一个问题——“当前数据是否足够支撑我拒绝原假设”至于“原假设本身是否为真”检验过程只字未提。2. 假设检验的决策逻辑我们到底在做什么判断2.1 原假设和备择假设从来不是对等的要理解“接受”为什么错先得看清楚原假设和备择假设在逻辑地位上的不对等。原假设H0通常写成带等号的形式比如μ10、μ≤10、两组无差异。它代表的是“现状”“声称”或“无效果”。备择假设H1则是研究者真正想证明的东西比如μ≠10、μ10、两组有差异。为什么把等号放在原假设里因为假设检验的逻辑是反证法先把原假设当成真的然后看在这个前提下当前样本结果出现的概率有多大。如果概率很小小于α说明原假设这个前提与数据矛盾于是我们有理由推翻它如果概率不算小说明数据与原假设“相容”仅此而已。这个“相容”不等于“证实”。就像法谚说的“证据不足无罪释放”——释放不等于证明清白只说明控方证据没达到定罪标准。原假设是无辜者数据是法庭证据。2.2 一张表看清四种决策结局把真实情况和决策结果交叉会得到一张2×2的决策表真实情况H0为真真实情况H0为假我们拒绝H0第一类错误α正确决策我们不拒绝H0正确决策第二类错误β注意表格里的两个正确决策和两类错误。α和β并不是对称的α是我们主动设定并严格控制的概率β则是被动接受的、通常未知的概率。这一点是整个“决策迷雾”的核心但很多教材只在定义里提了一句学生根本意识不到它有多重要。我经常跟学生打比方假设检验像一场安检。α是“误报率”——没带违禁品的人被拦下来的概率这个值我们直接设定成5%。β是“漏报率”——真带了违禁品的人顺利过关的概率这个值我们往往根本没算过。一个只控制了误报率、却不知道漏报率的安检流程你敢说它的检查结论“没查出问题就等于没问题”吗2.3 检验的逻辑链条本身就不支持“接受”回到那道零件题。检验过程是这样的先假设μ10为真。算一算如果μ真的是10抽36件得到样本均值10.2或更极端的概率有多大。算出来p≈0.238挺大的。结论当前数据在μ10这个前提下算不上罕见因此不推翻这个前提。看出来了吗整个过程完全在“假如原假设为真”的假设下做推演。用这种预先假设对方为真、然后发现自己无法推翻对方的流程最终却宣布“我证明了对方为真”——这在逻辑上自相矛盾。你能在一个前提下展开推理但推理结果不能反过来证明前提本身成立。3. 两类错误的本质一个在明处一个在暗处3.1 第一类错误用科学共同体的“共识价格”换来的确定性第一类错误又称“弃真错误”指原假设其实为真我们却拒绝了她。这个错误的概率用α表示是研究者自己选的通常取0.05、0.01或0.1。α的本质是什么它是科学共同体愿意为“宣称发现效应”支付的最大误报价格。我们先把H0设为“无效应”然后只有当数据足够极端时才肯放弃这个假设。这种设计对“无中生有”很警惕如果你声称发现了一个新药有效、一个变量有影响、一种材料性能更优那么你犯第一类错误的概率被控制在很小。为什么如此警惕第一类错误因为科学文献里一旦出现“我发现了一个真实效应”的错误结论它会像病毒一样扩散其他研究者会顺着这个错误结论做大量后续研究浪费大量经费和时间。所以α要取得小要保守。3.2 第二类错误不声不响地吃掉你的研究结论第二类错误又称“纳伪错误”指原假设其实为假我们却没有能拒绝她。这个错误的概率用β表示。它没有一个默认的固定值而是由效应量、样本量、α水平、检验方向共同决定的“隐变量”。如果说第一类错误是“误报”第二类错误就是“漏报”。两者的实际代价在不同场景下完全不同。医学筛查里漏掉一个病人的代价极高所以宁可多点误报也别漏而药物审批里批准一个无效药的代价极高所以更强调控制第一类错误。这里有一个很多人没意识到的点第二类错误的代价通常是沉默的。一个研究因为功效不足没检出真实效应结果被当成“阴性结果”发表或者干脆没发表没人会知道这个“阴性”其实是“该阳性而没阳出来”。它不像第一类错误那样有一篇错误的文献被公开记录而是默默消失在统计噪声里。所以β才危险——看不见的错误最容易被忽视。3.3 α、β和样本量的三角关系在固定样本量的条件下α和β之间存在此消彼长的关系你把显著性水平从0.05降到0.01拒绝域变小了误报少了但漏报变多了β变大。那怎么让两个错误同时变小答案是增大样本量。样本量越大抽样分布的方差越小分布越“瘦”两类错误重叠的区域就越小。这就是功效分析的价值所在在设计实验时先想清楚——我想检测多小的效应量我允许多大的第一类错误我希望有多大的把握功效1-β然后把样本量n算出来。很多人在实际数据分析中完全跳过这一步直接收集数据、跑检验等到p值不显著就开始发愁“为什么老板期望的显著结果没出现”很可能是样本量根本不够检验的功效只有20%、30%哪怕真实效应存在也大概率检不出来。4. “不拒绝”和“接受”的边界什么情况下才可以说“接受”4.1 历史上的两套统计框架留给了我们一个“语言后遗症”要解释清楚“接受”这个词为什么一直阴魂不散得稍微回溯一下历史。Neyman-Pearson框架干脆利落就是为了做决策给定α构造拒绝域若样本落入拒绝域就拒绝H0否则就“接受”H0。在这个框架里accept H0是正规术语它对应的是“在可选的两个假设中间我选择按照H0行动”的决策行为。Fisher框架则完全是另一回事。Fisher把p值看作衡量证据强度的连续指标p大只代表对原假设的证据支持不足绝不构成对原假设本身的肯定。Fisher本人强烈反对把显著性检验的输出说成“接受”你永远无法用这个框架“证明”原假设。现在的教材混合了两套框架计算方式用Fisher的p值思路决策表述却继承了Neyman-Pearson的“拒绝/接受”二分法。于是学生一边用p值做判断一边写下“接受原假设”逻辑上已经不是一个自洽的系统了。4.2 现代统计教学更倾向“不拒绝”理由是证据强度问题为什么现代统计学界越来越强调“fail to reject”而回避“accept”核心原因是“不拒绝H0”只说明当前证据的强度不足而“接受H0”在语用上会被理解为“证据支持H0为真”。语言会影响思维。写“接受原假设”的论文很容易在下一句里写“因此该参数等于XX”第三步就可能有人基于这个“已经成立的事实”继续设计研究。而如果写“未发现显著差异”读者至少知道这是个证据强度层面的结论留有余地。我读论文时有一个强烈的体会凡是结论里直接写“the results accept the null hypothesis”的作者对统计的理解多半还停留在机械操作层面后面的分析往往也经不起推敲。4.3 等效性检验把原假设反过来“接受”才有立足之地那么“接受原假设”这个词在统计学里是不是完全不能用了也不绝对。在一些特殊的检验设计里确实会出现“接受原假设等价于得到我们关心的结论”的情况典型代表是等效性检验equivalence test。传统检验里研究者想证明的是“有差异”所以原假设设为“无差异”这时你永远无法通过“接受原假设”来声称“无差异”。但等效性检验的目标恰恰相反你想证明两个处理方法效果“差不多”比如仿制药和原研药疗效相当。于是设计者把原假设设为“两者差异超过某个临床可接受阈值Δ”备择假设设为“两者差异在±Δ范围内”。如果数据拒绝了这个原假设你就能说“差异足够小可以视为等效”。在这种设计里逻辑关系反过来了拒绝原假设恰恰是在为“等效”提供证据。所以你发现没有——问题的关键不在于“接受”这个词本身而在于你的原假设方向是否和你真正想下的结论一致。如果方向反了再好的数据也无法支撑你的结论。5. 回到那道题算一遍才算真的懂了5.1 完整解题步骤下面是那道零件题的完整推导我们一步步来。原假设 H0: μ 10备择假设 H1: μ ≠ 10显著性水平 α 0.05样本量 n 36样本均值 x̄ 10.2样本标准差 s 1由于总体标准差未知使用t检验自由度df35t (x̄ - μ0) / (s / √n) (10.2 - 10) / (1 / √36) 0.2 / (1/6) 1.2查t分布表或直接算p值双侧p ≈ 0.238。因为p 0.05没有落入拒绝域所以决策是不拒绝原假设。严谨的统计结论应写成在显著性水平0.05下未发现样本均值与声称值10cm之间存在统计学上显著的差异t(35)1.2p0.238。而不是“接受原假设认为μ10”。5.2 关键计算如果真实均值是10.2当前检验有多少把握发现这部分才是我想展开的重点。很多学生做完上面的检验觉得“既然没拒绝那μ是10的可能性应该挺大吧”。我们用功效分析算一算看看这种直觉有多离谱。假设真实均值μ不是10而是10.2——和样本均值完全一致只是总体的真实值和声称值差了0.2cm。当前样本量n36、σ≈1、α0.05双侧检验功效是多少回忆一下拒绝域是|Z|1.96检验统计量Z(X̄-10)/(1/√36)6(X̄-10)换算回样本均值的临界值上临界 X̄ 10 1.96/6 ≈ 10.3267下临界 X̄ 10 - 1.96/6 ≈ 9.6733现在假设真实分布是X̄ ~ N(10.2, 1/36)那么功效就是样本均值落入拒绝域的概率功效 P(X̄ 10.3267) P(X̄ 9.6733) P(Z (10.3267-10.2)/(1/6)) P(Z (9.6733-10.2)/(1/6)) P(Z 0.76) P(Z -3.16) ≈ 0.224 0.001 ≈ 0.225也就是说即便真实均值真就是10.2当前这个36件样本的检验也只有约22.5%的把握把它检出来。反过来犯第二类错误的概率β≈77.5%。一个检验面对真实存在的0.2cm偏差足足有超过四分之三的概率得到“不显著”的结果。在这种情况下你再说“不拒绝H0所以μ≈10的证据强”说服力在哪里5.3 要达到80%的功效样本量需要多少既然36件样本的功效这么低那要多少才够我们用标准样本量公式估算双侧检验α0.05功效0.80对应Z为0.84n [(Z(1-α/2) Z(1-β))² × σ²] / δ² [(1.96 0.84)² × 1²] / (0.2)² [2.8²] / 0.04 7.84 / 0.04 196要检测出0.2cm的偏差、达到80%功效至少要196个样本。36个样本远远不够。这组计算把“接受原假设”这个表述的荒谬之处彻底暴露出来了假设检验说“不拒绝”可能仅仅是样本量太小、功效太低而不是效应真的不存在。把低功效情况下的“不拒绝”解读成“原假设为真”等于把一个技术性局限当成实质性证据。5.4 三组数字放在一起你会看到什么把三组数字放在一起看其实是在讲一个完整的故事p0.238样本数据与μ10的兼容性“看起来还行”功效≈22.5%但如果真实均值真的是10.2当前检验大概率还是检不出来需要n≈196要可靠地检出0.2cm的偏差样本量得扩大5倍左右这个故事的结论是假设检验能告诉你的只是“当前数据是否足以反对原假设”它不能告诉你“原假设有多大概率是真的”更不是对原假设真实性的背书。一个低功效的检验得到不显著结果什么都证明不了。6. 三个高频误区与我现在的处理习惯6.1 误区一把p值当成“原假设为真的概率”p值是“在原假设为真的条件下观察到当前数据或更极端数据的概率”即P(数据|H0为真)。它是条件概率不是P(H0为真|数据)。这个顺序看起来只是文字游戏实则是根本性差异。p值计算的前提是“H0为真”这个假设本身它从头到尾都不包含对“H0本身是否为真”的概率判断。想从数据出发推出H0为真的概率需要的是贝叶斯框架需要设定先验概率那是另一套体系。我在实际工作中只要看到有人写“p0.3说明原假设成立的可能性有30%”就知道这个人还没有跨过假设检验的门槛。6.2 误区二拿到阴性结果就宣布“两组无差异”这个误区在临床研究、AB测试、工程对比里都太常见了。“试验组和对照组p0.35所以两组没有差异”——这句话在逻辑上不成立。正确解读是在当前数据下没有足够证据支持两组存在差异。这完全是两回事。真正要去证明“无差异”需要等效性检验的设计不是靠一个不显著的p值。如果你真的关心两组是否等效就应该在设计阶段把等效界值Δ定下来用TOSTtwo one-sided tests等方法分析而不是事后拿“p0.05”当“无差异”的证据。6.3 误区三设计时不算功效报告里不写效应量和置信区间我看过太多研究样本量拍脑袋决定结果出来不显著就换检验方法、做亚组分析、各种“挖掘”硬找显著性。根本问题是没有在设计阶段回答一个核心问题这个研究的检验功效是多少合理的流程应该是明确最小科学意义效应量MCID或最小可检测差异确定α和期望功效通常0.80或0.90用功效分析算出所需样本量按这个样本量做研究报告里除了p值同时报告效应量和置信区间功效分析不需要多高深的数学用R的pwr包、G*Power这类工具都能做。这一步的成本极低却可以避免绝大多数“阴性结果”的误读。6.4 我现在的习惯报告里永远同时给p值和置信区间顺手分享一个我自己的处理习惯。凡是做假设检验的报告我要求必须同时给两样东西p值和效应量的置信区间。p值告诉你“是否显著”置信区间告诉你“效应有多大多准”。回到那道零件题。与其写一句“接受原假设认为μ10”不如写样本均值10.2与声称值10的差异为0.2cm95% CI: -0.138 ~ 0.538t(35)1.2, p0.238。置信区间包含0说明当前数据与μ10并不矛盾但同时这个区间也包含了0.5cm以上的差异说明数据对真实均值的估计精度相当有限。这句话比“接受原假设”多花了几个字但它把不确定性完整地摆在了读者面前。这才是做数据分析该有的样子。后来再给下一届学生上到这道题我换了一种问法“如果样本量是36的时候结论是‘证据不足’那样本量改成3600、结果还是‘证据不足’你们的结论也一样吗”课堂安静了几秒然后有人慢慢说出“不一样……那可能就是真的没问题。”我点点头你现在能区分“证据不足”和“没问题”了这道题才算真的会做了。
返回列表