Diferencias en Diferencias

Maestría en Economía Uninorte

Author

Carlos Andrés Yanes

Published

August 24, 2024

Introducción

Vamos a trabajar con la base de datos:

  • Fuente Original Shinsuke Tanaka (2014)

  • Donde intentaba responder: Does Abolishing User Fees Lead to Improved Health Status? Evidence from Post-Apartheid South Africa”.

  • Se encuentra en American Economics Journal: Economic Policy, 6(3), pages 282-312

  • Los datos los puede encontrar en datos

Preambulo

El método de Diferencias en Diferencias (DID) es una técnica econométrica ampliamente utilizada para evaluar el impacto causal de políticas públicas, programas o intervenciones que se implementan en ciertas unidades (como individuos, empresas, regiones, etc.) pero no en otras. Este método se basa en comparar la evolución de un resultado de interés entre un grupo tratado (que recibe la intervención) y un grupo de control (que no la recibe) antes y después del tratamiento.

El enfoque DID asume que, en ausencia del tratamiento, la diferencia en las tendencias del resultado entre los grupos tratado y de control habría permanecido constante. De esta manera, cualquier desviación de esta tendencia paralela se atribuye al efecto causal del tratamiento.

En economía, el método de Diferencias en Diferencias es particularmente útil cuando los experimentos aleatorios no son factibles o éticos, y permite controlar por factores no observados que podrían influir en los resultados, siempre que estos factores sean constantes en el tiempo. Esta técnica ha sido utilizada en estudios que analizan desde el impacto de cambios en las políticas fiscales y laborales hasta los efectos de programas educativos y de salud, convirtiéndose en una herramienta clave para el análisis de políticas públicas.

Preparación

Antes de implementar el código de estimación, es crucial preparar la base de datos asegurando que las variables relevantes estén correctamente definidas y limpiadas. Esto implica verificar que las variables de tratamiento y resultado estén codificadas adecuadamente, que las covariables no presenten valores faltantes, y que los pesos muestrales, si son aplicables, estén correctamente asignados. Además, es esencial que los datos estén en el formato adecuado para ser utilizados en los modelos estadísticos, lo que incluye transformar variables según sea necesario y asegurarse de que todas las observaciones relevantes sean incluidas en el análisis.

Limpiar el entorno de R

rm(list = ls())

Estipulación de la base

Vamos a cargar los paquetes a utilizar en esta ocasión

library(pacman)
p_load(dplyr, lmtest, sandwich, plm, fixest, haven)

El paso a seguir es cargar la base de datos (formato stata) a R.

datos <- read_dta("health.dta")

Resumen estadistico

En las posibilidades siempre es bueno mirar que contiene y dicen nuestros datos, para ello no queda demas ir mirando primero que etiquetas traen consigo

glimpse(datos) 
Rows: 1,071
Columns: 26
$ hhid93      <dbl> 590020, 590100, 590100, 590110, 590070, 590090, 590090, 59…
$ pcode       <dbl> 41, 41, 9, 40, 5, 44, 45, 43, 40, 9, 9, 4, 6, 5, 3, 42, 41…
$ idcommunity <dbl> 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 70, 70, 70…
$ year        <dbl> 98, 98, 93, 98, 93, 98, 98, 98, 98, 93, 93, 93, 93, 93, 93…
$ hightreat   <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0…
$ post        <dbl> 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1…
$ postXhigh   <dbl> 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ waz         <dbl> 0.73, 0.64, -0.17, 0.59, -0.62, 3.48, 1.67, 1.08, 0.30, 2.…
$ whz         <dbl> 1.18, 2.72, -0.44, 4.62, 0.74, 6.02, 4.59, 0.93, 1.37, 2.1…
$ haz         <dbl> -0.22, -2.60, -0.04, -5.68, -2.06, -1.36, -2.76, 0.98, -1.…
$ fedu        <dbl> 0, 0, 0, 0, 0, 0, 0, 9, 10, 8, 10, 0, 0, 2, 0, 5, 0, 0, 0,…
$ medu        <dbl> 7, 0, 10, 7, 6, 10, 8, 0, 0, 6, 0, 6, 2, 4, 4, 0, 7, 2, 0,…
$ hhsizep     <dbl> 6, 7, 9, 6, 5, 16, 16, 16, 10, 9, 9, 5, 6, 5, 3, 4, 7, 4, …
$ lntotminc   <dbl> 8.558975, 7.699238, 7.939818, 7.711250, 4.941642, 8.782922…
$ immuniz     <dbl> 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1…
$ nonclinic   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ male        <dbl> 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1…
$ age         <dbl> 3.1068494, 3.0191782, 0.0000000, 3.0876713, 1.5000000, 1.0…
$ age93_0     <dbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0…
$ age93_1     <dbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ age93_2     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ age93_3     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0…
$ age98_0     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ age98_1     <dbl> 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ age98_2     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1…
$ age98_3     <dbl> 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0…

