No creo que su análisis es válido. El problema es que al calcular T2a' y T2b' hay incertidumbre en el beta1s y pretender que esas estimaciones son fijos y correcta. De ahí su error estándar de la diferencia será baja de dos, y su estimación demasiado baja.
Usted puede utilizar un modelo multinivel o de un modelo de ecuaciones estructurales.
Para un modelo de ecuaciones estructurales, configurar sus datos como de ancho, por lo que una persona es una fila.
Para el modelo multinivel, configurarlo para que cada persona tiene una fila para su t2a puntuación y una fila para su t2b puntuación.
Aquí un poco de código para cargar las bibliotecas, y hacer algunos datos:
library(lavaan)
library(lme4)
set.seed(12345)
d <- data.frame(id = 1:100,
t1a = rnorm(100),
t1b = rnorm(100),
t2a = rnorm(100),
t2b = rnorm(100))
Aquí está el modelo de ecuaciones estructurales:
model1 <- "
# regressions
t2a ~ t1a + t1b
t2b ~ t1a + t1b
# intercepts
t2a ~ a * 1
t2b ~ b * 1
# compare intercepts
d := a - b"
fit1 <- sem(model1, d)
summary(fit1)
La parte importante de la producción es el parámetro d:
Defined Parameters:
Estimate Std.Err z-value P(>|z|)
d -0.217 0.153 -1.421 0.155
Ahora me puede cambiar la forma de los datos:
a <- setNames(d[c("t1a", "t1b", "t2a")],
c("t1a", "t1b", "t2"))
b <- setNames(d[c("t1a", "t1b", "t2b")],
c("t1a", "t1b", "t2"))
a$group <- "a"
b$group <- "b"
a$id <- 1:100
b$id <- 1:100
dLong <- rbind(a, b)
Y ajuste de un modelo mixto:
summary(lmer(t2 ~ t1a * group + t1b * group + (1|id), data = dLong))
El parámetro importante es el grupo b
Fixed effects:
Estimate Std. Error t value
groupb 0.21719 0.13731 1.582
Los dos parámetros son los mismos, y el SEs se diferencian por un poco (como el tamaño de la muestra aumenta, la diferencia gotas).