
Uno de los supuestos más difíciles de verificar en la práctica es que el modelo lineal está correctamente especificado y que tanto la forma funcional es correcta como que no falta ninguna variable relevante. Se ha visto que si disponemos de datos, es posible contrastar la relevancia de cada variable explicativa en el modelo, sin embargo, el problema real se produce cuando no disponemos de información (no observamos) una variable posiblebemente relevante o cuando la especificación del modelo debería incluir transformaciones no lineales de las variables.
El contraste RESET (Regression Equation Specification Error Test, contraste de especificación del error del modelo de regresión) trata de arrojar alguna luz sobre los tipos de error de especificación mencionados. El supuesto es que si faltan términos no lineales o variables no observadas, eso quedaría reflejado en que ciertas no linealidades de los valores ajustados del modelo resultan significativas en la explicación de la variable dependiente.
La versión de valores ajustados del contraste RESET requiere estimar por MCO el modelo auxiliar:
donde
El contraste RESET ha sido criticado por su escasa potencia, es decir, aún cuando la nula es falsa y son necesarios términos no lineales u otras variables en el modelo, el contraste tiende a no recharzala.
Utilizando datos de 88 viviendas unifamiliares, se intenta explicar el precio (price) en función del tamaño de la parcela (lotsize), los pies cuadrados de superficie (sqrft) y el número de dormitorios (bdrms). A continuación se estima el modelo por MCO, se realiza el contraste RESET con p=3 (argumento power=2:3 donde deben especificarse todas las potencias hasta p) y versión de valores ajustados (type="fitted"):
> library(lmtest)
> hprice <- read.csv("hprice1.csv")
> hprice.1 <- lm(price ~ lotsize + sqrft + bdrms, data=hprice)
> summary(hprice.1)
Call: lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice) Residuals: Min 1Q Median 3Q Max -120.026 -38.530 -6.555 32.323 209.376 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -2.177e+01 2.948e+01 -0.739 0.46221 lotsize 2.068e-03 6.421e-04 3.220 0.00182 ** sqrft 1.228e-01 1.324e-02 9.275 1.66e-14 *** bdrms 1.385e+01 9.010e+00 1.537 0.12795 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 59.83 on 84 degrees of freedom Multiple R-squared: 0.6724, Adjusted R-squared: 0.6607 F-statistic: 57.46 on 3 and 84 DF, p-value: < 2.2e-16
> resettest(hprice.1, power=2:3, type="fitted")
RESET test data: hprice.1 RESET = 4.6682, df1 = 2, df2 = 82, p-value = 0.01202
Los gráficos de diagnósitico de residuos, cuya creación con plot.lm() se presentó en la sección sobre atípicos e influyentes, se muestran a continuación:
Como se puede apreciar, aparece una observación influyente, la vivienda 77 que podría estar alterando los resultados. Así, primero se elimina la observación problemática, se reestima el modelo y se realiza de nuevo el contraste:
> hprice <- hprice[-77,] > hprice.1 <- lm(price~lotsize+sqrft+bdrms, data=hprice) > summary(hprice.1)
Call: lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice) Residuals: Min 1Q Median 3Q Max -115.072 -30.340 -0.739 31.913 211.138 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -28.301170 25.149383 -1.125 0.26370 lotsize 0.009195 0.001363 6.748 1.88e-09 *** sqrft 0.086495 0.012949 6.680 2.55e-09 *** bdrms 20.481920 7.767117 2.637 0.00998 ** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 51 on 83 degrees of freedom Multiple R-squared: 0.7646, Adjusted R-squared: 0.7561 F-statistic: 89.89 on 3 and 83 DF, p-value: < 2.2e-16
> resettest(hprice.1, power=2:3, type="fitted")
RESET test data: hprice.1 RESET = 4.2617, df1 = 2, df2 = 81, p-value = 0.01739
La estimación sin la vivienda 77 es claramente distinta de la obtenida con todas las observaciones. Sin embargo, el contraste RESET sigue rechazando la hipótesis nula de especificación correcta con un 5% de significación. Como alternativa, se propone una especificación en logaritmos (excepto el número de dormitorios), se estima y se realiza el contraste RESET sobre los residuos del nuevo modelo:
> hprice.2 <- lm(log(price) ~ log(lotsize) + log(sqrft) + bdrms, data = hprice) > summary(hprice.2)
Call: lm(formula = log(price) ~ log(lotsize) + log(sqrft) + bdrms, data = hprice) Residuals: Min 1Q Median 3Q Max -0.67967 -0.08873 -0.00435 0.10679 0.66830 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1.33721 0.64787 -2.064 0.0421 * log(lotsize) 0.20376 0.04553 4.475 2.41e-05 *** log(sqrft) 0.66183 0.09611 6.886 1.02e-09 *** bdrms 0.04140 0.02754 1.503 0.1365 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1835 on 83 degrees of freedom Multiple R-squared: 0.6508, Adjusted R-squared: 0.6382 F-statistic: 51.57 on 3 and 83 DF, p-value: < 2.2e-16
> resettest(hprice.2, power=2:3, type="fitted")
RESET test data: hprice.2 RESET = 2.3629, df1 = 2, df2 = 81, p-value = 0.1006
Con la transformación logaritmica, el número de dormitorios deja de ser significativo. Según el contraste RESET, no se puede rechazar la hipótesis nula de especificación correcta con un 5% de significación.

