Построение вложенных данных - многоуровневая регрессия с категориальными предикторами
Я пишу свою магистерскую диссертацию, и я застрял со сложностью моих данных. Поэтому я хотел бы построить свои данные, чтобы увидеть, что там.
Мой фрейм данных выглядит так: у меня есть 333 воспринимающих (PID), которые оценили 60 целевых фотографий (TID) каждый, в результате чего получается 19980 строк. Каждый воспринимающий (PID) оценил фотографию каждой цели на предмет их привлекательности (Rating) и предоставил несколько самоотчетов о себе (SDO_mean, KSA_mean, угроз_overall). Фотографии были либо с фотографии типа A (Dwithin = 0), либо с типа B (Dwithin = 1), что является моим внутренним фактором, так как каждый воспринимающий видел все фотографии. Кроме того, воспринимающим было назначено одно из двух условий между субъектами (Dbetween): Все фотографии (TID) из типа B (Dwithin = 1) были помечены как люди с миграционным фоном (Dbetween = 0) или как беженцы (Dbetween = 1).). Это приводит к вложенному дизайну, где рейтинги вложены в PID, а также в TID. Мои данные выглядят так:
TID PID Dwithin Dbetween Rating SDO_mean KSA_mean threats_overall
1 1 0 0 5 3.1 2.3 2.2
2 1 1 0 2 3.1 2.3 2.2
3 1 0 0 5 3.1 2.3 2.2
4 1 1 0 1 3.1 2.3 2.2
5 1 0 0 3 3.1 2.3 2.2
6 1 1 0 3 3.1 2.3 2.2
Теперь я хочу предсказать симпатичный рейтинг в основном по категориальным переменным Dwithin и Dbetween. Поскольку Dbetween можно интерпретировать только как взаимодействие Dwithin*Dbetween (поскольку метка была только для Dwitihn=1 целей), формула будет иметь вид:
model1 <- lmer(Rating~1+Dwithin+Dbetween+Dwithin*Dbetween+(1+Dwithin|PID)+(1|TID),data=df)
Теперь я хочу построить данные, которые я использую для регрессии. Одним из вариантов может быть построение рейтинга отдельно для каждого условия Dwithin / Dbetween. Или построить регрессию, как в формуле model1. Но так как они являются категориальными предикторами, мне не удалось правильно представить данные. Я смотрел в lattice()
но не мог применить это к моим данным. Есть ли кто-нибудь, кто мог бы помочь мне подготовить это? Заранее большое спасибо!
@SASpencer: я думал, например, что-то вроде этого. Но моя шкала y не непрерывна... она имеет только целые числа от 1 до 5. Это также может быть интересно для комбинации Dwithin и Dbetween (так как в вашем сюжете)
Вот воспроизводимый пример:
mysamp <- function(n, m, s, lwr, upr, nnorm) {
set.seed(1)
samp <- rnorm(nnorm, m, s)
samp <- samp[samp >= lwr & samp <= upr]
if (length(samp) >= n) {
return(sample(samp, n))
}
}
options(digits=2)
TID <- rep(1:60, times=333)
PID <- rep(1:333,each=60)
Dwithin <- rep(rep(0:1, times=19980/2))
Dbetween <- rep(rep(0:1, each=60),times=333)[1:19980]
Rating <- floor(runif(19980, min=1, max=6))
SDO_mean <- rep(mysamp(n=333, m=4, s=2.5, lwr=1, upr=5, nnorm=1000000), each=60)
KSA_mean <- rep(mysamp(n=333, m=2, s=0.8, lwr=1, upr=5, nnorm=1000000), each=60)
threats_overall <- rep(mysamp(n=333, m=3, s=1.5, lwr=1, upr=5, nnorm=1000), each=60)
df <- data.frame(TID,PID,Dwithin,Dbetween, Rating, SDO_mean, KSA_mean, threats_overall)