双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正我目前正在使用双因素方差分析(组别×时间)分析多组数据,我想知道如何在 JMP 中使用 Bonferroni 方法进行事后检验。
通常情况下,我使用 Tukey's HSD 进行多重比较,但我也被要求报告使用 Bonferroni 校正的比较结果。
我查阅了 JMP 帮助文档,找到了单因素方差分析中多种比较方法(Tukey、Dunnett 等)的解释。
然而,我找不到关于如何在双因素方差分析后应用 Bonferroni 调整的明确说明,尤其是在“最小二乘均值”平台上。
请您就以下几点提供建议?
当交互作用显著时,在 JMP 中进行双因素方差分析(拟合模型)后,使用 Bonferroni 校正进行简单效应比较的正确步骤是什么?
在非参数解释中,Bonferroni 有时被描述为“将每个 t 检验的 p 值乘以比较次数”。
这种解释在 JMP 中是否也可接受,或者是否有推荐的内置 Bonferroni 校正方法?
任何指导都将不胜感激。
非常感谢。
此致,
基础数据分析与建模回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正嗨@LossMarmot707 :是的,“将每个 t 检验的 p 值乘以比较次数”与 Bonferroni 校正相同,无论你使用什么软件。但是,为什么要在存在交互作用的情况下比较简单效应呢?这可能会产生很大的误导。例如,两组在每个时间点上可能存在很大的差异,但平均下来,这种差异就非常小了。
编辑:或者,进行 Bonferroni 调整的另一种方法是在“拟合模型”平台(“模型规范”旁边的红色三角形)中更改 alpha(改为 alpha/k,其中 k 是比较次数),然后使用学生 t 区间。
回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正感谢您的评论。
我理解 Bonferroni 调整是进行多重比较时控制 I 类错误的标准方法。
即使交互作用显著,仅解释主效应也可能导致对整体模式的误解。因此,通常建议分别考察每种条件下的效应(即比较简单效应),例如在每个时间点或浓度水平下进行考察。
相互作用的存在表明
“一个因素的影响会随着另一个因素的水平而变化。”
这意味着,仅关注总体平均值可能会掩盖数据中的重要模式。
因此,在本分析中,我采用双因素方差分析后的事后比较,检验了每种条件下各组之间的差异,以明确这些模式。
此外,我最初的问题具体是关于如何使用统计软件 JMP 进行 Bonferroni 调整的事后检验。
也就是说,正如您所提到的,将 alpha 调整为 α/k 并使用 Student's t 区间可能确实是实现 Bonferroni 校正的一种便捷的替代方法。
回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正您可以通过红色三角形菜单中的[测试切片]选项对交互项执行“简单效应检验”,并通过[生成合并数据表]将 p 值输出到数据表中。
(1)选择[分析] > [拟合模型] 。
(2)设定 Y 变量,并设定双因素交互作用(例如,“A、B 和 A*B”)。
默认设置下,您可以在右侧看到杠杆图(“A”、“B”和“A*B”)。
(3)点击“A*B”处的红色三角形菜单,然后选择[测试切片] 。

您可以看到F比率和“简单效应检验”的p值。但这些p值没有针对多重比较进行调整。
(4)右键一个表格进行简单效果测试,选择【创建合并数据表】 。

现在您可以在 JMP 数据表中查看测试结果。
(5)删除你不感兴趣的行,只保留你感兴趣的行。
(6)右键单击“Prob>F”列标题,然后选择[新建公式列] > [公式...] 。公式编辑器窗口随即打开。
(7)输入下列公式。

Min(:"Prob > F"n * N Row(), 1);
单击【确定】应用公式并关闭窗口。
(8)更改列名,例如“Adj. Prob > F”。
(9)选择【编辑】 > 【期刊】 。现在您可以生成 Bonferroni 校正后的 p 值表格。

PS
我个人(强烈)不建议“只计算p值”或“p值即一切”的理念。您可以创建信息量更大的图表来观察双因素交互作用。
(A)完成上述步骤2后,点击顶部轮廓的红色三角形,然后选择[因子分析] > [交互作用图] 。即可查看交互作用图。

(B) 完成上述步骤2后,点击顶部轮廓的红色三角形,选择【因子分析】>【分析器】。在预测分析器中选择【叠加交互作用】。此图与只有两个因子时的交互作用图相同。但预测分析器是交互式的,您可以交互式地查看两个以上的因子。

