Main Content

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

expandir todo

Estimaciones de los coeficientes

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

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

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 coeficiente

  • SE: error estándar de la estimación

  • tStat: estadística t para una prueba bilateral con la hipótesis nula de que el coeficiente es cero

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

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

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

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

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.

ColumnaSignificadoDescripción
LeverageElementos diagonales de HatMatrixLeverage 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.
CooksDistanceDistancia de CookCooksDistance 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.
DffitsDiferencias escaladas de eliminar 1 en los valores ajustadosDffits 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_iVarianza de eliminar 1S2_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.
CovRatioCociente del determinante de la covarianza de eliminar 1CovRatio 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.
DfbetasDiferencias escaladas de eliminar 1 en las estimaciones de los coeficientesDfbetas 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.
HatMatrixMatriz de proyección para calcular fitted a partir de las respuestas observadasHatMatrix 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

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

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

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, donde logL es la probabilidad logarítmica y m 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), donde n 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

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 nulo

  • Pvalue: valor de p en la estadística F

  • NullModel: tipo de modelo nulo

Tipos de datos: struct

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

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.

ColumnaDescripción
RawValores observados menos valores ajustados
PearsonValores residuales brutos divididos por la raíz del error cuadrático medio (RMSE)
StandardizedValores residuales brutos divididos por su desviación estándar estimada
StudentizedValor 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

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

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

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

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

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

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.

CampoDescripción
WgtFunFunción de ponderación robusta, como 'bisquare' (consulte 'RobustOpts')
TuneConstante 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.
WeightsVector 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

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.

CampoDescripción
StartFórmula que representa el modelo inicial
LowerFórmula que representa el modelo del límite inferior. Los términos en Lower deben permanecer en el modelo.
UpperFórmula que representa el modelo del límite superior. El modelo no puede contener más términos que Upper.
CriterionCriterio utilizado para el algoritmo escalonado, como 'sse'
PEnterUmbral de Criterion para añadir un término
PRemoveUmbral de Criterion para eliminar un término
HistoryTabla 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.

ColumnaDescripción
Action

Acción realizada durante el paso:

  • 'Start': primer paso

  • 'Add': se añade un término

  • 'Remove': se elimina un término

TermName
  • Si Action es 'Start', TermName determina la especificación del modelo inicial.

  • Si Action es 'Add' o 'Remove', TermName especifica el término añadido o eliminado en el paso.

TermsEspecificación de modelo en una Matriz de términos
DFGrados de libertad de la regresión después del paso
delDFCambio en los grados de libertad de la regresión desde el paso anterior (negativo para los pasos que eliminan un término)
DevianceDesviación (suma residual de cuadrados) en el paso (solo para un modelo de regresión lineal generalizada)
FStatEstadística F que lleva al paso
PValueValor 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

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

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

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

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

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.

ColumnaDescripción
WeightsPonderaciones de las observaciones, especificadas como valor numérico. El valor predeterminado es 1.
ExcludedIndicador 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'.
MissingIndicador de las observaciones faltantes, especificado como valor lógico. El valor es true si falta la observación.
SubsetIndicador 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

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

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

Esta propiedad o parámetro es de solo lectura.

Nombre de la variable de respuesta, especificado como vector de caracteres.

Tipos de datos: char

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.

ColumnaDescripción
ClassClase 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

  • Variable continua: vector de dos elementos [min,max], los valores mínimo y máximo

  • Variable categórica: vector de valores distintos de la variable

InModelIndicador de qué variables están en el modelo ajustado, especificado como vector lógico. El valor es true si el modelo incluye la variable.
IsCategoricalIndicador 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

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

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

expandir todo

compactCompact linear regression model
addTermsAdd terms to linear regression model
removeTermsRemove terms from linear regression model
stepImprove linear regression model by adding or removing terms
fevalPredict responses of linear regression model using one input for each predictor
predictPredecir respuestas de un modelo de regresión lineal
randomSimular respuestas con ruido aleatorio para un modelo de regresión lineal
anovaAnalysis of variance for linear regression model
coefCIConfidence intervals of coefficient estimates of linear regression model
coefTestLinear hypothesis test on linear regression model coefficients
dwtestDurbin-Watson test with linear regression model object
partialDependenceCompute partial dependence
plotScatter plot or added variable plot of linear regression model
plotAddedAdded variable plot of linear regression model
plotAdjustedResponseAdjusted response plot of linear regression model
plotDiagnosticsPlot observation diagnostics of linear regression model
plotEffectsPlot main effects of predictors in linear regression model
plotInteractionPlot interaction effects of two predictors in linear regression model
plotPartialDependenceCreate partial dependence plot (PDP) and individual conditional expectation (ICE) plots
plotResidualsPlot residuals of linear regression model
plotSlicePlot of slices through fitted linear regression surface
gatherGather properties of Statistics and Machine Learning Toolbox object from GPU

Ejemplos

contraer todo

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 y=β0+β1X1+β2X2+β3X3+ϵ.

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 que tStat = 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 de x2 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 valores NaN. Por ejemplo, Number of observations es 93, puesto que el vector de datos MPG tiene seis valores NaN y el vector de datos Horsepower tiene un valor NaN en una observación diferente, donde el número de filas en X y MPG 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 que Error 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 y Adjusted R-squared: coeficiente de determinación y coeficiente de determinación ajustado, respectivamente. Por ejemplo, el valor de R-squared indica que el modelo explica aproximadamente el 75% de la variabilidad en la variable de respuesta MPG.

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

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

MPG=β0+β1ΙYear=76+β2ΙYear=82+ϵ,

donde ΙYear=76 y ΙYear=82 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 ΙYear=76 e ΙYear=82. 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:

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β0+β2)Ιx2=82+ϵ.

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 ΙYear=70 e ΙYear=82.

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.

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.

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

expandir todo

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 o plsregress.

    • 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

Historial de versiones

Introducido en R2012a