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.

nlmefit

Estimación de efectos mixtos no lineales

Sintaxis

beta = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0)
[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0,'Name',value)

Descripción

beta = nlmefit(X,y,group,V,fun,beta0) se ajusta a un modelo de regresión de efectos mixtos no lineales y devuelve estimaciones de los efectos fijos en.beta De forma predeterminada, se ajusta a un modelo en el que cada parámetro es la suma de un efecto fijo y aleatorio, y los efectos aleatorios no están correlacionados (su matriz de covarianza es diagonal).nlmefit

es una-por-matriz de observaciones en predictores.Xnhnh

es un vector de respuestas de-por-1.yn

es una variable de agrupación que indica los grupos en las observaciones. es una variable categórica, un vector numérico, una matriz de caracteres con filas para los nombres de grupo, una matriz de cadenas o una matriz de celdas de vectores de caracteres.groupmgroup Para obtener más información sobre la agrupación de variables, consulte.Agrupar variables

es un array de matriz o celda de predictores específicos de grupo.Vmgg Estos son predictores que toman el mismo valor para todas las observaciones de un grupo. Las filas de se asignan a los grupos que utilizan, según el orden especificado por.Vgrp2idxgrp2idx(group) Utilice una matriz de celdas para si los predictores de grupo varían de tamaño entre grupos.V Se utiliza para si no hay predictores específicos del grupo.[]V

es un identificador de una función que acepta valores predictores y parámetros de modelo y devuelve valores ajustados. tiene la formafunfun

yfit = modelfun(PHI,XFUN,VFUN)

Los argumentos son:

  • — 1 por vector de los parámetros del modelo.PHIp

  • — A-por-array de predictores, donde:XFUNkh

    • = 1 si es una sola fila de.kXFUNX

    • =kni Si contiene las filas de un solo grupo de tamañoXFUNXni.

    • = Si contiene todas las filas de.knXFUNX

  • — Predictores específicos del grupo dados por uno de:VFUN

    • Un 1 por vector correspondiente a un solo grupo y una sola fila de.gV

    • An-by-array, donde la fila TH es V (,:) Si la observación TH está en grupo.ngjIjI

    Si está vacío, las llamadas con sólo dos entradas.Vnlmefitmodelfun

  • — Vector A-by-1 de valores ajustadosyfitk

Cuando uno o contiene una sola fila, corresponde a todas las filas de los otros dos argumentos de entrada.PHIVFUN

Nota

Si puede calcular para más de un vector de parámetros de modelo por llamada, utilice el parámetro (descrito más adelante) para mejorar el rendimiento.modelfunyfit'Vectorization'

es un vector-by-1 con estimaciones iniciales para efectos fijos.beta0qq De forma predeterminada, es el número de parámetros del modelo.qp

encaja en el modelo maximizando una aproximación a la probabilidad marginal con efectos aleatorios integrados, suponiendo que:nlmefit

  • Los efectos aleatorios son multivariados normalmente distribuidos e independientes entre grupos.

  • Los errores de observación son independientes, idénticos normalmente distribuidos e independientes de los efectos aleatorios.

[beta,PSI] = nlmefit(X,y,group,V,fun,beta0) también devuelve, una matriz de covarianza estimada para los efectos aleatorios.PSIrr De forma predeterminada, es igual al número de parámetros del modelo.rp

[beta,PSI,stats] = nlmefit(X,y,group,V,fun,beta0) también devuelve, una estructura con campos:stats

  • — Los grados de error de libertad para el modelodfe

  • — La logverosimilitud maximizada para el modelo ajustadologl

  • — La raíz cuadrada de la varianza de error estimada (calculada en la escala de registro para el modelo de error)rmseexponential

  • — Los parámetros estimados del modelo de desviación de errorerrorparam

  • — El criterio de información de Akaike, calculado como =-2 * + 2 *, donde está el número de parámetros de ajuste, incluyendo el grado de libertad para la matriz de covarianza de los efectos aleatorios, el número de efectos fijos y el número de parámetros del modelo de error, y es un campo de la estructuraaicaicloglnumParamnumParamloglstats

  • — El criterio de la información Bayesiana, calculado como = – 2 * + log () *bicbicloglMnumParam

    • es el número de grupos.M

    • y se definen como in.numParamloglaic

    Tenga en cuenta que cierta literatura sugiere que el cómputo de debe ser, = – 2 * + log () *, donde está el número de observaciones.bicbicloglNnumParamN

  • — La matriz de covarianza estimada de las estimaciones de parámetroscovb

  • — Los errores estándar parasebetabeta

  • — Los residuales de población, donde se encuentran los valores previstos individualesires(y-y_population)y_population

  • — Los residuos de población, ¿dónde están los valores previstos de la poblaciónpres(y-y_population)y_population

  • — Los residuos ponderados individualesiwres

  • — Los residuos ponderados de la poblaciónpwres

  • — Los residuales ponderados condicionalescwres

