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.

fitglm

Cree un modelo de regresión lineal generalizado

Descripción

ejemplo

mdl = fitglm(tbl) Devuelve un modelo lineal generalizado que se ajusta a las variables de la matriz de tabla o DataSet.tbl De forma predeterminada, toma la última variable como la variable de respuesta.fitglm

ejemplo

mdl = fitglm(X,y) Devuelve un modelo lineal generalizado de las respuestas, que se ajustan a la matriz de datos.yX

ejemplo

mdl = fitglm(___,modelspec) Devuelve un modelo lineal generalizado del tipo especificado en.modelspec

ejemplo

mdl = fitglm(___,Name,Value) Devuelve un modelo lineal generalizado con opciones adicionales especificadas por uno o más argumentos de par.Name,Value

Por ejemplo, puede especificar qué variables son categóricas, la distribución de la variable de respuesta y la función de enlace que se va a utilizar.

Ejemplos

contraer todo

Hacer un modelo binomio logístico de la probabilidad de fumar en función de la edad, el peso y el sexo, utilizando un modelo de interacciones de dos vías.

Cargue la matriz del conjunto de datos.hospital

load hospital dsa = hospital;

Especifique el modelo utilizando una fórmula que permita interacciones bidireccionales entre las variables edad, peso y sexo. El fumador es la variable de respuesta.

modelspec = 'Smoker ~ Age*Weight*Sex - Age:Weight:Sex';

Ajuste un modelo binomial logístico.

mdl = fitglm(dsa,modelspec,'Distribution','binomial')
mdl =  Generalized linear regression model:     logit(Smoker) ~ 1 + Sex*Age + Sex*Weight + Age*Weight     Distribution = Binomial  Estimated Coefficients:                         Estimate         SE         tStat      pValue                         ___________    _________    ________    _______      (Intercept)            -6.0492       19.749     -0.3063    0.75938     Sex_Male               -2.2859       12.424    -0.18399    0.85402     Age                    0.11691      0.50977     0.22934    0.81861     Weight                0.031109      0.15208     0.20455    0.83792     Sex_Male:Age          0.020734      0.20681     0.10025    0.92014     Sex_Male:Weight        0.01216     0.053168     0.22871     0.8191     Age:Weight         -0.00071959    0.0038964    -0.18468    0.85348   100 observations, 93 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 5.07, p-value = 0.535 

Todos los valores p (bajo pValue) son grandes. Esto significa que ninguno de los coeficientes es significativo. El gran

<math display="block">
<mrow>
<mi>p</mi>
</mrow>
</math>
-valor para la prueba del modelo, 0,535, indica que este modelo podría no diferir estadísticamente de un modelo constante.

Cree datos de muestra con 20 predictores, y la respuesta de Poisson utilizando sólo tres de los predictores, además de una constante.

rng('default') % for reproducibility X = randn(100,7); mu = exp(X(:,[1 3 6])*[.4;.2;.3] + 1); y = poissrnd(mu);

Ajuste un modelo lineal generalizado utilizando la distribución de Poisson.

mdl =  fitglm(X,y,'linear','Distribution','poisson')
mdl =  Generalized linear regression model:     log(y) ~ 1 + x1 + x2 + x3 + x4 + x5 + x6 + x7     Distribution = Poisson  Estimated Coefficients:                    Estimate        SE        tStat        pValue                      _________    ________    ________    __________      (Intercept)      0.88723    0.070969      12.502    7.3149e-36     x1               0.44413    0.052337      8.4858    2.1416e-17     x2             0.0083388    0.056527     0.14752       0.88272     x3               0.21518    0.063416      3.3932    0.00069087     x4             -0.058386    0.065503    -0.89135       0.37274     x5             -0.060824    0.073441     -0.8282       0.40756     x6               0.34267    0.056778      6.0352    1.5878e-09     x7               0.04316     0.06146     0.70225       0.48252   100 observations, 92 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 119, p-value = 1.55e-22 

Los-valores de 2.14 e-17, 0,00069, y 1.58 e-09 indican que los coeficientes de las variables, y | x6 | son estadísticamente significativos.px1x3

Argumentos de entrada

contraer todo

