Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

LinearModel.fit

(No recomendado) Crear modelo de regresión lineal

no se recomienda.LinearModel.fit Utilícelo en su lugar.fitlm

Sintaxis

mdl = LinearModel.fit(tbl)
mdl = LinearModel.fit(X,y)
mdl = LinearModel.fit(___,modelspec)
mdl = LinearModel.fit(___,Name,Value)
mdl = LinearModel.fit(___,modelspec,Name,Value)

Descripción

mdl = LinearModel.fit(tbl) crea un modelo lineal de una matriz de tabla o dataset.tbl

mdl = LinearModel.fit(X,y) crea un modelo lineal de las respuestas a una matriz de datos.yX

mdl = LinearModel.fit(___,modelspec) crea un modelo lineal del tipo especificado por , utilizando cualquiera de las sintaxis anteriores.modelspec

mdl = LinearModel.fit(___,Name,Value) O mdl = LinearModel.fit(___,modelspec,Name,Value) crea un modelo lineal con opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede especificar qué variables predictoras incluir en el ajuste o incluir ponderaciones de observación.

Argumentos de entrada

expandir todo

Datos de entrada, incluidas las variables predictora y de respuesta, especificadas como una matriz de tabla o conjunto de datos. Las variables predictoras pueden ser numéricas, lógicas, categóricas, de carácter o de cadena. La variable de respuesta debe ser numérica o lógica.

  • De forma predeterminada, LinearModel.fit toma la última variable como la variable de respuesta y las otras como variables predictoras.

  • Para establecer una columna diferente como 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 una especificación de modelo, establezca el argumento mediante una matriz de fórmulas o términos.modelspec La matriz de fórmulas o términos especifica qué columnas se van a utilizar como predictor o variables de respuesta.

Los nombres de variable de una tabla no tienen que ser identificadores válidos.MATLAB® Sin embargo, si los nombres no son válidos, no puede utilizar una fórmula al ajustar o ajustar un modelo; por ejemplo:

  • No se puede especificar mediante una fórmula.modelspec

  • No puede utilizar una fórmula para especificar los términos que se agregaron o quitaron cuando utilice la función o la función, respectivamente.addTermsremoveTerms

  • No puede utilizar una fórmula para especificar los límites inferior y superior del modelo cuando se utiliza la función o con los argumentos de par nombre-valor y , respectivamente.stepstepwiselm'Lower''Upper'

Puede verificar los nombres de las variables mediante la función.tblisvarname El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1true Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.

cellfun(@isvarname,tbl.Properties.VariableNames)
tblmatlab.lang.makeValidName
tbl.Properties.VariableNames = matlab.lang.makeValidName(tbl.Properties.VariableNames);

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

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

Tipos de datos: single | double

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

Tipos de datos: single | double | logical

Especificación del modelo, especificada como una de las siguientes.

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

    ValorTipo de modelo
    'constant'El modelo contiene solo un término constante (intercept).
    'linear'El modelo contiene una intercepción y un término lineal para cada predictor.
    'interactions'El modelo contiene una interceptación, un término lineal para cada predictor y todos los productos de pares de predictores distintos (sin términos al cuadrado).
    'purequadratic'El modelo contiene un término de interceptación y términos lineales y cuadrados para cada predictor.
    'quadratic'El modelo contiene un término de interceptación, términos lineales y cuadrados para cada predictor, y todos los productos de pares de predictores distintos.
    'polyijk'Modelo es un polinomio con todos los términos hasta el grado i en el primer predictor, grado j en el segundo predictor, y así sucesivamente. Especifique el grado máximo para cada predictor utilizando los números 0 a 9. El modelo contiene términos de interacción, pero el grado de cada término de interacción no supera el valor máximo de los grados especificados. Por ejemplo, tiene una interceptación y'poly13'x1, x2, x22, x23, x1*x2Yx1*x22 términos, dondex1 Yx2 son el primer y segundo predictor, respectivamente.
  • -by-( + 1) matriz, a saber, especificar términos para incluir en el modelo, donde está el número de términos y es el número de variables predictoras, y más 1 es para la variable de respuesta.tpmatriz de términostp

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

    'Y ~ terms',

    donde se especifican mediante .termsNotación Wilkinson