[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0) también devuelve, una-por-matriz de efectos aleatorios estimados para los grupos.Brmm De forma predeterminada, es igual al número de parámetros del modelo.rp

[beta,PSI,stats,B] = nlmefit(X,y,group,V,fun,beta0,'Name',value) especifica uno o más pares de nombre/valor de parámetro opcionales. Especificar Name dentro de comillas simples.

Utilice los siguientes parámetros para ajustar un modelo distinto del predeterminado. (El modelo predeterminado se obtiene estableciendo ambos y a, o estableciendo ambos y a.)FEConstDesignREConstDesigneye(p)FEParamsSelectREParamsSelect1:p Utilice como máximo un parámetro con un prefijo y un parámetro con un prefijo.'FE''RE' La función requiere que se especifique al menos un efecto fijo y un efecto aleatorio.nlmefit

ParámetroValor
FEParamsSelect

Un vector que especifica qué elementos del vector de parámetro incluyen un efecto fijo, dado como un vector numérico de índices desde o como un vector 1 por lógico.PHI1pp Si es el número especificado de elementos, el modelo incluye efectos fijos.qq

FEConstDesign

Matriz A-por-diseño, donde están los componentes fijos de los elementos de.pqADESIGNADESIGN*betapPHI

FEGroupDesign

A-by--by-array especificando una matriz de diseño de efectos distintos por fijo para cada uno de los grupos.pqmpqm

FEObsDesign

A-by--by-array especificando una matriz de diseño de efectos distintos por fijo para cada una de las observaciones.pqnpqn

REParamsSelect

Un vector que especifica qué elementos del vector de parámetro incluyen un efecto aleatorio, dado como un vector numérico de índices desde o como un vector 1 por lógico.PHI1pp El modelo incluye efectos aleatorios, donde es el número especificado de elementos.rr

REConstDesign

Matriz A-por-diseño, donde están los componentes aleatorios de los elementos de.prBDESIGNBDESIGN*BpPHI

REGroupDesign

A-by--by-array especificando una matriz de diseño de efectos diferentes por azar para cada uno de los grupos.prmprm

REObsDesign

A-by--by-array especificando una matriz de diseño de efectos diferentes por azar para cada una de las observaciones.prnprn

Utilice los siguientes parámetros para controlar el algoritmo iterativo para maximizar la probabilidad:

ParameterValor
RefineBeta0

Determina si hace un refinamiento inicial del primer ajuste sin efectos aleatorios y reemplazando con.nlmefitbeta0modelfunbeta0beta Las opciones son y.'on''off' El valor predeterminado es.'on'

ErrorModel

Un vector de caracteres o un escalar de cadena que especifica la forma del término de error. El valor predeterminado es.'constant' Cada modelo define el error utilizando una variable normal estándar (gaussiana), el valor de la función y uno o dos parámetros y.efab Las opciones son:

  • : = + *'constant'yfae

  • : = + * *'proportional'yf bfe

  • : = + ( + * )*'combined'yfabfe

  • : = * exp (*) o equivalentemente log () = log () + *'exponential'yfaeyfae

Si se da este parámetro, el campo de salida tiene el valorstats.errorparam

  • para ya'constant''exponential'

  • Parab'proportional'

  • [] paraab'combined'

ApproximationType

El método utilizado para aproximar la probabilidad del modelo. Las opciones son:

  • : 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

Vectorization

