Error de Especificación

Cuando se elabora un modelo econométrico, es necesario la evaluación a ivel estadístico del mismo. En esta se hace un análisis de los datos y de los supuestos estadísticos detrás del modelo de regresión lineal. Esta evaluación consta de una variedad de pruebas estadísticas que permiten averiguar si se satisfacen los supuestos. La especificación incorrecta del modelo puede deberse a una formulación no acdecuada de la forma funcional o bien, a que se violan los supuestos del error aleatorio o incluso a la información empírica que se incorpora al modelo para su estimación.

La especificación del modelo incluyendo sus supuestos, conducen a que los estimadores de los parámetros satisfagan propiedades estadísticas deseables, como son el insesgamiento, la eficiencia y a consistencia. Respecto a los errores e espeficiación en la selección de las variables explicativas, se tienen dos tipos:

  • Omisión de variables relevantes (subajuste del modelo)
  • Inclusión de variables innecesarias (sobreajuste del modelo)

Omisión de una variable relevante

Suponiendo que se tiene el siguiente modelo y este es verdadero:

\[ y = \beta_0+\beta_1x_1+\beta_2x_2+e \]

Pero el modelo que se estima es:

\[ y=\alpha_o+\alpha_1x_1+v \]

Las consecuencias al omitir \(x_2\), pueden ser:

Si la variable excluida está correlacionada con la variable que se ha incluido, el coeficiente de correlación entre las dos variables es diferente de cero, por lo tanto, los estimadores del modelo con la variable omitida (\(\alpha_0\text{ y }\alpha_1\)) serán sesgados e inconsistentes. Esto quiere decir que \(E(\widehat{\alpha_0})\) no es igual a \(\beta_0\) y \(E(\widehat{\alpha_1})\) no es igual a \(\beta_1\) y el sesgo no desaparece conforme aumenta el tamaño de la muestra.

Aunque las variables el modelo verdadero no están correlacionadas, la constante eliminada será sesgada, pese a que el valor de \(\alpha_1\) sea ahora insesgado. La varianza del término de error \(\sigma^2\) está incorrectamente estimada. Es probable que el intervalo de confianza usual y los procedimientos de pruebas de hipótesis conduzcan a conclusiones equivocadas sobre la significancia estadística de los parámetros estimados.

Otra consecuencia es que los valores pronosticados que se hacen de la variable explicada en dichos modelos sean incorrectos, ya que el estimador es inconsistente y sesgado, y los intervalos de confianza del pronóstico no son confiables.

Inclusión de una variable irrelevante

Suponiendo que se tiene el siguiente modelo, y este es verdadero:

\[ y=\alpha_o+\alpha_1x_1+v \]

Pero el modelo que se estima es:

\[ y=\beta_0+\beta_1x_1+\beta_2x_2+e \]

Se está cometiendo un error de especificación al incluir una variable innecesaria en el modelo. Las consecuencias de dicho error son las siguientes: Todos los estimadores de MCO de los parámetros del modelo incorrecto son sesgados e inconsistentes, es decir, los parámetros estimados del modelo incorrecto serán estadísticamente iguales a cero. Si bien la varianza estará correctamente estimaday las pruebas de hipótesis conservan su validez, los coeficientes estimados por lo general serán ineficientes, es decir, sus varianzas generalmente serán más grandes que las del verdadero modelo.

Prueba reset

Para probar la existencia de un error de especificación en el modelo planteado se hace uso de la prueba RESET. Esta prueba, cuyas siglas quieren decir Regression Specification Error Test, planteado por Ramsey en 1969, sirve para detectar errores de especificación ocasionadas por la omisión de variables independientes, por la existencia de correlación entre los regresores y el error, por la forma funcional incorrecta. Considerando el siguiente modelo:

\[ y=\beta_0+\sum_{i=1}^{k}\beta_1x_k \]

Este Test va a probar si \((\beta x)^2,(\beta x)^3,...,(\beta x)^k\) tienen algún poder para explicar a \(y\), esto se hará realizando la siguiente regresión lineal:

\[ y=\beta_0+\sum_{i=1}^{k}\beta_ix_1+\sum_{i=1}^{m+1}\alpha\widehat{y}^i+v_i \]

