rm(list=ls())
library(RPostgres)
library(data.table)
library(getPass)
library(lfe)
library(stargazer)
library(ggplot2)
library(fst)
library(stringr)
library(stringi)
library(lubridate)
files = list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/HMDA/Ultimate Panel Data/",full.names = TRUE)
panel = lapply(files, read_fst, as.data.table = TRUE)
panel <- do.call(rbind , panel)
panel <- panel[,c("respondentid","agencycode","reportername","asofdate","parentname","parentidentifier","reporterhomecity","reporterhomestate","rssd")]
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 2109381 112.7 6006905 320.9 4369182 233.4
## Vcells 2105265545 16062.0 5850423137 44635.2 6931891869 52886.2
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"),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 only 2 counties
temp <- list(10,"Century Bancshares - Wells Fargo 2007",
c("1-0000005636"),
panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2000,c("WELLS FARGO BANK, N.A."),2007)
mergers[[10]] <- temp
## target operated in 5 msas; small share.
temp <- list(11,"Placer Sierra Bank - Wells Fargo 2007",
c("2-0000033772"),
panel[substr(reportername,1,7)=="WELLS F"]$hmda_id,
2002,c("WELLS FARGO BANK, N.A."),2007)
mergers[[11]] <- temp
## target operated in 5 msas; small share.
temp <- list(12,"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[[12]] <- temp
temp <- list(13,"MBNA NA - BANK OF AMERICA 2005",c("1-0000024095"),c("1-0000013044"),
2003,"BANK OF AMERICA, N.A.",2005)
mergers[[13]] <- temp
temp <- list(14,"Merrill Lynch - BANK OF AMERICA 2008",c("2-0000421203","7-13-3403204","3-13-3098068","3-13-3399559"),c("1-0000013044"),
2005,"BANK OF AMERICA, N.A.",2008)
mergers[[14]] <- temp
#This is the 2nd mortgage division to be named PNC Mortgage. In 2001, PNC sold the original PNC Mortgage to Washington Mutual due to volatility in the market.[7] In 2005, PNC began outsourcing mortgages to Wells Fargo until the National City dea
temp <- list(15,"National City - PNC Bank 2007",
c("1-0000000786"),
c("1-0000001316","2-0000083311"),
2004,c("PNC BANK, N.A."),2007)
mergers[[15]] <- 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]
cbsa_bnk <- 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)]
temp[,suc:=ifelse(lender %in% suc_hmda_id,1,0)]
cw <- temp[,.(pred_share=mean(pred),suc_share=mean(suc)),by=.(cbsa)]
cw <- cw[!is.na(cbsa)]
cw[,joint_share:=pred_share+suc_share]
cw[,bank:=acname]
cw[,acyr:=acyr]
# sumtable1 <- c(mname,
# sum(temp$pred)/nrow(temp),
# nrow(cw[pred_share>0]),
# length(unique(temp[pred==1]$state)),
# quantile(cw$pred_share,0.01,na.rm=T),
# quantile(cw$pred_share,0.1,na.rm=T),
# quantile(cw$pred_share,0.25,na.rm=T),
# quantile(cw$pred_share,0.5,na.rm=T),
# quantile(cw$pred_share,0.75,na.rm=T),
# quantile(cw$pred_share,0.90,na.rm=T),
# quantile(cw$pred_share,0.99,na.rm=T))
# sumtable2 <- c("",
# sum(temp$suc)/nrow(temp),
# nrow(cw[suc_share>0]),
# length(unique(temp[suc==1]$state)),
# quantile(cw$suc_share,0.01,na.rm=T),
# quantile(cw$suc_share,0.1,na.rm=T),
# quantile(cw$suc_share,0.25,na.rm=T),
# quantile(cw$suc_share,0.5,na.rm=T),
# quantile(cw$suc_share,0.75,na.rm=T),
# quantile(cw$suc_share,0.90,na.rm=T),
# quantile(cw$suc_share,0.99,na.rm=T))
# sumtable3 <- c("",
# "",
# "",
# length(unique(temp[suc==1 | pred==1]$state)),
# quantile(cw$joint_share,0.01,na.rm=T),
# quantile(cw$joint_share,0.1,na.rm=T),
# quantile(cw$joint_share,0.25,na.rm=T),
# quantile(cw$joint_share,0.5,na.rm=T),
# quantile(cw$joint_share,0.75,na.rm=T),
# quantile(cw$joint_share,0.90,na.rm=T),
# quantile(cw$joint_share,0.99,na.rm=T))
#
# sumtable <- rbind(sumtable,sumtable1)
# sumtable <- rbind(sumtable,sumtable2)
# sumtable <- rbind(sumtable,sumtable3)
cw[,c("suc_share","joint_share"):=list(NULL)]
cbsa_bnk <- rbind(cbsa_bnk,cw)
}
# write.csv(sumtable,file="C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/merger_summaries.csv",row.names = F)
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)
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[,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_share <- cbsa_bnk[,.(msinc13=sum(msinc13,na.rm=T)),by=.(cbsa,acyr)]
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"))
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% acqbanks,bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr")
stargazer(freddie[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ======================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## ----------------------------------------------------------------------
## fico 16,245,111 748.509 395.911 695 741 776
## ltv 16,245,111 73.367 17.035 66 78 80
## dti 16,245,111 47.668 113.969 26 35 43
## orig_upb 16,245,111 189,852.800 107,056.600 111,000 165,000 245,000
## int_rt 16,245,111 5.699 1.234 4.750 5.875 6.625
## loanyr 16,245,111 2,007.242 5.630 2,003 2,006 2,012
## ----------------------------------------------------------------------
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","original_loan_term"))
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[,int_rt:=original_interest_rate]
fannie[,dti:=original_dti]
fannie[,ltv:=original_ltv]
fannie[,fico:=credit_score]
fannie[,orig_upb:= original_upb]
fannie[,c("original_interest_rate","original_dti","original_ltv","credit_score","original_upb","original_loan_term"):=list(NULL)]
fannie[,bank:=seller_name]
fannie[,bank:=ifelse(bank %in% acqbanks,bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr")
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,265,085 736.414 54.521 700.000 747.000 781.000
## ltv 20,356,584 73.223 16.210 65.000 78.000 80.000
## dti 19,932,370 34.426 11.429 26.000 35.000 42.000
## orig_upb 20,356,594 197,387.300 111,665.400 115,000 172,000 254,000
## int_rt 20,356,591 5.543 1.240 4.500 5.625 6.375
## loanyr 20,356,594 2,007.757 5.679 2,003 2,007 2,013
## ----------------------------------------------------------------------
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"))
cbsa <- fread("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Crosswalk Files/ZIP_CBSA.csv")
cbsa[,ZIP:=ifelse(nchar(ZIP)==3,paste0("00",ZIP),ifelse(nchar(ZIP)==4,paste0("0",ZIP),paste0(ZIP)))]
setorder(cbsa,ZIP,-RES_RATIO)
cbsa <- cbsa[!duplicated(cbsa[,c("ZIP")])]
cbsa[,c("RES_RATIO","BUS_RATIO","OTH_RATIO","TOT_RATIO"):=list(NULL)]
names(cbsa) <- c("zipcode","msa")
moodys <- merge(moodys,cbsa,by=c("zipcode"))
moodys <- moodys[originalterm==360 & armflag=="F"]
moodys[,loanyr:=as.numeric(substr(loanoriginationdate,1,4))]
moodys[,seller_name:= originator]
moodys[,seller_name:= ifelse(seller_name %in% c("JPMORGAN CHASE BANK, NA","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","CHASE MANHATTAN MORTGAGE CORPORATION","CHASE HOME FINANCE LLC","CHASE HOME FINANCE","CHASE HOME FINANCE, LLC","JPMORGAN CHASE BANK, NATIONAL ASSOCIATION","JPMORGAN CHASE BANK, N.A.","JP MORGAN CHASE BANK NA","CHASE MANHATTAN MORTGAGE CORP"),"JPMORGAN CHASE BANK, NA",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in% c("B OF A"),"BANK OF AMERICA, N.A.",seller_name)]
moodys[,seller_name:= ifelse(seller_name %in% c("WELLS FARGO HOME MORTGAGE, INC.","WELLS FARGO BANK, N.A.","WELLS FARGO BANK N.A"," WELLS FARGO HOME MTG, INC"),"WELLS FARGO BANK, N.A.",seller_name)]
moodys[,int_rt:=originalinterestrate]
moodys[,dti:=0]
moodys[,ltv:=originalltv]
moodys[,fico:=originalfico]
moodys[,orig_upb:= originalloanbalance]
moodys[,c("originalinterestrate","originalltv","originalfico","originalloanbalance","msacode","csacode","divcode","loanoriginationdate","armflag","originalterm"):=list(NULL)]
moodys[,fulldocumentation:=ifelse(documentationtype=="FU",1,0)]
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18521072 989.2 60297600 3220.3 29964222 1600.3
## Vcells 2948936318 22498.6 5850423137 44635.2 6931891869 52886.2
moodys[,bank:=seller_name]
moodys[,bank:=ifelse(bank %in% acqbanks,bank,"other")]
vars <- c("fico","ltv","dti","orig_upb","int_rt","loanyr","fulldocumentation")
stargazer(moodys[,..vars],type="text",summary.stat = c("N","mean","sd","p25","median","p75"))
##
## ======================================================================================
## Statistic N Mean St. Dev. Pctl(25) Median Pctl(75)
## --------------------------------------------------------------------------------------
## fico 3,931,302 681.319 69.930 632.000 684.000 737.000
## ltv 4,322,951 70.640 23.984 63.600 79.700 80.000
## dti 4,399,462 0.000 0.000 0 0 0
## orig_upb 4,398,108 232,097.600 213,490.700 84,980.000 161,000.000 332,000.000
## int_rt 4,391,198 7.441 2.059 6.250 6.890 8.400
## loanyr 4,385,059 2,004.073 3.607 2,004.000 2,005.000 2,006.000
## fulldocumentation 4,399,462 0.397 0.489 0 0 1
## --------------------------------------------------------------------------------------
\[ interest rate = inmerge_1 + inmerger_2+fico+ltv+dti+log(loanamount) +BANK*MSA\text{ }FE+YR\text{ }FE\]
\(inmerge_1\) : 1-3 years after acquision and target had 5% in MSA prior to acquisition \(inmerge_2\) : 4-6 years after acquision and target had 5% in MSA prior to acquisition
regsample <- merge(freddie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,yr_msa:=paste(loanyr,msa)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(fannie,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[2]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,msinccat13:=ifelse(msinc13<=0,"0",ifelse(msinc13<= 0.02 ,"Less than 2%",ifelse(msinc13<0.05,"Less than 5%","More than 5%")))]
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[3]] <- felm(int_rt~msinc13+msinc46+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
.printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, MSA*Yr","MSA*Bank, MSA*Yr","MSA*Bank, MSA*Yr")))
##
## ====================================================================
## Dependent variable:
## --------------------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## --------------------------------------------------------------------
## msinc13 0.798*** 0.768*** 7.835***
## (0.061) (0.056) (2.110)
## msinc46 0.480*** 0.390***
## (0.074) (0.116) (0.000)
## fico -0.00002*** -0.001*** -0.005***
## (0.00000) (0.00002) (0.0002)
## ltv 0.004*** 0.004*** -0.011***
## (0.0001) (0.0001) (0.001)
## dti 0.00003*** 0.002***
## (0.00000) (0.0001)
## fulldocumentation -0.228***
## (0.010)
## log(orig_upb) -0.221*** -0.222*** -1.052***
## (0.004) (0.008) (0.018)
## --------------------------------------------------------------------
## Fixed Effects MSA*Bank, MSA*Yr MSA*Bank, MSA*Yr MSA*Bank, MSA*Yr
## Observations 8,210,798 15,685,569 3,271,645
## Adjusted R2 0.897 0.902 0.511
## ====================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##
\[ interest rate = msinc13+fico+ltv+dti+log(loanamount) +BANKEFE+ MSA FE + YR FE\]
regsample <- merge(freddie,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"),all.x=T)
regsample[,yr_msa:=paste(loanyr,msa)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)|msa+loanyr|0|msa,data=regsample[!seller_name %in% unique(cbsa_bnk$bank)])
regsample <- merge(fannie,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"),all.x=T)
regsample[,yr_msa:=paste(loanyr,msa)]
r[[2]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)|msa+loanyr|0|msa,data=regsample[!seller_name %in% unique(cbsa_bnk$bank)])
regsample <- merge(moodys,cbsa_share,by.x=c("msa","loanyr"),by.y=c("cbsa","acyr"),all.x=T)
regsample[,yr_msa:=paste(loanyr,msa)]
r[[3]] <- felm(int_rt~msinc13+fico+ltv+log(orig_upb)|msa+loanyr|0|msa,data=regsample[!seller_name %in% unique(cbsa_bnk$bank)])
.printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA,Yr","MSA,Yr","MSA,Yr")))
##
## ======================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## ------------------------------------------------------
## msinc13 0.651*** 0.668*** -2.593***
## (0.080) (0.139) (0.647)
## fico -0.00003*** -0.001*** -0.003***
## (0.00000) (0.00002) (0.0002)
## ltv 0.004*** 0.004*** -0.008***
## (0.0001) (0.0001) (0.001)
## dti 0.00002*** 0.003***
## (0.00001) (0.0001)
## log(orig_upb) -0.210*** -0.205*** -1.369***
## (0.004) (0.006) (0.033)
## ------------------------------------------------------
## Fixed Effects MSA,Yr MSA,Yr MSA,Yr
## Observations 5,345,739 8,756,629 2,961,433
## Adjusted R2 0.904 0.912 0.408
## ======================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##