¿Tiene sentido que un efecto fijo se anide dentro de uno aleatorio, o cómo codificar medidas repetidas en R (aov y lmer)?

23

He estado revisando esta descripción general de las fórmulas lm / lmer R de @conjugateprior y la siguiente entrada me ha confundido:

Ahora suponga que A es aleatorio, pero B es fijo y B está anidado dentro de A.

aov(Y ~ B + Error(A/B), data=d)

A continuación, lmer(Y ~ B + (1 | A:B), data=d) se proporciona una fórmula de modelo mixto análogo para el mismo caso.

No entiendo muy bien lo que significa. En un experimento donde los sujetos se dividen en varios grupos, tendríamos un factor aleatorio (sujetos) anidado dentro de un factor fijo (grupos). Pero, ¿cómo puede anidarse un factor fijo dentro de un factor aleatorio? ¿Algo arreglado anidado dentro de sujetos aleatorios? ¿Es posible? Si no es posible, ¿tienen sentido estas fórmulas R?


Esta visión general se menciona que se basa parcialmente en la páginas de la personalidad con el proyecto de hacer ANOVA en I se basó en este tutorial sobre medidas repetidas en R . Allí se da el siguiente ejemplo para las medidas repetidas ANOVA:

aov(Recall ~ Valence + Error(Subject/Valence), data.ex3)

Aquí los sujetos se presentan con palabras de valencia variable (factor con tres niveles) y se mide su tiempo de recuerdo. Cada tema se presenta con palabras de los tres niveles de valencia. No veo nada anidado en este diseño (parece cruzado, según la gran respuesta aquí ), por lo que ingenuamente pensaría que Error(Subject)o (1 | Subject)debería ser un término aleatorio apropiado en este caso. El Subject/Valence"anidamiento" (?) Es confuso.

Tenga en cuenta que entiendo que Valencees un factor dentro del tema . Pero creo que no es un factor "anidado" dentro de los sujetos (porque todos los sujetos experimentan los tres niveles de Valence).


Actualizar. Estoy explorando preguntas en CV sobre la codificación de medidas repetidas ANOVA en R.

  • Aquí se usa lo siguiente para medidas fijas dentro del sujeto / medidas repetidas A y aleatorio subject:

    summary(aov(Y ~ A + Error(subject/A), data = d))
    anova(lme(Y ~ A, random = ~1|subject, data = d))
    
  • Aquí para dos efectos fijos dentro del sujeto / medidas repetidas A y B:

    summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))
    lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d) 
    
  • Aquí para tres efectos dentro del sujeto A, B y C:

    summary(aov(Y ~ A*B*C + Error(subject/(A*B*C)), data=d))
    lmer(Y ~ A*B*C + (1|subject) + (0+A|subject) + (0+B|subject) + (0+C|subject) + (0+A:B|subject) + (0+A:C|subject) + (0+B:C|subject), data = d)
    

Mis preguntas:

  1. ¿Por qué Error(subject/A)y no Error(subject)?
  2. ¿Es (1|subject)o (1|subject)+(1|A:subject)o simplemente (1|A:subject)?
  3. ¿Es (1|subject) + (1|A:subject)o (1|subject) + (0+A|subject), y por qué no simplemente (A|subject)?

Hasta ahora he visto algunos hilos que afirman que algunas de estas cosas son equivalentes (por ejemplo, la primera: una afirmación de que son iguales pero una afirmación opuesta sobre SO ; la tercera: una especie de afirmación de que son lo mismo ). ¿Son ellos?