Donde \(m\) es el número de potencias de la variable \(y\). Si la hiótoesis de que todos los coeficientes que acompañan a \(\hat y\) son cero es rechazada, entonces el modelo sufre de errores de especificación. Por tanto, la prueba RESET es utilizada para analizar si el modelo está bien o mal especificado, donde la hipótesis viene dada por lo siguiente:

\[ H_o:\text{Forma funcional correcta} \\ H_1:\text{Forma funcional incorrecta} \]

La prueba para analizar esta hipótesis sigue una distribución F. Esta prueba se realiza una vez que se ha estimado el modelo.

Prueba RESET en R

Para realizar la prueba RESET en R, se requiere el paquete lmtest y una vez regresionado el modelo, se realizar la prueba haciendo uso del comando resettest(). Los resultados son los siguientes:

library(lmtest)
mod1=lm(wage~educ+exper, data=mroz)
summary(mod1)
## 
## Call:
## lm(formula = wage ~ educ + exper, data = mroz)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.0461 -1.7560 -0.4655  1.2116 23.5483 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -3.90462    0.60573  -6.446 2.05e-10 ***
## educ         0.43093    0.04785   9.006  < 2e-16 ***
## exper        0.09260    0.01352   6.849 1.55e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.985 on 750 degrees of freedom
## Multiple R-squared:  0.1543, Adjusted R-squared:  0.152 
## F-statistic:  68.4 on 2 and 750 DF,  p-value: < 2.2e-16

Estos resultados muestran que el modelo es estadísticamente significativo de forma conjunta y también de forma individual para cada uno de sus parámetros. Para probar problemas de errores de especificación, se aplica el test RESET de Ramsey con el comando resettest().

resettest(mod1)
## 
##  RESET test
## 
## data:  mod1
## RESET = 4.6609, df1 = 2, df2 = 748, p-value = 0.009734

Conclución: De los resultados se puede entender que como la hipótesis nula es aceptada, por lo tanto, no se puede detectar una especificación errónea en dicho modelo estimado.

Ajuste de Curva

Los modelos de regresión lineal simple y múltiple muchas veces no son la mejor alternativa. Para otros casos, se disponen de otras variables que se ajustan más a las curvas que a las funciones lineales. En ese sentido, se desarrollará las diferentes formas de regresión por ajuste de curvas, tales como la exponencial, la potencial, la logarítmica y la polinómica.

Regresión Exponencial

El modelo de regresión exponencial obedece la escuación:

\[ Y=ae^{bX} \]

Aplicando la función logaritmo natural o neperiano:

\[ lnY=ln(ae^{bX}) \]

Linealizando , se obtendrá:

\[ lnY=lna+bX \]

De esta manera, se convertirá en una función lineal.

En R:

Ingresamos ciertos datos:

x<-seq(1,96,by=5)
y<-c(3.8,2.9,2.2,1.8,1.4,1.1,0.8,0.6,0.5,0.5,0.3,0.21,0.2,0.15,0.1,0.08,0.06,0.05,0.04,0.04)
Data=data.frame(x,y)
knitr::kable(head(Data))
x y
1 3.8
6 2.9
11 2.2
16 1.8
21 1.4
26 1.1

Con la función \(lim\) se realiza el modelo de regresión lineal con la variable independiente \(X\) y la variable dependiente \(log(Y)\)

reg.exp<-lm(log(y)~x,data=Data)
summary(reg.exp)
## 
## Call:
## lm(formula = log(y) ~ x, data = Data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.12133 -0.05700 -0.01107  0.02214  0.24434 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.3708977  0.0439324   31.20   <2e-16 ***
## x           -0.0501823  0.0007786  -64.45   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1004 on 18 degrees of freedom
## Multiple R-squared:  0.9957, Adjusted R-squared:  0.9954 
## F-statistic:  4154 on 1 and 18 DF,  p-value: < 2.2e-16

En dicha regresión, se observa que las variables (Intercepto y x) son significativas. Se rechaza la hipótesis nula, es decir, \(\beta_j\)≠0. Además, el modelo de regresión exponencial se aproxima en un 99.57% a los datos.

La gráfica de Y VS x:

plot(x,y, pch=22, bg="red", main="Y vs X")
grid(10, 10, lwd=2)

