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 lineales generalizados

¿Qué son los modelos lineales generalizados?

Los modelos de regresión lineal describen una relación lineal entre una respuesta y uno o más términos predictivos. Sin embargo, muchas veces existe una relación no lineal. describe los modelos no lineales generales.Regresión no lineal Una clase especial de modelos no lineales, llamados, utiliza métodos lineales.generalized linear models

Recordemos que los modelos lineales tienen estas características:

  • En cada conjunto de valores para los predictores, la respuesta tiene una distribución normal con media.μ

  • Un vector de coeficiente define una combinación lineal de los predictores.bXbX

  • El modelo es =.μXb

En los modelos lineales generalizados, estas características se generalizan de la siguiente manera:

  • En cada conjunto de valores para los predictores, la respuesta tiene una distribución que puede ser,,, o, con parámetros que incluyen una media.NormalBinomioPoissonGammaGaussiano inversoμ

  • Un vector de coeficiente define una combinación lineal de los predictores.bXbX

  • Un define el modelo como () =.función de enlaceffμXb

Preparar datos

Para comenzar a ajustar una regresión, coloque los datos en un formulario que las funciones de ajuste esperan. Todas las técnicas de regresión comienzan con datos de entrada en una matriz y datos de respuesta en un vector independiente, o datos de entrada en una tabla o conjunto de DataSet y datos de respuesta como una columna en.Xytbltbl Cada fila de los datos de entrada representa una observación. Cada columna representa un predictor (variable).

Para una matriz de tabla o DataSet, indique la variable de respuesta con el par nombre-valor:tbl'ResponseVar'

mdl = fitglm(tbl,'ResponseVar','BloodPressure');

La variable de respuesta es la última columna de forma predeterminada.

Puede utilizar predictores numéricos.Categórico Un predictor categórico es aquel que toma valores de un conjunto fijo de posibilidades.

  • Para una matriz numérica, indique los predictores categóricos utilizando el par nombre-valor.X'Categorical' Por ejemplo, para indicar que los predictores y de seis son categóricos:23

    mdl = fitglm(X,y,'Categorical',[2,3]); % or equivalently mdl = fitglm(X,y,'Categorical',logical([0 1 1 0 0 0]));
  • Para una matriz de tabla o DataSet, las funciones de empalme suponen que estos tipos de datos son categóricos:tbl

    • Vector lógico

    • Vector categórico

    • La matriz de caracteres

    • Matriz de cadenas

    Si desea indicar que un predictor numérico es categórico, utilice el par nombre-valor.'Categorical'

Representar los datos numéricos faltantes como.NaN Para representar los datos que faltan para otros tipos de datos, consulte.Los valores de grupo faltantes

  • Para un modelo con matriz de datos, la respuesta puede ser:'binomial'Xy

    • Vector de columna binaria: cada entrada representa Success () o Failure ().10

    • Matriz de dos columnas de enteros — la primera columna es el número de éxitos en cada observación, la segunda columna es el número de ensayos en esa observación.

  • Para un modelo con tabla o DataSet:'binomial'tbl

    • Utilice el par nombre-valor para especificar la columna de que da el número de éxitos en cada observación.ResponseVartbl

    • Utilice el par nombre-valor para especificar la columna de que da el número de ensayos en cada observación.BinomialSizetbl

Matriz de DataSet para datos de entrada y respuesta

Por ejemplo, para crear una matriz de DataSet a partir de una hoja de cálculo:Excel®

ds = dataset('XLSFile','hospital.xls',...     'ReadObsNames',true);

Para crear una matriz de DataSet a partir de variables de espacio de trabajo:

load carsmall ds = dataset(MPG,Weight); ds.Year = ordinal(Model_Year);

Tabla para datos de entrada y respuesta

Para crear una tabla a partir de variables de espacio de trabajo:

load carsmall tbl = table(MPG,Weight); tbl.Year = ordinal(Model_Year);

Matriz numérica para datos de entrada, Vector numérico para respuesta

