4 votos

Análisis longitudinal con intervención

Espero que esta pregunta se ajuste al tema de este foro.

Consideremos un conjunto de datos: una cohorte de N sujetos ( s_i ), con mediciones en puntos temporales fijos ( t_i ) (cada semana) de alguna cantidad ( Q_ij ) . A continuación, después de K semanas, se produjo alguna intervención y se continuó midiendo la misma cantidad en la misma cohorte a los mismos intervalos de tiempo (semanalmente) durante otras K semanas. En las notaciones de la matriz, el conjunto de datos ANTES y DESPUÉS DE la intervención tiene la misma forma (hay la misma cantidad de semanas K) y puede representarse como

     | t_1  | t_2  | t_3  |... | t_K  |
  s_1| Q_11 | Q_12 | Q_13 |... | Q_1K |
  s_2| Q_21 | Q_22 | Q_23 |... | Q_2K |
  s_3| Q_31 | Q_32 | Q_33 |... | Q_3K |
   .
   .
   .
  s_N| Q_N1 | Q_N2 | Q_N3 |... | Q_NK |

PREGUNTA Cómo determinar si la intervención tuvo algún efecto sobre la cantidad medida Q ?

Soy muy nuevo en la estadística y el análisis longitudinal, así que esta pregunta puede parecer muy básica.

Pensé en varios enfoques:

  1. Conceptualmente es similar a la prueba t emparejada, pero debe ajustarse al tamaño de la cohorte (¿ANOVA?)
  2. Otro enfoque es calcular una pendiente sobre los puntos K para cada sujeto antes y después de la intervención y compararlos, y luego comprobar si su diferencia es estadísticamente significativa basándose en los errores e intervalos de confianza. Y de alguna manera tener en cuenta todos los sujetos (¿promedio sobre las pendientes?)

Estoy seguro de que es un problema habitual en los análisis longitudinales con un enfoque estándar para evaluar el efecto de la intervención.

¿Alguna sugerencia sobre las cajas de herramientas? Yo trabajo con python/matlab, pero R se puede considerar perfectamente.

ACTUALIZACIÓN

Aquí está la muestra de mis datos: 20 sujetos durante 8 semanas de mediciones enteras en tiempos igualmente espaciados, antes y después de la intervención (las filas corresponden al mismo sujeto antes y después de la intervención)

Antes:

   0.00000    1.00000    1.00000    1.00000    1.00000    3.00000    3.00000    5.00000
  16.00000   16.00000   16.00000   14.00000   12.00000   12.00000   12.00000   12.00000
   3.00000    2.00000    3.00000   10.00000   10.00000   12.00000   14.00000   14.00000
   5.00000    3.00000    2.00000    1.00000    0.00000    0.00000    1.00000    0.00000
  10.00000    7.00000    3.00000    4.00000    3.00000    5.00000    4.00000    4.00000
   8.00000    9.00000    9.00000    9.00000    6.00000    7.00000    8.00000   11.00000
   5.00000    5.00000    3.00000    4.00000    8.00000    7.00000   11.00000    4.00000
   3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    5.00000
  10.00000   10.00000   10.00000   10.00000   10.00000   10.00000   10.00000   10.00000
  17.00000   11.00000   12.00000   21.00000   18.00000   12.00000   15.00000   16.00000
   7.00000    9.00000    8.00000    8.00000    7.00000    8.00000    7.00000    9.00000
  13.00000   17.00000   14.00000   19.00000   20.00000   23.00000   23.00000   24.00000
   3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000
   7.00000    8.00000    4.00000    5.00000    5.00000   12.00000    9.00000   12.00000
  15.00000   10.00000   13.00000   14.00000   12.00000   11.00000   13.00000   15.00000
   2.00000    3.00000    2.00000    2.00000    2.00000    6.00000    2.00000    2.00000
   3.00000    2.00000    3.00000    3.00000    1.00000    3.00000    3.00000    1.00000
   3.00000    2.00000    3.00000    2.00000    1.00000    1.00000    4.00000    2.00000
  13.00000   15.00000   13.00000    4.00000    7.00000    8.00000    9.00000    9.00000
   0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000
   8.00000    6.00000    7.00000   10.00000    3.00000    9.00000   10.00000    6.00000