Mientras que la gráfica de \(lnY=lna+bX\) es:

plot(x,log(y), pch=22, bg="red", main = "log(y) vs X")
abline(reg=reg.exp, col="blue", lwd=1.5)
grid(5,5,lwd=2)

De los resultados de la regresión se deduce que \(lna=1.37\) y \(b=0.05\), entonces:

\[ a=e^{lna}=e^{1.37}= 3.93 \]

Por lo tanto, la ecuación exponencial aproximada es:

\[ Y=3.93e^{-0.05} \]

Su gráfica se realiza con la siguiente codificación:

plot(x,y, pch=21, bg="turquoise", main="Aproximación")
lines(x, exp(reg.exp$fitted.values), col="red")
grid(10, 10, lwd=2)

Regresión Potencial

El modelo de regresión potencial obedece a la ecuación:

\[ Y=aX^b \]

Aplicando la función logaritmo natural o neperiano:

\[ lnY=ln(aX^b) \]

Linealizando, se obtendrá:

\[ lnY=lna+blnX \]

De esta manera, se convertirá en una función lineal.

En R:

x<-1:7
y<-c(7,30,90,170,290,450,650)
Data<-data.frame(x,y)
knitr::kable(Data)
x y
1 7
2 30
3 90
4 170
5 290
6 450
7 650

Realizamos el modelo de regresión lineal con la variable independiente log(X) y la variable dependiente log(Y)

reg.potencial<-lm(log(y)~log(x),data=Data)
summary(reg.potencial)
## 
## Call:
## lm(formula = log(y) ~ log(x), data = Data)
## 
## Residuals:
##          1          2          3          4          5          6          7 
##  0.0606501 -0.1135982  0.0317970 -0.0085326  0.0009566  0.0116993  0.0170278 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.88526    0.04924   38.29 2.29e-07 ***
## log(x)       2.35092    0.03586   65.55 1.56e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06016 on 5 degrees of freedom
## Multiple R-squared:  0.9988, Adjusted R-squared:  0.9986 
## F-statistic:  4297 on 1 and 5 DF,  p-value: 1.564e-08

Lo primero se que se observa es que las variables son estadísticamente significativas. Además, el modelo de regresión potencial se aproxima a un 99.88% a los datos. Loa grafica sería:

plot(x,y, pch=22, bg="red", main="Y vs X")
grid(10, 10, lwd=2)

Gráfica de \(lnY=lnla+blnX\)

plot(log(x),log(y), pch=22, bg="red", main="ln(Y) VS ln(X)", xlab="ln(X)", ylab="ln(Y)")
abline(reg=reg.potencial, col="blue", lwd=1.5)
grid(5, 5, lwd=2)

La gráfica de la aproximación es:

plot(x,y, pch=21, bg="turquoise", main="Aproximación")
lines(x, exp(reg.potencial$fitted.values), col="red")
grid(10,10,lwd=2)

La gráfica de los residuos sería´:

plot(predict(reg.potencial), residuals(reg.potencial), pch=22, bg="red", main="Gráfica de Residuos")
grid(10,10, lwd=1.5)
lines(predict(reg.potencial), residuals(reg.potencial), type="h", col="green", lwd=2)
abline(h=0, col="red", lty=3, lwd=1.5)

Regresión Logarítmica

\[ Y=a+blnX \]

En R sería:

x<-c(4,8,12,14,18,23,28,32)
y<-c(240,200,150,130,100,80,60,30)
Data<-data.frame(x,y)
knitr::kable(Data)
x y
4 240
8 200
12 150
14 130
18 100
23 80
28 60
32 30

Con la función lm se realiza el modelo de regresión lineal con la variable independiente log(X) y variable dependiente Y:

reg.logaritmica<-lm(y~log(x),data=Data)
summary(reg.logaritmica)
## 
## Call:
## lm(formula = y ~ log(x), data = Data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -14.659  -4.980   2.592   3.795  15.660 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  395.297     16.435   24.05 3.39e-07 ***
## log(x)      -101.449      5.967  -17.00 2.65e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.95 on 6 degrees of freedom
## Multiple R-squared:  0.9797, Adjusted R-squared:  0.9763 
## F-statistic: 289.1 on 1 and 6 DF,  p-value: 2.648e-06

