我有两组重复测量的人(测量的顺序无关紧要[1,2]与[2,1]相同)。数据可能看起来像这样(每组3人,每人6个):
groupA = [1 3 6 5 2 9; 2 5 3 4 5 8; 8 7 3 6 2 4];
groupB = [3 4 5 4 4 1; 2 8 4 2 1 2; 3 2 5 5 1 2];
一种直截了当的方法是通过每个人平均值的rankum测试来比较两组:
meansA = mean(groupA, 2); % => [4.3 4.5 5.0]
meansB = mean(groupB, 2); % => [3.5 3.2 3.0]
[p, h] = ranksum(meansA, meansB)
然而,这种类型的分析忽略了每个平均值都包含几个度量(因此低估了重要性)。
统计学家告诉我使用重复测量ANOVA"相反,但MatLab的ANOVA功能似乎没有完全符合我的要求。我能找到的最接近的是:
>> [p, atab] = anovan([1 3 6 5 2 9 2 5 3 4 5 8 8 7 3 6 2 4 3 4 5 4 4 1 2 8 4 2 1 2 3 2 5 5 1 2], {[zeros(1,18) ones(1,18)],[1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 6]}, 'varnames', {'individual', 'groupAorB'}, 'display', 'off')
p =
NaN
0.9774
但这似乎不适用于我想要的方式(NaN值和不切实际的p值)。我很高兴有关如何在MatLab中对这些数据进行适当的统计测试的任何建议。
答案 0 :(得分:0)
你应该看看这个处理单向重复测量方差分析的FileExchange条目:
http://www.mathworks.com/matlabcentral/fileexchange/5576-rmaov1
作者(Antonio Trujillo-Ortiz)为不同的设计制作了一些其他不错的条目(2和3路anovas重复测量)。
不幸的是,Matlab中的常规统计函数不允许重复测量设计。
答案 1 :(得分:0)
nan
表示占据INDIVIDUAL的模型,说明了GROUP的所有方差。换句话说,如果您为每个INDIVIDUAL拟合一个截距,那么尝试找出由于GROUP引起的变化,您没有任何差异。该模型“过度指定”。
这是因为你实际上需要一个混合效果模型 - 你正在寻找一种主体间效应。为了实现这一点,您需要告诉MATLAB INDIVIDUAL嵌套在GROUP中。因此,您对anovan
使用以下参数:
'random', INDIVIDUAL
'nested', INDIVIDUAL_within_GROUP
话虽如此,我不知道这会产生什么样的误差协方差假设 - 即它是否假设了对角协方差矩阵?
如果您想要更好地控制所做的假设,建议您从统计工具箱中调查NLMEFIT
。这允许指定协方差的混合效果模型。