# # 2000 data: NAICS Based Measure
# 
# # NAICS is available in CBP data post 1997.
# 
# 
# # cbp employment raw data
# cbp <- fread(paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/CBP/county/cbp",substr(st_yr,3,4),"co.txt"))
# cbp[,naics:=as.numeric(naics)]
# cbp <- cbp[!is.na(naics)]
# 
# cbp[,imp_emp:=n1_4*2.5+n5_9*7+n10_19*15+n20_49*35+n50_99*75+n100_249*175+n250_499*375+n500_999*750+n1000_1*1250+n1000_2*2000+n1000_3*3750+n1000_4*10000]
# 
# cbp[,imp_emp:=ifelse(!is.na(emp) & emp>0,emp,imp_emp)]
# 
# cbp[,fips:=paste0(str_pad(fipstate,2,"left","0"),str_pad(fipscty,3,"left","0"))]
# 
# cbp <- cbp[,c("fips","naics","imp_emp")]
# 
# naics_sic <- fread("David Dorn/NAICS97_6_to_SIC87_4.csv")
# cbp <- merge(cbp,naics_sic,by.x="naics",by.y="naics6",allow.cartesian = T)
# cbp[,imp_emp:=imp_emp*weight]
# 
# cbp[,emp_sic_n:=sum(imp_emp),by=sic4]
# cbp[,emp_fips:=sum(imp_emp),by=fips]
# 
# 
# 
# 
# us_imports <- fread("David Dorn/Imports_from_China_by_sic87dd_1991_2014.csv")
# us_imports <- us_imports[,c("sic87dd","l_import_usch_2000","l_import_usch_2007")]
# us_imports[,chg_st_ed:=l_import_usch_2007-l_import_usch_2000]
# 
# 
# 
# emp_naics <- merge(cbp,us_imports[,c("chg_st_ed","sic87dd")],by.x="sic4",by.y="sic87dd",all.x=T)
# 
# emp_naics[,chg_per_employee:=chg_st_ed/emp_sic_n]
# 
# emp_naics[,w_chg_per_employee:=chg_per_employee*imp_emp/emp_fips]
# 
# # d_tradeusch_pw_dr is our approximation of d_tradeusch_pw in ADH
# emp_czone <- emp_naics[,.(import_sensitivity=sum(w_chg_per_employee,na.rm=T)),by=fips]
# 
# 
# 
# 
# # Other country IV
# imports_oth <- fread("David Dorn/Imports_from_China_by_sic87dd_1991_2014.csv")
# imports_oth <- imports_oth[,c("sic87dd","l_import_otch_2000","l_import_otch_2007")]
# imports_oth[,chg_st_ed:=l_import_otch_2007-l_import_otch_2000]
# 
# cbp <- fread(paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/CBP/county/cbp",substr(st_yr-2,3,4),"co.txt"))
# cbp[,naics:=as.numeric(naics)]
# cbp <- cbp[!is.na(naics)]
# 
# cbp[,imp_emp:=n1_4*2.5+n5_9*7+n10_19*15+n20_49*35+n50_99*75+n100_249*175+n250_499*375+n500_999*750+n1000_1*1250+n1000_2*2000+n1000_3*3750+n1000_4*10000]
# 
# cbp[,imp_emp:=ifelse(!is.na(emp) & emp>0,emp,imp_emp)]
# 
# cbp[,fips:=paste0(str_pad(fipstate,2,"left","0"),str_pad(fipscty,3,"left","0"))]
# 
# cbp <- cbp[,c("fips","naics","imp_emp")]
# 
# naics_sic <- fread("David Dorn/NAICS97_6_to_SIC87_4.csv")
# cbp <- merge(cbp,naics_sic,by.x="naics",by.y="naics6",allow.cartesian = T)
# cbp[,imp_emp:=imp_emp*weight]
# 
# cbp[,emp_sic_n:=sum(imp_emp),by=sic4]
# cbp[,emp_fips:=sum(imp_emp),by=fips]
# 
# 
# emp_naics_oc <- merge(cbp,imports_oth[,c("chg_st_ed","sic87dd")],by.x="sic4",by.y="sic87dd",all.x=T)
# 
# emp_naics_oc[,chg_per_employee:=chg_st_ed/emp_sic_n]
# 
# emp_naics_oc[,w_chg_per_employee:=chg_per_employee*imp_emp/emp_fips]
# 
# # tradeotch_pw_lag_dr is our approximation of tradeotch_pw_lag in ADH
# emp_naics_oc <- emp_naics_oc[,.(iv_import_sensitivity=sum(w_chg_per_employee,na.rm=T)),by=fips]
# 
# measures <- merge(emp_czone,emp_naics_oc,by="fips")
# 
# measures[,x_bin:=ntile(import_sensitivity,3)]
# measures[,iv_bin:=ntile(iv_import_sensitivity,100)]
# 
# saveRDS(measures,"measures_county_levels_sic87dd.rds")
# pop_data <- list()
# 
# pop_2000 <- get_decennial(geography = "county", variables = "P001001",year = 2000)
# pop_2000 <- pop_2000[,c("GEOID","value")]
# names(pop_2000) <- c("fips","population")
# pop_2000 <- data.table(pop_2000)
# pop_2000[,fips:=as.numeric(fips)]
# pop_2000[,year:=2000]
# pop_data[[1]] <- pop_2000
# 
# #https://repository.duke.edu/catalog/f49b199b-1496-4636-91f3-36226c8e7f80
# pop_csv <- fread("county_population_2000_2010.csv")
# pop_csv <- pop_csv[year %in% 2001:2009, c("fips","tot_pop","year")]
# names(pop_csv) <- c("fips","population","year")
# pop_data[[2]] <- pop_csv
# 
# i=3
# for(yr in 2010:2019){
#   pop <- get_acs(geography = "county", variables = c("B01003_001"), year = yr)
#   pop <- data.table(pop)
#   pop <- dcast(pop,GEOID~variable,value.var = "estimate",fun.aggregate = sum)
#   names(pop) <- c("fips","population")
#   pop[,year:=yr]
#   pop_data[[i]] <- pop
#   i=i+1
# }
# 
# pop_data <- do.call(rbind,pop_data)
# 
# pop_data[,fips:=str_pad(as.character(fips),width = 5,side = "left",pad = "0")]
# 
# 
# 
# #https://apps.bea.gov/regional/downloadzip.cfm
# county_data <- fread("bea_data_1969_2021.csv")
# 
# county_data[,variable:=ifelse(Description=="Personal income (thousands of dollars)","total_income",
#                               ifelse(Description=="Population (persons) 1/","population",
#                                      ifelse(Description=="Per capita personal income (dollars) 2/","income_per_capita","")))]
# 
# county_data <- county_data[variable %in% c("income_per_capita")]
# county_data[,c("GeoName","Region","TableName","LineCode","IndustryClassification","Unit","Description"):=list(NULL)]
# setnames(county_data,"GeoFIPS","fips")
# 
# county_data <- melt(county_data,id.vars = c("fips","variable"))
# county_data[,value:=as.numeric(value)]
# county_data <- dcast(county_data,fips+variable.1~variable,value.var = "value",fun.aggregate = sum)
# county_data[,variable.1:=as.numeric(as.character(variable.1))]
# 
# setnames(county_data,"variable.1","year")
# 
# unemp <- fread("la.data.64.County.txt")
# unemp <- unemp[substr(series_id,1,5)=="LAUCN"]
# unemp[,fips:=substr(series_id,6,10)]
# unemp <- unemp[substr(series_id,19,20)=="03"]
# unemp[,value:=as.numeric(value)]
# unemp <- unemp[,.(unemp_rate=mean(value,na.rm=T)),by=.(fips,year)]
# unemp[,c("series_id","period","footnote_codes"):=list(NULL)]
# 
# county_data <- merge(county_data,unemp,by=c("fips","year"))
# county_data <- merge(county_data,pop_data,by=c("fips","year"))
# 
# saveRDS(county_data,"county_data.rds")
# sod <- list()
# i=1
# for(fl in list.files(path="C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/SOD/data",full.names = T)){
#   sod[[i]] <- fread(fl,select = c("YEAR","CERT","DEPSUMBR","DEPSUM","RSSDHCR","RSSDID","STCNTYBR","ASSET","UNINUMBR","SIMS_ESTABLISHED_DATE","SIMS_LATITUDE","SIMS_LONGITUDE","ADDRESBR"))
#   i=i+1
# }
# 
# sod <- rbindlist(sod,fill=T)
# 
# sod[,DEPSUMBR:=str_remove_all(DEPSUMBR,",")]
# sod[,DEPSUM:=str_remove_all(DEPSUM,",")]
# sod[,ASSET:=str_remove_all(ASSET,",")]
# 
# sod[,DEPSUMBR:= as.numeric(DEPSUMBR)]
# sod[,DEPSUM:= as.numeric(DEPSUM)]
# sod[,ASSET:= as.numeric(ASSET)]
# 
# sod[,fips:=str_pad(STCNTYBR,5,"left","0")]
# sod[,SIMS_ESTABLISHED_DATE:=as.Date(SIMS_ESTABLISHED_DATE,"%m/%d/%Y")]
# 
# sod[,br_id:=paste0(tolower(ADDRESBR),round(SIMS_LATITUDE,1),round(SIMS_LONGITUDE,1))]
# 
# 
# 
# 
# br <- list()
# i <- 1
# for(yr in 2001:2020){
#   temp <- sod[YEAR==yr]
#   temp_p <- sod[YEAR==(yr-1)]
#   temp_a <- sod[YEAR==(yr+1)]
#   
#   # openings <- temp[year(SIMS_ESTABLISHED_DATE)==yr]
#   openings <- temp[DEPSUMBR> 0 & !UNINUMBR %in% temp_p[DEPSUMBR> 0]$UNINUMBR]
#   openings <- rbind(openings,temp[DEPSUMBR> 0 & !br_id %in% temp_p[DEPSUMBR> 0]$br_id])
#   openings <- openings[!duplicated(openings)]
#   openings <- openings[,.(openings=.N),by=fips]
#   
#   
#   closings <- temp[DEPSUMBR> 0 & !UNINUMBR %in% temp_a[DEPSUMBR> 0]$UNINUMBR]
#   closings <- rbind(closings,temp[DEPSUMBR> 0 & !br_id %in% temp_a[DEPSUMBR> 0]$br_id])
#   closings <- closings[!duplicated(closings)]
#   closings <- closings[,.(closings=.N),by=fips]
#   
#   temp<- data.table(fips=unique(sod$fips),YEAR=yr)
#   temp <- merge(temp,openings,by="fips",all.x = T)
#   temp <- merge(temp,closings,by="fips",all.x = T)
#   temp[is.na(temp)] <- 0
#   
#   br[[i]] <- temp
#   i=i+1
# }
# 
# br <- do.call(rbind,br)
# setorder(br,fips,YEAR)
# 
# 
# saveRDS(sod,"sod_sum.rds")
# saveRDS(br,"br_open_close.rds")
measures <- readRDS("measures_county_levels_sic87dd.rds")
measures[,import_sensitivity:=(import_sensitivity-min(measures$import_sensitivity,na.rm=T)+1)]
measures[,iv_import_sensitivity:=(iv_import_sensitivity-min(measures$iv_import_sensitivity,na.rm=T)+1)]
measures[,high_x:=ntile(import_sensitivity,2)-1]
measures[,low_x:=2-high_x]
measures[,rev_x_bin:=3-x_bin]
measures[,is_q:=ntile(import_sensitivity,4)]
measures[,is_top_q:=ifelse(is_q==4,1,0)]
sod <- readRDS("sod_sum.rds")