En la figura anterior se observa que las variables son significativas. Además, el modelo de regresión logarítmica se aproxima en un 97.97% a los datos. La gráfica de Y vs X es:

plot(x,y,pch=22, bg="red", main="Y vs X")
grid(10,10,lwd=2)

Gráfica Y vs lnX:

plot(log(x), y, pch=22, bg="red", main="Y vs ln(X)", xlab = "ln(x)", ylab = "Y")
abline(reg=reg.logaritmica, col="blue", lwd=1.5)
grid(10,10,lwd=2)

El gráfico de \(Y=\beta_1+\beta_2lnX\):

plot(x,y, pch=21, bg="turquoise", main="Aproximación")
lines(x, reg.logaritmica$fitted.values, col="red")
grid(10,10,lwd=2)

Regresión Polinómica

El modelo de regresión polinómica de grado n obecede la ecuación:

\[ Y=\beta_0+\beta_1X+\beta_2X^2+...+\beta_nX^n \]

En R ello se trabaja de la siguiente manera:

x<-seq(-1.5,1.5, length.out = 10)
y<-c(0.56,-0.86,-0.9,-0.4,-0.05,-0.05,-0.43,-0.90,-0.86,0.56)
Data<-data.frame(x,y)
knitr::kable(Data)
x y
-1.5000000 0.56
-1.1666667 -0.86
-0.8333333 -0.90
-0.5000000 -0.40
-0.1666667 -0.05
0.1666667 -0.05
0.5000000 -0.43
0.8333333 -0.90
1.1666667 -0.86
1.5000000 0.56

Elaborar un modelo de regresión polinómica de grado 4; debe incluirse I(), para poder crear una nueva variable con operaciones de potencia:

reg.polinomial<-lm(y~x+I(x^2)+I(x^3)+I(x^4),data=Data)
summary(reg.polinomial)
## 
## Call:
## lm(formula = y ~ x + I(x^2) + I(x^3) + I(x^4), data = Data)
## 
## Residuals:
##          1          2          3          4          5          6          7 
##  0.0022028 -0.0026457 -0.0106352  0.0215210 -0.0076807 -0.0045338 -0.0001224 
##          8          9         10 
## -0.0003205  0.0042075 -0.0019930 
## 
## Coefficients:
##              Estimate Std. Error  t value Pr(>|t|)    
## (Intercept)  0.010742   0.007146    1.503    0.193    
## x           -0.009576   0.010063   -0.952    0.385    
## I(x^2)      -1.994495   0.017495 -114.002 9.85e-10 ***
## I(x^3)       0.004878   0.005705    0.855    0.432    
## I(x^4)       0.994917   0.007411  134.255 4.35e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01174 on 5 degrees of freedom
## Multiple R-squared:  0.9998, Adjusted R-squared:  0.9996 
## F-statistic:  5379 on 4 and 5 DF,  p-value: 2.879e-09

En el modelo presentado, se puede observar que \(x^2\) y \(x^4\) son variables significativas. Además, se rechaza la hipótesis nula, es decir, \(\beta_j \not = 0\) (tanto para j=2 y j=4). Además, el modelo de regresión polinómica se aproxima en un 99.80% a los datos.

plot(x,y, pch=21, bg="red", main="Aproximación", ylim=c(-1.1,0.7))
beta<-reg.polinomial$coefficients
x2<-seq(-1.5,1.5, length.out = 100)
y2<-beta[1]+beta[2]*x2+beta[3]*x2^2+beta[4]*x2^3+beta[5]*x2^4
lines(x2, y2, col="red", lty=2)
grid(10,10,lwd=2)

Normalidad de los residuos

Prueba de normalidad de Jarque-bera

Cuando una variable aleatoria se distribuye normal, su tercer y cuarto momento alrededor de la media también conocidos como sesgo y curtosis, son cero y tres, de manera respectiva. El sesgo igual a cero da cuenta de que la distribución es simétrica, mientras que la curtosis igual a tres plantea que la distribución no es puntiaguda (leptocúrtica), ni achatada (platicúrtica), en cuyo caso es normal o mesocúrtica.

