rm(list=ls())
library(RPostgres)
library(data.table)
library(getPass)
library(lfe)
library(stargazer)
library(ggplot2)
library(fst)
library(stringr)
library(stringi)
library(lubridate)
# 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/pre2004/OO_RF/",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))
# files  <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_RF/",full.names = TRUE))
# 
# hmda = lapply(files, read_fst, as.data.table = TRUE,
#               columns=c("asofdate","respondentid","agencycode","state","countycode","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"):=list(NULL)]
# 
# gc()
# 
# 
# 
# 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"),
#              unique(c(unique(panel[parentidentifier %in% c("0000002370","0000000008","0001039502","0000852218","0001040795"),]$hmda_id),"2-0000852218","1-0000023160","2-0000043557","1-22-1092200","1-0000000008")),
#              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.",2009)
# 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
# 
# 
# temp <- list(6,"ABN AMRO MTG GROUP - CITI BANK 2007",c("1-36-3744610"),unique(panel[parentidentifier=="0001951350"]$hmda_id),
#              2004,"CITIMORTGAGE, INC.",2007)
# mergers[[6]] <- temp
# 
# temp <- list(7,"UNION PLANTERS BANK - REGIONS FINANCIAL CORP 2004",
#              c("1-0000013349"),
#              c("9-0000233031","2-0000233031"),
#              2002,c("REGIONS BANK"),2004)
# mergers[[7]] <- temp
# 
# temp <- list(8,"AmSouth Bancorporation - REGIONS FINANCIAL CORP 2006",
#              c("2-0000245333"),
#              c("9-0000233031","2-0000233031"),
#              2004,c("REGIONS BANK"),2006)
# mergers[[8]] <- temp
# 
# 
# temp <- list(9,"Washington Mutual - JPMORGAN CHASE 2008",
#              c("4-0000008551","4-0000011905"),
#              unique(c(unique(panel[parentidentifier %in% c("0000002370","0000000008","0001039502","0000852218","0001040795"),]$hmda_id),"2-0000852218","1-0000023160","2-0000043557","1-22-1092200","1-0000000008")),
#              2005,"JPMORGAN CHASE BANK, NA",
#              2008)
# mergers[[9]] <- temp
# 
# 
# ## target operated in only 2 counties
# temp <- list(10,"Century Bancshares - Wells Fargo 2007",
#              c("1-0000005636"),
#              panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
#              2000,c("WELLS FARGO BANK, N.A."),2007)
# mergers[[10]] <- temp
# 
# 
# ## target operated in 5 msas; small share.
# temp <- list(11,"Placer Sierra Bank - Wells Fargo 2007",
#              c("2-0000033772"),
#              panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
#              2002,c("WELLS FARGO BANK, N.A."),2007)
# mergers[[11]] <- temp
# 
# 
# ## target operated in 5 msas; small share.
# temp <- list(12,"Greater Bay Bank - Wells Fargo 2007",
#              c("1-0000024489"),
#              panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
#              2005,c("WELLS FARGO BANK, N.A."),2007)
# mergers[[12]] <- temp
# 
# 
# temp <- list(13,"MBNA NA - BANK OF AMERICA 2005",c("1-0000024095"),c("1-0000013044"),
#              2003,"BANK OF AMERICA, N.A.",2005)
# mergers[[13]] <- temp
# 
# temp <- list(14,"Merrill Lynch - BANK OF AMERICA 2008",c("2-0000421203","7-13-3403204","3-13-3098068","3-13-3399559"),c("1-0000013044"),
#              2005,"BANK OF AMERICA, N.A.",2008)
# mergers[[14]] <- temp
# 
# 
# #This is the 2nd mortgage division to be named PNC Mortgage. In 2001, PNC sold the original PNC Mortgage to Washington Mutual due to volatility in the market.[7] In 2005, PNC began outsourcing mortgages to Wells Fargo until the National City dea
# temp <- list(15,"National City - PNC Bank 2007",
#              c("1-0000000786"),
#              c("1-0000001316","2-0000083311"),
#              2004,c("PNC BANK, N.A."),2007)
# mergers[[15]] <- temp
# 
# 
# 
# 
# cbsas <- unique(hmda$cbsa)
# yrs <- 2000:2016
# acqbanks <- NULL
# for(i in 1:length(mergers)) {
#   acqbanks <- c(acqbanks,mergers[[i]][6][[1]])
# }
# acqbanks <- c(unique(acqbanks),"other")
# 
# cbsas1 <- merge(cbsas,yrs)
# cbsas2 <- merge(cbsas,acqbanks)
# 
# cbsas <- merge(cbsas1,cbsas2,by="x")
# names(cbsas) <- c("cbsa","acyr","bank")
# cbsas <- data.table(cbsas)
# 
# cbsas[,bank:=as.character(bank)]
# cbsas[,acqbank:=0]
# cbsas[,pred_share:=0]
# 
# 
# cbsa_bnk <- NULL
# lender_bank <- NULL
# for(i in 1:length(mergers)) {
#   # 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[,.(pred_share=mean(pred),suc_share=mean(suc)),by=.(cbsa)]
#   cw <- cw[!is.na(cbsa)]
#   cw[,joint_share:=pred_share+suc_share]
#   cw[,bank:=acname]
#   cw[,acyr:=acyr]
# 
#   # sumtable1 <- c(mname,
#   #               sum(temp$pred)/nrow(temp),
#   #               nrow(cw[pred_share>0]),
#   #               length(unique(temp[pred==1]$state)),
#   #               quantile(cw$pred_share,0.01,na.rm=T),
#   #               quantile(cw$pred_share,0.1,na.rm=T),
#   #               quantile(cw$pred_share,0.25,na.rm=T),
#   #               quantile(cw$pred_share,0.5,na.rm=T),
#   #               quantile(cw$pred_share,0.75,na.rm=T),
#   #               quantile(cw$pred_share,0.90,na.rm=T),
#   #               quantile(cw$pred_share,0.99,na.rm=T))
#   # sumtable2 <- c("",
#   #               sum(temp$suc)/nrow(temp),
#   #               nrow(cw[suc_share>0]),
#   #               length(unique(temp[suc==1]$state)),
#   #               quantile(cw$suc_share,0.01,na.rm=T),
#   #               quantile(cw$suc_share,0.1,na.rm=T),
#   #               quantile(cw$suc_share,0.25,na.rm=T),
#   #               quantile(cw$suc_share,0.5,na.rm=T),
#   #               quantile(cw$suc_share,0.75,na.rm=T),
#   #               quantile(cw$suc_share,0.90,na.rm=T),
#   #               quantile(cw$suc_share,0.99,na.rm=T))
#   # sumtable3 <- c("",
#   #               "",
#   #               "",
#   #               length(unique(temp[suc==1 | pred==1]$state)),
#   #               quantile(cw$joint_share,0.01,na.rm=T),
#   #               quantile(cw$joint_share,0.1,na.rm=T),
#   #               quantile(cw$joint_share,0.25,na.rm=T),
#   #               quantile(cw$joint_share,0.5,na.rm=T),
#   #               quantile(cw$joint_share,0.75,na.rm=T),
#   #               quantile(cw$joint_share,0.90,na.rm=T),
#   #               quantile(cw$joint_share,0.99,na.rm=T))
#   #
#   # sumtable <- rbind(sumtable,sumtable1)
#   # sumtable <- rbind(sumtable,sumtable2)
#   # sumtable <- rbind(sumtable,sumtable3)
# 
#   cw[,c("suc_share","joint_share"):=list(NULL)]
#   cbsa_bnk <- rbind(cbsa_bnk,cw)
#   
#   a <- data.frame(lender=mergers[[i]][4][[1]],bank=rep(mergers[[i]][6][[1]],length(mergers[[i]][4][[1]])))
#   if(is.null(lender_bank)) {
#     lender_bank <- a
#   } else {
#     lender_bank <- rbind(lender_bank,a)
#   }
# }
# 
# lender_bank <- lender_bank[!duplicated(lender_bank),]
# write_fst(lender_bank,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/lender_bank.fst",compress = 100)
# 
# # write.csv(sumtable,file="C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/merger_summaries.csv",row.names = F)
# cbsa_bnk[,acqbank:=1]
# 
# 
# cbsa_bnk <- rbind(cbsa_bnk,cbsas)
# cbsa_bnk <- cbsa_bnk[!duplicated(cbsa_bnk[,c("cbsa","acyr","bank")])]
# cbsa_bnk <- cbsa_bnk[!is.na(cbsa)]
# 
# 
# cbsa_bnk_1 <- cbsa_bnk[,c("cbsa","pred_share","bank","acyr")]
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_1","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_2","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_3","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_4","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_5","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_6","bank","acyr")
# cbsa_bnk_1[,acyr:=acyr+1]
# cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
# 
# cbsa_bnk[,pred_share_1:=ifelse(is.na(pred_share_1),0,pred_share_1)]
# cbsa_bnk[,pred_share_2:=ifelse(is.na(pred_share_2),0,pred_share_2)]
# cbsa_bnk[,pred_share_3:=ifelse(is.na(pred_share_3),0,pred_share_3)]
# cbsa_bnk[,pred_share_4:=ifelse(is.na(pred_share_4),0,pred_share_4)]
# cbsa_bnk[,pred_share_5:=ifelse(is.na(pred_share_5),0,pred_share_5)]
# cbsa_bnk[,pred_share_6:=ifelse(is.na(pred_share_6),0,pred_share_6)]
# 
# cbsa_bnk[,msinc13:=pred_share_1+pred_share_2+pred_share_3+0.00001]
# cbsa_bnk[,msinc46:=pred_share_4+pred_share_5+pred_share_6+0.00001]
# 
# cbsa_share <- cbsa_bnk[,.(msinc13=sum(msinc13,na.rm=T)),by=.(cbsa,acyr)]
# 
# write_fst(cbsa_bnk,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk.fst",compress = 100)
# 
# write_fst(cbsa_share,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share.fst",compress = 100)