asset_w <- sod[,c("CERT","YEAR","ASSET")]
asset_w <- asset_w[!duplicated(asset_w)]
asset_w[,tot_assets:=sum(ASSET,na.rm=T),by=YEAR]
asset_w[,w_asset:=ASSET/tot_assets]
asset_w[,q80:=quantile(ASSET,0.8,na.rm=T),by=YEAR]
asset_w[,q95:=quantile(ASSET,0.95,na.rm=T),by=YEAR]
asset_w[,size:=ifelse(ASSET <q80,1,ifelse(ASSET<q95,2,0))]

bank_import_exposure <- sod[YEAR %in% 1994:2000]

bank_import_exposure <- bank_import_exposure[,.(county_deposits=sum(DEPSUMBR,na.rm=T)),by=.(CERT,fips)]

bank_import_exposure <- merge( bank_import_exposure,measures,by="fips")

bank_import_exposure[,total_deposits:=sum(county_deposits,na.rm=T),by=CERT]

bank_import_exposure[,wa_exposure:=county_deposits*import_sensitivity/total_deposits]

bank_import_exposure <- bank_import_exposure[,.(wa_exposure=sum(wa_exposure,na.rm=T)),by=CERT]

bank_import_exposure[,exp_q:=ntile(wa_exposure,4)]
bank_import_exposure[,exp_top_q:=ifelse(exp_q==4,1,0)]
bank_import_exposure[,exp_bin:=ntile(bank_import_exposure,3)]

