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  38915675 2078.4   72954281  3896.2   39067884  2086.5
## Vcells 695571414 5306.8 1621613387 12372.0 1580777217 12060.4
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"]
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)]
regsample[,bank_year:=paste(seller_name,loanyr)]

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)]
regsample2[,bank_year:=paste(seller_name,loanyr)]

2 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+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+dti+log(orig_upb)+freddie+newpurchase+primary_occ|bank_msa+loanyr|0|msa,data=regsample[!(suc_share==0 & msinc13>1e-05)])  
 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|bank_msa+loanyr|0|msa,data=regsample[!(suc_share==0 & msinc13>1e-05)])  
  r[[3]] <-  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|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05)])  
  #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[[4]] <-  felm(int_rt~factor(msinc13G)+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|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05)])  
  
covlabs <- c("MSAcq1-3","MSAcq4-6","MSAcq1-3 (0,1]","MSAcq1-3 (1,5]","MSAcq1-3 (5,.]","MSAcq4-6 (0,1]","MSAcq4-6 (1,5]","MSAcq4-6 (5,.]","Acquirer Share","Full documentation","FICO Score", "Combined loan-to-value","FICO Score2","FICO Score3", "Combined loan-to-value2","Combined loan-to-value3","Debt-to-income","log(Loan amount)","Freddie Mac","New purchase","Alt-A","Subprime","Primar residence")

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,2),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## ===================================================================
##                               GSE Sample         Non-agency sample 
##                             (1)         (2)        (3)       (4)   
## -------------------------------------------------------------------
## MSAcq1-3                 0.564***               2.091***           
##                           (0.053)                (0.654)           
## MSAcq4-6                 0.597***                                  
##                           (0.095)                                  
## MSAcq1-3 (0,1]                       0.057***             0.034*** 
##                                       (0.004)              (0.010) 
## MSAcq1-3 (1,5]                       0.045***             0.159*** 
##                                       (0.004)              (0.025) 
## MSAcq1-3 (5,.]                       0.042***              0.103*  
##                                       (0.004)              (0.061) 
## MSAcq4-6 (0,1]                       0.009***                      
##                                       (0.003)                      
## MSAcq4-6 (1,5]                       0.034***                      
##                                       (0.007)                      
## MSAcq4-6 (5,.]                       0.025***                      
##                                       (0.009)                      
## Acquirer Share           -0.235***   -0.234***  15.073*** 15.072***
##                           (0.025)     (0.025)    (0.343)   (0.343) 
## Full documentation       0.006***    0.006***   -2.470*** -2.470***
##                           (0.002)     (0.002)    (0.051)   (0.051) 
## FICO Score              -0.00004**  -0.00004**  0.129***  0.129*** 
##                          (0.00002)   (0.00002)   (0.003)   (0.003) 
## Combined loan-to-value   -0.003***   -0.003***  -0.043*** -0.043***
##                          (0.0002)    (0.0002)    (0.004)   (0.004) 
## FICO Score2              0.0001***   0.0001***  0.0004*** 0.0004***
##                          (0.00000)   (0.00000)  (0.0001)  (0.0001) 
## FICO Score3             -0.00000*** -0.00000***  0.00000   0.00000 
##                           (0.000)     (0.000)   (0.00000) (0.00000)
## Combined loan-to-value2   -0.043*    -0.221***  0.720***  0.668*** 
##                           (0.025)     (0.035)    (0.060)   (0.063) 
## Combined loan-to-value3  0.0001***   0.0001***                     
##                          (0.00001)   (0.00001)                     
## Debt-to-income                                  -0.229*** -0.229***
##                                                  (0.003)   (0.003) 
## log(Loan amount)         -0.164***   -0.164***  -1.128*** -1.128***
##                           (0.005)     (0.005)    (0.007)   (0.007) 
## Freddie Mac              0.047***    0.048***                      
##                           (0.002)     (0.002)                      
## New purchase             0.022***    0.022***   0.032***  0.032*** 
##                           (0.003)     (0.003)    (0.003)   (0.003) 
## Alt-A                                           0.052***  0.052*** 
##                                                  (0.003)   (0.003) 
## Subprime                                        0.297***  0.297*** 
##                                                  (0.005)   (0.005) 
## Primar residence         -0.340***   -0.340***  -0.178*** -0.178***
##                           (0.007)     (0.007)    (0.004)   (0.004) 
## Year*Zipcode                 Y           Y          Y         Y    
## Bank                         Y           Y          Y         Y    
## N                       21,507,050  21,507,050  2,969,361 2,969,361
## Adjusted R2                0.889       0.889      0.549     0.549  
## ===================================================================

