Está en la página 1de 5

Heterocedasticidad con R

Jos Antonio Ortega Osona, Universidad de Salamanca NOTAS, CURSO 2004-2005. Versin 17 de febrero mayo de 2005.

Introduccin
Ya hemos visto en Econometra I cmo estimar modelos lineales con R. Lo ms sencillo es la utilizacin de la funcin lm cuya notacin recordamos que es la siguiente: > estim.1 <- lm( y ~ x1 + x2 + x3, data = datos) En estas breves notas, y a travs de un ejemplo concreto, comprobaremos cmo se puede detectar y contrastar la heterocedasticidad, cmo se puede estimar la matriz de varianzas-covarianzas cuando hay heterocedasticidad a travs del estimador de White, cmo realizar contrastes de hiptesis lineales utilizando dicho estimador, as como cmo realizar la estimacin de Mnimos Cuadrados Generalizados y Mnimos Cuadrados Generalizados en dicho caso. La mayor parte de las funciones no estn en el paquete base de R sino en la biblioteca car. Esta es una de las bibliotecas que utiliza el Rcmdr por lo que est disponible en vuestro ordenador si tenis dicha biblioteca. Por ltimo, se presenta cmo se puede estimar la varianza a travs del mtodo bootstrap utilizando la biblioteca del modelo de una pendiente (M1P). Al final se resumen las principales funciones que utilizamos para la estimacin de modelos lineales con y sin heterocedasticidad.

Estimacin MCO
Veamos a travs de un ejemplo cmo detectar la presencia de heterocedasticidad a partir de la estimacin MCO as como cmo obtener la estimacin de White de la matriz de varianzas-covarianzas. Vamos a ver todos los resultados con un ejemplo utilizando datos disponibles en el propio R, los datos correspondientes a ahorro agregado en una serie de pases en LifeCycleSavings. Para cargar dichos datos as como cargar la librera car tenemos que hacer: > data(LifeCycleSavings) > help(LifeCycleSavings) > library(car) # Para enterarnos de qu son las variables

Para estimar por MCO utilizamos la funcin lm, asignndola el nombre que deseemos: > fm1 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) > summary(fm1)
Call: lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) Residuals: Min 1Q Median -8.2422 -2.6857 -0.2488 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 28.5660865 7.3545161 3.884 0.000334 *** pop15 -0.4611931 0.1446422 -3.189 0.002603 ** pop75 -1.6914977 1.0835989 -1.561 0.125530 dpi -0.0003369 0.0009311 -0.362 0.719173 ddpi 0.4096949 0.1961971 2.088 0.042471 * --Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 3.803 on 45 degrees of freedom Multiple R-Squared: 0.3385, Adjusted R-squared: 0.2797 F-statistic: 5.756 on 4 and 45 DF, p-value: 0.0007904 3Q 2.4280 Max 9.7509

Heterocedasticidad con R, Jos Antonio Ortega

Notas econometra

Curso 2004-2005

La funcin lm emplea la frmula habitual para obtener los estadsticos t y F. Como sabemos, slo son vlidos en presencia de homocedasticidad.

Estimacin de la matriz de varianzas-covarianzas


La estimacin habitual de la matriz de varianzas-covarianzas, puede obtenerse con la funcin vcov: > round(vcov(fm1),7)
(Intercept) pop15 pop75 dpi ddpi (Intercept) pop15 pop75 dpi ddpi 54.0889072 -1.0469276 -6.4480865 -0.0011359 -0.2716546 -1.0469276 0.0209214 0.1199574 0.0000242 0.0029078 -6.4480865 0.1199574 1.1741866 -0.0003703 -0.0116339 -0.0011359 0.0000242 -0.0003703 0.0000009 0.0000467 -0.2716546 0.0029078 -0.0116339 0.0000467 0.0384933

