LinearModel
Modelo de regresión lineal
Descripción
LinearModel
es un objeto de modelo de regresión lineal ajustado. Un modelo de regresión describe la relación entre una respuesta y los predictores. La linealidad en un modelo de regresión lineal se refiere a la linealidad de los coeficientes predictores.
Utilice las propiedades de un objeto LinearModel
para investigar un modelo de regresión lineal ajustado. Las propiedades del objeto incluyen información acerca de las estimaciones de los coeficientes, las estadísticas descriptivas, el método de ajuste y los datos de entrada. Utilice las funciones del objeto para predecir respuestas y para modificar, evaluar y visualizar el modelo de regresión lineal.
Creación
Cree un objeto LinearModel
usando fitlm
o stepwiselm
.
fitlm
ajusta un modelo de regresión lineal a los datos utilizando una especificación de modelo fija. Use addTerms
, removeTerms
o step
para añadir o eliminar términos del modelo. También puede utilizar stepwiselm
para ajustar un modelo utilizando la regresión lineal escalonada.
Propiedades
Estimaciones de los coeficientes
CoefficientCovariance
— Matriz de covarianzas de las estimaciones de los coeficientes
matriz numérica
Esta propiedad o parámetro es de solo lectura.
Matriz de covarianzas de las estimaciones de los coeficientes, especificada como una matriz de valores numéricos de p por p. p es el número de coeficientes en el modelo ajustado, según NumCoefficients
.
Para obtener más detalles, consulte Coefficient Standard Errors and Confidence Intervals.
Tipos de datos: single
| double
CoefficientNames
— Nombres de los coeficientes
arreglo de celdas de vectores de caracteres
Esta propiedad o parámetro es de solo lectura.
Nombres de los coeficientes, especificados como un arreglo de celdas de vectores de caracteres, cada uno de los cuales contiene el nombre del término correspondiente.
Tipos de datos: cell
Coefficients
— Valores de los coeficientes
tabla
Esta propiedad o parámetro es de solo lectura.
Valores de los coeficientes, especificados como una tabla. Coefficients
contiene una fila para cada coeficiente y estas columnas:
Estimate
: valor estimado del coeficienteSE
: error estándar de la estimacióntStat
: estadística t para una prueba bilateral con la hipótesis nula de que el coeficiente es ceropValue
: valor de p para la estadística t
Utilice anova
(solo para un modelo de regresión lineal) o coefTest
para realizar otras pruebas con los coeficientes. Utilice coefCI
para encontrar los intervalos de confianza de las estimaciones de los coeficientes.
Para obtener cualquiera de estas columnas como vector, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el vector de coeficientes estimados en el modelo mdl
:
beta = mdl.Coefficients.Estimate
Tipos de datos: table
NumCoefficients
— Número de coeficientes del modelo
entero positivo
Esta propiedad o parámetro es de solo lectura.
Número de coeficientes del modelo, especificado como entero positivo. NumCoefficients
incluye coeficientes que se ponen a cero cuando los términos del modelo son de rango deficiente.
Tipos de datos: double
NumEstimatedCoefficients
— Número de coeficientes estimados
entero positivo
Esta propiedad o parámetro es de solo lectura.
Número de coeficientes estimados en el modelo, especificado como entero positivo. NumEstimatedCoefficients
no incluye los coeficientes que se ponen a cero cuando los términos del modelo son de rango deficiente. NumEstimatedCoefficients
son los grados de libertad para la regresión.
Tipos de datos: double
Estadísticas descriptivas
DFE
— Grados de libertad para el error
entero positivo
Esta propiedad o parámetro es de solo lectura.
Grados de libertad para el error (valores residuales), igual al número de observaciones menos el número de coeficientes estimados, especificados como entero positivo.
Tipos de datos: double
Diagnostics
— Diagnóstico de observación
tabla
Esta propiedad o parámetro es de solo lectura.
Diagnóstico de observación, especificado como una tabla que contiene una fila para cada observación y las columnas descritas en esta tabla.
Columna | Significado | Descripción |
---|---|---|
Leverage | Elementos diagonales de HatMatrix | Leverage para cada observación indica hasta qué punto el ajuste está determinado por los valores predictores observados. Un valor cercano a 1 indica que el ajuste está determinado en gran medida por esa observación, con escasa contribución de las demás observaciones. Un valor cercano a 0 indica que el ajuste está determinado en gran medida por las demás observaciones. Para un modelo con P coeficientes y N observaciones, el valor medio de Leverage es P/N . Un valor Leverage mayor que 2*P/N indica una influencia elevada. |
CooksDistance | Distancia de Cook | CooksDistance es una medida del cambio escalado de los valores ajustados. Una observación con una CooksDistance mayor que tres veces la distancia media de Cook puede ser un valor atípico. |
Dffits | Diferencias escaladas de eliminar 1 en los valores ajustados | Dffits es el cambio escalado en los valores ajustados para cada observación que resulta de excluir esa observación del ajuste. Los valores superiores a 2*sqrt(P/N) en valor absoluto pueden considerarse influyentes. |
S2_i | Varianza de eliminar 1 | S2_i es un conjunto de estimaciones de la varianza de valores residuales obtenidas eliminando sucesivamente cada observación. Estas estimaciones pueden compararse con el valor del error cuadrático medio (MSE), almacenado en la propiedad MSE . |
CovRatio | Cociente del determinante de la covarianza de eliminar 1 | CovRatio es el cociente del determinante de la matriz de covarianzas del coeficiente, con la eliminación sucesiva de cada observación, y el determinante de la matriz de covarianzas del modelo completo. Los valores superiores a 1 + 3*P/N o inferiores a 1 – 3*P/N indican puntos influyentes. |
Dfbetas | Diferencias escaladas de eliminar 1 en las estimaciones de los coeficientes | Dfbetas es una matriz de N por P del cambio escalado en las estimaciones de coeficientes que resulta de excluir cada observación sucesivamente. Los valores superiores a 3/sqrt(N) en valor absoluto indican que la observación tiene una influencia significativa en el coeficiente correspondiente. |
HatMatrix | Matriz de proyección para calcular fitted a partir de las respuestas observadas | HatMatrix es una matriz de N por N tal que Fitted = HatMatrix*Y , donde Y es el vector de respuesta y Fitted es el vector de valores de respuesta ajustados. |
Diagnostics
contiene información útil para encontrar valores atípicos y observaciones influyentes. Los diagnósticos de eliminar 1 captan los cambios que son el resultado de excluir cada observación sucesivamente del ajuste. Para obtener más información, consulte Hat Matrix and Leverage, Cook’s Distance y Delete-1 Statistics.
Utilice plotDiagnostics
para representar diagnósticos de observación.
Las filas no utilizadas en el ajuste debido a valores faltantes (en ObservationInfo.Missing
) o valores excluidos (en ObservationInfo.Excluded
) contienen valores NaN
en las columnas CooksDistance
, Dffits
, S2_i
y CovRatio
y ceros en las columnas Leverage
, Dfbetas
y HatMatrix
.
Para obtener cualquiera de estas columnas como un arreglo, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el vector de varianza de eliminar 1 en el modelo mdl
:
S2i = mdl.Diagnostics.S2_i;
Tipos de datos: table
Fitted
— Valores de respuesta ajustados basados en los datos de entrada
vector numérico
Esta propiedad o parámetro es de solo lectura.
Valores de respuesta ajustados (predichos) basados en los datos de entrada, especificados como vector numérico de n por 1. n es el número de observaciones de los datos de entrada. Utilice predict
para calcular predicciones para otros valores predictores o para calcular límites de confianza en Fitted
.
Tipos de datos: single
| double
LogLikelihood
— Probabilidad logarítmica
valor numérico
Esta propiedad o parámetro es de solo lectura.
Probabilidad logarítmica de los valores de respuesta, especificada como valor numérico, basada en el supuesto de que cada valor de respuesta sigue una distribución normal. La media de la distribución normal es el valor de respuesta ajustado (predicho) y la varianza es el MSE
.
Tipos de datos: single
| double
ModelCriterion
— Criterio para la comparación de modelos
estructura
Esta propiedad o parámetro es de solo lectura.
Criterio para la comparación de modelos, especificado como una estructura con estos campos:
AIC
: criterio de información de Akaike.AIC = –2*logL + 2*m
, dondelogL
es la probabilidad logarítmica ym
es el número de parámetros estimados.AICc
: criterio de información de Akaike corregido para el tamaño de la muestra.AICc = AIC + (2*m*(m + 1))/(n – m – 1)
, donden
es el número de observaciones.BIC
: criterio de información bayesiano.BIC = –2*logL + m*log(n)
.CAIC
: criterio de información de Akaike coherente.CAIC = –2*logL + m*(log(n) + 1)
.
Los criterios de información son herramientas de selección de modelos que puede utilizar para comparar varios modelos ajustados a los mismos datos. Estos criterios son medidas de ajuste de modelos basadas en la verosimilitud que incluyen una penalización por complejidad (específicamente, el número de parámetros). Los distintos criterios de información se distinguen por la forma de la penalización.
Cuando se comparan varios modelos, el modelo con el valor más bajo del criterio de información es el que mejor se ajusta. El modelo que mejor se ajusta puede variar en función del criterio utilizado para la comparación de modelos.
Para obtener cualquiera de los valores del criterio como escalar, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el valor del AIC aic
en el modelo mdl
:
aic = mdl.ModelCriterion.AIC
Tipos de datos: struct
ModelFitVsNullModel
— Estadística F del modelo de regresión
estructura
Esta propiedad o parámetro es de solo lectura.
Estadística F del modelo de regresión, especificada como una estructura. La estructura ModelFitVsNullModel
contiene estos campos:
Fstats
: estadística F del modelo ajustado frente al modelo nuloPvalue
: valor de p en la estadística FNullModel
: tipo de modelo nulo
Tipos de datos: struct
MSE
— Error cuadrático medio
valor numérico
Esta propiedad o parámetro es de solo lectura.
Error cuadrático medio (valores residuales), especificado como valor numérico.
MSE = SSE / DFE,
donde MSE es el error cuadrático medio, SSE es la suma de errores cuadráticos y DFE son los grados de libertad.
Tipos de datos: single
| double
Residuals
— Valores residuales para el modelo ajustado
tabla
Esta propiedad o parámetro es de solo lectura.
Valores residuales del modelo ajustado, especificados como una tabla que contiene una fila para cada observación y las columnas descritas en esta tabla.
Columna | Descripción |
---|---|
Raw | Valores observados menos valores ajustados |
Pearson | Valores residuales brutos divididos por la raíz del error cuadrático medio (RMSE) |
Standardized | Valores residuales brutos divididos por su desviación estándar estimada |
Studentized | Valor residual bruto dividido por una estimación independiente de la desviación estándar residual. El valor residual de la observación i se divide por una estimación de la desviación estándar del error basada en todas las observaciones excepto la observación i. |
Utilice plotResiduals
para crear una gráfica de los valores residuales. Para obtener más detalles, consulte Residuals.
Las filas no utilizadas en el ajuste debido a que los valores faltantes (en ObservationInfo.Missing
) o los valores excluidos (en ObservationInfo.Excluded
) contienen valores NaN
.
Para obtener cualquiera de estas columnas como vector, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el vector residual bruto r
en el modelo mdl
:
r = mdl.Residuals.Raw
Tipos de datos: table
RMSE
— Raíz del error cuadrático medio
valor numérico
Esta propiedad o parámetro es de solo lectura.
Raíz del error cuadrático medio (valores residuales), especificada como valor numérico.
RMSE = sqrt(MSE),
donde RMSE es la raíz del error cuadrático medio y MSE es el error cuadrático medio.
Tipos de datos: single
| double
Rsquared
— Valor R cuadrado para el modelo
estructura
Esta propiedad o parámetro es de solo lectura.
Valor R cuadrado para el modelo, especificado como una estructura con dos campos:
Ordinary
: R cuadrado ordinario (no ajustado)Adjusted
: R cuadrado ajustado al número de coeficientes
El valor R cuadrado es la proporción de la suma total de cuadrados explicada por el modelo. El valor R cuadrado ordinario se relaciona con las propiedades SSR
y SST
:
Rsquared = SSR/SST
,
donde SST
es la suma total de cuadrados y SSR
es la suma de cuadrados de la regresión.
Para obtener más detalles, consulte Coeficiente de determinación (R cuadrado).
Para obtener cualquiera de estos valores como escalar, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el valor R cuadrado ajustado en el modelo mdl
:
r2 = mdl.Rsquared.Adjusted
Tipos de datos: struct
SSE
— Suma de errores cuadráticos
valor numérico
Esta propiedad o parámetro es de solo lectura.
Suma de errores cuadráticos (valores residuales), especificada como valor numérico. Si el modelo se entrenó con ponderaciones de observación, la suma de cuadrados en el cálculo de SSE
es la suma de cuadrados ponderada.
Para un modelo lineal con un intercepto, el teorema de Pitágoras implica
SST = SSE + SSR
,
donde SST
es la suma total de cuadrados, SSE
es la suma de errores cuadráticos y SSR
es la suma de cuadrados de la regresión.
Para más información sobre el cálculo de SST
para un modelo lineal robusto, consulte SST
.
Tipos de datos: single
| double
SSR
— Suma de cuadrados de la regresión
valor numérico
Esta propiedad o parámetro es de solo lectura.
Suma de cuadrados de la regresión, especificada como valor numérico. SSR
es igual a la suma de las desviaciones cuadráticas entre los valores ajustados y la media de la respuesta. Si el modelo se entrenó con ponderaciones de observación, la suma de cuadrados en el cálculo de SSR
es la suma de cuadrados ponderada.
Para un modelo lineal con un intercepto, el teorema de Pitágoras implica
SST = SSE + SSR
,
donde SST
es la suma total de cuadrados, SSE
es la suma de errores cuadráticos y SSR
es la suma de cuadrados de la regresión.
Para más información sobre el cálculo de SST
para un modelo lineal robusto, consulte SST
.
Tipos de datos: single
| double
SST
— Suma de cuadrados total
valor numérico
Esta propiedad o parámetro es de solo lectura.
Suma de cuadrados total, especificada como valor numérico. SST
es igual a la suma de las desviaciones cuadráticas del vector de respuesta y
de mean(y)
. Si el modelo se entrenó con ponderaciones de observación, la suma de cuadrados en el cálculo de SST
es la suma de cuadrados ponderada.
Para un modelo lineal con un intercepto, el teorema de Pitágoras implica
SST = SSE + SSR
,
donde SST
es la suma total de cuadrados, SSE
es la suma de errores cuadráticos y SSR
es la suma de cuadrados de la regresión.
Para un modelo lineal robusto, SST
no se calcula como la suma de las desviaciones cuadráticas del vector de respuesta y
de mean(y)
. Se calcula como SST = SSE + SSR
.
Tipos de datos: single
| double
Método de ajuste
Robust
— Información sobre el ajuste robusto
estructura
Esta propiedad o parámetro es de solo lectura.
Información sobre el ajuste robusto, especificada como una estructura con los campos descritos en esta tabla.
Campo | Descripción |
---|---|
WgtFun | Función de ponderación robusta, como 'bisquare' (consulte 'RobustOpts' ) |
Tune | Constante de ajuste. Este campo está vacío ([] ) si WgtFun es 'ols' o si WgtFun es un identificador de función para una función de ponderación personalizada con la constante de ajuste predeterminada 1. |
Weights | Vector de ponderaciones utilizado en la iteración final del ajuste robusto. Este campo está vacío para un objeto CompactLinearModel . |
Esta estructura está vacía a menos que ajuste el modelo utilizando una regresión robusta.
Tipos de datos: struct
Steps
— Información de ajuste escalonado
estructura
Esta propiedad o parámetro es de solo lectura.
Información de ajuste escalonado, especificada como una estructura con los campos descritos en esta tabla.
Campo | Descripción |
---|---|
Start | Fórmula que representa el modelo inicial |
Lower | Fórmula que representa el modelo del límite inferior. Los términos en Lower deben permanecer en el modelo. |
Upper | Fórmula que representa el modelo del límite superior. El modelo no puede contener más términos que Upper . |
Criterion | Criterio utilizado para el algoritmo escalonado, como 'sse' |
PEnter | Umbral de Criterion para añadir un término |
PRemove | Umbral de Criterion para eliminar un término |
History | Tabla que representa los pasos dados en el ajuste |
La tabla History
contiene una fila para cada paso, incluido el ajuste inicial, y las columnas descritas en esta tabla.
Columna | Descripción |
---|---|
Action | Acción realizada durante el paso:
|
TermName |
|
Terms | Especificación de modelo en una Matriz de términos |
DF | Grados de libertad de la regresión después del paso |
delDF | Cambio en los grados de libertad de la regresión desde el paso anterior (negativo para los pasos que eliminan un término) |
Deviance | Desviación (suma residual de cuadrados) en el paso (solo para un modelo de regresión lineal generalizada) |
FStat | Estadística F que lleva al paso |
PValue | Valor de p de la estadística F |
La estructura está vacía a menos que ajuste el modelo utilizando una regresión escalonada.
Tipos de datos: struct
Datos de entrada
Formula
— Información del modelo
objeto LinearFormula
Esta propiedad o parámetro es de solo lectura.
Información del modelo, especificada como objeto LinearFormula
.
Visualice la fórmula del modelo ajustado mdl
utilizando la notación de puntos:
mdl.Formula
NumObservations
— Número de observaciones
entero positivo
Esta propiedad o parámetro es de solo lectura.
Número de observaciones que la función de ajuste utilizó en el ajuste, especificado como entero positivo. NumObservations
es el número de observaciones proporcionadas en la tabla, conjunto de datos o matriz originales, menos las filas excluidas (establecidas con el argumento de par nombre-valor 'Exclude'
) o las filas con valores faltantes.
Tipos de datos: double
NumPredictors
— Número de variables predictoras
entero positivo
Esta propiedad o parámetro es de solo lectura.
Número de variables predictoras utilizadas para ajustar el modelo, especificado como entero positivo.
Tipos de datos: double
NumVariables
— Número de variables
entero positivo
Esta propiedad o parámetro es de solo lectura.
Número de variables de los datos de entrada, especificado como entero positivo. NumVariables
es el número de variables de la tabla o conjunto de datos originales o el número total de columnas en la matriz predictora y el vector de respuesta.
NumVariables
también incluye cualquier variable que no se utilice para ajustar el modelo como predictores o como respuesta.
Tipos de datos: double
ObservationInfo
— Información de las observaciones
tabla
Esta propiedad o parámetro es de solo lectura.
Información de las observaciones, especificada como una tabla de n por 4, donde n es igual al número de filas de los datos de entrada. ObservationInfo
contiene las columnas descritas en esta tabla.
Columna | Descripción |
---|---|
Weights | Ponderaciones de las observaciones, especificadas como valor numérico. El valor predeterminado es 1 . |
Excluded | Indicador de observaciones excluidas, especificado como valor lógico. El valor es true si excluye la observación del ajuste utilizando el argumento de par nombre-valor 'Exclude' . |
Missing | Indicador de las observaciones faltantes, especificado como valor lógico. El valor es true si falta la observación. |
Subset | Indicador de si la función de ajuste utiliza o no la observación, especificado como valor lógico. El valor es true si la observación no está excluida o falta, lo que significa que la función de ajuste utiliza la observación. |
Para obtener cualquiera de estas columnas como vector, indexe en la propiedad utilizando la notación de puntos. Por ejemplo, obtenga el vector de ponderación w
del modelo mdl
:
w = mdl.ObservationInfo.Weights
Tipos de datos: table
ObservationNames
— Nombres de las observaciones
arreglo de celdas de vectores de caracteres
Esta propiedad o parámetro es de solo lectura.
Nombres de las observaciones, especificados como un arreglo de celdas de vectores de caracteres que contienen los nombres de las observaciones utilizadas en el ajuste.
Si el ajuste se basa en una tabla o conjunto de datos que contiene nombres de observación,
ObservationNames
utiliza esos nombres.En caso contrario,
ObservationNames
es un arreglo de celdas vacío.
Tipos de datos: cell
PredictorNames
— Nombres de los predictores utilizados para ajustar el modelo
arreglo de celdas de vectores de caracteres
Esta propiedad o parámetro es de solo lectura.
Nombres de los predictores utilizados para ajustar el modelo, especificados como un arreglo de celdas de vectores de caracteres.
Tipos de datos: cell
ResponseName
— Nombre de la variable de respuesta
vector de caracteres
Esta propiedad o parámetro es de solo lectura.
Nombre de la variable de respuesta, especificado como vector de caracteres.
Tipos de datos: char
VariableInfo
— Información sobre variables
tabla
Esta propiedad o parámetro es de solo lectura.
Información sobre las variables contenidas en Variables
, especificada como una tabla con una fila para cada variable y las columnas descritas en esta tabla.
Columna | Descripción |
---|---|
Class | Clase de las variables, especificada como un arreglo de celdas de vectores de caracteres, como 'double' y 'categorical' |
Range | Rango variable, especificado como un arreglo de celdas de vectores
|
InModel | Indicador de qué variables están en el modelo ajustado, especificado como vector lógico. El valor es true si el modelo incluye la variable. |
IsCategorical | Indicador de variables categóricas, especificado como vector lógico. El valor es true si la variable es categórica. |
VariableInfo
también incluye cualquier variable que no se utilice para ajustar el modelo como predictor o como respuesta.
Tipos de datos: table
VariableNames
— Nombres de las variables
arreglo de celdas de vectores de caracteres
Esta propiedad o parámetro es de solo lectura.
Nombres de las variables, especificados como un arreglo de celdas de vectores de caracteres.
Si el ajuste se basa en una tabla o un conjunto de datos, esta propiedad proporciona los nombres de las variables de la tabla o el conjunto de datos.
Si el ajuste se basa en una matriz predictora y un vector de respuesta,
VariableNames
contiene los valores especificados por el argumento de par nombre-valor'VarNames'
del método de ajuste. El valor predeterminado de'VarNames'
es{'x1','x2',...,'xn','y'}
.
VariableNames
también incluye cualquier variable que no se utilice para ajustar el modelo como predictor o como respuesta.
Tipos de datos: cell
Variables
— Datos de entrada
tabla
Esta propiedad o parámetro es de solo lectura.
Datos de entrada, especificados como tabla. Variables
contiene tanto valores predictores como de respuesta. Si el ajuste se basa en una tabla o arreglo de conjuntos de datos, Variables
contiene todos los datos de la tabla o del arreglo de conjuntos de datos. En caso contrario, Variables
es una tabla creada a partir de la matriz de datos de entrada X
y el vector de respuesta y
.
Variables
también incluye cualquier variable que no se utilice para ajustar el modelo como predictor o como respuesta.
Tipos de datos: table
Funciones del objeto
Crear un CompactLinearModel
compact | Compact linear regression model |
Añadir o eliminar términos de un modelo lineal
addTerms | Add terms to linear regression model |
removeTerms | Remove terms from linear regression model |
step | Improve linear regression model by adding or removing terms |
Predecir respuestas
Evaluar un modelo lineal
anova | Analysis of variance for linear regression model |
coefCI | Confidence intervals of coefficient estimates of linear regression model |
coefTest | Linear hypothesis test on linear regression model coefficients |
dwtest | Durbin-Watson test with linear regression model object |
partialDependence | Compute partial dependence |
Visualizar un modelo lineal y estadísticas descriptivas
plot | Scatter plot or added variable plot of linear regression model |
plotAdded | Added variable plot of linear regression model |
plotAdjustedResponse | Adjusted response plot of linear regression model |
plotDiagnostics | Plot observation diagnostics of linear regression model |
plotEffects | Plot main effects of predictors in linear regression model |
plotInteraction | Plot interaction effects of two predictors in linear regression model |
plotPartialDependence | Create partial dependence plot (PDP) and individual conditional expectation (ICE) plots |
plotResiduals | Plot residuals of linear regression model |
plotSlice | Plot of slices through fitted linear regression surface |
Recopilar propiedades de un modelo lineal
gather | Gather properties of Statistics and Machine Learning Toolbox object from GPU |
Ejemplos
Ajustar una regresión lineal con los datos de una matriz
Ajuste un modelo de regresión lineal con un conjunto de datos de entrada de matriz.
Cargue el conjunto de datos carsmall
, un conjunto de datos de entrada de matriz.
load carsmall
X = [Weight,Horsepower,Acceleration];
Ajuste un modelo de regresión lineal mediante fitlm
.
mdl = fitlm(X,MPG)
mdl = Linear regression model: y ~ 1 + x1 + x2 + x3 Estimated Coefficients: Estimate SE tStat pValue __________ _________ _________ __________ (Intercept) 47.977 3.8785 12.37 4.8957e-21 x1 -0.0065416 0.0011274 -5.8023 9.8742e-08 x2 -0.042943 0.024313 -1.7663 0.08078 x3 -0.011583 0.19333 -0.059913 0.95236 Number of observations: 93, Error degrees of freedom: 89 Root Mean Squared Error: 4.09 R-squared: 0.752, Adjusted R-Squared: 0.744 F-statistic vs. constant model: 90, p-value = 7.38e-27
La presentación del modelo incluye la fórmula del modelo, los coeficientes estimados y las estadísticas descriptivas del modelo.
La fórmula del modelo de la presentación, y ~ 1 + x1 + x2 + x3
, corresponde a .
La presentación del modelo también muestra información de los coeficientes estimados, que se almacena en la propiedad Coefficients
. Muestre la propiedad Coefficients
.
mdl.Coefficients
ans=4×4 table
Estimate SE tStat pValue
__________ _________ _________ __________
(Intercept) 47.977 3.8785 12.37 4.8957e-21
x1 -0.0065416 0.0011274 -5.8023 9.8742e-08
x2 -0.042943 0.024313 -1.7663 0.08078
x3 -0.011583 0.19333 -0.059913 0.95236
La propiedad Coefficient
incluye estas columnas:
Estimate
: las estimaciones de los coeficientes de cada término correspondiente del modelo. Por ejemplo, la estimación del término constante (intercept
) es 47.977.SE
: error estándar de los coeficientes.tStat
: estadístico t de cada coeficiente para probar la hipótesis nula de que el coeficiente correspondiente es cero en contraste con la alternativa de que es diferente de cero, dados los otros predictores del modelo. Tenga en cuenta quetStat = Estimate/SE
. Por ejemplo, el estadístico t del intercepto es 47.977/3.8785 = 12.37.pValue
: valor de p del estadístico t de la prueba de hipótesis bilateral. Por ejemplo, el valor de p del estadístico t dex2
es mayor que 0.05, por lo que este término no es significativo al nivel de significación del 5% dados los otros términos del modelo.
Las estadísticas descriptivas del modelo son:
Number of observations
: número de filas sin valoresNaN
. Por ejemplo,Number of observations
es 93, puesto que el vector de datosMPG
tiene seis valoresNaN
y el vector de datosHorsepower
tiene un valorNaN
en una observación diferente, donde el número de filas enX
yMPG
es 100.Error degrees of freedom
: n – p, donde n es el número de observaciones y p es el número de coeficientes del modelo, incluido el intercepto. Por ejemplo, el modelo tiene cuatro predictores, por lo queError degrees of freedom
es 93 – 4 = 89.Root mean squared error
: raíz cuadrada del error cuadrático medio, que calcula la desviación estándar de la distribución del error.R-squared
yAdjusted R-squared
: coeficiente de determinación y coeficiente de determinación ajustado, respectivamente. Por ejemplo, el valor deR-squared
indica que el modelo explica aproximadamente el 75% de la variabilidad en la variable de respuestaMPG
.F-statistic vs. constant model
: estadístico de la prueba F realizada en el modelo de regresión, que comprueba si el modelo se ajusta significativamente mejor que un modelo degenerado que solo consta de un término constante.p-value
: valor de p de la prueba F realizada en el modelo. Por ejemplo, el modelo es significativo con un valor de p de 7.3816e-27.
Puede encontrar estos estadísticos en las propiedades del modelo (NumObservations
, DFE
, RMSE
y Rsquared
) y mediante la función anova
.
anova(mdl,'summary')
ans=3×5 table
SumSq DF MeanSq F pValue
______ __ ______ ______ __________
Total 6004.8 92 65.269
Model 4516 3 1505.3 89.987 7.3816e-27
Residual 1488.8 89 16.728
Utilice plot
para crear una gráfica de variables añadida (gráfica de influencia de regresión parcial) para el modelo completo, excepto el término constante (intercepto).
plot(mdl)
Regresión lineal con un predictor categórico
Ajuste un modelo de regresión lineal que contenga un predictor categórico. Reordene las categorías del predictor categórico para controlar el nivel de referencia del modelo. Después, utilice anova
para comprobar la significación de la variable categórica.
Modelo con un predictor categórico
Cargue el conjunto de datos carsmall
y cree un modelo de regresión lineal de MPG
como función de Model_Year
. Para tratar el vector numérico Model_Year
como variable categórica, identifique el predictor mediante el argumento de par nombre-valor 'CategoricalVars'
.
load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ ______ ______ __________ (Intercept) 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 3.8839 1.4059 2.7625 0.0069402 Model_Year_82 14.02 1.4369 9.7571 8.2164e-16 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
La fórmula del modelo de la presentación, MPG ~ 1 + Model_Year
, corresponde a
,
donde y son variables indicadoras cuyo valor es uno si el valor de Model_Year
es 76 y 82, respectivamente. La variable Model_Year
incluye tres valores diferentes, que puede comprobar mediante la función unique
.
unique(Model_Year)
ans = 3×1
70
76
82
fitlm
elige el valor más pequeño en Model_Year
como nivel de referencia ('70'
) y crea dos variables indicadoras e . El modelo solo incluye dos variables indicadoras, porque la matriz de diseño pasa a ser de rango deficiente si el modelo incluye tres variables indicadoras (una para cada nivel) y un término de intercepto.
Modelo con variables indicadoras completas
Puede interpretar la fórmula del modelo de mdl
como un modelo con tres variables indicadoras sin término de intercepto:
.
También puede crear un modelo con tres variables indicadoras sin término de intercepto creando manualmente variables indicadoras y especificando la fórmula del modelo.
temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = Linear regression model: MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ Model_Year_70 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 21.574 0.95387 22.617 4.0156e-39 Model_Year_82 31.71 0.99896 31.743 5.2234e-51 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56
Elegir un nivel de referencia en el modelo
Puede elegir un nivel de referencia modificando el orden de las categorías en una variable categórica. Primero, cree una variable categórica Year
.
Year = categorical(Model_Year);
Compruebe el orden de las categorías mediante la función categories
.
categories(Year)
ans = 3x1 cell
{'70'}
{'76'}
{'82'}
Si utiliza Year
como variable predictora, fitlm
elige la primera categoría '70'
como nivel de referencia. Reordene Year
mediante la función reordercats
.
Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)
ans = 3x1 cell
{'76'}
{'70'}
{'82'}
La primera categoría de Year_reordered
es '76'
. Cree un modelo de regresión lineal de MPG
como función de Year_reordered
.
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ _______ _______ __________ (Intercept) 21.574 0.95387 22.617 4.0156e-39 Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402 Model_Year_82 10.136 1.3812 7.3385 8.7634e-11 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
mdl2
utiliza '76'
como nivel de referencia e incluye dos variables indicadoras e .
Evaluar un predictor categórico
La presentación del modelo de mdl2
incluye un valor de p de cada término para comprobar si el coeficiente correspondiente es igual a cero o no. Cada valor de p examina cada variable indicadora. Para examinar la variable categórica Model_Year
como grupo de variables indicadoras, utilice anova
. Utilice la opción 'components'
(valor predeterminado) para devolver una tabla ANOVA de componentes que incluye estadísticos ANOVA de cada variable del modelo, excepto el término constante.
anova(mdl2,'components')
ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
La tabla ANOVA de componentes incluye el valor de p de la variable Model_Year
, que es más pequeño que los valores de p de las variables indicadoras.
Ajustar un modelo de regresión lineal robusta
Cargue el conjunto de datos hald
, que mide el efecto de la composición del cemento en el calor disipado por su fraguado.
load hald
Este conjunto de datos incluye las variables ingredients
y heat
. La matriz ingredients
contiene la composición porcentual de los cuatro productos químicos presentes en el cemento. El vector heat
contiene los valores del fraguado térmico tras 180 días para cada muestra de cemento.
Ajuste un modelo de regresión lineal robusta a los datos.
mdl = fitlm(ingredients,heat,'RobustOpts','on')
mdl = Linear regression model (robust fit): y ~ 1 + x1 + x2 + x3 + x4 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ (Intercept) 60.09 75.818 0.79256 0.4509 x1 1.5753 0.80585 1.9548 0.086346 x2 0.5322 0.78315 0.67957 0.51596 x3 0.13346 0.8166 0.16343 0.87424 x4 -0.12052 0.7672 -0.15709 0.87906 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 2.65 R-squared: 0.979, Adjusted R-Squared: 0.969 F-statistic vs. constant model: 94.6, p-value = 9.03e-07
Para obtener más información, consulte el tema Reduce Outlier Effects Using Robust Regression, en el que se comparan los resultados de un ajuste robusto con los de un ajuste de mínimos cuadrados estándar.
Ajustar un modelo lineal utilizando la regresión escalonada
Cargue el conjunto de datos hald
, que mide el efecto de la composición del cemento en el calor disipado por su fraguado.
load hald
Este conjunto de datos incluye las variables ingredients
y heat
. La matriz ingredients
contiene la composición porcentual de los cuatro productos químicos presentes en el cemento. El vector heat
contiene los valores del fraguado térmico tras 180 días para cada muestra de cemento.
Ajuste un modelo de regresión lineal escalonada a los datos. Especifique 0,06 como umbral del criterio para añadir un término al modelo.
mdl = stepwiselm(ingredients,heat,'PEnter',0.06)
1. Adding x4, FStat = 22.7985, pValue = 0.000576232 2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06 3. Adding x2, FStat = 5.0259, pValue = 0.051687 4. Removing x4, FStat = 1.8633, pValue = 0.2054
mdl = Linear regression model: y ~ 1 + x1 + x2 Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 52.577 2.2862 22.998 5.4566e-10 x1 1.4683 0.1213 12.105 2.6922e-07 x2 0.66225 0.045855 14.442 5.029e-08 Number of observations: 13, Error degrees of freedom: 10 Root Mean Squared Error: 2.41 R-squared: 0.979, Adjusted R-Squared: 0.974 F-statistic vs. constant model: 230, p-value = 4.41e-09
De forma predeterminada, el modelo inicial es un modelo constante. stepwiselm
realiza la selección progresiva y añade los términos x4
, x1
y x2
(en ese orden), porque los valores de p correspondientes son inferiores al valor de PEnter
de 0,06. Luego, stepwiselm
utiliza la eliminación regresiva y elimina x4
del modelo porque, una vez que x2
está en el modelo, el valor de p de x4
es mayor que el valor predeterminado de PRemove
, 0,1.
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.
Funcionalidad alternativa
Para reducir el tiempo de cálculo en conjuntos de datos de altas dimensiones, ajuste un modelo de regresión lineal mediante la función
fitrlinear
.Para regularizar una regresión, utilice
fitrlinear
,lasso
,ridge
oplsregress
.fitrlinear
regulariza una regresión para conjuntos de datos de altas dimensiones mediante una regresión lasso o ridge.lasso
elimina los predictores redundantes en una regresión lineal mediante lasso o elastic net.ridge
regulariza una regresión con términos correlacionados mediante una regresión ridge.plsregress
regulariza una regresión con términos correlacionados mediante mínimos cuadrados parciales.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
Para obtener más información, consulte Introduction to Code Generation.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Notas y limitaciones de uso:
Las funciones de objeto del modelo
LinearModel
son totalmente compatibles 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 R2012a
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)