files = paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",c("2014.fst","2015.fst","2016.fst","2017.fst","2018.fst","2019.fst"))

panel = lapply(files, read_fst, as.data.table = TRUE,columns=c("asofdate","respondentid","rssd","agencycode","reportername","topholderrssdid","parentrssd")) 
panel <- do.call(rbind , panel)

panel[,rssd:=as.numeric(rssd)]
panel[,parentrssd:=as.numeric(parentrssd)]
panel[,topholderrssdid:=as.numeric(topholderrssdid)]
panel[,asofdate:=as.integer(asofdate)]
panel[,hmda_id:=ifelse(asofdate<=2017,paste0(agencycode,"-",respondentid),respondentid)]

panel <- panel[!duplicated(panel[,c("hmda_id","asofdate")])]

panelcomplete1 <- panel[,c("hmda_id","rssd","parentrssd","topholderrssdid")]
panelcomplete1 <- panelcomplete1[!duplicated(panelcomplete1[,c("hmda_id")])]



files = paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",paste0(as.character(2004:2013),".fst"))

panel = lapply(files, read_fst, as.data.table = TRUE,columns=c("asofdate","respondentid","rssd","agencycode","parentidentifier")) 
panel <- do.call(rbind , panel)

panel[,rssd:=as.numeric(rssd)]
panel[,parentrssd:=as.numeric(parentidentifier)]
panel[,asofdate:=as.integer(asofdate)]
panel[,hmda_id:=ifelse(asofdate<=2017,paste0(agencycode,"-",respondentid),respondentid)]

panel <- panel[!duplicated(panel[,c("hmda_id","asofdate")])]

panel <- panel[,c("hmda_id","rssd","parentrssd")]
panel[,topholderrssdid:=NA]
panel <- panel[!duplicated(panel[,c("hmda_id")])]

panel <- panel[!hmda_id %in% panelcomplete1$hmda_id]

panelcomplete1 <- rbind(panelcomplete1,panel)



files = paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",paste0(as.character(1995:2019),".fst"))

panel = lapply(files, read_fst, as.data.table = TRUE,columns=c("asofdate","respondentid","agencycode")) 
panel <- do.call(rbind , panel)

panel[,asofdate:=as.integer(asofdate)]
panel[,hmda_id:=ifelse(asofdate<=2017,paste0(agencycode,"-",respondentid),respondentid)]

panel <- panel[!duplicated(panel[,c("hmda_id","asofdate")])]

panel <- merge(panel,panelcomplete1,by="hmda_id",all.x = T)

panel[is.na(panel)]<-0

panel[,unique_id:=ifelse(parentrssd>0,parentrssd,ifelse(rssd>0,rssd,hmda_id))]

panel <- panel[!duplicated(panel[,c("hmda_id")])]
setkey(panel,hmda_id)

rm(panelcomplete1)

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","actiontaken","censustract","purposeofloan"))
hmda <- do.call(rbind , hmda)

hmda <- hmda[actiontaken=="1"]

hmda[,hmda_id:=ifelse(asofdate<=2017,paste0(agencycode,"-",respondentid),respondentid)]

hmda <- hmda[nchar(censustract)==11]

hmda[,countycode:=substr(censustract,1,5)]

setkey(hmda,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))]
setkey(cbsa_fips,fips)

hmda <- merge(hmda,cbsa_fips,by.x="countycode",by.y="fips",all.x=T)

setkey(hmda,hmda_id)

hmda <- merge(hmda,panel[,c("hmda_id","unique_id")],by=c("hmda_id"))

1 Market Share of Top Lenders

1.1 National

1.1.1 All loans