Datos de entrada, especificados como una tabla o matriz de DataSet. Cuando es una fórmula, la fórmula especifica las variables de predictor y respuesta.modelspec De lo contrario, si no especifica las variables de predictor y respuesta, la última variable en es la variable de respuesta y las otras son las variables predictoras de forma predeterminada.tbl

Las variables predictoras y la variable de respuesta pueden ser numéricas, lógicas, categóricas, de caracteres o de cadena. La variable de respuesta puede tener un tipo de datos que no sea numérico solo si es.'Distribution''binomial'

Para establecer una columna diferente como variable de respuesta, utilice el argumento de par nombre-valor.ResponseVar Para usar un subconjunto de las columnas como predictores, use el argumento de par nombre-valor.PredictorVars

Variables predictoras, especificadas como una-por-matriz, donde es el número de observaciones y es el número de variables predictoras.npnp Cada columna de representa una variable, y cada fila representa una observación.X

De forma predeterminada, hay un término constante en el modelo, a menos que se quite explícitamente, por lo que no incluya una columna de 1s en.X

Tipos de datos: single | double

Variable de respuesta, especificada como un vector-by-1, donde es el número de observaciones.nn Cada entrada es la respuesta de la fila correspondiente de.yX

Tipos de datos: single | double | logical | categorical

Especificación del modelo, que es el modelo de inicio para, especificado como uno de los siguientes:stepwiseglm

  • Un vector de caracteres o un escalar de cadena que nombra el modelo.

    ValorTipo de modelo
    'constant'El modelo solo contiene un término constante (intercepción).
    'linear'El modelo contiene una intersección y un término lineal para cada predictor.
    'interactions'El modelo contiene una intercepción, un término lineal para cada predictor y todos los productos de pares de predictores distintos (sin términos cuadrados).
    'purequadratic'El modelo contiene un término de intercepción y términos lineales y cuadrados para cada predictor.
    'quadratic'El modelo contiene un término de intercepción, términos lineales y cuadrados para cada predictor, y todos los productos de pares de predictores distintos.
    'polyijk'El modelo es un polinomio con todos los términos hasta el grado i en el primer predictor, grado j en el segundo predictor, y así sucesivamente. Especifique el grado máximo para cada predictor utilizando los números 0 aunque 9. El modelo contiene términos de interacción, pero el grado de cada término de interacción no excede el valor máximo de los grados especificados. Por ejemplo, tiene una intercepción y'poly13'x1,x2,x22,x23,x1*x2Yx1*x22 términos, dondex1 Yx2 son el primer y segundo predictores, respectivamente.
  • A-by-(+ 1) matriz, o a, especificando términos en el modelo, donde es el número de términos y es el número de variables predictoras, y + 1 cuentas para la variable de respuesta.tpTérminos matriztp Una matriz de términos es conveniente cuando el número de predictores es grande y desea generar los términos mediante programación.

  • Un vector de caracteres o un escalar de cadena que representa un en el formularioFórmula

    'Y ~ terms',

    donde están.termsLa notación Wilkinson

Ejemplo: 'quadratic'

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: Especifica que la distribución de la respuesta es normal, y ordena utilizar la función de enlace probit y excluir las observaciones 23 y 59 del ajuste.'Distribution','normal','link','probit','Exclude',[23,59]fitglm

Número de pruebas para la distribución binomial, es decir, el tamaño de la muestra, especificado como el par separado por comas que consta de un valor escalar o un vector de la misma longitud que la respuesta. Este es el parámetro para la distribución binomial ajustada. solo se aplica cuando el parámetro es.nBinomialSizeDistribution'binomial'

Si es un valor escalar, significa que todas las observaciones tienen el mismo número de pruebas.BinomialSize

Como alternativa a, puede especificar la respuesta como un vector de dos columnas con recuentos en la columna 1 y en la columna 2.BinomialSizeBinomialSize

Tipos de datos: single | double

