设置重复测量方差分析MATLAB函数

6视图(30天)
大家好,
我想要运行一个方差分析比较3治疗(标记为1、2和3),然后运行一个因果对比治疗如果方差分析显示差异。我有16个人都得到3种不同的治疗方法和治疗的患者有3个独立的测量在同一时间。这是我迄今为止的代码:
数据= readtable (“Data.xlsx”);
%去除“病人”列
t =数据(:,2:结束);
%在设计
WithinDesign =表((1:3)”,“VariableNames”,{“测量”});
%重复度量模型
rm = fitrm (t)“治疗AA-FE ~”,“WithinDesign”,WithinDesign);
%球形检验
rm.mauchly
ans =1×4表
W ChiStat DF pValue _________ _________ __ __________0.70763 0.00041744 15.563 - 2
%方差分析
ranova (rm)
ans =3×8表
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB __________ __ ______ ______ __________ __________ __________ __________ (拦截):测量1.9978 e + 05年2 99890 245.2 1.3625 4.6883 1.9743 1.1519 e-37 e-29 e-30 e-20治疗:测量27529 13764 33.787 5.5235 9.9539 1.3755 e-12 e-09 8.5385平台以及e-07误差(测量)37480 92 407.39
我知道的数据不通过球形测试caclulated rm。mauchly,但我仍想知道是否我的方差分析设置代表我想获得从方差分析在未来我想做这个。
3评论
斯科特·麦肯齐
斯科特·麦肯齐 2022年7月25日
@Jacob Jacobo 谢谢你的澄清。我刚发布了一个答案。祝你好运。

登录置评。

接受的答案

斯科特·麦肯齐
斯科特·麦肯齐 2022年7月25日
编辑:斯科特·麦肯齐 2022年7月25日
@Jacob Jacobo ,您的设置 fitrm 略是错误的,因为你只有一个受试的因素。下面是我整理的AA因变量。治疗AA的影响显著, F (2、30)= 31.3, p <。。两两比较的所有六个也重要。你会得到类似的结果为IE和FE因变量。
M = readmatrix (“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/1073380/Data.xlsx”);
%提取和重组数据AA因变量(每主题,1行1列每治疗)
AA =重塑(M (:, 3), [], 3)
AA = 16×3
100.6000 79.3000 66.8000 99.9000 73.0000 68.8000 108.7000 79.3000 68.7000 118.4000 75.5000 64.9000 84.4000 105.9000 84.0000 92.0000 86.3000 92.1000 87.7000 97.6000 76.9000 92.6000 81.7000 73.9000 117.2000 67.7000 62.6000 113.0000 80.2000 69.3000
%把AA数据导入表中
T = array2table (AA,“VariableNames”,{“T1”,《终结者2》,“T3”});
withinDesign =表((1 2 3)',“VariableNames”,{“治疗”});
withinDesign。治疗=分类(withinDesign.Treatment);
rm = fitrm (T)“T1-T3 ~ 1”,“WithinDesign”,withinDesign);
在= ranova (rm,“WithinModel”,“治疗”);
%输出传统方差分析表
disp (anovaTable (,“AA”));
方差分析表AA = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =影响df党卫军女士F p - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -参与者15 2 7155.41792 3577.70896 31.272 0.0000 907.06583 - 60.47106治疗参与者(治疗)30 3432.15542 - 114.40518 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%的成对比较(3治疗,因此6比较)
multcompare (rm,“治疗”)
ans =6×7表
Treatment_1 Treatment_2 区别 StdErr pValue 较低的 ___________ ___________ __________ ______ __________ _________ _________1 2 29.494 4.3018 1.5408 19.038 4.6778 0.0027196 6.887 31.188 1 - 3 e-05 18.32 - 40.667 2 1 -19.038 4.6778 0.0027196 -31.188 -6.887 10.456 1.5858 - 2.4072 6.3371 - 14.575 e-05 3 1 -29.494 4.3018 1.5408 -40.667 - -18.32 e-05 3 2 -10.456 1.5858 2.4072 e-05 -14.575 - -6.3371
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%函数来创建一个传统方差分析表过于复杂
%和令人困惑的方差分析表由ranova函数。
函数[s] = anovaTable (dvName)
c = table2cell(在);
% F和p列删除错误的条目
i = 1:尺寸(c, 1)
如果c {4} = = 1
c (4) = {};
结束
如果c {5} = = 5
c(我,5)= {};
结束
结束
%使用常规标签实际上列
效果= AT.Properties.RowNames;
i = 1:长度(效果)
tmp ={我}的影响;
tmp =擦掉(tmp,”(拦截):“);
tmp = strrep (tmp,“错误”,“参与者”);
效果(我)= {tmp};
结束
%确定所需表的宽度
fieldWidth1 = max (cellfun (“长度”、效果));%列宽度的影响
fieldWidth2 = 57;%对df宽度,SS,女士,F, p列
barDouble = repmat (“=”1 fieldWidth1 + fieldWidth2);
barSingle = repmat (“- - -”1 fieldWidth1 + fieldWidth2);
%重组数据
c = c(2:最终,[2 1 3 4 5]);
c = [num2cell (repmat (fieldWidth1、尺寸(c, 1), 1)),效果(2:结束),c) ';
%创建方差分析表
s = sprintf (“% s \ n方差分析表”,dvName);
s = [s sprintf (“% s \ n”barDouble)];
s = [s sprintf (' % - * % 4 s % 11 s % 14年代% 9 s % 9 s \ n”fieldWidth1,“效应”,“df”,“党卫军”,“女士”,“F”,“p”));
s = [s sprintf (“% s \ n”barSingle)];
s = [s sprintf (% - *年代% 4 d % 14.5 f % 14.5 f % 10.3 f % 10.4 f \ n 'c {:})];
s = [s sprintf (“% s \ n”barDouble)];
结束

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的