Я выполнил трехсторонние повторные измерения ANOVA; какие специальные анализы действительны?
Это полностью сбалансированный дизайн (2x2x2) с одним из факторов, имеющих повторное измерение внутри субъекта. Мне известны многовариантные подходы к повторным измерениям ANOVA в R, но мой первый инстинкт - перейти к простому стилю aov () ANOVA:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = переменная ответа
IV1 = независимая переменная 1 (2 уровня, A или B)
IV2 = независимая переменная 2 (2 уровня, да или нет)
IV3 = Время (2 уровня, До или После)
Субъект = ID субъекта (всего 40 предметов, 20 для каждого уровня IV1: nA = 20, nB = 20)
summary(aov.repeated)
Error: Subject
Df Sum Sq Mean Sq F value Pr(>F)
IV1 1 5969 5968.5 4.1302 0.049553 *
IV2 1 3445 3445.3 2.3842 0.131318
IV1:IV2 1 11400 11400.3 7.8890 0.007987 **
Residuals 36 52023 1445.1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: Subject:Time
Df Sum Sq Mean Sq F value Pr(>F)
Time 1 149 148.5 0.1489 0.701906
IV1:Time 1 865 864.6 0.8666 0.358103
IV2:Time 1 10013 10012.8 10.0357 0.003125 **
IV1:IV2:Time 1 852 851.5 0.8535 0.361728
Residuals 36 35918 997.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
В качестве альтернативы я думал об использовании пакета nlme для ANOVA в стиле lme:
aov.repeated2 <- lme(DV ~ IV1 * IV2 * Time, random = ~1|Subject/Time, data=data)
summary(aov.repeated2)
Fixed effects: DV ~ IV1 * IV2 * Time
Value Std.Error DF t-value p-value
(Intercept) 99.2 11.05173 36 8.975972 0.0000
IV1 19.7 15.62950 36 1.260437 0.2156
IV2 65.9 15.62950 36 4.216385 0.0002 ***
Time 38.2 14.12603 36 2.704228 0.0104 *
IV1:IV2 -60.8 22.10346 36 -2.750701 0.0092 **
IV1:Time -26.2 19.97722 36 -1.311494 0.1980
IV2:Time -57.8 19.97722 36 -2.893295 0.0064 **
IV1:IV2:Time 26.1 28.25206 36 0.923826 0.3617
Мой первый инстинкт постфактум значительных двусторонних взаимодействий с Tukey контрастирует с использованием glht () из пакета multcomp:
data$IV1IV2int <- interaction(data$IV1, data$IV2)
data$IV2Timeint <- interaction(data$IV2, data$Time)
aov.IV1IV2int <- lme(DV ~ IV1IV2int, random = ~1|Subject/Time, data=data)
aov.IV2Timeint <- lme(DV ~ IV2Timeint, random = ~1|Subject/Time, data=data)
IV1IV2int.posthoc <- summary(glht(aov.IV1IV2int, linfct = mcp(IV1IV2int = "Tukey")))
IV2Timeint.posthoc <- summary(glht(aov.IV2Timeint, linfct = mcp(IV2Timeint = "Tukey")))
IV1IV2int.posthoc
#A.Yes - B.Yes == 0 0.94684
#B.No - B.Yes == 0 0.01095 *
#A.No - B.Yes == 0 0.98587 I don't care about this
#B.No - A.Yes == 0 0.05574 . I don't care about this
#A.No - A.Yes == 0 0.80785
#A.No - B.No == 0 0.00346 **
IV2Timeint.posthoc
#No.After - Yes.After == 0 0.0142 *
#Yes.Before - Yes.After == 0 0.0558 .
#No.Before - Yes.After == 0 0.5358 I don't care about this
#Yes.Before - No.After == 0 0.8144 I don't care about this
#No.Before - No.After == 0 0.1941
#No.Before - Yes.Before == 0 0.8616
Основная проблема, которую я вижу в этих специальных анализах, - это некоторые сравнения, которые бесполезны для моих гипотез.
Спасибо за любые предложения для соответствующего последующего анализа, спасибо.
Изменить: соответствующий вопрос и ответ, который указывает на тестирование ручных контрастных матриц
источник
/
используется для обозначения вложения (как это обычно наблюдается в эксперименте с расщепленными участками), в отличие от ее использования вError
терминах,aov()
где она в основном указывает на то, как построить страты ошибок .Error
терминaov()
таким образом, чтобы указать, чтоTime
это фактор внутри группы. От Барона,Error(subj/(color + shape))
похоже, используется такой же способ.lme
модель, мне неясно, как правильно ее использовать/
. Как бы вы указалиTime
в качестве фактора внутри группы, как вError()
сaov()
?Ответы:
Я думаю, что статистики скажут вам, что всегда есть проблема с любым последующим анализом, потому что просмотр данных может повлиять на то, на что вы смотрите, и вы можете быть предвзятыми, потому что вы стремитесь к значительным результатам. FDA в клинических исследованиях требует, чтобы статистический план был полностью изложен в протоколе. в линейной модели вы, безусловно, можете заранее указать контрасты, на которые вы хотели бы взглянуть, если ANOVA или ANCOVA обнаружат общую разницу. На такие заранее определенные контрасты было бы неплохо смотреть, если обычное лечение множественности также является его частью.
источник
R
. В частности, я не уверен, что наиболее целесообразно вручную указывать контрастные матрицы для соответствующих контрастов Тьюкиglht()
или выполнять все сравнения по умолчанию. Кроме того, я не уверен, как правильно бороться с повторной мерой сTime
точки зрения post-hoc.Если у вас есть программный пакет, такой как SAS, вы, вероятно, будете использовать proc mixed для создания смешанной модели с повторными измерениями, и если вы укажете, какой контраст вы хотите использовать, SAS будет правильно с ним работать. Вы также можете сделать это с помощью повторного параметра в PROC GLM, но будьте осторожны, поскольку они ведут себя по-разному и делают разные предположения. Повторные наблюдения обычно коррелируют, потому что они имеют что-то общее. Я часто повторял измерения для одного и того же пациента в разные моменты времени. Таким образом, при вычислении контрастов ковариационные члены входят в проблему.
источник