# Rstudio version and PC info
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 1.2
year 2021
month 11
day 01
svn rev 81115
language R
version.string R version 4.1.2 (2021-11-01)
####### code #####
# Load necessary libraries
library(tigris)
library(splm)
library(spdep)
library(Matrix)
library(plm)
# Load necessary libraries
library(tigris)
library(splm)
library(spdep)
library(Matrix)
library(plm)
# census tracts
dc_tracts_2018 <- tracts(state="DC",cb=TRUE, year=2018)
dc_tracts_2018$row.id <- 1:179
# Spatial matrix
coords <- coordinates(dc_tracts_2018)
DC.knn_7 <- knearneigh(coords, k=7)
DC7_nb <- knn2nb(DC.knn_7)
DCknn_7 <- nb2listw(DC7_nb, style="W")
# reproducible example
set.seed(123)
df2010 <- data.frame(
y = rnorm(179),
x = rnorm(179, mean=2),
x2 = rnorm(179, mean = 3),
year=2010,
row.id = 1:179
)
df2015 <- data.frame(
y = rnorm(179),
x = rnorm(179, mean=2.5),
x2 = rnorm(179, mean = 3),
year=2015,
row.id = 1:179
)
df2020 <- data.frame(
y = rnorm(179),
x = rnorm(179, mean=1.5),
x2 = rnorm(179, mean = 3.5),
year=2020,
row.id = 1:179
)
# drop geom
st_geometry(dc_tracts_2018) <- NULL
#list of data frame
df <- list(df2010,df2015,df2020)
for (i in seq_along(df)) {
df[[i]] <- merge(df[[i]], dc_tracts_2018, by = "row.id")
}
df2010 <- df[1]
df2015 <- df[2]
df2020 <- df[3]
# merging
panel_dc_2010_2020 <- rbind(df2010[[1]], df2015[[1]], df2020[[1]])
#### setting lag variables
panel_dc_2010_2020.pd<-pdata.frame(panel_dc_2010_2020,
index=c("GEOID","year"))
# lag variables
panel_dc_2010_2020.pd$lag_x <- slag(panel_dc_2010_2020.pd$x,listw=DCknn_7)
panel_dc_2010_2020.pd$lag_x2 <-
slag(panel_dc_2010_2020.pd$x2,listw=DCknn_7)
## impacts
time1 <- length(unique(panel_dc_2010_2020$year))
s.lwtracts <- kronecker(Diagonal(time1), listw2dgCMatrix(DCknn_7))
trMatc <- trW(s.lwtracts, type = "mult")
Error in trW(s.lwtracts, type = "mult") : could not find function "trW"
# durbing
model_fix_durbin <- spgm(y ~ x + x2 +lag_x + lag_x2,
data=panel_dc_2010_2020.pd, listw = DCknn_7, model = "within",lag =
TRUE,spatial.error = FALSE,moments="fullweights",method="ec2sls")
# estimating impacts
impacts(model_fix_durbin,tr=trMatc, R=200)
Error in impacts(model_fix_durbin, tr = a, R = 200) :
could not find function "impacts"