Country-year fixed effects when the instrument varies only by country year

by Tom Kisters   Last Updated June 30, 2020 04:19 AM

Background

I have a pooled cross section with observations at the firm level in 10 countries over two time periods.

I am trying to estimate the following model:

$$sales=B_0 + B_1taxrate + B_2industry + B_3size + B_4urbanisation + B_5country:year + e$$

However, I have a variable bias because $industry$ is not observed and $taxrate$ is partly dependent on $industry$. To solve the bias, I use the exogenous variable $votewon$ as an instrument for $taxrate$.

$$sales=B_0 + B_1votewon + B_2industry + B_3size + B_4urbanisation + B_5country:year + e$$

Issue

Now the issue is as follows:

While I have firm level data, the variable $votewon$ is a variable at the country level. As a result it is the same for all firm observations for a $country:year$.

I have however already included a $country:year$ dummy.

Is it a good idea to include both a $votewon$ dummy (which only varies by $country:year$) and $country:year$ dummy?

Data

The data looks as follows:

panelID= c(1:50)
year= c(2005, 2010)
country = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
urban = c("A", "B", "C")
indust = c("D", "E", "F")
sizes = c(1,2,3,4,5)
n <- 2
library(AER)
library(data.table)
library(dplyr)
set.seed(123)
DT <- data.table(   country = rep(sample(country, length(panelID), replace = T), each = n),
                    year = c(replicate(length(panelID), sample(year, n))),
                    sales= round(rnorm(10,10,10),2),
                    industry = rep(sample(indust, length(panelID), replace = T), each = n),
                    urbanisation = rep(sample(urban, length(panelID), replace = T), each = n),
                    size = rep(sample(sizes, length(panelID), replace = T), each = n))
DT <- DT %>%
group_by(country) %>%
mutate(base_rate = as.integer(runif(1, 12.5, 37.5))) %>%
group_by(country, year) %>%
mutate(taxrate = base_rate + as.integer(runif(1,-2.5,+2.5)))
DT <- DT %>%
group_by(country, year) %>%
mutate(vote = sample(c(0,1),1), 
votewon = ifelse(vote==1, sample(c(0,1),1),0))

summary(ivreg(sales ~ taxrate + as.factor(size) + as.factor(urbanisation) + country:as.factor(year) | as.factor(votewon) + as.factor(size) + as.factor(urbanisation) + country:as.factor(year), data=DT))

summary(ivreg(sales ~ taxrate + as.factor(size) + as.factor(urbanisation) + as.factor(vote) + country:as.factor(year) | as.factor(votewon) + as.factor(size) + as.factor(urbanisation) + as.factor(vote) + country:as.factor(year), data=DT))


Related Questions



How to instrument categorical dummy variables

Updated October 01, 2019 11:19 AM