Самозагрузка сплит.плота 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
Другие вопросы по тегам