1 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()
# 
# 
# 
# 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)]
# 
# temp <- cbsa_bnk
# 
# cbsa_bnk_1 <- cbsa_bnk[,c("cbsa","pred_share","suc_share","bank","acyr")]
# 
# names(cbsa_bnk_1) <- c("cbsa","pred_share_1","suc_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","suc_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","suc_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","suc_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","suc_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","suc_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","suc_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","suc_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","suc_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[,suc_share:=suc_share_1]
#  
# 
# 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"))))]
# 
# 
# write_fst(cbsa_bnk,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_2.fst",compress = 100)
cbsa_bnk <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_2.fst",as.data.table = T)
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","cltv","occpy_sts"))
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[,primary_occ:=ifelse(occpy_sts=="P",1,0)]
freddie[,c("orig_loan_term","dt_first_pi","prop_type","cd_msa","occpy_sts"):=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)]
freddie[,ltvorg:=ltv]
freddie[,ltv:=cltv]
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","original_cltv","occupancy_type"))
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]
fannie[,ltvorg:=original_ltv]
fannie[,primary_occ:=ifelse(occupancy_type=="P",1,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")
setnames(fannie,"original_cltv","cltv")

fannie[,c("property_type","property_state","original_loan_term","origination_date","occupancy_type"):=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)]
fannie[,ltv:=cltv]
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","occupancytype")) 

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" ] # & occupancytype=="PRI"
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:=originalcltv]
moodys[,ltvorg:=originalltv]
moodys[,fico:=originalfico]
moodys[,orig_upb:= originalloanbalance]
moodys[,primary_occ:=ifelse(occupancytype=="PRI",1,0)]

# 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  38699987 2066.9   72644794  3879.7   38851382  2074.9
## Vcells 695292612 5304.7 1621212419 12368.9 1610428857 12286.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"]

2 Table 2 - Panel A - Freddie Mac Sample

vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","newpurchase")
covlabs <- c("FICO Score", "Combined loan-to-value","Debt-to-income","Loan amount","Interest rate","Origination year","New purchase")

stargazer(freddie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"), covariate.labels = covlabs)
## 
## ===================================================================================
## Statistic                  N         Mean      St. Dev.   Pctl(25) Median  Pctl(75)
## -----------------------------------------------------------------------------------
## FICO Score             16,245,111   748.509     395.911     695      741     776   
## Combined loan-to-value 16,245,111   74.400      17.381       67      79       85   
## Debt-to-income         16,245,111   47.668      113.969      26      35       43   
## Loan amount            16,245,111 189,852.800 107,056.600 111,000  165,000 245,000 
## Interest rate          16,245,111    5.699       1.234     4.750    5.875   6.625  
## Origination year       16,245,111  2,007.242     5.630     2,003    2,006   2,012  
## New purchase           16,245,111    0.420       0.494       0        0       1    
## -----------------------------------------------------------------------------------

3 Table 2 - Panel B - Fannie Mae Sample

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"),
          covariate.labels = covlabs)
## 
## ===================================================================================
## Statistic                  N         Mean      St. Dev.   Pctl(25) Median  Pctl(75)
## -----------------------------------------------------------------------------------
## FICO Score             20,256,524   736.426     54.519    700.000  747.000 781.000 
## Combined loan-to-value 20,136,791   74.006      16.287     66.000  78.000   84.000 
## Debt-to-income         19,924,305   34.426      11.429     26.000  35.000   42.000 
## Loan amount            20,348,007 197,397.000 111,678.300 115,000  172,000 254,000 
## Interest rate          20,348,004    5.542       1.240     4.500    5.625   6.375  
## Origination year       20,348,007  2,007.760     5.680     2,003    2,007   2,013  
## New purchase           20,348,007    0.410       0.492       0        0       1    
## -----------------------------------------------------------------------------------

4 Table 3 - Panel C - Moody’s Sample

4.1 All Loans

vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")

temp <- moodys[ originalterm==360 & armflag=="F"]

covlabs <- c("FICO Score", "Combined loan-to-value","Loan amount","Interest rate","Origination year","Full documentation","New purchase")

