#
# 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"]
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
## -----------------------------------------------------------------------------------
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
## -----------------------------------------------------------------------------------
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
## -------------------------------------------------------------------------------------------
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
## --------------------------------------------------------------------------------------------
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
## -----------------------------------------------------------------------------------------
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
## -------------------------------------------------------------------------------------------
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)))
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)]
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
## ==========================================================================================
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
## ===================================================
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
## ====================================================================
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
## =====================================================================================
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
## =======================================================
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)
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
## ------------------------------------------------------------------
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
## ------------------------------------------------------------------
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
## -----------------------------
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
## =======================================================================================================
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
## =======================================================================================================