11.4 Regresión con efectos fijos en el tiempo
El control de las variables que son constantes entre entidades pero que varían con el tiempo se puede realizar al incluir efectos fijos en el tiempo. Si existe solo efectos fijos de tiempo, el modelo de regresión de efectos fijos se convierte en \[Y_{it} = \beta_0 + \beta_1 X_{it} + \delta_2 B2_t + \cdots + \delta_T BT_t + u_{it},\] donde solo se incluyen variables ficticias \(T-1\) (se omite \(B1\)), ya que el modelo incluye una intersección. Este modelo elimina el sesgo de variables omitidas causado por la exclusión de variables no observadas que evolucionan con el tiempo, pero son constantes en todas las entidades.
En algunas aplicaciones, es significativo incluir efectos fijos tanto de entidad como de tiempo. El modelo de efectos fijos de entidad y tiempo es \[Y_{it} = \beta_0 + \beta_1 X_{it} + \gamma_2 D2_i + \cdots + \gamma_n DT_i + \delta_2 B2_t + \cdots + \delta_T BT_t + u_{it} .\] El modelo combinado permite eliminar el sesgo de las variables inobservables que cambian con el tiempo, pero son constantes en las entidades y controla los factores que difieren entre las entidades pero que son constantes en el tiempo. Estos modelos se pueden estimar utilizando el algoritmo MCO que se implementa en R.
El siguiente fragmento de código muestra cómo estimar la entidad combinada y el modelo de efectos fijos de tiempo de la relación entre las muertes y el impuesto a la cerveza, \[\text{Tasa de fatalidad}_{it} = \beta_1 \text{Impuesto a la cerveza}_{it} + \text{Efectos de estado} + \text{Efectos fijos de tiempo} + u_{it}\] usando tanto lm() como plm(). Es sencillo estimar esta regresión con lm(), ya que es solo una extensión de (11.6) por lo que solo se tiene que ajustar el argumento formula agregando el regresor adicional year para efectos fijos de tiempo. En la llamada de plm() se establece otro argumento effect = “twoways” para la inclusión de variables ficticias de entidad y tiempo.
# estimar un modelo de regresión combinado de efectos fijos de entidad y tiempo
# a través de lm()
<- lm(fatal_rate ~ beertax + state + year - 1, data = Fatalities)
fatal_tefe_lm_mod
fatal_tefe_lm_mod#>
#> Call:
#> lm(formula = fatal_rate ~ beertax + state + year - 1, data = Fatalities)
#>
#> Coefficients:
#> beertax stateal stateaz statear stateca stateco statect statede
#> -0.63998 3.51137 2.96451 2.87284 2.02618 2.04984 1.67125 2.22711
#> statefl statega stateid stateil statein stateia stateks stateky
#> 3.25132 4.02300 2.86242 1.57287 2.07123 1.98709 2.30707 2.31659
#> statela stateme statemd statema statemi statemn statems statemo
#> 2.67772 2.41713 1.82731 1.42335 2.04488 1.63488 3.49146 2.23598
#> statemt statene statenv statenh statenj statenm stateny statenc
#> 3.17160 2.00846 2.93322 2.27245 1.43016 3.95748 1.34849 3.22630
#> statend stateoh stateok stateor statepa stateri statesc statesd
#> 1.90762 1.85664 2.97776 2.36597 1.76563 1.26964 4.06496 2.52317
#> statetn statetx stateut statevt stateva statewa statewv statewi
#> 2.65670 2.61282 2.36165 2.56100 2.23618 1.87424 2.63364 1.77545
#> statewy year1983 year1984 year1985 year1986 year1987 year1988
#> 3.30791 -0.07990 -0.07242 -0.12398 -0.03786 -0.05090 -0.05180
# a través de plm()
<- plm(fatal_rate ~ beertax,
fatal_tefe_mod data = Fatalities,
index = c("state", "year"),
model = "within",
effect = "twoways")
coeftest(fatal_tefe_mod, vcov = vcovHC, type = "HC1")
#>
#> t test of coefficients:
#>
#> Estimate Std. Error t value Pr(>|t|)
#> beertax -0.63998 0.35015 -1.8277 0.06865 .
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Antes de discutir los resultados, se deben convencer de que state y year son de la clase factor.
# marcar la clase de 'state' y 'year'
class(Fatalities$state)
#> [1] "factor"
class(Fatalities$year)
#> [1] "factor"
Las funciones lm() convierten los factores en variables ficticias automáticamente. Dado que se excluye la intersección agregando -1 al lado derecho de la fórmula de regresión, lm() estima los coeficientes para las variables binarias \(n + (T-1) = 48 + 6 = 54\) (variables ficticias de 6 años y 48 variables ficticias estatales). Una vez más, plm() solo informa el coeficiente estimado en \(Impuesto a la cerveza\).
La función de regresión estimada es
\[\begin{align} \widehat{\text{Tasa de fatalidad}} = -\underset{(0.35)}{0.64} \times \text{Impuesto a la cerveza} + \text{Efectos de estado} + \text{Efectos fijos de tiempo}. \tag{11.8} \end{align}\]
El resultado \(-0.66\) está cerca del coeficiente estimado para el modelo de regresión que incluye solo los efectos fijos de la entidad. Como era de esperar, el coeficiente se estima con menos precisión, pero es significativamente diferente de cero a \(10\%\).
En vista de (11.7) y (11.8), se concluye que relación estimada entre las muertes por accidentes de tránsito y el impuesto real a la cerveza no se ve afectada por el sesgo de la variable omitida debido a factores que son constantes en el tiempo.