# created by bb_bank_data_prelim_03.RMD
parent_sub <- fread("ticker_parentRSSD_subRSSD_2.csv")

bhc_ids <- parent_sub[!duplicated(parent_sub[,c("ID_RSSD_PARENT","ticker")])]
file_path  <-"bb_bank_with_BAC.xlsx"
sheets <- excel_sheets(file_path)
sheets <- sheets[sheets !="tickers"]
sheet_list <- list()
sheet_list <- lapply(sheets, function(x) read_excel(file_path, sheet = x))


data_list <- list()

for(i in 1:length(sheet_list)) {
  
  tmp <- data.table(sheet_list[[i]])
  var_name <- as.character(tmp[1,2])
  var_name <- substr(var_name, 1, regexpr("\\(FA_PERIOD_REFERENCE", var_name)-1)
  # print(paste(i,var_name))
  
  tmp <- tmp[-1]
  names(tmp)[1] <- "date"
  tmp <- tmp[!is.na(date)]
  
  tmp <- melt(tmp,id.vars = "date")
  tmp <- data.table(tmp)
  tmp[,value:=as.numeric(value)]
  tmp <- tmp[!is.na(value)]
  
  tmp[,date:=as.Date(as.numeric(date),origin="1899-12-30")]
  tmp[,date:=ceiling_date(date, "quarter")-1]
  tmp[,var_name:=var_name]
  
  data_list[[i]] <- copy(tmp)
}

data_list <- do.call(rbind,data_list)
data_list <- dcast(data_list,date+variable~var_name,value.var = "value",fun.aggregate = sum)
data_list <- data.table(data_list)
data_list[,variable:=as.character(variable)]
setnames(data_list,"variable","ticker")
data_list[,ticker:=substr(ticker, 1, regexpr(" US Equity", ticker)-1)]
data_list <- data_list[ticker!=""]

data_list <- data_list[date<="2023-03-31"]
data_periods <-  apply(expand.grid(2017:2022,c("0331","0630","0930","1231")), 1, paste, collapse="")
data_periods <- c(data_periods,"20230331")

bhc_y9c <- list()
i <- 1
for(dp in data_periods) {
  temp <- fread(paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Call Reports/Bank Holding Companies/BHCF_data/BHCF",dp,".txt"),sep="^",
             select =c("RSSD9001","BHCK2170","BHCK0081","BHCK0395","BHCK0397","BHCK1754","BHCK1773",
                       "BHDMB987","BHCKB989","BHCK5369","BHCKB529","BHCK3545","BHCK2145","BHCK2150","BHCK2130",
                       "BHCK3656","BHCK2160",
                       "BHDM6631","BHDM6636","BHFN6631","BHFN6636",
                       "BHDMB993","BHCKB995","BHCK3548",
                       "BHCK3190","BHCK4062","BHCKC699","BHCK2750",
                       "BHCK3283","BHCK3230","BHCK3240","BHCK3247","BHCKB530","BHCKA130","BHCKG105",
                       "BHCK1410","BHCK1771","BHCKB558","BHCKB559","BHCKB560","BHCKF161","BHCK4340",
                       "BHCK4107","BHCK4074") )
  temp[,report_date:=dp]
  bhc_y9c[[i]] <- temp
  i=i+1
}

bhc_y9c <- do.call(rbind,bhc_y9c)


names(bhc_y9c) <-  c("BHC_RSSD","bs_assets_total","bs_cash","bs_ib_assets_domestic","bs_ib_assets_foreign","bs_htm","bs_afs",
                     "bs_fed_fund_assets","bs_repo_assets","bs_loans_for_sale","bs_loans_total","bs_trading","bs_fixed_assets","bs_other_reo","bs_subsidiaries",
                     "bs_re_ventures","bs_other_assets",
                     "bs_deposits_domestic_non_int","bs_deposits_domestic_int","bs_deposits_foreign_non_int","bs_deposits_foreign_int",
                     "bs_fed_fund_liabilities","bs_repo_liabilities","bs_trading_liabilities",
                     "bs_other_borrowed_money","bs_subordinated_debt","bs_subordinated_notes","bs_other_liabilities",
                     "bs_preferred_stock","bs_equity_par","bs_equity_surplus","bs_retained_earnings","bs_other_comp_income","bs_other_equity","bs_equity_total",
                     "bs_loans_re","hcb_htm_value","bs_treasury_govt","bs_mbs", "bs_other_securities","bs_loans_cre","is_net_income",
                     "is_interest_income","is_net_interest_income",
                     "report_date"
                     )

bhc_y9c[,date:=as.Date(report_date,"%Y%m%d")]
bhc_y9c[,year:=year(date)]
bhc_y9c[,yr2022:=ifelse(date>"2022-01-30",1,0)]
bhc_y9c[,bs_liabilities_total:=bs_assets_total-bs_equity_total]
bhc_y9c[,assets_equity:=bs_assets_total/bs_equity_total]
bhc_y9c[,liabilities_equity:=bs_liabilities_total/bs_equity_total]

bhc_y9c <- merge(bhc_y9c,bhc_ids[,c("ID_RSSD_PARENT","ticker")],by.x="BHC_RSSD",by.y="ID_RSSD_PARENT")
bhc_y9c <- merge(bhc_y9c,data_list,by=c("ticker","date"))

bhc_y9c[,bs_total_deposits:=bs_deposits_domestic_int+bs_deposits_domestic_non_int+bs_deposits_foreign_int+bs_deposits_foreign_non_int]
# t(bhc_vars[BHC_RSSD==1073757])
bhc_y9c[,tier_1_share:=BS_TIER1_CAPITAL/(bs_equity_total*1000)]
bhc_y9c[,tier_1_assets:=BS_TIER1_CAPITAL/(bs_assets_total*1000)]

setorder(bhc_y9c,BHC_RSSD,date)
bhc_y9c[, lag_bs_total_deposits := shift(bs_total_deposits, n = 4, type = "lag"), by = .(BHC_RSSD)]
bhc_y9c[, lag_bs_assets_total := shift(bs_assets_total, n = 4, type = "lag"), by = .(BHC_RSSD)]

bhc_y9c[,asset_growth:=bs_assets_total/lag_bs_assets_total-1]
bhc_y9c[,deposit_growth:=bs_total_deposits/lag_bs_total_deposits-1]
bb_tickers <- data_list[,c("ticker")]
bb_tickers <- bb_tickers[!duplicated(bb_tickers)]
bb_tickers[,bb:=1]
bhc_tickers <- bhc_y9c[,c("ticker")]
bhc_tickers <- bhc_tickers[!duplicated(bhc_tickers)]
bhc_tickers[,bhc:=1]

bb_tickers <- merge(bb_tickers,bhc_tickers,by="ticker",all.x = T)
nrow(bb_tickers[is.na(bhc)]) #10 banks don't have Y9C Data
## [1] 10
con_call <- dbConnect(RSQLite::SQLite(), "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Call Reports/call_reports.db")

con_ubpr <- dbConnect(RSQLite::SQLite(),  "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Call Reports/ubpr.db")


data_periods <- apply(expand.grid(c("0331","0630","0930","1231"), 2017:2022), 1, paste, collapse="")
data_periods <- c(data_periods,"03312023")
# data_periods <- apply(expand.grid(c("1231"), 2022), 1, paste, collapse="")

call <- list()

