rm(list=ls())
library(RPostgres)
library(data.table)
library(getPass)
library(lfe)
library(stargazer)
library(ggplot2)
library(fst)
library(stringr)
library(stringi)
files = list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",full.names = TRUE)

panel = lapply(files, read_fst, as.data.table = TRUE) 
panel <- do.call(rbind , panel)


panel <- panel[,c("respondentid","agencycode","reportername","asofdate","parentname","parentidentifier","reporterhomecity","reporterhomestate","rssd")]
panel[,asofdate:=as.integer(asofdate)]
panel <- panel[!duplicated(panel[,c("respondentid","agencycode","asofdate")])]
panel[,parentidentifier:=stri_trim(parentidentifier)]

panel[,rssd:=as.numeric(rssd)]

panel[,hmda_id:=paste0(agencycode,"-",respondentid)]
files <- NULL
files  <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/pre2004/OO_NP/",full.names = TRUE)
files  <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_NP/",full.names = TRUE))


hmda = lapply(files, read_fst, as.data.table = TRUE,
              columns=c("asofdate","respondentid","agencycode","amountofloan","actiontaken","state","countycode","applicantrace1","applicantincome","typeofpurchaser","msa"))
hmda <- do.call(rbind , hmda)
hmda[,lender:=paste0(agencycode,"-",respondentid)]
hmda[,countycode:=paste0(state,countycode)]


cbsa_fips <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/cbsa_countyfips.csv")
cbsa_fips[,fips:=ifelse(nchar(fips)==4,paste0("0",fips),paste0(fips))]

hmda <- merge(hmda,cbsa_fips,by.x="countycode",by.y="fips",all.x=T)
hmda[,c("agencycode","respondentid","state"):=list(NULL)]

gc()
##              used    (Mb) gc trigger    (Mb)   max used    (Mb)
## Ncells    2025053   108.2    5877782   314.0    4286779   229.0
## Vcells 1636271483 12483.8 4966256264 37889.6 4805073061 36659.8
mergers <- list()

temp <- list(1,"BANK ONE - JPMORGAN CHASE 2004", c("1-0000000008","1-0000007621","1-0000003106","1-0000011230","1-0000013655","1-0000013759","1-0000013914","1-0000014320","1-0000015184","1-0000018785","1-0000021969","1-0000023237","2-0000331647","3-0000002487"),c("2-0000852218","1-0000023160","2-0000043557","1-22-1092200"),2000,"JPMORGAN CHASE BANK, NA",2004)
mergers[[1]] <- temp

temp <- list(2,"COUNTRYWIDE - BANK OF AMERIC 2009" ,c("1-0000024141","2-0001644643","2-0003267484","7-20-2241771"),c("1-0000013044"),2005,"BANK OF AMERICA, N.A.",2009)
mergers[[2]] <- temp

temp <- list(3,"FLEET NA - BANK OF AMERICA 2005",c("1-0000000200"),c("1-0000013044"),2003,"BANK OF AMERICA, N.A.",2005)
mergers[[3]] <- temp

temp <- list(4,"WACHOVIA BK NA - WELLS FARGO 2010", c("1-0000000001","1-0000022559","1-56-0811711"), panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,2005,"WELLS FARGO BANK, N.A.",2010)
mergers[[4]] <- temp

temp <- list(5,"LASALLE BK - BANK OF AMERICA 2008",panel[substr(reportername,1,7)=="LASALLE" & asofdate<=2005]$hmda_id,c("1-0000013044"),2005,"BANK OF AMERICA, N.A.",2008)
mergers[[5]] <- temp

1 Bank of America’s Acquisition of Countrywide in 2009

i=2
# print(i)
mid=mergers[[i]][1][[1]]
mname=mergers[[i]][2][[1]]
pred_hmda_id=mergers[[i]][3][[1]]
suc_hmda_id=mergers[[i]][4][[1]]
yr=mergers[[i]][5][[1]]
acname = mergers[[i]][6][[1]]
acyr = mergers[[i]][7][[1]]