Etiqueta de variables

Las etiquedas de las variables a utilizar son:

Variable Value Variable label
hhid93 Household identification No
pcode 93: Person Code
idcommunity Identifier for community
year = 93 or 98
hightreat = 1 if community has clinic in 1993
post = 1 if year==98 and =0 if year==93
postXhigh post times hightreat
waz Weight for age z Score
whz Weight for height z Score
haz Height for age z Score
fedu Father’s education
medu Mother’s education
hhsizep Household size (all members)
lntotminc Log of monthly household income
immuniz yes_no Number of immunization campaigns since 1993
nonclinic Number of health facilities other than clinic in 1993
male = 1 if male
age Precise age in fractions of year
age93_0 =1 if age 0 in 1993
age93_1 =1 if age 1 in 1993
age93_2 =1 if age 2 in 1993
age93_3 =1 if age 3 in 1993
age98_0 =1 if age 0 in 1998
age98_1 =1 if age 1 in 1998
age98_2 =1 if age 2 in 1998
age98_3 =1 if age 3 in 1998
Importante

Las etiquetas deben ser definidas por los creadores de la base de datos. Ayudan sobre todo como un diccionario cuando los nombres de columnas son extraños

Luego de esto entonce si hacemos una descripción muy rapida de las estadísticas mas importantes de los datos. Siempre le piden a los investigadores establecer una tabla o descriptores para ello