1 Deposit Rates

rw_inst <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/RateWatch/Deposit_InstitutionDetails.txt")
rw_inst <- rw_inst[,c("ACCT_NBR","RSSD_ID","CERT_NBR","STATE_FPS","CNTY_FPS")]
rw_inst[,fips:=paste0(str_pad(STATE_FPS,2,"left","0"),str_pad(CNTY_FPS,3,"left","0"))]
rw_inst[,c("STATE_FPS","CNTY_FPS"):=list(NULL)]

rw_summary <- readRDS("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/RateWatch/rate_watch_summary.rds")
rw_summary[,year:=year(qtr)]
rw_summary <- rw_summary[,.(mean_apy=mean(mean_apy,na.rm=T),median_apy=median(median_apy,na.rm=T)),by=.(year,ACCOUNTNUMBER,PRD_TYP_JOIN)]

rw_summary <- merge(rw_summary,rw_inst,by.x="ACCOUNTNUMBER",by.y="ACCT_NBR")

rw_bank <- rw_summary[,.(mean_apy=mean(mean_apy,na.rm=T),median_apy=median(median_apy,na.rm = T)),by=.(year,PRD_TYP_JOIN,CERT_NBR)]
rw_county <- rw_summary[,.(mean_apy=mean(mean_apy,na.rm=T),median_apy=median(median_apy,na.rm = T)),by=.(year,PRD_TYP_JOIN,fips)]
rw_bank_county <- rw_summary[,.(mean_apy=mean(mean_apy,na.rm=T),median_apy=median(median_apy,na.rm = T)),by=.(year,PRD_TYP_JOIN,CERT_NBR,fips)]
reg_sample <- merge(measures,rw_bank_county,by="fips")
reg_sample <- merge(bank_import_exposure,reg_sample,by.x="CERT",by.y="CERT_NBR")
reg_sample[,high_exposure:=ifelse(wa_exposure>14,1,0)]

reg_sample[,fips_yr:=paste(fips,year)]
reg_sample[,bank_yr:=paste(CERT,year)]
reg_sample[,state:=substr(fips,1,2)]
reg_sample[,state_yr:=paste(CERT,year)]

reg_sample <- reg_sample[log(1+wa_exposure)>=2 & log(1+wa_exposure)<=4 & log(import_sensitivity)>=2 & log(import_sensitivity)<=4]

reg_sample <- merge(reg_sample,asset_w[,c("CERT","YEAR","w_asset","ASSET")],by.x=c("CERT","year"),by.y=c("CERT","YEAR"))

Data: The following results are based on RateWatch data. RateWatch data starts in 2001, and provides deposit rates for different products offered by each branch weekly.

Sample: Bank-county-year-product level. For each, bank-county-year-product, mean_apy, was calculated and was used as the dependent variable. Key product types are CD, SAV, MM, and INTCK (checking).

Key variables:

  • import_sensitivity: County-level sensitivity to Chinese imports based on Autor et al, 2013

  • is_top_q: This is a dummy variable that takes the value 1 if the import_sensitivity is in the forth quartile

  • wa_exposure: This is a bank-level variable, which calculates the weighted average exposure to chinese imports based on the county-level deposit composition

  • exp_top_q: takes the value 1 if wa_exposure is in the forth quartile

