fitglm
Crear un modelo de regresión lineal generalizado
Descripción
devuelve un modelo lineal generalizado con más opciones especificadas por uno o varios argumentos de par mdl
= fitglm(___,Name,Value
)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
Ajustar un modelo de regresión logística
Cree un modelo binomial logístico de la probabilidad de fumar como una función de la edad, el peso y el sexo, usando un modelo de interacciones bidireccionales.
Cargue el arreglo de conjuntos de datos hospital
.
load hospital
dsa = hospital;
Especifique el modelo con una fórmula que permita hasta dos interacciones bidireccionales entre las variables edad, peso y sexo. La variable de respuesta es persona fumadora.
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 de p (por debajo de pValue
) son grandes. Esto significa que ninguno de los coeficientes es significativo. El elevado valor de para la prueba del modelo, 0.535, indica que este modelo puede no diferir estadísticamente de un modelo constante.
GLM para respuesta de Poisson
Cree datos de muestra con 20 predictores y una respuesta de Poisson con solo tres de los predictores más 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 con 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 p
de 2.14e-17, 0.00069 y 1.58e-09 indican que los coeficientes de las variables x1
, x3
y x6
son estadísticamente significativos.
Argumentos de entrada
tbl
— Datos de entrada
tabla | arreglo de conjuntos de datos
Datos de entrada, incluidas las variables predictoras y de respuesta, especificados en forma de tabla o arreglo de conjuntos de datos. 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 distinto del numérico solo si 'Distribution'
es 'binomial'
.
De forma predeterminada,
fitglm
adopta la última variable como la variable de respuesta y el resto como las variables predictoras.Para establecer otra columna como la variable de respuesta, utilice el argumento de par nombre-valor
ResponseVar
.Para utilizar un subconjunto de las columnas como predictores, utilice el argumento de par nombre-valor
PredictorVars
.Para definir la especificación de un modelo, establezca el argumento
modelspec
mediante una fórmula o matriz de términos. La fórmula o matriz de términos especifica qué columnas se utilizarán como las variables predictoras o de respuesta.
Los nombres de las variables de una tabla no tienen que ser identificadores válidos de MATLAB®, pero los nombres no deben contener espacios en blanco al principio ni al final. Si los nombres no son válidos, no puede utilizar una fórmula al ajustar un modelo; por ejemplo:
No puede especificar
modelspec
mediante una fórmula.No puede utilizar una fórmula para especificar los términos que se han de añadir o eliminar al utilizar la función
addTerms
o la funciónremoveTerms
, respectivamente.No puede utilizar una fórmula para especificar los límites inferior y superior del modelo al utilizar la función
step
ostepwiseglm
con los argumentos de par nombre-valor'Lower'
y'Upper'
, respectivamente.
Puede verificar los nombres de las variables en tbl
mediante la función isvarname
. Si los nombres de las variables no son válidos, puede convertirlos en válidos mediante la función matlab.lang.makeValidName
.
X
— Variables predictoras
matriz
Variables predictoras, especificadas como una matriz n por p, donde n es el número de observaciones y p es el número de variables predictoras. Cada columna de X
representa una variable y cada fila, una observación.
De forma predeterminada, el modelo contiene un término constante, a menos que lo elimine de manera explícita, por lo que no incluya una columna de unos en X
.
Tipos de datos: single
| double
y
— Variable de respuesta
vector | matriz
Variable de respuesta, especificada como un vector o una matriz.
Si
'Distribution'
no es'binomial'
,y
debe ser un vector de n por 1, donde n es el número de observaciones. Cada entrada dey
es la respuesta de la fila correspondiente enX
. El tipo de datos debe ser simple o doble.Si
'Distribution'
es'binomial'
,y
puede ser un vector de n por 1 o una matriz de n por 2, con recuentos en la columna 1 yBinomialSize
en la columna 2.
Tipos de datos: single
| double
| logical
| categorical
modelspec
— Especificación de modelo
'linear'
(predeterminado) | vector de caracteres o escalar de cadena que da nombre al modelo | matriz de términos t por (p + 1) | vector de caracteres o fórmula de escalar de cadena con el formato 'y ~ terms'
Especificación de modelo, especificado como uno de estos valores.
Vector de caracteres o escalar de cadena que da nombre al modelo.
Valor Tipo de modelo 'constant'
El modelo contiene solo un término constante (intercepto). 'linear'
El modelo contiene un intercepto y un término lineal para cada predictor. 'interactions'
El modelo contiene un intercepto, un término lineal para cada predictor y todos los productos de pares de predictores diferentes (sin términos cuadrados). 'purequadratic'
El modelo contiene un término de intercepto y términos lineales y cuadrados para cada predictor. 'quadratic'
El modelo contiene un término de intercepto, términos lineales y cuadrados para cada predictor y todos los productos de pares de predictores diferentes. 'poly
ijk
'El modelo es un polinomio con todos los términos hasta el grado i
en el primer predictor, hasta el gradoj
en el segundo y así sucesivamente. Especifique el grado máximo para cada predictor mediante los numerales del cero al nueve. El modelo contiene términos de interacción, pero el grado de cada uno de ellos no supera el valor máximo de los grados especificados. Por ejemplo,'poly13'
tiene un intercepto y los términos x1, x2, x22, x23, x1*x2 y x1*x22, donde x1 y x2 son el primer y el segundo predictores, respectivamente.Matriz t por (p + 1), o Matriz de términos, en la que se especifican los términos del modelo, donde t es el número de términos, p es el número de variables predictoras y +1 representa la variable de respuesta. Una matriz de términos es útil cuando el número de predictores es grande y desea generar los términos de forma programática.
Vector de caracteres o escalar de cadena Fórmula con el formato
'y ~ terms'
,donde los
terms
figuran en Notación de Wilkinson. Los nombres de las variables de la fórmula deben ser nombres de variables entbl
o nombres de variables especificados medianteVarnames
. Así mismo, los nombres de las variables deben ser identificadores válidos de MATLAB.El software determina el orden de los términos en un modelo ajustado mediante el orden de los términos en
tbl
oX
. Por tanto, el orden de los términos en el modelo puede ser diferente del orden de los términos en la fórmula especificada.
Ejemplo: 'quadratic'
Argumentos de par nombre-valor
Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
En versiones anteriores a R2021a, use comas para separar cada nombre y valor y encierre Name
entre comillas.
Ejemplo: 'Distribution','normal','link','probit','Exclude',[23,59]
especifica que la distribución de la respuesta es normal e indica a fitglm
que use la función de enlace probit y excluya las observaciones 23 y 59 del ajuste.
BinomialSize
— Número de pruebas para la distribución binomial
1 (predeterminado) | escalar numérico | vector numérico | vector de caracteres | escalar de cadena
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 'BinomialSize'
y el nombre de la variable en tbl
, un escalar numérico o un vector numérico de la misma longitud que la respuesta. Este es el parámetro n
de la distribución binomial ajustada. BinomialSize
solo se aplica cuando el parámetro Distribution
es 'binomial'
.
Si BinomialSize
es un valor de escalar, significa que todas las observaciones tienen el mismo número de pruebas.
Como alternativa a BinomialSize
, puede especificar la respuesta como una matriz de dos columnas, con recuentos en la columna 1 y BinomialSize
en la columna 2.
Tipos de datos: single
| double
| char
| string
B0
— Valores iniciales para las estimaciones de los coeficientes
vector numérico
Valores iniciales para las estimaciones de los coeficientes, especificados como un vector numérico. Los valores predeterminados son valores ajustados iniciales derivados de los datos de entrada.
Tipos de datos: single
| double
CategoricalVars
— Lista de variables categóricas
arreglo de cadenas | arreglo de celdas de vectores de caracteres | vector índice lógico o numérico
Lista de variables categóricas, especificadas como el par separado por comas que consta de 'CategoricalVars'
y un arreglo de cadenas o un arreglo de celdas de vectores de caracteres que contiene los nombres de las variables categóricas en la tabla o el arreglo de conjuntos de datos tbl
, o un vector índice lógico o numérico que indica qué columnas son categóricas.
Si los datos se recogen en una tabla o un arreglo de conjuntos de datos
tbl
, de forma predeterminada,fitglm
trata todos los valores categóricos, los valores lógicos, los arreglos de caracteres, los arreglos de cadenas y los arreglos de celdas de vectores de caracteres como variables categóricas.Si los datos se recogen en una matriz
X
, el valor predeterminado de'CategoricalVars'
es una matriz vacía[]
. Es decir, ninguna variable es categórica a menos que especifique que es categórica.
Por ejemplo, puede especificar que la segunda y la tercera variables de un total de seis son categóricas mediante cualquiera de las siguientes opciones:
Ejemplo: 'CategoricalVars',[2,3]
Ejemplo: 'CategoricalVars',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
| string
| cell
DispersionFlag
— Indicador para calcular el parámetro de dispersión
false
para las distribuciones 'binomial'
y 'poisson'
(predeterminado) | true
Indicador para calcular el parámetro de dispersión para las distribuciones 'binomial'
y 'poisson'
, especificado como el par separado por comas que consta de 'DispersionFlag'
y uno de los siguientes.
true | Estima un parámetro de dispersión al calcular los errores estándar. El valor estimado del parámetro de dispersión es la suma de los valores residuales de Pearson al cuadrado dividida por los grados de libertad de error (DFE). |
false | Valor predeterminado. Utiliza el valor teórico de 1 al calcular los errores estándar. |
La función de ajuste siempre estima la dispersión para otras distribuciones.
Ejemplo: 'DispersionFlag',true
Distribution
— Distribución de la variable de respuesta
'normal'
(predeterminado) | 'binomial'
| 'poisson'
| 'gamma'
| 'inverse gaussian'
Distribución de la variable de respuesta, especificada como el par separado por comas que consta de 'Distribution'
y uno de los siguientes.
'normal' | Distribución normal |
'binomial' | Distribución binomial |
'poisson' | Distribución de Poisson |
'gamma' | Distribución gamma |
'inverse gaussian' | Distribución gaussiana inversa |
Ejemplo: 'Distribution','gamma'
Exclude
— Observaciones que se van a excluir
vector índice lógico o numérico
Observaciones que se excluirán del ajuste, especificadas como el par separado por comas que consta de 'Exclude'
y un vector índice lógico o numérico que indica qué observaciones se excluirán del ajuste.
Por ejemplo, puede excluir las observaciones 2 y 3 de un total de 6 mediante cualquiera de los siguientes ejemplos.
Ejemplo: 'Exclude',[2,3]
Ejemplo: 'Exclude',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
Intercept
— Indicador de término constante
true
(predeterminado) | false
Indicador del término constante (intercepto) del ajuste, especificado como el par separado por comas que consta de 'Intercept'
y de true
para incluir o de false
para eliminar el término constante del modelo.
Utilice 'Intercept'
solo cuando se especifique el modelo mediante un vector de caracteres o escalar de cadena y no mediante una fórmula o matriz.
Ejemplo: 'Intercept',false
Link
— Función de enlace
función de enlace canónica (predeterminado) | valor de escalar | estructura
Función de enlace que se debe utilizar en lugar de la función de enlace canónica, especificada como el par separado por comas que consta de 'Link'
y uno de los siguientes.
Nombre de la función de enlace | Función de enlace | Función (inversa) media |
---|---|---|
'identity' | f(μ) = μ | μ = Xb |
'log' | f(μ) = log(μ) | μ = exp(Xb) |
'logit' | f(μ) = log(μ/(1–μ)) | μ = exp(Xb) / (1 + exp(Xb)) |
'probit' | f(μ) = Φ–1(μ), donde Φ es la función de distribución acumulativa de la distribución normal estándar. | μ = Φ(Xb) |
'comploglog' | f(μ) = log(–log(1 – μ)) | μ = 1 – exp(–exp(Xb)) |
'reciprocal' | f(μ) = 1/μ | μ = 1/(Xb) |
p (un número) | f(μ) = μp | μ = Xb1/p |
| f(μ) = S.Link (μ) | μ = S.Inverse (Xb) |
La función de enlace define la relación f(μ) = X*b entre la respuesta media μ y la combinación lineal de predictores X*b.
Para obtener más información sobre las funciones de enlace canónicas, consulte Función de enlace canónica.
Ejemplo: 'Link','probit'
Tipos de datos: char
| string
| single
| double
| struct
Options
— Opciones de optimización
statset('fitglm
')
(predeterminado) | estructura
fitglm
')Opciones de optimización, especificadas como una estructura. Este argumento determina los parámetros de control del algoritmo iterativo que utiliza fitglm
.
Cree el valor de 'Options'
usando la función statset
o creando un arreglo de estructura que contenga los campos y valores descritos en esta tabla.
Nombre del campo | Valor | Valores predeterminados |
---|---|---|
Display | Cantidad de información que muestra el algoritmo
| 'off' |
MaxIter | Número máximo de iteraciones permitidas, especificado como un entero positivo | 100 |
TolX | Tolerancia de terminación de los parámetros, especificada como un escalar positivo | 1e-6 |
También puede introducir statset('
en la ventana de comandos para ver los nombres y valores predeterminados de los campos que fitglm
')fitglm
acepta en el argumento nombre-valor 'Options'
.
Ejemplo: 'Options',statset('Display','final','MaxIter',1000)
especifica la visualización de la información final de los resultados del algoritmo iterativo y cambia el número máximo de iteraciones permitidas a 1000.
Tipos de datos: struct
Offset
— Variable de compensación
[ ] (predeterminado) | vector numérico | vector de caracteres | escalar de cadena
Variable de compensación del ajuste, especificada como el par separado por comas que consta de 'Offset'
y el nombre de la variable en tbl
o un vector numérico con la misma longitud que la respuesta.
fitglm
utiliza Offset
como un predictor adicional con un valor de coeficiente fijo en 1. En otras palabras, la fórmula de ajuste es
f(μ) = Offset + X*b
,
, donde f es la función de enlace, μ es la respuesta media y X*b es la combinación lineal de predictores X. El predictor Offset
tiene el coeficiente 1
.
Por ejemplo, considere un modelo de regresión de Poisson. Supongamos que se sabe, por razones teóricas, que el número de recuentos es proporcional a un predictor A
. Cuando se utiliza la función de enlace logarítmico y se especifica log(A)
como compensación, se puede forzar al modelo a satisfacer esta restricción teórica.
Tipos de datos: single
| double
| char
| string
PredictorVars
— Variables predictoras
arreglo de cadenas | arreglo de celdas de vectores de caracteres | vector índice lógico o numérico
Variables predictoras que se utilizarán en el ajuste, especificadas como el par separado por comas que consta de 'PredictorVars'
y un arreglo de cadenas o un arreglo de celdas de vectores de caracteres de los nombres de las variables en la tabla o el arreglo de conjuntos de datos tbl
, o un vector índice lógico o numérico que indica qué columnas son las variables predictoras.
Los valores de la cadena o los vectores de caracteres deben estar entre los nombres que figuran en tbl
o en los nombres que especifique mediante el argumento de par nombre-valor 'VarNames'
.
El valor predeterminado es todas las variables en X
o en tbl
excepto ResponseVar
.
Por ejemplo, puede especificar que la segunda y la tercera variables son las variables predictoras mediante cualquiera 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
ResponseVar
— Variable de respuesta
última columna en tbl
(predeterminado) | vector de caracteres o escalar de cadena que contiene el nombre de la variable | vector índice lógico o numérico
Variable de respuesta que se utilizará en el ajuste, especificada como el par separado por comas que consta de 'ResponseVar'
y un vector de caracteres o escalar de cadena que contiene el nombre de la variable en la tabla o el arreglo de conjuntos de datos tbl
, o un vector índice lógico o numérico que indica qué columna es la variable de respuesta. Normalmente, se ha de utilizar 'ResponseVar'
al ajustar una tabla o un arreglo de conjuntos de datos tbl
.
Por ejemplo, puede especificar que la cuarta variable, es decir, yield
, es la respuesta de un total de seis variables de una de las siguientes maneras.
Ejemplo: 'ResponseVar','yield'
Ejemplo: 'ResponseVar',[4]
Ejemplo: 'ResponseVar',logical([0 0 0 1 0 0])
Tipos de datos: single
| double
| logical
| char
| string
VarNames
— Nombres de las variables
{'x1','x2',...,'xn','y'}
(predeterminado) | arreglo de cadenas | arreglo de celdas de vectores de caracteres
Nombres de las variables, especificados como el par separado por comas que consta de 'VarNames'
y un arreglo de cadenas o un arreglo de celdas de vectores de caracteres que incluye los nombres de las columnas de X
en primer lugar y el nombre de la variable de respuesta y
en último lugar.
'VarNames'
no se puede aplicar a las variables de una tabla o un arreglo de conjuntos de datos, puesto que dichas variables ya tienen nombres.
Los nombres de las variables no tienen que ser identificadores válidos de MATLAB, pero los nombres no deben contener espacios en blanco al principio ni al final. Si los nombres no son válidos, no puede utilizar una fórmula al ajustar un modelo; por ejemplo:
No puede utilizar una fórmula para especificar los términos que se han de añadir o eliminar al utilizar la función
addTerms
o la funciónremoveTerms
, respectivamente.No puede utilizar una fórmula para especificar los límites inferior y superior del modelo al utilizar la función
step
ostepwiseglm
con los argumentos de par nombre-valor'Lower'
y'Upper'
, respectivamente.
Antes de especificar 'VarNames',varNames
, puede verificar los nombres de las variables en varNames
mediante la función isvarname
. Si los nombres de las variables no son válidos, puede convertirlos en válidos mediante la función matlab.lang.makeValidName
.
Ejemplo: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Tipos de datos: string
| cell
Weights
— Pesos de las observaciones
ones(n,1)
(predeterminado) | Vector n por 1 de los valores escalares no negativos
Pesos de las observaciones, especificados como el par separado por comas que consta de 'Weights'
y un vector n por 1 de los valores escalares no negativos, donde n es el número de observaciones.
Tipos de datos: single
| double
Argumentos de salida
mdl
— Modelo de regresión lineal generalizada
objeto GeneralizedLinearModel
Modelo de regresión lineal generalizado, especificado como un objeto GeneralizedLinearModel
creado utilizando fitglm
o stepwiseglm
.
Más acerca de
Matriz de términos
Una matriz de términos T
es una matriz t por (p + 1) en la que se especifican los términos de un modelo, donde t es el número de términos, p es el número de variables predictoras y +1 representa la variable de respuesta. El valor de T(i,j)
es el exponente de la variable j
en el término i
.
Por ejemplo, suponga que una entrada incluye tres variables predictoras x1
, x2
y x3
y la variable de respuesta y
con el orden x1
, x2
, x3
e y
. Cada fila de T
representa un término:
[0 0 0 0]
: término constante o intercepto[0 1 0 0]
:x2
; equivalentemente,x1^0 * x2^1 * x3^0
[1 0 1 0]
—x1*x3
[2 0 0 0]
—x1^2
[0 1 2 0]
—x2*(x3^2)
El 0
al final de cada término representa la variable de respuesta. En general, un vector columna de ceros en una matriz de términos representa la posición de la variable de respuesta. Si las variables predictoras y de respuesta se encuentran en una matriz y un vector columna, debe incluir 0
para señalar la variable de respuesta en la última columna de cada fila.
Fórmula
Una fórmula para la especificación de un modelo es un vector de caracteres o escalar de cadena con el formato '
.y
~ terms
'
y
es el nombre de la respuesta.terms
representa los términos de los predictores en un modelo mediante notación de Wilkinson.
Para representar las variables predictoras y de respuesta, utilice los nombres de las variables de la entrada de tabla tbl
o los nombres de las variables especificados mediante VarNames
. El valor predeterminado de VarNames
es {'x1','x2',...,'xn','y'}
.
Por ejemplo:
'y ~ x1 + x2 + x3'
especifica un modelo lineal de tres variables con intercepto.'y ~ x1 + x2 + x3 – 1'
especifica un modelo lineal de tres variables sin intercepto. Tenga en cuenta que las fórmulas incluyen un término constante (intercepto) de forma predeterminada. Para excluir un término constante del modelo, debe incluir–1
en la fórmula.
Una fórmula incluye un término constante a menos que lo elimine de manera explícita con –1
.
Notación de Wilkinson
La notación de 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 dichos términos.
La notación de Wilkinson utiliza estos símbolos:
+
significa que se incluye la siguiente variable.–
significa que no se incluye la siguiente variable.:
define una interacción, que es un producto de los términos.*
define una interacción y todos los términos de orden inferior.^
eleva el predictor a una potencia, exactamente como cuando se repite*
, por lo que^
incluye también los términos de orden inferior.()
agrupa los términos.
Esta tabla muestra ejemplos típicos de la notación de Wilkinson.
Notación de Wilkinson | Términos en notación estándar |
---|---|
1 | Término constante (intercepto) |
x1^k , donde k es un entero positivo | x1 , x12 , ..., x1k |
x1 + x2 | x1 , x2 |
x1*x2 | x1 , x2 , x1*x2 |
x1:x2 | x1*x2 solo |
–x2 | No se incluye x2 |
x1*x2 + x3 | x1 , x2 , x3 , x1*x2 |
x1 + x2 + x3 + x1:x2 | x1 , x2 , x3 , x1*x2 |
x1*x2*x3 – x1:x2:x3 | x1 , x2 , x3 , x1*x2 , x1*x3 , x2*x3 |
x1*(x2 + x3) | x1 , x2 , x3 , x1*x2 , x1*x3 |
Para obtener más información, consulte Wilkinson Notation.
Función de enlace canónica
La función de enlace predeterminada para un modelo lineal generalizado es la función de enlace canónica.
Distribución | Nombre de la función de enlace canónica | Función de enlace | Función (inversa) media |
---|---|---|---|
'normal' | 'identity' | f(μ) = μ | μ = Xb |
'binomial' | 'logit' | f(μ) = log(μ/(1 – μ)) | μ = exp(Xb) / (1 + exp(Xb)) |
'poisson' | 'log' | f(μ) = log(μ) | μ = exp(Xb) |
'gamma' | -1 | f(μ) = 1/μ | μ = 1/(Xb) |
'inverse gaussian' | -2 | f(μ) = 1/μ2 | μ = (Xb)–1/2 |
Sugerencias
El modelo lineal generalizado
mdl
es un modelo lineal estándar a menos que especifique lo contrario con el par nombre-valorDistribution
.Para métodos como
plotResiduals
odevianceTest
, o propiedades del objetoGeneralizedLinearModel
, consulteGeneralizedLinearModel
.Tras entrenar un modelo, puede generar código C/C++ que prediga las respuestas de los nuevos datos. Generar código C/C++ requiere MATLAB Coder™. Para obtener más detalles, consulte Introduction to Code Generation.
Algoritmos
fitglm
trata un predictor categórico de la siguiente manera:Un modelo con un predictor categórico que tiene L niveles (categorías) incluye L – 1 variables indicadoras. El modelo utiliza la primera categoría como nivel de referencia, por lo que no incluye la variable indicadora en este. Si el tipo de datos del predictor categórico es
categorical
, puede comprobar el orden de las categorías mediantecategories
y reordenarlas conreordercats
para personalizar el nivel de referencia. Para obtener más información sobre cómo crear variables indicadoras, consulte Automatic Creation of Dummy Variables.fitglm
trata el grupo de L – 1 variables indicadoras como una única variable. Si desea tratar las variables indicadoras como variables predictoras diferentes, cree variables indicadoras manualmente mediantedummyvar
. Después utilice las variables indicadoras, excepto la correspondiente al nivel de referencia de la variable categórica, al ajustar un modelo. Con respecto al predictor categóricoX
, si especifica que todas las columnas dedummyvar(X)
y un término de intercepto son predictores, la matriz de diseño pasa a ser de rango deficiente.Los términos de interacción entre un predictor continuo y un predictor categórico con L niveles consisten en el producto elemento por elemento de las L – 1 variables indicadoras con el predictor continuo.
Los términos de interacción entre dos predictores categóricos con L y M niveles consisten en las (L – 1)*(M – 1) variables indicadoras, que incluyen todas las posibles combinaciones de niveles de los dos predictores categóricos.
No puede especificar términos de orden superior en un predictor categórico, puesto que el cuadrado de un indicador es igual a sí mismo.
fitglm
considera que los valoresNaN
,''
(vector de caracteres vacío),""
(cadena vacía),<missing>
y<undefined>
detbl
,X
eY
son valores faltantes.fitglm
no utiliza observaciones con valores faltantes en el ajuste. La propiedadObservationInfo
de un modelo ajustado indica sifitglm
utiliza cada una de las observaciones en el ajuste o no.
Funcionalidad alternativa
Utilice
stepwiseglm
para seleccionar una especificación de modelo automáticamente. Utilicestep
,addTerms
oremoveTerms
para modificar 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
Arreglos altos
Realice cálculos con arreglos que tienen más filas de las que caben en la memoria.
Esta función es compatible con los arreglos altos para datos con memoria insuficiente con algunas limitaciones.
Si algún argumento de entrada a
fitglm
es un arreglo alto, el resto de entradas deben ser también arreglos altos, Lo que incluye a las variables no vacías proporcionadas con los pares nombre-valor'Weights'
,'Exclude'
,'Offset'
y'BinomialSize'
.El número de iteraciones predeterminado es 5. Puede cambiar el número de iteraciones con el par nombre-valor
'Options'
para pasar una estructura de opciones. Cree una estructura de opciones constatset
para especificar un valor diferente paraMaxIter
.Para datos altos,
fitglm
devuelve un objetoCompactGeneralizedLinearModel
que contiene la mayoría de las mismas propiedades que un objetoGeneralizedLinearModel
. La principal diferencia es que el objeto compacto es sensible a los requisitos de memoria. El objeto compacto no incluye las propiedades que incluyen los datos o que incluyen un arreglo del mismo tamaño que los datos. El objeto compacto no contiene estas propiedades deGeneralizedLinearModel
:Diagnostics
Fitted
Offset
ObservationInfo
ObservationNames
Residuals
Steps
Variables
Puede calcular los valores residuales directamente desde el objeto compacto devuelto por
GLM = fitglm(X,Y)
medianteRES = Y - predict(GLM,X); S = sqrt(GLM.SSE/GLM.DFE); histogram(RES,linspace(-3*S,3*S,51))
Para obtener más información, consulte Arreglos altos para datos con memoria insuficiente.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos de GPU. Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Historial de versiones
Introducido en R2013b
Consulte también
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)