summary(datos) 
     hhid93            pcode        idcommunity         year      
 Min.   : 590010   Min.   : 2.00   Min.   : 59.0   Min.   :93.00  
 1st Qu.:2050180   1st Qu.: 9.00   1st Qu.:205.0   1st Qu.:93.00  
 Median :2230180   Median :16.00   Median :223.0   Median :93.00  
 Mean   :2066044   Mean   :24.51   Mean   :206.6   Mean   :95.33  
 3rd Qu.:2340490   3rd Qu.:41.00   3rd Qu.:234.0   3rd Qu.:98.00  
 Max.   :2440170   Max.   :57.00   Max.   :244.0   Max.   :98.00  
   hightreat           post          postXhigh           waz         
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :-5.8800  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:-1.2600  
 Median :0.0000   Median :0.0000   Median :0.0000   Median :-0.2400  
 Mean   :0.4276   Mean   :0.4669   Mean   :0.1979   Mean   :-0.2059  
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.: 0.7600  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   : 4.9400  
      whz              haz               fedu             medu       
 Min.   :-9.890   Min.   :-9.9800   Min.   : 0.000   Min.   : 0.000  
 1st Qu.:-0.480   1st Qu.:-2.0650   1st Qu.: 0.000   1st Qu.: 1.000  
 Median : 0.480   Median :-0.9900   Median : 0.000   Median : 5.000  
 Mean   : 0.639   Mean   :-0.9498   Mean   : 1.758   Mean   : 4.728  
 3rd Qu.: 1.385   3rd Qu.: 0.0750   3rd Qu.: 3.000   3rd Qu.: 8.000  
 Max.   : 9.990   Max.   : 9.9900   Max.   :12.000   Max.   :14.000  
    hhsizep        lntotminc        immuniz         nonclinic     
 Min.   : 2.00   Min.   :3.549   Min.   :0.0000   Min.   :0.0000  
 1st Qu.: 8.00   1st Qu.:6.179   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :10.00   Median :6.854   Median :0.0000   Median :0.0000  
 Mean   :11.17   Mean   :6.829   Mean   :0.4911   Mean   :0.1204  
 3rd Qu.:14.00   3rd Qu.:7.470   3rd Qu.:1.0000   3rd Qu.:0.0000  
 Max.   :34.00   Max.   :9.846   Max.   :2.0000   Max.   :3.0000  
      male             age           age93_0          age93_1      
 Min.   :0.0000   Min.   :0.000   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:1.232   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :1.0000   Median :2.167   Median :0.0000   Median :0.0000  
 Mean   :0.5145   Mean   :2.146   Mean   :0.1083   Mean   :0.1382  
 3rd Qu.:1.0000   3rd Qu.:3.083   3rd Qu.:0.0000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :3.992   Max.   :1.0000   Max.   :1.0000  
    age93_2          age93_3          age98_0           age98_1      
 Min.   :0.0000   Min.   :0.0000   Min.   :0.00000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.:0.0000  
 Median :0.0000   Median :0.0000   Median :0.00000   Median :0.0000  
 Mean   :0.1401   Mean   :0.1466   Mean   :0.06162   Mean   :0.1307  
 3rd Qu.:0.0000   3rd Qu.:0.0000   3rd Qu.:0.00000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.00000   Max.   :1.0000  
    age98_2          age98_3      
 Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:0.0000  
 Median :0.0000   Median :0.0000  
 Mean   :0.1447   Mean   :0.1298  
 3rd Qu.:0.0000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :1.0000  

Selección clave

Vamos a intentar solo mirar un grupo de variables, no todas las que tenemos o buscamos tener en nuestro cuestionario se hacen necesarias

Subgrupo

Entonces hacemos una selección mas acorde

datos %>%
  select(idcommunity, year, hightreat, post, postXhigh, waz, whz, 
         fedu, medu, hhsizep, lntotminc, immuniz, nonclinic, age) %>%
  glimpse()
Rows: 1,071
Columns: 14
$ idcommunity <dbl> 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 70, 70, 70…
$ year        <dbl> 98, 98, 93, 98, 93, 98, 98, 98, 98, 93, 93, 93, 93, 93, 93…
$ hightreat   <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0…
$ post        <dbl> 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1…
$ postXhigh   <dbl> 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ waz         <dbl> 0.73, 0.64, -0.17, 0.59, -0.62, 3.48, 1.67, 1.08, 0.30, 2.…
$ whz         <dbl> 1.18, 2.72, -0.44, 4.62, 0.74, 6.02, 4.59, 0.93, 1.37, 2.1…
$ fedu        <dbl> 0, 0, 0, 0, 0, 0, 0, 9, 10, 8, 10, 0, 0, 2, 0, 5, 0, 0, 0,…
$ medu        <dbl> 7, 0, 10, 7, 6, 10, 8, 0, 0, 6, 0, 6, 2, 4, 4, 0, 7, 2, 0,…
$ hhsizep     <dbl> 6, 7, 9, 6, 5, 16, 16, 16, 10, 9, 9, 5, 6, 5, 3, 4, 7, 4, …
$ lntotminc   <dbl> 8.558975, 7.699238, 7.939818, 7.711250, 4.941642, 8.782922…
$ immuniz     <dbl> 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1…
$ nonclinic   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
$ age         <dbl> 3.1068494, 3.0191782, 0.0000000, 3.0876713, 1.5000000, 1.0…