Por ejemplo, para crear matrices numéricas a partir de variables de espacio de trabajo:

load carsmall X = [Weight Horsepower Cylinders Model_Year]; y = MPG;

Para crear matrices numéricas a partir de una hoja de cálculo:Excel

[X, Xnames] = xlsread('hospital.xls'); y = X(:,4); % response y is systolic pressure X(:,4) = []; % remove y from the X matrix

Tenga en cuenta que las entradas no numéricas, como, no aparecen en.sexX

Elija modelo lineal generalizado y función de enlace

A menudo, los datos sugieren el tipo de distribución del modelo lineal generalizado.

Tipo de datos de respuestaTipo de distribución de modelo sugerido
Cualquier número real'normal'
Cualquier número positivoO'gamma''inverse gaussian'
Cualquier entero no negativo'poisson'
Entero de 0 a, donde es un valor positivo fijonn'binomial'

Establezca el tipo de distribución del modelo con el par nombre-valor.Distribution Después de seleccionar el tipo de modelo, elija una función de enlace para asignar entre la media y el predictor lineal.µXb

ValorDescripción
'comploglog'

log(–log((1 – µ))) = Xb

, por defecto para la distribución'identity''normal'

µ = Xb

, por defecto para la distribución'log''poisson'

log(µ) = Xb

, por defecto para la distribución'logit''binomial'

log(µ/(1 – µ)) = Xb

'loglog'

log(–log(µ)) = Xb

'probit'

Φ–1(µ) = Xb, donde Φ es la función de distribución acumulativa normal (gaussiana)

, por defecto para la distribución'reciprocal''gamma'

µ–1 = Xb

(un número), por defecto para la distribución (conp'inverse gaussian' p = –2)

µp = Xb

Matriz de celdas del formulario, que contiene tres identificadores de función creados mediante, que definen el vínculo (), la derivada del vínculo () y el vínculo inverso ().{FL FD FI}@FLFDFI O, una estructura de identificadores de función con el campo que contiene, el campo que contiene y el campo que contiene.LinkFLDerivativeFDInverseFI

Función de enlace especificada por el usuario (véase)Función de enlace personalizado

Las funciones de enlace no predeterminadas son principalmente útiles para los modelos binomiales. Estas funciones de enlace no predeterminadas son, y.'comploglog''loglog''probit'

Función de enlace personalizado

La función de enlace define la relación () = entre la respuesta media y la combinación lineal = * de los predictores.fµXbµXbXb Puede elegir una de las funciones de enlace incorporadas o definir la suya propia especificando la función de enlace, su derivado y su inversa:FLFDFI

  • La función de enlace calcula ().FLfµ

  • La derivada de la función de enlace calcula ()/.FDdfµ

  • La función inversa calcula () =.FIgXbµ

Puede especificar una función de vínculo personalizado en cualquiera de las dos formas equivalentes. Cada forma contiene identificadores de función que aceptan una sola matriz de valores que representa o, y devuelve una matriz del mismo tamaño.µXb Los identificadores de función están en una matriz de celdas o en una estructura:

  • Matriz de celdas del formulario, que contiene tres identificadores de función, creados mediante, que definen el vínculo (), la derivada del vínculo () y el vínculo inverso ().{FL FD FI}@FLFDFI

  • Estructura s con tres campos, cada uno de los cuales contiene un identificador de función creado mediante:@

    • s.Link — Función de enlace

    • s.Derivative — Derivado de la función de enlace

    • s.Inverse — Inversa de la función de enlace

Por ejemplo, para ajustar un modelo utilizando la función de enlace:'probit'

x = [2100 2300 2500 2700 2900 ...      3100 3300 3500 3700 3900 4100 4300]'; n = [48 42 31 34 31 21 23 23 21 16 17 21]'; y = [1 2 0 3 8 8 14 17 19 15 17 21]'; g = fitglm(x,[y n],...     'linear','distr','binomial','link','probit')
g =   Generalized Linear regression model:     probit(y) ~ 1 + x1     Distribution = Binomial  Estimated Coefficients:                    Estimate     SE            tStat     pValue         (Intercept)      -7.3628       0.66815    -11.02    3.0701e-28     x1             0.0023039    0.00021352     10.79    3.8274e-27  12 observations, 10 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 241, p-value = 2.25e-54