stargazer(temp[,c("fico","ltv","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs)
## 
## ===========================================================================================
## Statistic                  N        Mean      St. Dev.    Pctl(25)    Median     Pctl(75)  
## -------------------------------------------------------------------------------------------
## FICO Score             3,931,302   681.319     69.930     632.000     684.000     737.000  
## Combined loan-to-value 3,701,324   80.358      17.069      72.040     80.000      95.000   
## Loan amount            4,084,713 236,227.000 217,261.500 87,000.000 162,900.000 342,000.000
## Interest rate          4,083,067    7.376       2.070      6.125       6.875       8.250   
## Origination year       4,076,804  2,004.672     2.223    2,004.000   2,005.000   2,006.000 
## Full documentation     4,085,004    0.407       0.491        0           0           1     
## New purchase           4,085,004    0.412       0.492        0           0           1     
## -------------------------------------------------------------------------------------------

4.2 Prime Loans

vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")

temp <- moodys[assettype=="Prime" & originalterm==360 & armflag=="F"]

stargazer(temp[,c("fico","ltv","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs)
## 
## ============================================================================================
## Statistic                  N        Mean      St. Dev.    Pctl(25)     Median     Pctl(75)  
## --------------------------------------------------------------------------------------------
## FICO Score             2,158,190   726.768     41.403      691.000     725.000     760.000  
## Combined loan-to-value 1,990,839   79.131      17.441      70.000      80.000      94.930   
## Loan amount            2,195,652 298,550.900 249,089.600 113,000.000 231,900.000 441,000.000
## Interest rate          2,195,442    6.957       1.772       6.000       6.500       7.375   
## Origination year       2,195,370  2,004.765     2.208     2,004.000   2,005.000   2,006.000 
## Full documentation     2,195,857    0.387       0.487         0           0           1     
## New purchase           2,195,857    0.463       0.499         0           0           1     
## --------------------------------------------------------------------------------------------

4.3 Alt-A Loans

temp <- moodys[assettype=="Alt-A" & originalterm==360 & armflag=="F"]

stargazer(temp[,c("fico","ltv","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs)
## 
## =========================================================================================
## Statistic                 N       Mean      St. Dev.    Pctl(25)    Median     Pctl(75)  
## -----------------------------------------------------------------------------------------
## FICO Score             836,480   660.313     41.997     633.000     647.000     663.000  
## Combined loan-to-value 788,635   82.385      16.836      75.000     82.900      98.000   
## Loan amount            869,952 186,927.700 165,143.600 76,000.000 138,000.000 245,000.000
## Interest rate          869,542    7.617       2.229      6.250       7.000       8.825   
## Origination year       866,808  2,004.815     2.023    2,004.000   2,005.000   2,006.000 
## Full documentation     869,955    0.361       0.480        0           0           1     
## New purchase           869,955    0.396       0.489        0           0           1     
## -----------------------------------------------------------------------------------------

4.4 Subprime Loans

temp <- moodys[assettype=="Subprime" & originalterm==360 & armflag=="F"]

stargazer(temp[,c("fico","ltv","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs)
## 
## ===========================================================================================
## Statistic                  N        Mean      St. Dev.    Pctl(25)    Median     Pctl(75)  
## -------------------------------------------------------------------------------------------
## FICO Score              936,632    595.358     49.573     566.000     596.000     616.000  
## Combined loan-to-value  921,850    81.273      16.209      74.850     80.000      95.000   
## Loan amount            1,019,109 144,035.000 115,299.700 67,000.000 111,200.000 185,000.000
## Interest rate          1,018,083    8.073       2.293      6.750       7.875       9.550   
## Origination year       1,014,626  2,004.349     2.380    2,004.000   2,005.000   2,006.000 
## Full documentation     1,019,192    0.490       0.500        0           0           1     
## New purchase           1,019,192    0.318       0.466        0           0           1     
## -------------------------------------------------------------------------------------------

5 Figure 3 - Panel A

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(MSAcq^{1-3}~"(%)"),y="Frequency")+scale_y_continuous(labels = function(x) format(x, big.mark = ",",scientific = FALSE)))

6 Figure 3 - Panel B

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(MSAcq^{4-6}~"(%)"),y="Frequency")+scale_y_continuous(labels = function(x) format(x, big.mark = ",",scientific = FALSE)))

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[,yr_msa:=paste(loanyr,msa)]
regsample[,fico:=fico/100]
regsample[,homevalue:= orig_upb*100/ltvorg]
regsample[,fico_cat:=ifelse(fico<6.6,"Less than 660",ifelse(fico<7.2,"660-720","0720 or more"))]
regsample[,dti_cat:=ifelse(dti<20,"0Less than 20",ifelse(dti<40,"20-40","40 or more"))]
regsample[,msinc13G:=ifelse(msinc13G %in% c("4. More than 10pct","3. 5pct - 10pct"),"3. 5pct or more",msinc13G)]
regsample[,msinc46G:=ifelse(msinc46G %in% c("4. More than 10pct","3. 5pct - 10pct"),"3. 5pct or more",msinc46G)]
regsample[,zip_year:=paste(loanyr,zipcode)]

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

regsample2[,bank_msa:=paste(seller_name,zipcode)]
regsample2[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample2[,yr_msa:=paste(loanyr,msa)]
regsample2[,fico:=fico/100]
regsample2[,homevalue:= orig_upb*100/ltvorg]
regsample2[,msinc13G:=ifelse(msinc13G %in% c("4. More than 10pct","3. 5pct - 10pct"),"3. 5pct or more",msinc13G)]
regsample2[,zip_year:=paste(loanyr,zipcode)]

7 Table 4 - Panel A - Effect of Mergers on Interest Rate

Add zipcode fixed effects to exactly replicate the table in the paper. It takes a long time to run the code, therefore zipcode fixed effects are excluded from regressions (1) and (2).

  r <- list()
  r[[1]] <- felm(int_rt~msinc13+msinc46+suc_share+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+dti+log(orig_upb)+freddie+newpurchase+primary_occ|seller_name+zip_year,data=regsample)
 r[[2]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+dti+log(orig_upb)+freddie+newpurchase+primary_occ|zip_year+seller_name,data=regsample)




  r[[3]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)+primary_occ|seller_name+zip_year,data=regsample2[originalterm==360 & armflag=="F"])  
  r[[4]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^3)+I(ltv^2)+suc_share+fulldocumentation+log(orig_upb)+factor(assettype)+primary_occ|seller_name+zip_year,data=regsample2[originalterm==360 & armflag=="F"])
 r[[5]] <- felm(int_rt~factor(msinc13G)+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)+primary_occ|zip_year+seller_name,data=regsample2[originalterm==360 & armflag=="F"])  
  
covlabs <- c("MSAcq1-3","MSAcq4-6","MSAcq1-3 (0,1]","MSAcq1-3 (1,5]","MSAcq1-3 (5-10]","MSAcq1-3 (10,.]","MSAcq4-6 (0,1]","MSAcq4-6 (1,5]","MSAcq4-6 (5-10]","MSAcq4-6 (10,.]","Acquirer Share","Full documentation","FICO Score", "Combined loan-to-value","FICO Score2", "Combined loan-to-value2","Debt-to-income","log(Loan amount)","Freddie Mac","New purchase","Alt-A","Subprime","MSAcq1-3*New purchase")

stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("GSE Sample","Non-agency sample"),column.separate=c(2,3),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## ==========================================================================================
##                                         GSE Sample               Non-agency sample        
##                                       (1)         (2)        (3)        (4)        (5)    
## ------------------------------------------------------------------------------------------
## msinc13                            0.609***                6.417***   8.989***            
##                                     (0.008)                (0.398)    (0.475)             
## msinc46                            0.368***                                               
##                                     (0.011)                                               
## factor(msinc13G)1. Less than 1pct              0.047***                          0.069*** 
##                                                (0.0004)                          (0.011)  
## factor(msinc13G)2. 1 - 5pct                    0.041***                          0.308*** 
##                                                 (0.001)                          (0.017)  
## factor(msinc13G)3. 5pct or more                0.050***                          0.395*** 
##                                                 (0.001)                          (0.031)  
## factor(msinc46G)1. Less than 1pct              0.003***                                   
##                                                (0.0005)                                   
## factor(msinc46G)2. 1 - 5pct                    0.023***                                   
##                                                 (0.001)                                   
## factor(msinc46G)3. 5pct or more                0.025***                                   
##                                                 (0.001)                                   
## suc_share                            0.005     -0.094***   0.764***   0.772***   0.679*** 
##                                     (0.004)     (0.004)    (0.074)    (0.074)    (0.075)  
## fulldocumentation                                         -0.245***  -0.245***  -0.246*** 
##                                                            (0.002)    (0.002)    (0.002)  
## fico                               -0.234***   -0.232***  14.799***  14.804***  14.796*** 
##                                     (0.003)     (0.003)    (0.247)    (0.247)    (0.247)  
## ltv                                -0.003***   -0.003***  -0.046***  -0.046***  -0.046*** 
##                                    (0.00003)   (0.00003)   (0.001)    (0.001)    (0.001)  
## I(fico2)                           0.006***    0.006***   -2.415***  -2.416***  -2.415*** 
##                                    (0.0002)    (0.0002)    (0.038)    (0.038)    (0.038)  
## I(fico3)                          -0.00004*** -0.00004***  0.126***   0.126***   0.126*** 
##                                    (0.00000)   (0.00000)   (0.002)    (0.002)    (0.002)  
## I(ltv2)                            0.0001***   0.0001***  0.0005***  0.0005***  0.0005*** 
##                                    (0.00000)   (0.00000)  (0.00001)  (0.00001)  (0.00001) 
## I(ltv3)                           -0.00000*** -0.00000*** 0.00000*** 0.00000*** 0.00000***
##                                     (0.000)     (0.000)   (0.00000)  (0.00000)  (0.00000) 
## dti                                0.0001***   0.0001***                                  
##                                    (0.00000)   (0.00000)                                  
## log(orig_upb)                      -0.168***   -0.168***  -1.176***  -1.176***  -1.176*** 
##                                    (0.0002)    (0.0002)    (0.002)    (0.002)    (0.002)  
## freddie                            -0.102***   -0.099***                                  
##                                     (0.008)     (0.008)                                   
## newpurchase                        0.018***    0.019***   -0.011***  -0.009***  -0.011*** 
##                                    (0.0002)    (0.0002)    (0.002)    (0.002)    (0.002)  
## factor(assettype)Alt-A                                     0.046***   0.046***   0.046*** 
##                                                            (0.003)    (0.003)    (0.003)  
## factor(assettype)Subprime                                  0.273***   0.272***   0.272*** 
##                                                            (0.004)    (0.004)    (0.004)  
## primary_occ                        -0.337***   -0.337***  -0.236***  -0.236***  -0.238*** 
##                                    (0.0003)    (0.0003)    (0.003)    (0.003)    (0.003)  
## newpurchase:msinc13                                                  -6.561***            
##                                                                       (0.661)             
## Year*Zipcode                           Y           Y          Y          Y          Y     
## Bank                                   Y           Y          Y          Y          Y     
## N                                 22,813,298  22,813,298  2,997,441  2,997,441  2,997,441 
## Adjusted R2                          0.891       0.891      0.490      0.491      0.491   
## ==========================================================================================

8 Table 4 Panel B

r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|seller_name+zip_year|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="0Prime"  ])  
r[[2]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|seller_name+zip_year|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="Alt-A"  ])
r[[3]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|seller_name+zip_year|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="Subprime"  ])  

covlabs <- c("MSAcq1-3","FICO Score", "Combined loan-to-value","FICO Score2", "Combined loan-to-value2","Acquirer Share","Full documentation","log(Loan amount)","New purchase")
  
stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("Prime","Alt-A","Subprime"),column.separate=c(1,1,1),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## ===================================================
##                     Prime      Alt-A     Subprime  
##                      (1)        (2)         (3)    
## ---------------------------------------------------
## msinc13            3.363***   6.135***   9.095***  
##                    (0.339)    (0.936)     (0.906)  
## fico              10.830***  23.323***   13.906*** 
##                    (2.780)    (1.793)     (0.738)  
## ltv                 -0.004   -0.082***   -0.128*** 
##                    (0.005)    (0.007)     (0.003)  
## I(fico2)          -1.718***  -3.554***   -2.327*** 
##                    (0.380)    (0.258)     (0.118)  
## I(fico3)           0.088***   0.176***   0.124***  
##                    (0.017)    (0.012)     (0.006)  
## I(ltv2)            -0.0001    0.001***   0.002***  
##                    (0.0001)   (0.0001)   (0.0001)  
## I(ltv3)           0.00000*** -0.00000** -0.00001***
##                   (0.00000)  (0.00000)   (0.00000) 
## suc_share          0.956***   1.239***   -1.131*** 
##                    (0.052)    (0.170)     (0.228)  
## fulldocumentation -0.199***  -0.382***   -0.478*** 
##                    (0.002)    (0.005)     (0.006)  
## log(orig_upb)     -0.827***  -1.417***   -1.692*** 
##                    (0.006)    (0.008)     (0.008)  
## newpurchase       -0.041***  -0.016***   0.031***  
##                    (0.003)    (0.006)     (0.007)  
## primary_occ       -0.344***  -0.246***   -0.125*** 
##                    (0.004)    (0.006)     (0.010)  
## Year*Zipcode          Y          Y           Y     
## Bank                  Y          Y           Y     
## N                 1,649,390   640,223     707,828  
## Adjusted R2         0.550      0.522       0.399   
## ===================================================

9 Table 4 Panel C

r <- list()
  r[[1]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ+factor(assettype)|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F"])  
  r[[2]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="0Prime"])  
  r[[3]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="Alt-A"])  
  r[[4]] <- felm(int_rt~msinc13+fico+ltv+I(fico^2)+I(fico^3)+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & assettype=="Subprime"])  
  
  
  covlabs <- c("MSAcq1-3","FICO Score", "Combined loan-to-value","FICO Score2", "Combined loan-to-value2","Acquirer Share","Full documentation","log(Loan amount)","New purchase","Alt-A","Subprime")
  
  
  stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("All","Prime","Alt-A","Subprime"),column.separate=c(1,1,1),
          add.lines = list(c("Bank*Zipcode", rep("Y",6)),c("Year", rep("Y",6))))
