Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Modelos de efectos mixtos

Introducción a los modelos de efectos mixtos

En estadística, un es cualquier cosa que influye en el valor de una variable de respuesta en un valor determinado de las variables predictoras.Efecto Los efectos se traducen en parámetros de modelo. En los modelos lineales, los efectos se convierten en coeficientes, representando las contribuciones proporcionales de los términos del modelo. En los modelos no lineales, los efectos a menudo tienen interpretaciones físicas específicas y aparecen en combinaciones no lineales más generales.

representan los parámetros de población, se asume que son los mismos cada vez que se recopilan datos.Efectos fijos La estimación de efectos fijos es el dominio tradicional del modelado de regresión. , por comparación, son variables aleatorias dependientes de la muestra.Efectos aleatorios En el modelado, los efectos aleatorios actúan como términos de error adicionales y se deben especificar sus distribuciones y covarianzas.

Por ejemplo, considere un modelo de la eliminación de un fármaco del torrente sanguíneo. El modelo utiliza el tiempo como un predictor y la concentración de la droga como la respuesta.tC El término de modelo no linealC0ert combina parámetrosC0 y, representando, respectivamente, una concentración inicial y una tasa de eliminación.r Si los datos se recopilan en varias personas, es razonable suponer que la tasa de eliminación es una variable aleatoriari dependiendo de la persona, variando alrededor de una población mediai r¯. El términoC0ert Se convierte

C0e[r¯+(rir¯)]t=C0e(β+bi)t,

donde =β r¯ es un efecto fijo ybi = rir¯ es un efecto aleatorio.

Los efectos aleatorios son útiles cuando los datos caen en grupos naturales. En el modelo de eliminación de fármacos, los grupos son simplemente los individuos bajo estudio. Los modelos más sofisticados pueden agrupar datos según la edad, el peso, la dieta, etc. de un individuo. Aunque los grupos no son el foco del estudio, la adición de efectos aleatorios a un modelo amplía la confiabilidad de las inferencias más allá de la muestra específica de individuos.

cuenta para efectos fijos y aleatorios.Los modelos de efectos mixtos Como con todos los modelos de regresión, su propósito es describir una variable de respuesta como una función de las variables predictoras. Sin embargo, los modelos de efectos mixtos reconocen las correlaciones dentro de los subgrupos de muestras. De este modo, proporcionan un compromiso entre ignorar los grupos de datos por completo y ajustar cada grupo con un modelo independiente.

Jerarquía de modelos de efectos mixtos

Supongamos que los datos de un modelo de regresión no lineal caen en uno de los grupos distintos = 1,...,.mim Para tener en cuenta los grupos de un modelo, escriba la respuesta en el grupo como:ji

yij=f(φ,xij)+εij

yij es la respuesta,xij es un vector de predictores, es un vector de parámetros del modelo, yφεij es el error de medición o proceso. El índice oscila entre 1 yjniDóndeni es el número de observaciones en grupo.i La función especifica la forma del modelo.f frecuentementexij es simplemente un tiempo de observacióntij. Normalmente se asume que los errores son independientes e idénticos, normalmente distribuidos, con varianza constante.

Estimaciones de los parámetros en la descripción de la población, suponiendo que esas estimaciones son las mismas para todos los grupos.φ Sin embargo, si las estimaciones varían según el grupo, el modelo se convierte en

yij=f(φi,xij)+εij

En un modelo de efectos mixtos,φi puede ser una combinación de un efecto fijo y aleatorio:

φi=β+bi

Los efectos aleatoriosbi normalmente se describen como multivariadas distribuidas normalmente, con cero y covarianza media.Ψ La estimación de los efectos fijos y la covarianza de los efectos aleatorios proporciona una descripción de la población que no asume los parámetrosβΨφi son los mismos entre grupos. Estimar los efectos aleatoriosbi también proporciona una descripción de grupos específicos dentro de los datos.

Los parámetros del modelo no tienen que identificarse con efectos individuales. En general, y se utilizan para identificar parámetros con combinaciones lineales de efectos fijos y aleatorios:matrices de diseñoAB

