Supongamos que tengo participantes, cada uno de los cuales da una respuesta 20 veces, 10 en una condición y 10 en otra. Encajo un modelo lineal de efectos mixtos que compara en cada condición. Aquí hay un ejemplo reproducible que simula esta situación usando el paquete en :S Slme4
R
library(lme4)
fml <- "~ condition + (condition | participant_id)"
d <- expand.grid(participant_id=1:40, trial_num=1:10)
d <- rbind(cbind(d, condition="control"), cbind(d, condition="experimental"))
set.seed(23432)
d <- cbind(d, simulate(formula(fml),
newparams=list(beta=c(0, .5),
theta=c(.5, 0, 0),
sigma=1),
family=gaussian,
newdata=d))
m <- lmer(paste("sim_1 ", fml), data=d)
summary(m)
El modelo m
produce dos efectos fijos (una intersección y pendiente para la condición) y tres efectos aleatorios (una intersección aleatoria por participante, una pendiente aleatoria por participante para la condición y una correlación de pendiente de intercepción).
Me gustaría comparar estadísticamente el tamaño de la varianza de interceptación aleatoria por participante entre los grupos definidos por condition
(es decir, calcular el componente de varianza resaltado en rojo por separado dentro de las condiciones de control y experimentales, luego probar si la diferencia en el tamaño de los componentes es distinto de cero) ¿Cómo haría esto (preferiblemente en R)?
PRIMA
Digamos que el modelo es un poco más complicado: cada participante experimenta 10 estímulos 20 veces cada uno, 10 en una condición y 10 en otra. Por lo tanto, hay dos conjuntos de efectos aleatorios cruzados: efectos aleatorios para el participante y efectos aleatorios para el estímulo. Aquí hay un ejemplo reproducible:
library(lme4)
fml <- "~ condition + (condition | participant_id) + (condition | stimulus_id)"
d <- expand.grid(participant_id=1:40, stimulus_id=1:10, trial_num=1:10)
d <- rbind(cbind(d, condition="control"), cbind(d, condition="experimental"))
set.seed(23432)
d <- cbind(d, simulate(formula(fml),
newparams=list(beta=c(0, .5),
theta=c(.5, 0, 0, .5, 0, 0),
sigma=1),
family=gaussian,
newdata=d))
m <- lmer(paste("sim_1 ", fml), data=d)
summary(m)
Me gustaría comparar estadísticamente la magnitud de la varianza de interceptación aleatoria por participante entre los grupos definidos por condition
. ¿Cómo haría eso, y el proceso es diferente al de la situación descrita anteriormente?
EDITAR
Para ser un poco más específico sobre lo que estoy buscando, quiero saber:
- Es la pregunta, "son las respuestas medias condicionales dentro de cada condición (es decir, valores de intercepción aleatoria en cada condición) sustancialmente diferentes entre sí, más allá de lo que esperaríamos debido al error de muestreo", una pregunta bien definida (es decir, es esta pregunta incluso teóricamente responsable)? ¿Si no, porque no?
- Si la respuesta a la pregunta (1) es sí, ¿cómo la respondería? Preferiría una
R
implementación, pero no estoy atado allme4
paquete; por ejemplo, parece que elOpenMx
paquete tiene la capacidad de acomodar análisis multigrupo y multinivel ( https: //openmx.ssri.psu. edu / openmx-features ), y este parece ser el tipo de pregunta que debería responderse en un marco SEM.
fuente
Respuestas:
Hay más de una forma de probar esta hipótesis. Por ejemplo, el procedimiento descrito por @amoeba debería funcionar. Pero me parece que la forma más simple y más conveniente de probarlo es usar una buena prueba de razón de probabilidad antigua que compara dos modelos anidados. La única parte potencialmente complicada de este enfoque es saber cómo configurar el par de modelos para que la eliminación de un solo parámetro pruebe de manera clara la hipótesis deseada de variaciones desiguales. A continuación explico cómo hacer eso.
Respuesta corta
Cambie a la codificación de contraste (suma a cero) para su variable independiente y luego haga una prueba de razón de probabilidad comparando su modelo completo con un modelo que obligue a que la correlación entre pendientes aleatorias e intercepciones aleatorias sea 0:
Explicación visual / intuición
Para que esta respuesta tenga sentido, debe tener una comprensión intuitiva de lo que implican los diferentes valores del parámetro de correlación para los datos observados. Considere las líneas de regresión específicas del sujeto (que varían aleatoriamente). Básicamente, el parámetro de correlación controla si las líneas de regresión del participante "se despliegan a la derecha" (correlación positiva) o "se despliegan a la izquierda" (correlación negativa) en relación con el puntoX= 0 , donde X es su código independiente de contraste variable. Cualquiera de estos implica una variación desigual en las respuestas medias condicionales de los participantes. Esto se ilustra a continuación:
En esta gráfica, ignoramos las múltiples observaciones que tenemos para cada sujeto en cada condición y, en su lugar, graficamos las dos medias aleatorias de cada sujeto, con una línea que las conecta, que representa la pendiente aleatoria de ese sujeto. (Esto se compone de datos de 10 sujetos hipotéticos, no de los datos publicados en el OP).
En la columna de la izquierda, donde hay una fuerte correlación negativa de pendiente-intersección, las líneas de regresión se extienden hacia la izquierda en relación con el puntoX= 0 . Como puede ver claramente en la figura, esto conduce a una mayor variación en las medias aleatorias de los sujetos en la condición X= - 1 que en la condición X= 1 .
La columna de la derecha muestra la imagen inversa de este patrón. En este caso, existe una mayor varianza en las medias aleatorias de los sujetos en la condiciónX= 1 que en la condición X= -1 .
La columna en el medio muestra lo que sucede cuando las pendientes aleatorias y las intersecciones aleatorias no están correlacionadas. Esto significa que las líneas de regresión se despliegan a la izquierda exactamente tanto como a la derecha, en relación con el puntoX= 0 . Esto implica que las varianzas de las medias de los sujetos en las dos condiciones son iguales.
Aquí es crucial que hayamos utilizado un esquema de codificación de contraste de suma a cero, no códigos ficticios (es decir, no establecer los grupos enX= 0 vs. X= 1 ). Es solo bajo el esquema de codificación de contraste que tenemos esta relación en la que las variaciones son iguales si y solo si la correlación pendiente-intersección es 0. La siguiente figura intenta construir esa intuición:
Lo que muestra esta figura es el mismo conjunto de datos exacto en ambas columnas, pero con la variable independiente codificada de dos maneras diferentes. En la columna de la izquierda usamos códigos de contraste: esta es exactamente la situación de la primera figura. En la columna de la derecha usamos códigos ficticios. Esto altera el significado de las intercepciones: ahora las intercepciones representan las respuestas predichas de los sujetos en el grupo de control. El panel inferior muestra la consecuencia de este cambio, a saber, que la correlación pendiente-intersección ya no está cerca de 0, a pesar de que los datos son los mismos en un sentido profundo y las variaciones condicionales son iguales en ambos casos. Si esto todavía no parece tener mucho sentido, estudiar esta respuesta anterior mía donde hablo más sobre este fenómeno puede ayudar.
Prueba
Seayi j k la respuesta j del sujeto yo bajo la condición k . (Aquí solo tenemos dos condiciones, entonces k es solo 1 o 2.) Entonces el modelo mixto puede escribirse
yi j k= αyo+ βyoXk+ ei j k,
donde αyo son los sujetos ' intercepta al azar y tiene varianza σ2α , βyo son la pendiente aleatoria de los sujetos y tienen una varianza σ2β , mii j k es el término de error de nivel de observación, y cov ( αyo, βyo) = σα β .
Queremos mostrar quevar ( αyo+ βyoX1) = var ( αyo+ βyoX2) ⇔ σα β= 0.
Comenzando con el lado izquierdo de esta implicación, tenemosvar ( αyo+ βyoX1)σ2α+ x21σ2β+ 2 x1σα βσ2β( x21- x22) + 2 σα β( x1- x2)= var ( αyo+βyoX2)=σ2α+x22σ2β+ 2x2σα β= 0.
Los códigos de contraste de suma a cero implican quex1+x2=0 y x21=x22=x2 . Entonces podemos reducir aún más la última línea de lo anterior a
σ2β(x2−x2)+2σαβ(x1+x1)σαβ=0=0,
que es lo que queríamos probar. (Para establecer la otra dirección de la implicación, podemos seguir estos mismos pasos a la inversa).
Para reiterar, esto muestra que si la variable independiente está codificada por contraste (suma a cero) , entonces las variaciones de las medias aleatorias de los sujetos en cada condición son iguales si y solo si la correlación entre pendientes aleatorias e interceptaciones aleatorias es 0. La clave El punto clave de todo esto es que probar la hipótesis nula de queσαβ=0 probará la hipótesis nula de varianzas iguales descritas por el OP.
Esto NO funciona si la variable independiente es, por ejemplo, un código ficticio. Específicamente, si conectamos los valoresx1=0 y x2=1 en las ecuaciones anteriores, encontramos que
var(αi)=var(αi+βi)⇔σαβ=−σ2β2.
fuente
(1 | subject)
dummy
Puede probar la importancia de los parámetros del modelo con la ayuda de intervalos de confianza estimados para los que el paquete lme4 tiene la
confint.merMod
función.bootstrapping (ver por ejemplo Intervalo de confianza de bootstrap )
perfil de probabilidad (ver por ejemplo ¿Cuál es la relación entre la probabilidad de perfil y los intervalos de confianza? )
También hay un método,
'Wald'
pero esto se aplica solo a efectos fijos.También existe algún tipo de expresión anova (razón de probabilidad) en el paquete
lmerTest
que se nombraranova
. Pero parece que esto no tiene sentido. La distribución de las diferencias en logLikelihood, cuando la hipótesis nula (varianza cero para el efecto aleatorio) es verdadera, no está distribuida por chi-cuadrado (posiblemente cuando el número de participantes y ensayos es alto, la prueba de razón de probabilidad podría tener sentido).Varianza en grupos específicos
Para obtener resultados de varianza en grupos específicos, puede volver a parametrizar
Donde agregamos dos columnas al marco de datos (esto solo es necesario si desea evaluar 'control' y 'experimental' no correlacionados, la función
(0 + condition || participant_id)
no conduciría a la evaluación de los diferentes factores en condición como no correlacionados)Ahora
lmer
dará variación para los diferentes grupos.Y puede aplicar los métodos de perfil a estos. Por ejemplo, ahora confint da intervalos de confianza para el control y la varianza ejercimental.
Sencillez
Podría usar la función de probabilidad para obtener comparaciones más avanzadas, pero hay muchas maneras de hacer aproximaciones a lo largo del camino (por ejemplo, podría hacer una prueba conservadora anova / lrt, pero ¿es eso lo que quiere?).
En este punto, me pregunto cuál es el punto de esta comparación (no tan común) entre las variaciones. Me pregunto si comienza a volverse demasiado sofisticado. ¿Por qué la diferencia entre las variaciones en lugar de la relación entre las variaciones (que se relaciona con la distribución F clásica)? ¿Por qué no solo informar intervalos de confianza? Necesitamos dar un paso atrás y aclarar los datos y la historia que se supone que debe contar, antes de entrar en vías avanzadas que pueden ser superfluas y perder el contacto con el asunto estadístico y las consideraciones estadísticas que en realidad son el tema principal.
Me pregunto si uno debería hacer mucho más que simplemente declarar los intervalos de confianza (que en realidad pueden decir mucho más que una prueba de hipótesis. Una prueba de hipótesis da un sí, no una respuesta, pero no hay información sobre la propagación real de la población. Con suficientes datos puede hacer una pequeña diferencia para ser reportado como una diferencia significativa). Para profundizar en el asunto (para cualquier propósito), se requiere, creo, una pregunta de investigación más específica (definida de manera más estricta) para guiar la maquinaria matemática para hacer las simplificaciones adecuadas (incluso cuando un cálculo exacto sea factible o cuando se puede aproximar mediante simulaciones / bootstrapping, incluso en algunos casos aún requiere una interpretación adecuada). Compare con la prueba exacta de Fisher para resolver una pregunta (particular) (sobre tablas de contingencia) exactamente,
Ejemplo simple
Para proporcionar un ejemplo de la simplicidad que es posible, muestro a continuación una comparación (mediante simulaciones) con una evaluación simple de la diferencia entre las dos variaciones grupales basada en una prueba F realizada al comparar las variaciones en las respuestas medias individuales y al comparar El modelo mixto derivó variaciones.
Puede ver esto en la simulación del gráfico a continuación, donde, aparte de la puntuación F basada en la muestra, se calcula una puntuación F basada en las variaciones predichas (o sumas de error al cuadrado) del modelo.
Puedes ver que hay alguna diferencia. Esta diferencia puede deberse al hecho de que el modelo lineal de efectos mixtos está obteniendo las sumas de error al cuadrado (para el efecto aleatorio) de una manera diferente. Y estos términos de error al cuadrado ya no se expresan (ya) como una distribución simple de Chi-cuadrado, pero aún están estrechamente relacionados y pueden ser aproximados.
Entonces, el modelo basado en los medios es muy exacto. Pero es menos poderoso. Esto muestra que la estrategia correcta depende de lo que quiere / necesita.
En el ejemplo anterior, cuando establece los límites de la cola derecha en 2.1 y 3.1, obtiene aproximadamente el 1% de la población en el caso de varianza igual (resp 103 y 104 de los 10 000 casos) pero en el caso de varianza desigual, estos límites difieren mucho (dando 5334 y 6716 de los casos)
código:
fuente
sim_1 ~ condition + (0 + condition | participant_id)"
en cuyo caso se obtiene una parametrización en dos parámetros (uno para cada grupo) en lugar de dos parámetros, uno para la intercepción y otro para el efecto (que deben combinarse para los grupos).car::linearHypothesisTest
( math.furman.edu/~dcs/courses/math47/R/library/car/html/… ), que permite al usuario probar hipótesis arbitrarias con un modelo ajustado. Sin embargo, tendría que usar el método de @ ameeba para obtener ambas intersecciones aleatorias en el mismo modelo ajustado para que puedan compararse con esta función. También estoy un poco inseguro en cuanto a la validez del método.Una forma relativamente directa podría ser utilizar pruebas de razón de probabilidad
anova
según se describe en laslme4
preguntas frecuentes .Comenzamos con un modelo completo en el que las variaciones no están restringidas (es decir, se permiten dos variaciones diferentes) y luego ajustamos un modelo restringido en el que se supone que las dos variaciones son iguales. Simplemente los comparamos con
anova()
(tenga en cuenta que configuréREML = FALSE
aunqueREML = TRUE
conanova(..., refit = FALSE)
es completamente factible ).Sin embargo, esta prueba es probablemente conservadora . Por ejemplo, las preguntas frecuentes dicen:
Hay varias alternativas:
Cree una distribución de prueba adecuada, que generalmente consiste en una mezcla deχ2 distribuciones Ver, por ejemplo,
Self, SG y Liang, K.-Y. (1987) Propiedades asintóticas de estimadores de máxima verosimilitud y pruebas de razón de verosimilitud en condiciones no estándar. Revista de la Asociación Americana de Estadística, 82 (398), 605. https://doi.org/10.2307/2289471 Sin embargo, esto es bastante complicado.
Simule la distribución correcta usando
RLRsim
(como también se describe en las preguntas frecuentes).Demostraré la segunda opción a continuación:
Como podemos ver, el resultado sugiere que con
REML = TRUE
nosotros habríamos obtenido resultados exactos. Pero esto se deja como un ejercicio para el lector.Con respecto a la bonificación, no estoy seguro si
RLRsim
permite la prueba simultánea de múltiples componentes, pero si es así, esto se puede hacer de la misma manera.Respuesta al comentario:
No estoy seguro de que esta pregunta pueda recibir una respuesta razonable.
Entonces, ¿las pendientes aleatorias afectan la intersección aleatoria? En cierto sentido, esto podría tener sentido, ya que permiten que cada nivel del factor de agrupación tenga un efecto completamente idiosincrásico para cada condición. Al final, estimamos dos parámetros idiosincrásicos para dos condiciones. Sin embargo, creo que la distinción entre el nivel general capturado por la intersección y el efecto específico de la condición capturado por la pendiente aleatoria es importante y, a continuación, la pendiente aleatoria no puede afectar realmente la intersección aleatoria. Sin embargo, todavía permite que cada nivel del factor de agrupación sea idiosincrásico por separado para cada nivel de la condición.
Sin embargo, mi prueba sigue haciendo lo que quiere la pregunta original. Comprueba si la diferencia en las variaciones entre las dos condiciones es cero. Si es cero, entonces las variaciones en ambas condiciones son iguales. En otras palabras, solo si no hay necesidad de una pendiente aleatoria, la varianza en ambas condiciones es idéntica. Espero que tenga sentido.
fuente
contr.treatment
) para los cuales la condición de control es la referencia (es decir, para la cual se calcula la intercepción aleatoria). La parametrización que propongo uso contrastes de suma (es decir,contr.sum
) y la intersección es la gran media. Siento que tiene más sentido probar si la diferencia es nula cuando la intersección es la gran media en lugar de la condición de control (pero escribirla sugiere que podría ser relativamente intrascendente). Es posible que desee leer las páginas 24 a 26 de: singmann.org/download/publications/…condition
: permite que la intersección aleatoria varíe entre niveles decondition
. ¿Es esto cierto?m_full
vsm_full2b
. Es decir: las variaciones de las respuestas medias condicionales de los participantes en A vs. B son desiguales si la correlación aleatoria de la pendiente de intercepción es distinta de cero, lo que es importante, bajo la parametrización de codificación de contraste de suma a cero . No es necesario probar la variación aleatoria de la pendiente. Tratando de pensar cómo explicar esto sucintamente ...Su modelo
ya permite que la varianza entre sujetos en la condición de control difiera de la varianza entre sujetos en la condición experimental. Esto puede hacerse más explícito mediante una re-parametrización equivalente:
La matriz de covarianza aleatoria ahora tiene una interpretación más simple:
Aquí las dos variaciones son precisamente las dos variaciones que le interesan: la variación [entre sujetos] de las respuestas medias condicionales en la condición de control y lo mismo en la condición experimental. En su conjunto de datos simulado, son 0.25 y 0.21. La diferencia viene dada por
y es igual a 0.039. Desea probar si es significativamente diferente de cero.
EDITAR: me di cuenta de que la prueba de permutación que describo a continuación es incorrecta; no funcionará según lo previsto si los medios en control / condición experimental no son los mismos (porque entonces las observaciones no son intercambiables bajo nulo). Puede ser una mejor idea arrancar temas (o temas / elementos en el caso de Bonus) y obtener el intervalo de confianza para
delta
.Intentaré arreglar el siguiente código para hacerlo.
Sugerencia original basada en permutación (incorrecta)
A menudo encuentro que uno puede ahorrarse muchos problemas haciendo una prueba de permutación. De hecho, en este caso es muy fácil de configurar. Permutamos las condiciones de control / experimentales para cada sujeto por separado; entonces cualquier diferencia en las variaciones debe ser eliminada. Repetir esto muchas veces dará como resultado una distribución nula para las diferencias.
(No programo en R; todos pueden reescribir lo siguiente en un mejor estilo R).
Ejecutar esto produce el valor pp = 0.7 . Uno puede aumentar
nrep
a 1000 más o menos.Se puede aplicar exactamente la misma lógica en su caso de Bonus.
fuente
sim_1 ~ 0 + condition + (0 + dummy(condition, "control") + dummy(condition, "experimental") | participant_id)
formulación y obtener el mismo resultado que en mi respuesta.Mirando este problema desde una perspectiva ligeramente diferente y comenzando desde la forma "general" del modelo lineal mixto, tenemosyi j k= μ + αj+ dyo j+ ei j k,reyo∼ N( 0 , Σ ) ,mii j k∼ N( 0 , σ2)
dónde αj es el efecto fijo de la j condición y reyo= ( dyo 1, ... , dyo J)⊤ es un vector aleatorio (creo que algunos lo llaman efecto aleatorio con valor vectorial) para el yo 'th participante en el j Condición. yi 1 k y yi 2 k que denotaré como UN y si en lo que sigue. Entonces, la matriz de covarianza del vector aleatorio bidimensionalreyo es de la forma general
En tu ejemplo tenemos dos condiciones
con no negativoσ2UN y σ2si .
Primero veamos cómo la versión re-parametrizada deΣ se ve cuando usamos contrastes de suma.
La varianza de la intersección, que corresponde a la gran media, es
La varianza del contraste es
Y la covarianza entre la intersección y el contraste es
Thus, the re-parameterizedΣ is
Setting the covariance parameterσ12 to zero we get
que, como @Jake Westfall dedujo de manera ligeramente diferente, prueba la hipótesis de varianzas iguales cuando comparamos un modelo sin este parámetro de covarianza con un modelo en el que el parámetro de covarianza todavía se incluye / no se establece en cero.
En particular, la introducción de otro factor de agrupación aleatorio cruzado (como los estímulos) no cambia la comparación del modelo que debe hacerse, es decir,
anova(mod1, mod2)
(opcionalmente con el argumentorefit = FALSE
cuando usa la estimación REML) dondemod1
ymod2
se definen como @Jake Westfall.Sacandoσ12 y el componente de varianza para el contraste σ22 (lo que sugiere @Henrik) da como resultado
que prueba la hipótesis de que las varianzas en las dos condiciones son iguales y que son iguales a la covarianza (positiva) entre las dos condiciones.
Cuando tenemos dos condiciones, un modelo que se ajusta a una matriz de covarianza con dos parámetros en una estructura simétrica compuesta (positiva) también se puede escribir como
o (usando la variable / factor categórico
condition
)con
whereσ21 and σ22 are the variance parameters for the participant and the participant-condition-combination intercepts, respectively. Note that this Σ has a non-negative covariance parameter.
Below we see that
mod1
,mod3
, andmod4
yield equivalent fits:With treatment contrasts (the default in R) the re-parameterizedΣ is
whereσ21 is the variance parameter for the intercept (condition A ), σ22 the variance parameter for the contrast (A−B ), and σ12 the corresponding covariance parameter.
We can see that neither settingσ12 to zero nor setting σ22 to zero tests (only) the hypothesis of equal variances.
However, as shown above, we can still useΣ for this model.
mod4
to test the hypothesis as changing the contrasts has no impact on the parameterization offuente