Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

4 votos

¿Este es un método válido y tiene un nombre común? (análisis de covarianza)

Se midieron las mismas personas en cuatro ocasiones (T1a,T1b,T2a,T2b). Nuestra teoría es que las diferencias entre T2a y T2b son causadas por la influencia de T1a en T2a y de T1b en T2b. Nuestra hipótesis es que si eliminamos la influencia de T1a/b en T2a/b, la diferencia entre T2a/b será igual a cero. Esto es más o menos como un análisis de covarianza para medidas repetidas, pero no pude encontrar en cualquier lugar lo que el GLM para este caso se parece (o cómo se hace en R).

Por lo tanto, se calculó la regresión de T2a~T1a y T2b~T1b. A continuación, se calculó T2a' = T2a - beta1*T1a y T2b' = T2b - beta1*T1b y, a continuación, una prueba t pareada para comparar T2a' y T2b'.

Es nuestro método de fiar y si es así ¿tiene un nombre?

Es comparable a un análisis de covarianza para medidas repetidas?

Y si no, ¿qué hacer en su lugar (y cómo hacerlo)?

3voto

Brandon Grossutti Puntos 140

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).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X