Lista de variables categóricas, especificada como el par separado por comas que consta de una matriz de cadenas o matriz de vectores de caracteres que contiene nombres de variables categóricas en la matriz de tabla o DataSet, o un vector de índice numérico o lógico que indica qué columnas son categóricas.'CategoricalVars'tbl

  • Si los datos están en una tabla o conjunto de datos, a continuación, de forma predeterminada,tbl fitglm trata todos los valores categóricos, valores lógicos, matrices de caracteres, matrices de cadenas y matrices de celdas de vectores de caracteres como variables categóricas.

  • Si los datos están en la matriz, el valor predeterminado de es una matriz vacía.X'CategoricalVars'[] Es decir, ninguna variable es categórica a menos que la especifique como categórica.

Por ejemplo, puede especificar las observaciones 2 y 3 de 6 como categóricas utilizando uno de los ejemplos siguientes.

Ejemplo: 'CategoricalVars',[2,3]

Ejemplo: 'CategoricalVars',logical([0 1 1 0 0 0])

Tipos de datos: single | double | logical | string | cell

Indicador para calcular el parámetro de dispersión para y distribuciones, especificado como el par separado por comas que consta de y uno de los siguientes.'binomial''poisson''DispersionFlag'

trueCalcule un parámetro de dispersión Cuando calcule los errores estándar
falsePredeterminado. Utilice el valor teórico al calcular los errores estándar

La función de ajuste siempre estima la dispersión para otras distribuciones.

Ejemplo: 'DispersionFlag',true

Distribución de la variable de respuesta, especificada como el par separado por comas que consta de y uno de los siguientes.'Distribution'

'normal'La distribución normal
'binomial'Distribución binomial
'poisson'La distribución de Poisson
'gamma'Distribución gamma
'inverse gaussian'La distribución gaussiana inversa

Ejemplo: 'Distribution','gamma'

Observaciones que se excluirán del ajuste, especificadas como el par separado por comas consistente en un vector de índice lógico o numérico que indica las observaciones que se excluirán del ajuste.'Exclude'

Por ejemplo, puede excluir las observaciones 2 y 3 de 6 utilizando cualquiera de los ejemplos siguientes.

Ejemplo: 'Exclude',[2,3]

Ejemplo: 'Exclude',logical([0 1 1 0 0 0])

Tipos de datos: single | double | logical

Indicador para el término constante (intercepción) en el ajuste, especificado como el par separado por comas que consta de y ya sea para incluir o para eliminar el término constante del modelo.'Intercept'truefalse

Utilíficese únicamente al especificar el modelo utilizando un vector de caracteres o un escalar de cadena, no una fórmula o una matriz.'Intercept'

Ejemplo: 'Intercept',false

Variable de desfase en el ajuste, especificada como el par separado por comas que consta de un vector o un nombre de una variable con la misma longitud que la respuesta.'Offset'

fitglm utiliza como un predictor adicional, con un valor de coeficiente fijado en 1,0.Offset En otras palabras, la fórmula para el ajuste es

( )fμ ~ Offset + (terms involving real predictors)

con el predictor con coeficiente.Offset1

Por ejemplo, considere un modelo de regresión de Poisson. Supongamos que el número de recuentos se conoce por razones teóricas para ser proporcional a un predictor.A Mediante el uso de la función de enlace de registro y especificando como un desfase, puede forzar el modelo para satisfacer esta restricción teórica.log(A)

Tipos de datos: single | double | char | string

Las variables predictoras que se usarán en el ajuste, especificadas como el par separado por comas que consta de una matriz de cadenas o matriz de vectores de caracteres de los nombres de variables de la matriz de tabla o DataSet, o un vector de índice numérico o lógico que indica qué columnas están variables predictoras.'PredictorVars'tbl

Los valores de cadena o vectores de caracteres deben estar entre los nombres de, o los nombres que especifique mediante el argumento de par nombre-valor.tbl'VarNames'

El valor predeterminado es todas las variables en, o todas las variables en excepto para.XtblResponseVar

Por ejemplo, puede especificar las variables segunda y tercera como variables predictoras utilizando uno de los siguientes ejemplos.

Ejemplo: 'PredictorVars',[2,3]

Ejemplo: 'PredictorVars',logical([0 1 1 0 0 0])

Tipos de datos: single | double | logical | string | cell

