【发布时间】:2015-07-26 06:17:30
【问题描述】:
这里是心理学学生。作为我论文的一部分,我从一个实验中获得了一些数据,其中有两个受试者间 IV,classification 和 condition,以及一个受试者内 IV,trial_type。数据格式为:
test = data.frame(
ID=rep(c(1,2,3,4,5,6), each=3),
condition=rep(c('comp', 'seq', 'comp_text'), each=3, times=2),
classification=rep(c('rule', 'exemplar'), each=3, length.out=18),
trial_type=rep(c('ambig', 'unambig', 'trained'), length.out=18),
value = c(0.25, 0.75, 1.00, 1.00, 1.00, 1.00, 0.00, 1.00, 0.75, 1.00, 1.00, 1.00, 0.25, 0.75, 0.75, 0.25, 0.75, 0.50))
我已经使用 nlme 将它们分析为方差分析,并生成 3 型 SS,因为这是我的课程所需要的
model <- lme(value~condition*classification*trial_type,
random=~1|ID,
correlation = corCompSymm(form = ~1|ID)
)
anova(model, type='marginal')
我想调查我的数据中存在的交互。具体来说,我想看看在“seq”条件下“训练”试验的值是否高于其他两个。过去,我使用“对比度”包中的 contrast() 来生成对比度矩阵,然后将其从 multcomp 包中发送到 glht()。在这种情况下,我尝试过:
cntr1 <- contrast(model,
a=list(condition=c('seq'), classification=c('rule','exemplar'), trial_type=c('trained')),
b=list(condition=c('comp','comp_text'), classification=c('rule', 'exemplar'), trial_type=c('trained'))
)
但是,这会返回
Error in testStatistic(fit, X, modelCoef, covMat, conf.int = conf.int) :
Non-positive definite approximate variance-covariance
这似乎与方差-协方差矩阵有关,但我不确定是什么问题。
我的问题是,有没有办法解决这个问题?如果没有,有没有办法在另一个包中运行类似的对比,例如“汽车”?我可以通过转换数据使用 car 包中的 Anova 生成相同的综合 F 测试,以便每个试验类型都有自己的列,但我不确定如何使用 Anova() 测试这种交互。
【问题讨论】:
-
您可能想查看
ezAnova包。这可以帮助你。