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.

Regresión stepwise

Regresión stepwise para seleccionar modelos apropiados

crea un modelo lineal y agrega o recorta automáticamente el modelo.stepwiselm Para crear un modelo pequeño, empiece desde un modelo constante. Para crear un modelo grande, empiece con un modelo que contenga muchos términos. Un modelo grande suele tener un error menor medido por el ajuste a los datos originales, pero podría no tener ninguna ventaja en la predicción de nuevos datos.

puede utilizar todas las opciones de nombre-valor de, con opciones adicionales relacionadas con los modelos de inicio y de delimitación.stepwiselmfitlm En particular:

  • Para un modelo pequeño, empiece por el modelo de delimitación inferior predeterminado: (un modelo que no tiene términos predictores).'constant'

  • El modelo de delimitación superior predeterminado tiene términos lineales y términos de interacción (productos de pares de predictores). Para un modelo de delimitación superior que también incluya términos cuadrados, establezca el par nombre-valor.Upper'quadratic'

Compare modelos grandes y pequeños escalonado

En este ejemplo se muestra cómo comparar modelos que devuelven a partir de un modelo constante y a partir de un modelo de interacción completa.stepwiselm

Cargue los datos y cree una tabla a partir de algunos de los datos.carbig

load carbig tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG);

Cree un modelo de kilometraje escalonado a partir del modelo constante.

mdl1 = stepwiselm(tbl,'constant','ResponseVar','MPG')
1. Adding Weight, FStat = 888.8507, pValue = 2.9728e-103 2. Adding Horsepower, FStat = 3.8217, pValue = 0.00049608 3. Adding Horsepower:Weight, FStat = 64.8709, pValue = 9.93362e-15 
mdl1 =  Linear regression model:     MPG ~ 1 + Horsepower*Weight  Estimated Coefficients:                           Estimate         SE         tStat       pValue                            __________    __________    _______    __________      (Intercept)              63.558        2.3429     27.127    1.2343e-91     Horsepower             -0.25084      0.027279    -9.1952    2.3226e-18     Weight                -0.010772    0.00077381    -13.921    5.1372e-36     Horsepower:Weight    5.3554e-05    6.6491e-06     8.0542    9.9336e-15   Number of observations: 392, Error degrees of freedom: 388 Root Mean Squared Error: 3.93 R-squared: 0.748,  Adjusted R-Squared: 0.746 F-statistic vs. constant model: 385, p-value = 7.26e-116 

Cree un modelo de kilometraje escalonado a partir del modelo de interacción completo.

mdl2 = stepwiselm(tbl,'interactions','ResponseVar','MPG')
1. Removing Acceleration:Displacement, FStat = 0.024186, pValue = 0.8765 2. Removing Displacement:Weight, FStat = 0.33103, pValue = 0.56539 3. Removing Acceleration:Horsepower, FStat = 1.7334, pValue = 0.18876 4. Removing Acceleration:Weight, FStat = 0.93269, pValue = 0.33477 5. Removing Horsepower:Weight, FStat = 0.64486, pValue = 0.42245 
mdl2 =  Linear regression model:     MPG ~ 1 + Acceleration + Weight + Displacement*Horsepower  Estimated Coefficients:                                 Estimate         SE         tStat       pValue                                  __________    __________    _______    __________      (Intercept)                    61.285        2.8052     21.847    1.8593e-69     Acceleration                 -0.34401       0.11862       -2.9     0.0039445     Displacement                -0.081198      0.010071    -8.0623    9.5014e-15     Horsepower                   -0.24313      0.026068    -9.3265    8.6556e-19     Weight                     -0.0014367    0.00084041    -1.7095      0.088166     Displacement:Horsepower    0.00054236    5.7987e-05     9.3531    7.0527e-19   Number of observations: 392, Error degrees of freedom: 386 Root Mean Squared Error: 3.84 R-squared: 0.761,  Adjusted R-Squared: 0.758 F-statistic vs. constant model: 246, p-value = 1.32e-117 

Observe que:

  • tiene cuatro coeficientes (la columna) y tiene seis coeficientes.mdl1Estimatemdl2

  • El R cuadrado ajustado de es, que es un poco menos (peor) que el de,.mdl10.746mdl20.758

Crear un modelo de kilometraje escalonado con un modelo cuadrático completo como el límite superior, a partir del modelo cuadrático completo:

mdl3 = stepwiselm(tbl,'quadratic','ResponseVar','MPG','Upper','quadratic');
1. Removing Acceleration:Horsepower, FStat = 0.075209, pValue = 0.78405 2. Removing Acceleration:Weight, FStat = 0.072756, pValue = 0.78751 3. Removing Horsepower:Weight, FStat = 0.12569, pValue = 0.72314 4. Removing Weight^2, FStat = 1.194, pValue = 0.27521 5. Removing Displacement:Weight, FStat = 1.2839, pValue = 0.25789 6. Removing Displacement^2, FStat = 2.069, pValue = 0.15114 7. Removing Horsepower^2, FStat = 0.74063, pValue = 0.39 

Compare las tres complejidades del modelo examinando sus fórmulas.

mdl1.Formula
ans =  MPG ~ 1 + Horsepower*Weight 
mdl2.Formula
ans =  MPG ~ 1 + Acceleration + Weight + Displacement*Horsepower 
mdl3.Formula
ans =  MPG ~ 1 + Weight + Acceleration*Displacement + Displacement*Horsepower          + Acceleration^2 

El ajuste

<math display="block">
<mrow>
<msup>
<mrow>
<mi>R</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</math>
valores mejoran ligeramente a medida que los modelos se vuelven más complejos:

RSquared = [mdl1.Rsquared.Adjusted, ...     mdl2.Rsquared.Adjusted, mdl3.Rsquared.Adjusted]
RSquared = 1×3

    0.7465    0.7580    0.7599

Compare las parcelas residuales de los tres modelos.

subplot(3,1,1) plotResiduals(mdl1) subplot(3,1,2) plotResiduals(mdl2) subplot(3,1,3) plotResiduals(mdl3)

Los modelos tienen residuos similares. No está claro cuál encaja mejor en los datos.

Curiosamente, los modelos más complejos tienen mayores desviaciones máximas de los residuos:

Rrange1 = [min(mdl1.Residuals.Raw),max(mdl1.Residuals.Raw)]; Rrange2 = [min(mdl2.Residuals.Raw),max(mdl2.Residuals.Raw)]; Rrange3 = [min(mdl3.Residuals.Raw),max(mdl3.Residuals.Raw)]; Rranges = [Rrange1;Rrange2;Rrange3]
Rranges = 3×2

  -10.7725   14.7314
  -11.4407   16.7562
  -12.2723   16.7927

Consulte también

| | |

Temas relacionados