Specification: County, Year, Bank, and Product type fixed effects. Standard errors clustered at bank level

Main takeaway: Banks that are more exposed to Chinese imports (based on wa_exposure) offer higher rates in counties that are less exposed to Chinese imports?

1.1 Effect of County Exposure on deposit rates

\[ apy=log(import.sensitivity) + State*Year FE+Bank FE+ ProductTypeFE\]

Q: “Before going to the interaction of county exposure and bank exposure, did you first examine the effect of county exposure alone on deposit rates? Basically the same regression with county, year, bank and product type fixed effects.”



A: Not able to use county fixed effects since import sensitivity is not time varying. Used state*yr fixed effects instead

min_yr = 2000
reg_formula <- as.formula("mean_apy~log(import_sensitivity)|state_yr+CERT+PRD_TYP_JOIN|0|CERT")


r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="CD" & year>=min_yr])
r[[2]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="SAV" & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="MM" & year>=min_yr])
r[[4]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="INTCK" & year>=min_yr])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD","SAV","MM","INTCK") & year>=min_yr])

reg_formula <- as.formula("mean_apy~factor(is_q)|state_yr+CERT+PRD_TYP_JOIN|0|CERT")

r[[6]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD","SAV","MM","INTCK") & year>=min_yr])

reg_formula <- as.formula("mean_apy~is_top_q|state_yr+CERT+PRD_TYP_JOIN|0|CERT")

r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD","SAV","MM","INTCK") & year>=min_yr])

stargazer(r,type="text",column.labels = c("CD","SAV","MM","INTCK","All","All","All"),omit.stat = "ser")
## 
## ===============================================================================
##                                           Dependent variable:                  
##                         -------------------------------------------------------
##                                                mean_apy                        
##                           CD      SAV     MM     INTCK    All     All     All  
##                           (1)     (2)     (3)     (4)     (5)     (6)     (7)  
## -------------------------------------------------------------------------------
## log(import_sensitivity) -0.019  -0.010  -0.006   0.001  -0.006                 
##                         (0.019) (0.018) (0.023) (0.014) (0.015)                
##                                                                                
## factor(is_q)2                                                    0.002         
##                                                                 (0.007)        
##                                                                                
## factor(is_q)3                                                   -0.0004        
##                                                                 (0.008)        
##                                                                                
## factor(is_q)4                                                   -0.001         
##                                                                 (0.008)        
##                                                                                
## is_top_q                                                                -0.002 
##                                                                         (0.005)
##                                                                                
## -------------------------------------------------------------------------------
## Observations            154,434 153,297 146,775 148,502 603,008 603,008 603,008
## R2                       0.977   0.894   0.891   0.853   0.781   0.781   0.781 
## Adjusted R2              0.950   0.773   0.767   0.686   0.747   0.747   0.747 
## ===============================================================================
## Note:                                               *p<0.1; **p<0.05; ***p<0.01

\[ apy=top\_is\_q*YearDummies + State*Year FE+Bank FE+ ProductTypeFE\]

reg_formula <- as.formula("mean_apy~is_top_q*factor(year)|state_yr+CERT+PRD_TYP_JOIN|0|CERT")

r_t <- list()
r_t[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("MM") & year>=min_yr])
r_t[[2]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD") & year>=min_yr])
r_t[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("SAV") & year>=min_yr])

coef_plot_3reg(r_t[[1]],"MMs",r_t[[2]],"CDs",r_t[[3]],"Saving accounts","is_top_q:factor(year)",2001)

1.2 Effect of Bank and County Exposure on deposit rates

\[ apy=import.sensitivity.top.q \times bank.exposure.top.q + County*Year FE+Bank FE+ ProductTypeFE\]

min_yr = 2000
reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
reg_formula2 <- as.formula("mean_apy~log(import_sensitivity)*log(wa_exposure)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")


r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="CD" & year>=min_yr])
r[[2]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN=="CD" & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="SAV" & year>=min_yr])
r[[4]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN=="SAV" & year>=min_yr])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="MM" & year>=min_yr])
r[[6]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN=="MM" & year>=min_yr])
r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN=="INTCK" & year>=min_yr])
r[[8]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN=="INTCK" & year>=min_yr])
r[[9]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD","SAV","MM","INTCK") & year>=min_yr])
r[[10]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% c("CD","SAV","MM","INTCK") & year>=min_yr])