## 
## ====================================================================
##                              All      Prime      Alt-A    Subprime  
##                              (1)       (2)        (3)        (4)    
## --------------------------------------------------------------------
## msinc13                   7.793***   1.243**     4.524    40.265*** 
##                            (0.598)   (0.510)    (3.282)    (3.472)  
## fico                      15.024***  9.914***  22.946***  15.228*** 
##                            (0.342)   (3.055)    (1.799)    (0.858)  
## ltv                       -0.042***   0.003    -0.066***  -0.130*** 
##                            (0.004)   (0.005)    (0.008)    (0.003)  
## I(fico2)                  -2.462*** -1.595***  -3.537***  -2.549*** 
##                            (0.051)   (0.417)    (0.258)    (0.137)  
## I(fico3)                  0.129***   0.082***  0.177***   0.136***  
##                            (0.003)   (0.019)    (0.012)    (0.007)  
## I(ltv2)                   0.0004*** -0.0002**  0.001***   0.002***  
##                           (0.0001)   (0.0001)  (0.0001)   (0.00005) 
## I(ltv3)                    0.00000  0.00000*** -0.00000  -0.00001***
##                           (0.00000) (0.00000)  (0.00000)  (0.00000) 
## suc_share                 0.629***   0.772***  1.016***   -1.548*** 
##                            (0.059)   (0.049)    (0.192)    (0.271)  
## fulldocumentation         -0.229*** -0.166***  -0.358***  -0.452*** 
##                            (0.003)   (0.002)    (0.005)    (0.006)  
## log(orig_upb)             -1.123*** -0.749***  -1.325***  -1.674*** 
##                            (0.007)   (0.006)    (0.008)    (0.008)  
## newpurchase               0.032***    0.003    0.019***   0.061***  
##                            (0.003)   (0.003)    (0.006)    (0.008)  
## primary_occ               -0.177*** -0.267***  -0.188***  -0.053*** 
##                            (0.004)   (0.004)    (0.007)    (0.011)  
## factor(assettype)Alt-A    0.053***                                  
##                            (0.003)                                  
## factor(assettype)Subprime 0.302***                                  
##                            (0.005)                                  
## Bank*Zipcode                  Y         Y          Y          Y     
## Year                          Y         Y          Y          Y     
## N                         2,997,441 1,649,390   640,223    707,828  
## Adjusted R2                 0.548     0.645      0.602      0.454   
## ====================================================================