(C)您可以使用图形生成器创建更多图形。

我认为,如果您真的想调整多重性,那么在收集数据之前就需要明确要测试哪些对比。如果您在看到数据之后才选择要测试的对比,多重性调整将无法正确进行。
回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正非常感谢您详细解释了如何执行测试切片程序。
我衷心感谢您清晰的指导,我一直按照您提供的步骤进行分析。
我想就我目前的分析再提一个问题。
目前,我正在使用 JMP 分析从药物给药研究中获得的动物实验数据(血压、脉搏等)。
每周进行测量,我目前使用的是 20 周的数据。
分析如下:
我正在进行双因素方差分析,以给药类型(组)和测量周为因素。
当检测到显著的组间差异时,我想进行 Bonferroni 事后检验(使用 Test Slice 的简单效应检验)。
然而,尽管我能够运行双向方差分析本身,
由于使用测试切片进行的每周组比较结果与预期不符,因此我无法进行事后检验。
尤其,
JMP 不会在分析窗口中显示每个治疗组的测量值(Y 轴)和测量周数(X 轴)的图表。
我觉得这可能是问题的根源。
如果可以的话,我非常感谢您能提供任何建议。
我应该考虑哪些潜在原因或应该检查哪些设置
为了解决这个问题。
谢谢你的帮助。
回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正我将两个主要固定效应分别表示为“周”和“组” ,并将双因素交互项表示为“周*组” 。我猜您也包含了动物的随机效应,我将其表示为“动物ID” 。
Y = Week Group Week*Group Animal ID&Random Effect
如果在模型中包含随机效应,默认的重点将变为“最小化报告” 。在这种情况下,您需要打开“效应详情”大纲。其中包含“组*周”大纲。

或者,您需要在启动对话框中选择“效果杠杆”以进行强调。