i=1
for (dp in data_periods) {
  ubpr_dp <- as.Date(dp,"%m%d%Y")
  ubpr_yr <- year(ubpr_dp)
  
  ubpr_data <- dbGetQuery(con_ubpr,paste0("select 
                                        UBPR2170 assets_total,
                                        UBPRB559 assets_mbs,
                                        UBPRB558 assets_treasury_agency,
                                        UBPR2122 loans_total,
                                        UBPR3123 allowance_loan_loss,
                                        UBPRHR48 interest_on_domestic_deposits,
                                        UBPR2200 deposits,
                                        UBPRE209 deposit_growth,
                                        UBPR1754 htm_cost,
                                        UBPR0211 htm_cost_treasury,
                                        UBPRB558 htm_cost_treasury_plus_agency,
                                        UBPR1771 htm_value,
                                        UBPR1772 afs_cost,
                                        UBPR1773 afs_value,
                                        UBPR3545 trading_account_assets,
                                        UBPR2145 premises_fixed_assets,
                                        UBPRD125 loans_commercial_ind,
                                        UBPR1410 loans_real_estate,
                                        UBPRB538 loans_consumer,
                                        UBPRE630 roe,
                                        UBPR3210 total_equity,
                                        UBPRD486 leverage_ratio,
                                        UBPRD487 tier_1_ratio,
                                        UBPRD488 total_capital_ratio,
                                        UBPRM011 nontransacion_deposit_pct,
                                        UBPRE559 loans_securities_over_15_yrs,
                                        UBPRE570 loans_securities_over_3_yrs,
                                        UBPRE566 htm_assets_ubpr,
                                        UBPRE088 efficiency_ratio,
                                        UBPRE091 yeild_on_loans,
                                        UBPR4074 net_int_income,
                                        UBPR4107 total_int_income,
                                        UBPR2150 other_real_estate_owned,
                                        UBPR2130 unconsolidated_subsidiaries,
                                        UBPR2143 intangible_assets,
                                        UBPRB993 fed_funds_purchased,
                                        UBPRB995 repo_liabilities,
                                        UBPR3548 trading_liabilities,
                                        UBPR3190 other_borrowed_money,
                                        UBPR3200 subordinated_debt_debentures,
                                        UBPR2930 other_liabilties,
                                        UBPRA549+UBPRA555+UBPRA564+UBPRA570 assets_maturity_less_than_3_months,
                                        UBPRA550+UBPRA556+UBPRA248+UBPRA565+UBPRA571+UBPRA247 assets_maturity_3_mn_1yr,
                                        UBPRA551+UBPRA557+UBPRA561+UBPRA566+UBPRA572 assets_maturity_1_to_3_yr,
                                        UBPRA552+UBPRA558+UBPRA562+UBPRA567+UBPRA573 assets_maturity_3_to_5_yr,
                                        UBPRA553+UBPRA559+UBPRA568+UBPRA574 assets_maturity_5_to_15_yr,
                                        UBPRA553 govt_agency_maturity_5_to_15_yr,
                                        UBPRA559 mbs_maturity_5_to_15_yr,
                                        UBPRA564 re_loans_maturity_less_than_3_months,
                                        UBPRA570 other_loans_maturity_less_than_3_months,
                                        UBPRA565 re_loans_maturity_3_mn_1yr,
                                        UBPRA571 other_loans_maturity_3_mn_1yr,
                                        UBPRA566 re_loans_maturity_1_to_3_yr,
                                        UBPRA572 other_loans_maturity_1_to_3_yr,
                                        UBPRA567 re_loans_maturity_3_to_5_yr,
                                        UBPRA573 other_loans_maturity_3_to_5_yr,
                                        UBPRA568 re_loans_maturity_5_to_15_yr,
                                        UBPRA574 other_loans_maturity_5_to_15_yr,
                                        UBPRA554+UBPRA560+UBPRA569+UBPRA575 assets_maturity_more_than_15_yr,
                                        UBPRA554 govt_agency_maturity_more_than_15_yr,
                                        UBPRA560 mbs_maturity_more_than_15_yr,
                                        UBPRA569 re_loans_maturity_more_than_15_yr,
                                        UBPRA575 other_loans_maturity_more_than_15_yr,
                                        UBPR0081+UBPR0071 cash,
                                        UBPR4340 net_income,
                                        IDRSSD
                                      from ubpr_",ubpr_yr," 
                                      where 
                                      data_period=",as.numeric(ubpr_dp),""))
  
  
  call_1 <- dbGetQuery(con_call,paste0("select 
                                      RCON2200 deposits_domestic,
                                      RCON2385 non_transaction_deposits,
                                      RCONF049 deposits_domestic_insured,
                                      RCONF051 deposits_domestic_uninsured,
                                      RCONF050 deposits_domestic_no_insured,
                                      RCONF052 deposits_domestic_no_uninsured,
                                      RCON6631 deposits_domestic_non_interest,
                                      RCON1797+RCON5367+RCON5368+RCON1460+RCONF158 secured_by_residential_real_estate,
                                      RCONF160+RCONF161+RCONF159 secured_by_nonresidential_real_estate,
                                      RCONB538+RCONB539+RCONK137+RCONK207 consumer_loans,
                                      IDRSSD 
                                   from call_1_",dp," "))

  call_2 <- dbGetQuery(con_call,paste0("select 
                                        RCFN2200 deposits_foreign,
                                        FDIC_Certificate_Number,
                                        Financial_Institution_Name,
                                        Financial_Institution_State,
                                        data_period,
                                        IDRSSD 
                                     from call_2_",dp," "))
  
  call_2022 <- merge(call_1,call_2,by="IDRSSD")
  call_2022 <- merge(call_2022,ubpr_data,by="IDRSSD")
  call_2022 <- data.table(call_2022)
  call_2022[,deposits_foreign:=ifelse(is.na(deposits_foreign),0,deposits_foreign)]


  # call_2022[,c("cash_2","cash_1","assets_maturity_more_than_15_yr_1","assets_maturity_5_to_15_yr_1","assets_maturity_3_to_5_yr_1","assets_maturity_1_to_3_yr_1","assets_maturity_3_mn_1yr_1","assets_maturity_3_mn_1yr_1","assets_maturity_less_than_3_months_1"):=list(NULL)]
  
  
  call[[i]] <- call_2022

  i=i+1
}

call <- rbindlist(call,fill=T)

dbDisconnect(con_call)
dbDisconnect(con_ubpr)

call[,date:=as.Date(data_period,"%m%d%Y")]

call <- merge(call,parent_sub,by.x="IDRSSD",by.y="ID_RSSD_OFFSPRING")

call[,deposits_uninsured_assets:=deposits_domestic_uninsured/assets_total]

call[,wa_maturiy_assets:=(assets_maturity_less_than_3_months*0.25+assets_maturity_3_mn_1yr*0.75+assets_maturity_1_to_3_yr*2+assets_maturity_3_to_5_yr*4+assets_maturity_5_to_15_yr*10+assets_maturity_more_than_15_yr*20)/(cash+assets_maturity_less_than_3_months+assets_maturity_3_mn_1yr+assets_maturity_1_to_3_yr+assets_maturity_3_to_5_yr+assets_maturity_5_to_15_yr+assets_maturity_more_than_15_yr)]
# 
#                                       
# call[,maturity_5_to_15_yr_assets:=assets_maturity_5_to_15_yr/assets_total]
# call[,maturity_more_than_15_yr_assets:=assets_maturity_more_than_15_yr/assets_total]
# 
# call[,govt_agency_more_than_5_yr_assets:=(govt_agency_maturity_more_than_15_yr+govt_agency_maturity_5_to_15_yr)/assets_total]
# call[,mbs_more_than_5_yr_assets:=(mbs_maturity_more_than_15_yr+mbs_maturity_5_to_15_yr)/assets_total]
# call[,re_loans_more_than_5_yr_assets:=(re_loans_maturity_more_than_15_yr+re_loans_maturity_5_to_15_yr)/assets_total]
# call[,other_loans_more_than_5_yr_assets:=(other_loans_maturity_more_than_15_yr+other_loans_maturity_5_to_15_yr)/assets_total]
# call[,loans_5_to_15_yr:=(re_loans_maturity_more_than_15_yr+re_loans_maturity_5_to_15_yr)/assets_total]
# call[,other_loans_more_than_5_yr_assets:=(other_loans_maturity_more_than_15_yr+other_loans_maturity_5_to_15_yr)/assets_total]



deposit_betas <- fread("deposit_betas_pschnabl.csv")
deposit_betas <- deposit_betas[,c("rssdid","expbeta","depexpbeta")]

call <- merge(call,deposit_betas,by.x ="IDRSSD",by.y="rssdid",all.x=T)
f1 <- call
setorder(f1,IDRSSD,date)
f1[,year:=year(date)]
f1[, lag_net_int_income := shift(net_int_income, n = 1, type = "lag"), by = .(IDRSSD,year)]
f1[, lag_total_int_income := shift(total_int_income, n = 1, type = "lag"), by = .(IDRSSD,year)]
f1[,nii:=net_int_income-lag_net_int_income]
f1[,nii:=ifelse(is.na(nii),net_int_income,nii)]

f1[,nim:=nii*100/assets_total]
f1[,bank_size_category:=ifelse(assets_total>250e6,"4. more than 250b",
                               ifelse(assets_total>50e6,"3. 50b to 250b",
                                      ifelse(assets_total>5e6,"2. 5b to 50b",
                                             ifelse(assets_total>1e6,"1. 1b to 5b","0. less than 1b"))))]


f1 <- f1[date>"2018-12-31",.(nim=mean(nim,na.rm=T)),by=.(date,bank_size_category)]

ggplot(f1,aes(x=date,y=nim,color=bank_size_category))+geom_line()+geom_point()+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  labs(y="Net interest income/Assets (%)",x="")

call_parent <- call[,.(assets_total=sum(assets_total,na.rm=T),
                       expbeta = mean(expbeta,na.rm=T),
                       depexpbeta = mean(depexpbeta,na.rm=T),
                       assets_mbs=sum(assets_mbs,na.rm=T),
                       assets_treasury_agency=sum(assets_treasury_agency,na.rm=T),
                       loans_total=sum(loans_total,na.rm=T),
                       deposits_total = sum(deposits,na.rm=T),
                       htm_cost = sum(htm_cost,na.rm=T),
                       htm_value = sum(htm_value,na.rm=T),
                       htm_cost_treasury = sum(htm_cost_treasury,na.rm = T),
                       htm_cost_treasury_plus_agency = sum(htm_cost_treasury_plus_agency,na.rm=T),
                       afs_cost = sum(afs_cost,na.rm=T),
                       afs_value = sum(afs_value,na.rm=T),
                       equity_total = sum(total_equity,na.rm=T),
                       trading_account_assets = sum(trading_account_assets,na.rm=T),
                       deposits_domestic = sum(deposits_domestic,na.rm=T),
                       deposits_domestic_uninsured = sum(deposits_domestic_uninsured,na.rm=T),
                       deposits_domestic_insured = sum(deposits_domestic_insured,na.rm=T),
                       non_transaction_deposits = sum(non_transaction_deposits,na.rm=T),
                       cash = sum(cash,na.rm=T),
                       loans_commercial_ind = sum(loans_commercial_ind,na.rm=T),
                       loans_real_estate = sum(loans_real_estate,na.rm=T),
                       loans_sfr = sum(secured_by_residential_real_estate,na.rm=T),
                       loans_cre = sum(secured_by_nonresidential_real_estate,na.rm=T),
                       loans_consumer = sum(consumer_loans,na.rm=T),
                       loans_securities_over_15_yrs=mean(loans_securities_over_15_yrs,na.rm=T),
                       loans_securities_over_3_yrs=mean(loans_securities_over_3_yrs,na.rm=T),
                       interest_on_domestic_deposits = mean(interest_on_domestic_deposits,na.rm=T),
                       htm_assets_ubpr=mean(htm_assets_ubpr,na.rm=T),
                       deposit_growth=mean(deposit_growth,na.rm=T),
                       premises_fixed_assets=sum(premises_fixed_assets,na.rm=T),
                       other_real_estate_owned = sum(other_real_estate_owned,na.rm = T),
                       unconsolidated_subsidiaries = sum(unconsolidated_subsidiaries,na.rm = T),
                       intangible_assets = sum(intangible_assets,na.rm=T),
                       deposits_foreign=sum(deposits_foreign,na.rm=T),
                       fed_funds_purchased=sum(fed_funds_purchased,na.rm=T),
                       repo_liabilities=sum(repo_liabilities,na.rm=T),
                       trading_liabilities=sum(trading_liabilities,na.rm=T),
                       other_borrowed_money=sum(other_borrowed_money,na.rm=T),
                       subordinated_debt_debentures=sum(subordinated_debt_debentures,na.rm=T),
                       other_liabilties=sum(other_liabilties,na.rm=T),
                       wa_maturiy_assets=mean(wa_maturiy_assets,na.rm=T),
                       re_loans_less_than_3_months_assets = sum(re_loans_maturity_less_than_3_months,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_less_than_3_months_assets = sum(other_loans_maturity_less_than_3_months,na.rm=T)/sum(assets_total,na.rm=T),
                       re_loans_3_mn_1yr_assets = sum(re_loans_maturity_3_mn_1yr,na.rm=T)/sum(assets_total,na.rm=T),
                       re_loans_1_to_3_yr_assets = sum(re_loans_maturity_1_to_3_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       re_loans_3_to_5_yr_assets = sum(re_loans_maturity_3_to_5_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       re_loans_5_to_15_yr_assets = sum(re_loans_maturity_5_to_15_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       re_loans_more_than_15_yr_assets = sum(re_loans_maturity_more_than_15_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_3_mn_1yr_assets = sum(other_loans_maturity_3_mn_1yr,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_1_to_3_yr_assets = sum(other_loans_maturity_1_to_3_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_3_to_5_yr_assets = sum(other_loans_maturity_3_to_5_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_5_to_15_yr_assets = sum(other_loans_maturity_5_to_15_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       other_loans_more_than_15_yr_assets = sum(other_loans_maturity_more_than_15_yr,na.rm=T)/sum(assets_total,na.rm=T),
                       tier_1_ratio=mean(tier_1_ratio,na.rm=T),
                       assets_maturity_3_to_5_yr = sum(assets_maturity_3_to_5_yr,na.rm=T),
                       assets_maturity_5_to_15_yr=sum(assets_maturity_5_to_15_yr,na.rm=T),
                       assets_maturity_more_than_15_yr=sum(assets_maturity_more_than_15_yr,na.rm=T)
                       ),
                    by=.(ticker,date)]

call_parent[,deposits_domestic_insured_to_assets:=deposits_domestic_insured/assets_total]
call_parent[,deposits_domestic_uninsured_to_assets:=deposits_domestic_uninsured/assets_total]

# call_parent <- call_parent[,c("ticker","date","deposits_domestic_insured_to_assets","deposits_domestic_uninsured_to_assets","wa_maturiy_assets","re_loans_3_to_5_yr_assets","re_loans_5_to_15_yr_assets", "re_loans_more_than_15_yr_assets","other_loans_3_to_5_yr_assets","other_loans_5_to_15_yr_assets","other_loans_more_than_15_yr_assets","expbeta","depexpbeta")]


bhc_y9c <- merge(bhc_y9c,call_parent,by=c("ticker","date"),all.x=T)
crsp <- fread("crsp_price_shout_2016_2022.csv")
crsp[,date:=as.Date(date)]
crsp[,date:=ceiling_date(as.Date(date),unit="months")-days(1)]
crsp[,PRC:=abs(PRC)/CFACPR]
crsp[,SHROUT:=abs(SHROUT)/CFACSHR]

bhc_y9c <- merge(bhc_y9c,crsp[,c("TICKER","date","PRC","SHROUT")],by.x=c("ticker","date"),by.y=c("TICKER","date"),all.x=T)
bhc_y9c[,market_cap:=PRC*SHROUT]
bhc_y9c[,market_cap:=ifelse(is.na(market_cap),HISTORICAL_MARKET_CAP/1000,abs(market_cap))]
# montyly_price <- function(ticker) {
#   tryCatch({
#     t <- getSymbols(ticker, from = "2016-01-01", to = "2023-03-31", auto.assign = FALSE,periodicity="monthly")
#     t <- t[,4]
#     names(t) <- ticker
#     return(t)
#   },error=function(cond) {})
# }
# 
# stock_prices <- lapply(unique(bhc_y9c$ticker),montyly_price)
# stock_prices <- do.call(cbind, stock_prices)
# stock_prices <- as.data.table(stock_prices)
# setnames(stock_prices,"index","date")
# stock_prices[,date:=ceiling_date(date,unit = "month")-days(1)]
# 
# saveRDS(stock_prices,"bank_stock_prices_2016_2023_March.rds")

stock_prices <- readRDS("bank_stock_prices_2016_2023_March.rds")

stock_prices_copy <- copy(stock_prices)

stock_price_long <- melt(stock_prices,id.vars = "date")
stock_price_long <- data.table(stock_price_long)
stock_price_long[,ticker:=as.character(variable)]
stock_price_long[,stock_price:=value]
stock_price_long[,c("variable","value"):=list(NULL)]

bhc_y9c <- merge(bhc_y9c,stock_price_long,by=c("ticker","date"),all.x=T)

temp1 <- stock_prices[date=="2022-12-31"]
temp1[,date:=NULL]
temp1 <- melt(temp1)
setnames(temp1,"value","prc_20221231")
temp1 <- data.table(temp1)
temp1[,variable:=as.character(variable)]

temp3 <- stock_prices[date=="2023-03-31"]
temp3[,date:=NULL]
temp3 <- data.table(temp3)
temp3 <- melt(temp3)
setnames(temp3,"value","prc_20230331")
temp3 <- data.table(temp3)
temp3[,variable:=as.character(variable)]

march2023 <- bhc_y9c[date=="2022-12-31"]
march2023[,date:=as.Date("2023-03-31")]

march2023 <- merge(march2023,temp1,by.x="ticker",by.y="variable")
march2023 <- merge(march2023,temp3,by.x="ticker",by.y="variable")
march2023[,market_cap:=prc_20230331*market_cap/prc_20221231]
march2023[,c("prc_20230331","prc_20221231"):=list(NULL)]

bhc_y9c <- rbind(bhc_y9c[date<="2022-12-31"],march2023)
bhc_y9c[,htm_assets:=bs_htm/bs_assets_total]
bhc_y9c[,afs_assets:=bs_afs/bs_assets_total]
bhc_y9c[,trading_assets:=bs_trading/bs_assets_total]
bhc_y9c[,large_deposits_assets:=BS_LARGE_DPST/BS_TOT_ASSET]
bhc_y9c[,other_deposits_assets:=(bs_total_deposits*1000-BS_LARGE_DPST)/BS_TOT_ASSET]
bhc_y9c[,subordinated_debt_assets:= bs_subordinated_debt/bs_assets_total]
bhc_y9c[,total_deposit_assets:=bs_total_deposits/bs_assets_total]
bhc_y9c[,equity_assets:=bs_equity_total/bs_assets_total]
bhc_y9c[,loans_re_assets:=bs_loans_re/bs_assets_total]
bhc_y9c[,loans_other_assets:=(bs_loans_total-bs_loans_re)/bs_assets_total]
bhc_y9c[,unins_deposits_assets:=deposits_domestic_uninsured_to_assets]
bhc_y9c[,ins_deposits_assets:=deposits_domestic_insured_to_assets]
bhc_y9c[,unrealized_loss_htm:=hcb_htm_value-bs_htm]
bhc_y9c[,cre_assets:=bs_loans_cre/bs_assets_total]

bhc_y9c[,MV_e:=market_cap]#ifelse(!is.na(market_cap_20230503),market_cap_20230503,market_cap)]
bhc_y9c[,q_MV_L_A:=(MV_e+bs_liabilities_total)/bs_assets_total]
bhc_y9c[,q_MV_BV:=MV_e/bs_equity_total]

bhc_y9c[,ROE:=is_net_income/bs_equity_total]

bhc_y9c[,nim:=is_net_interest_income/is_interest_income]
temp_bhc_y9c <- copy(bhc_y9c)
bhc_y9c[,bank_size_cat:=ifelse(ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET>250e9]$ticker,"3. more than 250b",
                               ifelse(ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET>50e9]$ticker,"2. 50b to 250b","1. less than 50b"))]

fed_funds <- fread("FEDFUNDS.csv")
fed_funds[,date:=as.Date(date,"%m/%d/%Y")]
t <- fed_funds[date=="2022-12-31"]
t[,date:=as.Date("2023-03-31")]
t[,fed_funds_rate:=5]
fed_funds <- rbind(fed_funds,t)

bhc_y9c <- merge(bhc_y9c,fed_funds,by="date")

bhc_y9c[,unrealized_loss_estimated:= (assets_maturity_3_to_5_yr*3+assets_maturity_5_to_15_yr*5+assets_maturity_more_than_15_yr*10)*fed_funds_rate/100]
f2 <- bhc_y9c

f2[,market_cap_initial:=MV_e[date=="2019-03-31"],by=ticker]
f2[,mkt_val_change:=MV_e/market_cap_initial]

f2 <- f2[date>="2019-01-01" & is.finite(mkt_val_change),.(mkt_cap=mean(mkt_val_change,na.rm=T)),by=.(date,bank_size_cat)]

ggplot(f2,aes(x=date,y=mkt_cap,color=bank_size_cat))+geom_point()+geom_line()+
   theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  labs(y="Mean market cap change (Q1 2019=1)",x="")

q_summary <- bhc_y9c[,.(q=mean(q_MV_BV,na.rm=T),se=sd(q_MV_L_A,na.rm=T)),by=.(date,bank_size_cat)]

ggplot(q_summary,aes(x=date,y=q,color=bank_size_cat))+geom_point()+geom_line()+labs(x="",y="Price-to-book")+theme_minimal()+theme(legend.title = element_blank(),legend.position = "bottom")

g <- list()


mv_summary <- bhc_y9c[ date>"2019-01-01",
                      .(equity=sum(bs_equity_total,na.rm=T),
                        market_cap = sum(MV_e,na.rm=T),
                        unrealized_loss=sum(unrealized_loss_estimated,na.rm=T)),
                      by=date]

mv_summary_melt <- reshape2::melt(mv_summary, id.vars = "date")

g[[1]] <- ggplot(mv_summary_melt, aes(x = date, y = value/1e6, color = variable)) +
  geom_line(size=1)+
  geom_point(aes(shape=variable))+
  theme_minimal()+
  theme(legend.position = "none",legend.title = element_blank())+
  #scale_color_manual(values=c("dodgerblue4","cornflowerblue","darkred"))+
  labs(x="",y="$ billions")#+ggtitle("Panel A: All banks")



mv_summary <- bhc_y9c[ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET>250e6]$ticker & date>"2019-01-01",
                      .(equity=sum(bs_equity_total,na.rm=T),
                        market_cap = sum(MV_e,na.rm=T),
                        unrealized_loss=sum(unrealized_loss_estimated,na.rm=T)),
                      by=date]

mv_summary_melt <- reshape2::melt(mv_summary, id.vars = "date")

g[[2]] <- ggplot(mv_summary_melt, aes(x = date, y = value/1e6, color = variable)) +
  geom_line(size=1)+
  geom_point(aes(shape=variable))+
  theme_minimal()+
  theme(legend.position = "none",legend.title = element_blank())+
  #scale_color_manual(values=c("dodgerblue4","cornflowerblue","darkred"))+
  labs(x="",y="")#+ggtitle("Panel B: Large banks (assets>= $ 100 billion)")



mv_summary <- bhc_y9c[ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET<250e9 & BS_TOT_ASSET > 50e9]$ticker & date>"2019-01-01",
                      .(equity=sum(bs_equity_total,na.rm=T),
                        market_cap = sum(MV_e,na.rm=T),
                        unrealized_loss=sum(unrealized_loss_estimated,na.rm=T)),
                      by=date]

mv_summary_melt <- reshape2::melt(mv_summary, id.vars = "date")

g[[3]] <- ggplot(mv_summary_melt, aes(x = date, y = value/1e6, color = variable)) +
  geom_line(size=1)+
  geom_point(aes(shape=variable))+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  #scale_color_manual(values=c("dodgerblue4","cornflowerblue","darkred"))+
  labs(x="",y="$ billions")#+ggtitle("Panel C: Regional banks (assets < $ 100 bn and > $ 10 bn")


mv_summary <- bhc_y9c[ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET <= 50e9]$ticker & date>"2019-01-01",
                      .(equity=sum(bs_equity_total,na.rm=T),
                        market_cap = sum(MV_e,na.rm=T),
                        unrealized_loss=sum(unrealized_loss_estimated,na.rm=T)),
                      by=date]

mv_summary_melt <- reshape2::melt(mv_summary, id.vars = "date")

g[[4]] <- ggplot(mv_summary_melt, aes(x = date, y = value/1e6, color = variable)) +
  geom_line(size=1)+
  geom_point(aes(shape=variable))+
  theme_minimal()+
  theme(legend.position = "bottom",legend.title = element_blank())+
  #scale_color_manual(values=c("dodgerblue4","cornflowerblue","darkred"))+
  labs(x="",y="")#+ggtitle("Panel D: Small banks (assets <= $ 10 bn)")

grid.arrange(g[[1]],g[[2]],g[[3]],g[[4]])

# destination = 'C:\\Users\\dratnadiwakara2\\Downloads\\mv_bv_ul.pdf'
# pdf(file=destination,width = 7,height = 5)
# for (i in 1:4) {
#   print(g[[i]])
# }
# dev.off()
reg_sample <- bhc_y9c[ticker %in% bhc_y9c[date=="2022-12-31" & BS_TOT_ASSET<250e9 ]$ticker]
reg_sample[,year:=year(date)]
reg_sample[,unr_assets:=unrealized_loss_estimated/bs_assets_total]
reg_sample[,deposit_growth:=deposit_growth.x]
reg_sample[,re_loans_less_than_3_yr_assets:=re_loans_less_than_3_months_assets+re_loans_3_mn_1yr_assets+re_loans_1_to_3_yr_assets]                 
reg_sample[,qtrs:=((year(date) - 2021) * 4) + quarter(date) -4 ]
reg_sample[,qtrs:=as.factor(qtrs)]
reg_sample[,re_loans_more_than_5_assets:=re_loans_5_to_15_yr_assets+re_loans_more_than_15_yr_assets]
reg_sample[,other_loans_less_than_3_yr_assets:=other_loans_less_than_3_months_assets+other_loans_3_mn_1yr_assets+other_loans_1_to_3_yr_assets]
reg_sample[,other_loans_more_than_5_assets:=other_loans_5_to_15_yr_assets+other_loans_more_than_15_yr_assets]
# reg_sample[,qtrs:=relevel(qtrs,ref = "0")]

cols <- c("q_MV_L_A","q_MV_BV","htm_assets","afs_assets","depexpbeta","unins_deposits_assets","ins_deposits_assets","tier_1_assets","year","bs_assets_total","ROE","deposit_growth","date","re_loans_less_than_3_yr_assets","re_loans_3_to_5_yr_assets","re_loans_more_than_5_assets","other_loans_less_than_3_yr_assets","other_loans_3_to_5_yr_assets","other_loans_more_than_5_assets","qtrs","ticker","DEPOSITS_TO_FUNDING","deposits_domestic_uninsured","wa_maturiy_assets")
reg_sample <- reg_sample[,..cols]
reg_sample <- reg_sample[complete.cases(reg_sample)]
reg_sample[,w_assets:=bs_assets_total/sum(bs_assets_total,na.rm = T),by=year]

reg_sample[,q_below_1:=ifelse(q_MV_L_A<1,1,0)]
reg_sample[,mb_below_1:=ifelse(q_MV_BV<1,1,0)]

 t <- reg_sample[,.(q=mean(q_MV_L_A,na.rm=T),
                    mb = mean(q_MV_BV,na.rm=T),
                    q_below_1=mean(q_below_1,na.rm=T),
                    mb_below_1=mean(mb_below_1,na.rm=T)),
                 by=date]
 
 # reg_sample[,deposits_assets:=depo]
ggplot(reg_sample[,.(q_MV_L_A=mean(q_MV_BV,na.rm=T)),by=date],aes(x=date,y=q_MV_L_A))+geom_line()

stargazer(reg_sample[date=="2022-12-31"],summary.stat = c("mean","sd","p25","median","p75","N"),type="text")
## 
## ==============================================================================================================
## Statistic                              Mean         St. Dev.      Pctl(25)       Median        Pctl(75)     N 
## --------------------------------------------------------------------------------------------------------------
## q_MV_L_A                              1.030          0.047          1.003         1.019         1.046      174
## q_MV_BV                               1.325          0.523          1.027         1.210         1.461      174
## htm_assets                            0.054          0.070          0.000         0.038         0.083      174
## afs_assets                            0.151          0.091          0.091         0.129         0.189      174
## depexpbeta                            0.391          0.094          0.336         0.380         0.447      174
## unins_deposits_assets                 0.448          0.118          0.381         0.444         0.509      174
## ins_deposits_assets                   0.373          0.113          0.310         0.380         0.429      174
## tier_1_assets                         0.086          0.030          0.084         0.091         0.101      174
## year                                2,022.000        0.000          2,022         2,022         2,022      174
## bs_assets_total                   26,098,620.000 43,995,603.000 5,154,224.000 9,686,066.000 23,606,877.000 174
## ROE                                   0.128          0.041          0.102         0.121         0.150      174
## deposit_growth                        0.047          0.154         -0.040         0.014         0.084      174
## re_loans_less_than_3_yr_assets        0.019          0.019          0.007         0.015         0.026      174
## re_loans_3_to_5_yr_assets             0.015          0.016          0.005         0.012         0.020      174
## re_loans_more_than_5_assets           0.086          0.063          0.038         0.080         0.116      174
## other_loans_less_than_3_yr_assets     0.324          0.133          0.234         0.305         0.391      174
## other_loans_3_to_5_yr_assets          0.108          0.056          0.064         0.103         0.141      174
## other_loans_more_than_5_assets        0.132          0.084          0.071         0.118         0.179      174
## DEPOSITS_TO_FUNDING                   90.974         12.837        89.862        92.885         95.637     174
## deposits_domestic_uninsured       11,824,832.000 21,458,934.000  2,126,017.0    3,856,086     10,866,970   174
## wa_maturiy_assets                     5.467          2.049          4.196         5.430         6.745      174
## w_assets                              0.001          0.002         0.0003         0.001         0.001      174
## q_below_1                             0.218          0.414            0             0             0        174
## mb_below_1                            0.218          0.414            0             0             0        174
## --------------------------------------------------------------------------------------------------------------
dep_var = "q_MV_L_A~"
controls = c("depexpbeta","unins_deposits_assets","htm_assets") 

# +ROE+log(bs_assets_total)+deposit_growth

r <- list()
r[[1]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-09-30"],weights = reg_sample[date=="2020-09-30"]$w_assets  )
r[[2]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-12-31"],weights = reg_sample[date=="2020-12-31"]$w_assets  )
r[[3]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-03-31"],weights = reg_sample[date=="2021-03-31"]$w_assets  )
r[[4]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-06-30"],weights = reg_sample[date=="2021-06-30"]$w_assets  )
r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-09-30"],weights = reg_sample[date=="2021-09-30"]$w_assets  )
r[[6]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-12-31"],weights = reg_sample[date=="2021-12-31"]$w_assets  )
r[[7]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-03-31"],weights = reg_sample[date=="2022-03-31"]$w_assets  )
r[[8]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-06-30"],weights = reg_sample[date=="2022-06-30"]$w_assets  )
r[[9]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-09-30"],weights = reg_sample[date=="2022-09-30"]$w_assets  )
r[[10]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-12-31"],weights = reg_sample[date=="2022-12-31"]$w_assets  )
# r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[year==2022],weights = reg_sample[year==2022]$w_assets )
r[[11]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2023-03-31"],weights = reg_sample[date=="2023-03-31"]$w_assets  )

stargazer(r,type="text",no.space = T,omit.stat = "ser",
          column.labels = c("20 Q3","20 Q4","21 Q1","21 Q2","21 Q3","21 Q4","22 Q1","22 Q2","22 Q3","22 Q4","23 Q1"),
          dep.var.labels = c("(MV+L)/A"))
## 
## ===================================================================================================================================
##                                                                    Dependent variable:                                             
##                       -------------------------------------------------------------------------------------------------------------
##                                                                         (MV+L)/A                                                   
##                         20 Q3     20 Q4     21 Q1     21 Q2     21 Q3     21 Q4     22 Q1     22 Q2     22 Q3     22 Q4     23 Q1  
##                          (1)       (2)       (3)       (4)       (5)       (6)       (7)       (8)       (9)      (10)      (11)   
## -----------------------------------------------------------------------------------------------------------------------------------
## depexpbeta            -0.059*** -0.108*** -0.093*** -0.125*** -0.170*** -0.161*** -0.160*** -0.130*** -0.137*** -0.149*** -0.120***
##                        (0.022)   (0.027)   (0.029)   (0.031)   (0.032)   (0.032)   (0.028)   (0.025)   (0.025)   (0.024)   (0.023) 
## unins_deposits_assets  -0.023    -0.022    -0.013    -0.038   -0.070**  -0.068**  -0.057**   -0.033    -0.033   -0.053**  -0.105***
##                        (0.019)   (0.024)   (0.026)   (0.026)   (0.028)   (0.028)   (0.026)   (0.023)   (0.023)   (0.024)   (0.023) 
## htm_assets            0.228***  0.266***  0.199***  0.176***  0.179***   0.100**    0.007     0.004    -0.066*  -0.088**  -0.136***
##                        (0.069)   (0.083)   (0.062)   (0.050)   (0.045)   (0.040)   (0.037)   (0.034)   (0.034)   (0.034)   (0.033) 
## Constant              1.006***  1.057***  1.074***  1.095***  1.134***  1.135***  1.132***  1.090***  1.100***  1.114***  1.108*** 
##                        (0.014)   (0.017)   (0.018)   (0.019)   (0.020)   (0.019)   (0.018)   (0.015)   (0.015)   (0.014)   (0.014) 
## -----------------------------------------------------------------------------------------------------------------------------------
## Observations             161       163       164       165       165       165       167       168       168       174       173   
## R2                      0.112     0.151     0.128     0.167     0.238     0.189     0.179     0.153     0.173     0.238     0.335  
## Adjusted R2             0.095     0.135     0.111     0.151     0.224     0.174     0.164     0.137     0.158     0.224     0.323  
## ===================================================================================================================================
## Note:                                                                                                   *p<0.1; **p<0.05; ***p<0.01
dep_var = "q_MV_L_A~"
controls = c("re_loans_less_than_3_yr_assets","re_loans_3_to_5_yr_assets","re_loans_more_than_5_assets","other_loans_less_than_3_yr_assets","other_loans_3_to_5_yr_assets","other_loans_more_than_5_assets","depexpbeta","unins_deposits_assets","htm_assets","tier_1_assets","ROE") 

# +ROE+log(bs_assets_total)+deposit_growth

r <- list()
r[[1]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-09-30"],weights = reg_sample[date=="2020-09-30"]$w_assets  )
r[[2]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-12-31"],weights = reg_sample[date=="2020-12-31"]$w_assets  )
r[[3]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-03-31"],weights = reg_sample[date=="2021-03-31"]$w_assets  )
r[[4]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-06-30"],weights = reg_sample[date=="2021-06-30"]$w_assets  )
r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-09-30"],weights = reg_sample[date=="2021-09-30"]$w_assets  )
r[[6]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-12-31"],weights = reg_sample[date=="2021-12-31"]$w_assets  )
r[[7]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-03-31"],weights = reg_sample[date=="2022-03-31"]$w_assets  )
r[[8]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-06-30"],weights = reg_sample[date=="2022-06-30"]$w_assets  )
r[[9]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-09-30"],weights = reg_sample[date=="2022-09-30"]$w_assets  )
r[[10]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-12-31"],weights = reg_sample[date=="2022-12-31"]$w_assets  )
# r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[year==2022],weights = reg_sample[year==2022]$w_assets )
r[[11]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2023-03-31"],weights = reg_sample[date=="2023-03-31"]$w_assets  )

stargazer(r,type="text",no.space = T,omit.stat = "ser",
          column.labels = c("20 Q3","20 Q4","21 Q1","21 Q2","21 Q3","21 Q4","22 Q1","22 Q2","22 Q3","22 Q4","23 Q1"),
          dep.var.labels = c("(MV+L)/A"))
## 
## ==============================================================================================================================================
##                                                                               Dependent variable:                                             
##                                   ------------------------------------------------------------------------------------------------------------
##                                                                                     (MV+L)/A                                                  
##                                     20 Q3     20 Q4     21 Q1     21 Q2    21 Q3     21 Q4     22 Q1     22 Q2     22 Q3     22 Q4     23 Q1  
##                                      (1)       (2)       (3)       (4)      (5)       (6)       (7)       (8)       (9)      (10)      (11)   
## ----------------------------------------------------------------------------------------------------------------------------------------------
## re_loans_less_than_3_yr_assets     -0.296*   -0.142    -0.153    -0.202   -0.434*   -0.347    -0.140    -0.276   -0.572**   -0.199    -0.178  
##                                    (0.159)   (0.191)   (0.184)   (0.171)  (0.235)   (0.257)   (0.253)   (0.233)   (0.273)   (0.249)   (0.227) 
## re_loans_3_to_5_yr_assets           0.547     0.515    1.088**  1.250***  1.810***  1.483**    0.802   1.367***  1.659***   0.739*    0.664*  
##                                    (0.368)   (0.480)   (0.464)   (0.448)  (0.574)   (0.609)   (0.580)   (0.491)   (0.466)   (0.398)   (0.363) 
## re_loans_more_than_5_assets       -0.392*** -0.369*** -0.343*** -0.227***  -0.111  -0.168**  -0.184*** -0.175*** -0.150*** -0.119**  -0.162***
##                                    (0.064)   (0.082)   (0.079)   (0.068)  (0.068)   (0.067)   (0.061)   (0.050)   (0.055)   (0.052)   (0.047) 
## other_loans_less_than_3_yr_assets -0.091***  -0.028   -0.126*** -0.113***  -0.046  -0.074**  -0.069**  -0.094*** -0.094*** -0.124*** -0.144***
##                                    (0.026)   (0.031)   (0.033)   (0.030)  (0.033)   (0.032)   (0.029)   (0.024)   (0.028)   (0.028)   (0.025) 
## other_loans_3_to_5_yr_assets       -0.034     0.027     0.055    -0.021    -0.083   -0.005    -0.115   -0.145**  -0.162**   -0.128*  -0.130** 
##                                    (0.083)   (0.105)   (0.086)   (0.075)  (0.088)   (0.091)   (0.081)   (0.071)   (0.073)   (0.066)   (0.061) 
## other_loans_more_than_5_assets     -0.069     0.032    -0.059    -0.077    -0.049  -0.120**  -0.143**  -0.115**   -0.096*  -0.125**  -0.148***
##                                    (0.057)   (0.069)   (0.061)   (0.055)  (0.062)   (0.060)   (0.055)   (0.046)   (0.053)   (0.050)   (0.047) 
## depexpbeta                        -0.058**  -0.090*** -0.064**  -0.056**  -0.075** -0.117*** -0.105*** -0.079*** -0.078*** -0.101*** -0.075***
##                                    (0.024)   (0.032)   (0.029)   (0.027)  (0.031)   (0.032)   (0.028)   (0.024)   (0.027)   (0.025)   (0.023) 
## unins_deposits_assets              -0.027    -0.014   0.070***   0.047**   0.019    -0.008    -0.020    -0.017    -0.031   -0.058*** -0.114***
##                                    (0.019)   (0.023)   (0.025)   (0.022)  (0.025)   (0.025)   (0.023)   (0.019)   (0.021)   (0.021)   (0.019) 
## htm_assets                         0.132*   0.225***   0.112*   0.131***  0.193*** 0.099***   -0.057*   -0.038   -0.100*** -0.129*** -0.191***
##                                    (0.070)   (0.084)   (0.058)   (0.043)  (0.040)   (0.037)   (0.034)   (0.030)   (0.036)   (0.036)   (0.033) 
## tier_1_assets                       0.086   -0.436**    0.310    0.315*    0.364*  0.525***    0.222    0.247*    0.337**   0.307**    0.192  
##                                    (0.161)   (0.168)   (0.190)   (0.173)  (0.192)   (0.181)   (0.168)   (0.144)   (0.155)   (0.139)   (0.126) 
## ROE                                 0.038    0.105**  1.410***  1.019***  0.767*** 0.688***  1.616***  0.743***  0.371***  0.317***  0.342*** 
##                                    (0.035)   (0.045)   (0.208)   (0.102)  (0.089)   (0.080)   (0.229)   (0.101)   (0.078)   (0.062)   (0.056) 
## Constant                          1.072***  1.104***  1.010***  0.987***  0.971*** 0.998***  1.085***  1.061***  1.073***  1.105***  1.123*** 
##                                    (0.025)   (0.027)   (0.030)   (0.027)  (0.029)   (0.031)   (0.027)   (0.024)   (0.027)   (0.027)   (0.025) 
## ----------------------------------------------------------------------------------------------------------------------------------------------
## Observations                         161       163       164       165      165       165       167       168       168       174       173   
## R2                                  0.334     0.352     0.458     0.577    0.556     0.487     0.463     0.483     0.406     0.448     0.572  
## Adjusted R2                         0.285     0.304     0.419     0.547    0.524     0.450     0.425     0.447     0.364     0.411     0.543  
## ==============================================================================================================================================
## Note:                                                                                                              *p<0.1; **p<0.05; ***p<0.01
dep_var = "q_MV_BV~"
controls = c("depexpbeta","unins_deposits_assets","htm_assets") 

# +ROE+log(bs_assets_total)+deposit_growth

r <- list()
r[[1]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-09-30"],weights = reg_sample[date=="2020-09-30"]$w_assets  )
r[[2]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-12-31"],weights = reg_sample[date=="2020-12-31"]$w_assets  )
r[[3]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-03-31"],weights = reg_sample[date=="2021-03-31"]$w_assets  )
r[[4]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-06-30"],weights = reg_sample[date=="2021-06-30"]$w_assets  )
r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-09-30"],weights = reg_sample[date=="2021-09-30"]$w_assets  )
r[[6]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-12-31"],weights = reg_sample[date=="2021-12-31"]$w_assets  )
r[[7]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-03-31"],weights = reg_sample[date=="2022-03-31"]$w_assets  )
r[[8]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-06-30"],weights = reg_sample[date=="2022-06-30"]$w_assets  )
r[[9]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-09-30"],weights = reg_sample[date=="2022-09-30"]$w_assets  )
r[[10]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-12-31"],weights = reg_sample[date=="2022-12-31"]$w_assets  )
# r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[year==2022],weights = reg_sample[year==2022]$w_assets )
r[[11]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2023-03-31"],weights = reg_sample[date=="2023-03-31"]$w_assets  )

stargazer(r,type="text",no.space = T,omit.stat = "ser",
          column.labels = c("20 Q3","20 Q4","21 Q1","21 Q2","21 Q3","21 Q4","22 Q1","22 Q2","22 Q3","22 Q4","23 Q1"),
          dep.var.labels = c("(MV+L)/A"))
## 
## ==================================================================================================================================
##                                                                   Dependent variable:                                             
##                       ------------------------------------------------------------------------------------------------------------
##                                                                         (MV+L)/A                                                  
##                         20 Q3     20 Q4    21 Q1     21 Q2     21 Q3     21 Q4     22 Q1     22 Q2     22 Q3     22 Q4     23 Q1  
##                          (1)       (2)      (3)       (4)       (5)       (6)       (7)       (8)       (9)      (10)      (11)   
## ----------------------------------------------------------------------------------------------------------------------------------
## depexpbeta            -0.797*** -1.102*** -0.735** -0.932*** -1.254*** -1.152*** -1.228*** -1.195*** -1.386*** -1.527*** -1.218***
##                        (0.199)   (0.285)  (0.302)   (0.298)   (0.309)   (0.309)   (0.303)   (0.270)   (0.301)   (0.268)   (0.252) 
## unins_deposits_assets  -0.342*   -0.156    -0.076   -0.268    -0.414   -0.549**   -0.348    -0.130     0.049    -0.204   -0.984***
##                        (0.178)   (0.251)  (0.268)   (0.254)   (0.266)   (0.269)   (0.274)   (0.247)   (0.282)   (0.267)   (0.251) 
## htm_assets            2.813***  4.097***  3.531*** 2.982***  2.750***  1.755***    0.517     0.246    -0.796*  -1.029*** -1.638***
##                        (0.638)   (0.857)  (0.637)   (0.487)   (0.426)   (0.393)   (0.400)   (0.371)   (0.412)   (0.385)   (0.362) 
## Constant              1.213***  1.538***  1.606*** 1.736***  1.982***  2.066***  2.064***  1.774***  1.875***  2.041***  2.077*** 
##                        (0.126)   (0.180)  (0.187)   (0.183)   (0.191)   (0.189)   (0.189)   (0.164)   (0.186)   (0.162)   (0.152) 
## ----------------------------------------------------------------------------------------------------------------------------------
## Observations             161       163      164       165       165       165       167       168       168       174       173   
## R2                      0.200     0.207    0.211     0.251     0.297     0.197     0.109     0.116     0.123     0.184     0.310  
## Adjusted R2             0.185     0.192    0.197     0.237     0.284     0.182     0.093     0.100     0.107     0.170     0.298  
## ==================================================================================================================================
## Note:                                                                                                  *p<0.1; **p<0.05; ***p<0.01
dep_var = "q_MV_BV~"
controls = c("re_loans_less_than_3_yr_assets","re_loans_3_to_5_yr_assets","re_loans_more_than_5_assets","other_loans_less_than_3_yr_assets","other_loans_3_to_5_yr_assets","other_loans_more_than_5_assets","depexpbeta","unins_deposits_assets","htm_assets","tier_1_assets","ROE") 

# +ROE+log(bs_assets_total)+deposit_growth

r <- list()
r[[1]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-09-30"],weights = reg_sample[date=="2020-09-30"]$w_assets  )
r[[2]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2020-12-31"],weights = reg_sample[date=="2020-12-31"]$w_assets  )
r[[3]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-03-31"],weights = reg_sample[date=="2021-03-31"]$w_assets  )
r[[4]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-06-30"],weights = reg_sample[date=="2021-06-30"]$w_assets  )
r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-09-30"],weights = reg_sample[date=="2021-09-30"]$w_assets  )
r[[6]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2021-12-31"],weights = reg_sample[date=="2021-12-31"]$w_assets  )
r[[7]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-03-31"],weights = reg_sample[date=="2022-03-31"]$w_assets  )
r[[8]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-06-30"],weights = reg_sample[date=="2022-06-30"]$w_assets  )
r[[9]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-09-30"],weights = reg_sample[date=="2022-09-30"]$w_assets  )
r[[10]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2022-12-31"],weights = reg_sample[date=="2022-12-31"]$w_assets  )
# r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[year==2022],weights = reg_sample[year==2022]$w_assets )
r[[11]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"))),data=reg_sample[date=="2023-03-31"],weights = reg_sample[date=="2023-03-31"]$w_assets  )

stargazer(r,type="text",no.space = T,omit.stat = "ser",
          column.labels = c("20 Q3","20 Q4","21 Q1","21 Q2","21 Q3","21 Q4","22 Q1","22 Q2","22 Q3","22 Q4","23 Q1"),
          dep.var.labels = c("(MV+L)/A"))
## 
## ===============================================================================================================================================
##                                                                                Dependent variable:                                             
##                                   -------------------------------------------------------------------------------------------------------------
##                                                                                     (MV+L)/A                                                   
##                                     20 Q3     20 Q4     21 Q1     21 Q2     21 Q3     21 Q4     22 Q1     22 Q2     22 Q3     22 Q4     23 Q1  
##                                      (1)       (2)       (3)       (4)       (5)       (6)       (7)       (8)       (9)      (10)      (11)   
## -----------------------------------------------------------------------------------------------------------------------------------------------
## re_loans_less_than_3_yr_assets     -2.145    -1.665    -2.000    -2.332    -4.288*   -3.170    -1.454    -3.136    -6.175*   -2.286    -1.533  
##                                    (1.447)   (1.972)   (1.881)   (1.668)   (2.276)   (2.537)   (2.660)   (2.499)   (3.153)   (2.720)   (2.505) 
## re_loans_3_to_5_yr_assets           4.702     5.476   11.557**  12.866*** 17.603*** 13.068**    7.256   13.889*** 16.636***  7.290*    6.813*  
##                                    (3.347)   (4.958)   (4.742)   (4.371)   (5.571)   (6.009)   (6.103)   (5.268)   (5.389)   (4.339)   (4.010) 
## re_loans_more_than_5_assets       -3.770*** -3.743*** -3.198*** -1.984***  -0.869   -1.597**  -1.910*** -1.755*** -1.829*** -1.560*** -2.010***
##                                    (0.583)   (0.842)   (0.811)   (0.659)   (0.660)   (0.664)   (0.644)   (0.534)   (0.633)   (0.567)   (0.521) 
## other_loans_less_than_3_yr_assets -0.780***  -0.194   -1.191*** -1.105***  -0.514   -0.839*** -1.049*** -1.301*** -1.516*** -1.666*** -1.799***
##                                    (0.234)   (0.319)   (0.333)   (0.292)   (0.322)   (0.314)   (0.310)   (0.258)   (0.329)   (0.303)   (0.279) 
## other_loans_3_to_5_yr_assets       -0.597    -0.316     0.153    -0.597    -0.981    -0.228    -1.576*  -1.880**  -2.220*** -1.855**  -1.762***
##                                    (0.759)   (1.082)   (0.881)   (0.735)   (0.856)   (0.896)   (0.854)   (0.766)   (0.843)   (0.720)   (0.670) 
## other_loans_more_than_5_assets     -0.604     0.265    -0.716    -0.989*   -0.674   -1.585*** -1.974*** -1.611*** -1.508**  -1.511*** -1.601***
##                                    (0.523)   (0.713)   (0.626)   (0.540)   (0.599)   (0.587)   (0.582)   (0.498)   (0.610)   (0.546)   (0.520) 
## depexpbeta                        -0.720*** -0.756**   -0.293    -0.175    -0.310   -0.660**  -0.652**  -0.629**  -0.712**  -0.984*** -0.789***
##                                    (0.219)   (0.325)   (0.297)   (0.265)   (0.301)   (0.313)   (0.294)   (0.258)   (0.307)   (0.276)   (0.254) 
## unins_deposits_assets             -0.379**   -0.122   0.758***   0.480**    0.372    -0.039    -0.057    -0.0004    0.026    -0.297   -1.121***
##                                    (0.171)   (0.238)   (0.255)   (0.213)   (0.240)   (0.244)   (0.242)   (0.205)   (0.243)   (0.230)   (0.211) 
## htm_assets                        2.074***  3.595***  2.451***  2.355***  2.757***  1.619***   -0.374    -0.380   -1.425*** -1.680*** -2.447***
##                                    (0.642)   (0.869)   (0.594)   (0.417)   (0.383)   (0.362)   (0.363)   (0.327)   (0.411)   (0.395)   (0.363) 
## tier_1_assets                       1.866   -4.708***   1.781     1.893     2.477    4.460**    0.986     2.246    3.592**    2.364     1.718  
##                                    (1.467)   (1.738)   (1.945)   (1.691)   (1.867)   (1.788)   (1.766)   (1.547)   (1.787)   (1.515)   (1.392) 
## ROE                                 0.319    1.040**  15.609*** 9.930***  7.434***  6.382***  17.511*** 8.225***  4.873***  3.959***  3.452*** 
##                                    (0.319)   (0.469)   (2.128)   (0.998)   (0.859)   (0.788)   (2.414)   (1.088)   (0.899)   (0.676)   (0.621) 
## Constant                          1.701***  2.012***  0.966***  0.828***   0.565**  0.943***  1.917***  1.675***  1.813***  2.174***  2.493*** 
##                                    (0.225)   (0.275)   (0.310)   (0.263)   (0.285)   (0.303)   (0.280)   (0.254)   (0.315)   (0.299)   (0.275) 
## -----------------------------------------------------------------------------------------------------------------------------------------------
## Observations                         161       163       164       165       165       165       167       168       168       174       173   
## R2                                  0.409     0.400     0.515     0.612     0.579     0.478     0.439     0.484     0.418     0.455     0.559  
## Adjusted R2                         0.365     0.356     0.480     0.584     0.549     0.440     0.399     0.447     0.377     0.418     0.529  
## ===============================================================================================================================================
## Note:                                                                                                               *p<0.1; **p<0.05; ***p<0.01
#,weights = reg_sample[date>=st_dt]$w_assets
controls2 <- c("tier_1_assets","log(1+bs_assets_total)","DEPOSITS_TO_FUNDING","wa_maturiy_assets")
st_dt <- as.Date("2020-03-31")
r <- list()

r[[1]] <- felm(as.formula(paste0(dep_var,paste(controls2,collapse = "+"),"+log(1+htm_assets)*qtrs","|date+ticker|0|date")),data=reg_sample[date>=st_dt]  )
r[[2]] <- felm(as.formula(paste0(dep_var,paste(controls2,collapse = "+"),"+unins_deposits_assets*qtrs","|date+ticker|0|date")),data=reg_sample[date>=st_dt]  )
r[[3]] <- felm(as.formula(paste0(dep_var,paste(controls2,collapse = "+"),"+depexpbeta*qtrs","|date+ticker|0|date")),data=reg_sample[date>=st_dt]  )
r[[4]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"),"+log(wa_maturiy_assets)*qtrs","|date+ticker|0|date")),data=reg_sample[date>=st_dt] )
# r[[5]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"),"+re_loans_more_than_15_yr_assets*qtrs+ROE+log(bs_assets_total)+deposit_growth","|date+ticker|0|date")),data=reg_sample[date>=st_dt] )
# r[[6]] <- felm(as.formula(paste0(dep_var,paste(controls,collapse = "+"),"+other_loans_5_to_15_yr_assets*qtrs+ROE","|date+ticker|0|date")),data=reg_sample[date>=st_dt] )



# stargazer(r,type="text",no.space = T,omit.stat = "ser")

coef_plot_1reg(r[[1]],"log(1 + htm_assets):qtrs",-7)+ggtitle("htm_assets")+labs(x="quarters since Dec 2021")

coef_plot_1reg(r[[2]],"unins_deposits_assets:qtrs",-7)+ggtitle("unins_deposits_assets")+labs(x="quarters since Dec 2021")

coef_plot_1reg(r[[3]],"depexpbeta:qtrs",-7)+ggtitle("depexpbeta")+labs(x="quarters since Dec 2021")

coef_plot_1reg(r[[4]],"log(wa_maturiy_assets):qtrs",-7)+ggtitle("other_loans_more_than_15_yr_assets")+labs(x="quarters since Dec 2021")

# coef_plot_1reg(r[[5]],"re_loans_more_than_15_yr_assets:qtrs",-7)+ggtitle("re_loans_more_than_15_yr_assets")+labs(x="quarters since Dec 2021")
# coef_plot_1reg(r[[6]],"tier_1_assets:qtrs",0)+ggtitle("tier_1_assets")+labs(x="quarters since Dec 2021")