Повторные измерения, смешанная модель ANCOVA в R - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть набор данных, который состоит из 44 объектов, каждый из которых имеет 2, 3 или 4 измерения (т.е. не каждый объект имеет одинаковое количество измерений).У меня есть две категориальные переменные, которые сильно различаются между предметами, но иногда внутри предмета.Возраст субъекта также включается в набор данных как ковариат для измерений, поскольку он варьируется между измерениями для отдельного субъекта.

Интересующие вопросы: Как независимые переменные влияют на нашу зависимую переменную?Возраст также влияет на нашу зависимую переменную?Это несколько в два раза, в этом возрасте варьируется в зависимости от субъекта, но также и между субъектами.

Как лучше всего кодировать / моделировать данные такого рода?Я пробовал следующее, но это, кажется, не возвращает соответствующий результат.

aov(DV ~ Age + IV1 + IV2 + Error(1/SubjectID), data = df) 

Вот некоторые примеры данных.

df <-data.frame(Subject = c(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20), IV1 = c(1,3,2,2,1,3,2,3,1,4,1,3,1,3,2,2,1,2,1,3,2,4,4,2,2,3,4,1,2,4,4,1,3,3,5,1,3,3,4,1,3,3,5,1,3,3,4,2,2,4,4,1,2,4,4,2,3,4), IV2 = c(2,2,3,3,2,2,3,3,2,2,1,1,3,3,1,1,1,1,2,2,1,1,1,2,2,2,2,1,1,1,1,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1),Age = c(10,12,11,12,9,10,10,12,10,13,9,10,9,10,10,11,10,11,9,10,11,13,14,10,11,12,13,10,11,12,13,9,10,11,12,9,10,11,12,9,10,11,12,9,10,11,12,10,11,12,13,10,11,12,13,12,13,14),DV = c(209,173,181,113,178,166,368,68,133,24,232,182,77,59,263,235,68,44,254,263,270,203,75,99,200,118,142,174,528,340,325,145,97,57,134,97,203,141,72,294,217,159,115,131,82,206,65,637,471,139,195,114,273,392,271,239,141,228))

Любая помощь будет оценена.Спасибо.

1 Ответ

0 голосов
/ 29 ноября 2018

Возможно, я ошибаюсь, но я думаю, что это скорее вопрос перекрестной проверки, а не стекопотока, который имеет дело главным образом с кодированием.

Что касается вопроса - было бы очень полезно, если бы вы загрузили некоторые образцы данных, чтобы люди могли попробовать и посмотреть, как они выглядят.В предположении, не видя данных образца, вы можете не захотеть ANCOVA.ANCOVA / ANOVA довольно чувствительны к несбалансированным конструкциям (т. Е. Неравным конструкциям выборки).Когда вы говорите, что каждый из них имеет несколько измерений, которые повторялись 2, 3 или 4 раза, вы имеете в виду, что у некоторых субъектов было больше измерений, чем у других?Представляют ли разные возрасты повторные измерения?

Если это так, вы можете попробовать это:

library(lme4)
dv.lmer <- lmer(DV ~ IV1 + IV2 + (1|SubjectID/Age), data = df) 
summary(dv.lmer)

Что такое переменная ответа DV?

Кроме того, исключили ли вы какие-либо эффекты взаимодействия (т. Е. Находятся ли они за рамками вашего проекта)?

РЕДАКТИРОВАТЬ:

ANCOVA определенно не подходит дляЯ боюсь, что эти данные с учетом разницы в количестве образцов и неравных промежутков между повторными измерениями.Фактически, это делает довольно трудным моделирование с использованием любого стандартного подхода, по крайней мере, в этом формате.

Вы можете создать новую переменную возраста, которая упрощает возраст до того, каким измерением она была (то есть первое, второе или третье).).Оттуда вы можете попробовать что-то вроде модели со смешанным эффектом.Выгода заключается в том, что вы теряете любой возраст или время между данными переоценки.

Другой альтернативой было бы взять разницу между временными точками, т. Е. Для субъекта 13 взять разность всех переменных.Однако это сократит ваши данные до первых двух временных точек, так как в противном случае вы вернетесь на территорию с повторными измерениями ...

Все сводится к тому, что вас интересует.

Я мог бы помочь больше, если вы поместите данные в формат, который я могу легко импортировать в R (например, df <- data.frame (DV = c (), IV1 = c () и т. Д.).)).Эта ссылка (<a href="https://www.r-bloggers.com/three-tips-for-posting-good-questions-to-r-help-and-stack-overflow/" rel="nofollow noreferrer">https://www.r -bloggers.com / 3-tips-for-post-good-questions-to-r-help-and-stack-overflow / ) - хорошее место для начала!

РЕДАКТИРОВАТЬ 2: Вот один подход к проблеме, хотя выводы, которые можно сделать, ограничены из-за наблюдательного характера исследования и смешанных факторов, скрытых в этих данных.Это довольно распространенная проблема с человеческими исследованиями (и экологическими данными, с которыми я часто имею дело).Это не значит, что вы не можете нарисовать корреляции и шаблоны, но вы должны быть осторожны с тем, как вы представляете эти результаты.Ниже приведена одна возможность, но она действительно возвращает вас к вопросу, который вы хотите задать, относительно данных о правильности модели ...

Не стесняйтесь спрашивать, если что-то неясно!

 #Corrections
 df$Subject <- as.character(df$Subject)

 #Creating new sample time points
 df$SampleTime <- 0 

 uniSubject <- unique(df$Subject)

 #filling vector
 for(i in 1:length(uniSubject)){

   df[df$Subject == uniSubject[i],]$SampleTime <- 1:nrow(df[df$Subject == 
 uniSubject[i],])

 }


 #Modelling
 library(lme4)


 #Interaction model
 DVint.lmer <- lmer(DV ~ IV1 * IV2 + (1 + SampleTime|Subject), data = df)
 summary(DVint.lmer)

 #Additive model
 DVadd.lmer <- lmer(DV ~ IV1 + IV2 + (1 + SampleTime|Subject), data = df)
 summary(DVadd.lmer)

 #Comparing models to see if interaction is importnat
 anova(DVint.lmer, DVadd.lmer) #Interaction does not explain any 
 significant variation at the 0.05 level in these data. Parsimony 
 suggests using DVadd.lmer model

РЕДАКТИРОВАТЬ:

Учитывая последний комментарий о важности Age как фиксированного эффекта, я думаю, что это будет ближе всего к отметке:

 DVint.lmer <- lmer(DV ~ IV1 * IV2 * Age + (1 + Age|Subject), data = df)

Будьте осторожны при интерпретации, какэто очень грязные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...