Ejemplo: 'quadratic'

Ejemplo: 'y ~ X1 + X2^2 + X1:X2'

Argumentos de par nombre-valor

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

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

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

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

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

Ejemplo: 'CategoricalVars',[2,3]

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

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

Observaciones para excluir del ajuste, especificado como el par separado por comas que consta de y un vector de índice lógico o numérico que indica qué observaciones excluir del ajuste.'Exclude'

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

Ejemplo: 'Exclude',[2,3]

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

Tipos de datos: single | double | logical

Indicador del término constante (intercept) en el ajuste, especificado como el par separado por comas que consta de y para incluir o quitar el término constante del modelo.'Intercept'truefalse

Utilícelo solo cuando especifique el modelo utilizando un vector de caracteres o un escalar de cadena, no una fórmula o matriz.'Intercept'

Ejemplo: 'Intercept',false

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

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

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

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

Ejemplo: 'PredictorVars',[2,3]

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

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

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

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

Ejemplo: 'ResponseVar','yield'

Ejemplo: 'ResponseVar',[4]

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

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

Indicador del tipo de empalme robusto a utilizar, especificado como el par separado por comas que consta de y uno de estos valores.'RobustOpts'

  • — No hay ajuste robusto.'off' LinearModel.fit utiliza mínimos cuadrados ordinarios.

  • — Ajuste robusto utilizando la función de peso con la constante de ajuste predeterminada.'on''bisquare'

  • Vector de caracteres o escalar de cadena — Nombre de una función de peso de ajuste robusto de la tabla siguiente. LinearModel.fit utiliza la constante de ajuste predeterminada correspondiente especificada en la tabla.

  • Estructura con los dos campos y .RobustWgtFunTune

    • El campo contiene el nombre de una función de peso de ajuste robusto de la tabla siguiente o un identificador de función de una función de peso personalizada.RobustWgtFun

    • El campo contiene una constante de afinación.Tune Si no establece el campo,Tune LinearModel.fit utiliza la constante de ajuste predeterminada correspondiente.

    Función de pesoDescripciónConstante de ajuste predeterminada
    'andrews'w = (abs(r)<pi) .* sin(r) ./ r1.339
    'bisquare'(también llamado biweight)w = (abs(r)<1) .* (1 - r.^2).^24.685
    'cauchy'w = 1 ./ (1 + r.^2)2.385
    'fair'w = 1 ./ (1 + abs(r))1.400
    'huber'w = 1 ./ max(1, abs(r))1.345
    'logistic'w = tanh(r) ./ r1.205
    'ols'Mínimos cuadrados ordinarios (sin función de ponderación)Ninguno
    'talwar'w = 1 * (abs(r)<1)2.795
    'welsch'w = exp(-(r.^2))2.985
    manija de la funciónFunción de peso personalizada que acepta un vector de residuos escalados y devuelve un vector de pesos del mismo tamaño querr1
    • Las constantes de ajuste predeterminadas de las funciones de peso integradas proporcionan estimaciones de coeficiente que son aproximadamente 95% tan eficientes estadísticamente como las estimaciones de mínimos cuadrados ordinarios, siempre que la respuesta tenga una distribución normal sin valores atípicos. La reducción de la constante de ajuste aumenta el peso hacia abajo asignado a residuos grandes; aumentar la constante de ajuste disminuye el peso a la baja asignado a residuos grandes.

    • El valor de las funciones de peso esr

      r = resid/(tune*s*sqrt(1–h)),

      donde está el vector de los residuos de la iteración anterior, es la constante de ajuste, es el vector de los valores de apalancamiento de un ajuste de mínimos cuadrados, y es una estimación de la desviación estándar del término de error dado porresidtunehs

      s = MAD/0.6745.

      es la mediana de la desviación absoluta de los residuos de su mediana.MAD La constante 0,6745 hace que la estimación sea imparcial para la distribución normal. Si tiene columnas, el software excluye las desviaciones absolutas más pequeñas al calcular la mediana.Xpp