temp <- hmda[asofdate == yr ]
temp[,pred:=ifelse(lender %in% pred_hmda_id,1,0)]
temp[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]

cw <- temp[,.(tot_loans=.N,pred_share=mean(pred),suc_share=mean(suc)),by=.(cbsa)]
cw <- cw[!is.na(cbsa)]
cw[,joint_share:=pred_share+suc_share]

1.1 MSA Level Market Share Pre-Acquisition

1.1.1 Countrywide

ggplot(cw) + 
  geom_density(aes(x=pred_share))+theme_minimal()

1.1.2 Bank of America

ggplot(cw) + 
  geom_density(aes(x=suc_share))+theme_minimal()

1.1.3 Bank of America + Countrywide

ggplot(cw) + 
  geom_density(aes(x=joint_share))+theme_minimal()

cwreg <- merge(hmda[asofdate %in% 2003:2018],cw,by="cbsa")
cwreg[,approved:=ifelse(actiontaken=="1",1,0)]
cwreg[,sold:=ifelse(approved==1 & typeofpurchaser!="0",1,ifelse(approved==1,0,NA))]
cwreg[,suc:=ifelse(lender %in% c("1-0000013044","9-0000480228"),1,0)]

1.2 Approval Rate Change in High Market Share MSAs

1.2.1 Bank of America

\[ Approved = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(approved~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan) | cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==1 ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb) gc trigger    (Mb)   max used    (Mb)
## Ncells    2178531   116.4    5877782   314.0    5305262   283.4
## Vcells 3275140867 24987.4 4966256264 37889.6 4950379174 37768.4

1.2.2 Other Lenders

\[ Approved = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(approved~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan)| cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==0  ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb)  gc trigger    (Mb)    max used    (Mb)
## Ncells    2179760   116.5     5877782   314.0     5305262   283.4
## Vcells 6218442927 47443.0 11799245250 90021.1 11321705758 86377.8

1.3 Securitization Change in High Market Share MSAs

1.3.1 Bank of America

\[ Securitized = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(sold~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan)| cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==1  ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb) gc trigger    (Mb)    max used    (Mb)
## Ncells    2179822   116.5    5877782   314.0     5305262   283.4
## Vcells 3204730130 24450.2 9439396200 72016.9 11321705758 86377.8

1.3.2 Other Lenders

\[ Securitized = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(sold~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan)| cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==0  ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb) gc trigger    (Mb)    max used    (Mb)
## Ncells    2179833   116.5    5877782   314.0     5305262   283.4
## Vcells 4948259218 37752.3 9439396200 72016.9 11321705758 86377.8

1.4 Interest Rate Change in High Market Share MSAs

\[ log(Interest Rate) = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + FICO + LTV + log(loanamount) + MSA FE + YR FE\]

## Freddie
acq <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Freddie/Acq",full.names = TRUE)
acq = lapply(acq, read_fst,as.data.table=T, columns = c("fico","dt_first_pi","cd_msa","ltv","dti","orig_upb","int_rt","prop_type","zipcode","id_loan","orig_loan_term","seller_name"))
acq <- do.call(rbind , acq)

acq <- acq[orig_loan_term==360 & prop_type=="SF"]
acq[,yr:=year(dt_first_pi)]
acq[,msa:=cd_msa]
acq[,c("orig_loan_term","dt_first_pi","prop_type","cd_msa"):=list(NULL)]


cwreg <- merge(acq,cw,by.x=c("msa"),by.y=c("cbsa"))
cwreg[,bofa:=ifelse(seller_name =="BANK OF AMERICA, N.A.",1,0)]
cwreg[,wells:=ifelse(seller_name=="WELLS FARGO BANK, N.A.",1,0)]


r <- felm(log(int_rt)~pred_share*factor(yr)+ltv+dti+fico+log(orig_upb)| msa+yr|0|msa,data=cwreg[yr %in% 2005:2018 & bofa==1])

freddie_bofa_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2005)


r <- felm(log(int_rt)~pred_share*factor(yr)+ltv+dti+fico+log(orig_upb)| msa+yr|0|msa,data=cwreg[yr %in% 2005:2018 & bofa==0])