φi=Aβ+Bbi

Si las matrices de diseño difieren entre los grupos, el modelo se convierte en

φi=Aiβ+Bibi

Si las matrices de diseño también difieren entre las observaciones, el modelo se convierte en

φij=Aijβ+Bijbiyij=f(φij,xij)+εij

Algunos de los predictores específicos del grupo enxij no puede cambiar con la observación.j Llamar a esosvi, el modelo se convierte en

yij=f(φij,xij,vi)+εij

Especificación de modelos de efectos mixtos

Supongamos que los datos de un modelo de regresión no lineal caen en uno de los grupos distintos = 1,...,.mim (En concreto, suponga que los grupos no están anidados.) Para especificar un modelo general de efectos mixtos no lineales para estos datos:

  1. Defina parámetros de modelo específicos del grupoφi como combinaciones lineales de efectos fijos y efectos aleatoriosβbi.

  2. Definir valores de respuestayi como una función no lineal de los parámetros y variables predictoras específicas del grupofXi.

El modelo es:

φi=Aiβ+Bibiyi=f(φi,Xi)+εibiN(0,Ψ)εiN(0,σ2)

Esta formulación del modelo de efectos mixtos no lineales utiliza la siguiente notación:

φiUn vector de parámetros de modelo específicos del grupo
βUn vector de efectos fijos, modelando parámetros de población
biUn vector de efectos aleatorios específicos de grupo distribuidos normalmente multivariados
AiUna matriz de diseño específica del grupo para combinar efectos fijos
BiUna matriz de diseño específica del grupo para combinar efectos aleatorios
XiUna matriz de datos de valores predictores específicos del grupo
yiUn vector de datos de valores de respuesta específicos del grupo
fUna función general y de valor real deφi YXi
εiVector de errores específicos del grupo, asumido como independiente, idéntico, normalmente distribuido e independiente debi
ΨUna matriz de covarianza para los efectos aleatorios
σ2La desviación de error, asumida como constante entre las observaciones

Por ejemplo, considere un modelo de la eliminación de un fármaco del torrente sanguíneo. El modelo incorpora dos fases superpuestas:

  • Una fase inicial durante la cual las concentraciones de fármacos alcanzan el equilibrio con los tejidos circundantesp

  • Una segunda fase durante la cual el fármaco se elimina del torrente sanguíneoq

Para los datos de varias personas, el modelo sei

yij=Cpierpitij+Cqierqitij+εij,

Dóndeyij es la concentración observada en el individuo en el tiempoitij. El modelo permite diferentes tiempos de muestreo y diferentes números de observaciones para diferentes individuos.

Las tasas de eliminaciónrpi Yrqi debe ser positivo ser físicamente significativo. Aplique esto introduciendo las tasas de registroRpi = log (rpi) yRqi = log (rqi) y reparametrizar el modelo:

yij=Cpieexp(Rpi)tij+Cqieexp(Rqi)tij+εij

La elección de los parámetros para modelar con efectos aleatorios es una consideración importante a la hora de crear un modelo de efectos mixtos. Una técnica consiste en añadir efectos aleatorios a todos los parámetros y utilizar estimaciones de sus varianzas para determinar su importancia en el modelo. Una alternativa es ajustar el modelo por separado a cada grupo, sin efectos aleatorios, y mirar la variación de las estimaciones de parámetros. Si una estimación varía ampliamente entre grupos, o si los intervalos de confianza para cada grupo tienen una superposición mínima, el parámetro es un buen candidato para un efecto aleatorio.

Para introducir efectos fijos y efectos aleatoriosβbi para todos los parámetros del modelo, reexprese el modelo de la siguiente manera:

yij=[C¯p+(CpiC¯p)]eexp[R¯p+(RpiR¯p)]tij+[C¯q+(CqiC¯q)]eexp[R¯q+(RqiR¯q)]tij+εij=(β1+b1i)eexp(β2+b2i)tij+(β3+b3i)eexp(β4+b4i)tij+εij

En la notación del modelo general:

β=(β1β4),bi=(bi1bi4),yi=(yi1yini),Xi=(ti1tini),