Para un ajuste robusto, LinearModel.fit utiliza la estimación M para formular ecuaciones de estimación y las resuelve utilizando el método de mínimos cuadrados iterativos reponderados (IRLS).

Ejemplo: 'RobustOpts','andrews'

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

no es aplicable a las variables de una matriz de tabla o conjunto de datos, porque esas variables ya tienen nombres.'VarNames'

Los nombres de variable no tienen que ser identificadores válidos.MATLAB Sin embargo, si los nombres no son válidos, no puede utilizar una fórmula al ajustar o ajustar un modelo; por ejemplo:

  • No puede utilizar una fórmula para especificar los términos que se agregaron o quitaron cuando utilice la función o la función, respectivamente.addTermsremoveTerms

  • No puede utilizar una fórmula para especificar los límites inferior y superior del modelo cuando se utiliza la función o con los argumentos de par nombre-valor y , respectivamente.stepstepwiselm'Lower''Upper'

Antes de especificar , puede comprobar los nombres de las variables mediante la función.'VarNames',varNamesvarNamesisvarname El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1true Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.

cellfun(@isvarname,varNames)
varNamesmatlab.lang.makeValidName
varNames = matlab.lang.makeValidName(varNames);

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

Tipos de datos: string | cell

Pesos de observación, especificados como el par separado por comas que consta de un vector -by-1 de valores escalares no negativos, donde está el número de observaciones.'Weights'nn

Tipos de datos: single | double

Argumentos de salida

expandir todo

Modelo lineal que representa un ajuste de mínimos cuadrados de la respuesta a los datos, devuelto como un objeto.LinearModel

Si el valor del par nombre-valor no es o , el modelo no es un ajuste de mínimos cuadrados, sino que utiliza la función de ajuste robusto.'RobustOpts'[]'ols'

Para conocer las propiedades y métodos del objeto de modelo lineal, consulte la página de clases.LinearModel

Ejemplos

expandir todo

Ajuste un modelo de regresión lineal mediante un conjunto de datos de entrada de matriz.

Cargue el conjunto de datos, un conjunto de datos de entrada de matriz.carsmall

load carsmall X = [Weight,Horsepower,Acceleration];

Ajuste un modelo de regresión lineal utilizando .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 visualización del modelo incluye la fórmula del modelo, los coeficientes estimados y las estadísticas de resumen del modelo.

La fórmula del modelo en la pantalla, , corresponde ay ~ 1 + x1 + x2 + x3

<math display="inline">
<mrow>
<mi mathvariant="italic">y</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi mathvariant="italic">X</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi mathvariant="italic">X</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi mathvariant="italic">X</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>ϵ</mi>
</mrow>
</math>
.

La visualización del modelo también muestra la información de coeficiente estimada, 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 incluye estas columnas:Coefficient

  • — Estimaciones de coeficiente para cada término correspondiente en el modelo.Estimate Por ejemplo, la estimación del término constante ( ) es 47.977.intercept

  • — Error estándar de los coeficientes.SE

  • — -estadística para cada coeficiente para probar la hipótesis nula de que el coeficiente correspondiente es cero con respecto a la alternativa de que es diferente de cero, dados los otros predictores en el modelo.tStatt Tenga en cuenta que .tStat = Estimate/SE Por ejemplo, la estadística para la interceptación es 47.977/3.8785 a 12,37.t

  • — -valor para la estadística de la prueba de hipótesis de que el coeficiente correspondiente es igual a cero o no.pValuept Por ejemplo, el valor -value de la -statistic para es mayor que 0.05, por lo que este término no es significativo en el nivel de significancia del 5% dados los otros términos en el modelo.ptx2