cbsa_bnk <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk.fst",as.data.table = T)

cbsa_bnk[,msinc13Q:=ifelse(msinc13<=0.0001,"Q0",
                           ifelse(msinc13<0.0027235,"Q1",
                                  ifelse(msinc13<0.0112596,"Q2",
                                         ifelse(msinc13<0.0366354,"Q3","Q4"))))]

cbsa_bnk[,msinc13G:=ifelse(msinc13<=0.0001,"0. 0",
                           ifelse(msinc13<0.01,"1. Less than 1pct",
                           ifelse(msinc13<0.05,"2. 1 - 5pct",
                                  ifelse(msinc13<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
                                         

cbsa_bnk[,msinc46Q:=ifelse(msinc46<=0.0001,"Q0",
                           ifelse(msinc46<0.0027235,"Q1",
                                  ifelse(msinc46<0.0112596,"Q2",
                                         ifelse(msinc46<0.0366354,"Q3","Q4"))))]

cbsa_bnk[,msinc46G:=ifelse(msinc46<=0.0001,"0. 0",
                           ifelse(msinc46<0.01,"1. Less than 1pct",
                           ifelse(msinc46<0.05,"2. 1 - 5pct",
                                  ifelse(msinc46<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
# 
cbsa_share<- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share.fst",as.data.table = T)

cbsa_share[,msinc13G:=ifelse(msinc13<=0.0001,"0. 0",
                           ifelse(msinc13<0.01,"1. Less than 1pct",
                           ifelse(msinc13<0.05,"2. 1 - 5pct",
                                  ifelse(msinc13<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]

# cbsa_share[,msinc46G:=ifelse(msinc46<=0.0001,"0. 0",
#                            ifelse(msinc46<0.01,"1. Less than 1pct",
#                            ifelse(msinc46<0.05,"2. 1 - 5pct",
#                                   ifelse(msinc46<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]

1 List of Mergers

2 Summary Statistics

2.1 Freddie

freddie <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Freddie/Acq",full.names = TRUE)
freddie = lapply(freddie, 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"))
freddie <- do.call(rbind , freddie)

freddie <- freddie[orig_loan_term==360 & prop_type=="SF"]
freddie[,loanyr:=year(dt_first_pi)]
freddie[,msa:=cd_msa]
freddie[,c("orig_loan_term","dt_first_pi","prop_type","cd_msa"):=list(NULL)]
freddie[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A."),"JPMORGAN CHASE BANK, NA",seller_name)]
freddie[,seller_name:= ifelse(seller_name %in%  c("CITIMORTGAGE, INC.","ABN AMRO, NKA CITIMORTGAGE INC.","CITIMORTGAGE, INC."),"CITIMORTGAGE, INC.",seller_name)]
freddie[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A."),"WELLS FARGO BANK, N.A.",seller_name)]

freddie[,bank:=seller_name]
freddie[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr")

stargazer(freddie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
## 
## ======================================================================
## Statistic     N         Mean      St. Dev.   Pctl(25) Median  Pctl(75)
## ----------------------------------------------------------------------
## fico      16,245,111   748.509     395.911     695      741     776   
## ltv       16,245,111   73.367      17.035       66      78       80   
## dti       16,245,111   47.668      113.969      26      35       43   
## orig_upb  16,245,111 189,852.800 107,056.600 111,000  165,000 245,000 
## int_rt    16,245,111    5.699       1.234     4.750    5.875   6.625  
## loanyr    16,245,111  2,007.242     5.630     2,003    2,006   2,012  
## ----------------------------------------------------------------------

2.2 Fannie

fannie <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Fannie/Acq",full.names = TRUE)
fannie = lapply(fannie, 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"))
fannie <- do.call(rbind , fannie)

fannie <- fannie[original_loan_term==360 & property_type=="SF"]
fannie[,loanyr:=year(origination_date)]
fannie[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A."),"JPMORGAN CHASE BANK, NA",seller_name)]
fannie[,seller_name:= ifelse(seller_name %in%  c("CITIMORTGAGE, INC.","ABN AMRO, NKA CITIMORTGAGE INC.","CITIMORTGAGE, INC."),"CITIMORTGAGE, INC.",seller_name)]
fannie[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A."),"WELLS FARGO BANK, N.A.",seller_name)]

fannie[,int_rt:=original_interest_rate]
fannie[,dti:=original_dti]
fannie[,ltv:=original_ltv]
fannie[,fico:=credit_score]
fannie[,orig_upb:= original_upb]

fannie[,c("original_interest_rate","original_dti","original_ltv","credit_score","original_upb","original_loan_term"):=list(NULL)]

fannie[,bank:=seller_name]
fannie[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr")

stargazer(fannie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
## 
## ======================================================================
## Statistic     N         Mean      St. Dev.   Pctl(25) Median  Pctl(75)
## ----------------------------------------------------------------------
## fico      20,265,085   736.414     54.521    700.000  747.000 781.000 
## ltv       20,356,584   73.223      16.210     65.000  78.000   80.000 
## dti       19,932,370   34.426      11.429     26.000  35.000   42.000 
## orig_upb  20,356,594 197,387.300 111,665.400 115,000  172,000 254,000 
## int_rt    20,356,591    5.543       1.240     4.500    5.625   6.375  
## loanyr    20,356,594  2,007.757     5.679     2,003    2,007   2,013  
## ----------------------------------------------------------------------

2.3 Moodys

moodys <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Moodys/0001/LoanChars.fst",as.data.table = TRUE, columns=c("loanid","loanoriginationdate","zipcode","originalloanbalance","originalcltv","state","originator","armflag","originalfico","originalterm","originalltv","documentationtype","originalinterestrate")) 

cbsa <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/ZIP_CBSA.csv")
cbsa[,ZIP:=ifelse(nchar(ZIP)==3,paste0("00",ZIP),ifelse(nchar(ZIP)==4,paste0("0",ZIP),paste0(ZIP)))]
setorder(cbsa,ZIP,-RES_RATIO)
cbsa <- cbsa[!duplicated(cbsa[,c("ZIP")])]
cbsa[,c("RES_RATIO","BUS_RATIO","OTH_RATIO","TOT_RATIO"):=list(NULL)]
names(cbsa) <- c("zipcode","msa")
moodys <- merge(moodys,cbsa,by=c("zipcode"))

moodys <- moodys[originalterm==360 & armflag=="F"]
moodys[,loanyr:=as.numeric(substr(loanoriginationdate,1,4))]
moodys[,seller_name:= originator]
moodys[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A.","JP MORGAN CHASE BANK NA","CHASE MANHATTAN MORTGAGE CORP"),"JPMORGAN CHASE BANK, NA",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in%  c("B OF A"),"BANK OF AMERICA, N.A.",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A.","WELLS FARGO BANK N.A"," WELLS FARGO HOME MTG, INC"),"WELLS FARGO BANK, N.A.",seller_name)]

moodys[,int_rt:=originalinterestrate]
moodys[,dti:=0]
moodys[,ltv:=originalltv]
moodys[,fico:=originalfico]
moodys[,orig_upb:= originalloanbalance]

moodys[,c("originalinterestrate","originalltv","originalfico","originalloanbalance","msacode","csacode","divcode","loanoriginationdate","armflag","originalterm"):=list(NULL)]

moodys[,fulldocumentation:=ifelse(documentationtype=="FU",1,0)]
gc()
##             used   (Mb) gc trigger    (Mb)   max used (Mb)
## Ncells  18407461  983.1   50843052  2715.4   28778045 1537
## Vcells 477272546 3641.4 1444685132 11022.1 1224863526 9345
moodys[,bank:=seller_name]
moodys[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation")

stargazer(moodys[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
## 
## ======================================================================================
## Statistic             N        Mean      St. Dev.    Pctl(25)    Median     Pctl(75)  
## --------------------------------------------------------------------------------------
## fico              3,931,302   681.319     69.930     632.000     684.000     737.000  
## ltv               4,322,951   70.640      23.984      63.600     79.700      80.000   
## dti               4,399,462    0.000       0.000        0           0           0     
## orig_upb          4,398,108 232,097.600 213,490.700 84,980.000 161,000.000 332,000.000
## int_rt            4,391,198    7.441       2.059      6.250       6.890       8.400   
## loanyr            4,385,059  2,004.073     3.607    2,004.000   2,005.000   2,006.000 
## fulldocumentation 4,399,462    0.397       0.489        0           0           1     
## --------------------------------------------------------------------------------------

3 Descriptive Statistics: Market Share Changes

3.1 msinc13

print(ggplot(cbsa_bnk[msinc13>0.00001],aes(x=msinc13))+geom_histogram(fill="royalblue",alpha=0.3,color="royalblue")+theme_minimal())

3.2 msinc46

print(ggplot(cbsa_bnk[msinc46>0.00001],aes(x=msinc46))+geom_histogram(fill="royalblue",alpha=0.3,color="royalblue")+theme_minimal())

4 Dep. Var: Interest Increase by the Acquiring Bank

4.1 Market Share Bins

\[ interest rate = \Sigma_{bin} \beta_{bin} \times msinc13 \in bin+ \Sigma_{bin}\beta_{bin} \times msinc46 \in bin+fico+ltv+dti+log(loanamount) +BANK*MSA\text{ }FE+YR\text{ }FE\]

\(msinc13\) : Change in market share in last 3 years
\(msinc46\) : Change in market share 4-6 years

regsample <- merge(freddie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r <- list()
  # r2 <- list()
  r3 <- list()
  r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[1]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)++fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[1]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(fannie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r[[2]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[2]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[2]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r[[3]] <- felm(int_rt~msinc13+msinc46+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[3]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[3]] <- felm(int_rt~factor(msinc13G)+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  .printtable(r3,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ===========================================================================
##                                              Dependent variable:           
##                                    ----------------------------------------
##                                    Freddie Loans Fannie Loans Moody's Loans
##                                         (1)          (2)           (3)     
## ---------------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct    0.035***      0.062***     -0.160***  
##                                       (0.004)      (0.004)       (0.022)   
## factor(msinc13G)2. 1 - 5pct          0.014***      0.036***     0.310***   
##                                       (0.004)      (0.005)       (0.082)   
## factor(msinc13G)3. 5pct - 10pct      0.062***      0.044***     0.515***   
##                                       (0.006)      (0.010)       (0.142)   
## factor(msinc13G)4. More than 10pct   0.103***      0.118***     1.952***   
##                                       (0.008)      (0.011)       (0.385)   
## factor(msinc46G)1. Less than 1pct    0.014***       0.009*                 
##                                       (0.005)      (0.006)                 
## factor(msinc46G)2. 1 - 5pct           0.016*       0.019**                 
##                                       (0.008)      (0.008)                 
## factor(msinc46G)3. 5pct - 10pct      0.030***       0.016                  
##                                       (0.008)      (0.011)                 
## factor(msinc46G)4. More than 10pct   0.089***      0.075***                
##                                       (0.009)      (0.016)                 
## fico                                -0.00002***   -0.001***     -0.005***  
##                                      (0.00000)    (0.00002)     (0.0002)   
## ltv                                  0.004***      0.004***     -0.011***  
##                                      (0.0001)      (0.0001)      (0.001)   
## dti                                 0.00003***     0.002***                
##                                      (0.00000)     (0.0001)                
## fulldocumentation                                               -0.227***  
##                                                                  (0.010)   
## log(orig_upb)                        -0.221***    -0.222***     -1.051***  
##                                       (0.004)      (0.008)       (0.018)   
## ---------------------------------------------------------------------------
## Fixed Effects                      MSA*Bank, Yr  MSA*Bank, Yr MSA*Bank, Yr 
## Observations                         8,210,798    15,685,569    3,271,645  
## Adjusted R2                            0.897        0.902         0.511    
## ===========================================================================
## Note:                                           *p<0.1; **p<0.05; ***p<0.01
## 

4.2 Linear

  .printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ==========================================================
##                             Dependent variable:           
##                   ----------------------------------------
##                   Freddie Loans Fannie Loans Moody's Loans
##                        (1)          (2)           (3)     
## ----------------------------------------------------------
## msinc13             0.798***      0.768***     7.835***   
##                      (0.061)      (0.056)       (2.110)   
## msinc46             0.480***      0.390***                
##                      (0.074)      (0.116)       (0.000)   
## fico               -0.00002***   -0.001***     -0.005***  
##                     (0.00000)    (0.00002)     (0.0002)   
## ltv                 0.004***      0.004***     -0.011***  
##                     (0.0001)      (0.0001)      (0.001)   
## dti                0.00003***     0.002***                
##                     (0.00000)     (0.0001)                
## fulldocumentation                              -0.228***  
##                                                 (0.010)   
## log(orig_upb)       -0.221***    -0.222***     -1.052***  
##                      (0.004)      (0.008)       (0.018)   
## ----------------------------------------------------------
## Fixed Effects     MSA*Bank, Yr  MSA*Bank, Yr MSA*Bank, Yr 
## Observations        8,210,798    15,685,569    3,271,645  
## Adjusted R2           0.897        0.902         0.511    
## ==========================================================
## Note:                          *p<0.1; **p<0.05; ***p<0.01
## 

4.3 Other Lenders

r <- list()

regsample <- freddie[!seller_name %in% unique(cbsa_bnk$bank)]
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]


  r[[1]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr,data=regsample)
  
regsample <- fannie[!seller_name %in% unique(cbsa_bnk$bank)]
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]  

 r[[2]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr,data=regsample)
 
regsample <- moodys[!seller_name %in% unique(cbsa_bnk$bank)] 
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]

 r[[3]] <- felm(int_rt~factor(msinc13G)+fico+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample[seller_name != ""])

.printtable(r)
## 
## ==================================================================
##                                          Dependent variable:      
##                                    -------------------------------
##                                        (1)        (2)       (3)   
## ------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct    0.032**   0.036***  0.363*** 
##                                      (0.016)    (0.004)   (0.028) 
## factor(msinc13G)2. 1 - 5pct         0.050***   0.043***  0.311*** 
##                                      (0.016)    (0.004)   (0.020) 
## factor(msinc13G)3. 5pct - 10pct     0.068***   0.069***  0.247*** 
##                                      (0.016)    (0.004)   (0.061) 
## factor(msinc13G)4. More than 10pct  0.089***   0.096***  0.289*** 
##                                      (0.016)    (0.004)   (0.047) 
## fico                               -0.00003*** -0.001*** -0.004***
##                                     (0.00000)  (0.00000) (0.0002) 
## ltv                                 0.004***   0.004***           
##                                     (0.00001)  (0.00001)          
## dti                                0.00002***  0.003***           
##                                     (0.00000)  (0.00001)          
## fulldocumentation                                        -0.298***
##                                                           (0.011) 
## log(orig_upb)                       -0.206***  -0.205*** -1.229***
##                                     (0.0004)   (0.0003)   (0.023) 
## ------------------------------------------------------------------
##                                                                   
## Observations                        5,345,739  8,756,629 1,923,966
## Adjusted R2                           0.907      0.914     0.482  
## ==================================================================
## Note:                                  *p<0.1; **p<0.05; ***p<0.01
## 

5 Dep. Var: Loan-to-value

5.1 Market Share Bins

regsample <- merge(freddie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r <- list()
  # r2 <- list()
  r3 <- list()
  r[[1]] <- felm(I(ltv/100)~msinc13+msinc46+fico|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[1msinc13]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[1]] <- felm(I(ltv/100)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(fannie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r[[2]] <- felm(I(ltv/100)~msinc13+msinc46+fico|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[2]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[2]] <- felm(I(ltv/100)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
# regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r[[3]] <- felm(I(ltv/100)~msinc13+msinc46+fico+fulldocumentation|bank_msa+loanyr|0|msa,data=regsample)
  # r2[[3]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
  r3[[3]] <- felm(I(ltv/100)~factor(msinc13G)+fico+fulldocumentation|bank_msa+loanyr|0|msa,data=regsample)
  .printtable(r3,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ===========================================================================
##                                              Dependent variable:           
##                                    ----------------------------------------
##                                    Freddie Loans Fannie Loans Moody's Loans
##                                         (1)          (2)           (3)     
## ---------------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct    0.015***       0.003*      -0.015***  
##                                       (0.002)      (0.002)       (0.003)   
## factor(msinc13G)2. 1 - 5pct          -0.013***    -0.007***     0.030***   
##                                       (0.002)      (0.002)       (0.006)   
## factor(msinc13G)3. 5pct - 10pct       0.0003        0.006       0.037***   
##                                       (0.003)      (0.004)       (0.014)   
## factor(msinc13G)4. More than 10pct   0.020***       0.011*      0.197***   
##                                       (0.006)      (0.006)       (0.005)   
## factor(msinc46G)1. Less than 1pct    0.011***       -0.002                 
##                                       (0.002)      (0.002)                 
## factor(msinc46G)2. 1 - 5pct          -0.014***    -0.007***                
##                                       (0.003)      (0.002)                 
## factor(msinc46G)3. 5pct - 10pct      -0.016***      -0.002                 
##                                       (0.004)      (0.006)                 
## factor(msinc46G)4. More than 10pct   -0.023***      0.034                  
##                                       (0.006)      (0.025)                 
## fico                                -0.00001***   -0.0003***     0.00000   
##                                      (0.00000)    (0.00002)     (0.00001)  
## dti                                 -0.00001***    0.001***                
##                                      (0.00000)    (0.00004)                
## log(orig_upb)                        0.070***      0.075***                
##                                       (0.004)      (0.005)                 
## fulldocumentation                                               0.020***   
##                                                                  (0.001)   
## ---------------------------------------------------------------------------
## Fixed Effects                      MSA*Bank, Yr  MSA*Bank, Yr MSA*Bank, Yr 
## Observations                         8,210,798    15,685,571    3,272,885  
## Adjusted R2                            0.148        0.213         0.145    
## ===========================================================================
## Note:                                           *p<0.1; **p<0.05; ***p<0.01
## 

5.2 Linear

  .printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ==========================================================
##                             Dependent variable:           
##                   ----------------------------------------
##                   Freddie Loans Fannie Loans Moody's Loans
##                        (1)          (2)           (3)     
## ----------------------------------------------------------
## msinc13               0.007       0.114***     0.642***   
##                      (0.030)      (0.031)       (0.187)   
## msinc46             -0.349***      0.054                  
##                      (0.039)      (0.047)       (0.000)   
## fico               -0.00001***   -0.0003***     0.00000   
##                     (0.00000)    (0.00002)     (0.00001)  
## fulldocumentation                              0.020***   
##                                                 (0.001)   
## ----------------------------------------------------------
## Fixed Effects     MSA*Bank, Yr  MSA*Bank, Yr MSA*Bank, Yr 
## Observations        8,210,798    16,053,448    3,272,885  
## Adjusted R2           0.110        0.159         0.145    
## ==========================================================
## Note:                          *p<0.1; **p<0.05; ***p<0.01
## 

5.3 Other Lenders

r <- list()

regsample <- freddie[!seller_name %in% unique(cbsa_bnk$bank)]
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]


  r[[1]] <- felm(I(ltv/100)~factor(msinc13G)+fico|bank_msa+loanyr,data=regsample)
  
regsample <- fannie[!seller_name %in% unique(cbsa_bnk$bank)]
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]  

 r[[2]] <- felm(I(ltv/100)~factor(msinc13G)+fico|bank_msa+loanyr,data=regsample)
 
regsample <- moodys[!seller_name %in% unique(cbsa_bnk$bank)] 
regsample <- merge(regsample,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]

 r[[3]] <- felm(I(ltv/100)~factor(msinc13G)+fico+fulldocumentation|bank_msa+loanyr|0|msa,data=regsample[seller_name != ""])

.printtable(r)
## 
## ====================================================================
##                                           Dependent variable:       
##                                    ---------------------------------
##                                        (1)        (2)        (3)    
## --------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct    -0.011*     -0.001   -0.044*** 
##                                      (0.006)    (0.002)    (0.004)  
## factor(msinc13G)2. 1 - 5pct         -0.016***  -0.009***  -0.042*** 
##                                      (0.006)    (0.002)    (0.003)  
## factor(msinc13G)3. 5pct - 10pct      -0.004     0.006***  -0.049*** 
##                                      (0.006)    (0.002)    (0.003)  
## factor(msinc13G)4. More than 10pct   -0.001     0.007***  -0.057*** 
##                                      (0.006)    (0.002)    (0.007)  
## fico                               -0.00001*** -0.0003*** -0.0002***
##                                     (0.00000)  (0.00000)  (0.00002) 
## fulldocumentation                                          0.014*** 
##                                                            (0.001)  
## --------------------------------------------------------------------
##                                                                     
## Observations                        5,345,739  8,927,435  1,923,773 
## Adjusted R2                           0.105      0.157      0.187   
## ====================================================================
## Note:                                    *p<0.1; **p<0.05; ***p<0.01
##