Indica los tamaños aceptables para el, y los argumentos de entrada a.PHIXFUNVFUNmodelfun Las opciones son:

  • : solo puede aceptar un único conjunto de parámetros de modelo a la vez, por lo que debe ser un vector de una sola fila en cada llamada. llamadas en bucle, si es necesario, con un solo vector y con filas contenedora para una sola observación o grupo a la vez. puede ser una sola fila que se aplica a todas las filas de, o una matriz con filas correspondientes a filas en.'SinglePhi'modelfunPHInlmefitmodelfunPHIXFUNVFUNXFUNXFUN Este es el valor predeterminado.

  • : sólo puede aceptar entradas correspondientes a un solo grupo en los datos, por lo que debe contener filas de un solo grupo en cada llamada.'SingleGroup'modelfunXFUNX Dependiendo del modelo, es una sola fila que se aplica a todo el grupo o una matriz con una fila para cada observación. es una sola fila.PHIVFUN

  • : puede aceptar entradas para varios vectores de parámetros y varios grupos en los datos.'Full'modelfun O puede ser una sola fila que se aplica a todas las filas de o una matriz con filas que corresponden a filas en.PHIVFUNXFUNXFUN Esta opción puede mejorar el rendimiento reduciendo el número de llamadas a, pero puede requerir para realizar la expansión de singleton en o.modelfunmodelfunPHIV

CovParameterization

Especifica la parametrización que se utiliza internamente para la matriz de covarianza escalada. Las opciones son para la factorización de Cholesky o el logaritmo de la matriz.'chol''logm' El valor predeterminado es.'logm'

CovPattern

Especifica una matriz numérica o por lógica que define el patrón de la matriz de covarianza de efectos aleatorios. estima las desviaciones a lo largo de la diagonal y las covarianzas especificadas por los nonceros en los elementos fuera de la diagonal de.rrPPSInlmefitPSIP Las covarianzas correspondientes a cero elementos fuera de la diagonal están restringidas a ser cero.P Si no especifica una permutación de columna de fila de una matriz diagonal de bloque, agrega elementos distintos de cero según sea necesario.PnlmefitP El valor predeterminado es, correspondiente a los efectos aleatorios no correlacionados.Peye(r)

Alternativamente, puede ser un 1 por vector que contenga valores, con valores iguales especificando grupos de efectos aleatorios.Pr1:r En este caso, calcula las covarianzas solo dentro de los grupos y restringe las covarianzas entre los grupos para que sean cero.nlmefit

ParamTransform

Un vector de-Values que especifica una función de transformación () para cada uno de los parámetros: = * + * = ().pfPXBADESIGNBETABDESIGNBPHIfXB Cada elemento del vector debe ser uno de los siguientes códigos enteros especificando la transformación para el valor correspondiente de PHI:

  • 0: = (por defecto para todos los parámetros)PHIXB

  • 1: log () =PHIXB

  • 2: probit () =PHIXB

  • 3: logit () =PHIXB

Options

Una estructura del formulario devuelta por. utiliza los siguientes parámetros:statsetnlmefitstatset

  • — Diferencia relativa utilizada en el cálculo del gradiente de diferencia finita.'DerivStep' Puede ser un escalar, o un vector cuya longitud es el número de parámetros del modelo.p El valor predeterminado es.eps^(1/3)

  • — Nivel de visualización iterativa durante la estimación.'Display' Las opciones son:

    • (predeterminado): no muestra información'off'

    • : Muestra información después de la iteración final'final'

    • : Muestra información en cada iteración'iter'

  • : Comprueba si hay valores no válidos, como o desde.'FunValCheck'NaNInfmodelfun Las opciones son y.'on''off' El valor predeterminado es.'on'

  • — Número máximo de iteraciones permitidas.'MaxIter' El valor predeterminado es.200

  • — Identificador de función especificado mediante, una matriz de celdas con identificadores de función o una matriz vacía (valor predeterminado).'OutputFcn'@ El solucionador llama a todas las funciones de salida después de cada iteración.

  • — Tolerancia de terminación en la función logverosimilitud.'TolFun' El valor predeterminado es.1e-4

  • — Tolerancia de terminación en los efectos fijos y aleatorios estimados.'TolX' El valor predeterminado es.1e-4

OptimFun

Especifica la función de optimización utilizada para maximizar la probabilidad. Las opciones son usar o usar.'fminsearch'fminsearch'fminunc'fminunc El valor predeterminado es.'fminsearch' Solo puede especificar si el software está instalado.'fminunc'Optimization Toolbox™

Ejemplos

contraer todo

Introduzca y muestre los datos sobre el crecimiento de cinco naranjos.

