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.

step

Mejore el modelo de regresión lineal agregando o quitando términos

Descripción

NewMdl = step(mdl) Devuelve un modelo de regresión lineal basado en el uso de regresión escalonada para agregar o quitar un predictor.mdl

ejemplo

NewMdl = step(mdl,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Por ejemplo, puede especificar el criterio que se debe usar para agregar o quitar términos y el número máximo de pasos que se debe realizar.

Ejemplos

contraer todo

Ajuste un modelo de regresión lineal y Utilíce para mejorar el modelo agregando o quitando términos.step Este ejemplo también describe cómo la función trata un predictor categórico.step

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

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

Cree un modelo de regresión lineal como función de.MPGWeight

mdl1 = fitlm(tbl1,'MPG ~ Weight')
mdl1 =  Linear regression model:     MPG ~ 1 + Weight  Estimated Coefficients:                     Estimate        SE         tStat       pValue                      __________    _________    _______    __________      (Intercept)        49.238       1.6411     30.002    2.7015e-49     Weight         -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 el modelo para incluir hasta términos mediante.'quadratic'step Especifique como 5 para permitir como máximo 5 pasos de regresión escalonada.'NSteps' Especifique como 2 para mostrar el proceso de evaluación y la decisión tomada en cada paso.'Verbose'

NewMdl1 = step(mdl1,'Upper','quadratic','NSteps',5,'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:Year is 0.0071637    pValue for adding Weight^2 is 0.0022303 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 
NewMdl1 =  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. no tiene en cuenta los términos cuadrados de las variables indicadoras porque el cuadrado de una variable indicadora es sí mismo.stepYear_76Year_82Yearstep

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

  • calcula los-valores para agregar o.steppYearWeight^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^2stepYear

  • calcula los-valores para agregar o.steppWeight:YearWeight^2 Dado que el-Value for es menor que el-Value para, la función se agrega al modelo.pWeight^2pWeight:YearstepWeight^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.steppWeight: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.stepstepWeight^3'Upper'

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

  • 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.step

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

temp_Year = dummyvar(tbl1.Year); Year_76 = temp_Year(:,2); Year_82 = 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 de como función y utilíla para mejorar el modelo.MPGWeightstep

mdl2 = fitlm(tbl2,'MPG ~ Weight'); NewMdl2 = step(mdl2,'Upper','quadratic','NSteps',5)
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 
NewMdl2 =  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               2.0395       0.71537      2.851     0.0054157     Year_82               19.607        3.8731     5.0623    2.2163e-06     Weight:Year_82    -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.NewMdl2Weight:Year_82Weight^2NewMdl1

Argumentos de entrada

contraer todo

Modelo de regresión lineal, especificado como un objeto creado mediante o.LinearModelfitlmstepwiselm

Solo se puede usar si se crea mediante el uso del argumento de par nombre-valor establecido en el valor predeterminado.stepmdlfitlm'RobustOpts''off'

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: instruye a utilizar el criterio de información de Akaike, incluir (como máximo) los términos cuadráticos en el modelo, y mostrar el proceso de evaluación y la decisión tomada en cada paso.'Criterion','aic','Upper','quadratic','Verbose',2step

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'

Especificación del modelo que describe los términos que no se pueden quitar del modelo, especificados como el par separado por comas que consta de uno de estos valores:'Lower'

  • 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

Ejemplo: 'Lower','linear'

Tipos de datos: single | double | char | string

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

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 step 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 step 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

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 uno de estos valores:'Upper'

  • 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

Ejemplo: 'Upper','quadratic'

Tipos de datos: single | double | char | string

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

Argumentos de salida

contraer todo

Modelo de regresión lineal, devuelto como un objetoLinearModel

Para sobrescribir el argumento de entrada, asigne el nuevo modelo a.mdlmdl

mdl = step(mdl);

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

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 step 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.

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

    • step 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 step 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 step 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.

Funcionalidad alternativa

  • Se usa para especificar términos en un modelo inicial y continuar mejorando el modelo hasta que no haya un solo paso de agregar o quitar un término que sea beneficioso.stepwiselm

  • Uso addTerms O removeTerms para añadir o eliminar términos específicos.

Introducido en R2012a