10.4 Regression with Time Fixed Effects
Controlling for variables that are constant across entities but vary over time can be done by including time fixed effects. If there are only time fixed effects, the fixed effects regression model becomes \[Y_{it} = \beta_0 + \beta_1 X_{it} + \delta_2 B2_t + \cdots + \delta_T BT_t + u_{it},\] where only \(T-1\) dummies are included (\(B1\) is omitted) since the model includes an intercept. This model eliminates omitted variable bias caused by excluding unobserved variables that evolve over time but are constant across entities.
In some applications it is meaningful to include both entity and time fixed effects. The entity and time fixed effects model is \[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} .\] The combined model allows to eliminate bias from unobservables that change over time but are constant over entities and it controls for factors that differ across entities but are constant over time. Such models can be estimated using the OLS algorithm that is implemented in R.
The following code chunk shows how to estimate the combined entity and time fixed effects model of the relation between fatalities and beer tax, \[FatalityRate_{it} = \beta_1 BeerTax_{it} + StateEffects + TimeFixedEffects + u_{it}\] using both lm() and plm(). It is straightforward to estimate this regression with lm() since it is just an extension of (10.6) so we only have to adjust the formula argument by adding the additional regressor year for time fixed effects. In our call of plm() we set another argument effect = “twoways” for inclusion of entity and time dummies.
# estimate a combined time and entity fixed effects regression model
# via lm()
fatal_tefe_lm_mod <- lm(fatal_rate ~ beertax + state + year - 1, data = Fatalities)
fatal_tefe_lm_mod
##
## Call:
## lm(formula = fatal_rate ~ beertax + state + year - 1, data = Fatalities)
##
## Coefficients:
## beertax stateal stateaz statear stateca stateco statect
## -0.63998 3.51137 2.96451 2.87284 2.02618 2.04984 1.67125
## statede statefl statega stateid stateil statein stateia
## 2.22711 3.25132 4.02300 2.86242 1.57287 2.07123 1.98709
## stateks stateky statela stateme statemd statema statemi
## 2.30707 2.31659 2.67772 2.41713 1.82731 1.42335 2.04488
## statemn statems statemo statemt statene statenv statenh
## 1.63488 3.49146 2.23598 3.17160 2.00846 2.93322 2.27245
## statenj statenm stateny statenc statend stateoh stateok
## 1.43016 3.95748 1.34849 3.22630 1.90762 1.85664 2.97776
## stateor statepa stateri statesc statesd statetn statetx
## 2.36597 1.76563 1.26964 4.06496 2.52317 2.65670 2.61282
## stateut statevt stateva statewa statewv statewi statewy
## 2.36165 2.56100 2.23618 1.87424 2.63364 1.77545 3.30791
## year1983 year1984 year1985 year1986 year1987 year1988
## -0.07990 -0.07242 -0.12398 -0.03786 -0.05090 -0.05180
# via plm()
fatal_tefe_mod <- plm(fatal_rate ~ beertax,
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
Before discussing the outcomes we convince ourselves that state and year are of the class factor .
# check the class of 'state' and 'year'
class(Fatalities$state)
## [1] "factor"
class(Fatalities$year)
## [1] "factor"
The lm() functions converts factors into dummies automatically. Since we exclude the intercept by adding -1 to the right-hand side of the regression formula, lm() estimates coefficients for \(n + (T-1) = 48 + 6 = 54\) binary variables (6 year dummies and 48 state dummies). Again, plm() only reports the estimated coefficient on \(BeerTax\).
The estimated regression function is \[\begin{align} \widehat{FatalityRate} = -\underset{(0.35)}{0.64} \times BeerTax + StateEffects + TimeFixedEffects. \tag{10.8} \end{align}\]The result \(-0.66\) is close to the estimated coefficient for the regression model including only entity fixed effects. Unsurprisingly, the coefficient is less precisely estimated but significantly different from zero at \(10\%\).
In view of (10.7) and (10.8) we conclude that the estimated relationship between traffic fatalities and the real beer tax is not affected by omitted variable bias due to factors that are constant over time.