2023-11-01
Familiarizarnos con las estructuras de datos cross-section y panel.
Diferenciar entre estructura de datos y fuentes de variación.
Familiarizarnos las posibles fuentes de variación en un panel (cross section, time-series, panel).
Hacer estimaciones con efectos fijos de tres maneras diferentes.
Panel data.
Variabilidad Within (mismo i, entre t).
Variabilidad Between (entre i, mismo t).
fixest::feols .
modelsummary::msummary .
broom:tidy
Usaremos las siguientes librerías:
El panel data me permite observar a los sujetos de estudio en varios períodos. ¿Mas data, mas endogeneidad? No necesariamente. Los efectos fijos te permiten remover la variabilidad fija en una dimensión.
Vamos a usar data de salud e ingresos por país/año de Gapminder.
# A tibble: 12 × 6
country continent year lifeExp pop gdpPercap
<fct> <fct> <int> <dbl> <int> <dbl>
1 Argentina Americas 1997 73.3 36203463 10967.
2 Argentina Americas 2002 74.3 38331121 8798.
3 Argentina Americas 2007 75.3 40301927 12779.
4 Ireland Europe 1997 76.1 3667233 24522.
5 Ireland Europe 2002 77.8 3879155 34077.
6 Ireland Europe 2007 78.9 4109086 40676.
7 Paraguay Americas 1997 69.4 5154123 4247.
8 Paraguay Americas 2002 70.8 5884491 3784.
9 Paraguay Americas 2007 71.8 6667147 4173.
10 Syria Asia 1997 71.5 15081016 4014.
11 Syria Asia 2002 73.1 17155814 4091.
12 Syria Asia 2007 74.1 19314747 4185.
# Tengamos una data separada para Argentina
Argentina <- gapminder %>%
filter(country == "Argentina")
# Veamos la correlación entre
# ingreso y expectativa de vida en 2007
p1<-gapminder %>% filter(year == 2007) %>%
ggplot(., aes(x = log(gdpPercap), y = lifeExp)) +
geom_point() + geom_smooth(method = 'lm') +
geom_point(data = Argentina[Argentina$year == 2007,],
color = "red")
Tenemos \(EV_{c,t}=\beta_0 + \beta_1GDPpc_{c,t}+\mu_{c,t}\)
Hay sesgo si \(Cor(μ_{c,t}GDPpc_{c,t}) \neq 0\)
Razones detrás de sesgo:
Conflictos internos: Afecta a cada pais en distintos periodos.
Geografía: Solo varia entre paises.
Pandemias: Afecta a todos al mismo tiempo
Supongamos que estos 3 no-observables son las únicas causantes del sesgo (partes de \(\mu_{ct}\) correlacionadas con \(X_{ct}\).)
Sabemos que hay no-observables fijos para alguna dimensión de la data.
Si controlamos por esa dimensión, controlamos por todos esos no-observables.
\[ E V_{c, t}=\beta_0+\beta_1 GDPpc_{c, t}+\underbrace{\sum_{i=1}^C \gamma_i * 1[c=i]}_{\text {EF por países }}+\underbrace{\sum_{t=1}^Y \phi_t * 1[y=t]}_{\text {EF por años }}+\epsilon_{c, t} \]
Recuerda que en \(\mu_{ct}\) teniamos Crisis, Geografia, y Pandemias.
¿Que parte del \(\mu_{ct}\) remueven los EF por país? ¿y los EF por año?
¿\(\beta_1\) captura el efecto causal bajo nuestros supuestos?
Llamado pooled MCO o MCO agrupado.
\[ E V_{c, t}=\beta_0+\beta_1 GPDpc_{c, t}+\epsilon_{c, t} \]
Permite controlar por Geografía.
\[ E V_{c, t}=\beta_0+\beta_1 GPDpc_{c, t}+ \sum_{i=1}^C \gamma_i * 1[c=i]+\epsilon_{c, t} \]
Permite controlar por Pandemias.
\[ E V_{c, t}=\beta_0+\beta_1 GPDpc_{c, t}+ \sum_{t=1}^Y \phi_t * 1[y=t]+\epsilon_{c, t} \]
Permite controlar por Pandemias y Geografía.
\[ E V_{c, t}=\beta_0+\beta_1 GPDpc_{c, t}+ \sum_{i=1}^C \gamma_i * 1[c=i]+\sum_{t=1}^Y \phi_t * 1[y=t]+\epsilon_{c, t} \]
# Minimos Cuadrados Agrupados
m1 <- feols(lifeExp ~ log_gdppc,
data = gapminder)
# Efectos fijos por pais
m2 <- feols(lifeExp ~ log_gdppc | country,
data = gapminder)
# Efectos fijos por año
m3 <- feols(lifeExp ~ log_gdppc | year,
data = gapminder)
# Ambos efectos fijos
m4 <- feols(lifeExp ~ log_gdppc | country + year,
data = gapminder)
msummary(list('MCOAg' = m1, 'FE pais' = m2,
'FE año' = m3, 'FE ambos' = m4),
data = gapminder, stars = TRUE,
gof_omit = 'AIC|BIC|F|Lik|Adj|Pseudo')| MCOAg | FE pais | FE año | FE ambos | |
|---|---|---|---|---|
| (Intercept) | −9.101*** | |||
| (1.228) | ||||
| log_gdppc | 8.405*** | 9.769*** | 7.768*** | 1.450* |
| (0.149) | (0.702) | (0.142) | (0.679) | |
| Num.Obs. | 1704 | 1704 | 1704 | 1704 |
| R2 | 0.652 | 0.846 | 0.720 | 0.936 |
| R2 Within | 0.410 | 0.652 | 0.019 | |
| RMSE | 7.62 | 5.06 | 6.84 | 3.27 |
| Std.Errors | IID | by: country | by: year | by: country |
| + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001 |
En el término de error teníamos \(Geografia_{c}\) y \(Pandemias_{t}\), pero los removimos con los efectos fijos por pais y año.
Aún queda \(Crisis_{ct}\) afectando a cada país en períodos distintos:
Varía wihtin país: Cada país es afectado en períodos diferentes.
Varía wihtin año: Cada período tiene distintos países afectados.
\(Corr(\epsilon_{ct},GDPpc_{ct}) \neq 0\) en nuestro ejemplo simplificado: Aún hay sesgo!
La función feols nos está retornando las estimaciones within.
A continuación ilustramos en que consiste para el caso del modelo con efecto fíjo país:
El modelo para estimar efecto de \(GDP_{pc}\) sobre \(E V\) sería…
\[ E V_{c, y}=\beta_0+\beta_1 GDPpc_{c, t}+\beta_2 G_c+\epsilon_{c, t} \]
En ambos lados de la igualdad, calculemos la media por país entre años:
\[ \overline{E V_c}=\beta_0+\beta_1\left[\bar{GDPpc}_c\right]+\beta_2 \bar{G}_c+\bar{\epsilon}_c \]
Noten que \(\bar{G}_c=G_c\). Ahora restemos las medias de la ecuación inicial:
\[ E V_{c, y}-\overline{E V_c}=[\underbrace{\left.\beta_0-\beta_0\right]}_0+\beta_1\left[Y_{c, y}-\bar{Y}_c\right]+\beta_2[\underbrace{\left.G_c-G_c\right]}_0+\left[\epsilon_{c, y}-\bar{\epsilon}_c\right] \]
Filtrar variación entre países (antes de estimar \(\beta_1\). Usas variación “a lo interno” de los países (a lo largo de los años).
Restamos medias de GDPpc y EV a nivel de país:
# creo promedio de ambas variable y los resto a la variable original ('demeaning')
gapminder_demeaned <- gapminder %>%
group_by(country) %>%
mutate(# demeaning de X y Y:
log_gdppc_demean_c = log_gdppc - mean(log_gdppc),
lifeExp_demean_c = lifeExp - mean(lifeExp)) %>%
ungroup()
demeaned_1<-lm(lifeExp_demean_c~log_gdppc_demean_c,data=gapminder_demeaned)
tidy(demeaned_1)# A tibble: 2 × 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) -4.45e-17 0.123 -3.63e-16 1 e+ 0
2 log_gdppc_demean_c 9.77e+ 0 0.284 3.44e+ 1 2.51e-197
Ahora hagamoslo a nivel de año:
gapminder_demeaned <- gapminder_demeaned %>%
group_by(year) %>%
# Demeaning X y Y por año
mutate(log_gdppc_demean_y = log_gdppc - mean(log_gdppc),
lifeExp_demean_y = lifeExp - mean(lifeExp)) %>%
ungroup()
demeaned_2<-lm(lifeExp_demean_y~log_gdppc_demean_y,data=gapminder_demeaned)
tidy(demeaned_2)# A tibble: 2 × 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 4.31e-15 0.166 2.60e-14 1.00
2 log_gdppc_demean_y 7.77e+ 0 0.138 5.64e+ 1 0
Ahora restemos los promedios por país y año:
gapminder_demeaned <- gapminder_demeaned %>%
group_by(year) %>%
# demeaning por pais, luego demeaning por año
mutate(log_gdppc_demean_cy = log_gdppc_demean_c - mean(log_gdppc),
lifeExp_demean_cy = lifeExp_demean_c - mean(lifeExp)) %>%
ungroup()
demeaned_3<-lm(lifeExp_demean_cy~log_gdppc_demean_cy,data=gapminder_demeaned)
tidy(demeaned_3)# A tibble: 2 × 5
term estimate std.error statistic p.value
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) -47.6 2.08 -22.9 4.72e-101
2 log_gdppc_demean_cy 1.45 0.255 5.68 1.59e- 8
# Minimos Cuadrados Agrupados
lm1 <- lm(lifeExp ~ log_gdppc, data = gapminder)
# Efectos fijos por pais
demeaned_1<-lm(lifeExp_demean_c~log_gdppc_demean_c,data=gapminder_demeaned)
# Efectos fijos por año
demeaned_2<-lm(lifeExp_demean_y~log_gdppc_demean_y,data=gapminder_demeaned)
# Ambos efectos fijos
demeaned_3<-lm(lifeExp_demean_cy~log_gdppc_demean_cy,data=gapminder_demeaned)
msummary(list('MCOAg' = lm1, 'FE pais' = demeaned_1,
'FE año' = demeaned_2, 'FE ambos' = demeaned_3),
data = gapminder, stars = TRUE,
gof_omit = 'AIC|BIC|F|Lik|Adj|Pseudo')| MCOAg | FE pais | FE año | FE ambos | |
|---|---|---|---|---|
| (Intercept) | −9.101*** | 0.000 | 0.000 | −47.645*** |
| (1.228) | (0.123) | (0.166) | (2.085) | |
| log_gdppc | 8.405*** | |||
| (0.149) | ||||
| log_gdppc_demean_c | 9.769*** | |||
| (0.284) | ||||
| log_gdppc_demean_y | 7.768*** | |||
| (0.138) | ||||
| log_gdppc_demean_cy | 1.450*** | |||
| (0.255) | ||||
| Num.Obs. | 1704 | 1704 | 1704 | 1704 |
| R2 | 0.652 | 0.410 | 0.652 | 0.019 |
| RMSE | 7.62 | 5.06 | 6.84 | 3.27 |
| + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001 |
# Minimos Cuadrados Agrupados
lm1 <- lm(lifeExp ~ log_gdppc,
data = gapminder)
# Efectos fijos por pais
lm2 <- lm(lifeExp ~ log_gdppc + country,
data = gapminder)
# Efectos fijos por año
lm3 <- lm(lifeExp ~ log_gdppc + factor(year),
data = gapminder)
# Ambos efectos fijos
lm4 <- lm(lifeExp ~ log_gdppc + country + factor(year),
data = gapminder)
msummary(list('MCOAg' = lm1, 'FE pais' = lm2,
'FE año' = lm3, 'FE ambos' = lm4),
data = gapminder, stars = TRUE,
gof_omit = 'AIC|BIC|F|Lik|Adj|Pseudo')| MCOAg | FE pais | FE año | FE ambos | |
|---|---|---|---|---|
| (Intercept) | −9.101*** | −27.773*** | −9.800*** | 18.221*** |
| (1.228) | (2.501) | (1.195) | (1.927) | |
| log_gdppc | 8.405*** | 9.769*** | 7.768*** | 1.450*** |
| (0.149) | (0.297) | (0.138) | (0.268) | |
| countryAlbania | 17.783*** | 28.999*** | ||
| (2.195) | (1.444) | |||
| countryAlgeria | 5.241* | 19.131*** | ||
| (2.214) | (1.468) | |||
| countryAngola | −13.907*** | −1.719 | ||
| (2.202) | (1.452) | |||
| countryArgentina | 8.132*** | 28.101*** | ||
| (2.273) | (1.539) | |||
| countryAustralia | 6.400** | 32.615*** | ||
| (2.352) | (1.633) | |||
| countryAustria | 5.156* | 31.102*** | ||
| (2.348) | (1.628) | |||
| countryBahrain | −1.968 | 23.660*** | ||
| (2.344) | (1.623) | |||
| countryBangladesh | 12.401*** | 12.362*** | ||
| (2.158) | (1.398) | |||
| countryBelgium | 5.617* | 31.629*** | ||
| (2.349) | (1.629) | |||
| countryBenin | 7.745*** | 10.773*** | ||
| (2.161) | (1.402) | |||
| countryBolivia | 2.338 | 13.143*** | ||
| (2.193) | (1.441) | |||
| countryBosnia and Herzegovina | 17.353*** | 28.318*** | ||
| (2.194) | (1.442) | |||
| countryBotswana | 3.152 | 15.046*** | ||
| (2.200) | (1.450) | |||
| countryBrazil | 6.318** | 22.024*** | ||
| (2.230) | (1.487) | |||
| countryBulgaria | 12.670*** | 29.357*** | ||
| (2.239) | (1.498) | |||
| countryBurkina Faso | 6.858** | 7.162*** | ||
| (2.158) | (1.398) | |||
| countryBurundi | 12.646*** | 8.126*** | ||
| (2.164) | (1.406) | |||
| countryCambodia | 12.917*** | 10.794*** | ||
| (2.160) | (1.400) | |||
| countryCameroon | 3.062 | 9.524*** | ||
| (2.171) | (1.414) | |||
| countryCanada | 5.465* | 32.681*** | ||
| (2.366) | (1.650) | |||
| countryCentral African Republic | 4.758* | 6.146*** | ||
| (2.159) | (1.399) | |||
| countryChad | 5.737** | 8.767*** | ||
| (2.161) | (1.402) | |||
| countryChile | 9.915*** | 26.978*** | ||
| (2.242) | (1.502) | |||
| countryChina | 21.271*** | 23.856*** | ||
| (2.160) | (1.401) | |||
| countryColombia | 10.920*** | 24.119*** | ||
| (2.209) | (1.461) | |||
| countryComoros | 10.205*** | 14.206*** | ||
| (2.163) | (1.404) | |||
| countryCongo, Dem. Rep. | 10.025*** | 7.504*** | ||
| (2.160) | (1.401) | |||
| countryCongo, Rep. | 1.375 | 12.998*** | ||
| (2.198) | (1.447) | |||
| countryCosta Rica | 14.552*** | 30.009*** | ||
| (2.228) | (1.484) | |||
| countryCote d'Ivoire | 2.598 | 9.717*** | ||
| (2.173) | (1.417) | |||
| countryCroatia | 9.463*** | 29.147*** | ||
| (2.270) | (1.535) | |||
| countryCuba | 13.513*** | 30.590*** | ||
| (2.243) | (1.502) | |||
| countryCzech Republic | 6.555** | 29.954*** | ||
| (2.314) | (1.588) | |||
| countryDenmark | 5.345* | 32.209*** | ||
| (2.361) | (1.644) | |||
| countryDjibouti | −2.834 | 7.160*** | ||
| (2.188) | (1.435) | |||
| countryDominican Republic | 12.583*** | 22.370*** | ||
| (2.186) | (1.433) | |||
| countryEcuador | 6.361** | 22.521*** | ||
| (2.234) | (1.492) | |||
| countryEgypt | 6.577** | 16.955*** | ||
| (2.190) | (1.438) | |||
| countryEl Salvador | 5.535* | 19.688*** | ||
| (2.217) | (1.471) | |||
| countryEquatorial Guinea | 1.062 | 4.825*** | ||
| (2.163) | (1.404) | |||
| countryEritrea | 12.711*** | 9.142*** | ||
| (2.162) | (1.403) | |||
| countryEthiopia | 11.529*** | 7.670*** | ||
| (2.163) | (1.404) | |||
| countryFinland | 6.477** | 31.204*** | ||
| (2.331) | (1.609) | |||
| countryFrance | 6.910** | 32.424*** | ||
| (2.342) | (1.621) | |||
| countryGabon | −11.429*** | 10.006*** | ||
| (2.290) | (1.559) | |||
| countryGambia | 8.599*** | 7.171*** | ||
| (2.159) | (1.399) | |||
| countryGermany | 5.064* | 31.379*** | ||
| (2.353) | (1.635) | |||
| countryGhana | 12.292*** | 14.480*** | ||
| (2.160) | (1.400) | |||
| countryGreece | 9.832*** | 32.333*** | ||
| (2.303) | (1.574) | |||
| countryGuatemala | 3.754+ | 16.951*** | ||
| (2.209) | (1.461) | |||
| countryGuinea | 6.163** | 5.821*** | ||
| (2.158) | (1.398) | |||
| countryGuinea-Bissau | 4.059+ | 2.077 | ||
| (2.160) | (1.400) | |||
| countryHaiti | 5.867** | 11.674*** | ||
| (2.168) | (1.411) | |||
| countryHonduras | 8.154*** | 18.618*** | ||
| (2.190) | (1.438) | |||
| countryHong Kong, China | 9.664*** | 32.103*** | ||
| (2.302) | (1.574) | |||
| countryHungary | 6.901** | 28.202*** | ||
| (2.288) | (1.557) | |||
| countryIceland | 8.393*** | 34.485*** | ||
| (2.350) | (1.631) | |||
| countryIndia | 13.971*** | 15.432*** | ||
| (2.159) | (1.399) | |||
| countryIndonesia | 10.675*** | 15.939*** | ||
| (2.167) | (1.409) | |||
| countryIran | 0.256 | 18.056*** | ||
| (2.250) | (1.511) | |||
| countryIraq | −1.896 | 15.986*** | ||
| (2.251) | (1.512) | |||
| countryIreland | 8.536*** | 31.531*** | ||
| (2.309) | (1.582) | |||
| countryIsrael | 9.395*** | 32.194*** | ||
| (2.306) | (1.579) | |||
| countryItaly | 8.460*** | 32.368*** | ||
| (2.321) | (1.596) | |||
| countryJamaica | 11.500*** | 28.336*** | ||
| (2.240) | (1.500) | |||
| countryJapan | 9.201*** | 33.171*** | ||
| (2.321) | (1.597) | |||
| countryJordan | 9.472*** | 20.403*** | ||
| (2.193) | (1.442) | |||
| countryKenya | 11.335*** | 14.628*** | ||
| (2.162) | (1.402) | |||
| countryKorea, Dem. Rep. | 15.650*** | 24.573*** | ||
| (2.182) | (1.427) | |||
| countryKorea, Rep. | 9.455*** | 24.841*** | ||
| (2.227) | (1.483) | |||
| countryKuwait | −10.344*** | 25.242*** | ||
| (2.504) | (1.807) | |||
| countryLebanon | 7.039** | 25.219*** | ||
| (2.254) | (1.516) | |||
| countryLesotho | 13.976*** | 12.743*** | ||
| (2.159) | (1.399) | |||
| countryLiberia | 7.804*** | 5.414*** | ||
| (2.160) | (1.400) | |||
| countryLibya | −2.924 | 18.152*** | ||
| (2.285) | (1.554) | |||
| countryMadagascar | 5.475* | 9.577*** | ||
| (2.163) | (1.405) | |||
| countryMalawi | 9.266*** | 6.376*** | ||
| (2.161) | (1.401) | |||
| countryMalaysia | 10.309*** | 24.353*** | ||
| (2.216) | (1.469) | |||
| countryMali | 7.889*** | 6.225*** | ||
| (2.159) | (1.399) | |||
| countryMauritania | 9.907*** | 14.094*** | ||
| (2.164) | (1.405) | |||
| countryMauritius | 11.610*** | 25.120*** | ||
| (2.212) | (1.464) | |||
| countryMexico | 6.405** | 24.735*** | ||
| (2.255) | (1.518) | |||
| countryMongolia | 11.758*** | 17.424*** | ||
| (2.168) | (1.410) | |||
| countryMontenegro | 12.110*** | 29.747*** | ||
| (2.248) | (1.509) | |||
| countryMorocco | 9.573*** | 18.563*** | ||
| (2.182) | (1.428) | |||
| countryMozambique | 6.881** | 3.491* | ||
| (2.162) | (1.403) | |||
| countryMyanmar | 22.143*** | 16.778*** | ||
| (2.167) | (1.409) | |||
| countryNamibia | 1.226 | 13.818*** | ||
| (2.205) | (1.456) | |||
| countryNepal | 11.912*** | 11.567*** | ||
| (2.158) | (1.398) | |||
| countryNetherlands | 6.690** | 33.498*** | ||
| (2.360) | (1.643) | |||
| countryNew Zealand | 6.752** | 32.094*** | ||
| (2.340) | (1.619) | |||
| countryNicaragua | 7.015** | 18.814*** | ||
| (2.199) | (1.449) | |||
| countryNiger | 7.482*** | 7.139*** | ||
| (2.158) | (1.398) | |||
| countryNigeria | 0.236 | 5.232*** | ||
| (2.166) | (1.408) | |||
| countryNorway | 5.266* | 33.452*** | ||
| (2.381) | (1.666) | |||
| countryOman | −2.695 | 17.453*** | ||
| (2.275) | (1.541) | |||
| countryPakistan | 12.524*** | 16.679*** | ||
| (2.164) | (1.405) | |||
| countryPanama | 11.706*** | 27.560*** | ||
| (2.231) | (1.488) | |||
| countryParaguay | 16.062*** | 27.361*** | ||
| (2.196) | (1.445) | |||
| countryPeru | 2.468 | 18.574*** | ||
| (2.233) | (1.491) | |||
| countryPhilippines | 13.968*** | 22.075*** | ||
| (2.178) | (1.422) | |||
| countryPoland | 10.312*** | 29.376*** | ||
| (2.263) | (1.527) | |||
| countryPortugal | 8.670*** | 29.339*** | ||
| (2.281) | (1.548) | |||
| countryPuerto Rico | 11.211*** | 31.691*** | ||
| (2.279) | (1.546) | |||
| countryReunion | 11.900*** | 26.603*** | ||
| (2.221) | (1.476) | |||
| countryRomania | 9.763*** | 27.688*** | ||
| (2.251) | (1.512) | |||
| countryRwanda | 5.802** | 4.270** | ||
| (2.159) | (1.399) | |||
| countrySao Tome and Principe | 15.282*** | 19.655*** | ||
| (2.164) | (1.405) | |||
| countrySaudi Arabia | −9.374*** | 16.662*** | ||
| (2.350) | (1.630) | |||
| countrySenegal | 6.765** | 12.200*** | ||
| (2.167) | (1.409) | |||
| countrySerbia | 7.871*** | 27.629*** | ||
| (2.270) | (1.536) | |||
| countrySierra Leone | −3.283 | −1.092 | ||
| (2.160) | (1.400) | |||
| countrySingapore | 7.762*** | 29.886*** | ||
| (2.298) | (1.569) | |||
| countrySlovak Republic | 8.651*** | 29.571*** | ||
| (2.284) | (1.552) | |||
| countrySlovenia | 7.244** | 30.133*** | ||
| (2.307) | (1.580) | |||
| countrySomalia | 0.122 | 3.007* | ||
| (2.161) | (1.401) | |||
| countrySouth Africa | −4.901* | 13.336*** | ||
| (2.254) | (1.516) | |||
| countrySpain | 10.452*** | 32.825*** | ||
| (2.301) | (1.573) | |||
| countrySri Lanka | 21.770*** | 27.967*** | ||
| (2.170) | (1.412) | |||
| countrySudan | 2.888 | 9.729*** | ||
| (2.172) | (1.416) | |||
| countrySwaziland | −1.101 | 9.650*** | ||
| (2.192) | (1.440) | |||
| countrySweden | 7.988*** | 34.140*** | ||
| (2.351) | (1.632) | |||
| countrySwitzerland | 3.963+ | 33.022*** | ||
| (2.394) | (1.682) | |||
| countrySyria | 11.325*** | 22.006*** | ||
| (2.192) | (1.440) | |||
| countryTaiwan | 12.772*** | 29.877*** | ||
| (2.243) | (1.503) | |||
| countryTanzania | 9.881*** | 10.351*** | ||
| (2.159) | (1.398) | |||
| countryThailand | 14.436*** | 23.195*** | ||
| (2.181) | (1.426) | |||
| countryTogo | 10.646*** | 13.519*** | ||
| (2.161) | (1.401) | |||
| countryTrinidad and Tobago | 7.972*** | 26.176*** | ||
| (2.254) | (1.516) | |||
| countryTunisia | 10.108*** | 21.293*** | ||
| (2.195) | (1.444) | |||
| countryTurkey | 6.352** | 19.863*** | ||
| (2.212) | (1.464) | |||
| countryUganda | 10.085*** | 10.132*** | ||
| (2.158) | (1.398) | |||
| countryUnited Kingdom | 5.909* | 31.912*** | ||
| (2.349) | (1.629) | |||
| countryUnited States | 2.477 | 31.024*** | ||
| (2.386) | (1.673) | |||
| countryUruguay | 12.138*** | 30.162*** | ||
| (2.252) | (1.514) | |||
| countryVenezuela | 4.388+ | 25.434*** | ||
| (2.285) | (1.554) | |||
| countryVietnam | 18.639*** | 19.799*** | ||
| (2.159) | (1.399) | |||
| countryWest Bank and Gaza | 8.657*** | 20.743*** | ||
| (2.201) | (1.451) | |||
| countryYemen, Rep. | 3.485 | 8.438*** | ||
| (2.166) | (1.407) | |||
| countryZambia | 3.440 | 7.764*** | ||
| (2.164) | (1.405) | |||
| countryZimbabwe | 17.592*** | 15.542*** | ||
| (2.160) | (1.400) | |||
| factor(year)1957 | 1.356+ | 2.246*** | ||
| (0.815) | (0.408) | |||
| factor(year)1962 | 2.496** | 4.168*** | ||
| (0.816) | (0.413) | |||
| factor(year)1967 | 3.411*** | 6.022*** | ||
| (0.817) | (0.421) | |||
| factor(year)1972 | 4.129*** | 7.757*** | ||
| (0.819) | (0.435) | |||
| factor(year)1977 | 5.254*** | 9.531*** | ||
| (0.820) | (0.445) | |||
| factor(year)1982 | 6.873*** | 11.430*** | ||
| (0.821) | (0.450) | |||
| factor(year)1987 | 8.442*** | 13.089*** | ||
| (0.821) | (0.452) | |||
| factor(year)1992 | 9.441*** | 14.046*** | ||
| (0.821) | (0.451) | |||
| factor(year)1997 | 9.680*** | 14.785*** | ||
| (0.822) | (0.460) | |||
| factor(year)2002 | 9.806*** | 15.362*** | ||
| (0.824) | (0.470) | |||
| factor(year)2007 | 9.880*** | 16.444*** | ||
| (0.827) | (0.492) | |||
| Num.Obs. | 1704 | 1704 | 1704 | 1704 |
| R2 | 0.652 | 0.846 | 0.720 | 0.936 |
| RMSE | 7.62 | 5.06 | 6.84 | 3.27 |
| + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001 |
library(tidyverse) # libreria muy usada para manipular los datos y hacer grficos
library(modelsummary)# para tablas
library(gapminder) # datos del world bank
library(fixest) # estimaciones de efectos fijos
library(broom) # para revisar output de modelos
# Intro------------------------------------------------------
data(gapminder) # crea un data.frame llamado gapminder
head(gapminder %>%
filter(country %in% c("Argentina","Paraguay","Ireland","Syria") &
year %in% c(1997,2002,2007)),12)
# Tengamos una data separada para Argentina
Argentina <- gapminder %>%
filter(country == "Argentina")
# Veamos la correlación entre
# ingreso y expectativa de vida en 2007
p1<-gapminder %>% filter(year == 2007) %>%
ggplot(., aes(x = log(gdpPercap), y = lifeExp)) +
geom_point() + geom_smooth(method = 'lm') +
geom_point(data = Argentina[Argentina$year == 2007,],
color = "red")
# Veamos la correlación entre
# ingreso y expectativa de vida en toda la data
p2<-gapminder %>%
ggplot(., aes(x = log(gdpPercap), y = lifeExp)) +
geom_point() + geom_smooth(method = 'lm') +
geom_point(data = Argentina,
color = "red")
# Forma 1---------------------------------
# Minimos Cuadrados Agrupados
m1 <- feols(lifeExp ~ log_gdppc,
data = gapminder)
# Efectos fijos por pais
m2 <- feols(lifeExp ~ log_gdppc | country,
data = gapminder)
# Efectos fijos por año
m3 <- feols(lifeExp ~ log_gdppc | year,
data = gapminder)
# Ambos efectos fijos
m4 <- feols(lifeExp ~ log_gdppc | country + year,
data = gapminder)
# Forma 3---------------------------------
# Minimos Cuadrados Agrupados
lm1 <- lm(lifeExp ~ log_gdppc,
data = gapminder)
# Efectos fijos por pais
lm2 <- lm(lifeExp ~ log_gdppc + country,
data = gapminder)
# Efectos fijos por año
lm3 <- lm(lifeExp ~ log_gdppc + factor(year),
data = gapminder)
# Ambos efectos fijos
lm4 <- lm(lifeExp ~ log_gdppc + country + factor(year),
data = gapminder)
msummary(list('MCOAg' = lm1, 'FE pais' = lm2,
'FE año' = lm3, 'FE ambos' = lm4),
data = gapminder, stars = TRUE,
gof_omit = 'AIC|BIC|F|Lik|Adj|Pseudo')