当单变量 ANOVA 均未达到显着性时,MANOVA 如何报告显着差异?

机器算法验证 假设检验 统计学意义 方差分析 多元分析 马诺瓦
2022-04-08 11:39:49

我只想问一下,我的多变量测试的值是否显着,但我的受试者间效应表的单变量测试的值不显着是否正常。

我在组 MANOVA 之间进行了 3x3,似乎存在多变量效应,其中我的自变量与组合因变量之间似乎存在统计学上的显着差异。

然而,当单独考虑因变量的​​结果时,它们都没有达到统计学意义。

我对此感到非常困惑,因为我认为它至少对我的一个因变量应该很重要,但事实并非如此。

1个回答

下图说明了它是如何实现的:

在此处输入图像描述

两个种群(红色和蓝色)从相同的 2D 分布中采样,但彼此略有偏移。每组左侧,右侧在这两种情况下,我都进行了两个单变量 ANOVA(对于维度和维度)和一个多变量 MANOVA。N=100N=1000xy

P 值在标题中报告。的非显着 p 值,而 MANOVA 报告了一个非常显着的 p 值。0.2发生这种情况是因为要分离组,需要将数据投影到从子图的左上角到右下角的对角线上;在水平或垂直轴上投影数据不会导致两组显着分离。判别分析(LDA) 和 MANOVA 都(直接或间接)所做的就是找到这样的“最佳组分离投影” 。

从左图中可能根本看不出组之间存在任何差异,但在右图中应该很明显,其中更多的点是从相同的分布中采样的。在这里,单变量测试也很重要,但 MANOVA 当然仍然要敏感得多。

[请注意,如果只有一个因素只有两个水平(即只有两组),ANOVA 相当于 t 检验,MANOVA 相当于 Hotelling 的 T2 检验。]


仿真代码(Matlab):

Ns = [100 1000];

figure
for i=1:2
    subplot(1,2,i)

    X = randn(Ns(i),2);
    X = bsxfun(@times, X, [4 1]);
    X = X * [sind(45) cosd(45); cosd(45) -sind(45)];
    X = bsxfun(@plus, X, [1.5 1]);

    Y = randn(Ns(i),2);
    Y = bsxfun(@times, Y, [4 1]);
    Y = Y * [sind(45) cosd(45); cosd(45) -sind(45)];
    Y = bsxfun(@plus, Y, [1 1.5]);

    hold on
    scatter(X(:,1), X(:,2), 'r.')
    scatter(Y(:,1), Y(:,2), 'b.')
    axis([-10 10 -8 12])
    axis square

    [~, p1] = ttest2(X(:,1), Y(:,1));
    [~, p2] = ttest2(X(:,2), Y(:,2));
    [~, p3] = manova1([X; Y], [ones(size(X),1); 2*ones(size(X),1)]');

    title(['ANOVAs: ' num2str(p1,2) ', ' num2str(p2,2) '; MANOVA: ' num2str(p3,2)])
end