CIRC = [30 58 87 115 120 142 145;         33 69 111 156 172 203 203;         30 51 75 108 115 139 140;         32 62 112 167 179 209 214;         30 49 81 125 142 174 177]; time = [118 484 664 1004 1231 1372 1582];  h = plot(time,CIRC','o','LineWidth',2); xlabel('Time (days)') ylabel('Circumference (mm)') title('{\bf Orange Tree Growth}') legend([repmat('Tree ',5,1),num2str((1:5)')],...        'Location','NW') grid on hold on

Utilice una función anónima para especificar un modelo de crecimiento logístico.

model = @(PHI,t)(PHI(:,1))./(1+exp(-(t-PHI(:,2))./PHI(:,3)));

Ajuste el modelo con la configuración predeterminada (es decir, suponiendo que cada parámetro es la suma de un efecto fijo y aleatorio, sin correlación entre los efectos aleatorios):nlmefit

TIME = repmat(time,5,1); NUMS = repmat((1:5)',size(time));  beta0 = [100 100 100]; [beta1,PSI1,stats1] = nlmefit(TIME(:),CIRC(:),NUMS(:),...                               [],model,beta0)
beta1 = 3×1

  191.3189
  723.7608
  346.2517

PSI1 = 3×3

  962.1535         0         0
         0    0.0000         0
         0         0  297.9880

stats1 = struct with fields:
           dfe: 28
          logl: -131.5457
           mse: 59.7882
          rmse: 7.9016
    errorparam: 7.7323
           aic: 277.0913
           bic: 274.3574
          covb: [3x3 double]
        sebeta: [15.2249 33.1579 26.8235]
          ires: [35x1 double]
          pres: [35x1 double]
         iwres: [35x1 double]
         pwres: [35x1 double]
         cwres: [35x1 double]

La varianza insignificante del segundo efecto aleatorio, sugiere que se puede quitar para simplificar el modelo.PSI1(2,2)

[beta2,PSI2,stats2,b2] = nlmefit(TIME(:),CIRC(:),...     NUMS(:),[],model,beta0,'REParamsSelect',[1 3])
beta2 = 3×1

  191.3193
  723.7629
  346.2532

PSI2 = 2×2

  962.4847         0
         0  297.9930

stats2 = struct with fields:
           dfe: 29
          logl: -131.5456
           mse: 59.7847
          rmse: 7.7642
    errorparam: 7.7321
           aic: 275.0913
           bic: 272.7479
          covb: [3x3 double]
        sebeta: [15.2270 33.1573 26.8230]
          ires: [35x1 double]
          pres: [35x1 double]
         iwres: [35x1 double]
         pwres: [35x1 double]
         cwres: [35x1 double]

b2 = 2×5

  -28.5262   31.6066  -36.5078   39.0748   -5.6474
    9.9981   -0.7623    6.0046   -9.4579   -5.7824

La logverosimilitud no se ve afectada, y los criterios de información Akaike y Bayesiano (y) se reducen, apoyando la decisión de descartar el segundo efecto aleatorio del modelo.loglaicbic

Utilice los efectos fijos estimados y los efectos aleatorios estimados para cada árbol para trazar el modelo a través de los datos.beta2b2

PHI = repmat(beta2,1,5) + ...          % Fixed effects       [b2(1,:);zeros(1,5);b2(2,:)];    % Random effects  tplot = 0:0.1:1600; for I = 1:5   fitted_model=@(t)(PHI(1,I))./(1+exp(-(t-PHI(2,I))./ ...         PHI(3,I)));   plot(tplot,fitted_model(tplot),'Color',h(I).Color, ...     'LineWidth',2) end

Referencias

[1] Lindstrom, M. J., and D. M. Bates. “Nonlinear mixed-effects models for repeated measures data.” Biometrics. Vol. 46, 1990, pp. 673–687.

[2] Davidian, M., and D. M. Giltinan. Nonlinear Models for Repeated Measurements Data. New York: Chapman & Hall, 1995.

[3] Pinheiro, J. C., and D. M. Bates. “Approximations to the log-likelihood function in the nonlinear mixed-effects model.” Journal of Computational and Graphical Statistics. Vol. 4, 1995, pp. 12–35.

[4] Demidenko, E. Mixed Models: Theory and Applications. Hoboken, NJ: John Wiley & Sons, Inc., 2004.

Introducido en R2008b