yearrank <- hmda[,.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top 5",ifelse(rank<=10,"top 5 to 10","other"))]
yearrank <- yearrank[,.(N=sum(N)),by=.(asofdate,rank)]
yearrank <- dcast(yearrank,asofdate~rank)
yearrank[,top5pct:=`top 5`/(other+`top 5`+`top 5 to 10`)]
yearrank[,top10pct:=(`top 5`+`top 5 to 10`)/(other+`top 5`+`top 5 to 10`)]

yearrank <- yearrank[,c("asofdate","top5pct","top10pct")]
yearrank <- melt(yearrank,id.vars = c("asofdate"))
yearrank[,variable:=as.character(variable)]
yearrank[,variable:=ifelse(variable=="top5pct","Top 5 lenders","Top 10 lenders")]
yearrank[,value:=value*100]
ggplot(yearrank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen'))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

1.1.2 New purchases

yearrank <- hmda[purposeofloan=="1",.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top 5",ifelse(rank<=10,"top 5 to 10","other"))]
yearrank <- yearrank[,.(N=sum(N)),by=.(asofdate,rank)]
yearrank <- dcast(yearrank,asofdate~rank)
yearrank[,top5pct:=`top 5`/(other+`top 5`+`top 5 to 10`)]
yearrank[,top10pct:=(`top 5`+`top 5 to 10`)/(other+`top 5`+`top 5 to 10`)]

yearrank <- yearrank[,c("asofdate","top5pct","top10pct")]
yearrank <- melt(yearrank,id.vars = c("asofdate"))
yearrank[,variable:=as.character(variable)]
yearrank[,variable:=ifelse(variable=="top5pct","Top 5 lenders","Top 10 lenders")]
yearrank[,value:=value*100]
ggplot(yearrank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen'))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

1.1.3 Refinances

yearrank <- hmda[purposeofloan!="1",.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top 5",ifelse(rank<=10,"top 5 to 10","other"))]
yearrank <- yearrank[,.(N=sum(N)),by=.(asofdate,rank)]
yearrank <- dcast(yearrank,asofdate~rank)
yearrank[,top5pct:=`top 5`/(other+`top 5`+`top 5 to 10`)]
yearrank[,top10pct:=(`top 5`+`top 5 to 10`)/(other+`top 5`+`top 5 to 10`)]

yearrank <- yearrank[,c("asofdate","top5pct","top10pct")]
yearrank <- melt(yearrank,id.vars = c("asofdate"))
yearrank[,variable:=as.character(variable)]
yearrank[,variable:=ifelse(variable=="top5pct","Top 5 lenders","Top 10 lenders")]
yearrank[,value:=value*100]
ggplot(yearrank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen'))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

1.2 MSA Level

1.2.1 All loans

yearrank <- hmda[,.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top5","other")]
yearrank[,N:=NULL]


msarank <- hmda[,.N,by=.(asofdate,cbsa,unique_id)]
msarank <- merge(msarank,yearrank,by=c("asofdate","unique_id"))
msarank <- msarank[!is.na(cbsa)]
msarank <- msarank[,.(N=sum(N)),by=.(asofdate,cbsa,rank)]
msarank <- dcast(msarank,asofdate+cbsa~rank)
msarank[is.na(msarank)] <- 0
msarank[,top5:=top5/(top5+other)]
msarank[,top5:=top5*100]

msarank <- msarank[,.(P25=quantile(top5,0.25,na.rm = T),P50=quantile(top5,0.5,na.rm = T),P75=quantile(top5,0.75,na.rm = T)),by=asofdate]

msarank <- melt(msarank,id.vars = c("asofdate"))
msarank[,variable:=as.character(variable)]

ggplot(msarank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen',"darkred"))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

1.2.2 New purchases

yearrank <- hmda[purposeofloan=="1",.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top5","other")]
yearrank[,N:=NULL]


msarank <- hmda[purposeofloan=="1",.N,by=.(asofdate,cbsa,unique_id)]
msarank <- merge(msarank,yearrank,by=c("asofdate","unique_id"))
msarank <- msarank[!is.na(cbsa)]
msarank <- msarank[,.(N=sum(N)),by=.(asofdate,cbsa,rank)]
msarank <- dcast(msarank,asofdate+cbsa~rank)
msarank[is.na(msarank)] <- 0
msarank[,top5:=top5/(top5+other)]
msarank[,top5:=top5*100]

msarank <- msarank[,.(P25=quantile(top5,0.25,na.rm = T),P50=quantile(top5,0.5,na.rm = T),P75=quantile(top5,0.75,na.rm = T)),by=asofdate]

msarank <- melt(msarank,id.vars = c("asofdate"))
msarank[,variable:=as.character(variable)]

ggplot(msarank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen',"darkred"))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

1.2.3 Refinances

yearrank <- hmda[purposeofloan!="1",.N,by=.(asofdate,unique_id)]
yearrank[,rank:=frankv(N,order=-1),by=asofdate]
yearrank[,rank:=ifelse(rank<=5,"top5","other")]
yearrank[,N:=NULL]


msarank <- hmda[purposeofloan!="1",.N,by=.(asofdate,cbsa,unique_id)]
msarank <- merge(msarank,yearrank,by=c("asofdate","unique_id"))
msarank <- msarank[!is.na(cbsa)]
msarank <- msarank[,.(N=sum(N)),by=.(asofdate,cbsa,rank)]
msarank <- dcast(msarank,asofdate+cbsa~rank)
msarank[is.na(msarank)] <- 0
msarank[,top5:=top5/(top5+other)]
msarank[,top5:=top5*100]

msarank <- msarank[,.(P25=quantile(top5,0.25,na.rm = T),P50=quantile(top5,0.5,na.rm = T),P75=quantile(top5,0.75,na.rm = T)),by=asofdate]

msarank <- melt(msarank,id.vars = c("asofdate"))
msarank[,variable:=as.character(variable)]

ggplot(msarank)+geom_line(aes(x=asofdate,y=value,color=variable),size=1)+theme_minimal()+scale_color_manual(values=c('royalblue','darkgreen',"darkred"))+theme(legend.position = "bottom", legend.title = element_blank(), 
      panel.border = element_blank(), axis.line.x = element_line(color = "gray80"), 
      axis.text.x = element_text(angle = 90, hjust = 1))+labs(x="",y="% of loans") +scale_x_continuous(breaks = 1990:2019)

2 List of Mergers

files = paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",as.character(2000:2016),".fst")

panel = lapply(files, read_fst, as.data.table = TRUE,columns=c("respondentid","agencycode","reportername","asofdate","parentname","parentidentifier","reporterhomecity","reporterhomestate","rssd"))
panel <- do.call(rbind , panel)

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()
##              used    (Mb) gc trigger    (Mb)   max used    (Mb)
## Ncells    2198053   117.4    4104622   219.3    4104622   219.3
## Vcells 2224104658 16968.6 6822705216 52053.2 7327133930 55901.6
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","1-0000024141","4-0000018039"),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 5 msas; small share.
temp <- list(10,"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[[10]] <- temp


temp <- list(11,"MBNA NA - BANK OF AMERICA 2005",c("1-0000024095"),c("1-0000013044"),
             2003,"BANK OF AMERICA, N.A.",2005)
mergers[[11]] <- temp

temp <- list(12,"Merrill Lynch - BANK OF AMERICA 2008",c("2-0000421203","7-13-3403204","3-13-3098068","3-13-3399559","3-0000027374","3-0000091363","3-13-3399559","4-0000014460","3-68-0518519","4-0000014460", "4-0133098068"),c("1-0000013044"),
             2005,"BANK OF AMERICA, N.A.",2008)
mergers[[12]] <- temp


temp <- list(13,"FIRST INTERSTATE BK CA  - Wells Fargo 1996",c("2-0000669667"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,1994,"WELLS FARGO BANK, N.A.",1996)
mergers[[13]] <- temp

temp <- list(14,"PACIFIC NORTHWEST  - Wells Fargo 2004",c("3-0000030887","3-0000027346"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
             2002,"WELLS FARGO BANK, N.A.",2004)
mergers[[14]] <- temp


temp <- list(15,"MERIDIAN MOME MORTGAGE, LP  - Wells Fargo 2010",c("1-74-3082948"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
             2005,"WELLS FARGO BANK, N.A.",2010)
mergers[[15]] <- temp


temp <- list(16,"The Leader Mtg Co - US Bank 2004",
             c("7-3814209995"),
             panel[substr(reportername,1,5)=="U S B"]$hmda_id,
             2002,c("U.S. BANK N.A."),2004)
mergers[[16]] <- temp

temp <- list(17,"PFF BANK & TRUST  - US Bank 2008",
             c("4-0000001405"),
             panel[substr(reportername,1,5)=="U S B"]$hmda_id,
             2005,c("U.S. BANK N.A."),2008)
mergers[[17]] <- temp


temp <- list(18,"DOWNEY SAVINGS AND LOAN ASSOCIATION, F.A.   - US Bank 2008",
             c("4-0000006189"),
             panel[substr(reportername,1,5)=="U S B"]$hmda_id,
             2005,c("U.S. BANK N.A."),2008)
mergers[[18]] <- 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]
cbsas[,suc_share:=0]


cbsa_bnk <- NULL
lender_bank <- NULL
sumtable <- 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)]
  cw <- temp[,.(pred_share=mean(pred)),by=.(cbsa)]
  
  temp1 <- hmda[asofdate == (acyr-1) ]
  temp1[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]
  cw1 <- temp1[,.(suc_share=mean(suc)),by=.(cbsa)]
  
  cw <- merge(cw,cw1,by="cbsa",all.x=T)
  cw <- cw[!is.na(cbsa)]
  cw[is.na(cw)] <- 0
  
  cw[,joint_share:=pred_share+suc_share]
  cw[,bank:=acname]
  cw[,acyr:=acyr]

  cw[,c("joint_share"):=list(NULL)]
  cbsa_bnk <- rbind(cbsa_bnk,cw)
}


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)

names(cbsa_bnk_1) <- c("cbsa","pred_share_7","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_8","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_9","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[,pred_share_7:=ifelse(is.na(pred_share_7),0,pred_share_7)]
cbsa_bnk[,pred_share_8:=ifelse(is.na(pred_share_8),0,pred_share_8)]
cbsa_bnk[,pred_share_9:=ifelse(is.na(pred_share_9),0,pred_share_9)]

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_bnk[,msinc79:=pred_share_7+pred_share_8+pred_share_9+0.00001]
 

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[,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_bnk[,msinc79G:=ifelse(msinc79<=0.0001,"0. 0",
                           ifelse(msinc79<0.01,"1. Less than 1pct",
                           ifelse(msinc79<0.05,"2. 1 - 5pct",
                                  ifelse(msinc79<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]

2.1 Step 1: Identifying Lenders

We identified lenders that are consistently identified across in freddie and fannie data sets. Freddie and fannie identify lenders with a total loan amount epresenting 1% or more of the total loan amount of all loans in the Dataset for a given calendar quarter. Otherwise, the lender name is set to “Other Sellers”. The lists of Freddie and Fannie lenders with the corresponding number of loans in each year are available here{:target="_blank“} and here{:target=”_blank"}, respectively.

List of Lenders Identified
  • Bank of America
  • JPMorgan Chase
  • Wells Fargo
  • US Bank
  • Flagstar FSB
  • Fifth Thrid Bank
  • Regions Financial Corp

2.2 Step 2: Identifying mergers

We identified all the mergers since 1995 where the acquirer is one the selected banks in the list above. The list of all identified mergers is available here{:target="_blank"}

2.3 Step 3: Identifying targets present in HMDA data

Next, we exclude mergers if the target is not present in HMDA data. The list of selected mergers is available here{:target="_blank"}

2.4 Step 4: Identify ‘large’ targets

Criteria: at least one MSA where target had 5% or more market share.

3 Summary Statistics

3.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","loan_purpose"))
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")]
freddie[,freddie:=1]
freddie[,newpurchase:=ifelse(loan_purpose=="P",1,0)]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","newpurchase")

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  
## newpurchase 16,245,111    0.420       0.494       0        0       1    
## ------------------------------------------------------------------------

3.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","loan_purpose"))
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[,bank:=seller_name]
fannie[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
fannie[,freddie:=0]

setnames(fannie,"zip_code","zipcode")
setnames(fannie,"original_ltv","ltv")
setnames(fannie,"original_upb","orig_upb")
setnames(fannie,"original_interest_rate","int_rt")
setnames(fannie,"loan_identifier","id_loan")
setnames(fannie,"credit_score","fico")
setnames(fannie,"original_dti","dti")

fannie[,c("property_type","property_state","original_loan_term","origination_date"):=list(NULL)]
fannie[,loan_purpose:=ifelse(loan_purpose=="R","N",loan_purpose)]

fannie <- fannie[loan_purpose != "U"]
fannie[,id_loan:=as.character(id_loan)]

fannie[,newpurchase:=ifelse(loan_purpose=="P",1,0)]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","newpurchase")

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,256,524   736.426     54.519    700.000  747.000 781.000 
## ltv         20,347,997   73.220      16.213     65.000  78.000   80.000 
## dti         19,924,305   34.426      11.429     26.000  35.000   42.000 
## orig_upb    20,348,007 197,397.000 111,678.300 115,000  172,000 254,000 
## int_rt      20,348,004    5.542       1.240     4.500    5.625   6.375  
## loanyr      20,348,007  2,007.760     5.680     2,003    2,007   2,013  
## newpurchase 20,348,007    0.410       0.492       0        0       1    
## ------------------------------------------------------------------------

3.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","purposetype","assettype")) 

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   38964662  2081.0   61656191  3292.8   41527860  2217.9
## Vcells 3541882276 27022.5 6822705216 52053.2 7327133930 55901.6
moodys[,bank:=seller_name]
moodys[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
moodys[,newpurchase:=ifelse(purposetype=="PUR",1,0)]

moodys <- moodys[assettype != "UN"]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")

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              14,270,174   669.021     71.764     620.000     672.000     723.000  
## ltv               14,550,668   69.383      26.231      62.257     80.000      80.000   
## dti               14,646,107    0.000       0.000        0           0           0     
## orig_upb          14,644,960 224,316.700 217,121.600 80,439.160 159,600.000 306,750.000
## int_rt            14,635,473    7.382       2.528      6.000       7.125       8.750   
## loanyr            14,619,923  2,004.422     2.223    2,004.000   2,005.000   2,006.000 
## fulldocumentation 14,646,107    0.314       0.464        0           0           1     
## newpurchase       14,646,107    0.392       0.488        0           0           1     
## ---------------------------------------------------------------------------------------

4 Descriptive Statistics: Market Share Changes

4.1 msinc13

print(ggplot(cbsa_bnk[msinc13>0.00001],aes(x=msinc13*100))+geom_histogram(fill="royalblue",alpha=0.3,color="royalblue")+theme_minimal())+labs(x=bquote(MSInc^{1-3}~"(%)"),y="Frequency")+scale_y_continuous(labels = function(x) format(x, big.mark = ",",scientific = FALSE))

4.2 msinc46

print(ggplot(cbsa_bnk[msinc46>0.00001],aes(x=msinc46*100))+geom_histogram(fill="royalblue",alpha=0.3,color="royalblue")+theme_minimal())+labs(x=bquote(MSInc^{4-6}~"(%)"),y="Frequency")+scale_y_continuous(labels = function(x) format(x, big.mark = ",",scientific = FALSE))

5 Dep. Var: Interest Increase by the Acquiring Bank

\[ 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

5.1 Purchase Refinance Combined

regsample <- rbind(freddie,fannie)

regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]


  r <- list()
  r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)

  r[[2]] <- felm(int_rt~newpurchase*msinc13+newpurchase*msinc46+fico+ltv+dti+log(orig_upb)+freddie|bank_msa+loanyr|0|msa,data=regsample)
  
  r[[3]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])

  r[[4]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+dti+log(orig_upb)+freddie|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
  
  

regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]
# regsample[,yr_msa:=paste(loanyr,msa)]

  r[[5]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])  
  r[[6]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+fulldocumentation+log(orig_upb)+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
  
    .printtable(r,column.labels = c("GSE","GSE","GSE <= 2007","GSE <= 2007","Moody's","Moody's"),lines = list(c("Fixed Effects",rep("MSA*Bank, Yr",6))))
## 
## =======================================================================================================
##                                                        Dependent variable:                             
##                           -----------------------------------------------------------------------------
##                               GSE          GSE      GSE <= 2007  GSE <= 2007    Moody's      Moody's   
##                               (1)          (2)          (3)          (4)          (5)          (6)     
## -------------------------------------------------------------------------------------------------------
## msinc13                     0.772***     0.886***     0.484***     1.096***     6.797***     9.030***  
##                             (0.047)      (0.061)      (0.145)      (0.173)      (1.967)      (2.017)   
## msinc46                     0.258***     0.225**                                                       
##                             (0.086)      (0.105)                                                       
## fico                       -0.0001***   -0.0001***  -0.00003***  -0.00003***   -0.004***    -0.004***  
##                            (0.00001)    (0.00001)    (0.00000)    (0.00000)     (0.0001)     (0.0001)  
## ltv                         0.004***     0.004***     0.004***     0.004***    -0.012***    -0.012***  
##                             (0.0001)     (0.0001)     (0.0001)     (0.0001)     (0.001)      (0.001)   
## dti                        0.0001***    0.0001***    0.0001***    0.0001***                            
##                            (0.00001)    (0.00001)    (0.00001)    (0.00001)                            
## fulldocumentation                                                              -0.227***    -0.227***  
##                                                                                 (0.010)      (0.010)   
## log(orig_upb)              -0.227***    -0.227***    -0.237***    -0.237***    -1.017***    -1.017***  
##                             (0.006)      (0.006)      (0.005)      (0.005)      (0.018)      (0.018)   
## freddie                     0.046***     0.046***     0.052***     0.052***                            
##                             (0.002)      (0.002)      (0.003)      (0.003)                             
## newpurchase:msinc13                     -0.294***                 -1.479***                 -5.566***  
##                                          (0.063)                   (0.124)                   (0.840)   
## newpurchase:msinc46                       0.073                                                        
##                                          (0.111)                                                       
## newpurchase                 0.023***     0.023***     0.015***     0.016***     0.310***     0.311***  
##                             (0.004)      (0.004)      (0.003)      (0.003)      (0.032)      (0.032)   
## factor(assettype)Prime                                                         -0.137***    -0.137***  
##                                                                                 (0.007)      (0.007)   
## factor(assettype)Subprime                                                       0.216***     0.216***  
##                                                                                 (0.015)      (0.015)   
## -------------------------------------------------------------------------------------------------------
## Fixed Effects             MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations               23,889,210   23,889,210   13,718,101   13,718,101   3,271,732    3,271,732  
## Adjusted R2                  0.897        0.897        0.759        0.759        0.517        0.517    
## =======================================================================================================
## Note:                                                                       *p<0.1; **p<0.05; ***p<0.01
## 

5.2 Purchase Refinance Combined - Bins

regsample <- rbind(freddie,fannie)

regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]


  r <- list()
  r[[1]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
  
  r[[2]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])


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~factor(msinc13G)+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])  

  .printtable(r,column.labels = c("GSE","GSE <= 2007","Moody's","Moody's"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## =========================================================================
##                                             Dependent variable:          
##                                    --------------------------------------
##                                        GSE      GSE <= 2007    Moody's   
##                                        (1)          (2)          (3)     
## -------------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct    0.049***     0.031***    -0.151***  
##                                      (0.003)      (0.005)      (0.021)   
## factor(msinc13G)2. 1 - 5pct          0.044***     0.025***     0.268***  
##                                      (0.004)      (0.007)      (0.077)   
## factor(msinc13G)3. 5pct - 10pct      0.044***     0.030***     0.473***  
##                                      (0.006)      (0.010)      (0.135)   
## factor(msinc13G)4. More than 10pct   0.099***      0.066       1.902***  
##                                      (0.008)      (0.056)      (0.441)   
## factor(msinc46G)1. Less than 1pct    0.010**                             
##                                      (0.004)                             
## factor(msinc46G)2. 1 - 5pct          0.025***                            
##                                      (0.006)                             
## factor(msinc46G)3. 5pct - 10pct       0.005                              
##                                      (0.010)                             
## factor(msinc46G)4. More than 10pct    0.001                              
##                                      (0.010)                             
## fico                                -0.0001***  -0.00003***   -0.004***  
##                                     (0.00001)    (0.00000)     (0.0001)  
## ltv                                  0.004***     0.004***    -0.012***  
##                                      (0.0001)     (0.0001)     (0.001)   
## dti                                 0.0001***    0.0001***               
##                                     (0.00001)    (0.00001)               
## fulldocumentation                                             -0.226***  
##                                                                (0.010)   
## log(orig_upb)                       -0.227***    -0.238***    -1.017***  
##                                      (0.006)      (0.005)      (0.018)   
## freddie                              0.048***     0.051***               
##                                      (0.002)      (0.003)                
## newpurchase                          0.023***     0.015***     0.310***  
##                                      (0.004)      (0.003)      (0.032)   
## factor(assettype)Prime                                        -0.137***  
##                                                                (0.007)   
## factor(assettype)Subprime                                      0.216***  
##                                                                (0.015)   
## -------------------------------------------------------------------------
## Fixed Effects                      MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations                        23,889,210   13,718,101   3,271,732  
## Adjusted R2                           0.898        0.759        0.517    
## =========================================================================
## Note:                                         *p<0.1; **p<0.05; ***p<0.01
## 

6 Dep. Var: Loan-to-value

6.1 Purchase Refinance Combined

regsample <- rbind(freddie,fannie)

regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltv]

  r <- list()
  r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)

  r[[2]] <- felm(log(orig_upb)~newpurchase*msinc13+newpurchase*msinc46+fico+dti+log(homevalue)+freddie|bank_msa+loanyr|0|msa,data=regsample)
  
  r[[3]] <- felm(log(orig_upb)~msinc13+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])

  r[[4]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+dti+log(homevalue)+freddie|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
  
  

regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltv]

  r[[5]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])  
  r[[6]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+fulldocumentation+log(homevalue)+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
  
    .printtable(r,column.labels = c("GSE","GSE","GSE <= 2007","GSE <= 2007","Moody's","Moody's"),lines = list(c("Fixed Effects",rep("MSA*Bank, Yr",6))))
## 
## =======================================================================================================
##                                                        Dependent variable:                             
##                           -----------------------------------------------------------------------------
##                               GSE          GSE      GSE <= 2007  GSE <= 2007    Moody's      Moody's   
##                               (1)          (2)          (3)          (4)          (5)          (6)     
## -------------------------------------------------------------------------------------------------------
## msinc13                     0.118***      0.076       0.132**      0.196**      2.628***      0.393    
##                             (0.040)      (0.053)      (0.065)      (0.095)      (0.525)      (0.631)   
## msinc46                      -0.056     -0.191***                                                      
##                             (0.052)      (0.067)                                                       
## fico                      -0.00003***  -0.00003***  -0.00003***  -0.00003***   0.0004***    0.0004***  
##                            (0.00000)    (0.00000)    (0.00000)    (0.00000)    (0.00002)    (0.00002)  
## dti                        0.00003***   0.00003***   0.00002***   0.00002***                           
##                            (0.00001)    (0.00001)    (0.00001)    (0.00001)                            
## fulldocumentation                                                               0.037***     0.037***  
##                                                                                 (0.003)      (0.003)   
## log(homevalue)              0.840***     0.840***     0.822***     0.822***     0.838***     0.838***  
##                             (0.010)      (0.010)      (0.010)      (0.010)      (0.005)      (0.005)   
## freddie                    -0.014***    -0.014***    -0.009***    -0.009***                            
##                             (0.001)      (0.001)      (0.001)      (0.001)                             
## newpurchase:msinc13                       0.121*                    -0.156                   5.569***  
##                                          (0.066)                   (0.117)                   (0.469)   
## newpurchase:msinc46                      0.372***                                                      
##                                          (0.067)                                                       
## newpurchase                 0.131***     0.130***     0.112***     0.112***    -0.086***    -0.087***  
##                             (0.003)      (0.003)      (0.004)      (0.004)      (0.010)      (0.010)   
## factor(assettype)Prime                                                          0.083***     0.083***  
##                                                                                 (0.004)      (0.004)   
## factor(assettype)Subprime                                                       0.049***     0.049***  
##                                                                                 (0.004)      (0.004)   
## -------------------------------------------------------------------------------------------------------
## Fixed Effects             MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations               23,889,212   23,889,212   13,718,103   13,718,103   3,272,969    3,272,969  
## Adjusted R2                  0.816        0.816        0.778        0.778        0.748        0.748    
## =======================================================================================================
## Note:                                                                       *p<0.1; **p<0.05; ***p<0.01
## 

6.2 Purchase Refinance Combined - Bins

regsample <- rbind(freddie,fannie)

regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))

regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltv]

  r <- list()
  r[[1]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
  
  r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])


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[,homevalue:= orig_upb*100/ltv]

  r[[3]] <- felm(log(orig_upb)~factor(msinc13G)+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])  

  .printtable(r,column.labels = c("GSE","GSE <= 2007","Moody's","Moody's"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## =========================================================================
##                                             Dependent variable:          
##                                    --------------------------------------
##                                        GSE      GSE <= 2007    Moody's   
##                                        (1)          (2)          (3)     
## -------------------------------------------------------------------------
## factor(msinc13G)1. Less than 1pct     0.003        0.002        0.011    
##                                      (0.002)      (0.003)      (0.007)   
## factor(msinc13G)2. 1 - 5pct           0.002        0.002       0.126***  
##                                      (0.003)      (0.003)      (0.018)   
## factor(msinc13G)3. 5pct - 10pct       0.010*       0.009*      0.113***  
##                                      (0.006)      (0.005)      (0.031)   
## factor(msinc13G)4. More than 10pct    0.001        0.007       0.320***  
##                                      (0.008)      (0.024)      (0.026)   
## factor(msinc46G)1. Less than 1pct     0.001                              
##                                      (0.003)                             
## factor(msinc46G)2. 1 - 5pct          0.007***                            
##                                      (0.002)                             
## factor(msinc46G)3. 5pct - 10pct       -0.005                             
##                                      (0.006)                             
## factor(msinc46G)4. More than 10pct  -0.039***                            
##                                      (0.014)                             
## fico                               -0.00003***  -0.00003***   0.0004***  
##                                     (0.00000)    (0.00000)    (0.00002)  
## dti                                 0.00003***   0.00002***              
##                                     (0.00001)    (0.00001)               
## fulldocumentation                                              0.037***  
##                                                                (0.003)   
## log(homevalue)                       0.840***     0.822***     0.838***  
##                                      (0.010)      (0.010)      (0.005)   
## freddie                             -0.014***    -0.009***               
##                                      (0.001)      (0.001)                
## newpurchase                          0.131***     0.112***    -0.086***  
##                                      (0.003)      (0.004)      (0.010)   
## factor(assettype)Prime                                         0.083***  
##                                                                (0.004)   
## factor(assettype)Subprime                                      0.049***  
##                                                                (0.004)   
## -------------------------------------------------------------------------
## Fixed Effects                      MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations                        23,889,212   13,718,103   3,272,969  
## Adjusted R2                           0.816        0.778        0.748    
## =========================================================================
## Note:                                         *p<0.1; **p<0.05; ***p<0.01
## 

7 Moodys Splits

regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltv]

7.1 Interest Rate

7.1.1 By loan type

7.1.1.1 Linear

r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype != "UN"])
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Prime"])  
r[[3]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A"])
r[[4]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime"])  

  
.printtable(r,column.labels = c("All","Prime","Alt-A","Subprime"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## =============================================================================
##                                           Dependent variable:                
##                           ---------------------------------------------------
##                               All         Prime        Alt-A       Subprime  
##                               (1)          (2)          (3)          (4)     
## -----------------------------------------------------------------------------
## msinc13                     6.797***      -1.570      9.817***    35.548***  
##                             (1.967)      (0.982)      (1.998)      (3.831)   
## fico                       -0.004***    -0.003***    -0.005***    -0.004***  
##                             (0.0001)     (0.0001)     (0.0001)     (0.0002)  
## ltv                        -0.012***    -0.007***    -0.013***    -0.013***  
##                             (0.001)      (0.001)      (0.001)      (0.001)   
## fulldocumentation          -0.227***    -0.184***    -0.376***    -0.395***  
##                             (0.010)      (0.009)      (0.015)      (0.013)   
## log(orig_upb)              -1.017***    -0.788***    -1.179***    -1.365***  
##                             (0.018)      (0.014)      (0.026)      (0.033)   
## newpurchase                 0.310***     0.229***     0.343***     0.390***  
##                             (0.032)      (0.024)      (0.037)      (0.044)   
## factor(assettype)Prime     -0.137***                                         
##                             (0.007)                                          
## factor(assettype)Subprime   0.216***                                         
##                             (0.015)                                          
## -----------------------------------------------------------------------------
## Fixed Effects             MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations               3,271,732    1,807,976     702,351      761,405   
## Adjusted R2                  0.517        0.586        0.549        0.404    
## =============================================================================
## Note:                                             *p<0.1; **p<0.05; ***p<0.01
## 

7.1.1.2 Market share bins

r <- list()
r[[1]] <- felm(int_rt~msinc13G+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype != "UN"])  
r[[2]] <- felm(int_rt~msinc13G+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Prime"])  
r[[3]] <- felm(int_rt~msinc13G+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A"])
r[[4]] <- felm(int_rt~msinc13G+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime"])  

  
.printtable(r,column.labels = c("All","Prime","Alt-A","Subprime"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ==============================================================================
##                                            Dependent variable:                
##                            ---------------------------------------------------
##                                All         Prime        Alt-A       Subprime  
##                                (1)          (2)          (3)          (4)     
## ------------------------------------------------------------------------------
## msinc13G1. Less than 1pct   -0.151***    -0.265***     0.078**      1.193***  
##                              (0.021)      (0.016)      (0.037)      (0.146)   
## msinc13G2. 1 - 5pct          0.268***      0.029       0.262***     1.221***  
##                              (0.077)      (0.052)      (0.081)      (0.149)   
## msinc13G3. 5pct - 10pct      0.473***      0.020       0.654***     1.547***  
##                              (0.135)      (0.081)      (0.164)      (0.160)   
## msinc13G4. More than 10pct   1.902***                               2.493***  
##                              (0.441)      (0.000)      (0.000)      (0.021)   
## fico                        -0.004***    -0.003***    -0.005***    -0.004***  
##                              (0.0001)     (0.0001)     (0.0001)     (0.0002)  
## ltv                         -0.012***    -0.007***    -0.013***    -0.013***  
##                              (0.001)      (0.001)      (0.001)      (0.001)   
## fulldocumentation           -0.226***    -0.181***    -0.376***    -0.395***  
##                              (0.010)      (0.009)      (0.015)      (0.013)   
## log(orig_upb)               -1.017***    -0.788***    -1.179***    -1.365***  
##                              (0.018)      (0.015)      (0.026)      (0.033)   
## newpurchase                  0.310***     0.229***     0.343***     0.390***  
##                              (0.032)      (0.024)      (0.036)      (0.044)   
## factor(assettype)Prime      -0.137***                                         
##                              (0.007)                                          
## factor(assettype)Subprime    0.216***                                         
##                              (0.015)                                          
## ------------------------------------------------------------------------------
## Fixed Effects              MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations                3,271,732    1,807,976     702,351      761,405   
## Adjusted R2                   0.517        0.586        0.549        0.404    
## ==============================================================================
## Note:                                              *p<0.1; **p<0.05; ***p<0.01
## 

7.1.2 Impact of acq. bank share

r <- list()
r[[1]] <- felm(int_rt~msinc13*suc_share+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype != "UN"])
r[[2]] <- felm(int_rt~msinc13*suc_share+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Prime"])  
r[[3]] <- felm(int_rt~msinc13*suc_share+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A"])
r[[4]] <- felm(int_rt~msinc13*suc_share+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime"])  

  
.printtable(r,column.labels = c("All","Prime","Alt-A","Subprime"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## =============================================================================
##                                           Dependent variable:                
##                           ---------------------------------------------------
##                               All         Prime        Alt-A       Subprime  
##                               (1)          (2)          (3)          (4)     
## -----------------------------------------------------------------------------
## msinc13                     5.143***    -3.197***     8.747***    34.641***  
##                             (1.893)      (0.953)      (1.929)      (3.774)   
## suc_share                  -3.184***    -2.927***    -2.753***    -2.069***  
##                             (0.186)      (0.201)      (0.284)      (0.338)   
## fico                       -0.004***    -0.003***    -0.005***    -0.004***  
##                             (0.0001)     (0.0001)     (0.0001)     (0.0002)  
## ltv                        -0.012***    -0.007***    -0.013***    -0.013***  
##                             (0.001)      (0.001)      (0.001)      (0.001)   
## fulldocumentation          -0.228***    -0.186***    -0.376***    -0.394***  
##                             (0.009)      (0.009)      (0.015)      (0.013)   
## log(orig_upb)              -1.018***    -0.789***    -1.180***    -1.366***  
##                             (0.018)      (0.015)      (0.026)      (0.033)   
## newpurchase                 0.310***     0.229***     0.341***     0.389***  
##                             (0.032)      (0.024)      (0.036)      (0.044)   
## factor(assettype)Prime     -0.137***                                         
##                             (0.007)                                          
## factor(assettype)Subprime   0.217***                                         
##                             (0.015)                                          
## msinc13:suc_share           -40.841       4.004       -545.778    810.319*** 
##                            (141.847)     (92.353)    (516.526)    (223.315)  
## -----------------------------------------------------------------------------
## Fixed Effects             MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations               3,271,732    1,807,976     702,351      761,405   
## Adjusted R2                  0.518        0.586        0.549        0.404    
## =============================================================================
## Note:                                             *p<0.1; **p<0.05; ***p<0.01
## 

7.1.3 By documentation

r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & documentationtype %in% c("FU") & assettype %in% c("Alt-A","Subprime")])  
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)+factor(documentationtype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & documentationtype %in% c("LO","NO") & assettype %in% c("Alt-A","Subprime")])

  
.printtable(r,column.labels = c("Full-Doc","Low/No-Doc"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ========================================================
##                                 Dependent variable:     
##                             ----------------------------
##                                Full-Doc     Low/No-Doc  
##                                  (1)            (2)     
## --------------------------------------------------------
## msinc13                       34.064***      20.137***  
##                                (2.821)        (3.571)   
## fico                          -0.004***      -0.003***  
##                                (0.0002)      (0.0002)   
## ltv                           -0.015***      -0.016***  
##                                (0.001)        (0.002)   
## fulldocumentation                                       
##                                (0.000)        (0.000)   
## log(orig_upb)                 -1.243***      -1.120***  
##                                (0.027)        (0.041)   
## newpurchase                    0.398***      0.485***   
##                                (0.037)        (0.048)   
## factor(assettype)Subprime      0.243***      0.293***   
##                                (0.011)        (0.016)   
## factor(documentationtype)NO                  0.444***   
##                                               (0.014)   
## --------------------------------------------------------
## Fixed Effects                MSA*Bank, Yr  MSA*Bank, Yr 
## Observations                   673,518        399,704   
## Adjusted R2                     0.406          0.478    
## ========================================================
## Note:                        *p<0.1; **p<0.05; ***p<0.01
## 

7.1.4 By FICO Score

r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & fico<620 & assettype %in% c("Alt-A","Subprime")])  
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & fico>=620 & assettype %in% c("Alt-A","Subprime")])

  
.printtable(r,column.labels = c("FICO<620","FICO>=620"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ======================================================
##                               Dependent variable:     
##                           ----------------------------
##                              FICO<620      FICO>=620  
##                                (1)            (2)     
## ------------------------------------------------------
## msinc13                     39.422***      11.111***  
##                              (4.023)        (2.148)   
## fico                        -0.002***      -0.006***  
##                              (0.0003)      (0.0001)   
## ltv                         -0.013***      -0.014***  
##                              (0.001)        (0.001)   
## fulldocumentation           -0.401***      -0.348***  
##                              (0.014)        (0.015)   
## log(orig_upb)               -1.429***      -1.179***  
##                              (0.032)        (0.029)   
## newpurchase                  0.324***      0.380***   
##                              (0.044)        (0.036)   
## factor(assettype)Subprime    0.724***      0.270***   
##                              (0.027)        (0.016)   
## ------------------------------------------------------
## Fixed Effects              MSA*Bank, Yr  MSA*Bank, Yr 
## Observations                 611,157        852,599   
## Adjusted R2                   0.380          0.555    
## ======================================================
## Note:                      *p<0.1; **p<0.05; ***p<0.01
## 

7.2 loan amount

7.2.1 By loan type

r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype != "UN"])  
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Prime"])  
r[[3]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A"])
r[[4]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime"])  

  
.printtable(r,column.labels = c("All","Prime","Alt-A","Subprime"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## =============================================================================
##                                           Dependent variable:                
##                           ---------------------------------------------------
##                               All         Prime        Alt-A       Subprime  
##                               (1)          (2)          (3)          (4)     
## -----------------------------------------------------------------------------
## msinc13                     2.628***     1.849***     6.849***      0.182    
##                             (0.525)      (0.590)      (0.686)      (0.425)   
## fico                       0.0004***    0.0003***    0.0003***    0.0002***  
##                            (0.00002)    (0.00003)    (0.00005)     (0.0001)  
## fulldocumentation           0.037***     0.055***     0.084***    -0.056***  
##                             (0.003)      (0.002)      (0.004)      (0.004)   
## log(homevalue)              0.838***     0.859***     0.804***     0.763***  
##                             (0.005)      (0.006)      (0.006)      (0.008)   
## newpurchase                -0.086***     0.026***    -0.177***    -0.281***  
##                             (0.010)      (0.009)      (0.008)      (0.011)   
## factor(assettype)Prime      0.083***                                         
##                             (0.004)                                          
## factor(assettype)Subprime   0.049***                                         
##                             (0.004)                                          
## -----------------------------------------------------------------------------
## Fixed Effects             MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations               3,272,969    1,808,312     702,637      762,020   
## Adjusted R2                  0.748        0.797        0.666        0.619    
## =============================================================================
## Note:                                             *p<0.1; **p<0.05; ***p<0.01
## 

7.2.2 By documentation

r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & documentationtype %in% c("FU") & assettype %in% c("Alt-A","Subprime")])  
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)+factor(documentationtype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & documentationtype %in% c("LO","NO") & assettype %in% c("Alt-A","Subprime")])

  
.printtable(r,column.labels = c("Full-Doc","Low/No-Doc"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ========================================================
##                                 Dependent variable:     
##                             ----------------------------
##                                Full-Doc     Low/No-Doc  
##                                  (1)            (2)     
## --------------------------------------------------------
## msinc13                        2.463***      3.655***   
##                                (0.426)        (0.631)   
## fico                          -0.001***     -0.0002***  
##                                (0.0001)      (0.0001)   
## fulldocumentation                                       
##                                (0.000)        (0.000)   
## log(homevalue)                 0.857***      0.830***   
##                                (0.004)        (0.008)   
## newpurchase                   -0.268***      -0.143***  
##                                (0.009)        (0.008)   
## factor(assettype)Subprime     -0.100***      0.057***   
##                                (0.003)        (0.005)   
## factor(documentationtype)NO                  -0.136***  
##                                               (0.015)   
## --------------------------------------------------------
## Fixed Effects                MSA*Bank, Yr  MSA*Bank, Yr 
## Observations                   673,565        399,728   
## Adjusted R2                     0.650          0.650    
## ========================================================
## Note:                        *p<0.1; **p<0.05; ***p<0.01
## 

7.2.3 By FICO Score

r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & fico<620 & assettype %in% c("Alt-A","Subprime")])  
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & fico>=620 & assettype %in% c("Alt-A","Subprime")])

  
.printtable(r,column.labels = c("FICO<620","FICO>=620"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
## 
## ======================================================
##                               Dependent variable:     
##                           ----------------------------
##                              FICO<620      FICO>=620  
##                                (1)            (2)     
## ------------------------------------------------------
## msinc13                       -0.280       6.236***   
##                              (0.478)        (0.607)   
## fico                        -0.001***      0.001***   
##                              (0.0001)      (0.00005)  
## fulldocumentation           -0.019***      0.046***   
##                              (0.005)        (0.003)   
## log(homevalue)               0.770***      0.795***   
##                              (0.009)        (0.006)   
## newpurchase                 -0.273***      -0.202***  
##                              (0.011)        (0.009)   
## factor(assettype)Subprime   -0.069***      0.085***   
##                              (0.008)        (0.005)   
## ------------------------------------------------------
## Fixed Effects              MSA*Bank, Yr  MSA*Bank, Yr 
## Observations                 611,700        852,957   
## Adjusted R2                   0.638          0.647    
## ======================================================
## Note:                      *p<0.1; **p<0.05; ***p<0.01
## 

8 HMDA Data: New Purchases

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_bnk_partrend <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_partrend.fst",as.data.table = T)

cbsa_share_partrend <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share_partrend.fst",as.data.table = T)
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))

files <- files[substr(files,100,103) %in% as.character(2000:2017)] #c("2014","2015","2016","2017","2018")

hmda = lapply(files, read_fst, as.data.table = TRUE,
              columns=c("asofdate","respondentid","agencycode","state","countycode","msa","actiontaken","applicantrace1","applicantincome","amountofloan","typeofpurchaser","typeofloan","applicantethnicity"))
hmda <- do.call(rbind , hmda)
# hmda <- hmda[asofd•ate>=2000 & asofdate<2017]

hmda[,lender:=paste0(agencycode,"-",respondentid)]
hmda[,countycode:=paste0(state,countycode)]

hmda[,approved:=ifelse(actiontaken %in% c("1"),1,0)]
hmda[,sold:=ifelse(typeofpurchaser !="0" & actiontaken=="1",1,ifelse(actiontaken=="1",0,NA))]
hmda[,nonwhite:=ifelse(applicantrace1=="5",0,1)]




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

hmda <- merge(hmda,lender_bank,by="lender",all.x=T)

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 <- merge(hmda,cbsa_bnk,by.x=c("bank","cbsa","asofdate"),by.y=c("bank","cbsa","acyr"),all.x=T)

hmda[,msinc13:=ifelse(is.na(msinc13),0.00001,msinc13)]
hmda[,msinc46:=ifelse(is.na(msinc46),0.00001,msinc46)]

hmda[,bank:=ifelse(is.na(bank),lender,bank)]
hmda[,msinc13G:=ifelse(is.na(msinc13G),"0. 0",msinc13G)]
hmda[,msinc46G:=ifelse(is.na(msinc46G),"0. 0",msinc46G)]

hmda[,bank_msa:=paste(bank,cbsa)]
hmda <- hmda[!is.na(cbsa)]

hmda[,applicantincome:=as.numeric(applicantincome)]
hmda[,amountofloan:=as.numeric(amountofloan)]

hmda <- hmda[applicantincome>0 & amountofloan>0]

hmda[,msinc13G:=factor(msinc13G)]
# hmda <- within(hmda, msinc13G <- relevel(msinc13G, ref = 1))
hmda[,msinc46G:=as.factor(msinc46G)]

hmda[,hispanic:=ifelse(applicantethnicity=="1",1,0)]
hmda[,race:=ifelse(hispanic==1,"hispanic",ifelse(applicantrace1=="5","0white",ifelse(applicantrace1=="3","black","other")))]
hmda[,black:=ifelse(applicantrace1=="3",1,0)]

hmda[,actiontaken:=as.numeric(actiontaken)]
hmda[,denied:=ifelse(actiontaken %in% c(3,7),1,0)]
hmda[,typeofloan:=as.numeric(typeofloan)]

hmda[,medianincome:=median(applicantincome,na.rm=T),by=asofdate]
hmda[,lowincome:=ifelse(applicantincome<medianincome,1,0)]

hmda[,racecat:=ifelse(hispanic==1,"hispanic",
                      ifelse(applicantrace1=="5","white",
                             ifelse(applicantrace1=="3","black",
                                    ifelse(applicantrace1=="2","asian",
                                           ifelse(applicantrace1=="4","native","na")))))]
conflimit <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/conforminglimits.csv")
names(conflimit) <- c("asofdate","conflimit")
conflimit[,conflimit:=floor(conflimit/1000)]

hmda <- merge(hmda,conflimit,by="asofdate")
hmda[,jumbo:=ifelse(typeofloan==1 & amountofloan>conflimit,1,ifelse(typeofloan==1,0,NA))]

8.1 Descriptive Statistics

8.1.1 Conventional Loans

vars <- c("amountofloan","applicantincome","approved","sold","nonwhite","asofdate","hispanic","black","jumbo")

stargazer(hmda[typeofloan==1,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
## 
## ======================================================================
## Statistic           N        Mean    St. Dev. Pctl(25) Median Pctl(75)
## ----------------------------------------------------------------------
## amountofloan    45,419,402  226.928  266.683    104     180     297   
## applicantincome 45,419,402  104.931  129.053     53      80     122   
## approved        45,419,402   0.580    0.494      0       1       1    
## sold            26,331,998   0.753    0.431    1.000   1.000   1.000  
## nonwhite        45,419,402   0.291    0.454      0       0       1    
## asofdate        45,419,402 2,008.843  4.369    2,005   2,007   2,013  
## hispanic        45,419,402   0.118    0.323      0       0       0    
## black           45,419,402   0.069    0.254      0       0       0    
## jumbo           45,419,402   0.109    0.312      0       0       0    
## ----------------------------------------------------------------------

8.1.2 Conventional Loans - Race Distrubution

library(knitr)
racedist <- hmda[typeofloan==1,.N,by=racecat]
racedist[,frac:=N/sum(N)]

kable(racedist,digits = 2)
racecat N frac
white 27598083 0.61
na 6070242 0.13
hispanic 5371900 0.12
asian 3140842 0.07
black 3055700 0.07
native 182635 0.00

8.1.3 FHA Loans

stargazer(hmda[typeofloan==2,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
## 
## ======================================================================
## Statistic           N        Mean    St. Dev. Pctl(25) Median Pctl(75)
## ----------------------------------------------------------------------
## amountofloan    13,804,879  176.134  117.800    113     156     218   
## applicantincome 13,804,879  64.726    58.762     40      56      79   
## approved        13,804,879   0.530    0.499      0       1       1    
## sold            7,320,170    0.929    0.256    1.000   1.000   1.000  
## nonwhite        13,804,879   0.270    0.444      0       0       1    
## asofdate        13,804,879 2,011.284  3.605    2,009   2,011   2,014  
## hispanic        13,804,879   0.184    0.388      0       0       0    
## black           13,804,879   0.125    0.331      0       0       0    
## ----------------------------------------------------------------------

8.1.4 FHA Loans - Race Distrubution

library(knitr)
racedist <- hmda[typeofloan==2,.N,by=racecat]
racedist[,frac:=N/sum(N)]

kable(racedist,digits = 2)
racecat N frac
white 7775513 0.56
na 1319509 0.10
hispanic 2541756 0.18
black 1692617 0.12
asian 419495 0.03
native 55989 0.00

8.2 Regressions

8.2.1 Main Result

r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate,data=hmda[typeofloan==2 & actiontaken<=3])
r[[7]] <- felm(approved~msinc13*jumbo+msinc46*jumbo+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==1])

.printtable(r,column.labels = c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),lines = list(c("Fixed Effects",rep("MSA*Bank, Yr",6))))
## 
## =====================================================================================================================
##                                                                Dependent variable:                                   
##                              ----------------------------------------------------------------------------------------
##                              Conventional     FHA      Conventional     FHA      Conventional     FHA                
##                                  (1)          (2)          (3)          (4)          (5)          (6)         (7)    
## ---------------------------------------------------------------------------------------------------------------------
## msinc13                        0.651***    -0.541***     0.674***    -0.280***     0.588***    -0.325***    0.659*** 
##                                (0.013)      (0.018)      (0.015)      (0.024)      (0.016)      (0.022)     (0.014)  
## lowincome                                               -0.032***    -0.025***                                       
##                                                          (0.0002)     (0.0003)                                       
## jumbo                                                                                                      -0.057*** 
##                                                                                                             (0.0003) 
## msinc46                        1.149***    -0.685***     1.604***    -0.251***     1.238***    -0.404***    0.986*** 
##                                (0.021)      (0.042)      (0.025)      (0.058)      (0.024)      (0.047)     (0.022)  
## log(applicantincome)           0.035***     0.070***                               0.035***     0.070***    0.041*** 
##                                (0.0001)     (0.0003)                               (0.0001)     (0.0003)    (0.0001) 
## log(amountofloan)             -0.002***     0.004***     0.005***     0.043***    -0.002***     0.004***    0.006*** 
##                                (0.0001)     (0.0004)     (0.0001)     (0.0004)     (0.0001)     (0.0004)    (0.0001) 
## msinc13:factor(race)black                                                           0.063      -0.549***             
##                                                                                    (0.048)      (0.041)              
## msinc13:factor(race)hispanic                                                      -0.400***    -0.645***             
##                                                                                    (0.037)      (0.035)              
## msinc13:factor(race)other                                                          0.303***    -0.095***             
##                                                                                    (0.024)      (0.034)              
## factor(race)black:msinc46                                                         -1.369***    -0.588***             
##                                                                                    (0.088)      (0.081)              
## factor(race)hispanic:msinc46                                                      -1.798***    -0.886***             
##                                                                                    (0.081)      (0.088)              
## factor(race)other:msinc46                                                          0.286***    -0.567***             
##                                                                                    (0.049)      (0.082)              
## factor(race)black             -0.100***    -0.075***    -0.102***    -0.079***    -0.099***    -0.074***   -0.099*** 
##                                (0.0003)     (0.0004)     (0.0003)     (0.0004)     (0.0003)     (0.0004)    (0.0003) 
## factor(race)hispanic          -0.053***    -0.039***    -0.055***    -0.046***    -0.052***    -0.038***   -0.053*** 
##                                (0.0002)     (0.0004)     (0.0002)     (0.0004)     (0.0002)     (0.0004)    (0.0002) 
## factor(race)other             -0.053***    -0.054***    -0.053***    -0.057***    -0.053***    -0.054***   -0.052*** 
##                                (0.0002)     (0.0004)     (0.0002)     (0.0004)     (0.0002)     (0.0004)    (0.0002) 
## msinc13:lowincome                                       -0.123***    -0.430***                                       
##                                                          (0.021)      (0.026)                                        
## lowincome:msinc46                                       -1.258***    -0.638***                                       
##                                                          (0.038)      (0.058)                                        
## msinc13:jumbo                                                                                              -0.187*** 
##                                                                                                             (0.031)  
## jumbo:msinc46                                                                                               1.776*** 
##                                                                                                             (0.056)  
## ---------------------------------------------------------------------------------------------------------------------
## Fixed Effects                MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr           
## Observations                  33,570,940   8,964,925    33,570,940   8,964,925    33,570,940   8,964,925   33,570,940
## Adjusted R2                     0.161        0.109        0.160        0.106        0.161        0.109       0.162   
## =====================================================================================================================
## Note:                                                                                     *p<0.1; **p<0.05; ***p<0.01
##