在尝试使用自己的数据之前,请先尝试使用以下虚假数据进行分析。
(1)选择“文件” > “新建” > “JSL脚本” 。脚本编辑器随即打开。
(2)将下列代码复制并粘贴到脚本编辑器中。
Names Default To Here(1);
Random Reset(1111111);
n group = 2;
n animals per group = 10;
n week = 20;
data = [];
id = 0;
For(group = 1, group <= n group, group++,
For(i=1, i <= n animals per group, i++,
id++;
f = Random Normal();
For(week = 1, week <= n week, week++,
y = week + group + f + Random Normal();
If(week>=10 & group==1, y += 10 - week);
data|/=group||id||week||y;
);
);
);
dt = As Table(data, <
<COLUMN names=""></COLUMN>
<P>(3)在脚本编辑器中,选择<STRONG>“编辑”</STRONG> > <STRONG>“运行脚本”</STRONG> 。<BR /> (4)进行上述分析,看看是否符合你的预期。</P> <BR /> <P>如果组数为两组,则可以使用<STRONG>多重比较</STRONG>选项来执行简单效应检验。</P> <P>(1) Select the red triangle icon and select <STRONG>多重比较</STRONG>.<BR />(2) Select <STRONG>小组*周</STRONG> in <STRONG>选择效果</STRONG>.</P> <P>(3)勾选<STRONG>“显示最小二乘均值图”</STRONG> 。<BR /> (4)勾选<STRONG>“创建交互图”</STRONG> 。<BR /> (5)在<STRONG>“选择叠加条款”</STRONG>中选择<STRONG>团体</STRONG>。<BR /> (6)单击<STRONG>“确定”</STRONG> 。此时将显示带有置信区间的交互作用图。</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yusuke_ono_2-1779454539349.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_2-1779454539349.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_2-1779454539349.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/104538i41B986728AA6396C/yusuke_ono_2-1779454539349.png" role="button" title="yusuke_ono_2-1779454539349.png" alt="yusuke_ono_2-1779454539349.png" /></span></SPAN></SPAN></P> <BR /> <P>(7) 再次选择红色三角形图标并选择<STRONG>按钮比较</STRONG>。<BR /> (8)在<STRONG>估计类型</STRONG>中选择<STRONG>最小二乘均值切片估计</STRONG>。<BR /> (9)在<STRONG>切片选项</STRONG>中选择<STRONG>“指定切片术语”</STRONG> 。<BR /> (10)选择<STRONG>Yin</STRONG><STRONG>选择切片条款</STRONG>。<BR /> (11)(如果您想进行 Bonferroni 校正)选择<STRONG>所有成对比较 - 学生的</STRONG>。<BR /> (12)点击<STRONG>“好的”</STRONG> 。请注意,所有结果均未针对多重比较进行调整。<BR /> (13)右键单击<STRONG>“所有成对差异</STRONG>”表,然后选择<STRONG>“创建合并数据表”</STRONG> 。</P> <P>(14)计算 Bonferroni 调整后的 p 值和置信区间。</P> <BR /> <CODE class=" language-jsl">Min( :"Prob>|t|"n * N Row(), 1 )
:Difference - :Std Error * t Quantile( 1 - 0.05 / (2 * N Row()), :DF )
:Difference + :Std Error * t Quantile( 1 - 0.05 / (2 * N Row()), :DF )
两个固定主效应分别被指定为“星期”和“组别”,这两个因素的交互项被指定为“圆圈*组别”。该模型可能还包含每个个体动物固有的随机效应,而不仅仅是这些固定效应。这些随机效应被指定为“动物识别”。换句话说,该模型包含以下四个效应:
Y = Week Group Week*Group Animal ID&Random Effect
在“模型拟合”中包含随机效应时,默认情况下会重点关注最小报告。在这种情况下,您需要打开报告效应的详细概要。打开后,您会在其中找到一个子周期概要。

或者,在启动对话框中,将重点设置为“效果杠杆” 。

在用自己的数据进行测试之前,我建议先用干净的模拟数据进行测试,看看是否有效。
(1)选择“文件” > “新建” > “JSL脚本” 。脚本编辑器将打开。
(2)将下列代码复制并粘贴到脚本编辑器中。
Names Default To Here(1);
Random Reset(1111111);
n group = 2;
n animals per group = 10;
n week = 20;
data = [];
id = 0;
For(group = 1, group <= n group, group++,
For(i=1, i <= n animals per group, i++,
id++;
f = Random Normal();
For(week = 1, week <= n week, week++,
y = week + group + f + Random Normal();
If(week>=10 & group==1, y += 10 - week);
data|/=group||id||week||y;
);
);
);
dt = As Table(data, <
<COLUMN names=""></COLUMN> <P>(3)在脚本编辑器中,选择<STRONG>“编辑”</STRONG> > <STRONG>“运行脚本”</STRONG> 。</P> <P>(4)尝试执行上述分析,看看能否得到想要的结果。</P> <BR /> <P><BR />如果存在两组数据,您可以考虑使用<STRONG>多重比较</STRONG>选项。</P> <P>(1)点击报告顶部的红色三角形按钮,然后选择<STRONG>多重比较</STRONG>。<BR /> (2)在调用窗口的<STRONG>效果选择</STRONG>中,选择<STRONG>“小组*周”</STRONG> 。</P> <P>(3)选中<STRONG>显示最小二乘均值图的选项</STRONG>。<BR /> (4)勾选此框以<STRONG>创建交互图</STRONG>。<BR /> (5)在<STRONG>选择要叠加的模型项时</STRONG>,选择<STRONG>“组”</STRONG> 。<BR /> (6)点击<STRONG>“好</STRONG>”将创建一个交互图,并绘制置信区间。</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yusuke_ono_5-1779456371304.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_5-1779456371304.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_5-1779456371304.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/104542i97FD4CA2DD1DB016/yusuke_ono_5-1779456371304.png" role="button" title="yusuke_ono_5-1779456371304.png" alt="yusuke_ono_5-1779456371304.png" /></span></SPAN></SPAN></P> <BR /> <BR /> <P>(7)再次,从报告顶部的红色三角形按钮中选择<STRONG>多重比较</STRONG>。<BR /> (8)对于<STRONG>估计类型</STRONG>,选择<STRONG>最小二乘均值横截面估计</STRONG>。<BR /> (9)在<STRONG>切片选项</STRONG>中,选择<STRONG>“指定要切片的项目”</STRONG> 。<BR /> (10)在<STRONG>选择要切片的项时</STRONG>,选择<STRONG>星号周期</STRONG>。<BR /> (11)(如果您稍后将应用 Bonferroni 调整)<STRONG>比较每一对 - 选择学生 t 检验</STRONG>。<BR /> (12)点击<STRONG>“好”</STRONG> 。请注意,此结果未经任何多次调整。<BR /> (13)右键单击<STRONG>所有配对的平均差异</STRONG>表,然后选择<STRONG>“创建连接数据表”</STRONG> <STRONG>。</STRONG></P> <P>(14) 建立计算 Bonferroni 调整后的 p 值和置信区间的公式。</P> <CODE class="language-jsl">Min( :"Prob>|t|"n * N Row(), 1 )
:Difference - :Std Error * t Quantile( 1 - 0.05 / (2 * N Row()), :DF )
:Difference + :Std Error * t Quantile( 1 - 0.05 / (2 * N Row()), :DF )
<以下说明仅提供日语版本>
如果有 20 个时间点,并且你以这 20 个时间点为切片对数据进行切片(例如,假设有两个组,而你只关注这两个组之间的差异),那么调整后的 p 值将是原始 p 值的 20 倍。如果你在处理数据之前声明将进行多次调整,你也可以使用诸如固定阶方法之类的方法来校正多重性。
如果有 20 个时间点,则可以将每个时间点的影响建模为连续变量,而不是分类数据。
正如我在之前的回复中提到的,我强烈建议您不要仅仅计算 p 值,而是使用图表生成器来查看整体趋势。运行上面的脚本将为每个个体绘制线条,横轴代表周数,纵轴代表测量值,并按组别进行颜色编码。
回复:双因素方差分析后的事后检验:如何在 JMP 中应用 Bonferroni 校正我突然想到,恐怕您将动物 ID设置为固定效果,或者您在方法中选择了EMS(传统) 。如果是这样,动物 ID将被视为固定效果。
即使将随机效应应用于动物识别,并设置EMS(传统) ,许多结果仍然基于固定效应模型。只有期望均方、方差分量估计、检验分母综合和随机效应检验基于混合效应模型。
虽然我不认为这是你想要做的,但如果你真的想把动物识别作为固定效应,你需要将动物识别设置为团体的嵌套效应(即动物 ID[组] )。
如果动物识别在每个组内按如下方式编号,并且组=1中动物ID=1的动物与组=2中动物ID=1的动物不同,那么你总是需要将动物识别设置为组的嵌套效应(即你需要设置动物ID[组] )(即使你在REML估计中将动物识别视为随机效应)。
动物群体编号
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5
如果你的数据如下所示,并且你执行 REML 估计,则不需要指定嵌套效应。
(也可以将动物识别指定为嵌套效果。)
动物群体编号
1 1
1 2
1 3
1 4
1 5
2 6
2 7
2 8
2 9
2 10
请注意,上述模型Y = Group Week Group*Week Animal ID&Random Effect,其中Group和星期为名义变量,只是众多统计模型中的一种。我只是演示了如何在 JMP 软件中设置和执行模型,并不考虑该模型的有效性。
总之,我认为第一步是绘制图表。

我突然想到:或许动物识别被视为固定效应,或者方法并非传统EMS方法。如果是后者,动物识别就会被视为固定效应。
即使将动物识别信息设置为随机效应,使用传统 EMS方法在很多情况下仍然基于将动物识别信息视为固定效应的固定效应模型。只有期望均方、估计方差分量、 F 检验的分母以及考虑随机效应的检验才基于将动物识别信息视为随机效应的混合效应模型。
我不认为这是你想分析的内容,但如果你真的想将动物识别作为固定效应进行分析,你需要将动物识别设置为从组分支出来的效应,即“动物 ID[组] ”。
如果每个组内的动物编号如下所示,且组 1 中的动物 ID=1与组 2 中的动物 ID=1是不同的个体,那么在这种情况下,动物编号必须被视为分支效应(即,动物编号[组] )。(在 REML 估计中将动物编号视为随机效应时,也需要进行此设置。)
动物群体编号
1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5
如果您的数据结构如下,且动物 ID 被设置为随机效应,并且您正在执行 REML 估计,则无需将动物识别指定为分支效应。(如果您愿意,也可以将其指定为分支效应。如果您的数据结构如下且您正在使用 REML 估计,则两种方法均可接受。)
动物群体编号
1 1
1 2
1 3
1 4
1 5
2 6
2 7
2 8
2 9
2 10
需要注意的是,模型Y = Group Week Group*Week Animal ID & Random Effects (将组别和周数视为名义尺度)只是众多可能模型之一。以上仅描述了软件设置和操作方法,并未探讨该模型的有效性。
总之,我认为第一步是尝试画一个图表。