10 Table 5 - Panel A - Effect of Mergers on Loan Amount

  r <- list()
  r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+suc_share+fico+I(fico^2)+I(fico^3)+dti+freddie+newpurchase+primary_occ|seller_name+zip_year,data=regsample)
 r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+I(fico^2)+I(fico^3)+suc_share+dti+log(orig_upb)+freddie+newpurchase+primary_occ|zip_year+seller_name,data=regsample)



  r[[3]] <- felm(log(orig_upb)~msinc13+fico+I(fico^2)+I(fico^3)+suc_share+fulldocumentation+newpurchase+factor(assettype)+primary_occ|seller_name+zip_year,data=regsample2[originalterm==360 & armflag=="F"])  
  r[[4]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+I(fico^2)+I(fico^3)+suc_share+fulldocumentation+factor(assettype)+primary_occ|seller_name+zip_year,data=regsample2[originalterm==360 & armflag=="F"])
 r[[5]] <- felm(log(orig_upb)~factor(msinc13G)+fico+I(fico^2)+I(fico^3)+suc_share+fulldocumentation+newpurchase+factor(assettype)+primary_occ|zip_year+seller_name,data=regsample2[originalterm==360 & armflag=="F"])  
  
  
  covlabs <- c("MSAcq1-3","MSAcq4-6","MSAcq1-3 (0,1]","MSAcq1-3 (1,5]","MSAcq1-3 (5-10]","MSAcq1-3 (10,.]","MSAcq4-6 (0,1]","MSAcq4-6 (1,5]","MSAcq4-6 (5-10]","MSAcq4-6 (10,.]","Acquirer Share","FICO Score/100", "FICO Score/100 2", "Debt-to-income","log(Loan amount)","Full documentation","Freddie Mac","New purchase","Alt-A","Subprime","MSAcq1-3*New purchase")
  
stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("GSE Sample","Non-agency sample"),column.separate=c(2,3),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## =====================================================================================
##                                        GSE Sample             Non-agency sample      
##                                      (1)        (2)        (3)       (4)       (5)   
## -------------------------------------------------------------------------------------
## msinc13                            0.140***             0.893***  -1.240***          
##                                    (0.010)               (0.166)   (0.198)           
## msinc46                           -0.206***                                          
##                                    (0.013)                                           
## factor(msinc13G)1. Less than 1pct            -0.000***                      0.060*** 
##                                               (0.000)                        (0.005) 
## factor(msinc13G)2. 1 - 5pct                  -0.000***                      0.124*** 
##                                               (0.000)                        (0.007) 
## factor(msinc13G)3. 5pct or more               0.000***                      0.083*** 
##                                               (0.000)                        (0.013) 
## factor(msinc46G)1. Less than 1pct            -0.000***                               
##                                               (0.000)                                
## factor(msinc46G)2. 1 - 5pct                   0.000***                               
##                                               (0.000)                                
## factor(msinc46G)3. 5pct or more              -0.000***                               
##                                               (0.000)                                
## suc_share                          0.070***   0.000***   -0.034    -0.040   -0.105***
##                                    (0.005)    (0.000)    (0.031)   (0.031)   (0.031) 
## fulldocumentation                                       0.034***  0.034***  0.034*** 
##                                                          (0.001)   (0.001)   (0.001) 
## fico                               0.748***  -0.000***  -7.629*** -7.633*** -7.630***
##                                    (0.003)    (0.000)    (0.099)   (0.099)   (0.099) 
## I(fico2)                          -0.055***   0.000***  1.138***  1.138***  1.138*** 
##                                    (0.0003)   (0.000)    (0.015)   (0.015)   (0.015) 
## I(fico3)                          0.0005***  -0.000***  -0.055*** -0.055*** -0.055***
##                                   (0.00000)   (0.000)    (0.001)   (0.001)   (0.001) 
## dti                               0.0001***  -0.000***                               
##                                   (0.00000)   (0.000)                                
## log(orig_upb)                                 1.000***                               
##                                               (0.000)                                
## freddie                           -0.666***  -0.000***                               
##                                    (0.009)    (0.000)                                
## newpurchase                        0.042***   0.000***  -0.164*** -0.165*** -0.164***
##                                    (0.0002)   (0.000)    (0.001)   (0.001)   (0.001) 
## factor(assettype)Alt-A                                  -0.104*** -0.103*** -0.104***
##                                                          (0.001)   (0.001)   (0.001) 
## factor(assettype)Subprime                               -0.069*** -0.069*** -0.069***
##                                                          (0.002)   (0.002)   (0.002) 
## primary_occ                        0.320***   0.000***  0.229***  0.229***  0.228*** 
##                                    (0.0003)   (0.000)    (0.001)   (0.001)   (0.001) 
## newpurchase:msinc13                                               5.439***           
##                                                                    (0.275)           
## Year*Zipcode                          Y          Y          Y         Y         Y    
## Bank                                  Y          Y          Y         Y         Y    
## N                                 22,814,071 22,814,071 3,247,511 3,247,511 3,247,511
## Adjusted R2                         0.396      1.000      0.557     0.557     0.557  
## =====================================================================================

11 Placebo test

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

regsample <- merge(regsample,cbsa_bnk_placebo,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)]
regsample[,fico:=fico/100]
regsample[,homevalue:= orig_upb*100/ltvorg]
regsample[,fico_cat:=ifelse(fico<6.6,"Less than 660",ifelse(fico<7.2,"660-720","0720 or more"))]
regsample[,dti_cat:=ifelse(dti<20,"0Less than 20",ifelse(dti<40,"20-40","40 or more"))]
regsample[,zip_year:=paste(loanyr,zipcode)]

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