Dóndeni es el número de observaciones de la persona.i En este caso, las matrices de diseñoAi YBi son, al menos inicialmente, matrices de identidad de 4 por 4. Las matrices de diseño pueden modificarse, según sea necesario, para introducir la ponderación de los efectos individuales o la dependencia del tiempo.

Ajustar el modelo y estimar la matriz de covarianza a menudo conduce a nuevos refinamientos.Ψ Una estimación relativamente pequeña para la varianza de un efecto aleatorio sugiere que se puede quitar del modelo. Del mismo modo, las estimaciones relativamente pequeñas para las covarianzas entre ciertos efectos aleatorios sugieren que no es necesaria una matriz de covarianza completa. Dado que los efectos aleatorios no se observan, se deben estimar indirectamente.Ψ Si se especifica un patrón de covarianza diagonal o de bloque diagonal, se puede mejorar la convergencia y la eficacia del algoritmo de empalme.Ψ

funciones y ajustar el modelo de efectos mixtos no lineales generales a los datos, estimando los efectos fijos y aleatorios.Statistics and Machine Learning Toolbox™nlmefitnlmefitsa Las funciones también estiman la matriz de covarianzas para los efectos aleatorios.Ψ Las salidas de diagnóstico adicionales le permiten evaluar las compensaciones entre el número de parámetros del modelo y la bondad de ajuste.

Especificación de modelos covariate

Si el modelo asume una covariable dependiente del grupo, como Weight (), el modelo se convierte en:Especificación de modelos de efectos mixtosw

(φ1φ2φ3)=(100010001wi00)(β1β2β3β4)+(100010001)(b1b2b3)

Por lo tanto, el parámetroφi para cualquier individuo en el grupo TH es:i

(φ1iφ2iφ3i)=(β1+β4*wiβ2β3)+(b1ib2ib3i)

Para especificar un modelo de covariable, utilice la opción.'FEGroupDesign'

es una matriz que especifica una matriz de diseño de efectos fijos diferente para cada uno de los grupos.'FEGroupDesign'p-by-q-by-mp-by-qm Con el ejemplo anterior, la matriz es similar a la siguiente:

  1. Cree la matriz.

    % Number of parameters in the model (Phi) num_params = 3; % Number of covariates num_cov = 1; % Assuming number of groups in the data set is 7 num_groups = 7; % Array of covariate values covariates = [75; 52; 66; 55; 70; 58; 62 ]; A = repmat(eye(num_params, num_params+num_cov),... [1,1,num_groups]); A(1,num_params+1,1:num_groups) = covariates(:,1)
  2. Cree una con la matriz de diseño especificada.struct

    options.FEGroupDesign = A;  
  3. Especifique los argumentos para (o) como se muestra en.nlmefitnlmefitsaModelos de efectos mixtos con nlmefit y nlmefitsa

La elección de nlmefit o nlmefitsa

proporciona dos funciones y para ajustar modelos de efectos mixtos no lineales.Statistics and Machine Learning Toolboxnlmefitnlmefitsa Cada función proporciona diferentes capacidades, que pueden ayudarle a decidir cuál utilizar.

Métodos de aproximación

proporciona los cuatro métodos de aproximación siguientes para ajustar modelos de efectos mixtos no lineales:nlmefit

  • : Utilice la probabilidad para el modelo lineal de efectos mixtos en las estimaciones condicionales actuales de y.'LME'betaB Este es el valor predeterminado.

  • : Utilice la probabilidad restringida para el modelo lineal de efectos mixtos en las estimaciones condicionales actuales de y.'RELME'betaB

  • — Aproximación Laplaciana de primer orden sin efectos aleatorios.'FO'

  • — Aproximación Laplaciana de primer orden a las estimaciones condicionales de.'FOCE'B

