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 mediante tablas

En este ejemplo se muestra cómo realizar análisis de regresión lineales y escalonado mediante tablas.

Cargue datos de muestra.

load imports-85

Almacene las variables de predictor y respuesta en una tabla.

tbl = table(X(:,7),X(:,8),X(:,9),X(:,15),'VariableNames',... {'curb_weight','engine_size','bore','price'});

Ajustar modelo de regresión lineal.

Ajuste un modelo de regresión lineal que explique el precio de un automóvil en términos de su peso en vacío, el tamaño del motor y el orificio.

fitlm(tbl,'price~curb_weight+engine_size+bore')
ans =  Linear regression model:     price ~ 1 + curb_weight + engine_size + bore  Estimated Coefficients:                     Estimate        SE         tStat       pValue                      __________    _________    _______    __________      (Intercept)        64.095        3.703     17.309    2.0481e-41     curb_weight    -0.0086681    0.0011025    -7.8623      2.42e-13     engine_size     -0.015806     0.013255    -1.1925       0.23452     bore              -2.6998       1.3489    -2.0015      0.046711   Number of observations: 201, Error degrees of freedom: 197 Root Mean Squared Error: 3.95 R-squared: 0.674,  Adjusted R-Squared: 0.669 F-statistic vs. constant model: 136, p-value = 1.14e-47 

El comando también devuelve el mismo resultado porque, de forma predeterminada, asume que la variable de respuesta está en la última columna de la tabla.fitlm(tbl)fitlmtbl

Vuelva a crear la tabla y repita el análisis.

Esta vez, coloque la variable de respuesta en la primera columna de la tabla.

 tbl = table(X(:,15),X(:,7),X(:,8),X(:,9),'VariableNames',... {'price','curb_weight','engine_size','bore'});

Cuando la variable de respuesta esté en la primera columna de, defina su ubicación.tbl Por ejemplo, de forma predeterminada, se asume que es la variable de respuesta.fitlmbore Puede definir la variable de respuesta en el modelo utilizando:

fitlm(tbl,'ResponseVar','price');

O

fitlm(tbl,'ResponseVar',logical([1 0 0 0]));

Realice una regresión escalonada.

stepwiselm(tbl,'quadratic','lower','price~1',... 'ResponseVar','price')
1. Removing bore^2, FStat = 0.01282, pValue = 0.90997 2. Removing engine_size^2, FStat = 0.078043, pValue = 0.78027 3. Removing curb_weight:bore, FStat = 0.70558, pValue = 0.40195 
ans =  Linear regression model:     price ~ 1 + curb_weight*engine_size + engine_size*bore + curb_weight^2  Estimated Coefficients:                                 Estimate          SE         tStat       pValue                                  ___________    __________    _______    __________      (Intercept)                     131.13        14.273     9.1873    6.2319e-17     curb_weight                  -0.043315     0.0085114    -5.0891    8.4682e-07     engine_size                   -0.17102       0.13844    -1.2354       0.21819     bore                           -12.244         4.999    -2.4493      0.015202     curb_weight:engine_size    -6.3411e-05    2.6577e-05     -2.386      0.017996     engine_size:bore              0.092554      0.037263     2.4838      0.013847     curb_weight^2               8.0836e-06    1.9983e-06     4.0451    7.5432e-05   Number of observations: 201, Error degrees of freedom: 194 Root Mean Squared Error: 3.59 R-squared: 0.735,  Adjusted R-Squared: 0.726 F-statistic vs. constant model: 89.5, p-value = 3.58e-53 

El modelo inicial es una fórmula cuadrática, y el modelo más bajo considerado es la constante. Aquí, realiza una técnica de eliminación hacia atrás para determinar los términos en el modelo.stepwiselm El modelo final es, que corresponde aprice ~ 1 + curb_weight*engine_size + engine_size*bore + curb_weight^2

<math display="block">
<mrow>
<mi>P</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>C</mi>
</mrow>
</msub>
<mi>C</mi>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>E</mi>
</mrow>
</msub>
<mi>E</mi>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>B</mi>
</mrow>
</msub>
<mi>B</mi>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>C</mi>
<mi>E</mi>
</mrow>
</msub>
<mi>C</mi>
<mi>E</mi>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>E</mi>
<mi>B</mi>
</mrow>
</msub>
<mi>E</mi>
<mi>B</mi>
<mo>+</mo>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<msup>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
</mrow>
</msub>
<msup>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msup>
<mo>+</mo>
<mi>ϵ</mi>
</mrow>
</math>

Dónde

<math display="block">
<mrow>
<mi>P</mi>
</mrow>
</math>
es el precio,
<math display="block">
<mrow>
<mi>C</mi>
</mrow>
</math>
es de masa/propio peso,
<math display="block">
<mrow>
<mi>E</mi>
</mrow>
</math>
es el tamaño del motor,
<math display="block">
<mrow>
<mi>B</mi>
</mrow>
</math>
es aburrido,
<math display="block">
<mrow>
<msub>
<mrow>
<mi>β</mi>
</mrow>
<mrow>
<mi>i</mi>
</mrow>
</msub>
</mrow>
</math>
es el coeficiente para el término correspondiente en el modelo, y
<math display="block">
<mrow>
<mi>ϵ</mi>
</mrow>
</math>
es el término de error. El modelo final incluye los tres efectos principales, los efectos de interacción para el peso en vacío y el tamaño del motor y el tamaño y el orificio del motor, y el término de segundo orden para el peso en vacío.

Consulte también

| |

Temas relacionados