本文2243字12图,预计阅读需14分钟.
析因设计(Facorial design)是将两个或两个以上因素的各种水平进行排列组合、交叉分组的实验设计,是对影响因素的作用进行全面分析的设计方法,可以研究两个或者两个以上因素多个水平的效应,也可以研究各因素之间是否有交互作用并找到最佳组合。
常见析因设计有: 2x2析因设计、IxJ两因素析因设计和IxJxK三因素析因设计。
处理组数等于各因素水平之积,如两因素同时进行实验,每个因素取两个水平,实验总组合数为2x2=4;若有3因素,每个因素取4个水平,实验总的组合数为4x4x4=64;下表有3各因素,各有2/2/3个因素,实验总组合数为2x2x3=12。
析因设计资料的因素效应:
1.单独效应,其他因素水平固定时,同一因素不同水平间的差别;
2.主效应,某一因素各水平之间的平均差别;
3.交互作用,当某因素的各个单独效应随另一因素变化而变化时,则因素之间存在交互作用(interaction)。
前面学习的完全随机设计、随机区组设计和拉丁发设计资料的方差分析时不考虑交互作用,析因设计、正交设计资料方差分析时需要考虑交互作用,如观察2个因素的效应,交互作用为A*B,若观察3个因素的效应,一级交互作用为A*B、B*C、A*C,二级交互作用为A*B*C。
析因设计应注意的几个问题:
1.实验时,因素同时实加,注意同裂区设计区别,裂区设计因素施加存在顺序;
2.因素之间在专业上地位平等,表现在统计分析时所用误差相同;
3.无交互作用时,一般应排除交互项,再次计算各因素主效应。
数据来源
孙振球主编的《医学统计学》第4版,例11-1,将20只家兔随机等分4组,每组5只进行损伤后的缝合实验,欲比较不同缝合方法及缝合后时间对轴突通过率的影响,试做析因设计的方差分析,数据见表1。
上述2x2两因素实验设计中:
1.单独效应:当A因素固定在1水平时,B因素单独效应为20;当A因素固定在2水平时,B因素单独效应为24;当B因素固定在1水平时,A因素单独效应为4;当B因素固定在2水平时,A因素单独效应为8。
2.主效应:A因素单独效应为6(8+4=12/2=6,A因素在B因素不同水平下的单独效应的平均);B因素单独效应为22(20+24=44/2=22,B因素在A因素不同水平下的单独效应的平均)。
3.交互作用:AB的交互作用=BA的交互作用=2,AB的交互作用[(a2b2-a1b2)-(a2b1-a1b1)]/2=(8-4)/2=2,BA的交互作用[(a2b2-a2b1)-(a1b2-a1b1)]/2=(24-220/2=2。
检验假设
H0,A:两种缝合方式间轴突通过率相同(A因素主效应=0)
H1,A:两种缝合方式间轴突通过率不同(A因素主效应≠0)
H0,B:不同时间轴突通过率相同(B因素交互作用=0)
H1,B:不同时间轴突通过率不同(B因素交互作用≠0)
H0,AB:缝合方式与时间存在交互作用(AB因素主效应=0)
H1,AB:缝合方式与时间不存在交互作用(AB因素主效应≠0)
α=0.05
Python语言操作
Step1:导入模块和数据导入
Step2:建模、拟合数据
Step3:结果
结论
F(Method)=0.600,P=0.450,按照α=0.05检验水准,不拒绝H0,差异无统计学意义,尚不能认为两种缝合方式间轴突通过率不同(A因素主效应≠0);
F(Time)=0.8607,P=0.012,按照α=0.05检验水准,拒绝H0,接受H1,差异有统计学意义,可以认为不同时间轴突通过率不同(B因素交互作用≠0);
F(Method*Time)=0.067,P=0.800,按照α=0.05检验水准,不拒绝H0,差异无统计学意义,尚不能认为缝合方式与时间不存在交互作用(AB因素主效应≠0);
由于本研究Method,Time两因素交互作用无统计学意义,将交互项删除,分析两因素的主效应。
F(Method)=0.635,P=0.437,按照α=0.05检验水准,不拒绝H0,差异无统计学意义,尚不能认为两种缝合方式间轴突通过率不同(A因素主效应≠0);
F(Time)=8.535,P=0.010,按照α=0.05检验水准,拒绝H0,接受H1,差异有统计学意义,可以认为不同时间轴突通过率不同(B因素交互作用≠0);
结论:尚不能认为两种缝合方法对神经轴突通过率有影响。
代码:
import pandas as pd
df=pd.read_csv("C:\\Users\\lenovo\\Desktop\\xy.csv")
formula = "Pro~C(Method)+C(Time)+C(Method):C(Time)"
anova_results = anova_lm(ols(formula,df).fit())
print(anova_results)
formula = "Pro~C(Method)+C(Time)"
anova_results = anova_lm(ols(formula,df).fit())
print(anova_results)
参考文献:
孙振球.医学统计学[M].第4版,北京:人民卫生出版社,2016.
领取专属 10元无门槛券
私享最新 技术干货