List of Mergers
files = paste0("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",as.character(2000:2016),".fst")
panel = lapply(files, read_fst, as.data.table = TRUE,columns=c("respondentid","agencycode","reportername","asofdate","parentname","parentidentifier","reporterhomecity","reporterhomestate","rssd"))
panel <- do.call(rbind , panel)
panel[,asofdate:=as.integer(asofdate)]
panel <- panel[!duplicated(panel[,c("respondentid","agencycode","asofdate")])]
panel[,parentidentifier:=stri_trim(parentidentifier)]
panel[,rssd:=as.numeric(rssd)]
panel[,hmda_id:=paste0(agencycode,"-",respondentid)]
files <- NULL
files <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/pre2004/OO_NP/",full.names = TRUE)
files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/pre2004/OO_RF/",full.names = TRUE))
files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_NP/",full.names = TRUE))
files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_RF/",full.names = TRUE))
hmda = lapply(files, read_fst, as.data.table = TRUE,
columns=c("asofdate","respondentid","agencycode","state","countycode","msa"))
hmda <- do.call(rbind , hmda)
hmda[,lender:=paste0(agencycode,"-",respondentid)]
hmda[,countycode:=paste0(state,countycode)]
cbsa_fips <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/cbsa_countyfips.csv")
cbsa_fips[,fips:=ifelse(nchar(fips)==4,paste0("0",fips),paste0(fips))]
hmda <- merge(hmda,cbsa_fips,by.x="countycode",by.y="fips",all.x=T)
hmda[,c("agencycode","respondentid"):=list(NULL)]
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2088699 111.6 3908912 208.8 2932991 156.7
## Vcells 2223686011 16965.4 6908872861 52710.6 7104843326 54205.7
mergers <- list()
temp <- list(1,"BANK ONE - JPMORGAN CHASE 2004",
c("1-0000000008","1-0000007621","1-0000003106","1-0000011230","1-0000013655","1-0000013759","1-0000013914","1-0000014320","1-0000015184","1-0000018785","1-0000021969","1-0000023237","2-0000331647","3-0000002487"),
unique(c(unique(panel[parentidentifier %in% c("0000002370","0000000008","0001039502","0000852218","0001040795"),]$hmda_id),"2-0000852218","1-0000023160","2-0000043557","1-22-1092200","1-0000000008")),
2000,"JPMORGAN CHASE BANK, NA",2004)
mergers[[1]] <- temp
temp <- list(2,"COUNTRYWIDE - BANK OF AMERIC 2009" ,c("1-0000024141","2-0001644643","2-0003267484","7-20-2241771","1-0000024141","4-0000018039"),c("1-0000013044"),
2005,"BANK OF AMERICA, N.A.",2009)
mergers[[2]] <- temp
temp <- list(3,"FLEET NA - BANK OF AMERICA 2005",c("1-0000000200"),c("1-0000013044"),
2003,"BANK OF AMERICA, N.A.",2005)
mergers[[3]] <- temp
temp <- list(4,"WACHOVIA BK NA - WELLS FARGO 2010", c("1-0000000001","1-0000022559","1-56-0811711"), panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2005,"WELLS FARGO BANK, N.A.",2009)
mergers[[4]] <- temp
temp <- list(5,"LASALLE BK - BANK OF AMERICA 2008",panel[substr(reportername,1,7)=="LASALLE" & asofdate<=2005]$hmda_id,c("1-0000013044"),
2005,"BANK OF AMERICA, N.A.",2008)
mergers[[5]] <- temp
temp <- list(6,"ABN AMRO MTG GROUP - CITI BANK 2007",c("1-36-3744610"),unique(panel[parentidentifier=="0001951350"]$hmda_id),
2004,"CITIMORTGAGE, INC.",2007)
mergers[[6]] <- temp
temp <- list(7,"UNION PLANTERS BANK - REGIONS FINANCIAL CORP 2004",
c("1-0000013349"),
c("9-0000233031","2-0000233031"),
2002,c("REGIONS BANK"),2004)
mergers[[7]] <- temp
temp <- list(8,"AmSouth Bancorporation - REGIONS FINANCIAL CORP 2006",
c("2-0000245333"),
c("9-0000233031","2-0000233031"),
2004,c("REGIONS BANK"),2006)
mergers[[8]] <- temp
temp <- list(9,"Washington Mutual - JPMORGAN CHASE 2008",
c("4-0000008551","4-0000011905"),
unique(c(unique(panel[parentidentifier %in% c("0000002370","0000000008","0001039502","0000852218","0001040795"),]$hmda_id),"2-0000852218","1-0000023160","2-0000043557","1-22-1092200","1-0000000008")),
2005,"JPMORGAN CHASE BANK, NA",
2008)
mergers[[9]] <- temp
## target operated in 5 msas; small share.
temp <- list(10,"Greater Bay Bank - Wells Fargo 2007",
c("1-0000024489"),
panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2005,c("WELLS FARGO BANK, N.A."),2007)
mergers[[10]] <- temp
temp <- list(11,"MBNA NA - BANK OF AMERICA 2005",c("1-0000024095"),c("1-0000013044"),
2003,"BANK OF AMERICA, N.A.",2005)
mergers[[11]] <- temp
temp <- list(12,"Merrill Lynch - BANK OF AMERICA 2008",c("2-0000421203","7-13-3403204","3-13-3098068","3-13-3399559","3-0000027374","3-0000091363","3-13-3399559","4-0000014460","3-68-0518519","4-0000014460", "4-0133098068"),c("1-0000013044"),
2005,"BANK OF AMERICA, N.A.",2008)
mergers[[12]] <- temp
temp <- list(13,"FIRST INTERSTATE BK CA - Wells Fargo 1996",c("2-0000669667"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,1994,"WELLS FARGO BANK, N.A.",1996)
mergers[[13]] <- temp
temp <- list(14,"PACIFIC NORTHWEST - Wells Fargo 2004",c("3-0000030887","3-0000027346"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2002,"WELLS FARGO BANK, N.A.",2004)
mergers[[14]] <- temp
temp <- list(15,"MERIDIAN MOME MORTGAGE, LP - Wells Fargo 2010",c("1-74-3082948"),panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2005,"WELLS FARGO BANK, N.A.",2010)
mergers[[15]] <- temp
temp <- list(16,"The Leader Mtg Co - US Bank 2004",
c("7-3814209995"),
panel[substr(reportername,1,5)=="U S B"]$hmda_id,
2002,c("U.S. BANK N.A."),2004)
mergers[[16]] <- temp
temp <- list(17,"PFF BANK & TRUST - US Bank 2008",
c("4-0000001405"),
panel[substr(reportername,1,5)=="U S B"]$hmda_id,
2005,c("U.S. BANK N.A."),2008)
mergers[[17]] <- temp
temp <- list(18,"DOWNEY SAVINGS AND LOAN ASSOCIATION, F.A. - US Bank 2008",
c("4-0000006189"),
panel[substr(reportername,1,5)=="U S B"]$hmda_id,
2005,c("U.S. BANK N.A."),2008)
mergers[[18]] <- temp
cbsas <- unique(hmda$cbsa)
yrs <- 2000:2016
acqbanks <- NULL
for(i in 1:length(mergers)) {
acqbanks <- c(acqbanks,mergers[[i]][6][[1]])
}
acqbanks <- c(unique(acqbanks),"other")
cbsas1 <- merge(cbsas,yrs)
cbsas2 <- merge(cbsas,acqbanks)
cbsas <- merge(cbsas1,cbsas2,by="x")
names(cbsas) <- c("cbsa","acyr","bank")
cbsas <- data.table(cbsas)
cbsas[,bank:=as.character(bank)]
cbsas[,acqbank:=0]
cbsas[,pred_share:=0]
cbsas[,suc_share:=0]
cbsa_bnk <- NULL
lender_bank <- NULL
sumtable <- NULL
for(i in 1:length(mergers)) {
# print(i)
mid=mergers[[i]][1][[1]]
mname=mergers[[i]][2][[1]]
pred_hmda_id=mergers[[i]][3][[1]]
suc_hmda_id=mergers[[i]][4][[1]]
yr=mergers[[i]][5][[1]]
acname = mergers[[i]][6][[1]]
acyr = mergers[[i]][7][[1]]
temp <- hmda[asofdate == yr ]
temp[,pred:=ifelse(lender %in% pred_hmda_id,1,0)]
cw <- temp[,.(pred_share=mean(pred)),by=.(cbsa)]
temp1 <- hmda[asofdate == (acyr-1) ]
temp1[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]
cw1 <- temp1[,.(suc_share=mean(suc)),by=.(cbsa)]
cw <- merge(cw,cw1,by="cbsa",all.x=T)
cw <- cw[!is.na(cbsa)]
cw[is.na(cw)] <- 0
cw[,joint_share:=pred_share+suc_share]
cw[,bank:=acname]
cw[,acyr:=acyr]
cw[,c("joint_share"):=list(NULL)]
cbsa_bnk <- rbind(cbsa_bnk,cw)
}
cbsa_bnk[,acqbank:=1]
cbsa_bnk <- rbind(cbsa_bnk,cbsas)
cbsa_bnk <- cbsa_bnk[!duplicated(cbsa_bnk[,c("cbsa","acyr","bank")])]
cbsa_bnk <- cbsa_bnk[!is.na(cbsa)]
cbsa_bnk_1 <- cbsa_bnk[,c("cbsa","pred_share","bank","acyr")]
names(cbsa_bnk_1) <- c("cbsa","pred_share_1","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_2","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_3","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_4","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_5","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_6","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_7","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_8","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
names(cbsa_bnk_1) <- c("cbsa","pred_share_9","bank","acyr")
cbsa_bnk_1[,acyr:=acyr+1]
cbsa_bnk <- merge(cbsa_bnk,cbsa_bnk_1,by=c("cbsa","bank","acyr"),all.x = T)
cbsa_bnk[,pred_share_1:=ifelse(is.na(pred_share_1),0,pred_share_1)]
cbsa_bnk[,pred_share_2:=ifelse(is.na(pred_share_2),0,pred_share_2)]
cbsa_bnk[,pred_share_3:=ifelse(is.na(pred_share_3),0,pred_share_3)]
cbsa_bnk[,pred_share_4:=ifelse(is.na(pred_share_4),0,pred_share_4)]
cbsa_bnk[,pred_share_5:=ifelse(is.na(pred_share_5),0,pred_share_5)]
cbsa_bnk[,pred_share_6:=ifelse(is.na(pred_share_6),0,pred_share_6)]
cbsa_bnk[,pred_share_7:=ifelse(is.na(pred_share_7),0,pred_share_7)]
cbsa_bnk[,pred_share_8:=ifelse(is.na(pred_share_8),0,pred_share_8)]
cbsa_bnk[,pred_share_9:=ifelse(is.na(pred_share_9),0,pred_share_9)]
cbsa_bnk[,msinc13:=pred_share_1+pred_share_2+pred_share_3+0.00001]
cbsa_bnk[,msinc46:=pred_share_4+pred_share_5+pred_share_6+0.00001]
cbsa_bnk[,msinc79:=pred_share_7+pred_share_8+pred_share_9+0.00001]
cbsa_bnk[,msinc13G:=ifelse(msinc13<=0.0001,"0. 0",
ifelse(msinc13<0.01,"1. Less than 1pct",
ifelse(msinc13<0.05,"2. 1 - 5pct",
ifelse(msinc13<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
cbsa_bnk[,msinc46G:=ifelse(msinc46<=0.0001,"0. 0",
ifelse(msinc46<0.01,"1. Less than 1pct",
ifelse(msinc46<0.05,"2. 1 - 5pct",
ifelse(msinc46<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
cbsa_bnk[,msinc79G:=ifelse(msinc79<=0.0001,"0. 0",
ifelse(msinc79<0.01,"1. Less than 1pct",
ifelse(msinc79<0.05,"2. 1 - 5pct",
ifelse(msinc79<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
Step 1: Identifying Lenders
We identified lenders that are consistently identified across in freddie and fannie data sets. Freddie and fannie identify lenders with a total loan amount epresenting 1% or more of the total loan amount of all loans in the Dataset for a given calendar quarter. Otherwise, the lender name is set to “Other Sellers”. The lists of Freddie and Fannie lenders with the corresponding number of loans in each year are available
here{:target="_blank“} and
here{:target=”_blank"}, respectively.
List of Lenders Identified
-
Bank of America
-
JPMorgan Chase
-
Wells Fargo
-
US Bank
-
Flagstar FSB
-
Fifth Thrid Bank
-
Regions Financial Corp
Step 2: Identifying mergers
We identified all the mergers since 1995 where the acquirer is one the selected banks in the list above. The list of all identified mergers is available here{:target="_blank"}
Step 3: Identifying targets present in HMDA data
Next, we exclude mergers if the target is not present in HMDA data. The list of selected mergers is available here{:target="_blank"}
Step 4: Identify ‘large’ targets
Criteria: at least one MSA where target had 5% or more market share.

Summary Statistics
Freddie
freddie <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Freddie/Acq",full.names = TRUE)
freddie = lapply(freddie, read_fst,as.data.table=T, columns = c("fico","dt_first_pi","cd_msa","ltv","dti","orig_upb","int_rt","prop_type","zipcode","id_loan","orig_loan_term","seller_name","loan_purpose","cltv"))
freddie <- do.call(rbind , freddie)
freddie <- freddie[orig_loan_term==360 & prop_type=="SF"]
freddie[,loanyr:=year(dt_first_pi)]
freddie[,msa:=cd_msa]
freddie[,c("orig_loan_term","dt_first_pi","prop_type","cd_msa"):=list(NULL)]
freddie[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A."),"JPMORGAN CHASE BANK, NA",seller_name)]
freddie[,seller_name:= ifelse(seller_name %in% c("CITIMORTGAGE, INC.","ABN AMRO, NKA CITIMORTGAGE INC.","CITIMORTGAGE, INC."),"CITIMORTGAGE, INC.",seller_name)]
freddie[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A."),"WELLS FARGO BANK, N.A.",seller_name)]
freddie[,bank:=seller_name]
freddie[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
freddie[,freddie:=1]
freddie[,newpurchase:=ifelse(loan_purpose=="P",1,0)]
freddie[,ltvorg:=ltv]
freddie[,ltv:=cltv]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","newpurchase")
stargazer(freddie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ========================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ------------------------------------------------------------------------
## fico 16,245,111 748.509 395.911 695 741 776
## ltv 16,245,111 74.400 17.381 67 79 85
## dti 16,245,111 47.668 113.969 26 35 43
## orig_upb 16,245,111 189,852.800 107,056.600 111,000 165,000 245,000
## int_rt 16,245,111 5.699 1.234 4.750 5.875 6.625
## loanyr 16,245,111 2,007.242 5.630 2,003 2,006 2,012
## newpurchase 16,245,111 0.420 0.494 0 0 1
## ------------------------------------------------------------------------
Fannie
fannie <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Fannie/Acq",full.names = TRUE)
fannie = lapply(fannie, read_fst,as.data.table=T, columns = c("loan_identifier","seller_name","original_interest_rate","original_upb","original_loan_term","origination_date","original_ltv","original_dti","credit_score","property_type","property_state","zip_code","msa","loan_purpose","original_cltv"))
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]
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"):=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]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","newpurchase")
stargazer(fannie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ========================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ------------------------------------------------------------------------
## fico 20,256,524 736.426 54.519 700.000 747.000 781.000
## ltv 20,136,791 74.006 16.287 66.000 78.000 84.000
## dti 19,924,305 34.426 11.429 26.000 35.000 42.000
## orig_upb 20,348,007 197,397.000 111,678.300 115,000 172,000 254,000
## int_rt 20,348,004 5.542 1.240 4.500 5.625 6.375
## loanyr 20,348,007 2,007.760 5.680 2,003 2,007 2,013
## newpurchase 20,348,007 0.410 0.492 0 0 1
## ------------------------------------------------------------------------
Moodys
moodys <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Moodys/0001/LoanChars.fst",as.data.table = TRUE, columns=c("loanid","loanoriginationdate","zipcode","originalloanbalance","originalcltv","state","originator","armflag","originalfico","originalterm","originalltv","documentationtype","originalinterestrate","purposetype","assettype"))
cbsa <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/ZIP_CBSA.csv")
cbsa[,ZIP:=ifelse(nchar(ZIP)==3,paste0("00",ZIP),ifelse(nchar(ZIP)==4,paste0("0",ZIP),paste0(ZIP)))]
setorder(cbsa,ZIP,-RES_RATIO)
cbsa <- cbsa[!duplicated(cbsa[,c("ZIP")])]
cbsa[,c("RES_RATIO","BUS_RATIO","OTH_RATIO","TOT_RATIO"):=list(NULL)]
names(cbsa) <- c("zipcode","msa")
moodys <- merge(moodys,cbsa,by=c("zipcode"))
# moodys <- moodys[originalterm==360 & armflag=="F"]
moodys[,loanyr:=as.numeric(substr(loanoriginationdate,1,4))]
moodys[,seller_name:= originator]
moodys[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A.","JP MORGAN CHASE BANK NA","CHASE MANHATTAN MORTGAGE CORP"),"JPMORGAN CHASE BANK, NA",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in% c("B OF A"),"BANK OF AMERICA, N.A.",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A.","WELLS FARGO BANK N.A"," WELLS FARGO HOME MTG, INC"),"WELLS FARGO BANK, N.A.",seller_name)]
moodys[,int_rt:=originalinterestrate]
moodys[,dti:=0]
moodys[,ltv:=originalcltv]
moodys[,ltvorg:=originalltv]
moodys[,fico:=originalfico]
moodys[,orig_upb:= originalloanbalance]
# moodys[,c("originalinterestrate","originalltv","originalfico","originalloanbalance","msacode","csacode","divcode","loanoriginationdate","armflag","originalterm"):=list(NULL)]
moodys[,fulldocumentation:=ifelse(documentationtype=="FU",1,0)]
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 38861452 2075.5 58590452 3129.1 40147438 2144.2
## Vcells 3593737030 27418.1 6908872861 52710.6 7104843326 54205.7
moodys[,bank:=seller_name]
moodys[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),bank,"other")]
moodys[,newpurchase:=ifelse(purposetype=="PUR",1,0)]
moodys <- moodys[assettype != "UN"]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")
temp <- moodys[ 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"))
##
## ======================================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## --------------------------------------------------------------------------------------
## fico 3,931,302 681.319 69.930 632.000 684.000 737.000
## ltv 3,701,324 80.358 17.069 72.040 80.000 95.000
## orig_upb 4,084,713 236,227.000 217,261.500 87,000.000 162,900.000 342,000.000
## int_rt 4,083,067 7.376 2.070 6.125 6.875 8.250
## loanyr 4,076,804 2,004.672 2.223 2,004.000 2,005.000 2,006.000
## fulldocumentation 4,085,004 0.407 0.491 0 0 1
## newpurchase 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","dti","orig_upb","int_rt","loanyr","fulldocumentation","newpurchase")],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## =======================================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ---------------------------------------------------------------------------------------
## fico 2,158,190 726.768 41.403 691.000 725.000 760.000
## ltv 1,990,839 79.131 17.441 70.000 80.000 94.930
## dti 2,195,857 0.000 0.000 0 0 0
## orig_upb 2,195,652 298,550.900 249,089.600 113,000.000 231,900.000 441,000.000
## int_rt 2,195,442 6.957 1.772 6.000 6.500 7.375
## loanyr 2,195,370 2,004.765 2.208 2,004.000 2,005.000 2,006.000
## fulldocumentation 2,195,857 0.387 0.487 0 0 1
## newpurchase 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"))
##
## ====================================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ------------------------------------------------------------------------------------
## fico 836,480 660.313 41.997 633.000 647.000 663.000
## ltv 788,635 82.385 16.836 75.000 82.900 98.000
## orig_upb 869,952 186,927.700 165,143.600 76,000.000 138,000.000 245,000.000
## int_rt 869,542 7.617 2.229 6.250 7.000 8.825
## loanyr 866,808 2,004.815 2.023 2,004.000 2,005.000 2,006.000
## fulldocumentation 869,955 0.361 0.480 0 0 1
## newpurchase 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"))
##
## ======================================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## --------------------------------------------------------------------------------------
## fico 936,632 595.358 49.573 566.000 596.000 616.000
## ltv 921,850 81.273 16.209 74.850 80.000 95.000
## orig_upb 1,019,109 144,035.000 115,299.700 67,000.000 111,200.000 185,000.000
## int_rt 1,018,083 8.073 2.293 6.750 7.875 9.550
## loanyr 1,014,626 2,004.349 2.380 2,004.000 2,005.000 2,006.000
## fulldocumentation 1,019,192 0.490 0.500 0 0 1
## newpurchase 1,019,192 0.318 0.466 0 0 1
## --------------------------------------------------------------------------------------
HMDA Data: New Purchases
cbsa_bnk <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk.fst",as.data.table = T)
cbsa_bnk[,msinc13Q:=ifelse(msinc13<=0.0001,"Q0",
ifelse(msinc13<0.0027235,"Q1",
ifelse(msinc13<0.0112596,"Q2",
ifelse(msinc13<0.0366354,"Q3","Q4"))))]
cbsa_bnk[,msinc13G:=ifelse(msinc13<=0.0001,"0. 0",
ifelse(msinc13<0.01,"1. Less than 1pct",
ifelse(msinc13<0.05,"2. 1 - 5pct",
ifelse(msinc13<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
cbsa_bnk[,msinc46Q:=ifelse(msinc46<=0.0001,"Q0",
ifelse(msinc46<0.0027235,"Q1",
ifelse(msinc46<0.0112596,"Q2",
ifelse(msinc46<0.0366354,"Q3","Q4"))))]
cbsa_bnk[,msinc46G:=ifelse(msinc46<=0.0001,"0. 0",
ifelse(msinc46<0.01,"1. Less than 1pct",
ifelse(msinc46<0.05,"2. 1 - 5pct",
ifelse(msinc46<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
#
cbsa_share<- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share.fst",as.data.table = T)
cbsa_share[,msinc13G:=ifelse(msinc13<=0.0001,"0. 0",
ifelse(msinc13<0.01,"1. Less than 1pct",
ifelse(msinc13<0.05,"2. 1 - 5pct",
ifelse(msinc13<0.1,"3. 5pct - 10pct", "4. More than 10pct"))))]
cbsa_bnk_partrend <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk_partrend.fst",as.data.table = T)
cbsa_share_partrend <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share_partrend.fst",as.data.table = T)
files <- NULL
files <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/pre2004/OO_NP/",full.names = TRUE)
# files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/pre2004/OO_RF/",full.names = TRUE))
files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_NP/",full.names = TRUE))
# files <- c(files,list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/OO_RF/",full.names = TRUE))
files <- files[substr(files,100,103) %in% as.character(2000:2017)] #c("2014","2015","2016","2017","2018")
hmda = lapply(files, read_fst, as.data.table = TRUE,
columns=c("asofdate","respondentid","agencycode","state","countycode","msa","actiontaken","applicantrace1","applicantincome","amountofloan","typeofpurchaser","typeofloan","applicantethnicity"))
hmda <- do.call(rbind , hmda)
# hmda <- hmda[asofd•ate>=2000 & asofdate<2017]
hmda[,lender:=paste0(agencycode,"-",respondentid)]
hmda[,countycode:=paste0(state,countycode)]
hmda[,approved:=ifelse(actiontaken %in% c("1"),1,0)]
hmda[,sold:=ifelse(typeofpurchaser !="0" & actiontaken=="1",1,ifelse(actiontaken=="1",0,NA))]
hmda[,nonwhite:=ifelse(applicantrace1=="5",0,1)]
lender_bank <- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/lender_bank.fst",as.data.table = T)
hmda <- merge(hmda,lender_bank,by="lender",all.x=T)
cbsa_fips <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/cbsa_countyfips.csv")
cbsa_fips[,fips:=ifelse(nchar(fips)==4,paste0("0",fips),paste0(fips))]
hmda <- merge(hmda,cbsa_fips,by.x="countycode",by.y="fips",all.x=T)
hmda <- merge(hmda,cbsa_bnk,by.x=c("bank","cbsa","asofdate"),by.y=c("bank","cbsa","acyr"),all.x=T)
hmda[,msinc13:=ifelse(is.na(msinc13),0.00001,msinc13)]
hmda[,msinc46:=ifelse(is.na(msinc46),0.00001,msinc46)]
hmda[,bank:=ifelse(is.na(bank),lender,bank)]
hmda[,msinc13G:=ifelse(is.na(msinc13G),"0. 0",msinc13G)]
hmda[,msinc46G:=ifelse(is.na(msinc46G),"0. 0",msinc46G)]
hmda[,bank_msa:=paste(bank,cbsa)]
hmda <- hmda[!is.na(cbsa)]
hmda[,applicantincome:=as.numeric(applicantincome)]
hmda[,amountofloan:=as.numeric(amountofloan)]
hmda <- hmda[applicantincome>0 & amountofloan>0]
hmda[,msinc13G:=factor(msinc13G)]
# hmda <- within(hmda, msinc13G <- relevel(msinc13G, ref = 1))
hmda[,msinc46G:=as.factor(msinc46G)]
hmda[,hispanic:=ifelse(applicantethnicity=="1",1,0)]
hmda[,race:=ifelse(hispanic==1,"hispanic",ifelse(applicantrace1=="5","0white",ifelse(applicantrace1=="3","black","other")))]
hmda[,black:=ifelse(applicantrace1=="3",1,0)]
hmda[,actiontaken:=as.numeric(actiontaken)]
hmda[,denied:=ifelse(actiontaken %in% c(3,7),1,0)]
hmda[,typeofloan:=as.numeric(typeofloan)]
hmda[,medianincome:=median(applicantincome,na.rm=T),by=asofdate]
hmda[,lowincome:=ifelse(applicantincome<medianincome,1,0)]
hmda[,racecat:=ifelse(hispanic==1,"hispanic",
ifelse(applicantrace1=="5","white",
ifelse(applicantrace1=="3","black",
ifelse(applicantrace1=="2","asian",
ifelse(applicantrace1=="4","native","na")))))]
hmda[,msa_yr:=paste(asofdate,cbsa)]
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))]
Descriptive Statistics
Conventional Loans
vars <- c("amountofloan","applicantincome","approved","sold","nonwhite","asofdate","hispanic","black","jumbo")
stargazer(hmda[typeofloan==1,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ======================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ----------------------------------------------------------------------
## amountofloan 45,419,402 226.928 266.683 104 180 297
## applicantincome 45,419,402 104.931 129.053 53 80 122
## approved 45,419,402 0.580 0.494 0 1 1
## sold 26,331,998 0.753 0.431 1.000 1.000 1.000
## nonwhite 45,419,402 0.291 0.454 0 0 1
## asofdate 45,419,402 2,008.843 4.369 2,005 2,007 2,013
## hispanic 45,419,402 0.118 0.323 0 0 0
## black 45,419,402 0.069 0.254 0 0 0
## jumbo 45,419,402 0.109 0.312 0 0 0
## ----------------------------------------------------------------------
Conventional Loans - Race Distrubution
library(knitr)
racedist <- hmda[typeofloan==1,.N,by=racecat]
racedist[,frac:=N/sum(N)]
kable(racedist,digits = 2)
| white |
27598083 |
0.61 |
| na |
6070242 |
0.13 |
| hispanic |
5371900 |
0.12 |
| asian |
3140842 |
0.07 |
| black |
3055700 |
0.07 |
| native |
182635 |
0.00 |
FHA Loans
stargazer(hmda[typeofloan==2,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ======================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ----------------------------------------------------------------------
## amountofloan 13,804,879 176.134 117.800 113 156 218
## applicantincome 13,804,879 64.726 58.762 40 56 79
## approved 13,804,879 0.530 0.499 0 1 1
## sold 7,320,170 0.929 0.256 1.000 1.000 1.000
## nonwhite 13,804,879 0.270 0.444 0 0 1
## asofdate 13,804,879 2,011.284 3.605 2,009 2,011 2,014
## hispanic 13,804,879 0.184 0.388 0 0 0
## black 13,804,879 0.125 0.331 0 0 0
## ----------------------------------------------------------------------
FHA Loans - Race Distrubution
library(knitr)
racedist <- hmda[typeofloan==2,.N,by=racecat]
racedist[,frac:=N/sum(N)]
kable(racedist,digits = 2)
| white |
7775513 |
0.56 |
| na |
1319509 |
0.10 |
| hispanic |
2541756 |
0.18 |
| black |
1692617 |
0.12 |
| asian |
419495 |
0.03 |
| native |
55989 |
0.00 |
Regressions
Main Result
Bank-MSA and Year FE
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate,data=hmda[typeofloan==2 & actiontaken<=3])
r[[7]] <- felm(approved~msinc13*jumbo+msinc46*jumbo+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate,data=hmda[actiontaken<=3 & typeofloan==1])
.printtable(r,column.labels = c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),lines = list(c("Fixed Effects",rep("MSA*Bank, Yr",6))))
##
## =====================================================================================================================
## Dependent variable:
## ----------------------------------------------------------------------------------------
## Conventional FHA Conventional FHA Conventional FHA
## (1) (2) (3) (4) (5) (6) (7)
## ---------------------------------------------------------------------------------------------------------------------
## msinc13 0.651*** -0.541*** 0.674*** -0.280*** 0.588*** -0.325*** 0.659***
## (0.013) (0.018) (0.015) (0.024) (0.016) (0.022) (0.014)
## lowincome -0.032*** -0.025***
## (0.0002) (0.0003)
## jumbo -0.057***
## (0.0003)
## msinc46 1.149*** -0.685*** 1.604*** -0.251*** 1.238*** -0.404*** 0.986***
## (0.021) (0.042) (0.025) (0.058) (0.024) (0.047) (0.022)
## log(applicantincome) 0.035*** 0.070*** 0.035*** 0.070*** 0.041***
## (0.0001) (0.0003) (0.0001) (0.0003) (0.0001)
## log(amountofloan) -0.002*** 0.004*** 0.005*** 0.043*** -0.002*** 0.004*** 0.006***
## (0.0001) (0.0004) (0.0001) (0.0004) (0.0001) (0.0004) (0.0001)
## msinc13:factor(race)black 0.063 -0.549***
## (0.048) (0.041)
## msinc13:factor(race)hispanic -0.400*** -0.645***
## (0.037) (0.035)
## msinc13:factor(race)other 0.303*** -0.095***
## (0.024) (0.034)
## factor(race)black:msinc46 -1.369*** -0.588***
## (0.088) (0.081)
## factor(race)hispanic:msinc46 -1.798*** -0.886***
## (0.081) (0.088)
## factor(race)other:msinc46 0.286*** -0.567***
## (0.049) (0.082)
## factor(race)black -0.100*** -0.075*** -0.102*** -0.079*** -0.099*** -0.074*** -0.099***
## (0.0003) (0.0004) (0.0003) (0.0004) (0.0003) (0.0004) (0.0003)
## factor(race)hispanic -0.053*** -0.039*** -0.055*** -0.046*** -0.052*** -0.038*** -0.053***
## (0.0002) (0.0004) (0.0002) (0.0004) (0.0002) (0.0004) (0.0002)
## factor(race)other -0.053*** -0.054*** -0.053*** -0.057*** -0.053*** -0.054*** -0.052***
## (0.0002) (0.0004) (0.0002) (0.0004) (0.0002) (0.0004) (0.0002)
## msinc13:lowincome -0.123*** -0.430***
## (0.021) (0.026)
## lowincome:msinc46 -1.258*** -0.638***
## (0.038) (0.058)
## msinc13:jumbo -0.187***
## (0.031)
## jumbo:msinc46 1.776***
## (0.056)
## ---------------------------------------------------------------------------------------------------------------------
## Fixed Effects MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations 33,570,940 8,964,925 33,570,940 8,964,925 33,570,940 8,964,925 33,570,940
## Adjusted R2 0.161 0.109 0.160 0.106 0.161 0.109 0.162
## =====================================================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##
Year-MSA and Bank FE
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|msa_yr+bank,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|msa_yr+bank,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|msa_yr+bank,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|msa_yr+bank,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|msa_yr+bank,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|msa_yr+bank,data=hmda[typeofloan==2 & actiontaken<=3])
r[[7]] <- felm(approved~msinc13*jumbo+msinc46*jumbo+log(applicantincome)+log(amountofloan)+factor(race)|msa_yr+bank,data=hmda[actiontaken<=3 & typeofloan==1])
.printtable(r,column.labels = c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),lines = list(c("Fixed Effects",rep("MSA*Year, Bank",6))))
##
## =================================================================================================================================
## Dependent variable:
## ----------------------------------------------------------------------------------------------------
## Conventional FHA Conventional FHA Conventional FHA
## (1) (2) (3) (4) (5) (6) (7)
## ---------------------------------------------------------------------------------------------------------------------------------
## msinc13 0.495*** -0.546*** 0.543*** -0.316*** 0.421*** -0.320*** 0.497***
## (0.012) (0.017) (0.014) (0.023) (0.014) (0.021) (0.012)
## lowincome -0.034*** -0.025***
## (0.0002) (0.0003)
## jumbo -0.061***
## (0.0003)
## msinc46 0.915*** -0.260*** 1.380*** 0.098* 0.999*** -0.016 0.743***
## (0.021) (0.033) (0.025) (0.050) (0.023) (0.039) (0.022)
## log(applicantincome) 0.037*** 0.070*** 0.037*** 0.070*** 0.042***
## (0.0001) (0.0003) (0.0001) (0.0003) (0.0001)
## log(amountofloan) -0.002*** 0.003*** 0.005*** 0.043*** -0.002*** 0.003*** 0.007***
## (0.0001) (0.0004) (0.0001) (0.0004) (0.0001) (0.0004) (0.0001)
## msinc13:factor(race)black 0.166*** -0.577***
## (0.048) (0.041)
## msinc13:factor(race)hispanic -0.386*** -0.675***
## (0.037) (0.034)
## msinc13:factor(race)other 0.353*** -0.118***
## (0.024) (0.034)
## factor(race)black:msinc46 -1.117*** -0.509***
## (0.088) (0.080)
## factor(race)hispanic:msinc46 -1.782*** -1.039***
## (0.082) (0.085)
## factor(race)other:msinc46 0.273*** -0.520***
## (0.049) (0.081)
## factor(race)black -0.106*** -0.078*** -0.108*** -0.081*** -0.106*** -0.077*** -0.106***
## (0.0003) (0.0004) (0.0003) (0.0004) (0.0003) (0.0004) (0.0003)
## factor(race)hispanic -0.052*** -0.039*** -0.055*** -0.046*** -0.051*** -0.037*** -0.052***
## (0.0002) (0.0004) (0.0002) (0.0004) (0.0002) (0.0004) (0.0002)
## factor(race)other -0.056*** -0.057*** -0.056*** -0.060*** -0.056*** -0.057*** -0.055***
## (0.0002) (0.0004) (0.0002) (0.0004) (0.0002) (0.0004) (0.0002)
## msinc13:lowincome -0.143*** -0.379***
## (0.021) (0.026)
## lowincome:msinc46 -1.256*** -0.527***
## (0.038) (0.057)
## msinc13:jumbo -0.164***
## (0.031)
## jumbo:msinc46 1.775***
## (0.056)
## ---------------------------------------------------------------------------------------------------------------------------------
## Fixed Effects MSA*Year, Bank MSA*Year, Bank MSA*Year, Bank MSA*Year, Bank MSA*Year, Bank MSA*Year, Bank
## Observations 33,570,940 8,964,925 33,570,940 8,964,925 33,570,940 8,964,925 33,570,940
## Adjusted R2 0.149 0.095 0.148 0.091 0.149 0.095 0.150
## =================================================================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##