PUNTO C

par(mfrow = c(1, 2))
# Heterogeneidad individual

plotmeans(crmrte ~ county, main = "Heterogeneidad Individual",
          data = crime4_filtrada, xlab = "Condado", ylab = "Tasa de delincuencia")

# Heterogeneidad temporal 

plotmeans(crmrte ~ year, main = "Heterogeneidad Temporal",
          data = crime4_filtrada, xlab = "Año", ylab = "Tasa de delincuencia")

# Crear un data frame con la tasa promedio de crimen por condado
crime_año_condado <- crime4_filtrada %>%
  group_by(county, year) %>%
  summarise(crmrte = mean(crmrte, na.rm = TRUE)) %>%
  ungroup()

# Filtrar los condados con los niveles más altos de crimen en promedio
top_condados <- crime_año_condado %>%
  group_by(county) %>%
  summarise(prom_crimen = mean(crmrte, na.rm = TRUE)) %>%
  top_n(5, prom_crimen)  # Se seleccionan los 5 condados con mayor crimen


ggplot(crime_año_condado, aes(x = year, y = crmrte, group = county, color = as.factor(county))) +
  geom_line(alpha = 0.5) +  
  gghighlight(county %in% top_condados$county, label_key = county) +  
  labs(title = "Evolución de la Tasa de Crimen por Condado (1981-1987)",
       x = "Año", 
       y = "Tasa de Crimen per cápita",
       color = "Condado") +
  theme_minimal()

crime4_filtrada <- crime4_filtrada %>%
  mutate(
    log_crmrte = log(crmrte),
    log_prbarr = log(prbarr),
    log_prbconv = log(prbconv),
    log_prbpris = log(prbpris),
    log_avgsen = log(avgsen),
    log_polpc = log(polpc)
  )

# Convertir year en factor para las dummies
crime4_filtrada$year_factor <- as.factor(crime4_filtrada$year)

crime4_filtrada <- crime4_filtrada %>%
  filter(!is.na(log_crmrte))
# Estimación por MCO (Mínimos Cuadrados Ordinarios)
modelo_ols <- lm(log_crmrte ~ year_factor + log_prbarr + log_prbconv + log_prbpris + log_avgsen + log_polpc,
                 data = crime4_filtrada)
stargazer(modelo_ols, type = "html")
Dependent variable:
log_crmrte
year_factor82 0.005
(0.058)
year_factor83 -0.044
(0.058)
year_factor84 -0.109*
(0.058)
year_factor85 -0.078
(0.058)
year_factor86 -0.042
(0.058)
year_factor87 -0.027
(0.057)
log_prbarr -0.720***
(0.037)
log_prbconv -0.546***
(0.026)
log_prbpris 0.248***
(0.067)
log_avgsen -0.087
(0.058)
log_polpc 0.366***
(0.030)
Constant -2.082***
(0.252)
Observations 630
R2 0.570
Adjusted R2 0.562
Residual Std. Error 0.379 (df = 618)
F Statistic 74.485*** (df = 11; 618)
Note: p<0.1; p<0.05; p<0.01

PUNTO D

modelo_fd <- plm(log_crmrte ~ year_factor + log_prbarr + log_prbconv + log_prbpris + log_avgsen + log_polpc, 
                 data = crime4_filtrada, 
                 model = "fd")
stargazer(modelo_fd, type = "html")
Dependent variable:
log_crmrte
year_factor82 0.014
(0.016)
year_factor83 -0.072***
(0.019)
year_factor84 -0.106***
(0.021)
year_factor85 -0.096***
(0.020)
year_factor86 -0.055***
(0.015)
log_prbarr -0.327***
(0.030)
log_prbconv -0.238***
(0.018)
log_prbpris -0.165***
(0.026)
log_avgsen -0.022
(0.022)
log_polpc 0.398***
(0.027)
Constant -0.006
(0.007)
Observations 540
R2 0.433
Adjusted R2 0.422
F Statistic 40.318*** (df = 10; 529)
Note: p<0.1; p<0.05; p<0.01

PUNTO F

# Efectos fijos
modelo_fe <- plm(log_crmrte ~ year_factor + log_prbarr + log_prbconv + log_prbpris + log_avgsen + log_polpc, 
                 data = crime4_filtrada, model = "within")
