R 我如何计算这个混合设计实验的误差率方差分析?

R 我如何计算这个混合设计实验的误差率方差分析?,r,R,使用下面的数据框架,我设法计算了受试者反应时间的重复测量方差分析。以下是有问题的数据框: > str(a) 'data.frame': 2778 obs. of 9 variables: $ Phase : Factor w/ 1 level "Test": 1 1 1 1 1 1 1 1 1 1 ... $ Subject : Factor w/ 17 levels "1","2","3","5",..: 7 7 7 7 7 7 7 7 7 7 ... $ Group

使用下面的数据框架,我设法计算了受试者反应时间的重复测量方差分析。以下是有问题的数据框:

> str(a)
'data.frame':   2778 obs. of  9 variables:
 $ Phase    : Factor w/ 1 level "Test": 1 1 1 1 1 1 1 1 1 1 ...
 $ Subject  : Factor w/ 17 levels "1","2","3","5",..: 7 7 7 7 7 7 7 7 7 7 ...
 $ Group    : Factor w/ 2 levels "Attn","Dist": 1 1 1 1 1 1 1 1 1 1 ...
 $ Global   : Factor w/ 2 levels "D","S": 1 1 1 1 1 1 1 1 1 1 ...
 $ Local    : Factor w/ 2 levels "D","S": 1 1 1 1 1 1 1 1 1 1 ...
 $ trialtype: Factor w/ 1 level "Dist": 1 1 1 1 1 1 1 1 1 1 ...
 $ RT       : num  477 682 720 NaN 604 720 910 707 705 758 ...
 $ ACC      : logi  TRUE TRUE TRUE FALSE TRUE TRUE ...
这是我用来计算反应时间方差分析的代码:

raw<-read.table('R_notarg_noattn.tdf',header=T)
head(raw)
str(raw)
raw$Subject = factor(raw$Subject)

raw$logrt = log10(raw$RT)  # logorithm of RT
hist(raw$logrt)

tsttrl_nooutliers = subset(raw, logrt>2 & ACC==TRUE)  # take values greater than 2 logs AND where subj responded correctly
attach(tsttrl_nooutliers)  # make column names available as global variables
hist(logrt)
summary(aovrt <- aov(logrt ~ Group*Global*Local + Error(Subject/(Global*Local)), subset=Phase=='Test', data=tsttrl_nooutliers))  # ANOVA table

meanrt=10^tapply(logrt,list( Global=Global, Local=Local, Group=Group), mean)  # de-log and calculate means by condition

par(mfcol=c(1,2))  # c() *combines* values into vector/list; par() sets graphical parameters... equivalent to Matlab's set() ????
barplot(meanrt[,,'Attn'],beside=T,ylim=c(700,1000),xpd=F)
barplot(meanrt[,,'Dist'],beside=T,ylim=c(700,1000),xpd=F)

detach(tsttrl_nooutliers)
raw2&ACC==TRUE)#取大于2个日志的值,其中sub响应正确
附加(tsttrl_nooutliers)#使列名作为全局变量可用
历史(logrt)

总结(aovrt我不同意aov()的使用不会带来任何问题,因为你将从分析连续的结果转向分析离散的结果(多重观察二项式)。撇开这通常需要泊松回归或逻辑回归这一事实不谈,有可能聚合$Subject、$Group、$Global、$Local和$trialtype类别中的“ACC”。目前,$trialtype和$Phase只有一个级别,因此不需要进行子集设置,但如果此str()输出位于子集上,则可以仅使用
a[a$trialtyp==“Test”]将其限制为$trialtype==“Test”的类别
作为您的数据帧

categ.a <- with( a, tapply(a$ACC, INDEX =list(Subject Group, Global, Local), 
                     FUN = function(x) {
                                   sum(x)/ length(x) }

categ.a我不同意aov()的使用不会带来任何问题,因为你将从分析一个连续的结果转变为一个离散的结果(多重观察二项式)。撇开这通常需要泊松回归或逻辑回归这一事实不谈,有可能将ACC“在$Subject、$Group、$Global、$Local和$trialtype的类别中。目前,$trialtype和$Phase只有一个级别,因此不需要进行子集设置,但如果此str()输出位于子集上,则可以仅使用
a[a$trialtyp==“Test”]将其限制为$trialtype==“Test”的类别
作为您的数据帧

categ.a <- with( a, tapply(a$ACC, INDEX =list(Subject Group, Global, Local), 
                     FUN = function(x) {
                                   sum(x)/ length(x) }

categ.a您没有正确地进行RT分析,因此很难看到如何进行错误分析。您不允许对原始值进行方差分析,您需要首先汇总到条件。排除异常值(这些异常值的理由是什么?)后,您需要汇总RT

agg <- aggregate( RT ~ Group + Global + Local + Subject, data = tsttrl_nooutliers, mean )

agg您没有正确地进行RT分析,因此很难看到如何进行错误分析。您不允许对原始值进行方差分析,您需要首先汇总到条件。排除异常值(这些异常值的理由是什么?)后,您需要汇总RT

agg <- aggregate( RT ~ Group + Global + Local + Subject, data = tsttrl_nooutliers, mean )

agg我们对使用方差分析的正确率一点也不反对!我将不得不与我的研究主管进一步讨论这一点,但目前,我只是想逗弄他。无论如何,我似乎已经用
meanpc=aggregate(tsttrls$ACC,list)这一行解决了这个问题(主题=tsttrls$主题,组=tsttrls$组,本地=tsttrls$本地,全局=tsttrls$全局),平均值)
不过,我不清楚这两种方法之间的确切区别。无论如何,我接受你的答案,我可能会在不久的将来再次参考。非常感谢!对于使用方差分析的正确率,我们一点也不反对!我将不得不与我的研究主管进一步讨论这个问题,但目前,我只是想和他开个玩笑。无论如何,我似乎已经解决了行
meanpc=aggregate(tsttrls$ACC,list(Subject=tsttrls$Subject,Group=tsttrls$Group,Local=tsttrls$Local,Global=tsttrls$Global),mean)的问题我不清楚这两种方法之间的区别。在任何情况下,我都接受你的答案,我很可能在不久的将来再次提到它。非常感谢。我提出离群值的原因对手头的问题有点无关紧要,但我们认为受试者要花很长时间才能做出反应。不代表那些努力执行任务的人。你的观点很好地体现在聚合上,因为我认为这是自动处理的。你知道他们关于假设的说法……无论如何,谢谢你的参考。不,它不是直接的germaine,但7s只是一个任意数,对于大多数任务来说都很长。我真的想问你为什么做对数转换。原始RT不是正常分布的,但是当它们足够的时候意味着RT是。在ANOVA中,你分析平均RT。我抛出异常值的原因对手头的问题有点不重要,但是我们认为很长一段时间的受试者是不具代表性的。在那些努力完成任务的人中。你的观点在聚合上得到了很好的理解,因为我认为这是自动处理的。你知道他们关于假设的说法……无论如何,谢谢你的参考。不,它不是直接的germaine,但7s只是一个任意数,对于大多数任务来说都很长。我真的想问一下为什么要进行对数变换。原始RT不是正态分布,但当它们足够时,表示RT是正态分布。在方差分析中,分析平均RT。