3 Table 4 Panel B

r <- list()
r[[1]] <- 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+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05) & assettype=="0Prime"  ])  
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+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05) & assettype=="Alt-A"  ])
r[[3]] <- 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+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05) & assettype=="Subprime"  ])  

covlabs <- c("MSAcq1-3","FICO Score", "Combined loan-to-value","FICO Score2","FICO Score3", "Combined loan-to-value2", "Combined loan-to-value3","Acquirer Share","Full documentation","log(Loan amount)","New purchase","Primary residence")
  
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)    
## --------------------------------------------------------
## MSAcq1-3                  -0.769     6.311    27.985*** 
##                          (0.573)    (4.303)    (5.548)  
## FICO Score              10.444***  22.994***  15.245*** 
##                          (3.079)    (1.799)    (0.860)  
## Combined loan-to-value  -1.669***  -3.544***  -2.552*** 
##                          (0.420)    (0.258)    (0.137)  
## FICO Score2              0.085***  0.177***   0.136***  
##                          (0.019)    (0.012)    (0.007)  
## FICO Score3               0.002    -0.067***  -0.131*** 
##                          (0.005)    (0.008)    (0.003)  
## Combined loan-to-value2  -0.0002*  0.001***   0.002***  
##                          (0.0001)  (0.0001)   (0.00005) 
## Combined loan-to-value3 0.00000*** -0.00000  -0.00001***
##                         (0.00000)  (0.00000)  (0.00000) 
## Acquirer Share           0.797***  1.099***   -1.335*** 
##                          (0.050)    (0.195)    (0.276)  
## Full documentation      -0.165***  -0.357***  -0.453*** 
##                          (0.002)    (0.005)    (0.006)  
## log(Loan amount)        -0.755***  -1.327***  -1.674*** 
##                          (0.006)    (0.008)    (0.008)  
## New purchase              0.003    0.019***   0.060***  
##                          (0.003)    (0.006)    (0.008)  
## Primary residence       -0.268***  -0.188***  -0.053*** 
##                          (0.004)    (0.007)    (0.011)  
## Year*Zipcode                Y          Y          Y     
## Bank                        Y          Y          Y     
## N                       1,628,325   637,081    703,955  
## Adjusted R2               0.646      0.602      0.455   
## ========================================================

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

  r <- list()
  r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+dti+freddie+newpurchase+primary_occ|bank_msa+loanyr|0|msa,data=regsample[!(suc_share==0 & msinc13>1e-05)])  
 r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+dti+freddie+newpurchase+primary_occ|bank_msa+loanyr|0|msa,data=regsample[!(suc_share==0 & msinc13>1e-05)])  
  r[[3]] <-  felm(log(orig_upb)~msinc13+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+newpurchase+factor(assettype)+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05)])  
  #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[[4]] <-  felm(log(orig_upb)~factor(msinc13G)+fico+I(fico^2)+I(fico^3)+ltv+I(ltv^2)+I(ltv^3)+suc_share+fulldocumentation+newpurchase+factor(assettype)+primary_occ|bank_msa+loanyr|0|zipcode,data=regsample2[originalterm==360 & armflag=="F" & !(suc_share==0 & msinc13>1e-05)])  
  
covlabs <- c("MSAcq1-3","MSAcq4-6","MSAcq1-3 (0,1]","MSAcq1-3 (1,5]","MSAcq1-3 (5,.]","MSAcq4-6 (0,1]","MSAcq4-6 (1,5]","MSAcq4-6 (5,.]","Acquirer Share","Full documentation","FICO Score", "Combined loan-to-value","FICO Score2","FICO Score3", "Combined loan-to-value2","Combined loan-to-value3","Debt-to-income","Freddie Mac","New purchase","Alt-A","Subprime","Primar residence")

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,2),
          add.lines = list(c("Year*Zipcode", rep("Y",6)),c("Bank", rep("Y",6))))