proporciona un método de aproximación adicional, la expectativa de maximización de aproximación estocástica (SAEM) con tres pasos:nlmefitsa[24]

  1. Simulación: Genere valores simulados de los efectos aleatorios de la densidad posterior (| Σ) dadas las estimaciones de parámetros actuales.bpb

  2. Aproximación estocástica: Actualice el valor esperado de la función log verosimilitud tomando su valor del paso anterior y moviendo la parte hacia el valor medio de la probabilidad logaritmo calculada a partir de los efectos aleatorios simulados.

  3. Paso de maximización: Elija nuevas estimaciones de parámetros para maximizar la función log verosimilitud dados los valores simulados de los efectos aleatorios.

Ambos e intentan encontrar estimaciones de parámetros para maximizar una función de probabilidad, que es difícil de calcular. se ocupa del problema aproximando la función de probabilidad de varias maneras y maximizando la función aproximada.nlmefitnlmefitsanlmefit Utiliza técnicas de optimización tradicionales que dependen de cosas como los criterios de convergencia y los límites de iteración.

, por otro lado, simula valores aleatorios de los parámetros de tal manera que en el largo plazo convergen a los valores que maximizan la función de verosimilitud exacta.nlmefitsa Los resultados son aleatorios y las pruebas de convergencia tradicionales no se aplican. Por lo tanto, proporciona opciones para trazar los resultados a medida que avanza la simulación y para reiniciar la simulación varias veces.nlmefitsa Usted puede utilizar estas características para juzgar si los resultados han convergido a la exactitud que usted desea.

Parámetros específicos de nlmefitsa

Los siguientes parámetros son específicos de.nlmefitsa La mayoría controlan el algoritmo estocástico.

  • — Valor inicial de la matriz de covarianza.Cov0PSI Debe ser una matriz definida por positivo.rr Si está vacío, el valor predeterminado depende de los valores de.BETA0

  • — para computar errores estándar para las estimaciones de coeficiente y almacenarlos en la estructura de salida, o (por defecto) para omitir este cálculo.ComputeStdErrorstrueSTATSfalse

  • : Especifica el método para aproximar la probabilidad de registro.LogLikMethod

  • — Número de iteraciones de quemado iniciales durante las cuales no se recalculan las estimaciones de parámetros.NBurnIn El valor predeterminado es 5.

  • : Controla cuántas iteraciones se realizan para cada una de las tres fases del algoritmo.NIterations

  • — Número de iteraciones de la cadena Markov Monte Carlo (MCMC).NMCMCIterations

Requisitos de modelo y datos

Hay algunas diferencias en las capacidades de y.nlmefitnlmefitsa Por lo tanto, algunos datos y modelos son utilizables con cualquiera de las funciones, pero algunos pueden requerir que elija sólo uno de ellos.

  • : admite una variedad de modelos de error.Error modelsnlmefitsa Por ejemplo, la desviación estándar de la respuesta puede ser constante, proporcional al valor de la función o una combinación de los dos. se ajusta a los modelos bajo el supuesto de que la desviación estándar de la respuesta es constante.nlmefit Uno de los modelos de error, especifica que el registro de la respuesta tiene una desviación estándar constante.'exponential' Puede ajustar estos modelos utilizando proporcionando la respuesta de registro como entrada y reescribiendo la función de modelo para generar el registro del valor de función no lineal.nlmefit

  • — Ambas funciones ajustan los datos a una función no lineal con parámetros, y los parámetros pueden ser valores escalares simples o funciones lineales de covariables. permite que cualquier coeficiente de las funciones lineales tenga efectos tanto fijos como aleatorios. sólo admite efectos aleatorios para el coeficiente de constante (intercepción) de las funciones lineales, pero no para los coeficientes de pendiente.Random effectsnlmefitnlmefitsa Así que en el ejemplo en, puede tratar sólo los primeros tres valores beta como efectos aleatorios.Especificación de modelos covariatenlmefitsa

  • : admite una especificación de modelo muy general, con pocas restricciones en las matrices de diseño que relacionan los coeficientes fijos y los efectos aleatorios con los parámetros del modelo. es más restrictiva:Model formnlmefitnlmefitsa

    • El diseño de efecto fijo debe ser constante en cada grupo (para cada individuo), por lo que no se admite un diseño dependiente de la observación.

    • El diseño de efectos aleatorios debe ser constante para todo el conjunto de datos, por lo que no se admite un diseño dependiente de la observación ni un diseño dependiente del grupo.

    • Como se mencionó anteriormente, el diseño de efecto aleatorio no debe especificar efectos aleatorios para los coeficientes de pendiente.Random Effects Esto implica que el diseño debe consistir en ceros y unos.

    • El diseño de efecto aleatorio no debe utilizar el mismo efecto aleatorio para varios coeficientes y no puede utilizar más de un efecto aleatorio para un solo coeficiente.

    • El diseño de efecto fijo no debe utilizar el mismo coeficiente para varios parámetros. Esto implica que puede tener como máximo un valor distinto de cero en cada columna.

    Si desea utilizar para los datos en los que los efectos de covariable son aleatorios, incluya las covariables directamente en la expresión del modelo no lineal.nlmefitsa No incluya las covariables en las matrices de diseño de efectos fijos o aleatorios.

  • — Como se describe en el, y tienen diferentes enfoques para medir la convergencia. utiliza medidas de optimización tradicionales y proporciona diagnósticos para ayudarle a juzgar la convergencia de una simulación aleatoria.ConvergenceModel formnlmefitnlmefitsanlmefitnlmefitsa