regsample2[,bank_msa:=paste(seller_name,msa)]
regsample2[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample2[,yr_msa:=paste(loanyr,msa)]
regsample2[,fico:=fico/100]
regsample2[,homevalue:= orig_upb*100/ltvorg]
regsample2[,zip_year:=paste(loanyr,zipcode)]
  r <- list()
  r[[1]] <- felm(int_rt~msinc13+suc_share+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+dti+log(orig_upb)+freddie+newpurchase+primary_occ|seller_name+zip_year,data=regsample)


  r[[2]] <- felm(int_rt~msinc13+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)+primary_occ|seller_name+zip_year|0|zipcode,data=regsample2[originalterm==360 & armflag=="F"])  

covlabs <- c("MSAcq1-3","MSAcq4-6","MSAcq1-3 (0,1]","MSAcq1-3 (1,5]","MSAcq1-3 (5-10]","MSAcq1-3 (10,.]","MSAcq4-6 (0,1]","MSAcq4-6 (1,5]","MSAcq4-6 (5-10]","MSAcq4-6 (10,.]","Acquirer Share","Full documentation","FICO Score", "Combined loan-to-value","FICO Score2", "Combined loan-to-value2","Debt-to-income","log(Loan amount)","Freddie Mac","New purchase","Alt-A","Subprime","MSAcq1-3*New purchase")

stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("GSE Sample","Non-agency sample"),column.separate=c(1,1),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## =======================================================
##                           GSE Sample  Non-agency sample
##                               (1)            (2)       
## -------------------------------------------------------
## msinc13                    -0.117***      0.617***     
##                             (0.006)        (0.099)     
## suc_share                  -0.222***      1.484***     
##                             (0.004)        (0.065)     
## fulldocumentation                         -0.243***    
##                                            (0.002)     
## fico                       -0.249***      14.779***    
##                             (0.003)        (0.321)     
## I(fico2)                   0.008***       -2.410***    
##                            (0.0002)        (0.048)     
## I(fico3)                  -0.0001***      0.126***     
##                            (0.00000)       (0.002)     
## ltv                        -0.003***      -0.045***    
##                            (0.00003)       (0.004)     
## I(ltv2)                    0.0001***      0.0004***    
##                            (0.00000)      (0.0001)     
## I(ltv3)                   -0.00000***      0.00000     
##                             (0.000)       (0.00000)    
## dti                        0.0001***                   
##                            (0.00000)                   
## log(orig_upb)              -0.170***      -1.175***    
##                            (0.0002)        (0.006)     
## freddie                    -0.084***                   
##                             (0.008)                    
## newpurchase                0.022***       -0.013***    
##                            (0.0002)        (0.003)     
## factor(assettype)Alt-A                    0.046***     
##                                            (0.003)     
## factor(assettype)Subprime                 0.272***     
##                                            (0.004)     
## primary_occ                -0.331***      -0.236***    
##                            (0.0003)        (0.004)     
## Year*Zipcode                   Y              Y        
## Bank                           Y              Y        
## N                         22,566,694      3,026,444    
## Adjusted R2                  0.899          0.494      
## =======================================================

12 Table 3 - Descriptive Statistics for HMDA Sample

cbsa_bnk <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_2.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 or more", "3. 5pct or more"))))]
# 
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 - or more", "3. 5pct - or more"))))]

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","0white",
                             ifelse(applicantrace1=="3","black",
                                    ifelse(applicantrace1 %in% c("2","4"),"asian/other","na"))))]

hmda[,msa_yr:=paste(asofdate,cbsa)]

hmda[,bank_yr:=paste(bank,asofdate)]

hmda[,suc_share:=ifelse(is.na(suc_share),0,suc_share)]
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))]
hmda[,county_year:=paste(countycode,asofdate)]
# hmdanpgse <- hmda[typeofpurchaser %in% c("1","3")]
# write_fst(hmdanpgse,path="C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/hmda_np_gse.fst",compress = 100)

12.1 Panel A: Conventional Loans

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

covlabs <- c("Loan amount","Income '000","Approved","Secutitized","Non-white","Year","Hispanic","Black","Jumbo")

stargazer(hmda[typeofloan==1,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs ,title = "New purchases")
## 
## New purchases
## ==================================================================
## Statistic       N        Mean    St. Dev. Pctl(25) Median Pctl(75)
## ------------------------------------------------------------------
## Loan amount 45,419,402  226.928  266.683    104     180     297   
## Income '000 45,419,402  104.931  129.053     53      80     122   
## Approved    45,419,402   0.580    0.494      0       1       1    
## Secutitized 26,331,998   0.753    0.431    1.000   1.000   1.000  
## Non-white   45,419,402   0.291    0.454      0       0       1    
## Year        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    
## ------------------------------------------------------------------

12.2 Panel B: FHA Loans

stargazer(hmda[typeofloan==2,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"),covariate.labels = covlabs ,title = "New purchases")
## 
## New purchases
## ==================================================================
## Statistic       N        Mean    St. Dev. Pctl(25) Median Pctl(75)
## ------------------------------------------------------------------
## Loan amount 13,804,879  176.134  117.800    113     156     218   
## Income '000 13,804,879  64.726    58.762     40      56      79   
## Approved    13,804,879   0.530    0.499      0       1       1    
## Secutitized 7,320,170    0.929    0.256    1.000   1.000   1.000  
## Non-white   13,804,879   0.270    0.444      0       0       1    
## Year        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    
## ------------------------------------------------------------------

12.3 Panel C - Race Distrubution

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

stargazer(racedist,summary = F,title = "New purchases - Conventional",type="text")
## 
## New purchases - Conventional
## ==============================
##     racecat       N      frac 
## ------------------------------
## 1   0white    27,598,083 0.608
## 2     na      6,070,242  0.134
## 3  hispanic   5,371,900  0.118
## 4 asian/other 3,323,477  0.073
## 5    black    3,055,700  0.067
## ------------------------------
racedist <- hmda[typeofloan==2,.N,by=racecat]
racedist[,frac:=N/sum(N)]

stargazer(racedist,summary = F,title = "New purchases - FHA",type="text")
## 
## New purchases - FHA
## =============================
##     racecat       N     frac 
## -----------------------------
## 1   0white    7,775,513 0.563
## 2     na      1,319,509 0.096
## 3  hispanic   2,541,756 0.184
## 4    black    1,692,617 0.123
## 5 asian/other  475,484  0.034
## -----------------------------

13 Table 6 - Panel A - Effect on Loan Approval

13.1 MSA-Year and Bank FE

r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(racecat)+msinc46*factor(racecat)+log(applicantincome)+log(amountofloan)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(racecat)+msinc46*factor(racecat)+log(applicantincome)+log(amountofloan)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])



covlabs <- c("MSInc1-3","Low income","MSInc4-6","log(Income '000)","log(Loan amount '000)","Black","Hispanic","Asian/Other","Acquirer share","MSInc1-3*Low income","MSInc4-6*Low income", "MSInc1-3*Black","MSInc1-3*Hispanic","MSInc1-3*Asian/Other","MSInc4-6*Black","MSInc4-6*Hispanic","MSInc4-6*Asian/Other")

stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),
          add.lines = list(c("Year*County", rep("Y",6)),c("Bank", rep("Y",6)))
          )
