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.
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.stepwiselm
fitlm
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'
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.mdl1
Estimate
mdl2
El R cuadrado ajustado de es, que es un poco menos (peor) que el de,.mdl1
0.746
mdl2
0.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
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
LinearModel
| fitlm
| plotResiduals
| stepwiselm