## 
## =====================================================================
##                              GSE Sample          Non-agency sample   
##                            (1)        (2)         (3)         (4)    
## ---------------------------------------------------------------------
## MSAcq1-3                  0.203*               3.300***              
##                          (0.111)                (0.378)              
## MSAcq4-6                  -0.208                                     
##                          (0.126)                                     
## MSAcq1-3 (0,1]                     -0.017***               0.023***  
##                                     (0.006)                 (0.006)  
## MSAcq1-3 (1,5]                       0.014                 0.208***  
##                                     (0.010)                 (0.015)  
## MSAcq1-3 (5,.]                       0.010                  0.079**  
##                                     (0.007)                 (0.033)  
## MSAcq4-6 (0,1]                       -0.005                          
##                                     (0.006)                          
## MSAcq4-6 (1,5]                       0.014*                          
##                                     (0.007)                          
## MSAcq4-6 (5,.]                      -0.029**                         
##                                     (0.012)                          
## Acquirer Share           0.342***   0.341***   -5.182***   -5.183*** 
##                          (0.029)    (0.029)     (0.111)     (0.111)  
## Full documentation      -0.021***  -0.020***   0.799***    0.799***  
##                          (0.002)    (0.002)     (0.017)     (0.017)  
## FICO Score              0.0002***  0.0002***   -0.040***   -0.040*** 
##                         (0.00002)  (0.00002)    (0.001)     (0.001)  
## Combined loan-to-value   0.032***   0.032***   0.040***    0.040***  
##                          (0.001)    (0.001)     (0.004)     (0.004)  
## FICO Score2             -0.0002*** -0.0002***  -0.00003    -0.00003  
##                         (0.00001)  (0.00001)   (0.0001)    (0.0001)  
## FICO Score3             0.00000*** 0.00000*** -0.00000*** -0.00000***
##                          (0.000)    (0.000)    (0.00000)   (0.00000) 
## Combined loan-to-value2   0.068     0.125***   -0.129***   -0.165*** 
##                          (0.042)    (0.047)     (0.034)     (0.035)  
## Combined loan-to-value3 0.0001***  0.0001***                         
##                         (0.00000)  (0.00000)                         
## Debt-to-income          -0.022***  -0.023***                         
##                          (0.002)    (0.002)                          
## Freddie Mac                                    0.021***    0.021***  
##                                                 (0.001)     (0.001)  
## New purchase            -0.026***  -0.026***   -0.072***   -0.072*** 
##                          (0.004)    (0.004)     (0.002)     (0.002)  
## Alt-A                                          -0.090***   -0.090*** 
##                                                 (0.001)     (0.001)  
## Subprime                                       -0.079***   -0.079*** 
##                                                 (0.002)     (0.002)  
## Primar residence         0.337***   0.337***   0.220***    0.220***  
##                          (0.015)    (0.015)     (0.003)     (0.003)  
## Year*Zipcode                Y          Y           Y           Y     
## Bank                        Y          Y           Y           Y     
## N                       21,507,052 21,507,052  2,970,488   2,970,488 
## Adjusted R2               0.409      0.410       0.605       0.605   
## =====================================================================

5 Table 5 Panel B

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

covlabs <- c("MSAcq1-3","FICO Score", "Combined loan-to-value","FICO Score2","FICO Score3", "Combined loan-to-value2", "Combined loan-to-value3","Acquirer Share","Full documentation","log(Loan amount)","New purchase","Primary residence")
  
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)    
## -----------------------------------------------------------
## MSAcq1-3                 2.393***    12.446***     0.726   
##                           (0.411)     (2.678)     (2.628)  
## FICO Score              -13.240***   -3.030***   -3.619*** 
##                           (0.742)     (0.547)     (0.254)  
## Combined loan-to-value   1.930***    0.489***    0.527***  
##                           (0.102)     (0.080)     (0.041)  
## FICO Score2              -0.093***   -0.026***   -0.024*** 
##                           (0.005)     (0.004)     (0.002)  
## FICO Score3              0.052***     0.017*     0.042***  
##                           (0.003)     (0.009)     (0.008)  
## Combined loan-to-value2 -0.0003***   0.0004***   -0.00003  
##                          (0.0001)    (0.0002)    (0.0001)  
## Combined loan-to-value3 -0.00000*** -0.00000*** -0.00000***
##                          (0.00000)   (0.00000)   (0.00000) 
## Acquirer Share           -0.204***     0.022      -0.073   
##                           (0.035)     (0.100)     (0.098)  
## Full documentation       0.051***    0.050***    -0.076*** 
##                           (0.001)     (0.002)     (0.002)  
## log(Loan amount)          -0.001     -0.100***   -0.219*** 
##                           (0.002)     (0.003)     (0.004)  
## New purchase             0.268***    0.208***    0.052***  
##                           (0.003)     (0.004)     (0.003)  
## Year*Zipcode                 Y           Y           Y     
## Bank                         Y           Y           Y     
## N                        1,628,618    637,344     704,526  
## Adjusted R2                0.624       0.534       0.530   
## ===========================================================