Variable de respuesta que se usará en el ajuste, especificada como el par separado por comas que consta de un vector de caracteres o un escalar de cadena que contiene el nombre de la variable en la matriz de tabla o DataSet, o un vector de índice numérico o lógico que indica qué columna es la variable de respuesta.'ResponseVar'tbl Normalmente, debe usar al ajustar una tabla o una matriz de conjunto de datos.'ResponseVar'tbl

Por ejemplo, puede especificar la cuarta variable, digamos, como la respuesta de seis variables, de una de las siguientes maneras.yield

Ejemplo: 'ResponseVar','yield'

Ejemplo: 'ResponseVar',[4]

Ejemplo: 'ResponseVar',logical([0 0 0 1 0 0])

Tipos de datos: single | double | logical | char | string

Nombres de variables, especificadas como el par separado por comas que consta de una matriz de cadenas o matriz de vectores de caracteres, incluidos los nombres de las columnas de First, y el nombre de la variable de respuesta Last.'VarNames'Xy

no es aplicable a las variables de una matriz de tabla o DataSet, ya que esas variables ya tienen nombres.'VarNames'

Por ejemplo, si en sus datos, potencia, aceleración y año de modelo de los coches son las variables predictoras, y millas por galón (MPG) es la variable de respuesta, a continuación, puede nombrar las variables de la siguiente manera.

Ejemplo: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}

Tipos de datos: string | cell

Ponderaciones de observación, especificadas como el par separado por comas que consta de y un vector-por-1 de valores escalares no negativos, donde es el número de observaciones.'Weights'nn

Tipos de datos: single | double

Argumentos de salida

contraer todo

Modelo lineal generalizado que representa un ajuste de mínimos cuadrados del vínculo de la respuesta a los datos, devuelto como un objeto.GeneralizedLinearModel

Para las propiedades y los métodos del objeto de modelo lineal generalizado, vea la página de clase.mdlGeneralizedLinearModel

Más acerca de

contraer todo

Términos matriz

Una matriz de términos es a-por-(+ 1) matriz especificando términos en un modelo, donde es el número de términos, es el número de variables predictoras y + 1 cuentas para la variable de respuesta.Ttptp El valor de es el exponente de la variable en el término.T(i,j)ji

Por ejemplo, supongamos que una entrada incluye tres variables predictoras, y la variable de respuesta en el orden, y.ABCYABCY Cada fila de representa un término:T

  • — Término constante o intercepción[0 0 0 0]

  • — ; Equivalente[0 1 0 0]BA^0 * B^1 * C^0

  • [1 0 1 0]A*C

  • [2 0 0 0]A^2

  • [0 1 2 0]B*(C^2)

Al final de cada término representa la variable de respuesta.0 En general, un vector de columna de ceros en una matriz de términos representa la posición de la variable de respuesta. Si tiene las variables de predictor y respuesta en un vector de matriz y columna, debe incluir para la variable de respuesta en la última columna de cada fila.0

Fórmula

Una fórmula para la especificación del modelo es un vector de caracteres o un escalar de cadena del formulario 'Y ~ terms'.

  • Y es el nombre de la respuesta.

  • terms representa los términos predictores en un modelo utilizando la notación Wilkinson.

Por ejemplo:

  • especifica un modelo lineal de tres variables con intercepción.'Y ~ A + B + C'

  • especifica un modelo lineal de tres variables sin intercepción.'Y ~ A + B + C – 1' Tenga en cuenta que las fórmulas incluyen un término constante (interceptar) de forma predeterminada. Para excluir un término constante del modelo, debe incluir en la fórmula.–1

La notación Wilkinson

La notación Wilkinson describe los términos presentes en un modelo. La notación se relaciona con los términos presentes en un modelo, no con los multiplicadores (coeficientes) de esos términos.

La notación Wilkinson utiliza estos símbolos:

  • significa incluir la siguiente variable.+

  • significa no incluir la siguiente variable.

  • define una interacción, que es un producto de términos.:

  • define una interacción y todos los términos de orden inferior.*

  • eleva el predictor a una potencia, exactamente como se repite, también incluye términos de orden inferior.^*^

  • términos de grupos.()

Esta tabla muestra ejemplos típicos de la notación Wilkinson.