## 
## =======================================================================================================
##                                    Conventional    FHA    Conventional    FHA    Conventional    FHA   
##                                        (1)         (2)        (3)         (4)        (5)         (6)   
## -------------------------------------------------------------------------------------------------------
## msinc13                              0.491***   -0.593***   0.542***   -0.368***   0.402***   -0.377***
##                                      (0.051)     (0.056)    (0.050)     (0.063)    (0.053)     (0.060) 
## lowincome                                                  -0.033***   -0.025***                       
##                                                             (0.001)     (0.002)                        
## msinc46                              0.876***    -0.167*    1.332***    0.197**    0.958***     0.038  
##                                      (0.140)     (0.090)    (0.179)     (0.096)    (0.116)     (0.080) 
## log(applicantincome)                 0.036***   0.071***                           0.036***   0.071*** 
##                                      (0.001)     (0.002)                           (0.001)     (0.002) 
## log(amountofloan)                   -0.002***     0.004     0.005***   0.044***   -0.002***     0.003  
##                                      (0.001)     (0.002)    (0.001)     (0.002)    (0.001)     (0.002) 
## factor(racecat)asian/other          -0.037***   -0.042***  -0.038***   -0.047***  -0.037***   -0.041***
##                                      (0.002)     (0.001)    (0.002)     (0.002)    (0.002)     (0.001) 
## factor(racecat)black                -0.101***   -0.074***  -0.104***   -0.078***  -0.101***   -0.073***
##                                      (0.003)     (0.002)    (0.003)     (0.002)    (0.003)     (0.002) 
## factor(racecat)hispanic             -0.050***   -0.037***  -0.053***   -0.044***  -0.049***   -0.036***
##                                      (0.002)     (0.001)    (0.002)     (0.001)    (0.002)     (0.001) 
## factor(racecat)na                   -0.068***   -0.063***  -0.068***   -0.065***  -0.069***   -0.063***
##                                      (0.002)     (0.002)    (0.002)     (0.002)    (0.002)     (0.002) 
## suc_share                           -0.080***   0.227***   -0.084***   0.223***   -0.081***   0.227*** 
##                                      (0.023)     (0.018)    (0.023)     (0.018)    (0.023)     (0.018) 
## msinc13:lowincome                                          -0.148***   -0.368***                       
##                                                             (0.056)     (0.057)                        
## lowincome:msinc46                                          -1.238***   -0.540***                       
##                                                             (0.185)     (0.106)                        
## msinc13:factor(racecat)asian/other                                                 0.176***   -0.324***
##                                                                                    (0.059)     (0.108) 
## msinc13:factor(racecat)black                                                        0.255*    -0.547***
##                                                                                    (0.131)     (0.092) 
## msinc13:factor(racecat)hispanic                                                    -0.315**   -0.655***
##                                                                                    (0.158)     (0.093) 
## msinc13:factor(racecat)na                                                          0.554***     0.002  
##                                                                                    (0.048)     (0.089) 
## factor(racecat)asian/other:msinc46                                                  0.236     -1.451***
##                                                                                    (0.266)     (0.308) 
## factor(racecat)black:msinc46                                                      -1.070***    -0.389* 
##                                                                                    (0.216)     (0.200) 
## factor(racecat)hispanic:msinc46                                                   -1.666***   -0.895***
##                                                                                    (0.250)     (0.296) 
## factor(racecat)na:msinc46                                                           0.253      -0.171  
##                                                                                    (0.163)     (0.152) 
## Year*County                             Y           Y          Y           Y          Y           Y    
## Bank                                    Y           Y          Y           Y          Y           Y    
## N                                   33,542,095  8,955,161  33,542,095  8,955,161  33,542,095  8,955,161
## Adjusted R2                           0.150       0.096      0.150       0.093      0.150       0.097  
## =======================================================================================================

14 Refinances