Puede realizar el mismo ajuste utilizando una función de enlace personalizado que se realiza de forma idéntica a la función de enlace:'probit'

s = {@norminv,@(x)1./normpdf(norminv(x)),@normcdf}; g = fitglm(x,[y n],...     'linear','distr','binomial','link',s)
g =   Generalized Linear regression model:     link(y) ~ 1 + x1     Distribution = Binomial  Estimated Coefficients:                    Estimate     SE            tStat     pValue         (Intercept)      -7.3628       0.66815    -11.02    3.0701e-28     x1             0.0023039    0.00021352     10.79    3.8274e-27  12 observations, 10 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 241, p-value = 2.25e-54

Los dos modelos son los mismos.

Equivalentemente, puede escribir como una estructura en lugar de una matriz de celdas de identificadores de función:s

s.Link = @norminv; s.Derivative = @(x) 1./normpdf(norminv(x)); s.Inverse = @normcdf; g = fitglm(x,[y n],...     'linear','distr','binomial','link',s)
g =   Generalized Linear regression model:     link(y) ~ 1 + x1     Distribution = Binomial  Estimated Coefficients:                    Estimate     SE            tStat     pValue         (Intercept)      -7.3628       0.66815    -11.02    3.0701e-28     x1             0.0023039    0.00021352     10.79    3.8274e-27  12 observations, 10 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 241, p-value = 2.25e-54

Elija método de empalme y modelo

Hay dos formas de crear un modelo ajustado.

  • Utilírelas cuando tenga una buena idea de su modelo lineal generalizado, o cuando desee ajustar el modelo más adelante para incluir o excluir ciertos términos.fitglm

  • Utilíce cuando desee ajustar el modelo mediante la regresión escalonada. comienza a partir de un modelo, como una constante, y agrega o resta términos uno a la vez, eligiendo un término óptimo cada vez de una manera codiciosa, hasta que no pueda mejorar aún más.stepwiseglmstepwiseglm Utilice el ajuste escalonado para encontrar un buen modelo, uno que solo tenga términos relevantes.

    El resultado depende del modelo de inicio. Por lo general, a partir de un modelo constante conduce a un modelo pequeño. Comenzando con más términos puede conducir a un modelo más complejo, pero uno que tiene menor error cuadrado medio.

En cualquier caso, proporcione un modelo a la función de empalme (que es el modelo de inicio para).stepwiseglm

Especifique un modelo mediante uno de estos métodos.

Breve nombre del modelo

NombreTipo de modelo
'constant'El modelo solo contiene un término constante (intercepción).
'linear'El modelo contiene una intersección y términos lineales para cada predictor.
'interactions'El modelo contiene una intercepción, términos lineales y todos los productos de pares de predictores distintos (sin términos cuadrados).
'purequadratic'El modelo contiene una intersección, términos lineales y términos cuadrados.
'quadratic'El modelo contiene una intersección, términos lineales, interacciones y términos cuadrados.
'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, etc. Utilice los numerales.09 Por ejemplo, tiene una constante más todos los términos lineales y de producto, y también contiene términos con predictor 1 al cuadrado.'poly2111'

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 una especificación de modelo es un vector de caracteres o un escalar de cadena del formulario

'Y ~ terms',

  • Y es el nombre de la respuesta.

  • terms Contiene

    • Los nombres de variable

    • para incluir la siguiente variable+

    • para excluir la siguiente variable-

    • para definir una interacción, un producto de términos:

    • para definir una interacción y todos los términos de orden inferior*

    • para elevar el predictor a una potencia, exactamente como se repite, por lo que incluye términos de orden inferior, así^*^

    • a los términos de grupo()

Sugerencia