ameba dice Reinstate Monica
fuente
2
Solo un comentario rápido para decir que, hablando estrictamente conceptualmente , en mi opinión, prácticamente nunca tiene sentido tener un factor fijo anidado en un factor aleatorio. También he leído al menos un autor de libros de texto (no recuerdo la referencia en este momento). Dicho esto, es posible que algunas de las especificaciones del modelo que escribiste anteriormente sean estadísticamente equivalentes a los modelos que tienen más sentido ... Tendría que pensarlo más y jugar un poco con él.
Jake Westfall
44
En realidad, supongo que tiene sentido si piensas en la forma en que R interpreta la sintaxis A / B: simplemente expande esto a A + A: B. Entonces, si consideramos un término aleatorio como subject/condition, esto es conceptualmente dudoso porque parece sugerir que las condiciones están anidadas en los sujetos, cuando claramente es lo contrario, pero el modelo que realmente se ajusta es subject + subject:condition, que es un modelo perfectamente válido con efectos de sujeto aleatorio y sujeto aleatorio X pendientes.
Jake Westfall
@JakeWestfall Gracias, esto es algo en lo que pienso por ahora, pero me gustaría que alguien me lo explicara correctamente. En realidad me sorprende que esto resulte ser una pregunta no trivial; Hubiera esperado que usted fuera una de las personas que respondería de inmediato. Pero esto es un alivio, ya que originalmente pensé que mi confusión debía ser tonta. Por cierto, ¿hay alguna referencia estándarlm y aovfórmulas? Si quiero tener una fuente autorizada sobre qué aovhace exactamente (¿es un contenedor lm?) Y cómo funcionan los Error()términos, ¿dónde debo buscar?
ameba dice Reinstate Monica
1
@amoeba Sí, aoves una envoltura lmen el sentido que lmse usa para el ajuste de mínimos cuadrados, pero aovrealiza un trabajo adicional (en particular, traduce el Errortérmino para lm). La fuente autorizada es el código fuente o posiblemente la referencia dada en help("aov"): Chambers et al (1992). Pero no tengo acceso a esa referencia, así que buscaría en el código fuente.
Roland

Respuestas:

12

En los modelos mixtos, el tratamiento de los factores como fijos o aleatorios, particularmente en relación con si están cruzados, parcialmente cruzados o anidados, puede generar mucha confusión. Además, parece haber diferencias en la terminología entre lo que se entiende por anidamiento en el mundo de experimentos anova / diseñado y el mundo de modelos mixtos / multinivel.

No profeso saber todas las respuestas, y mi respuesta no estará completa (y puede producir más preguntas), pero trataré de abordar algunos de los problemas aquí:

¿Tiene sentido que un efecto fijo se anide dentro de uno aleatorio, o cómo codificar medidas repetidas en R (aov y lmer)?

(el título de la pregunta)

No, no creo que esto tenga sentido. Cuando se trata de medidas repetidas, entonces, sea cual sea el motivo por el que se repiten las medidas, será aleatorio, llamémoslo Subject, y en el lme4que queremos incluir Subjecten el lado derecho de uno o más |en la parte aleatoria de la fórmula. Si tenemos otros efectos aleatorios, estos son cruzados, parcialmente cruzados o anidados, y mi respuesta a esta pregunta aborda eso.

El problema con estos experimentos diseñados de tipo anova parece ser cómo lidiar con factores que normalmente se considerarían fijos, en una situación de medidas repetidas, y las preguntas en el cuerpo del OP hablan de esto:

¿Por qué error (asunto / A) y no error (asunto)?

Por lo general, no uso, aov()por lo que podría estar perdiendo algo, pero para mí Error(subject/A)es muy engañoso en el caso de la pregunta vinculada . Error(subject)de hecho conduce a exactamente los mismos resultados.

¿Es (1 | sujeto) o (1 | sujeto) + (1 | A: sujeto) o simplemente (1 | A: sujeto)?

Esto se relaciona con esta pregunta. En este caso, todas las siguientes formulaciones de efectos aleatorios conducen exactamente al mismo resultado:

(1|subject)
(1|A:subject)
(1|subject) + (1|A:subject)
(1|subject) + (1|A:subject) + (1|B:subject)

Sin embargo, esto se debe a que el conjunto de datos simulado en la pregunta no tiene variación dentro de nada, solo se crea con Y = rnorm(48). Si tomamos un conjunto de datos real, como el cakeconjunto de datos en lme4, encontramos que este no será generalmente el caso. De la documentación, aquí está la configuración experimental:

Datos sobre el ángulo de rotura de los pasteles de chocolate hechos con tres recetas diferentes y horneados a seis temperaturas diferentes. Este es un diseño de parcela dividida con las recetas como unidades completas y las diferentes temperaturas que se aplican a las subunidades (dentro de las réplicas). Las notas experimentales sugieren que la numeración replicada representa el ordenamiento temporal.

Un marco de datos con 270 observaciones sobre las siguientes 5 variables.

replicate un factor con niveles del 1 al 15

recipe un factor con niveles A, B y C

temperature un factor ordenado con niveles 175 <185 <195 <205 <215 <225

temp Valor numérico de la temperatura de cocción (grados F).

angle un vector numérico que da el ángulo en que se rompió el pastel.

Por lo tanto, hemos repetido las medidas internas replicate, y también estamos interesados ​​en los factores fijos recipey temperature(podemos ignorarlo tempya que esto es solo una codificación diferente de temperature), y podemos visualizar la situación usando xtabs:

> xtabs(~recipe+replicate,data=cake)

     replicate
recipe 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
     A 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     B 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6
     C 6 6 6 6 6 6 6 6 6  6  6  6  6  6  6

Si recipefuera un efecto aleatorio, diríamos que estos son efectos aleatorios cruzados. De ninguna manera recipe Apertenece a replicate 1ninguna otra réplica.

> xtabs(~temp+replicate,data=cake)

     replicate
temp  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  175 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  185 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  195 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  205 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  215 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3
  225 3 3 3 3 3 3 3 3 3  3  3  3  3  3  3

Del mismo modo para temp.

Entonces, el primer modelo que podríamos ajustar es:

> lmm1 <-  lmer(angle ~ recipe * temperature + (1|replicate), cake, REML= FALSE)

Esto tratará a cada uno replicatecomo la única fuente de variación aleatoria (aparte del residual, por supuesto). Pero podría haber diferencias aleatorias entre recetas. Por lo tanto, podríamos sentir la tentación de incluir recipecomo otro efecto aleatorio (cruzado), pero sería desaconsejable porque tenemos solo 3 niveles, por recipelo que no podemos esperar que el modelo calcule bien los componentes de la varianza. Por lo tanto, podemos usar replicate:recipecomo la variable de agrupación que nos permitirá tratar cada combinación de réplica y receta como un factor de agrupación separado. Entonces, mientras que con el modelo anterior tendríamos 15 intercepciones aleatorias para los niveles de replicateahora tendremos 45 intercepciones aleatorias para cada una de las combinaciones separadas:

lmm3 <-  lmer(angle ~ recipe * temperature + (1|replicate:recipe) , cake, REML= FALSE)

Tenga en cuenta que ahora tenemos (muy ligeramente) resultados diferentes que indican que existe una variabilidad aleatoria debido a la receta, pero no mucho.

También podríamos hacer lo mismo con temperature.

Ahora, volviendo a tu pregunta, también preguntas

¿Por qué (1|subject) + (1|A:subject)y no (1|subject) + (0+A|subject)o incluso simplemente (A|subject)?

No estoy completamente seguro de dónde proviene esto (usando pendientes aleatorias), no parece surgir en las 2 preguntas vinculadas, pero mi problema (1|subject) + (1|A:subject)es que esto es exactamente lo mismo, lo (1|subject/A)que significa que Aestá anidado dentro subject, que en turn significa (para mí) que cada nivel de Aocurre en 1 y solo 1 nivel del subjectcual claramente no es el caso aquí.

Probablemente agregaré y / o editaré esta respuesta después de haberlo pensado un poco más, pero quería aclarar mis pensamientos iniciales.