Estadisticas de ellas

datos %>%
  select(idcommunity, year, hightreat, post, postXhigh, waz, whz, 
         fedu, medu, hhsizep, lntotminc, immuniz, nonclinic, age) %>%
  summary()
  idcommunity         year         hightreat           post       
 Min.   : 59.0   Min.   :93.00   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:205.0   1st Qu.:93.00   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :223.0   Median :93.00   Median :0.0000   Median :0.0000  
 Mean   :206.6   Mean   :95.33   Mean   :0.4276   Mean   :0.4669  
 3rd Qu.:234.0   3rd Qu.:98.00   3rd Qu.:1.0000   3rd Qu.:1.0000  
 Max.   :244.0   Max.   :98.00   Max.   :1.0000   Max.   :1.0000  
   postXhigh           waz               whz              fedu       
 Min.   :0.0000   Min.   :-5.8800   Min.   :-9.890   Min.   : 0.000  
 1st Qu.:0.0000   1st Qu.:-1.2600   1st Qu.:-0.480   1st Qu.: 0.000  
 Median :0.0000   Median :-0.2400   Median : 0.480   Median : 0.000  
 Mean   :0.1979   Mean   :-0.2059   Mean   : 0.639   Mean   : 1.758  
 3rd Qu.:0.0000   3rd Qu.: 0.7600   3rd Qu.: 1.385   3rd Qu.: 3.000  
 Max.   :1.0000   Max.   : 4.9400   Max.   : 9.990   Max.   :12.000  
      medu           hhsizep        lntotminc        immuniz      
 Min.   : 0.000   Min.   : 2.00   Min.   :3.549   Min.   :0.0000  
 1st Qu.: 1.000   1st Qu.: 8.00   1st Qu.:6.179   1st Qu.:0.0000  
 Median : 5.000   Median :10.00   Median :6.854   Median :0.0000  
 Mean   : 4.728   Mean   :11.17   Mean   :6.829   Mean   :0.4911  
 3rd Qu.: 8.000   3rd Qu.:14.00   3rd Qu.:7.470   3rd Qu.:1.0000  
 Max.   :14.000   Max.   :34.00   Max.   :9.846   Max.   :2.0000  
   nonclinic           age       
 Min.   :0.0000   Min.   :0.000  
 1st Qu.:0.0000   1st Qu.:1.232  
 Median :0.0000   Median :2.167  
 Mean   :0.1204   Mean   :2.146  
 3rd Qu.:0.0000   3rd Qu.:3.083  
 Max.   :3.0000   Max.   :3.992  

Mas integrado

datos %>%
  select(waz, hightreat, post, postXhigh, whz) %>%
  summary()
      waz            hightreat           post          postXhigh     
 Min.   :-5.8800   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:-1.2600   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :-0.2400   Median :0.0000   Median :0.0000   Median :0.0000  
 Mean   :-0.2059   Mean   :0.4276   Mean   :0.4669   Mean   :0.1979  
 3rd Qu.: 0.7600   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.0000  
 Max.   : 4.9400   Max.   :1.0000   Max.   :1.0000   Max.   :1.0000  
      whz        
 Min.   :-9.890  
 1st Qu.:-0.480  
 Median : 0.480  
 Mean   : 0.639  
 3rd Qu.: 1.385  
 Max.   : 9.990  

Diferencias en diferencias

highpre <- mean(datos$waz[datos$hightreat == 1 & datos$post == 0], na.rm = TRUE)
highpost <- mean(datos$waz[datos$hightreat == 1 & datos$post == 1], na.rm = TRUE)
lowpre <- mean(datos$waz[datos$hightreat == 0 & datos$post == 0], na.rm = TRUE)
lowpost <- mean(datos$waz[datos$hightreat == 0 & datos$post == 1], na.rm = TRUE)