freddie_other_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2005)



## Fannie
acq <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Fannie/Acq",full.names = TRUE)
acq = lapply(acq, read_fst,as.data.table=T, columns = c("loan_identifier","seller_name","original_interest_rate","original_upb","original_loan_term","origination_date","original_ltv","original_dti","credit_score","property_type","property_state","zip_code","msa","original_loan_term"))
acq <- do.call(rbind , acq)

acq <- acq[original_loan_term==360 & property_type=="SF"]
acq[,yr:=year(origination_date)]

acq[,original_loan_term:=list(NULL)]



cwreg <- merge(acq,cw,by.x=c("msa"),by.y=c("cbsa"))
cwreg[,bofa:=ifelse(seller_name =="BANK OF AMERICA, N.A.",1,0)]
cwreg[,wells:=ifelse(seller_name=="WELLS FARGO BANK, N.A.",1,0)]


r <- felm(log(original_interest_rate)~pred_share*factor(yr)+original_ltv+original_dti+credit_score+log(original_upb) | msa+yr|0|msa,data=cwreg[yr %in% 2003:2018 & bofa==0])

fannie_other_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2003)


r <- felm(log(original_interest_rate)~pred_share*factor(yr)+original_ltv+original_dti+credit_score+log(original_upb) | msa+yr|0|msa,data=cwreg[yr %in% 2003:2018 & bofa==1])

fannie_bofa_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2003)

1.4.1 Bank of America

1.4.1.1 Freddie Loans

print(freddie_bofa_ir)

1.4.1.2 Fannie Loans

print(fannie_bofa_ir)

1.4.2 Other Lenders

1.4.2.1 Freddie Loans

print(freddie_other_ir)

1.4.2.2 Fannie Loans

print(fannie_other_ir)

2 Wells Fargo’s Acquisition of Wachovia in 2010

i=4
# print(i)
mid=mergers[[i]][1][[1]]
mname=mergers[[i]][2][[1]]
pred_hmda_id=mergers[[i]][3][[1]]
suc_hmda_id=mergers[[i]][4][[1]]
yr=mergers[[i]][5][[1]]
acname = mergers[[i]][6][[1]]
acyr = mergers[[i]][7][[1]]

temp <- hmda[asofdate == yr ]
temp[,pred:=ifelse(lender %in% pred_hmda_id,1,0)]
temp[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]

cw <- temp[,.(tot_loans=.N,pred_share=mean(pred),suc_share=mean(suc)),by=.(cbsa)]
cw <- cw[!is.na(cbsa)]
cw[,joint_share:=pred_share+suc_share]

2.1 MSA-Level Market Share Pre-Acquisition

2.1.1 Wachovia

ggplot(cw) + 
  geom_density(aes(x=pred_share))+theme_minimal()

2.1.2 Wells Fargo

ggplot(cw) + 
  geom_density(aes(x=suc_share))+theme_minimal()

2.1.3 Wachovia + Wells Fargo

ggplot(cw) + 
  geom_density(aes(x=joint_share))+theme_minimal()

cwreg <- merge(hmda[asofdate %in% 2003:2018],cw,by="cbsa")
cwreg[,approved:=ifelse(actiontaken=="1",1,0)]
cwreg[,sold:=ifelse(approved==1 & typeofpurchaser!="0",1,ifelse(approved==1,0,NA))]
cwreg[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]
gc()
##              used    (Mb) gc trigger    (Mb)    max used    (Mb)
## Ncells    2171171   116.0   37849180  2021.4    35782638  1911.0
## Vcells 4193756777 31995.9 9439396200 72016.9 11321705758 86377.8

2.2 Approval Rate Change in High Market Share MSAs

2.2.1 Wells Fargo

\[ Approved = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(approved~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan) | cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==1 ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb) gc trigger    (Mb)    max used    (Mb)
## Ncells    2189837   117.0   30279344  1617.1    35782638  1911.0
## Vcells 4569052247 34859.2 9439396200 72016.9 11321705758 86377.8

2.2.2 Other Lenders

\[ Approved = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + log(income) + log(loanamount) + MSA FE + YR FE\]