Las fórmulas incluyen un término constante (intercepción) de forma predeterminada. Para excluir un término constante del modelo, incluya en la fórmula.-1

Ejemplos:

es un modelo lineal de tres variables con intercepción. es un modelo lineal de tres variables sin intercepción. es un modelo de tres variables con intercepción y un término. es el mismo que el ejemplo anterior, ya que incluye un término. incluye un término. es el mismo que el ejemplo anterior, ya que. tiene todas las interacciones entre, y, excepto la interacción de tres vías. tiene todos los términos lineales, además de los productos de con cada una de las otras variables.'Y ~ A + B + C'
'Y ~ A + B + C - 1'
'Y ~ A + B + C + B^2'B^2
'Y ~ A + B^2 + C'B^2B
'Y ~ A + B + C + A:B'A*B
'Y ~ A*B + C'A*B = A + B + A:B
'Y ~ A*B*C - A:B:C'ABC
'Y ~ A*(B + C + D)'A

Ajustar modelo a datos

Cree un modelo ajustado utilizando o.fitglmstepwiseglm Elija entre ellos como en.Elija método de empalme y modelo Para los modelos lineales generalizados que no sean los que tienen una distribución normal, asigne un par nombre-valor como en.DistributionElija modelo lineal generalizado y función de enlace Por ejemplo,

mdl = fitglm(X,y,'linear','Distribution','poisson') % or mdl = fitglm(X,y,'quadratic',...          'Distribution','binomial')

Examine la calidad y ajuste el modelo ajustado

Después de ajustar un modelo, examine el resultado.

Visualización del modelo

Un modelo de regresión lineal muestra varios diagnósticos cuando ingresa su nombre o ingresa.disp(mdl) Esta pantalla proporciona parte de la información básica para comprobar si el modelo ajustado representa los datos adecuadamente.

Por ejemplo, ajustar un modelo de Poisson a los datos construidos con dos de cinco predictores que no afectan a la respuesta, y sin término de intercepción:

rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[.4;.2;.3]); y = poissrnd(mu); mdl = fitglm(X,y,...     'linear','Distribution','poisson')
mdl =    Generalized Linear regression model:     log(y) ~ 1 + x1 + x2 + x3 + x4 + x5     Distribution = Poisson  Estimated Coefficients:                    Estimate     SE          tStat       pValue         (Intercept)     0.039829     0.10793     0.36901       0.71212     x1               0.38551    0.076116      5.0647    4.0895e-07     x2             -0.034905    0.086685    -0.40266        0.6872     x3              -0.17826    0.093552     -1.9054      0.056722     x4               0.21929     0.09357      2.3436      0.019097     x5               0.28918      0.1094      2.6432     0.0082126   100 observations, 94 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 44.9, p-value = 1.55e-08

Observe que:

  • La pantalla contiene los valores estimados de cada coeficiente en la columna.Estimate Estos valores están razonablemente cerca de los verdaderos valores, excepto posiblemente el coeficiente de no está terriblemente cerca.[0;.4;0;0;.2;.3]x30

  • Hay una columna de error estándar para las estimaciones de coeficiente.

  • Los notificados (que se derivan de las estadísticas bajo la suposición de errores normales) para los predictores 1, 4 y 5 son pequeños.pValuet Estos son los tres predictores que se utilizaron para crear los datos de respuesta.y

  • El for, y son más grandes que 0,01.pValue(Intercept)x2x3 Estos tres predictores no se utilizaron para crear los datos de respuesta.y El para es un poco más, por lo que podría ser considerado como posiblemente significativo.pValuex3.05

  • La pantalla contiene el estadístico de Chi-cuadrado.

Diagramas de diagnóstico

Los diagramas de diagnóstico le ayudan a identificar los valores atípicos y a ver otros problemas en el modelo o en el ajuste. Para ilustrar estas parcelas, considere la posibilidad de regresión binomial con una función de enlace logístico.

el es útil para los datos de proporción.modelo logístico Define la relación entre la proporción y el peso:pw

log [/(1 –)] =ppb1 +b2w

