12 feb 2019

Test Chow de quiebre estructural en R

A partir de la importancia de los test de cambios estructurales en los resultados de los modelos obtenidos, la siguiente entrada muestra un ejemplo de cómo realizar un test de cambio estructural de Chow en R, asumiendo que el test es conocido por el lector. En este ejemplo, se utiliza la base de dato “wage1” sobre salarios, disponible en el texto de econometría de Wooldridge. De forma específica, se desea verificar si existen diferencias entre los retornos de mujeres y hombres.

Paso 1: Importar las bases de datos y verificar las variables disponibles

Dado que el test considera conocido el punto de quiebre estructural, es usual un análisis descriptivo formal de las bases, que permita consolidar en el analista, una idea del punto de quiebre estructural. En este ejemplo con datos transversales, suponemos este punto lo marcan diferencias de genero entre hombres y mujeres. 

library(wooldridge)
library(stargazer)

data("wage1")
attach(wage1)

str(wage1)
## 'data.frame':    526 obs. of  24 variables:
##  $ wage    : num  3.1 3.24 3 6 5.3 ...
##  $ educ    : int  11 12 11 8 12 16 18 12 12 17 ...
##  $ exper   : int  2 22 2 44 7 9 15 5 26 22 ...
...

Paso 2: Estimar los modelos para la muestra completa y para las muestras entre las cuales se desea testear el quiebre estructural.

En esta paso necesitamos estimar tres modelos, el primero corresponde al modelo no restringido (para la muestra completa, modelNR); posteriormente, se estima el modelo para hombres y para mujeres, utilizando indexación de nuestra base de datos, wage1[female==1,]. Los resultados de estos modelos se muestran en una tabla de regresión utilizando la librería stargazer.

modelNR <- lm(lwage~1+educ+exper+tenure )
modeln1 <- lm(lwage~1+educ+exper+tenure, data=wage1[female==1,] )
modeln2 <- lm(lwage~1+educ+exper+tenure, data=wage1[female==0,] )

# Resultados
stargazer(modelNR, modeln1, modeln2, type="text", title="Results", align=TRUE)
##
## Results
##
=====================================================
##                                               Dependent variable:                         
##                     -----------------------------------------------------------------------
##                                                      lwage                                
##                               (1)                     (2)                     (3)         
## -------------------------------------------------------------------------------------------
## educ                       0.092***                0.080***                0.096***       
##                             (0.007)                 (0.010)                 (0.009)       
##                                                                                            
## exper                       0.004**                  0.002                 0.008***       
##                             (0.002)                 (0.002)                 (0.002)       
##                                                                                            
## tenure                     0.022***                 0.010*                 0.018***       
##                             (0.003)                 (0.005)                 (0.004)       
##                                                                                            
## Constant                   0.284***                 0.356**                 0.322**       
##                             (0.104)                 (0.141)                 (0.139)       
##                                                                                           
## -------------------------------------------------------------------------------------------
## Observations                  526                     252                     274         
## R2                           0.316                   0.212                   0.365        
## Adjusted R2                  0.312                   0.202                   0.358        
## Residual Std. Error    0.441 (df = 522)        0.397 (df = 248)        0.428 (df = 270)   
## F Statistic         80.391*** (df = 3; 522) 22.233*** (df = 3; 248) 51.836*** (df = 3; 270)
## =======================================================
## Note:                                                           *p<0.1; **p<0.05; ***p<0.01

Paso 3: Obtener el estadístico F del test y el estadístico de tabla

A partir de las suma del cuadrado de los residuos obtenidos en los modelos anteriores sum(residuals(modelNR)^2), y la obtención de los grados de libertad del test k  y n1n2k, se puede obtener el estadístico calculado asociado al test, para finalmente compararlo con el valor del estadístico de tabla a un determinado nivel de significancia.


SRCnr<-sum(residuals(modelNR)^2)
SRCn1<-sum(residuals(modeln1)^2)
SRCn2<-sum(residuals(modeln2)^2)

# H0 b1=b2=b
k<-length(coefficients(modeln1))
n1n2k <- sum(female==1) + sum(female==0) - k
 
Fc<-((SRCnr- (SRCn1+SRCn2))*n1n2k)/((SRCn1+SRCn2)*k)
Ft<-qf(0.05, k, n1n2k, lower.tail=FALSE)
> Fc
[1] 18.96467
>  Ft
[1] 2.389012

10 feb 2019

Análisis estadístico, econometría y gestión de bases de datos en RStudio


La entrada, corresponde a una recopilación de todos los materiales de R, en el ambiente RStudio, preparado para diversos cursos y capacitaciones. Avanza desde el uso de las estadísticas descriptivas bases hasta los aspectos elementales de la econometría, de una forma aplicada, aunque sin seguir una trayectoria lineal respecto al uso del programa [DATOS]. 

Curso de Introducción a R
Clase 0.1. Introducción a R
Clase 0.2: Bucles y estructuras en R
           
Curso de Análisis Estadístico y Gestión de Bases de Hogares en R
Clase 1.1. Análisis descriptivo
Clase 1.2. Gestión de bases de hogares
Clase 1.3. Valores perdidos e imputación de datos
Clase 1.3. Herramientas de análisis de datos (tablas y gráficos en RStudio)
Clase 1.4. Análisis espacial (mapas)
Clase 1.5. Análisis de independencia y correlación
Clase 1.6. Cluter y métodos de clasificación  
Clase 1.7. Análisis factorial
Clase 1.8. Goku: una historia de constancia

Ejercicios 1 | Ejercicio 2

Curso de Econometría de corte Transversal en R
Clase 2.1. El análisis de regresión 
Clase 2.10. Heterocedasticidad y modelos robustos
Clase 2.11. Modelos de probabilidad (Logit y Probit)
Clase 2.12. Modelos multinomiales y sesgo de selección
Clase 2.13. Regresión por quintiles

Parte III. Econometría de series temporales en R
Clase 3.2. Modelos de volatilidad condicional (GARCH) y riesgo financiero

Creando variables por grupos en dplyr (group_by + mutate)

  Simulemos una base de hogares, donde se identifica el hogar, el sexo (1 mujer) y provincia y edad para cada miembro.   # Definir la lista ...