cbsa_bnk <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_2.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 or more", "3. 5pct or more"))))]
# 
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 or more", "3. 5pct or more"))))]

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","0white",
                             ifelse(applicantrace1=="3","black",
                                    ifelse(applicantrace1 %in% c("2","4"),"asian/other","na"))))]

hmda[,msa_yr:=paste(asofdate,cbsa)]

hmda[,bank_yr:=paste(bank,asofdate)]

hmda[,suc_share:=ifelse(is.na(suc_share),0,suc_share)]
hmda[,county_year:=paste(countycode,asofdate)]
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))]
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(racecat)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(racecat)+msinc46*factor(racecat)+log(applicantincome)+log(amountofloan)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(racecat)+msinc46*factor(racecat)+log(applicantincome)+log(amountofloan)+suc_share|county_year+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])



covlabs <- c("MSInc1-3","Low income","MSInc4-6","log(Income '000)","log(Loan amount '000)","Black","Hispanic","Asian/Other","Acquirer share","MSInc1-3*Low income","MSInc4-6*Low income", "MSInc1-3*Black","MSInc1-3*Hispanic","MSInc1-3*Asian/Other","MSInc4-6*Black","MSInc4-6*Hispanic","MSInc4-6*Asian/Other")

stargazer(r,no.space = T,align = T,omit.stat=c("ser","f", "rsq"),style = "qje",omit.table.layout = "n", dep.var.labels.include = FALSE,type="text",#covariate.labels = covlabs,
          column.labels=c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),
          add.lines = list(c("Year*County", rep("Y",6)),c("Bank", rep("Y",6)))
          )
## 
## =======================================================================================================
##                                    Conventional    FHA    Conventional    FHA    Conventional    FHA   
##                                        (1)         (2)        (3)         (4)        (5)         (6)   
## -------------------------------------------------------------------------------------------------------
## msinc13                              0.545***   -0.673***   0.625***   -0.880***   0.524***   -0.561***
##                                      (0.082)     (0.074)    (0.103)     (0.091)    (0.092)     (0.081) 
## lowincome                                                  -0.060***   -0.060***                       
##                                                             (0.002)     (0.001)                        
## msinc46                              1.492***   0.447***    1.753***    0.313*     1.557***   0.564*** 
##                                      (0.091)     (0.153)    (0.087)     (0.160)    (0.091)     (0.163) 
## log(applicantincome)                 0.065***   0.085***                           0.065***   0.085*** 
##                                      (0.001)     (0.002)                           (0.001)     (0.002) 
## log(amountofloan)                   -0.022***   -0.026***  -0.010***     0.004    -0.022***   -0.026***
##                                      (0.001)     (0.003)    (0.001)     (0.003)    (0.001)     (0.003) 
## factor(racecat)asian/other          -0.050***   -0.058***  -0.052***   -0.060***  -0.050***   -0.056***
##                                      (0.003)     (0.002)    (0.003)     (0.002)    (0.003)     (0.002) 
## factor(racecat)black                -0.097***   -0.085***  -0.101***   -0.087***  -0.095***   -0.084***
##                                      (0.003)     (0.003)    (0.003)     (0.003)    (0.003)     (0.003) 
## factor(racecat)hispanic             -0.078***   -0.057***  -0.082***   -0.061***  -0.076***   -0.055***
##                                      (0.004)     (0.002)    (0.004)     (0.002)    (0.004)     (0.002) 
## factor(racecat)na                   -0.095***   -0.077***  -0.096***   -0.079***  -0.097***   -0.078***
##                                      (0.002)     (0.002)    (0.002)     (0.002)    (0.002)     (0.002) 
## suc_share                            0.135***   0.169***    0.134***   0.181***    0.132***   0.168*** 
##                                      (0.018)     (0.038)    (0.018)     (0.038)    (0.018)     (0.038) 
## msinc13:lowincome                                          -0.202***   0.338***                        
##                                                             (0.058)     (0.082)                        
## lowincome:msinc46                                          -0.553***     0.203                         
##                                                             (0.084)     (0.141)                        
## msinc13:factor(racecat)asian/other                                                 0.227***   -0.334** 
##                                                                                    (0.071)     (0.150) 
## msinc13:factor(racecat)black                                                      -0.863***   -0.253** 
##                                                                                    (0.104)     (0.128) 
## msinc13:factor(racecat)hispanic                                                   -0.545***   -0.559***
##                                                                                    (0.138)     (0.120) 
## msinc13:factor(racecat)na                                                          0.607***     0.039  
##                                                                                    (0.051)     (0.084) 
## factor(racecat)asian/other:msinc46                                                -0.458***   -1.300***
##                                                                                    (0.162)     (0.393) 
## factor(racecat)black:msinc46                                                      -1.242***   -0.778***
##                                                                                    (0.116)     (0.179) 
## factor(racecat)hispanic:msinc46                                                   -1.058***    -0.634* 
##                                                                                    (0.227)     (0.335) 
## factor(racecat)na:msinc46                                                          0.432***     0.182  
##                                                                                    (0.089)     (0.206) 
## Year*County                             Y           Y          Y           Y          Y           Y    
## Bank                                    Y           Y          Y           Y          Y           Y    
## N                                   59,663,884  3,991,611  59,663,884  3,991,611  59,663,884  3,991,611
## Adjusted R2                           0.234       0.248      0.231       0.244      0.234       0.248  
## =======================================================================================================