Este ejemplo se ajusta a un modelo binomio a los datos. Los datos se derivan de, que contiene mediciones de coches grandes de diferentes pesos.carbig.mat Cada peso en tiene un número correspondiente de coches en y un número correspondiente de coches de baja kilometraje en.wtotalpoor

Es razonable suponer que los valores de las distribuciones de seguimiento, con el número de pruebas dadas por y el porcentaje de éxitos en función de.poorBinomiototalw Esta distribución se puede contabilizar en el contexto de un modelo logístico utilizando un modelo lineal generalizado con log de función de enlace (/(1 –)) =.µµXb Se llama a esta función de enlace.'logit'

w = [2100 2300 2500 2700 2900 3100 ...      3300 3500 3700 3900 4100 4300]'; total = [48 42 31 34 31 21 23 23 21 16 17 21]'; poor = [1 2 0 3 8 8 14 17 19 15 17 21]'; mdl = fitglm(w,[poor total],...     'linear','Distribution','binomial','link','logit')
mdl =   Generalized Linear regression model:     logit(y) ~ 1 + x1     Distribution = Binomial  Estimated Coefficients:                    Estimate     SE            tStat      pValue         (Intercept)       -13.38         1.394    -9.5986    8.1019e-22     x1             0.0041812    0.00044258     9.4474    3.4739e-21  12 observations, 10 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 242, p-value = 1.3e-54

Vea qué tan bien se ajusta el modelo a los datos.

plotSlice(mdl)

El ajuste parece razonablemente bueno, con límites de confianza bastante amplios.

Para examinar más detalles, cree una gráfica de apalancamiento.

plotDiagnostics(mdl)

Esto es típico de una regresión con puntos ordenados por la variable predictora. El apalancamiento de cada punto en el ajuste es mayor para los puntos con valores predictores relativamente extremos (en cualquier dirección) y bajos para los puntos con valores predictores medios. En ejemplos con varios predictores y con puntos no ordenados por valor de predictor, esta gráfica puede ayudarle a identificar qué observaciones tienen un alto apalancamiento porque son valores atípicos medidos por sus parámetros predictores.

Residuos: calidad de modelo para datos de entrenamiento

Hay varias parcelas residuales para ayudarle a detectar errores, valores atípicos o correlaciones en el modelo o los datos. Las parcelas residuales más simples son la gráfica de histograma predeterminada, que muestra el rango de los residuos y sus frecuencias, y la gráfica de probabilidad, que muestra cómo la distribución de los residuos se compara con una distribución normal con varianza coincidente.

Este ejemplo muestra los trazados residuales para un modelo de Poisson ajustado. La construcción de datos tiene dos de cinco predictores que no afectan a la respuesta, y ningún término de intercepción:

rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu); mdl = fitglm(X,y,...     'linear','Distribution','poisson');

Examine los residuos:

plotResiduals(mdl)

Mientras que la mayoría de los residuos Cluster cerca de 0, hay varios cerca de ± 18. Así que examine una gráfica de residuales diferente.

plotResiduals(mdl,'fitted')

Los residuos grandes no parecen tener mucho que ver con los tamaños de los valores ajustados.

Quizás una gráfica de probabilidad sea más informativa.

plotResiduals(mdl,'probability')

Ahora está claro. Los residuos no siguen una distribución normal. En su lugar, tienen colas más gordos, tanto como una distribución subyacente de Poisson.

Traza para entender los efectos predictores y cómo modificar un modelo