Las estadísticas resumidos del modelo son:

  • — Número de filas sin valores.Number of observationsNaN Por ejemplo, es 93 porque el vector de datos tiene seis valores y el vector de datos tiene un valor para una observación diferente, donde el número de filas en y es 100.Number of observationsMPGNaNHorsepowerNaNXMPG

  • — – , donde está el número de observaciones y está el número de coeficientes en el modelo, incluida la interceptación.Error degrees of freedomn pnp Por ejemplo, el modelo tiene cuatro predictores, por lo que el es 93 – 4 x 89.Error degrees of freedom

  • — Raíz cuadrada del error cuadrado medio, que estima la desviación estándar de la distribución del error.Root mean squared error

  • y — Coeficiente de determinación y coeficiente de determinación ajustado, respectivamente.R-squaredAdjusted R-squared Por ejemplo, el valor sugiere que el modelo explica aproximadamente el 75% de la variabilidad en la variable de respuesta.R-squaredMPG

  • — Estadística de prueba para la prueba -test en el modelo de regresión, que comprueba si el modelo se ajusta significativamente mejor que un modelo degenerado que consiste en sólo un término constante.F-statistic vs. constant modelF

  • — -value para la prueba en el modelo.p-valuepF Por ejemplo, el modelo es significativo con un valor de 7.3816e-27.p

Puede encontrar estas estadísticas en las propiedades del modelo ( , , , y ) y mediante la función.NumObservationsDFERMSERsquaredanova

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                        

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 en el modelo. A continuación, se utiliza para probar la importancia de la variable categórica.anova

Modelo con Predictor Categórico

Cargue el conjunto de datos y cree un modelo de regresión lineal en función de .carsmallMPGModel_Year Para tratar el vector numérico como una variable categórica, identifique el predictor mediante el argumento de par nombre-valor.Model_Year'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 en la pantalla, , corresponde aMPG ~ 1 + Model_Year

<math display="inline">
<mrow>
<mi mathvariant="normal">MPG</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>76</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>82</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>ϵ</mi>
</mrow>
</math>
,

Dónde

<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>76</mn>
</mrow>
</msub>
</mrow>
</math>
Y
<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>82</mn>
</mrow>
</msub>
</mrow>
</math>
son variables indicadoras cuyo valor es uno si el valor es 76 y 82, respectivamente.Model_Year La variable incluye tres valores distintos, que puede comprobar mediante la función.Model_Yearunique

unique(Model_Year)
ans = 3×1

    70
    76
    82

elige el valor más pequeño como nivel de referencia ( ) y crea dos variables indicadorasfitlmModel_Year'70'

<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>76</mn>
</mrow>
</msub>
</mrow>
</math>
Y
<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>82</mn>
</mrow>
</msub>
</mrow>
</math>
. El modelo incluye sólo dos variables de indicador porque la matriz de diseño se vuelve deficiente de rango si el modelo incluye tres variables de indicador (una para cada nivel) y un término de intercepción.

Modelo con variables indicadoras completas

Puede interpretar la fórmula del modelo como un modelo que tiene tres variables de indicador sin un término de interceptación:mdl

<math display="inline">
<mrow>
<mi mathvariant="italic">y</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>70</mn>
</mrow>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>76</mn>
</mrow>
</msub>
<mo>+</mo>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mrow>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>β</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<msub>
<mrow>
<mi mathvariant="italic">x</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<mo>=</mo>
<mn>82</mn>
</mrow>
</msub>
<mo>+</mo>
<mi>ϵ</mi>
</mrow>
</math>
.

Como alternativa, puede crear un modelo que tenga tres variables de indicador sin un término de interceptación creando manualmente variables de indicador 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 

Elija Nivel de referencia en el modelo

Puede elegir un nivel de referencia modificando el orden de las categorías en una variable categórica. En primer lugar, cree una variable categórica .Year

Year = categorical(Model_Year);

Compruebe el orden de las categorías utilizando la función.categories

categories(Year)
ans = 3x1 cell array
    {'70'}
    {'76'}
    {'82'}

Si utiliza como variable predictora, elija la primera categoría como nivel de referencia.Yearfitlm'70' Reordenar mediante la función.Yearreordercats

Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)
ans = 3x1 cell array
    {'76'}
    {'70'}
    {'82'}

La primera categoría de es .Year_reordered'76' Cree un modelo de regresión lineal de como función de .MPGYear_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 

