Самозагрузка сплит.плота ANOVA
Я пытаюсь выяснить, как получить начальную оценку F в ANOVA с расщепленным графиком, используя R.
У меня есть 1 в фактор: modality
, с 3 уровнями: (ноль), (мало) и (много) и 1 между фактором: task
, с 2 уровнями: cued и свободный отзыв. Моя зависимая переменная - это доля правильных ответов. Все испытуемые выучили один и тот же список слов, в котором была изменена модальность. У половины испытуемых был свободный отзыв, а у другой - отзыв. Вот пример данных:
subj <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3,4,5,6,7,8,9,10,11,12,13,
14,15,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,16,1,18,19,20,21,22,23,24,25,26,27,28,29,30,16,17,
18,19,20,21,22,23,24,25,26,27,28,29,30)
data5$subj <- as.factor(as.character(data5$subj))
task <- rep(c("cued","free"), each=45)
modality <- rep(c("zero","little","many","zero","little","many"), each=15)
proportion <- c(0.45,0.55,0.65,0.25,0.54,0.56,0.68,0.88,0.87,0.77,0.6,0.65,0.2,
0.23,0.32,0.15,0.32,0.24,0.42,0.21,0.33,0.41,0.4,0.49,0.33,0.52,
0.21,0.2,0.4,0.36,0.45,0.55,0.65,0.55,0.54,0.56,0.68,0.88,0.87,
0.77,0.6,0.65,0.28,0.33,0.32,0.55,0.32,0.24,0.42,0.21,0.33,0.41,
0.4,0.49,0.33,0.52,0.44,0.2,0.4,0.36,0.35,0.65,0.75,0.65,0.56,
0.76,0.68,0.68,0.77,0.87,0.6,0.65,0.2,0.23,0.32,0.15,0.32,0.24,
0.42,0.61,0.33,0.41,0.4,0.49,0.33,0.52,0.51,0.66,0.58,0.3)
data5 <- data.frame(subj=subj, task=task, modality=modality, proportion=proportion)
И это моя модель:
anova1 <- aov(proportion~task*modality + Error(subj/modality), data=data5)
summary(anova1)
Мой вопрос, как я могу получить оценку начальной загрузки и CI для F? Я попробовал этот код:
f <- function(d, i){
d <- d[i,]
return(aov(proportion~task+modality + Error(subj/modality), data5)
}
bootF <- boot(data5, f, R=1000)
Error in boot(data5, f, R = 1000) :
incorrect number of subscripts on matrix
И я получаю это сообщение. Что случилось?
PS Я знаю, что ANOVA за пропорции не является хорошим решением. Я пишу магистерскую диссертацию, где хочу сравнить оценки ANOVA, логистической регрессии и смешанной логит-модели.
1 ответ
Сэм Манкузо помог мне решить проблему. Он написал этот код.
boot.F <- function(data, i){#bootstrap function
dataResample <- data[i, ]# resample data
anovaResult <- aov(proportion ~ task*modality + Error(subject/modality), data = dataResample) # Run ANOVA
FValues <- c(summary(anovaResult)[3][[1]][[1]]$`F value`[1:3])# Extract F-Values (task, modality, task:modality)
return(FValues)# Returns FValues
}
# Set seed for replication
set.seed(12345)
# Run bootstrap on F-Values
anovaBoot <- boot(data, boot.F, R = 1000)
# Confidence Intervals
boot.ci(anovaBoot, index = 1) # task
boot.ci(anovaBoot, index = 2) # modality
boot.ci(anovaBoot, index = 3) # task:modality