En este ejemplo se muestra cómo comprender el efecto que tiene cada predictor en un modelo de regresión y cómo modificar el modelo para quitar los términos innecesarios.

  1. Cree un modelo a partir de algunos predictores en datos artificiales. Los datos no utilizan la segunda y tercera columnas en.X Así que esperas que el modelo no muestre mucha dependencia de esos predictores.

    rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu); mdl = fitglm(X,y,...     'linear','Distribution','poisson');
  2. Examine un gráfico de sectores de las respuestas. Esto muestra el efecto de cada predictor por separado.

    plotSlice(mdl)

    La escala del primer predictor es abrumadora la trama. Desactívelo usando el menú.Predictors

    Ahora está claro que los predictores 2 y 3 tienen poco o ningún efecto.

    Puede arrastrar los valores predictores individuales, que se representan mediante líneas verticales azules discontinuas. También puede elegir entre límites de confianza simultáneos y no simultáneos, que se representan mediante curvas rojas discontinuas. Al arrastrar las líneas predictoras se confirma que los predictores 2 y 3 tienen poco o ningún efecto.

  3. Quite los predictores innecesarios utilizando cualquiera removeTerms O step. El uso puede ser más seguro, en caso de que haya una importancia inesperada a un término que se hace evidente después de eliminar otro término.step Sin embargo, a veces puede ser eficaz cuando no se procede.removeTermsstep En este caso, los dos dan resultados idénticos.

    mdl1 = removeTerms(mdl,'x2 + x3')
    mdl1 =    Generalized Linear regression model:     log(y) ~ 1 + x1 + x4 + x5     Distribution = Poisson  Estimated Coefficients:                    Estimate    SE          tStat     pValue          (Intercept)    0.17604     0.062215    2.8295       0.004662     x1              1.9122     0.024638    77.614              0     x4             0.98521     0.026393    37.328    5.6696e-305     x5             0.61321     0.038435    15.955     2.6473e-57   100 observations, 96 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 4.97e+04, p-value = 0
    mdl1 = step(mdl,'NSteps',5,'Upper','linear')
    1. Removing x3, Deviance = 93.856, Chi2Stat = 0.00075551, PValue = 0.97807 2. Removing x2, Deviance = 96.333, Chi2Stat = 2.4769, PValue = 0.11553  mdl1 =    Generalized Linear regression model:     log(y) ~ 1 + x1 + x4 + x5     Distribution = Poisson  Estimated Coefficients:                    Estimate    SE          tStat     pValue          (Intercept)    0.17604     0.062215    2.8295       0.004662     x1              1.9122     0.024638    77.614              0     x4             0.98521     0.026393    37.328    5.6696e-305     x5             0.61321     0.038435    15.955     2.6473e-57   100 observations, 96 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 4.97e+04, p-value = 0

Predecir o simular respuestas a nuevos datos

Hay tres formas de utilizar un modelo lineal para predecir la respuesta a los nuevos datos:

Predecir

el predict método da una predicción de las respuestas de la media y, si se solicita, los límites de confianza.

Este ejemplo muestra cómo predecir y obtener intervalos de confianza en las predicciones utilizando el predict Método.

  1. Cree un modelo a partir de algunos predictores en datos artificiales. Los datos no utilizan la segunda y tercera columnas en.X Así que esperas que el modelo no muestre mucha dependencia de estos predictores. Construya el modelo escalonado para incluir automáticamente los predictores relevantes.

    rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu); mdl = stepwiseglm(X,y,...     'constant','upper','linear','Distribution','poisson');
    1. Adding x1, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 0 2. Adding x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3. Adding x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52
  2. Genere algunos datos nuevos y evalúe las predicciones de los datos.

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); % new data [ynew,ynewci] = predict(mdl,Xnew)
    ynew =     1.0e+04 *      0.1130     1.7375     3.7471   ynewci =     1.0e+04 *      0.0821    0.1555     1.2167    2.4811     2.8419    4.9407

FEVAL

Cuando se construye un modelo a partir de una matriz de tabla o DataSet, feval a menudo es más conveniente para predecir respuestas medias que predict. Sin embargo, no proporciona límites de confianza.FEVAL

