用Matlab进行两因素不等组重复方差分析

分类: statistics |
进行方差分析的时候,如果次采样样本数目相等,用anova1,
anova2就可以完成单因素方差和两因素方差分析。但是,有的时候,我们会到实验中各种条件组合下所采样的样本数不一致的情况。
比如,我做了一个实验,共有三组被试参加,其中实验组为G1,G2,还有一组是控制组;另外我们要考察在干预前后各组阈值变化的差异,也就是说这是一个重复测量实验。现实情况是,我每一组所采样的被试可能是不同的,如何用matlab进行两因素方差分析?
这里参考了http://www.ilovematlab.cn/thread-540080-2-1.html 中给出的办法解决这个统计问题。
这里我的实验组一前后测的结果为
th1=[23
20.7600000000000
16.5900000000000
27.8700000000000
19.1600000000000
16.8500000000000
13.2600000000000
13.5200000000000
20.8200000000000
19.5400000000000
13.1300000000000
13.0700000000000
19.9900000000000
10.5700000000000
30.4200000000000
27.3900000000000]
实验组二前后测的结果为
th2=[15.0800000000000
20.4300000000000
21
13.2600000000000
19.3200000000000
23.8500000000000
31.4700000000000
13.3100000000000
20.4100000000000
11.6800000000000
31.9700000000000
17.5500000000000
25.6400000000000
12.6800000000000
27.6500000000000
20.0200000000000]
控制组前后测
ctrl=[26.7600000000000
17.1700000000000
17.3600000000000
27.8000000000000
37.5600000000000
31.3100000000000
21.2200000000000
33.6800000000000
22.0100000000000
17.9100000000000
31.8000000000000
29.5600000000000
22.9400000000000
18.9600000000000
16.4100000000000
15.4700000000000
19.5700000000000
29.8700000000000]
th(:,1)=repmat([ones(9,1);2*ones(8,1);3*ones(8,1)],2,1);
th(:,2)=[ones(9+8+8,1); 2*ones(9+8+8,1)];
th(:,3)=[ctrol(:,1);th1(:,1);th2(:,1);ctrol(:,2);th1(:,2);th2(:,2);]
x1=th(:,1);x2=th(:,2);
group={x1,x2};
[p,table,stats]=anovan(th(:,3),group,[1,2,3])
比如,我做了一个实验,共有三组被试参加,其中实验组为G1,G2,还有一组是控制组;另外我们要考察在干预前后各组阈值变化的差异,也就是说这是一个重复测量实验。现实情况是,我每一组所采样的被试可能是不同的,如何用matlab进行两因素方差分析?
这里参考了http://www.ilovematlab.cn/thread-540080-2-1.html 中给出的办法解决这个统计问题。
这里我的实验组一前后测的结果为
th1=[23
16.5900000000000
19.1600000000000
13.2600000000000
20.8200000000000
13.1300000000000
19.9900000000000
30.4200000000000
实验组二前后测的结果为
th2=[15.0800000000000
21
19.3200000000000
31.4700000000000
20.4100000000000
31.9700000000000
25.6400000000000
27.6500000000000
控制组前后测
ctrl=[26.7600000000000
17.3600000000000
37.5600000000000
21.2200000000000
22.0100000000000
31.8000000000000
22.9400000000000
16.4100000000000
19.5700000000000
th(:,1)=repmat([ones(9,1);2*ones(8,1);3*ones(8,1)],2,1);
th(:,2)=[ones(9+8+8,1); 2*ones(9+8+8,1)];
th(:,3)=[ctrol(:,1);th1(:,1);th2(:,1);ctrol(:,2);th1(:,2);th2(:,2);]
x1=th(:,1);x2=th(:,2);
group={x1,x2};
[p,table,stats]=anovan(th(:,3),group,[1,2,3])
前一篇:[转载]sLORETA学习汇总