Robert Long
fuente
Muchas gracias (+1). No estoy seguro de entender el cakeconjunto de datos. Parece que la replicación está anidada en la receta; la razón xtabsque no muestra es exactamente la razón que usted describe en su respuesta anidada vs cruzada: la replicación se codifica de manera confusa como 1-15 y no como 1-45. Para cada receta, se hicieron 15 "réplicas" con 6 pasteles; cada pastel se horneó a diferentes temperaturas. Entonces, la receta es un factor entre sujetos y la temperatura es un factor dentro del sujeto. Entonces, de acuerdo con esa respuesta tuya, debería ser (1|recipe/replicate). ¿No? (1|replicate:recipe)es probablemente equivalente
ameba dice Reinstate Monica
Enfoqué mi pregunta solo en factores dentro del tema, por lo que sería como restringirme cakea una sola receta. Con respecto al tercer punto que dice que no está seguro de dónde proviene, consulte el último enlace en mi Q, con un ejemplo de tres factores dentro del tema. Vea también el comentario votado de Jake bajo esta Q, donde menciona pendientes aleatorias.
ameba dice Reinstate Monica
Y en cuanto a aovque tiene razón que parece que Error(subject/A)y Error(subject)producen los mismos resultados si no hay otros factores, pero tomar un ejemplo de la rosca vinculada con dos factores, y hay Error(subject/(A*B))y Error(subject)no son equivalentes. Mi comprensión actual es que se debe a que la primera incluye pendientes aleatorias.
ameba dice Reinstate Monica
@amoeba el cakeconjunto de datos no fue un buen ejemplo de trabajo. Mis disculpas. Lo examinaré un poco más y probablemente intentaré encontrar uno mejor para ilustrarlo.
Robert Long el
Gracias. Esperamos cualquier actualización, así como la actualización que Placidia está preparando. Mientras tanto, creo que haré una recompensa aquí.
ameba dice Reinstate Monica
3

Ooooops Los comentaristas de alerta han descubierto que mi publicación estaba llena de tonterías. Estaba confundiendo diseños anidados y diseños de medidas repetidas.

Este sitio ofrece un desglose útil de la diferencia entre diseños de medidas anidadas y repetidas. Curiosamente, el autor muestra los cuadrados medios esperados para fijo dentro de fijo, aleatorio dentro de fijo y aleatorio dentro de aleatorio, pero no fijo dentro de aleatorio. Es difícil imaginar lo que eso significaría: si los factores en el nivel A se eligen al azar, entonces la aleatoriedad ahora gobierna la selección de los factores del nivel B. Si se eligen al azar 5 escuelas de un consejo escolar, y luego 3 maestros son elegidos de cada escuela (maestros anidados en las escuelas), los niveles del factor "maestro" ahora son una selección aleatoria de maestros de la junta escolar en virtud de la selección aleatoria de las escuelas. No puedo "arreglar" a los maestros que tendré en el experimento.

Placidia
fuente
2
+1, muchas gracias. Todo en tu respuesta tiene sentido para mí. Sin embargo, creo que deberíamos estar de acuerdo en que la palabra "anidado" se está utilizando en dos sentidos distintos y esto causa confusión. @RobertLong dice que A está anidado en B cuando cada nivel de B ocurre junto con diferentes niveles de clases AEg en escuelas que están anidadas en ciudades, etc. En su ejemplo, las materias están anidadas dentro del factor de tratamiento / control. Usted dice que el tiempo está anidado dentro de los sujetos, pero todos los niveles de tiempo ocurren con todos los sujetos, ¡así que Robert diría que están cruzados! Este es un "anidado" diferente. ¿Correcto?
ameba dice Reinstate Monica
1
En su ejemplo, está claro que el tiempo y el tratamiento son efectos fijos, pero está lejos de estar claro que el tiempo está anidado en los pacientes. ¿Puede proporcionar una definición de "anidado"?
Joe King
Mi error. Estaba confundiendo la anidación y las medidas repetidas. He cambiado mi respuesta, ¡otra vez!
Placidia
En realidad, me gustó su respuesta original con correcciones / adiciones de hoy. Había mucha información útil para mi pregunta porque, como ven, en realidad estoy interesado en "medidas repetidas" aquí (y la pregunta sobre "anidación" era solo un punto terminológico). ¡Te sugiero que guardes la revisión anterior!
ameba dice Reinstate Monica
2
Mientras lo escribía, me di cuenta de que los efectos aleatorios en medidas repetidas están anidados, y quiero probar cómo funcionan las matemáticas y los grados de libertad. ¡Ampliaré mi respuesta cuando esté seguro de haberlo clavado!
Placidia