stargazer(r,type="text",column.labels = c("CD","SAV","MM","INTCK","All"),column.separate = rep(2,5),omit.stat = "ser")
## 
## ==============================================================================================================================
##                                                                           Dependent variable:                                 
##                                          -------------------------------------------------------------------------------------
##                                                                                mean_apy                                       
##                                                 CD               SAV              MM              INTCK             All       
##                                             (1)      (2)     (3)     (4)      (5)      (6)     (7)     (8)      (9)     (10)  
## ------------------------------------------------------------------------------------------------------------------------------
## is_top_q                                                                                                                      
##                                           (0.000)          (0.000)          (0.000)          (0.000)          (0.000)         
##                                                                                                                               
## exp_top_q                                                                                                                     
##                                           (0.000)          (0.000)          (0.000)          (0.000)          (0.000)         
##                                                                                                                               
## is_top_q:exp_top_q                       -0.040***         -0.019          -0.068***         -0.011          -0.037***        
##                                           (0.014)          (0.013)          (0.017)          (0.011)          (0.011)         
##                                                                                                                               
## log(import_sensitivity)                                                                                                       
##                                                    (0.000)         (0.000)           (0.000)         (0.000)           (0.000)
##                                                                                                                               
## log(wa_exposure)                                                                                                              
##                                                    (0.000)         (0.000)           (0.000)         (0.000)           (0.000)
##                                                                                                                               
## log(import_sensitivity):log(wa_exposure)           -0.113          -0.034            -0.239          -0.159*           -0.165 
##                                                    (0.116)         (0.103)           (0.213)         (0.096)           (0.114)
##                                                                                                                               
## ------------------------------------------------------------------------------------------------------------------------------
## Observations                              154,434  154,434 153,297 153,297  146,775  146,775 148,502 148,502  603,008  603,008
## R2                                         0.972    0.972   0.875   0.875    0.869    0.869   0.827   0.827    0.778    0.778 
## Adjusted R2                                0.958    0.958   0.811   0.811    0.799    0.799   0.736   0.736    0.757    0.757 
## ==============================================================================================================================
## Note:                                                                                              *p<0.1; **p<0.05; ***p<0.01

\[ apy=top\_is\_q*top\_exp\_q*YearDummies + County*Year FE+Bank FE+ ProductTypeFE\]

reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q*factor(year)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")

r_t <- list()
r_t[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("MM") & year>=min_yr])
r_t[[2]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("CD") & year>=min_yr])
r_t[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% c("SAV") & year>=min_yr])

coef_plot_3reg(r_t[[1]],"MMs",r_t[[2]],"CDs",r_t[[3]],"Saving accounts","is_top_q:exp_top_q:factor(year)",2001)

1.2.1 By Bank Size

1.2.1.1 All products

product_types <- c("CD","SAV","MM","INTCK")

reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
reg_formula2 <- as.formula("mean_apy~log(import_sensitivity)*log(wa_exposure)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[2]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[4]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[6]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])
r[[8]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])

stargazer(r,type="text",column.labels = c("All","Small Banks","Med. Banks","Large Banks"),column.separate = rep(2,4),omit.stat = "ser")
## 
## =============================================================================================================
##                                                                  Dependent variable:                         
##                                          --------------------------------------------------------------------
##                                                                        mean_apy                              
##                                                 All          Small Banks       Med. Banks       Large Banks  
##                                             (1)      (2)     (3)     (4)      (5)      (6)      (7)     (8)  
## -------------------------------------------------------------------------------------------------------------
## is_top_q                                                                                                     
##                                           (0.000)          (0.000)          (0.000)           (0.000)        
##                                                                                                              
## exp_top_q                                                                                                    
##                                           (0.000)          (0.000)          (0.000)           (0.000)        
##                                                                                                              
## is_top_q:exp_top_q                       -0.037***         -0.033          -0.067***          -0.032         
##                                           (0.011)          (0.020)          (0.020)           (0.022)        
##                                                                                                              
## log(import_sensitivity)                                                                                      
##                                                    (0.000)         (0.000)           (0.000)          (0.000)
##                                                                                                              
## log(wa_exposure)                                                                                             
##                                                    (0.000)         (0.000)           (0.000)          (0.000)
##                                                                                                              
## log(import_sensitivity):log(wa_exposure)           -0.165           0.181            -0.684**         -0.370 
##                                                    (0.114)         (0.194)           (0.326)          (0.252)
##                                                                                                              
## -------------------------------------------------------------------------------------------------------------
## Observations                              603,008  603,008 393,423 393,423  109,461  109,461  100,124 100,124
## R2                                         0.778    0.778   0.806   0.806    0.768    0.767    0.712   0.712 
## Adjusted R2                                0.757    0.757   0.780   0.780    0.721    0.721    0.667   0.667 
## =============================================================================================================
## Note:                                                                             *p<0.1; **p<0.05; ***p<0.01
# coef_plot_1reg(r[[1]],"high_x:high_exposure:factor(year)",2001)

1.2.1.2 CDs

product_types <- c("CD")

reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
reg_formula2 <- as.formula("mean_apy~log(import_sensitivity)*log(wa_exposure)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[2]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[4]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[6]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])
r[[8]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])

stargazer(r,type="text",column.labels = c("All","Small Banks","Med. Banks","Large Banks"),column.separate = rep(2,4),omit.stat = "ser")
## 
## =============================================================================================================
##                                                                  Dependent variable:                         
##                                          --------------------------------------------------------------------
##                                                                        mean_apy                              
##                                                 All          Small Banks      Med. Banks       Large Banks   
##                                             (1)      (2)     (3)     (4)     (5)      (6)      (7)     (8)   
## -------------------------------------------------------------------------------------------------------------
## is_top_q                                                                                                     
##                                           (0.000)          (0.000)         (0.000)           (0.000)         
##                                                                                                              
## exp_top_q                                                                                                    
##                                           (0.000)          (0.000)         (0.000)           (0.000)         
##                                                                                                              
## is_top_q:exp_top_q                       -0.040***         -0.005          -0.071**          -0.053*         
##                                           (0.014)          (0.022)         (0.031)           (0.032)         
##                                                                                                              
## log(import_sensitivity)                                                                                      
##                                                    (0.000)         (0.000)          (0.000)          (0.000) 
##                                                                                                              
## log(wa_exposure)                                                                                             
##                                                    (0.000)         (0.000)          (0.000)          (0.000) 
##                                                                                                              
## log(import_sensitivity):log(wa_exposure)           -0.113          0.304*           -0.880**         -0.955**
##                                                    (0.116)         (0.162)          (0.425)          (0.438) 
##                                                                                                              
## -------------------------------------------------------------------------------------------------------------
## Observations                              154,434  154,434 101,090 101,090  27,849   27,849  25,495   25,495 
## R2                                         0.972    0.972   0.982   0.982   0.983    0.983    0.978   0.978  
## Adjusted R2                                0.958    0.958   0.967   0.967   0.951    0.951    0.954   0.954  
## =============================================================================================================
## Note:                                                                             *p<0.1; **p<0.05; ***p<0.01
# coef_plot_1reg(r[[1]],"high_x:high_exposure:factor(year)",2001)