Para obtener el estimador de White, y otros estimadores de la matriz de varianzas-covarianzas consistentes cuando hay heterocedasticidad, empleamos la funcin hccm de la biblioteca car. Por defecto se utiliza un estimador parecido al de White con correccin por grados de libertad. Para seleccionar el de White es preciso especificar type=hc0 . > round(hccm(fm1,"hc0"),7)
(Intercept) pop15 pop75 dpi ddpi (Intercept) pop15 pop75 dpi ddpi 40.6960127 -0.7841570 -5.9158257 0.0001185 0.1340806 -0.7841570 0.0158544 0.1100577 -0.0000025 -0.0045685 -5.9158257 0.1100577 1.0295768 -0.0001780 -0.0493913 0.0001185 -0.0000025 -0.0001780 0.0000003 0.0000262 0.1340806 -0.0045685 -0.0493913 0.0000262 0.0290083

Podemos ver como en algunos casos las diferencias son bastante notables. En este caso, contrario a lo ms habitual, la estimacin consistente tiende a ser menor que la estimacin habitual.

Contrastes de restricciones lineales


El estadstico F para el contraste de restricciones lineales suele calcularse, cuando utilizamos el modelo lineal, comparando el modelo restringido y el general con la funcin anova. Este procedimiento slo es vlido con homocedasticidad. La biblioteca car tiene una funcin alternativa, la funcin linear.hypothesis , que tambin puede abreviarse como lht (Test de Hiptesis Lineales). Para el contraste del conjunto de hiptesis R = q , donde R es una matriz Jxk, y q es un vector Jx1, la notacin es la siguiente: > lht(modelo, R, q) Por defecto, dicha funcin emplea el estimador habitual de la matriz de varianzas-covarianzas. Si deseamos emplear el estimador de White tenemos que especificar el argumento white=hc0. De este modo, el contraste de significatividad global, por ejemplo en el que formamos R como > R <- cbind(0,diag(4)) > R
[1,] [2,] [3,] [4,] [,1] [,2] [,3] [,4] [,5] 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1

El contraste habitual de significatividad global, el mismo que calcula R por defecto, se obtendra como: > lht(fm1,R,c(0,0,0,0))
F-Test SS = 332.9153 SSE = 650.713 F = 5.755681 Df = 4 and 45 p = 0.000790378

Podemos comprobar que el resultado es el mismo estadstico F que hemos obtenido al estimar el modelo. El contraste de significatividad global robusto frente a heterocedasticidad, basado en la estimacin de White, se obtiene como:

Notas econometra

Curso 2004-2005

> lht(fm1,R,c(0,0,0,0),white="hc0")
F-Test SS = 403.2999 SSE = 650.713 F = 6.972543 Df = 4 and 45 p = 0.0001861738

Vemos como no coincide ni el estadstico ni el p-valor basado en la F (aunque s los grados de libertad). Es importante sealar la diferencia entre los dos contrastes: el primero, en el caso de que el trmino de error tenga distribucin normal, es un contraste con una distribucin F exacta. El segundo, incluso si U es normal, es un contraste asinttico: sabemos su tamao cuando n, pero para un tamao muestral pequeo, como es el caso, el tamao exacto es desconocido, y el asinttico una mera aproximacin. Esta funcin lht, como vemos, es muy til para realizar todo tipo de contrastes en el modelo lineal.

Deteccin grfica de la heterocedasticidad


Hemos comentado que uno de los procedimientos ms tiles para detectar posible heterocedasticidad, as como no linealidades en la relacin, lo constituyen los grficos componente + residuo. Estos estn disponibles en la biblioteca car y son accesibles desde el Rcmdr. La funcin que los grafica es cr.plots. Si especificamos sin ms cr.plots(fm1) , R nos ofrecer la opcin de escoger la variable que nos interesa. Si queremos el grfico con todas las variables hay que escribir: > cr.plots(fm1, ask=FALSE)
Component+Residual Plot
10

Component+Residual Plot

Component+Residual(sr)

Component+Residual(sr) 25 30 35 pop15 40 45

-5

-10

-5

10

3 pop75

Component+Residual Plot
10 10

Component+Residual Plot

Component+Residual(sr)

Component+Residual(sr) 0 1000 2000 dpi 3000 4000

-5

-5 0

5 ddpi

10

15