highdiff <- highpost - highpre
lowdiff <- lowpost - lowpre
diffindiff <- highdiff - lowdiff

cat("highpre  =", highpre, "\n")
highpre  = -0.5452439 
cat("highpost =", highpost, "\n")
highpost = 0.3214623 
cat("highdiff =", highdiff, "\n")
highdiff = 0.8667062 
cat("lowpre   =", lowpre, "\n")
lowpre   = -0.4141846 
cat("lowpost  =", lowpost, "\n")
lowpost  = -0.06909722 
cat("lowdiff  =", lowdiff, "\n")
lowdiff  = 0.3450874 
cat("diffindiff =", diffindiff, "\n")
diffindiff = 0.5216188 

Modelo básico

model1 <- lm(waz ~ postXhigh + post + hightreat, data = datos)
coeftest(model1, vcov = vcovCL, cluster = ~idcommunity)

t test of coefficients:

            Estimate Std. Error t value  Pr(>|t|)    
(Intercept) -0.41418    0.11514 -3.5972 0.0003365 ***
postXhigh    0.52162    0.23530  2.2168 0.0268447 *  
post         0.34509    0.13710  2.5170 0.0119810 *  
hightreat   -0.13106    0.19681 -0.6659 0.5056042    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Con errores robustos teniendo en cuenta (sandwich)

Vamos a corregir cualquier problema que tengamos de heterocedasticidad

coeftest(model1, vcov = vcovHC)

t test of coefficients:

             Estimate Std. Error t value  Pr(>|t|)    
(Intercept) -0.414185   0.089296 -4.6383 3.947e-06 ***
postXhigh    0.521619   0.194367  2.6837  0.007394 ** 
post         0.345087   0.119508  2.8876  0.003961 ** 
hightreat   -0.131059   0.141503 -0.9262  0.354553    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Panel de efectos fijos para los estimadores

library(plm)
data <- pdata.frame(datos, index = "idcommunity")
model2 <- plm(waz ~ postXhigh + fedu + medu + hhsizep + lntotminc + 
                immuniz + nonclinic + age, 
              data = data, model = "within")
coeftest(model2, vcov = vcovHC)

t test of coefficients:

            Estimate Std. Error t value  Pr(>|t|)    
postXhigh  0.5928787  0.2617621  2.2650  0.023727 *  
fedu       0.0162111  0.0192902  0.8404  0.400892    
medu      -0.0132234  0.0161086 -0.8209  0.411902    
hhsizep   -0.0132916  0.0097736 -1.3600  0.174149    
lntotminc  0.1639018  0.0575006  2.8504  0.004455 ** 
immuniz    0.3736352  0.1337079  2.7944  0.005298 ** 
nonclinic -0.2870186  0.2149046 -1.3356  0.181993    
age       -0.2990284  0.0503068 -5.9441 3.825e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Panel clusterizando

model3 <- lm(waz ~ postXhigh + post + hightreat + factor(idcommunity) +
                fedu + medu + hhsizep + lntotminc + immuniz + nonclinic, 
             data = data)
coeftest(model3, vcov = vcovCL, cluster = ~idcommunity)

t test of coefficients:

                         Estimate Std. Error  t value  Pr(>|t|)    