1.2.1.3 MMs

product_types <- c("MM")

reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
reg_formula2 <- as.formula("mean_apy~log(import_sensitivity)*log(wa_exposure)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[2]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[4]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[6]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])
r[[8]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])

stargazer(r,type="text",column.labels = c("All","Small Banks","Med. Banks","Large Banks"),column.separate = rep(2,4),omit.stat = "ser")
## 
## ==============================================================================================================
##                                                                   Dependent variable:                         
##                                          ---------------------------------------------------------------------
##                                                                        mean_apy                               
##                                                 All          Small Banks        Med. Banks       Large Banks  
##                                             (1)      (2)     (3)      (4)      (5)      (6)      (7)     (8)  
## --------------------------------------------------------------------------------------------------------------
## is_top_q                                                                                                      
##                                           (0.000)          (0.000)           (0.000)           (0.000)        
##                                                                                                               
## exp_top_q                                                                                                     
##                                           (0.000)          (0.000)           (0.000)           (0.000)        
##                                                                                                               
## is_top_q:exp_top_q                       -0.068***         -0.070**         -0.139***          -0.039         
##                                           (0.017)          (0.031)           (0.037)           (0.035)        
##                                                                                                               
## log(import_sensitivity)                                                                                       
##                                                    (0.000)          (0.000)           (0.000)          (0.000)
##                                                                                                               
## log(wa_exposure)                                                                                              
##                                                    (0.000)          (0.000)           (0.000)          (0.000)
##                                                                                                               
## log(import_sensitivity):log(wa_exposure)           -0.239            0.290            -1.088**          0.077 
##                                                    (0.213)          (0.427)           (0.499)          (0.471)
##                                                                                                               
## --------------------------------------------------------------------------------------------------------------
## Observations                              146,775  146,775  95,162  95,162   27,146    27,146  24,467  24,467 
## R2                                         0.869    0.869   0.919    0.919    0.912    0.912    0.878   0.878 
## Adjusted R2                                0.799    0.799   0.845    0.845    0.740    0.739    0.734   0.734 
## ==============================================================================================================
## Note:                                                                              *p<0.1; **p<0.05; ***p<0.01
# coef_plot_1reg(r[[1]],"high_x:high_exposure:factor(year)",2001)

1.2.1.4 SAVs

product_types <- c("SAV")

reg_formula <- as.formula("mean_apy~is_top_q*exp_top_q|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
reg_formula2 <- as.formula("mean_apy~log(import_sensitivity)*log(wa_exposure)|fips_yr+CERT+PRD_TYP_JOIN|0|CERT")
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[2]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr])
r[[3]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[4]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e6])
r[[5]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[6]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr & ASSET <1e7 & ASSET>1e6])
r[[7]] <- felm(reg_formula,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])
r[[8]] <- felm(reg_formula2,data=reg_sample[PRD_TYP_JOIN %in% product_types & year>=min_yr  & ASSET>1e7])

stargazer(r,type="text",column.labels = c("All","Small Banks","Med. Banks","Large Banks"),column.separate = rep(2,4),omit.stat = "ser")
## 
## ========================================================================================================
##                                                                Dependent variable:                      
##                                          ---------------------------------------------------------------
##                                                                     mean_apy                            
##                                                All         Small Banks     Med. Banks      Large Banks  
##                                            (1)     (2)     (3)     (4)     (5)     (6)     (7)     (8)  
## --------------------------------------------------------------------------------------------------------
## is_top_q                                                                                                
##                                          (0.000)         (0.000)         (0.000)         (0.000)        
##                                                                                                         
## exp_top_q                                                                                               
##                                          (0.000)         (0.000)         (0.000)         (0.000)        
##                                                                                                         
## is_top_q:exp_top_q                       -0.019          -0.026          -0.030          -0.006         
##                                          (0.013)         (0.025)         (0.027)         (0.016)        
##                                                                                                         
## log(import_sensitivity)                                                                                 
##                                                  (0.000)         (0.000)         (0.000)         (0.000)
##                                                                                                         
## log(wa_exposure)                                                                                        
##                                                  (0.000)         (0.000)         (0.000)         (0.000)
##                                                                                                         
## log(import_sensitivity):log(wa_exposure)         -0.034           0.158          -0.229          -0.223 
##                                                  (0.103)         (0.181)         (0.355)         (0.210)
##                                                                                                         
## --------------------------------------------------------------------------------------------------------
## Observations                             153,297 153,297 100,653 100,653 27,461  27,461  25,183  25,183 
## R2                                        0.875   0.875   0.927   0.927   0.905   0.905   0.871   0.871 
## Adjusted R2                               0.811   0.811   0.864   0.864   0.718   0.718   0.723   0.723 
## ========================================================================================================
## Note:                                                                        *p<0.1; **p<0.05; ***p<0.01
# coef_plot_1reg(r[[1]],"high_x:high_exposure:factor(year)",2001)