Después:

   3.00000    1.00000    3.00000    2.00000    1.00000    4.00000    3.00000    2.00000
  12.00000    6.00000    6.00000    6.00000    6.00000    4.00000    3.00000    3.00000
  15.00000   15.00000   12.00000    9.00000    1.00000    3.00000    3.00000    2.00000
   0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000
   2.00000    6.00000    3.00000    3.00000    6.00000    5.00000    5.00000    3.00000
   9.00000    7.00000    9.00000    7.00000    8.00000    7.00000   10.00000    5.00000
   8.00000    6.00000    6.00000    6.00000    6.00000    5.00000    3.00000    6.00000
   3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000
  10.00000   10.00000   10.00000   10.00000   10.00000   10.00000   10.00000   10.00000
  10.00000    9.00000    8.00000    9.00000    9.00000    5.00000    8.00000   10.00000
  12.00000    9.00000    7.00000    7.00000    7.00000    7.00000    6.00000    7.00000
  26.00000   23.00000   23.00000   16.00000   12.00000   12.00000   12.00000   22.00000
   3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000    3.00000
  10.00000   13.00000    4.00000   10.00000    3.00000    7.00000   11.00000    8.00000
  15.00000   14.00000    9.00000   14.00000   15.00000   15.00000    7.00000    7.00000
   2.00000    3.00000    4.00000    4.00000    4.00000    2.00000    3.00000    2.00000
   2.00000    1.00000    3.00000    2.00000    2.00000    3.00000    1.00000    2.00000
   3.00000    4.00000    2.00000    4.00000    2.00000    5.00000    5.00000    4.00000
  19.00000    6.00000   10.00000   13.00000   15.00000   13.00000   11.00000   15.00000
   0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000    0.00000
   7.00000    8.00000   12.00000    9.00000    4.00000    9.00000    7.00000    4.00000
  1. ¿Hay alguna diferencia entre las dos cohortes debido a la intervención?
  2. Dado el pequeño tamaño de la muestra, ¿la diferencia (si se encuentra) será estadísticamente significativa?
  3. ¿Podemos concluir algo significativo de estos datos? (¿antes y después de la intervención?

Tengo algo de experiencia en aprendizaje automático y análisis de series temporales, por lo que puedo recoger conceptos, pero me falta experiencia para trabajar con datos longitudinales y para hacer análisis estadísticos sofisticados. Estoy leyendo el libro de Peter Diggle, sobre el análisis de datos longitudinales, así que espero conseguir una comprensión del material.

Te agradecería mucho que publicaras el código (R, Python, Matlab) de cómo analizar este conjunto de datos, para poder aprender de este ejemplo explícito.

4voto

Owen Fraser-Green Puntos 642

Se podría pensar que una cuestión tan sencilla como ésta habría recibido más atención en la literatura, pero .... Para determinar una anomalía hay que tener un modelo que caracterice el comportamiento típico. Tomé tus 336 valores y simplemente los grafiqué y obtuve muy poco apoyo visual para cualquier actividad en o alrededor del periodo 169 PERO la simple comprobación visual es equivalente a un simple modelo medio. enter image description here . A continuación, utilicé AUTOBOX (mi herramienta preferida que había ayudado a desarrollar) para identificar simultáneamente un modelo de memoria adecuado y cualquier actividad excepcional. A continuación se muestra un gráfico de la realidad, el ajuste y la previsión utilizando ese modelo. enter image description here y el modelo enter image description here sugiriendo tres desplazamientos de nivel y unas 14 anomalías al tiempo que incorpora un componente AR(1) muy significativo, Cualquier análisis minucioso de datos de series temporales incluye un gráfico de los residuos que se presenta aquí enter image description here y el acf de los residuos enter image description here reflejando/sugiriendo una aparente suficiencia del modelo. En conclusión, me parece (y a AUTOBOX) que el periodo 169 no sugiere ninguna actividad excepcional. Espero que esto le ayude a usted y a otros lectores interesados.

3voto

Tatiana Racheva Puntos 547

Paso 1: Estructure sus datos en formato largo:

  ID | time | grp | value |
  s_1| 1    |  0  | Q_11  |
  s_1| 2    |  0  | Q_12  |
  s_1| 3    |  0  | Q_13  |
  s_1| 4    |  1  | Q_14  |
  s_1| 5    |  1  | Q_15  |
  s_1| 6    |  1  | Q_16  |

Paso 2: Ajustar algunos modelos de efectos mixtos (lineales, logísticos, etc. dependiendo de la distribución de su resultado). Supongamos una regresión lineal de efectos mixtos en R:

library("nlme")

*Below will tell you if the means are different before versus after intervention. 
lme(value~factor(grp), data=Your_Dataset, random= ~1|ID)

*Below will tell you if a linear slope of time is different before versus after intervention. 
lme(value~factor(grp) + time + factor(grp)*time, data=Your_Dataset, random= ~time|ID)
*Specifically the interaction of grpXtime tells you if the slopes differ. 

Más ejemplos aquí: http://dornsife.usc.edu/psyc/20150423gc3/

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