stargazer(modelo_fe, type = "html")
Dependent variable:
log_crmrte
year_factor82 0.013
(0.022)
year_factor83 -0.079***
(0.021)
year_factor84 -0.118***
(0.022)
year_factor85 -0.112***
(0.022)
year_factor86 -0.082***
(0.021)
year_factor87 -0.040*
(0.021)
log_prbarr -0.360***
(0.032)
log_prbconv -0.286***
(0.021)
log_prbpris -0.183***
(0.032)
log_avgsen -0.004
(0.026)
log_polpc 0.424***
(0.026)
Observations 630
R2 0.434
Adjusted R2 0.327
F Statistic 36.911*** (df = 11; 529)
Note: p<0.1; p<0.05; p<0.01
# Efectos aleatorios
modelo_re <- plm(log_crmrte ~ year_factor + log_prbarr + log_prbconv + log_prbpris + log_avgsen + log_polpc,
                 data = crime4_filtrada, model = "random")
stargazer(modelo_re, type = "html")
Dependent variable:
log_crmrte
year_factor82 0.014
(0.023)
year_factor83 -0.075***
(0.023)
year_factor84 -0.113***
(0.023)
year_factor85 -0.106***
(0.023)
year_factor86 -0.080***
(0.023)
year_factor87 -0.042*
(0.022)
log_prbarr -0.425***
(0.032)
log_prbconv -0.327***
(0.021)
log_prbpris -0.179***
(0.034)
log_avgsen -0.008
(0.028)
log_polpc 0.429***
(0.026)
Constant -1.673***
(0.175)
Observations 630
R2 0.426
Adjusted R2 0.416
F Statistic 459.169***
Note: p<0.1; p<0.05; p<0.01
stargazer(modelo_ols, modelo_fd, modelo_fe, modelo_re, type = "html")
Dependent variable:
log_crmrte
OLS panel
linear
(1) (2) (3) (4)
year_factor82 0.005 0.014 0.013 0.014
(0.058) (0.016) (0.022) (0.023)
year_factor83 -0.044 -0.072*** -0.079*** -0.075***
(0.058) (0.019) (0.021) (0.023)
year_factor84 -0.109* -0.106*** -0.118*** -0.113***
(0.058) (0.021) (0.022) (0.023)
year_factor85 -0.078 -0.096*** -0.112*** -0.106***
(0.058) (0.020) (0.022) (0.023)
year_factor86 -0.042 -0.055*** -0.082*** -0.080***
(0.058) (0.015) (0.021) (0.023)
year_factor87 -0.027 -0.040* -0.042*
(0.057) (0.021) (0.022)
log_prbarr -0.720*** -0.327*** -0.360*** -0.425***
(0.037) (0.030) (0.032) (0.032)
log_prbconv -0.546*** -0.238*** -0.286*** -0.327***
(0.026) (0.018) (0.021) (0.021)
log_prbpris 0.248*** -0.165*** -0.183*** -0.179***
(0.067) (0.026) (0.032) (0.034)
log_avgsen -0.087 -0.022 -0.004 -0.008
(0.058) (0.022) (0.026) (0.028)
log_polpc 0.366*** 0.398*** 0.424*** 0.429***
(0.030) (0.027) (0.026) (0.026)
Constant -2.082*** -0.006 -1.673***
(0.252) (0.007) (0.175)
Observations 630 540 630 630
R2 0.570 0.433 0.434 0.426
Adjusted R2 0.562 0.422 0.327 0.416
Residual Std. Error 0.379 (df = 618)
F Statistic 74.485*** (df = 11; 618) 40.318*** (df = 10; 529) 36.911*** (df = 11; 529) 459.169***
Note: p<0.1; p<0.05; p<0.01

PUNTO G

options(scipen = 999)
hausman_test <- phtest(modelo_fe, modelo_re)
print(hausman_test)
## 
##  Hausman Test
## 
## data:  log_crmrte ~ year_factor + log_prbarr + log_prbconv + log_prbpris +  ...
## chisq = 36.924, df = 11, p-value = 0.0001187
## alternative hypothesis: one model is inconsistent