Este ejemplo muestra cómo predecir las respuestas de la media usando el feval Método.

  1. Cree un modelo a partir de algunos predictores en datos artificiales. Los datos no utilizan la segunda y tercera columnas en.X Así que esperas que el modelo no muestre mucha dependencia de estos predictores. Construya el modelo escalonado para incluir automáticamente los predictores relevantes.

    rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu);  X = array2table(X); % create data table y = array2table(y); tbl = [X y];  mdl = stepwiseglm(tbl,...     'constant','upper','linear','Distribution','poisson');
    1. Adding x1, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 0 2. Adding x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3. Adding x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52
  2. Genere algunos datos nuevos y evalúe las predicciones de los datos.

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); % new data ynew = feval(mdl,Xnew(:,1),Xnew(:,4),Xnew(:,5)) % only need predictors 1,4,5
    ynew =     1.0e+04 *      0.1130     1.7375     3.7471

    Equivalente

    ynew = feval(mdl,Xnew(:,[1 4 5])) % only need predictors 1,4,5
    ynew =     1.0e+04 *      0.1130     1.7375     3.7471

Aleatorio

el random método genera nuevos valores de respuesta aleatoria para los valores predictores especificados. La distribución de los valores de respuesta es la distribución utilizada en el modelo. calcula la media de la distribución a partir de los predictores, los coeficientes estimados y la función de enlace.Aleatorio Para distribuciones como normal, el modelo también proporciona una estimación de la varianza de la respuesta. Para las distribuciones binomiales y de Poisson, la varianza de la respuesta viene determinada por la media; no utiliza una estimación de "dispersión" separada.Aleatorio

En este ejemplo se muestra cómo simular respuestas mediante el random Método.

  1. Cree un modelo a partir de algunos predictores en datos artificiales. Los datos no utilizan la segunda y tercera columnas en.X Así que esperas que el modelo no muestre mucha dependencia de estos predictores. Construya el modelo escalonado para incluir automáticamente los predictores relevantes.

    rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu); mdl = stepwiseglm(X,y,...     'constant','upper','linear','Distribution','poisson');
    1. Adding x1, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 0 2. Adding x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3. Adding x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52
  2. Genere algunos datos nuevos y evalúe las predicciones de los datos.

    Xnew = randn(3,5) + repmat([1 2 3 4 5],[3,1]); % new data ysim = random(mdl,Xnew)
    ysim =          1111        17121        37457

    Las predicciones de son muestras de Poisson, por lo que son enteros.Aleatorio

  3. Evalúe el método de nuevo, el resultado cambia.Aleatorio

    ysim = random(mdl,Xnew)
    ysim =          1175        17320        37126

Compartir modelos ajustados

La pantalla del modelo contiene suficiente información para permitir que otra persona vuelva a crear el modelo en un sentido teórico. Por ejemplo,

rng('default') % for reproducibility X = randn(100,5); mu = exp(X(:,[1 4 5])*[2;1;.5]); y = poissrnd(mu); mdl = stepwiseglm(X,y,...     'constant','upper','linear','Distribution','poisson')
1. Adding x1, Deviance = 2515.02869, Chi2Stat = 47242.9622, PValue = 0 2. Adding x4, Deviance = 328.39679, Chi2Stat = 2186.6319, PValue = 0 3. Adding x5, Deviance = 96.3326, Chi2Stat = 232.0642, PValue = 2.114384e-52  mdl =    Generalized Linear regression model:     log(y) ~ 1 + x1 + x4 + x5     Distribution = Poisson  Estimated Coefficients:                    Estimate    SE          tStat     pValue          (Intercept)    0.17604     0.062215    2.8295       0.004662     x1              1.9122     0.024638    77.614              0     x4             0.98521     0.026393    37.328    5.6696e-305     x5             0.61321     0.038435    15.955     2.6473e-57   100 observations, 96 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 4.97e+04, p-value = 0

También puede acceder a la descripción del modelo mediante programación. Por ejemplo,

mdl.Coefficients.Estimate
ans =      0.1760     1.9122     0.9852     0.6132
mdl.Formula
ans =   log(y) ~ 1 + x1 + x4 + x5

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.

[4] Neter, J., M. H. Kutner, C. J. Nachtsheim, and W. Wasserman. Applied Linear Statistical Models, Fourth Edition. Irwin, Chicago, 1996.