2 Deposit Composition

Data: This analysis is based on SOD data.

Note: Deposit fraction for bank \(b\)-county \(c\) for year \(t\) is calculated as \[ \frac{deposits_{b,c,t}}{deposits_{b,t}}\]

\[ change\text{ }in\text{ }deposit\text{ }fraction\text{ }from\text{ }2000\text{ }to\text{ }2007= \frac{deposits_{b,c,2007}}{deposits_{b,2007}}-\frac{deposits_{b,c,2000}}{deposits_{b,2000}} \]

Specification

\[ change\text{ }in\text{ }deposit\text{ }fraction\text{ }from\text{ }2000\text{ }to\text{ }2007_{bank,county} = import.sensitivitity.quartile.dumies \times top\_exp_q+BankFE+County FE \]

sod <- readRDS("sod_sum.rds")
sod <- sod[,.(deposits_bank_fips=sum(DEPSUMBR,na.rm=T)),by=.(YEAR,CERT,fips)]
sod[,total_deposits_bank:=sum(deposits_bank_fips,na.rm=T),by=.(YEAR,CERT)]
sod[,deposits_fips_frac:=deposits_bank_fips/total_deposits_bank]

2.1 From 2000 to 2007

Sample restricted to bank-counties where deposit fraction in the beginning year is at least 0.5% of the total deposits of that bank in the beginning year. Banks with exposure to just one county at the beginning year were excluded.

styr= 2000
edyr = 2007

sod_2000 <- sod[YEAR==styr,c("fips","CERT","deposits_fips_frac")]
setnames(sod_2000,"deposits_fips_frac","deposits_fips_frac_2000")
sod_2000 <- sod_2000[deposits_fips_frac_2000>0.005 & deposits_fips_frac_2000<1]

sod_2007 <- sod[YEAR==edyr,c("fips","CERT","deposits_fips_frac")]
setnames(sod_2007,"deposits_fips_frac","deposits_fips_frac_2007")

sod_2000_2007 <- merge(sod_2000,sod_2007,by=c("fips","CERT"))
sod_2000_2007[,chg_deposit_frac:=(deposits_fips_frac_2007-deposits_fips_frac_2000)]
sod_2000_2007 <- sod_2000_2007[chg_deposit_frac/deposits_fips_frac_2000> -1 & chg_deposit_frac<10]

reg_sample <- merge(sod_2000_2007,measures,by="fips")
reg_sample <- merge(bank_import_exposure,reg_sample,by="CERT")

reg_sample <- merge(reg_sample,asset_w[YEAR==2000,c("CERT","w_asset","ASSET","size")],by.x=c("CERT"),by.y=c("CERT"))
reg_formula <- as.formula("chg_deposit_frac~factor(is_q)*exp_top_q|fips+CERT|0|CERT")
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample)  # ,weights = reg_sample[is.finite(chg_deposit_frac) & deposits_fips_frac_2000>0.01]$deposits_fips_frac_2000
r[[2]] <- felm(reg_formula,data=reg_sample[ size==1]) 
r[[3]] <- felm(reg_formula,data=reg_sample[ size==2]) 
r[[4]] <- felm(reg_formula,data=reg_sample[ size==0]) 

stargazer(r,type="text",no.space = T,column.labels = c("All","Small Banks","Med. Banks","Large Banks"),omit.stat = "ser")
## 
## ====================================================================
##                                     Dependent variable:             
##                         --------------------------------------------
##                                       chg_deposit_frac              
##                            All    Small Banks Med. Banks Large Banks
##                            (1)        (2)        (3)         (4)    
## --------------------------------------------------------------------
## factor(is_q)2                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)3                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)4                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## exp_top_q                                                           
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)2:exp_top_q  -0.021      0.030      0.034*     -0.014   
##                          (0.019)    (0.052)    (0.017)     (0.009)  
## factor(is_q)3:exp_top_q  -0.011      0.074      0.031      -0.005   
##                          (0.019)    (0.049)    (0.022)     (0.011)  
## factor(is_q)4:exp_top_q -0.099***   -0.081*   -0.071***   -0.039*** 
##                          (0.019)    (0.045)    (0.018)     (0.012)  
## --------------------------------------------------------------------
## Observations              9,697      4,202      2,775       2,720   
## R2                        0.627      0.854      0.763       0.515   
## Adjusted R2               0.143     -0.068      -0.109     -0.049   
## ====================================================================
## Note:                                    *p<0.1; **p<0.05; ***p<0.01

2.2 From 2007 to 2019

Sample restricted to bank-counties where deposit fraction in the beginning year is at least 0.5% of the total deposits of that bank in the beginning year. Banks with exposure to just one county at the beginning year were excluded.

styr= 2007
edyr = 2019

sod_2000 <- sod[YEAR==styr,c("fips","CERT","deposits_fips_frac")]
setnames(sod_2000,"deposits_fips_frac","deposits_fips_frac_2000")
sod_2000 <- sod_2000[deposits_fips_frac_2000>0.005 & deposits_fips_frac_2000<1]

sod_2007 <- sod[YEAR==edyr,c("fips","CERT","deposits_fips_frac")]
setnames(sod_2007,"deposits_fips_frac","deposits_fips_frac_2007")