(Intercept)            -1.1556821  0.3758822  -3.0746 0.0021646 ** 
postXhigh               0.6428807  0.2710993   2.3714 0.0179085 *  
post                   -0.6807024  0.3487963  -1.9516 0.0512650 .  
hightreat              -0.2911247  0.2360665  -1.2332 0.2177766    
factor(idcommunity)70   0.2874699  0.1059799   2.7125 0.0067915 ** 
factor(idcommunity)71   0.3978011  0.2405300   1.6539 0.0984686 .  
factor(idcommunity)74  -3.1731808  0.1166530 -27.2019 < 2.2e-16 ***
factor(idcommunity)77   2.5975713  0.3122377   8.3192 2.848e-16 ***
factor(idcommunity)78   0.2160735  0.1957466   1.1038 0.2699246    
factor(idcommunity)79  -0.2080409  0.1632130  -1.2747 0.2027236    
factor(idcommunity)80   0.0015226  0.1824792   0.0083 0.9933440    
factor(idcommunity)193 -0.7950822  0.1792359  -4.4360 1.017e-05 ***
factor(idcommunity)195  0.0453894  0.1675401   0.2709 0.7865105    
factor(idcommunity)196 -0.9717183  0.0706266 -13.7585 < 2.2e-16 ***
factor(idcommunity)197 -0.8237864  0.0896107  -9.1929 < 2.2e-16 ***
factor(idcommunity)198  0.8921643  0.1704257   5.2349 2.008e-07 ***
factor(idcommunity)200 -0.6562065  0.0982740  -6.6773 4.012e-11 ***
factor(idcommunity)201 -0.3800693  0.1669547  -2.2765 0.0230260 *  
factor(idcommunity)202  0.9205801  0.0688437  13.3720 < 2.2e-16 ***
factor(idcommunity)203 -0.3039892  0.1881209  -1.6159 0.1064233    
factor(idcommunity)204  1.0905652  0.1989837   5.4807 5.352e-08 ***
factor(idcommunity)205 -0.3395986  0.0450451  -7.5391 1.052e-13 ***
factor(idcommunity)207 -0.5735619  0.0972512  -5.8977 5.024e-09 ***
factor(idcommunity)208 -0.5948834  0.0680983  -8.7357 < 2.2e-16 ***
factor(idcommunity)209 -0.7984668  0.1692709  -4.7171 2.729e-06 ***
factor(idcommunity)211 -0.3430600  0.0527260  -6.5065 1.209e-10 ***
factor(idcommunity)212  0.5319096  0.1698343   3.1319 0.0017866 ** 
factor(idcommunity)213  0.6043919  0.1773504   3.4079 0.0006805 ***
factor(idcommunity)214 -1.1321145  0.1796709  -6.3010 4.409e-10 ***
factor(idcommunity)215 -0.9287727  0.1992899  -4.6604 3.578e-06 ***
factor(idcommunity)216 -0.3785829  0.0481564  -7.8615 9.705e-15 ***
factor(idcommunity)219 -0.4933115  0.0428510 -11.5123 < 2.2e-16 ***
factor(idcommunity)220 -0.8763232  0.0644265 -13.6019 < 2.2e-16 ***
factor(idcommunity)221  0.3858579  0.0626663   6.1573 1.066e-09 ***
factor(idcommunity)222 -0.0569208  0.0597721  -0.9523 0.3411746    
factor(idcommunity)223  0.3442531  0.0522848   6.5842 7.344e-11 ***
factor(idcommunity)224  0.2853282  0.0671984   4.2461 2.376e-05 ***
factor(idcommunity)225  0.9483909  0.1937935   4.8938 1.151e-06 ***
factor(idcommunity)226  0.3390337  0.0257013  13.1913 < 2.2e-16 ***
factor(idcommunity)227 -0.2704414  0.0310442  -8.7115 < 2.2e-16 ***
factor(idcommunity)228  0.3580386  0.0666659   5.3706 9.739e-08 ***
factor(idcommunity)229 -0.1044712  0.0258367  -4.0435 5.666e-05 ***
factor(idcommunity)230  0.5981681  0.0507661  11.7828 < 2.2e-16 ***
factor(idcommunity)231  0.1134669  0.1770680   0.6408 0.5217917    
factor(idcommunity)232 -0.4382279  0.0495389  -8.8461 < 2.2e-16 ***
factor(idcommunity)233 -0.0842228  0.1881413  -0.4477 0.6544966    
factor(idcommunity)234  0.0044622  0.0955814   0.0467 0.9627734    
factor(idcommunity)235 -0.6604078  0.1664768  -3.9670 7.794e-05 ***
factor(idcommunity)236  0.0432934  0.0454000   0.9536 0.3405147    
factor(idcommunity)237 -0.2455141  0.2527029  -0.9716 0.3315061    
factor(idcommunity)238  0.5534780  0.1704869   3.2465 0.0012070 ** 
factor(idcommunity)239 -0.0976976  0.0579561  -1.6857 0.0921593 .  
factor(idcommunity)240  0.2763189  0.0323151   8.5508 < 2.2e-16 ***
factor(idcommunity)241 -0.1351925  0.2011154  -0.6722 0.5016015    
factor(idcommunity)243  1.1656190  0.2680290   4.3489 1.507e-05 ***
factor(idcommunity)244 -0.3208512  0.2078204  -1.5439 0.1229294    
fedu                    0.0106712  0.0202978   0.5257 0.5991891    
medu                   -0.0048958  0.0161178  -0.3037 0.7613812    
hhsizep                -0.0104237  0.0104451  -0.9980 0.3185423    
lntotminc               0.1489382  0.0571007   2.6083 0.0092326 ** 
immuniz                 0.9473233  0.2799104   3.3844 0.0007408 ***
nonclinic              -0.3344670  0.1738546  -1.9238 0.0546568 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Mismo resultado pero extrayendo post y hightreat

