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 con covariables categóricas

En este ejemplo se muestra cómo realizar una regresión con covariables categóricas mediante matrices categóricas y.fitlm

Cargue datos de muestra.

load carsmall

La variable contiene mediciones en las millas por galón de 100 coches de muestra.MPG El año modelo de cada coche está en la variable, y contiene el peso de cada coche.Model_YearWeight

Trazar datos agrupados.

Dibuje un gráfico de dispersión en contra, agrupado por año de modelo.MPGWeight

figure() gscatter(Weight,MPG,Model_Year,'bgr','x.o') title('MPG vs. Weight, Grouped by Model Year')

La variable de agrupación, tiene tres valores únicos, y, correspondientes a los años de modelo 1970, 1976 y 1982.Model_Year707682

Cree una matriz de tabla y categórica.

Cree una tabla que contenga las variables y.MPGWeightModel_Year Convierta la variable en una matriz categórica.Model_Year

cars = table(MPG,Weight,Model_Year); cars.Model_Year = categorical(cars.Model_Year);

Ajuste un modelo de regresión.

Ajuste un modelo de regresión utilizando como variable dependiente y como variables independientes.fitlmMPGWeightModel_Year Debido a que es una covariable categórica con tres niveles, debe entrar en el modelo como dos variables indicadoras.Model_Year

El gráfico de dispersión sugiere que la pendiente de contra puede diferir para cada año del modelo.MPGWeight Para evaluar esto, incluya términos de interacción de año de peso.

El modelo propuesto es

E(MPG)=β0+β1Weight+β2I[1976]+β3I[1982]+β4Weight×I[1976]+β5Weight×I[1982],

donde [1976] y [1982] son variables ficticias que indican los años del modelo 1976 y 1982, respectivamente. [1976] toma el valor 1 si el año del modelo es 1976 y toma el valor 0 si no lo es. [1982] toma el valor 1 si el año del modelo es 1982 y toma el valor 0 si no lo es.IIII En este modelo, 1970 es el año de referencia.

fit = fitlm(cars,'MPG~Weight*Model_Year')
fit =    Linear regression model:     MPG ~ 1 + Weight*Model_Year  Estimated Coefficients:                              Estimate          SE                                 ___________    __________      (Intercept)                  37.399        2.1466     Weight                   -0.0058437    0.00061765     Model_Year_76                4.6903        2.8538     Model_Year_82                21.051         4.157     Weight:Model_Year_76    -0.00082009    0.00085468     Weight:Model_Year_82     -0.0050551     0.0015636                                tStat        pValue                               ________    __________      (Intercept)               17.423    2.8607e-30     Weight                   -9.4612    4.6077e-15     Model_Year_76             1.6435       0.10384     Model_Year_82             5.0641    2.2364e-06     Weight:Model_Year_76    -0.95953       0.33992     Weight:Model_Year_82     -3.2329     0.0017256   Number of observations: 94, Error degrees of freedom: 88 Root Mean Squared Error: 2.79 R-squared: 0.886,  Adjusted R-Squared: 0.88 F-statistic vs. constant model: 137, p-value = 5.79e-40

La salida de regresión muestra:

  • reconoce como una variable categórica y construye las variables del indicador (dummy) requeridas.fitlmModel_Year De forma predeterminada, el primer nivel, es el grupo de referencia (se usa para cambiar el grupo de referencia).70reordercats

  • La especificación del modelo, especifica los términos de primer orden para y y todas las interacciones.MPG~Weight*Model_YearWeightModel_Year

  • El modelo R2 = 0,886, lo que significa que la variación en millas por galón se reduce en un 88,6% cuando se considera el peso, el año del modelo y sus interacciones.

  • El modelo ajustado es

    MP^G=37.40.006Weight+4.7I[1976]+21.1I[1982]0.0008Weight×I[1976]0.005Weight×I[1982].

    Por lo tanto, las ecuaciones de regresión estimadas para los años de modelo son las siguientes.

    Año modeloMPG pronosticado contra peso
    1970

    MP^G=37.40.006Weight

    1976

    MP^G=(37.4+4.7)(0.006+0.0008)Weight

    1982

    MP^G=(37.4+21.1)(0.006+0.005)Weight

La relación entre y tiene una pendiente cada vez más negativa a medida que aumenta el año del modelo.MPGWeight

Trazar líneas de regresión ajustadas.

Trace los datos y las líneas de regresión ajustadas.

w = linspace(min(Weight),max(Weight));  figure() gscatter(Weight,MPG,Model_Year,'bgr','x.o') line(w,feval(fit,w,'70'),'Color','b','LineWidth',2) line(w,feval(fit,w,'76'),'Color','g','LineWidth',2) line(w,feval(fit,w,'82'),'Color','r','LineWidth',2) title('Fitted Regression Lines by Model Year')

Prueba para diferentes pendientes.

Pruebe las diferencias significativas entre las pendientes. Esto equivale a probar la hipótesis

H0:β4=β5=0HA:βi0foratleastonei.

Esta salida muestra que el-valor para la prueba es (de la fila de la interacción,), así que la hipótesis nula se rechaza en el nivel de significancia 0,05.

anova(fit)
ans =                            SumSq     DF    MeanSq    F         pValue         Weight               2050.2     1    2050.2    263.87    3.2055e-28     Model_Year           807.69     2    403.84    51.976    1.2494e-15     Weight:Model_Year    81.219     2    40.609    5.2266     0.0071637     Error                683.74    88    7.7698                        
p0.0072Weight:Model_Year El valor de la estadística de prueba es.5.2266 El numerador grados de libertad para la prueba es, que es el número de coeficientes en la hipótesis nula.2

Hay pruebas suficientes de que las pendientes no son iguales para los tres años de modelo.

Consulte también

| | |

Ejemplos relacionados

Más acerca de