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.

stepwiselm

Ajuste el modelo de regresión lineal utilizando la regresión escalonada

Descripción

ejemplo

mdl = stepwiselm(tbl) crea un modelo lineal para las variables de la tabla o conjunto de datos utilizando la regresión escalonada para agregar o quitar predictores, a partir de un modelo constante. utiliza la última variable de como variable de respuesta. utiliza la regresión escalonada hacia delante y hacia atrás para determinar un modelo final.tblstepwiselmtblstepwiselm En cada paso, la función busca términos para agregar el modelo o quitar del modelo, en función del valor del argumento.'Criterion'

ejemplo

mdl = stepwiselm(X,y) crea un modelo lineal de las respuestas a las variables predictoras en la matriz de datos.yX

ejemplo

mdl = stepwiselm(___,modelspec) especifica el modelo inicial utilizando cualquiera de las combinaciones de argumentos de entrada en sintaxis anteriores.modelspec

ejemplo

mdl = stepwiselm(___,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Por ejemplo, puede especificar las variables categóricas, el conjunto de términos más pequeño o más grande que se usará en el modelo, el número máximo de pasos que se debe realizar o el criterio que se usa para agregar o quitar términos.stepwiselm

Ejemplos

contraer todo

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 la composición porcentual 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 escalonado a los datos. Especifique 0,06 como el umbral para el criterio para agregar 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. realiza la selección hacia delante y agrega el, y los términos (en ese orden), porque los valores correspondientes son menores que el valor de 0,06. a continuación, utiliza la eliminación hacia atrás y elimina del modelo porque, una vez que está en el modelo, el-valor de es mayor que el valor predeterminado de, 0,1.stepwiselmx4x1x2pPEnterstepwiselmx4x2px4PRemove

Realice una regresión escalonada utilizando variables almacenadas en una matriz de DataSet. Especifique el modelo inicial utilizando la notación Wilkinson e identifique las variables de respuesta y predictores utilizando argumentos opcionales.

Cargue los datos de ejemplo.

load hospital

La matriz de DataSet de hospital incluye el sexo, edad, peso y estado de tabaquismo de los pacientes.

Ajuste un modelo lineal con un modelo inicial de un término constante y como la variable predictora.Smoker Especifique la variable de respuesta y las variables predictoras categóricas, y.WeightSexAgeSmoker

mdl = stepwiselm(hospital,'Weight~1+Smoker',... 'ResponseVar','Weight','PredictorVars',{'Sex','Age','Smoker'},... 'CategoricalVar',{'Sex','Smoker'})
1. Adding Sex, FStat = 770.0158, pValue = 6.262758e-48 2. Removing Smoker, FStat = 0.21224, pValue = 0.64605 
mdl =  Linear regression model:     Weight ~ 1 + Sex  Estimated Coefficients:                    Estimate      SE      tStat       pValue                       ________    ______    ______    ___________      (Intercept)     130.47     1.1995    108.77    5.2762e-104     Sex_Male         50.06     1.7496    28.612     2.2464e-49   Number of observations: 100, Error degrees of freedom: 98 Root Mean Squared Error: 8.73 R-squared: 0.893,  Adjusted R-Squared: 0.892 F-statistic vs. constant model: 819, p-value = 2.25e-49 

En cada paso, busca términos para agregar y eliminar.stepwiselm En el primer paso, el algoritmo escalonado se suma al modelo con unSex

<math display="block">
<mrow>
<mi>p</mi>
</mrow>
</math>
-valor de 6.26 e-48. A continuación, elimina el fumador del modelo, ya que dado en el modelo, la variable se vuelve redundante. sólo incluye en el modelo lineal final.SexSmokerstepwiselmSex El peso de los pacientes no parece diferir significativamente según la edad o el estado de tabaquismo.

Cargue un conjunto de datos de ejemplo y defina la matriz de predictores.

load carsmall X = [Acceleration,Weight];

Defina el modelo inicial y el modelo superior utilizando matrices de términos.

T_starting = [0 0 0] % a constant model
T_starting = 1×3

     0     0     0

T_upper = [0 0 0;1 0 0;0 1 0;1 1 0] % a linear model with interactions
T_upper = 4×3

     0     0     0
     1     0     0
     0     1     0
     1     1     0

Cree un modelo de regresión lineal utilizando la regresión escalonada. Especifique el modelo inicial y el límite superior del modelo utilizando las matrices de términos y especifique como 2 para mostrar el proceso de evaluación y la decisión tomada en cada paso.'Verbose'

mdl = stepwiselm(X,MPG,T_starting,'upper',T_upper,'Verbose',2)
   pValue for adding x1 is 4.0973e-06    pValue for adding x2 is 1.6434e-28 1. Adding x2, FStat = 259.3087, pValue = 1.643351e-28    pValue for adding x1 is 0.18493    No candidate terms to remove 
mdl =  Linear regression model:     y ~ 1 + x2  Estimated Coefficients:                     Estimate        SE         tStat       pValue                      __________    _________    _______    __________      (Intercept)        49.238       1.6411     30.002    2.7015e-49     x2             -0.0086119    0.0005348    -16.103    1.6434e-28   Number of observations: 94, Error degrees of freedom: 92 Root Mean Squared Error: 4.13 R-squared: 0.738,  Adjusted R-Squared: 0.735 F-statistic vs. constant model: 259, p-value = 1.64e-28 

Ajuste un modelo de regresión lineal con un predictor categórico mediante regresión escalonada. agrega o quita un grupo de variables indicadoras en un paso para agregar o eliminar un predictor categórico.stepwiselm Este ejemplo también muestra cómo crear variables indicadoras manualmente y pasarlas para que trate cada variable indicadora como un predictor separado.stepwiselmstepwiselm

Cargue el conjunto de datos y cree una tabla con las variables, y.carsmallWeightModel_YearMPG

load carsmall Year = categorical(Model_Year); tbl1 = table(MPG,Weight,Year);

Ajuste un modelo de regresión lineal utilizando la regresión escalonada.MPG Especifique el modelo inicial como una función de.Weight Establezca el límite superior del modelo en, lo que significa que el modelo puede incluir (como máximo) una constante y los términos, y.'poly21'WeightWeight^2YearWeight*Year Especifique como 2 para mostrar el proceso de evaluación y la decisión tomada en cada paso.'Verbose'

mdl1 = stepwiselm(tbl1,'MPG ~ Weight','Upper','poly21','Verbose',2)
   pValue for adding Year is 8.2284e-15    pValue for adding Weight^2 is 0.15454 1. Adding Year, FStat = 47.5136, pValue = 8.22836e-15    pValue for adding Weight^2 is 0.0022303    pValue for adding Weight:Year is 0.0071637 2. Adding Weight^2, FStat = 9.9164, pValue = 0.0022303    pValue for adding Weight:Year is 0.19519    pValue for removing Year is 2.9042e-16 
mdl1 =  Linear regression model:     MPG ~ 1 + Weight + Year + Weight^2  Estimated Coefficients:                     Estimate         SE         tStat       pValue                      __________    __________    _______    __________      (Intercept)        54.206        4.7117     11.505    2.6648e-19     Weight          -0.016404     0.0031249    -5.2493    1.0283e-06     Year_76            2.0887       0.71491     2.9215     0.0044137     Year_82            8.1864       0.81531     10.041    2.6364e-16     Weight^2       1.5573e-06    4.9454e-07      3.149     0.0022303   Number of observations: 94, Error degrees of freedom: 89 Root Mean Squared Error: 2.78 R-squared: 0.885,  Adjusted R-Squared: 0.88 F-statistic vs. constant model: 172, p-value = 5.52e-41 

crea dos variables indicadoras y, porque incluye tres valores distintos.stepwiselmYear_76Year_82Year

Porque es 2, visualiza el proceso de evaluación:'Verbose'stepwiselm

  • crea un modelo como una función de.stepwiselmWeight

  • calcula los-valores para agregar o.stepwiselmpYearWeight^2 El-Value para es menor que el valor de-Value para y el valor de umbral predeterminado de 0,05; por lo tanto, agrega al modelo.pYearpWeight^2stepwiselmYear

  • calcula los-valores para agregar o.stepwiselmpWeight:YearWeight^2 Dado que el-Value for es menor que el-Value para, la función se agrega al modelo.pWeight^2pWeight:YearstepwiselmWeight^2

  • Después de agregar el término cuadrático, calcula el-valor para agregar otra vez, pero el-valor es mayor que el valor de umbral.stepwiselmpWeight:Yearp Por lo tanto, no agrega el término al modelo. no examina la adición debido al límite superior especificado por el argumento de par nombre-valor.stepwiselmstepwiselmWeight^3'Upper'

  • busca los términos para eliminar. ya examinado, por lo que solo calcula el valor de eliminación.stepwiselmstepwiselmWeight^2pYear Dado que el valor-Value es menor que el valor de umbral predeterminado de 0,10, no quita el término.pstepwiselm

  • Aunque el número máximo permitido de pasos es 5, finaliza el proceso después de dos pasos porque el modelo no mejora agregando o quitando un término.stepwiselm

trata las dos variables indicadoras como una variable predictora y agrega en un paso.stepwiselmYear Para tratar las dos variables indicadoras como dos variables predictoras distintas, utilírelas para crear variables categóricas separadas.dummyvar

temp_Year = dummyvar(Year); Year_76 = logical(temp_Year(:,2)); Year_82 = logical(temp_Year(:,3));

Cree una tabla que contenga, y.MPGWeightYear_76Year_82

tbl2 = table(MPG,Weight,Year_76,Year_82);

Cree un modelo de regresión lineal escalonado a partir del mismo modelo de inicio utilizado para.mdl1

mdl2 = stepwiselm(tbl2,'MPG ~ Weight','Upper','poly211')
1. Adding Year_82, FStat = 83.1956, pValue = 1.76163e-14 2. Adding Weight:Year_82, FStat = 8.0641, pValue = 0.0055818 3. Adding Year_76, FStat = 8.1284, pValue = 0.0054157 
mdl2 =  Linear regression model:     MPG ~ 1 + Year_76 + Weight*Year_82  Estimated Coefficients:                          Estimate         SE         tStat       pValue                           __________    __________    _______    __________      (Intercept)             38.844        1.5294     25.397     1.503e-42     Weight               -0.006272    0.00042673    -14.698    1.5622e-25     Year_76_1               2.0395       0.71537      2.851     0.0054157     Year_82_1               19.607        3.8731     5.0623    2.2163e-06     Weight:Year_82_1    -0.0046268     0.0014979    -3.0888     0.0026806   Number of observations: 94, Error degrees of freedom: 89 Root Mean Squared Error: 2.79 R-squared: 0.885,  Adjusted R-Squared: 0.88 F-statistic vs. constant model: 171, p-value = 6.54e-41 

El modelo incluye el término de interacción en lugar de, el término incluido en.mdl2Weight:Year_82_1Weight^2mdl1

Argumentos de entrada

contraer todo

Datos de entrada, especificados como una tabla o matriz de DataSet. Cuando es a, la fórmula especifica las variables de predictor y respuesta.modelspecFórmula De lo contrario, si no especifica las variables de predictor y respuesta, la última variable en es la variable de respuesta y las otras son las variables predictoras de forma predeterminada.tbl

Las variables predictoras pueden ser numéricas, lógicas, categóricas, de caracteres o de cadena. La variable de respuesta debe ser numérica o lógica.

Para establecer una columna diferente como variable de respuesta, utilice el argumento de par nombre-valor.ResponseVar Para usar un subconjunto de las columnas como predictores, use el argumento de par nombre-valor.PredictorVars

Variables predictoras, especificadas como una-por-matriz, donde es 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 se 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 es el número de observaciones.nn Cada entrada es la respuesta de la fila correspondiente de.yX

Tipos de datos: single | double | logical

Modelo inicial para la regresión escalonada, 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 solo contiene un término constante (intercepción).
    'linear'El modelo contiene una intersección y un término lineal para cada predictor.
    'interactions'El modelo contiene una intercepción, un término lineal para cada predictor y todos los productos de pares de predictores distintos (sin términos cuadrados).
    'purequadratic'El modelo contiene un término de intercepción y términos lineales y cuadrados para cada predictor.
    'quadratic'El modelo contiene un término de intercepción, términos lineales y cuadrados para cada predictor, y todos los productos de pares de predictores distintos.
    'polyijk'El modelo es un polinomio con todos los términos hasta el grado i en el primer predictor, grado j en el segundo predictor, y así sucesivamente. Especifique el grado máximo para cada predictor utilizando los números 0 aunque 9. El modelo contiene términos de interacción, pero el grado de cada término de interacción no excede el valor máximo de los grados especificados. Por ejemplo, tiene una intercepción y'poly13'x1,x2,x22,x23,x1*x2Yx1*x22 términos, dondex1 Yx2 son el primer y segundo predictores, respectivamente.
  • A-by-(+ 1) matriz, o a, especificando términos en el modelo, donde es el número de términos y es el número de variables predictoras, y + 1 cuentas para la variable de respuesta.tpTérminos matriztp Una matriz de términos es conveniente cuando el número de predictores es grande y desea generar los términos mediante programación.

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

    'Y ~ terms',

    donde están.termsLa notación Wilkinson

Si desea especificar el conjunto de términos más pequeño o más grande en el modelo que encaja, use los argumentos de par nombre-valor.stepwiselmLowerUpper

Tipos de datos: char | string | single | double

Argumentos de par nombre-valor

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

Ejemplo: instrucciones para usar el criterio de información de Akaike, Mostrar la acción que toma en cada paso e incluir como máximo los términos de interacción en el modelo.'Criterion','aic','Upper','interactions','Verbose',1stepwiselm

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

  • Si los datos están en una tabla o conjunto de datos, a continuación, de forma predeterminada,tbl stepwiselm 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 la 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 uno 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

Criterio para agregar o quitar términos, especificados como el par separado por comas que consta de uno de estos valores:'Criterion'

  • —-valor para una prueba del cambio en la suma del error cuadrado que resulta de la adición o eliminación del término'sse'pF

  • — Cambio en el valor del criterio de información de Akaike (AIC)'aic'

  • — Modificación del valor del criterio de información Bayesiano (BIC)'bic'

  • — Aumento del valor de'rsquared'R2

  • — Aumento del valor del ajuste'adjrsquared'R2

Ejemplo: 'Criterion','bic'

Observaciones que se excluirán del ajuste, especificadas como el par separado por comas consistente en un vector de índice lógico o numérico que indica las observaciones que se excluirán 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 para el término constante (intercepción) en el ajuste, especificado como el par separado por comas que consta de y ya sea para incluir o para eliminar el término constante del modelo.'Intercept'truefalse

Utilíficese únicamente al especificar el modelo utilizando un vector de caracteres o un escalar de cadena, no una fórmula o una matriz.'Intercept'

Ejemplo: 'Intercept',false

Especificación de modelo que describe los términos que no se pueden quitar del modelo, especificados como el par separado por comas que consta de y una de las opciones para nombrar el modelo.'Lower'modelspec

Ejemplo: 'Lower','linear'

Número máximo de pasos a tomar, especificados como el par separado por comas que consta de un entero positivo.'NSteps'

Ejemplo: 'NSteps',5

Tipos de datos: single | double

Umbral para el criterio para agregar un término, especificado como el par separado por comas que consta de y un valor escalar, como se describe en esta tabla.'PEnter'

CriterioValor predeterminadoDecisión
'SSE'0,05Si el-valor de la-estadística es menor que (-valor para entrar), agregue el término al modelo.pFPEnterp
'AIC'0Si el cambio en la AIC del modelo es menor que, agregue el término al modelo.PEnter
'BIC'0Si el cambio en el BIC del modelo es menor que, agregue el término al modelo.PEnter
'Rsquared'0,1Si el aumento en el valor R cuadrado del modelo es mayor que, agregue el término al modelo.PEnter
'AdjRsquared'0Si el aumento en el valor R cuadrado ajustado del modelo es mayor que, agregue el término al modelo.PEnter

Para obtener más información, vea el argumento de par nombre-valor.Criterion

Ejemplo: 'PEnter',0.075

Las variables predictoras que se usarán en el ajuste, especificadas como el par separado por comas que consta de una matriz de cadenas o matriz de vectores de caracteres de los nombres de variables de la matriz de tabla o DataSet, o un vector de índice numérico o lógico que indica qué columnas están 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 las variables segunda y tercera como variables predictoras utilizando uno de los siguientes ejemplos.

Ejemplo: 'PredictorVars',[2,3]

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

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

Umbral para el criterio para quitar un término, especificado como el par separado por comas que consta de y un valor escalar, como se describe en esta tabla.'PRemove'

CriterioValor predeterminadoDecisión
'SSE'0,10Si el-valor de la-estadística es mayor que (-valor para quitar), quite el término del modelo.pFPRemovep
'AIC'0,01Si el cambio en la AIC del modelo es mayor que, quite el término del modelo.PRemove
'BIC'0,01Si el cambio en el BIC del modelo es mayor que, quite el término del modelo.PRemove
'Rsquared'0,05Si el aumento en el valor R cuadrado del modelo es menor que, quite el término del modelo.PRemove
'AdjRsquared'-0,05Si el aumento en el valor R cuadrado ajustado del modelo es menor que, quite el término del modelo.PRemove

En cada paso, el stepwiselm función también comprueba si un término es redundante (dependiente linealmente) con otros términos del modelo actual. Cuando cualquier término es linealmente dependiente de otros términos en el modelo actual, el stepwiselm función quita el término redundante, independientemente del valor del criterio.

Para obtener más información, vea el argumento de par nombre-valor.Criterion

Ejemplo: 'PRemove',0.05

Variable de respuesta que se usará 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 numérico o lógico que indica qué columna es la variable de respuesta.'ResponseVar'tbl Normalmente, debe usar al ajustar una tabla o una matriz de conjunto de datos.'ResponseVar'tbl

Por ejemplo, puede especificar la cuarta variable, digamos, 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

Especificación del modelo que describe el conjunto más grande de términos en el ajuste, especificado como el par separado por comas que consta de y una de las opciones para nombrar el modelo.'Upper'modelspec

Ejemplo: 'Upper','quadratic'

Nombres de variables, especificadas como el par separado por comas que consta de una matriz de cadenas o matriz 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 DataSet, ya que esas variables ya tienen nombres.'VarNames'

Por ejemplo, si en sus datos, potencia, aceleración y año de modelo de los coches son las variables predictoras, y millas por galón (MPG) es la variable de respuesta, a continuación, puede nombrar las variables de la siguiente manera.

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

Tipos de datos: string | cell

Control para la visualización de la información, especificada como el par separado por comas que consta de uno de estos valores:'Verbose'

  • : Suprime todas las pantallas.0

  • : Muestra la acción tomada en cada paso.1

  • : Muestra el proceso de evaluación y la acción tomada en cada paso.2

Ejemplo: 'Verbose',2

Ponderaciones de observación, especificadas como el par separado por comas que consta de y un vector-por-1 de valores escalares no negativos, donde es el número de observaciones.'Weights'nn

Tipos de datos: single | double

Argumentos de salida

contraer todo

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

Para las propiedades y los métodos del objeto de modelo lineal, vea la página de clase.mdlLinearModel

Más acerca de

contraer todo

Términos matriz

Una matriz de términos es a-por-(+ 1) matriz especificando términos en un modelo, donde es el número de términos, es el número de variables predictoras y + 1 cuentas para la variable de respuesta.Ttptp El valor de es el exponente de la variable en el término.T(i,j)ji

Por ejemplo, supongamos que una entrada incluye tres variables predictoras, y la variable de respuesta en el orden, y.ABCYABCY Cada fila de representa un término:T

  • — Término constante o intercepción[0 0 0 0]

  • — ; Equivalente[0 1 0 0]BA^0 * B^1 * C^0

  • [1 0 1 0]A*C

  • [2 0 0 0]A^2

  • [0 1 2 0]B*(C^2)

Al final de cada término representa la variable de respuesta.0 En general, un vector de columna de ceros en una matriz de términos representa la posición de la variable de respuesta. Si tiene las variables de predictor y respuesta en un vector de matriz y columna, debe incluir para la variable de respuesta en la última columna de cada fila.0

Fórmula

Una fórmula para la especificación del modelo es un vector de caracteres o un escalar de cadena del formulario 'Y ~ terms'.

  • Y es el nombre de la respuesta.

  • terms representa los términos predictores en un modelo utilizando la notación Wilkinson.

Por ejemplo:

  • especifica un modelo lineal de tres variables con intercepción.'Y ~ A + B + C'

  • especifica un modelo lineal de tres variables sin intercepción.'Y ~ A + B + C – 1' Tenga en cuenta que las fórmulas incluyen un término constante (interceptar) de forma predeterminada. Para excluir un término constante del modelo, debe incluir en la fórmula.–1

La notación Wilkinson

La notación Wilkinson describe los términos presentes en un modelo. La notación se relaciona con los términos presentes en un modelo, no con los multiplicadores (coeficientes) de esos términos.

La notación Wilkinson utiliza estos símbolos:

  • significa incluir la siguiente variable.+

  • significa no incluir la siguiente variable.

  • define una interacción, que es un producto de términos.:

  • define una interacción y todos los términos de orden inferior.*

  • eleva el predictor a una potencia, exactamente como se repite, también incluye términos de orden inferior.^*^

  • términos de grupos.()

Esta tabla muestra ejemplos típicos de la notación Wilkinson.

La notación WilkinsonTérmino en notación estándar
1Término constante (intercepción)
, donde es un entero positivoA^kk,A A2, ..., Ak
A + B,AB
A*B, ,ABA*B
A:BsolamenteA*B
–BNo incluyaB
A*B + C, , ,ABCA*B
A + B + C + A:B, , ,ABCA*B
A*B*C – A:B:C, , , , ,ABCA*BA*CB*C
A*(B + C), , , ,ABCA*BA*C

notación siempre incluye un término constante a menos que se elimine explícitamente el término using.Statistics and Machine Learning Toolbox™–1

Para obtener más información, consulte.La notación Wilkinson

Sugerencias

  • No puede utilizar una regresión robusta con regresión escalonada. Compruebe los datos de los valores atípicos antes de usarlos.stepwiselm

  • Para otros métodos como, o propiedades del objeto, vea.anovaLinearModelLinearModel

  • Después de entrenar un modelo, puede generar código de C/C++ que predice las respuestas de los nuevos datos. La generación de código C/C++ requiere MATLAB®Coder™. Para obtener más información, consulte.Introducción a la generación de código

Algoritmos

  • es un método sistemático para agregar y eliminar términos de un modelo lineal lineal o generalizado basado en su significancia estadística al explicar la variable de respuesta.Regresión stepwise El método comienza con un modelo inicial, especificado utilizando y, a continuación, compara la potencia explicativa de los modelos incrementalmente más grandes y más pequeños.modelspec

    el stepwiselm función utiliza la regresión escalonada hacia delante y hacia atrás para determinar un modelo final. En cada paso, la función busca términos para agregar al modelo o quitar del modelo en función del valor del argumento de par nombre-valor.'Criterion'

    El valor predeterminado de un modelo de regresión lineal es.'Criterion''sse' En este caso, y de usar el-valor de una estadística para probar modelos con y sin un término potencial en cada paso.stepwiselmstepLinearModelpF Si un término no está actualmente en el modelo, la hipótesis nula es que el término tendría un coeficiente cero si se agrega al modelo. Si hay pruebas suficientes para rechazar la hipótesis nula, la función agrega el término al modelo. Por el contrario, si un término está actualmente en el modelo, la hipótesis nula es que el término tiene un coeficiente cero. Si no hay pruebas suficientes para rechazar la hipótesis nula, la función elimina el término del modelo.

    La regresión stepwise toma estos pasos cuando es:'Criterion''sse'

    1. Ajuste el modelo inicial.

    2. Examine un conjunto de términos disponibles que no estén en el modelo. Si alguno de los términos tiene-valores menores que una tolerancia de entrada (es decir, si es improbable que un término tenga un coeficiente cero si se agrega al modelo), agregue el término con el valor más pequeño y repita este paso; de lo contrario, vaya al paso 3.pp

    3. Si cualquiera de los términos disponibles en el modelo tiene valores mayores que una tolerancia de salida (es decir, la hipótesis de un coeficiente cero no puede rechazarse), quite el término con el valor más grande y regrese al paso 2; de lo contrario, finalice el proceso.pp

    En cualquier momento, la función no agregará un término de orden superior si el modelo no incluye también todos los términos de orden inferior que son subconjuntos del término de orden superior. Por ejemplo, la función no intentará agregar el término a menos que ambos y ya estén en el modelo.X1:X2^2X1X2^2 De forma similar, la función no eliminará los términos de orden inferior que son subconjuntos de términos de orden superior que permanecen en el modelo. Por ejemplo, la función no intentará quitar o si permanece en el modelo.X1X2^2X1:X2^2

    El valor predeterminado de para un modelo lineal generalizado es. y de seguir un procedimiento similar para añadir o eliminar términos.'Criterion''Deviance'stepwiseglmstepGeneralizedLinearModel

    Puede especificar otros criterios mediante el argumento de par nombre-valor.'Criterion' Por ejemplo, puede especificar el cambio en el valor del criterio de información de Akaike, el criterio de información Bayesiana, el R cuadrado o el R cuadrado ajustado como criterio para añadir o eliminar términos.

    Según los términos incluidos en el modelo inicial y el orden en que la función agrega y quita términos, la función podría crear diferentes modelos del mismo conjunto de términos potenciales. La función finaliza cuando ningún único paso mejora el modelo. Sin embargo, un modelo inicial diferente o una secuencia diferente de pasos no garantiza un mejor ajuste. En este sentido, los modelos escalonado son localmente óptimos, pero podrían no ser globalmente óptimos.

  • stepwiselm trata un predictor categórico de la siguiente manera:

    • Un modelo con un predictor categórico que tiene niveles (categorías) incluyeL L – 1 variables indicadoras. El modelo utiliza la primera categoría como nivel de referencia, por lo que no incluye la variable indicadora para el nivel de referencia. Si el tipo de datos del predictor categórico es, a continuación, puede comprobar el orden de las categorías mediante el uso y reordenar las categorías mediante el uso para personalizar el nivel de referencia.Categóricocategoriesreordercats

    • stepwiselm trata al grupo de L – 1 variables indicadoras como una sola variable. Si desea tratar las variables indicadoras como variables predictoras distintas, cree las variables indicadoras manualmente utilizando.dummyvar A continuación, utilice las variables indicadoras, excepto la correspondiente al nivel de referencia de la variable categórica, al ajustar un modelo. Para el predictor categórico, si especifica todas las columnas y un término de intercepción como predictores, la matriz de diseño se convierte en deficiente de rango.Xdummyvar(X)

    • Los términos de interacción entre un predictor continuo y un predictor categórico con niveles consisten en el producto elemento-sabio delL L – 1 variables indicadoras con el predictor continuo.

    • Los términos de interacción entre dos predictores categóricos y los niveles consisten en laLM (L – 1)*(M – 1) variables indicadoras para incluir todas las combinaciones posibles de los dos niveles predictores categóricos.

    • No puede especificar términos de orden superior para un predictor categórico porque el cuadrado de un indicador es igual a sí mismo.

    Por lo tanto, si stepwiselm agrega o elimina un predictor categórico, la función realmente agrega o elimina el grupo de variables indicadoras en un paso. Del mismo modo, si stepwiselm agrega o quita un término de interacción con un predictor categórico, la función realmente agrega o quita el grupo de términos de interacción, incluido el predictor categórico.

  • stepwiselm considera, (vector de carácter vacío), (cadena vacía), y valores en,, y que faltan valores.NaN''""<missing><undefined>tblXY stepwiselm no utiliza observaciones con valores faltantes en el ajuste. La propiedad de un modelo ajustado indica siObservationInfo stepwiselm utiliza cada observación en el ajuste.

Funcionalidad alternativa

Introducido en R2013b