Jarque y Bera (1980, 1987) formulan una prueba de normalidad que lleva su nombre, ellos plantean que existen distribuciones que pueden coincidir con la distribución normal, en media y varianza o sea, que su primer momento centrado en cero y su segundo alrededor de la media son los mismos, pero que no necesariamente el tercero y cuarto momentos centrados en la media son iguales. Esa es la razón que los conduce a plantear la prueba de normalidad basada en el sesgo, s, y la curtosis, c, de manera que las hipótesis a probar son

\[ H_0: \text{Errores noramles} \ \text{vs} \ H_1: \text{Errores no normales} \]

o equivalentemente,

\[ H_0: s=0,c=3 \ \text{vs} \ H_1: s \neq 0 \text{y/o} \ c \neq 3 \]

y el estadístico de prueba bajo \(H_0\) es

\[ JB= T[\frac{\hat{CS^2}}{6}+\frac{(\hat cc-3)^2}{24}]\sim \chi^2_{2} \]

donde \(\hat cs\) y el $ cc$ coeficiente de curtosis dado por

\[ \ hat cs = \frac{\hat s}{(\sqrt{\hat \sigma^2)^3}} \ \ \hat cc= \frac{\hat c}{(\sqrt{\hat \sigma^2})^4} \]

y

\[ \hat s = \frac{1}{T} \sum_{t=1}^T\hat \epsilon_t^3, \ \ \hat c = \frac{1}{T} \sum_{i=1}^T \hat \epsilon_t^4 \]

Observe que si el estadístico de prueba JB es cercano a cero hay evidencia a favor de que los errores se distribuyen de manera normal, en caso contrario, es decir, cuando JB está alejado de cero, se rechaza la hipótesis nula y las distribuciones de los estimadores de las betas y de la varianza de los errores estocásticos, no tendrán las distribuciones que permiten hacer inferencia estadística del modelo de regresión lineal y por tanto, ellas serán válidas sólo de manera asintótica de acuerdo al teorema de límite central.

PRUEBA JARQUE-BERA EN R

En la implementación de la prueba de Jarque-Bera en R, es necesario cargar el paquete tseries mediante la instrucción

library(tseries)
library(car)
attach(Prestige)
modelo<- lm(prestige~income+education)
summary(modelo)
## 
## Call:
## lm(formula = prestige ~ income + education)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -19.4040  -5.3308   0.0154   4.9803  17.6889 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -6.8477787  3.2189771  -2.127   0.0359 *  
## income       0.0013612  0.0002242   6.071 2.36e-08 ***
## education    4.1374444  0.3489120  11.858  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.81 on 99 degrees of freedom
## Multiple R-squared:  0.798,  Adjusted R-squared:  0.7939 
## F-statistic: 195.6 on 2 and 99 DF,  p-value: < 2.2e-16
qqPlot(modelo$residuals)

## [1] 53 67
jarque.bera.test(modelo$residuals)
## 
##  Jarque Bera Test
## 
## data:  modelo$residuals
## X-squared = 0.55692, df = 2, p-value = 0.7569

CAUSAS E IMPLICACIONES DE LA NO NORMALIDAD Y POSIBLES SOLUCIONES

Dos son las causas principales de que los residuos del modelo no se distribuyan de manera normal: una es que la muestra no es lo suficientemente grande como para garantizarla y la otra es que si a los datos que se incorporaron al modelo se les hizo alguna transformación, ella no fue la adecuada. Cuando los datos son pocos y hay posibilidad de obtener más, habrá que incluirlos para obtener una nueva estimación del modelo. Si esto no es posible, habrá que hacer una transformación de la familia Box y Cox, de las cuales la más utilizada es la logarítmica, y que además también puede corregir heteroscedasticidad.

Considere que se quiere transformar a variable w cuyos valores son positivos, la transformación Box-Cox depende de un parámetro 𝜆 y es la siguiente

\[ z(\lambda) =\begin{cases} \frac{(w^\lambda-1)}{\lambda}, & \lambda\neq0 \\ \log \text{w}& \lambda=0\end{cases} \]

Cuando w no es positiva, se le suma una constante de manera que se obtengan una nueva variable cuyos valores sí lo sean.

Material visual

Normalidad de los residuos

Prueba jarque-bera

Regresión no lienal en R

Problema de regresión lineal, exponencial, polinómica con R-commander