utiliza como nivel de referencia e incluye dos variables indicadorasmdl2'76'

<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>70</mn>
</mrow>
</msub>
</mrow>
</math>
Y
<math display="inline">
<mrow>
<msub>
<mrow>
<mi>Ι</mi>
</mrow>
<mrow>
<mi mathvariant="normal">Year</mi>
<mo>=</mo>
<mn>82</mn>
</mrow>
</msub>
</mrow>
</math>
.

Evaluar el predictor categórico

La visualización del modelo de incluye un -valor de cada término para probar si el coeficiente correspondiente es igual a cero.mdl2p Cada valor examina cada variable de indicador.p Para examinar la variable categórica como un grupo de variables indicadoras, utilice .Model_Yearanova Utilice la opción (predeterminada) para devolver una tabla ANOVA de componente que incluya estadísticas de ANOVA para cada variable del modelo excepto el término constante.'components'

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 del componente incluye el valor -valor de la variable, que es menor que los valores de las variables del indicador.pModel_Yearp

Ajuste un modelo de regresión lineal a los datos de muestra. Especifique las variables de respuesta y predictor e incluya solo términos de interacción por pares en el modelo.

Cargar datos de ejemplo.

load hospital

Ajuste un modelo lineal con términos de interacción a los datos. Especifique el peso como variable de respuesta y el sexo, la edad y el estado de tabaquismo como variables predictoras. Además, especifique que el sexo y el estado de fumar son variables categóricas.

mdl = fitlm(hospital,'interactions','ResponseVar','Weight',...     'PredictorVars',{'Sex','Age','Smoker'},...     'CategoricalVar',{'Sex','Smoker'})
mdl =  Linear regression model:     Weight ~ 1 + Sex*Age + Sex*Smoker + Age*Smoker  Estimated Coefficients:                          Estimate      SE        tStat        pValue                            ________    _______    ________    __________      (Intercept)             118.7     7.0718      16.785     6.821e-30     Sex_Male               68.336     9.7153      7.0339    3.3386e-10     Age                   0.31068    0.18531      1.6765      0.096991     Smoker_1               3.0425     10.446     0.29127       0.77149     Sex_Male:Age         -0.49094    0.24764     -1.9825      0.050377     Sex_Male:Smoker_1      0.9509     3.8031     0.25003       0.80312     Age:Smoker_1         -0.07288    0.26275    -0.27737       0.78211   Number of observations: 100, Error degrees of freedom: 93 Root Mean Squared Error: 8.75 R-squared: 0.898,  Adjusted R-Squared: 0.892 F-statistic vs. constant model: 137, p-value = 6.91e-44 

El peso de los pacientes no parece diferir significativamente según la edad, o el estado de tabaquismo, o la interacción de estos factores con el sexo del paciente en el nivel de significancia del 5%.

Cargue el conjunto de datos, que mide el efecto de la composición del cemento en su calor de endurecimiento.hald

load hald

Este conjunto de datos incluye las variables y .ingredientsheat La matriz contiene el porcentaje de composición de cuatro productos químicos presentes en el cemento.ingredients El vector contiene los valores para el endurecimiento térmico después de 180 días para cada muestra de cemento.heat

Ajuste un modelo de regresión lineal robusto 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 , que compara los resultados de un ajuste robusto con un ajuste estándar de mínimos cuadrados.Robust Regression — Reduce Outlier Effects

Más acerca de

expandir todo

Sugerencias

  • Utilice el empalme robusto (par nombre-valor) para reducir automáticamente el efecto de los valores atípicos.RobustOpts

  • No utilice un empalme robusto cuando desee ajustar posteriormente un modelo utilizando step.

  • Para otros métodos o propiedades del objeto, consulte .LinearModelLinearModel

Algoritmos

El algoritmo de ajuste principal es la descomposición QR. Para un ajuste robusto, el algoritmo es .robustfit

Alternativas

También puede construir un modelo lineal utilizando .fitlm

Puede construir un modelo en una gama de modelos posibles utilizando .stepwiselm Sin embargo, no puede utilizar la regresión robusta y la regresión escalonada juntos.