ฉันพยายามสร้างการทดสอบการโต้ตอบหลายครั้งระหว่างมาตรการทั้งสองlm
และlmer
มาตรการซ้ำ (2x2x2) เหตุผลที่ฉันต้องการเปรียบเทียบทั้งสองวิธีนี้เป็นเพราะ GLM ของ SPSS สำหรับการวัดซ้ำ ๆ ทำให้ได้ผลลัพธ์ที่เหมือนกันกับlm
วิธีที่นำเสนอที่นี่ดังนั้นในตอนท้ายฉันต้องการเปรียบเทียบ SPSS กับ R-lmer จนถึงตอนนี้ฉันทำได้แค่ทำซ้ำ (อย่างใกล้ชิด) ปฏิสัมพันธ์บางอย่าง
คุณจะพบสคริปต์ด้านล่างเพื่อแสดงจุดของฉันให้ดีขึ้น:
library(data.table)
library(tidyr)
library(lmerTest)
library(MASS)
set.seed(1)
N <- 100 # number of subjects
sigma <- 1 # popuplation sd
rho <- .6 # correlation between variables
# X1: a a a a b b b b
# X2: a a b b a a b b
# X3: a b a b a b a b
mu <- c(5, 3, 3, 5, 3, 5, 5, 3) # means
# Simulate the data
sigma.mat <- rep(sigma, length(mu))
S <- matrix(sigma.mat, ncol = length(sigma.mat), nrow = length(sigma.mat))
Sigma <- t(S) * S * rho
diag(Sigma) <- sigma**2
X <- data.table( mvrnorm(N, mu, Sigma) )
setnames(X, names(X), c("aaa", "aab", "aba", "abb", "baa", "bab", "bba", "bbb"))
X[, id := 1:.N]
# Long format
XL <- data.table( gather(X, key, Y, aaa:bbb) )
XL[, X1 := substr(key, 1, 1)]
XL[, X2 := substr(key, 2, 2)]
XL[, X3 := substr(key, 3, 3)]
# Recode long format (a = +1; b = -1)
XL[, X1c := ifelse(X1 == "a", +1, -1)]
XL[, X2c := ifelse(X2 == "a", +1, -1)]
XL[, X3c := ifelse(X3 == "a", +1, -1)]
### Composite scores to be used with lm
# X2:X3 2-way interaction (for half the data; i.e. when X1 == "a")
X[, X1a_X2.X3 := (aaa - aab) - (aba - abb)]
# X2:X3 2-way interaction (for all the data)
X[, aa := (aaa + baa) / 2]
X[, ab := (aab + bab) / 2]
X[, ba := (aba + bba) / 2]
X[, bb := (abb + bbb) / 2]
X[, X2.X3 := (aa - ab) - (ba - bb)]
# X1:X2:X3 3-way interaction (for all the data)
X[, X1.X2.X3 := ( (aaa - aab) - (aba - abb) ) - ( (baa - bab) - (bba - bbb) )]
### Fit models
# X2:X3 2-way interaction (for half the data; i.e. when X1 == "a")
summary( lm(X1a_X2.X3 ~ 1, X) ) # t = 34.13303
summary( lmer(Y ~ X2c*X3c + (X2c+X3c|id), XL[X1 == "a"]) ) # t = 34.132846 close match
summary( lmer(Y ~ X2c*X3c + (X2c+X3c||id), XL[X1 == "a"]) ) # t = 34.134624 close match
# X2:X3 2-way interaction (for all the data)
summary( lm(X2.X3 ~ 1, X) ) # t = 0.3075025
summary( lmer(Y ~ X2c*X3c + (X2c+X3c|id), XL) ) # t = 0.1641932
summary( lmer(Y ~ X2c*X3c + (X2c+X3c||id), XL) ) # t = 0.1640710
summary( lmer(Y ~ X2c*X3c + (X2c*X3c|id), XL) ) # t = 0.1641765
anova( lmer(Y ~ X2c*X3c + (X2c*X3c|id), XL), ddf = "Kenward-Roger" ) # t = 0.1643168
summary( lmer(Y ~ X2c*X3c + (X2c*X3c|id), XL, REML = FALSE) ) # t = 0.1645303
summary( lmer(Y ~ X2c*X3c + (X2c*X3c||id), XL) ) # t = 0.1640704
# X1:X2:X3 3-way interaction (for all the data)
summary( lm(X1.X2.X3 ~ 1, X) ) # t = 46.50177
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c - X1c:X2c:X3c|id), XL) ) # t = 49.0317599
anova( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c - X1c:X2c:X3c|id), XL), ddf = "Kenward-Roger" ) # t = 49.03176
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c - X1c:X2c:X3c|id), XL, REML = FALSE) ) # t = 49.2677606
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c - X1c:X2c:X3c||id), XL) ) # t = 46.5193774 close match
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c|id), XL) ) # unidentifiable
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c|id), XL,
control = lmerControl(check.nobs.vs.nRE="ignore")) ) # t = 46.5148684 close match
ที่คุณสามารถดูจากข้างต้นไม่มีการlm
ประมาณการว่าจะถูกจับคู่โดยlmer
คน แม้ว่าผลลัพธ์บางอย่างจะคล้ายกันมากและอาจแตกต่างกันเพียงเพราะเหตุผลเชิงตัวเลข / การคำนวณ X2:X3 2-way interaction (for all the data)
ช่องว่างระหว่างทั้งสองวิธีการประมาณค่าที่มีขนาดใหญ่เป็นพิเศษสำหรับ
คำถามของฉันคือถ้ามีวิธีที่จะได้รับเป็นที่แน่นอนผลลัพธ์เดียวกันด้วยวิธีการทั้งสองและหากมีความถูกต้องวิธีการดำเนินการวิเคราะห์ด้วยlmer
(แม้ว่ามันอาจจะไม่ตรงกับlm
ผลการค้นหา)
โบนัส:
ฉันสังเกตเห็นว่าการt value
เชื่อมโยงกับการโต้ตอบ 3 ทางได้รับผลกระทบจากวิธีการเข้ารหัสซึ่งดูเหมือนแปลกมากสำหรับฉัน:
summary( lmer(Y ~ X1*X2*X3 + (X1*X2*X3 - X1:X2:X3||id), XL) ) # t = 48.36
summary( lmer(Y ~ X1c*X2c*X3c + (X1c*X2c*X3c - X1c:X2c:X3c||id), XL) ) # t = 56.52
lm
แบบจำลอง) ด้วยlmer
และยังรู้ว่าการวิเคราะห์ที่ถูกต้อง lmer
สำหรับข้อมูลประเภทนี้คืออะไร
lm
; lmer
ฉันสงสัยว่าทำไมเสื้อสถิติคือประมาณสองครั้งมีขนาดเล็กใน คุณอาจจะสามารถสังเกตปรากฏการณ์เดียวกันนี้ได้โดยใช้การออกแบบ 2x2 ที่ง่ายกว่าและดูเอฟเฟกต์หลักโดยไม่ต้องกังวลกับ 2x2x2 และการโต้ตอบที่ซับซ้อน