sod_2000_2007 <- merge(sod_2000,sod_2007,by=c("fips","CERT"))
sod_2000_2007[,chg_deposit_frac:=(deposits_fips_frac_2007-deposits_fips_frac_2000)]
sod_2000_2007 <- sod_2000_2007[chg_deposit_frac/deposits_fips_frac_2000> -1 & chg_deposit_frac<10]

reg_sample <- merge(sod_2000_2007,measures,by="fips")
reg_sample <- merge(bank_import_exposure,reg_sample,by="CERT")

reg_sample <- merge(reg_sample,asset_w[YEAR==2000,c("CERT","w_asset","ASSET","size")],by.x=c("CERT"),by.y=c("CERT"))
r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample)  # ,weights = reg_sample[is.finite(chg_deposit_frac) & deposits_fips_frac_2000>0.01]$deposits_fips_frac_2000
r[[2]] <- felm(reg_formula,data=reg_sample[size==1]) 
r[[3]] <- felm(reg_formula,data=reg_sample[size==2]) 
r[[4]] <- felm(reg_formula,data=reg_sample[size==0]) 

stargazer(r,type="text",no.space = T,column.labels = c("All","Small Banks","Med. Banks","Large Banks"),omit.stat = "ser")
## 
## ====================================================================
##                                     Dependent variable:             
##                         --------------------------------------------
##                                       chg_deposit_frac              
##                            All    Small Banks Med. Banks Large Banks
##                            (1)        (2)        (3)         (4)    
## --------------------------------------------------------------------
## factor(is_q)2                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)3                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)4                                                       
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## exp_top_q                                                           
##                          (0.000)    (0.000)    (0.000)     (0.000)  
## factor(is_q)2:exp_top_q  -0.020     -0.008      -0.017     -0.007   
##                          (0.013)    (0.030)    (0.018)     (0.032)  
## factor(is_q)3:exp_top_q  -0.021     -0.001     -0.047**    -0.015   
##                          (0.014)    (0.030)    (0.021)     (0.033)  
## factor(is_q)4:exp_top_q -0.101***  -0.128***  -0.103***    -0.038   
##                          (0.014)    (0.028)    (0.020)     (0.034)  
## --------------------------------------------------------------------
## Observations              9,262      4,575      2,646       2,041   
## R2                        0.617      0.828      0.727       0.570   
## Adjusted R2               0.148      0.074      -0.134      0.030   
## ====================================================================
## Note:                                    *p<0.1; **p<0.05; ***p<0.01

4 Branch Composition

This part is same as the one above, except, now we are looking at the number of branches, not total deposits.

sod <- readRDS("sod_sum.rds")
sod <- sod[DEPSUMBR>0]
sod <- sod[,.(branches_bank_fips=.N),by=.(YEAR,CERT,fips)]
sod[,total_branches_bank:=sum(branches_bank_fips,na.rm=T),by=.(YEAR,CERT)]
sod[,branches_bank_frac:=branches_bank_fips/total_branches_bank]
reg_sample <- merge(measures,sod,by="fips")
reg_sample <- merge(bank_import_exposure,reg_sample,by="CERT")
reg_sample[,high_exposure:=ifelse(wa_exposure>14,1,0)]
reg_sample[,high_x:=high_x-1]
reg_sample[,fips_yr:=paste(fips,YEAR)]
reg_sample[,bank_yr:=paste(CERT,YEAR)]
reg_sample[,bank_fips:=paste(fips,CERT)]

reg_sample <- reg_sample[log(1+wa_exposure)>=2 & log(1+wa_exposure)<=4 & log(import_sensitivity)>=2 & log(import_sensitivity)<=4]
reg_sample <- merge(reg_sample,asset_w[,c("CERT","YEAR","w_asset","ASSET","size")],by.x=c("CERT","YEAR"),by.y=c("CERT","YEAR"))
r <- list()

r[[1]] <- felm(log(0.0001+branches_bank_frac)~log(import_sensitivity)*log(wa_exposure)*factor(YEAR)|bank_fips+YEAR|0|CERT,data=reg_sample)
r[[2]] <- felm(log(0.0001+branches_bank_frac)~is_top_q*exp_top_q*factor(YEAR)|bank_fips+YEAR|0|CERT,data=reg_sample)

# stargazer(r,type="text")

coef_plot_1reg(r[[1]],"log(import_sensitivity):log(wa_exposure):factor(YEAR)",1994)+ggtitle("Beta of log(import_sensitivity)*log(wa_exposure)*factor(YEAR)")

coef_plot_1reg(r[[2]],"is_top_q:exp_top_q:factor(YEAR)",1994)+ggtitle("Beta of is_top_q*exp_top_q*factor(YEAR)")

Sample: By bank size

reg_formula <- as.formula("log(0.0001+branches_bank_frac)~is_top_q*exp_top_q*factor(YEAR)|bank_fips+YEAR|0|CERT")

r <- list()

r[[1]] <- felm(reg_formula,data=reg_sample[size==1])
r[[2]] <- felm(reg_formula,data=reg_sample[size==2])
r[[3]] <- felm(reg_formula,data=reg_sample[size==0])
# stargazer(r,type="text")


coef_plot_3reg(r[[1]],"Small banks",r[[2]],"Medium banks",r[[3]],"Large banks","is_top_q:exp_top_q:factor(YEAR)",1994)+
  ggtitle("Beta of is_top_q*exp_top_q*factor(YEAR)")