En la práctica, tiende a ser más robusto y menos propenso a fallar en problemas difíciles.nlmefitsa Sin embargo, puede converger más rápido en los problemas donde converge en absoluto.nlmefit Algunos problemas pueden beneficiarse de una estrategia combinada, por ejemplo, al ejecutarse durante un tiempo para obtener estimaciones de parámetros razonables y usarlos como punto de partida para las iteraciones adicionales que se usan.nlmefitsanlmefit

Uso de funciones de salida con modelos de efectos mixtos

El campo de la estructura especifica una o más funciones que el solucionador llama después de cada iteración.Outputfcnoptions Normalmente, puede utilizar una función de salida para trazar puntos en cada iteración o para mostrar las cantidades de optimización del algoritmo. Para configurar una función de salida:

  1. Escribir la función de salida como una función de archivo o función local.MATLAB®

  2. Se usa para establecer el valor de ser un identificador de función, es decir, el nombre de la función precedida por el signo.statsetOutputfcn@ Por ejemplo, si la función de salida es, el comandooutfun.m

     options = statset('OutputFcn', @outfun);

    Especifica que debe ser el identificador.OutputFcnoutfun Para especificar varias funciones de salida, utilice la sintaxis:

     options = statset('OutputFcn',{@outfun, @outfun2});
  3. Llame a la función de optimización como un argumento de entrada.options

Para obtener un ejemplo de una función de salida, consulte.Función de salida de muestra

Estructura de la función de salida

La línea de definición de función de la función de salida tiene la siguiente forma:

stop = outfun(beta,status,state)
Dónde

  • son los efectos fijos actuales.beta

  • es una estructura que contiene datos de la iteración actual. describe la estructura detalladamente.statusLos campos en estado

  • es el estado actual del algoritmo. enumera los valores posibles.EstadoLos Estados del algoritmo

  • es una marca que es o depende de si la rutina de optimización debe salir o continuar.stoptruefalse Consulte para obtener más información.Stop Flag

El solucionador pasa los valores de los argumentos de entrada a cada iteración.outfun

Los campos en estado

La siguiente tabla enumera los campos de la estructura:status

CampoDescripción
procedure
  • — algoritmo alterno para la optimización de los efectos mixtos lineales o aproximaciones de efectos mixtos lineales restringidos'ALT'

  • — optimización de la aproximación Laplaciana para la estimación condicional de primer orden o primera orden'LAP'

iterationUn entero a partir de 0.
inner