En este caso la relacin funcional parece bien captada (el intervalo extrao para pop15 apenas tiene datos, lo mismo ocurre para valores muy elevados de ddpi. En cuanto a la dispersin, se observa un fenmeno curioso: parece que hay varianza asociada a la renta per capita (dpi), pero de forma negativa: a ms renta, menor varianza en la tasa de ahorro.

Notas econometra

Curso 2004-2005

Contrastes de heterocedasticidad de Breusch-Pagan y de White


Los contrastes de heterocedasticidad del tipo de multiplicadores de lagrange estn desarrollados tambin en la biblioteca car, a travs de la funcin ncv.test (test de varianza no constante). Por defecto realiza un contraste de Breusch-Pagan de la hiptesis nula de que la varianza est ligada al valor ajustado de la variable. Si se quieren contrastar otras hiptesis, la sintaxis es la siguiente: > ncv.test(modelo, frmula de varianza, data = datos) Donde la formula de varianza es una formula anloga a la de un modelo, pero sin variable explicativa, y al lado de la derecha con las variables asociadas a la varianza. Por ejemplo, si queremos contrastar si la varianza es funcin de 1/dpi , de modo que es menor para mayor renta per cpita, haramos: > ncv.test(fm1, ~ I(1/dpi), data=LifeCycleSavings)
Non-constant Variance Score Test Variance formula: ~ I(1/dpi) Chisquare = 3.276959 Df = 1 p = 0.07025899

Vemos que el programa nos da el estadstico de contraste y lo compara con la chi cuadrado correspondiente. En nuestro caso, el p-valor es bajo, 0,07, indicndonos que estamos al lmite del rechazo dependiendo de nuestro nivel de significacin (para un 5% no rechazaramos la homocedasticidad). Podemos comprobar que el ordenador ha hecho lo que nosotros hemos estudiado en clase realizando la siguiente regresin de los residuos al cuadrado frente a la constante y 1/dpi: > summary(lm(fm1$res^2 ~ I(1/dpi),data=LifeCycleSavings))
Call: lm(formula = fm1$res^2 ~ I(1/dpi), data = LifeCycleSavings) Residuals: Min 1Q -30.922 -9.223 Median -5.938 3Q 1.503 Max 72.070

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 8.297 3.695 2.245 0.0294 * I(1/dpi) 2035.253 1128.070 1.804 0.0775 . --Signif. codes: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1 Residual standard error: 18.47 on 48 degrees of freedom Multiple R-Squared: 0.06351, Adjusted R-squared: 0.044 F-statistic: 3.255 on 1 and 48 DF, p-value: 0.07748

N veces el R2 de esta regresin debera coincidir con el estadstico del contraste. En nuestro caso 50*0,06351 es 3,1755. No coincide exactamente, aunque est relativamente cercano. Como vemos las dos posibilidades estn abiertas. El contraste por defecto en nuestro modelo es: > ncv.test.lm(fm1)
Non-constant Variance Score Test Variance formula: ~ fitted.values Chisquare = 2.274365 Df = 1 p = 0.131529

que presenta menores indicios de heterocedasticidad. Si queremos hacer el contraste de Breusch-Pagan con respecto a combinaciones de las cuatro variables sera: > ncv.test(fm1, ~ pop15+pop75+dpi+ddpi, data=LifeCycleSavings)
Non-constant Variance Score Test Variance formula: ~ pop15 + pop75 + dpi + ddpi Chisquare = 5.144607 Df = 4 p = 0.2727791

Donde el p-valor es muy alto indicando que no se rechaza la homocedasticidad. Los contrastes de White se efectan como caso particular de los de Breusch-Pagan. Los podemos hacer especificando todos los regresores a mano con la lgica anterior, o con notacin ms simple, como un polinomio de orden 2 con todas las variables del modelo:

Notas econometra

Curso 2004-2005

> ncv.test(fm1, ~poly(pop15,pop75,dpi,ddpi,degree=2), data=LifeCycleSavings)


Non-constant Variance Score Test Variance formula: ~ poly(pop15, pop75, dpi, ddpi, degree = 2) Chisquare = 14.35590 Df = 14 p = 0.4235466

Vemos que el nmero de grados de libertad del contraste, 14, coincide con la suma de las cuatro variables, los cuatro cuadrados, y los productos de orden 2. Tambin indica que no se rechaza la homocedasticidad, aunque en nuestro ejemplo se trata de un contraste poco potente al utilizar 14 regresores cuando nuestra muestra es de nicamente 50 observaciones. En cualquier caso parece que los problemas de heterocedasticidad, de existir, no son muy graves.