model4 <- lm(waz ~ postXhigh + factor(idcommunity) +
                fedu + medu + hhsizep + lntotminc + immuniz + nonclinic, 
             data = data)
coeftest(model4, vcov = vcovCL, cluster = ~idcommunity)

t test of coefficients:

                         Estimate Std. Error  t value  Pr(>|t|)    
(Intercept)            -1.0645726  0.4408236  -2.4150 0.0159136 *  
postXhigh               0.6019710  0.2680160   2.2460 0.0249178 *  
factor(idcommunity)70   0.1933649  0.1737214   1.1131 0.2659412    
factor(idcommunity)71   0.2259103  0.2763652   0.8174 0.4138732    
factor(idcommunity)74  -3.2471189  0.1573106 -20.6414 < 2.2e-16 ***
factor(idcommunity)77   2.2644779  0.2476240   9.1448 < 2.2e-16 ***
factor(idcommunity)78  -0.1563362  0.1573615  -0.9935 0.3207120    
factor(idcommunity)79   0.0089766  0.1663643   0.0540 0.9569797    
factor(idcommunity)80  -0.3651805  0.1226930  -2.9764 0.0029863 ** 
factor(idcommunity)193 -1.1475436  0.1105372 -10.3815 < 2.2e-16 ***
factor(idcommunity)195 -0.3069368  0.1019059  -3.0120 0.0026603 ** 
factor(idcommunity)196 -1.0481012  0.1710558  -6.1272 1.280e-09 ***
factor(idcommunity)197 -0.9015562  0.1645134  -5.4801 5.367e-08 ***
factor(idcommunity)198  0.5366655  0.0902965   5.9434 3.841e-09 ***
factor(idcommunity)200 -0.7424962  0.1357071  -5.4713 5.633e-08 ***
factor(idcommunity)201 -0.7420249  0.1024836  -7.2404 8.852e-13 ***
factor(idcommunity)202  0.8699238  0.0732786  11.8715 < 2.2e-16 ***
factor(idcommunity)203 -0.6664475  0.1079494  -6.1737 9.649e-10 ***
factor(idcommunity)204  0.7423737  0.1585027   4.6837 3.203e-06 ***
factor(idcommunity)205 -0.4176355  0.1697906  -2.4597 0.0140716 *  
factor(idcommunity)207 -0.6385605  0.1506371  -4.2391 2.450e-05 ***
factor(idcommunity)208 -0.6710044  0.1744953  -3.8454 0.0001279 ***
factor(idcommunity)209 -1.1580961  0.1091670 -10.6085 < 2.2e-16 ***
factor(idcommunity)211 -0.4320618  0.1428781  -3.0240 0.0025577 ** 
factor(idcommunity)212  0.1757160  0.1164421   1.5090 0.1316006    
factor(idcommunity)213  0.2483837  0.1085215   2.2888 0.0222969 *  
factor(idcommunity)214 -1.4852942  0.0928221 -16.0015 < 2.2e-16 ***
factor(idcommunity)215 -1.2820399  0.1331408  -9.6292 < 2.2e-16 ***
factor(idcommunity)216 -0.4708782  0.1550481  -3.0370 0.0024509 ** 
factor(idcommunity)219 -0.5885988  0.1439383  -4.0892 4.672e-05 ***
factor(idcommunity)220 -0.9704521  0.1665053  -5.8284 7.524e-09 ***
factor(idcommunity)221  0.2886973  0.1467395   1.9674 0.0494089 *  
factor(idcommunity)222 -0.1326631  0.1466616  -0.9046 0.3659183    
factor(idcommunity)223  0.2565938  0.1588960   1.6149 0.1066547    
factor(idcommunity)224  0.1959028  0.1369018   1.4310 0.1527472    
factor(idcommunity)225  0.5698398  0.1641492   3.4715 0.0005395 ***
factor(idcommunity)226  0.2609457  0.1454794   1.7937 0.0731610 .  
factor(idcommunity)227 -0.3583745  0.1675050  -2.1395 0.0326356 *  
factor(idcommunity)228  0.2722016  0.1654947   1.6448 0.1003274    
factor(idcommunity)229 -0.1944300  0.1622280  -1.1985 0.2310041    
factor(idcommunity)230  0.5167931  0.1595965   3.2381 0.0012424 ** 
factor(idcommunity)231 -0.2416760  0.1175527  -2.0559 0.0400493 *  
factor(idcommunity)232 -0.5252430  0.1442365  -3.6415 0.0002848 ***
factor(idcommunity)233 -0.4682290  0.1626382  -2.8790 0.0040740 ** 
factor(idcommunity)234 -0.1040654  0.2243891  -0.4638 0.6429109    
factor(idcommunity)235 -1.0232785  0.0880237 -11.6250 < 2.2e-16 ***
factor(idcommunity)236 -0.0436078  0.1449025  -0.3009 0.7635181    
factor(idcommunity)237 -0.6546086  0.2663169  -2.4580 0.0141381 *  
factor(idcommunity)238  0.1986145  0.1065013   1.8649 0.0624849 .  
factor(idcommunity)239 -0.1836079  0.1550980  -1.1838 0.2367634    
factor(idcommunity)240  0.2001161  0.1575129   1.2705 0.2042082    
factor(idcommunity)241 -0.5025294  0.1541117  -3.2608 0.0011481 ** 
factor(idcommunity)242 -0.0814356  0.1562613  -0.5212 0.6023762    
factor(idcommunity)243  0.7516685  0.2785481   2.6985 0.0070810 ** 
factor(idcommunity)244 -0.6799089  0.1711285  -3.9731 7.599e-05 ***
fedu                    0.0106763  0.0202474   0.5273 0.5981070    
medu                   -0.0049970  0.0160621  -0.3111 0.7557853    
hhsizep                -0.0105404  0.0105671  -0.9975 0.3187747    
lntotminc               0.1436456  0.0584701   2.4567 0.0141878 *  
immuniz                 0.3358176  0.1382452   2.4291 0.0153080 *  
nonclinic              -0.2894748  0.2114265  -1.3692 0.1712566    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Agradecimientos

Mucho de este trabajo se debe a los articulos, recursos (free commons) y material del Profesor Colin Cameron, autor del libro: Microeconometrics Using Stata.

Carlos Yanes Guerra | Departamento de Economía | Universidad del Norte