Una estructura que describe el estado de las iteraciones internas dentro de los procedimientos y los campos:ALTLAP

  • — Cuando es:procedureprocedure'ALT'

    • (mínimos cuadrados no lineales penalizados)'PNLS'

    • (estimación lineal de efectos mixtos)'LME'

    • 'none'

    ¿Cuándo es,procedure'LAP'

    • (mínimos cuadrados no lineales penalizados)'PNLS'

    • (maximización de probabilidad perfilado)'PLM'

    • 'none'

  • — uno de los siguientes:Estado

    • 'init'

    • 'iter'

    • 'done'

    • 'none'

  • — un entero a partir de 0, o.iterationNaN Para las iteraciones de grabación, se llama a la función de salida después de cada una de esas iteraciones con un valor negativo para.nlmefitsaSTATUS.iteration

fvalLa probabilidad de registro actual
PsiLa matriz de covarianza de efectos aleatorios actual
thetaLa parametrización actual dePsi
mseLa varianza de error actual

Los Estados del algoritmo

La tabla siguiente enumera los valores posibles para:Estado

EstadoDescripción

'init'

El algoritmo está en el estado inicial antes de la primera iteración.

'iter'

El algoritmo está al final de una iteración.

'done'

El algoritmo está en el estado final después de la última iteración.

El código siguiente ilustra cómo la función de salida podría utilizar el valor de para decidir qué tareas realizar en la iteración actual:Estado

switch state     case 'iter'           % Make updates to plot or guis as needed     case 'init'           % Setup for plots or guis     case 'done'           % Cleanup of plots, guis, or final plot otherwise end

Stop Flag

El argumento de salida es una marca que es o.stoptruefalse La marca indica al solucionador si debe salir o continuar. Los siguientes ejemplos muestran formas típicas de usar la marca.stop

Stopping an Optimization Based on Intermediate Results.  La función de salida puede detener la estimación en cualquier iteración en función de los valores de los argumentos pasados en él. Por ejemplo, los conjuntos de código siguientes se detienen en true en función del valor de la probabilidad de registro almacenada en el campo de la estructura de estado:'fval'

stop = outfun(beta,status,state) stop = false; % Check if loglikelihood is more than 132. if status.fval > -132     stop = true; end

Stopping an Iteration Based on GUI Input.  Si diseña una GUI para realizar iteraciones, puede hacer que la función de salida se detenga cuando un usuario haga clic en un botón de la GUI.nlmefitStop Por ejemplo, el código siguiente implementa un cuadro de diálogo para cancelar los cálculos:

function retval = stop_outfcn(beta,str,status) persistent h stop; if isequal(str.inner.state,'none')     switch(status)         case 'init'             % Initialize dialog             stop = false;             h = msgbox('Press STOP to cancel calculations.',...                 'NLMEFIT: Iteration 0 ');             button = findobj(h,'type','uicontrol');             set(button,'String','STOP','Callback',@stopper)             pos = get(h,'Position');             pos(3) = 1.1 * pos(3);             set(h,'Position',pos)             drawnow         case 'iter'             % Display iteration number in the dialog title             set(h,'Name',sprintf('NLMEFIT: Iteration %d',...                 str.iteration))             drawnow;         case 'done'             % Delete dialog             delete(h);     end end if stop     % Stop if the dialog button has been pressed     delete(h) end retval = stop;       function stopper(varargin)         % Set flag to stop when button is pressed         stop = true;         disp('Calculation stopped.')     end end 

Función de salida de muestra

es la función de salida de muestra para y.nmlefitoutputfcnStatistics and Machine Learning Toolboxnlmefitnlmefitsa Inicializa o actualiza una gráfica con los efectos fijos () y la varianza de los efectos aleatorios (()).BETAdiagSTATUS.Psi Para, la gráfica también incluye el log-verosimilitud ().nlmefitSTATUS.fval

es la función de salida predeterminada para.nlmefitoutputfcnnlmefitsa Para utilizarlo, especifique un manejador de funciones para él en la estructura de opciones: para evitar el uso de esta función, especifique un valor vacío para la función de salida: se detiene o si se cierra la figura que produce.nlmefit

opt = statset('OutputFcn', @nlmefitoutputfcn, …) beta = nlmefit(…, 'Options', opt, …)
nlmefitsa
opt = statset('OutputFcn', [], …) beta = nlmefitsa(…, 'Options', opt, …)
nlmefitoutputfcnnlmefitnlmefitsa