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 Valence
es 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:
- ¿Por qué
Error(subject/A)
y noError(subject)
? - ¿Es
(1|subject)
o(1|subject)+(1|A:subject)
o simplemente(1|A:subject)
? - ¿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?
fuente
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 essubject + subject:condition
, que es un modelo perfectamente válido con efectos de sujeto aleatorio y sujeto aleatorio X pendientes.lm
yaov
fórmulas? Si quiero tener una fuente autorizada sobre quéaov
hace exactamente (¿es un contenedorlm
?) Y cómo funcionan losError()
términos, ¿dónde debo buscar?aov
es una envolturalm
en el sentido quelm
se usa para el ajuste de mínimos cuadrados, peroaov
realiza un trabajo adicional (en particular, traduce elError
término paralm
). La fuente autorizada es el código fuente o posiblemente la referencia dada enhelp("aov")
: Chambers et al (1992). Pero no tengo acceso a esa referencia, así que buscaría en el código fuente.Respuestas:
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í:
(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 ellme4
que queremos incluirSubject
en 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 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.Esto se relaciona con esta pregunta. En este caso, todas las siguientes formulaciones de efectos aleatorios conducen exactamente al mismo resultado:
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 elcake
conjunto de datos enlme4
, encontramos que este no será generalmente el caso. De la documentación, aquí está la configuración experimental:Por lo tanto, hemos repetido las medidas internas
replicate
, y también estamos interesados en los factores fijosrecipe
ytemperature
(podemos ignorarlotemp
ya que esto es solo una codificación diferente detemperature
), y podemos visualizar la situación usandoxtabs
:Si
recipe
fuera un efecto aleatorio, diríamos que estos son efectos aleatorios cruzados. De ninguna manerarecipe A
pertenece areplicate 1
ninguna otra réplica.Del mismo modo para
temp
.Entonces, el primer modelo que podríamos ajustar es:
Esto tratará a cada uno
replicate
como 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 incluirrecipe
como otro efecto aleatorio (cruzado), pero sería desaconsejable porque tenemos solo 3 niveles, porrecipe
lo que no podemos esperar que el modelo calcule bien los componentes de la varianza. Por lo tanto, podemos usarreplicate:recipe
como 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 dereplicate
ahora tendremos 45 intercepciones aleatorias para cada una de las combinaciones separadas: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
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 queA
está anidado dentrosubject
, que en turn significa (para mí) que cada nivel deA
ocurre en 1 y solo 1 nivel delsubject
cual 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.
fuente
cake
conjunto de datos. Parece que la replicación está anidada en la receta; la razónxtabs
que 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 equivalentecake
a 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.aov
que tiene razón que parece queError(subject/A)
yError(subject)
producen los mismos resultados si no hay otros factores, pero tomar un ejemplo de la rosca vinculada con dos factores, y hayError(subject/(A*B))
yError(subject)
no son equivalentes. Mi comprensión actual es que se debe a que la primera incluye pendientes aleatorias.cake
conjunto 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.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.
fuente