La notación WilkinsonTérmino en notación estándar
1Término constante (intercepción)
, donde es un entero positivoA^kk,A A2, ..., Ak
A + B,AB
A*B, ,ABA*B
A:BsolamenteA*B
–BNo incluyaB
A*B + C, , ,ABCA*B
A + B + C + A:B, , ,ABCA*B
A*B*C – A:B:C, , , , ,ABCA*BA*CB*C
A*(B + C), , , ,ABCA*BA*C

notación siempre incluye un término constante a menos que se elimine explícitamente el término using.Statistics and Machine Learning Toolbox™–1

Para obtener más información, consulte.La notación Wilkinson

Función de enlace canónico

La función de enlace por defecto para un modelo lineal generalizado es la.función de enlace canónico

Funciones de enlace canónico para modelos lineales generalizados

DistribuciónNombre de función de enlaceFunción de enlaceFunción media (inversa)
'normal''identity'( ) =fμμ=μXb
'binomial''logit'() = log (/(1 –))fμμμ= exp ()/(1 + exp ())μXbXb
'poisson''log'() = log ()fμμ= exp ()μXb
'gamma'-1() = 1/fμμ= 1/()μXb
'inverse gaussian'-2() = 1/fμμ2= ( )μXb–1/2

Sugerencias

  • El modelo lineal generalizado es un modelo lineal estándar a menos que especifique lo contrario con el par nombre-valor.mdlDistribution

  • Para métodos como o, o propiedades del objeto, vea.plotResidualsdevianceTestGeneralizedLinearModelGeneralizedLinearModel

  • Después de entrenar un modelo, puede generar código de C/C++ que predice las respuestas de los nuevos datos. La generación de código C/C++ requiere MATLAB®Coder™. Para obtener más información, consulte.Introducción a la generación de código

Algoritmos

  • fitglm trata un predictor categórico de la siguiente manera:

    • Un modelo con un predictor categórico que tiene niveles (categorías) incluyeL L – 1 variables indicadoras. El modelo utiliza la primera categoría como nivel de referencia, por lo que no incluye la variable indicadora para el nivel de referencia. Si el tipo de datos del predictor categórico es, a continuación, puede comprobar el orden de las categorías mediante el uso y reordenar las categorías mediante el uso para personalizar el nivel de referencia.Categóricocategoriesreordercats

    • fitglm trata al grupo de L – 1 variables indicadoras como una sola variable. Si desea tratar las variables indicadoras como variables predictoras distintas, cree las variables indicadoras manualmente utilizando.dummyvar A continuación, utilice las variables indicadoras, excepto la correspondiente al nivel de referencia de la variable categórica, al ajustar un modelo. Para el predictor categórico, si especifica todas las columnas y un término de intercepción como predictores, la matriz de diseño se convierte en deficiente de rango.Xdummyvar(X)

    • Los términos de interacción entre un predictor continuo y un predictor categórico con niveles consisten en el producto elemento-sabio delL L – 1 variables indicadoras con el predictor continuo.

    • Los términos de interacción entre dos predictores categóricos y los niveles consisten en laLM (L – 1)*(M – 1) variables indicadoras para incluir todas las combinaciones posibles de los dos niveles predictores categóricos.

    • No puede especificar términos de orden superior para un predictor categórico porque el cuadrado de un indicador es igual a sí mismo.

  • fitglm considera, (vector de carácter vacío), (cadena vacía), y valores en,, y que faltan valores.NaN''""<missing><undefined>tblXY fitglm no utiliza observaciones con valores faltantes en el ajuste. La propiedad de un modelo ajustado indica siObservationInfo fitglm utiliza cada observación en el ajuste.

Funcionalidad alternativa

  • Se utiliza para seleccionar una especificación de modelo automáticamente.stepwiseglm Uso step, addTermsO removeTerms para ajustar un modelo ajustado.

Referencias

[1] Collett, D. Modeling Binary Data. New York: Chapman & Hall, 2002.

[2] Dobson, A. J. An Introduction to Generalized Linear Models. New York: Chapman & Hall, 1990.

[3] McCullagh, P., and J. A. Nelder. Generalized Linear Models. New York: Chapman & Hall, 1990.

Capacidades ampliadas

Introducido en R2013b