r <- felm(approved~pred_share*factor(asofdate) + log(1+applicantincome) + log(1+amountofloan)| cbsa+asofdate|0|cbsa,data=cwreg[asofdate %in% 2003:2018 & suc==0  ])

.coef_plot_1reg_line(r,"pred_share:factor(asofdate)",2003)

rm(r)
gc()
##              used    (Mb)  gc trigger    (Mb)    max used    (Mb)
## Ncells    2189838   117.0    19378781  1035.0    35782638  1911.0
## Vcells 7100644112 54173.7 11360227982 86671.7 11346775438 86569.1

2.3 Interest Rate Change in High Market Share MSAs

\[ log(Interest Rate) = \Sigma_{yr} \beta_{yr} \times CWShare \times I(yr) + FICO + LTV + log(loanamount) + MSA FE + YR FE\]

## Freddie
acq <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Freddie/Acq",full.names = TRUE)
acq = lapply(acq, read_fst,as.data.table=T, columns = c("fico","dt_first_pi","cd_msa","ltv","dti","orig_upb","int_rt","prop_type","zipcode","id_loan","orig_loan_term","seller_name"))
acq <- do.call(rbind , acq)

acq <- acq[orig_loan_term==360 & prop_type=="SF"]
acq[,yr:=year(dt_first_pi)]
acq[,msa:=cd_msa]
acq[,c("orig_loan_term","dt_first_pi","prop_type","cd_msa"):=list(NULL)]

cwreg <- merge(acq,cw,by.x=c("msa"),by.y=c("cbsa"))
cwreg[,bofa:=ifelse(seller_name =="BANK OF AMERICA, N.A.",1,0)]
cwreg[,wells:=ifelse(seller_name=="WELLS FARGO BANK, N.A.",1,0)]


r <- felm(log(int_rt)~pred_share*factor(yr)+ltv+dti+fico+log(orig_upb)| msa+yr|0|msa,data=cwreg[yr %in% 2005:2018 & wells==1])

freddie_bofa_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2005)


r <- felm(log(int_rt)~pred_share*factor(yr)+ltv+dti+fico+log(orig_upb)| msa+yr|0|msa,data=cwreg[yr %in% 2005:2018 & wells==0])

freddie_other_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2005)


## Fannie
acq <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Fannie/Acq",full.names = TRUE)
acq = lapply(acq, read_fst,as.data.table=T, columns = c("loan_identifier","seller_name","original_interest_rate","original_upb","original_loan_term","origination_date","original_ltv","original_dti","credit_score","property_type","property_state","zip_code","msa","original_loan_term"))
acq <- do.call(rbind , acq)

acq <- acq[original_loan_term==360 & property_type=="SF"]
acq[,yr:=year(origination_date)]

acq[,original_loan_term:=list(NULL)]


cwreg <- merge(acq,cw,by.x=c("msa"),by.y=c("cbsa"))
cwreg[,bofa:=ifelse(seller_name =="BANK OF AMERICA, N.A.",1,0)]
cwreg[,wells:=ifelse(seller_name=="WELLS FARGO BANK, N.A.",1,0)]


r <- felm(log(original_interest_rate)~pred_share*factor(yr)+original_ltv+original_dti+credit_score+log(original_upb) | msa+yr|0|msa,data=cwreg[yr %in% 2004:2018 & wells==0])

fannie_other_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2004)


r <- felm(log(original_interest_rate)~pred_share*factor(yr)+original_ltv+original_dti+credit_score+log(original_upb) | msa+yr|0|msa,data=cwreg[yr %in% 2004:2018 & wells==1])

fannie_bofa_ir <- .coef_plot_1reg_line(r,"pred_share:factor(yr)",2004)

2.3.1 Wells Fargo

2.3.1.1 Freddie Loans

print(freddie_bofa_ir)

2.3.1.2 Fannie Loans

print(fannie_bofa_ir)

2.3.2 Other Lenders

2.3.2.1 Freddie Loans

print(freddie_other_ir)

2.3.2.2 Fannie Loans

print(fannie_other_ir)