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 2089076 111.6 3909500 208.8 2933368 156.7
## Vcells 2223686899 16965.4 6908873884 52710.6 7104844214 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"))))]
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]
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]
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 38746475 2069.3 58616007 3130.5 40152965 2144.4
## Vcells 3593570659 27416.8 6908873884 52710.6 7104844214 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","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)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
r[[2]] <- felm(int_rt~newpurchase*msinc13+newpurchase*msinc46+fico+ltv+dti+log(orig_upb)+freddie|bank_msa+loanyr|0|msa,data=regsample)
r[[3]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+dti+log(orig_upb)+freddie|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
# regsample[,yr_msa:=paste(loanyr,msa)]
r[[5]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+fulldocumentation+log(orig_upb)+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
covlabs <- c("MSAcq1-3","MSAcq4-6","FICO score","Loan-to-value","Debt-to-income","Full documentation","log(Loan amount)","Freddie Mac","New purchase*MSAcq1-3","New purchase*MSAcq4-6","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("GSE Sample","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## =======================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## ---------------------------------------------------------------------------------------
## MSAcq1-3 0.770*** 0.872*** 0.498*** 1.120*** 8.386*** 11.463***
## (0.047) (0.061) (0.146) (0.171) (1.739) (1.709)
## MSAcq4-6 0.240*** 0.179*
## (0.086) (0.106)
## FICO score -0.0001*** -0.0001*** -0.00003*** -0.00003*** -0.003*** -0.003***
## (0.00001) (0.00001) (0.00000) (0.00000) (0.0001) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.004*** 0.004*** 0.017*** 0.017***
## (0.0001) (0.0001) (0.0001) (0.0001) (0.001) (0.001)
## Debt-to-income 0.0001*** 0.0001*** 0.0001*** 0.0001***
## (0.00001) (0.00001) (0.00001) (0.00001)
## Full documentation -0.224*** -0.224***
## (0.010) (0.010)
## log(Loan amount) -0.228*** -0.228*** -0.236*** -0.236*** -1.090*** -1.089***
## (0.006) (0.006) (0.005) (0.005) (0.018) (0.018)
## Freddie Mac 0.045*** 0.045*** 0.052*** 0.052***
## (0.002) (0.002) (0.003) (0.003)
## New purchase*MSAcq1-3 -0.260*** -1.504*** -7.658***
## (0.062) (0.122) (0.837)
## New purchase*MSAcq4-6 0.150
## (0.113)
## New purchase 0.025*** 0.025*** 0.015*** 0.016*** 0.123*** 0.125***
## (0.004) (0.004) (0.003) (0.003) (0.020) (0.020)
## Alt-A 0.110*** 0.110***
## (0.007) (0.007)
## Subprime 0.409*** 0.409***
## (0.014) (0.014)
## Bank*MSA Y Y Y Y Y Y
## Year Y Y Y Y Y Y
## N 23,793,279 23,793,279 13,622,426 13,622,426 3,026,530 3,026,530
## Adjusted R2 0.896 0.896 0.751 0.751 0.483 0.483
## =======================================================================================
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)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|seller_name+yr_msa|0|yr_msa,data=regsample)
r[[2]] <- felm(int_rt~newpurchase*msinc13+newpurchase*msinc46+fico+ltv+dti+log(orig_upb)+freddie|seller_name+yr_msa|0|yr_msa,data=regsample)
r[[3]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|seller_name+yr_msa|0|yr_msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+dti+log(orig_upb)+freddie|seller_name+yr_msa|0|yr_msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[5]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|seller_name+yr_msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+fulldocumentation+log(orig_upb)+factor(assettype)|seller_name+yr_msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Year*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## =======================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## ---------------------------------------------------------------------------------------
## MSAcq1-3 0.636*** 0.768*** 0.537*** 1.181*** 6.128*** 9.079***
## (0.058) (0.069) (0.080) (0.103) (0.747) (0.737)
## MSAcq4-6 0.105 0.085
## (0.076) (0.108)
## FICO score -0.0001*** -0.0001*** -0.00003*** -0.00003*** -0.003*** -0.003***
## (0.00000) (0.00000) (0.00000) (0.00000) (0.0001) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.004*** 0.004*** 0.018*** 0.018***
## (0.00004) (0.00004) (0.0001) (0.0001) (0.001) (0.001)
## Debt-to-income 0.0001*** 0.0001*** 0.0001*** 0.0001***
## (0.00000) (0.00000) (0.00000) (0.00000)
## Full documentation -0.222*** -0.222***
## (0.010) (0.010)
## log(Loan amount) -0.232*** -0.232*** -0.240*** -0.240*** -1.108*** -1.108***
## (0.002) (0.002) (0.002) (0.002) (0.018) (0.018)
## Freddie Mac 0.048*** 0.048*** 0.056*** 0.056***
## (0.003) (0.003) (0.003) (0.003)
## New purchase*MSAcq1-3 -0.344*** -1.529*** -7.559***
## (0.065) (0.102) (1.075)
## New purchase*MSAcq4-6 0.039
## (0.140)
## New purchase 0.024*** 0.025*** 0.013*** 0.014*** 0.121*** 0.123***
## (0.002) (0.002) (0.003) (0.003) (0.020) (0.021)
## Alt-A 0.111*** 0.111***
## (0.007) (0.007)
## Subprime 0.403*** 0.403***
## (0.013) (0.013)
## Year*MSA Y Y Y Y Y Y
## Bank Y Y Y Y Y Y
## N 23,793,279 23,793,279 13,622,426 13,622,426 3,026,530 3,026,530
## Adjusted R2 0.896 0.896 0.749 0.749 0.467 0.468
## =======================================================================================
regsample <- rbind(freddie,fannie)
regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,yr_msa:=paste(loanyr,msa)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample)
r[[2]] <- felm(int_rt~newpurchase*msinc13+newpurchase*msinc46+fico+ltv+dti+log(orig_upb)+freddie|bank_year+msa|0|msa,data=regsample)
r[[3]] <- felm(int_rt~msinc13+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+dti+log(orig_upb)+freddie|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[5]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(int_rt~newpurchase*msinc13+fico+ltv+fulldocumentation+log(orig_upb)+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## =======================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## ---------------------------------------------------------------------------------------
## MSAcq1-3 0.185** 0.277*** -0.179 0.418** 2.920*** 5.996***
## (0.089) (0.091) (0.152) (0.182) (0.814) (0.805)
## MSAcq4-6 -0.015 -0.031
## (0.086) (0.088)
## FICO score -0.0001*** -0.0001*** -0.00003*** -0.00003*** -0.003*** -0.003***
## (0.00001) (0.00001) (0.00000) (0.00000) (0.0001) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.004*** 0.004*** 0.017*** 0.017***
## (0.0001) (0.0001) (0.0001) (0.0001) (0.001) (0.001)
## Debt-to-income 0.0001*** 0.0001*** 0.00005*** 0.00005***
## (0.00001) (0.00001) (0.00001) (0.00001)
## Full documentation -0.215*** -0.215***
## (0.009) (0.009)
## log(Loan amount) -0.227*** -0.227*** -0.237*** -0.237*** -1.077*** -1.077***
## (0.006) (0.006) (0.005) (0.005) (0.017) (0.017)
## Freddie Mac 0.055*** 0.055*** 0.051*** 0.051***
## (0.002) (0.002) (0.003) (0.003)
## New purchase*MSAcq1-3 -0.249*** -1.428*** -7.820***
## (0.054) (0.113) (1.037)
## New purchase*MSAcq4-6 0.041
## (0.101)
## New purchase 0.020*** 0.021*** 0.012*** 0.013*** 0.145*** 0.147***
## (0.004) (0.004) (0.003) (0.003) (0.018) (0.018)
## Alt-A 0.122*** 0.122***
## (0.006) (0.006)
## Subprime 0.396*** 0.396***
## (0.014) (0.014)
## Bank*Year Y Y Y Y Y Y
## MSA Y Y Y Y Y Y
## N 23,793,279 23,793,279 13,622,426 13,622,426 3,026,530 3,026,530
## Adjusted R2 0.897 0.897 0.753 0.753 0.488 0.488
## =======================================================================================
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)]
r <- list()
r[[1]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
r[[2]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
# regsample[,yr_msa:=paste(loanyr,msa)]
r[[3]] <- felm(int_rt~factor(msinc13G)+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
covlabs <- c("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,.]","FICO score","Loan-to-value","Debt-to-income","Full documentation","log(Loan amount)","Freddie Mac","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("GSE Sample","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## ==================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## ------------------------------------------------------------------
## MSAcq1-3 (0,1] 0.051*** 0.032*** -0.017
## (0.003) (0.005) (0.022)
## MSAcq1-3 (1,5] 0.045*** 0.026*** 0.320***
## (0.004) (0.007) (0.071)
## MSAcq1-3 (5-10] 0.044*** 0.031*** 0.490***
## (0.006) (0.010) (0.119)
## MSAcq1-3 (10,.] 0.098*** 0.066 1.514***
## (0.008) (0.057) (0.384)
## MSAcq4-6 (0,1] 0.011***
## (0.004)
## MSAcq4-6 (1,5] 0.024***
## (0.006)
## MSAcq4-6 (5-10] 0.004
## (0.010)
## MSAcq4-6 (10,.] -0.001
## (0.010)
## FICO score -0.0001*** -0.00003*** -0.003***
## (0.00001) (0.00000) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.017***
## (0.0001) (0.0001) (0.001)
## Debt-to-income 0.0001*** 0.0001***
## (0.00001) (0.00001)
## Full documentation -0.223***
## (0.010)
## log(Loan amount) -0.228*** -0.236*** -1.090***
## (0.006) (0.005) (0.018)
## Freddie Mac 0.047*** 0.051***
## (0.002) (0.003)
## New purchase 0.025*** 0.015*** 0.123***
## (0.004) (0.003) (0.020)
## Alt-A 0.110***
## (0.007)
## Subprime 0.409***
## (0.014)
## Bank*MSA Y Y Y
## Year Y Y Y
## N 23,793,279 13,622,426 3,026,530
## Adjusted R2 0.896 0.751 0.483
## ==================================================================
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)]
r <- list()
r[[1]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|yr_msa+seller_name|0|msa,data=regsample)
r[[2]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|yr_msa+seller_name|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[3]] <- felm(int_rt~factor(msinc13G)+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|yr_msa+seller_name|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Year*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## ==================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## ------------------------------------------------------------------
## MSAcq1-3 (0,1] 0.049*** 0.025*** -0.006
## (0.003) (0.004) (0.019)
## MSAcq1-3 (1,5] 0.043*** 0.025*** 0.272***
## (0.003) (0.006) (0.052)
## MSAcq1-3 (5-10] 0.045*** 0.032*** 0.332***
## (0.005) (0.008) (0.054)
## MSAcq1-3 (10,.] 0.071*** 0.065*** 0.584**
## (0.006) (0.005) (0.253)
## MSAcq4-6 (0,1] 0.004
## (0.004)
## MSAcq4-6 (1,5] 0.027***
## (0.005)
## MSAcq4-6 (5-10] 0.013*
## (0.008)
## MSAcq4-6 (10,.] -0.077***
## (0.011)
## FICO score -0.0001*** -0.00003*** -0.003***
## (0.00001) (0.00000) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.018***
## (0.0001) (0.0001) (0.001)
## Debt-to-income 0.0001*** 0.0001***
## (0.00001) (0.00001)
## Full documentation -0.222***
## (0.010)
## log(Loan amount) -0.232*** -0.240*** -1.108***
## (0.006) (0.005) (0.018)
## Freddie Mac 0.049*** 0.055***
## (0.002) (0.003)
## New purchase 0.024*** 0.013*** 0.121***
## (0.004) (0.003) (0.020)
## Alt-A 0.111***
## (0.007)
## Subprime 0.403***
## (0.013)
## Year*MSA Y Y Y
## Bank Y Y Y
## N 23,793,279 13,622,426 3,026,530
## Adjusted R2 0.896 0.749 0.467
## ==================================================================
regsample <- rbind(freddie,fannie)
regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,yr_msa:=paste(loanyr,msa)]
r <- list()
r[[1]] <- felm(int_rt~factor(msinc13G)+factor(msinc46G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample)
r[[2]] <- felm(int_rt~factor(msinc13G)+fico+ltv+dti+log(orig_upb)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
r[[3]] <- felm(int_rt~factor(msinc13G)+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## ==================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## ------------------------------------------------------------------
## MSAcq1-3 (0,1] -0.029*** 0.010 0.057
## (0.010) (0.010) (0.053)
## MSAcq1-3 (1,5] -0.025** -0.011 0.119
## (0.011) (0.013) (0.088)
## MSAcq1-3 (5-10] -0.018* 0.002 0.210***
## (0.010) (0.012) (0.072)
## MSAcq1-3 (10,.] 0.007 0.043*** 0.424*
## (0.013) (0.011) (0.239)
## MSAcq4-6 (0,1] -0.005
## (0.007)
## MSAcq4-6 (1,5] -0.017**
## (0.007)
## MSAcq4-6 (5-10] -0.016
## (0.010)
## MSAcq4-6 (10,.] 0.018
## (0.013)
## FICO score -0.0001*** -0.00003*** -0.003***
## (0.00001) (0.00000) (0.0001)
## Loan-to-value 0.004*** 0.004*** 0.017***
## (0.0001) (0.0001) (0.001)
## Debt-to-income 0.0001*** 0.00005***
## (0.00001) (0.00001)
## Full documentation -0.215***
## (0.009)
## log(Loan amount) -0.227*** -0.237*** -1.077***
## (0.006) (0.005) (0.017)
## Freddie Mac 0.054*** 0.050***
## (0.002) (0.003)
## New purchase 0.020*** 0.011*** 0.145***
## (0.004) (0.003) (0.018)
## Alt-A 0.122***
## (0.006)
## Subprime 0.396***
## (0.014)
## Bank*Year Y Y Y
## MSA Y Y Y
## N 23,793,279 13,622,426 3,026,530
## Adjusted R2 0.897 0.753 0.488
## ==================================================================
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,high_suc_share:=ifelse(suc_share>0.05,1,0)]
regsample[,logoneoverfico:=log(1/fico)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
covlabs <- c("MSAcq1-3","FICO score","Loan-to-value","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("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## ================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## ------------------------------------------------
## MSAcq1-3 0.001 7.273*** 58.195***
## (0.700) (2.008) (5.228)
## FICO score -0.002*** -0.003*** -0.004***
## (0.0001) (0.0002) (0.0002)
## Loan-to-value 0.013*** 0.022*** 0.022***
## (0.001) (0.001) (0.001)
## Full documentation -0.149*** -0.350*** -0.297***
## (0.010) (0.015) (0.015)
## log(Loan amount) -0.744*** -1.321*** -1.689***
## (0.016) (0.031) (0.033)
## New purchase 0.083*** 0.163*** 0.206***
## (0.012) (0.021) (0.033)
## Bank*MSA Y Y Y
## Year Y Y Y
## N 1,509,016 524,470 530,678
## Adjusted R2 0.512 0.486 0.381
## ================================================
r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
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*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## ================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## ------------------------------------------------
## MSAcq1-3 1.966*** 7.158*** 13.057***
## (0.725) (1.267) (2.083)
## FICO score -0.002*** -0.003*** -0.003***
## (0.0001) (0.0001) (0.0002)
## Loan-to-value 0.013*** 0.023*** 0.022***
## (0.0004) (0.001) (0.001)
## Full documentation -0.155*** -0.351*** -0.294***
## (0.008) (0.012) (0.013)
## log(Loan amount) -0.763*** -1.344*** -1.691***
## (0.019) (0.034) (0.028)
## New purchase 0.077*** 0.165*** 0.204***
## (0.009) (0.014) (0.021)
## Year*MSA Y Y Y
## Bank Y Y Y
## N 1,509,016 524,470 530,678
## Adjusted R2 0.487 0.466 0.367
## ================================================
r <- list()
r[[1]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(int_rt~msinc13+fico+ltv+fulldocumentation+log(orig_upb)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
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("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## ================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## ------------------------------------------------
## MSAcq1-3 1.395 4.364*** 1.477
## (0.878) (1.336) (1.439)
## FICO score -0.002*** -0.003*** -0.004***
## (0.0001) (0.0002) (0.0002)
## Loan-to-value 0.013*** 0.022*** 0.023***
## (0.0004) (0.001) (0.001)
## Full documentation -0.149*** -0.345*** -0.318***
## (0.008) (0.013) (0.013)
## log(Loan amount) -0.737*** -1.318*** -1.656***
## (0.020) (0.035) (0.028)
## New purchase 0.091*** 0.173*** 0.207***
## (0.008) (0.013) (0.021)
## Bank*Year Y Y Y
## MSA Y Y Y
## N 1,509,016 524,470 530,678
## Adjusted R2 0.510 0.483 0.394
## ================================================
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[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+fico+ltv+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~newpurchase*msinc13+newpurchase*msinc46+fico+ltv+dti+log(homevalue)+freddie|bank_msa+loanyr|0|msa,data=regsample)
r[[3]] <- felm(log(orig_upb)~msinc13+fico+ltv+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+ltv+dti+log(homevalue)+freddie|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[5]] <- felm(log(orig_upb)~msinc13+fico+ltv+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+ltv+fulldocumentation+log(homevalue)+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
covlabs <- c("MSAcq1-3","MSAcq4-6","FICO score","Debt-to-income","Full documentation","log(Home value)","Freddie Mac","New purchase*MSAcq1-3","New purchase*MSAcq4-6","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("GSE Sample","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## =============================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## ---------------------------------------------------------------------------------------------
## MSAcq1-3 -0.004 -0.132*** 0.008 -0.054** 2.639*** 0.399
## (0.014) (0.019) (0.022) (0.025) (0.322) (0.413)
## MSAcq4-6 -0.040** -0.180***
## (0.016) (0.021)
## FICO score -0.00000*** -0.00000*** -0.00000*** -0.00000*** 0.0003*** 0.0003***
## (0.00000) (0.00000) (0.00000) (0.00000) (0.00002) (0.00002)
## Debt-to-income 0.015*** 0.015*** 0.015*** 0.015*** 0.006*** 0.006***
## (0.0002) (0.0002) (0.0002) (0.0002) (0.0004) (0.0004)
## Full documentation 0.00001*** 0.00001*** 0.00001*** 0.00001***
## (0.00000) (0.00000) (0.00000) (0.00000)
## log(Home value) 0.010*** 0.010***
## (0.003) (0.003)
## Freddie Mac 0.964*** 0.964*** 0.968*** 0.968*** 0.903*** 0.903***
## (0.002) (0.002) (0.002) (0.002) (0.004) (0.004)
## New purchase*MSAcq1-3 -0.008*** -0.008*** -0.008*** -0.008***
## (0.0004) (0.0004) (0.0004) (0.0004)
## New purchase*MSAcq4-6 0.345*** 0.151*** 5.573***
## (0.027) (0.022) (0.460)
## New purchase 0.399***
## (0.036)
## Alt-A -0.016*** -0.018*** -0.021*** -0.022*** -0.145*** -0.146***
## (0.001) (0.001) (0.002) (0.002) (0.006) (0.006)
## Subprime -0.074*** -0.074***
## (0.003) (0.003)
## factor(assettype)Subprime -0.007 -0.006
## (0.005) (0.005)
## Bank*MSA Y Y Y Y Y Y
## Year Y Y Y Y Y Y
## N 23,793,274 23,793,274 13,622,421 13,622,421 3,026,562 3,026,562
## Adjusted R2 0.967 0.967 0.956 0.956 0.764 0.764
## =============================================================================================
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[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+fico+dti+log(homevalue)+freddie+newpurchase|seller_name+yr_msa|0|yr_msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~newpurchase*msinc13+newpurchase*msinc46+fico+dti+log(homevalue)+freddie|seller_name+yr_msa|0|yr_msa,data=regsample)
r[[3]] <- felm(log(orig_upb)~msinc13+fico+dti+log(homevalue)+freddie+newpurchase|seller_name+yr_msa|0|yr_msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+dti+log(homevalue)+freddie|seller_name+yr_msa|0|yr_msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[5]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|seller_name+yr_msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+fulldocumentation+log(homevalue)+factor(assettype)|seller_name+yr_msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Year*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## =========================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## -----------------------------------------------------------------------------------------
## MSAcq1-3 0.038* -0.036 0.062* 0.128** 0.719** -1.404***
## (0.020) (0.032) (0.033) (0.064) (0.290) (0.443)
## MSAcq4-6 -0.197*** -0.371***
## (0.033) (0.046)
## FICO score -0.00003*** -0.00003*** -0.00003*** -0.00003*** 0.0004*** 0.0004***
## (0.00000) (0.00000) (0.00000) (0.00000) (0.00002) (0.00002)
## Debt-to-income 0.00003*** 0.00003*** 0.00002*** 0.00002***
## (0.00000) (0.00000) (0.00000) (0.00000)
## Full documentation 0.038*** 0.038***
## (0.003) (0.003)
## log(Home value) 0.841*** 0.842*** 0.826*** 0.826*** 0.838*** 0.838***
## (0.003) (0.003) (0.004) (0.004) (0.005) (0.005)
## Freddie Mac -0.014*** -0.014*** -0.009*** -0.009***
## (0.001) (0.001) (0.001) (0.001)
## New purchase*MSAcq1-3 0.204*** -0.158 5.436***
## (0.061) (0.114) (0.466)
## New purchase*MSAcq4-6 0.487***
## (0.055)
## New purchase 0.130*** 0.129*** 0.110*** 0.110*** -0.093*** -0.094***
## (0.001) (0.001) (0.002) (0.002) (0.010) (0.010)
## Alt-A -0.087*** -0.087***
## (0.004) (0.004)
## Subprime -0.035*** -0.035***
## (0.005) (0.005)
## Year*MSA Y Y Y Y Y Y
## Bank Y Y Y Y Y Y
## N 23,889,212 23,889,212 13,718,103 13,718,103 3,272,969 3,272,969
## Adjusted R2 0.817 0.817 0.778 0.778 0.743 0.743
## =========================================================================================
regsample <- rbind(freddie,fannie)
regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+msinc46+fico+dti+log(homevalue)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~newpurchase*msinc13+newpurchase*msinc46+fico+dti+log(homevalue)+freddie|bank_year+msa|0|msa,data=regsample)
r[[3]] <- felm(log(orig_upb)~msinc13+fico+dti+log(homevalue)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
r[[4]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+dti+log(homevalue)+freddie|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[5]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
r[[6]] <- felm(log(orig_upb)~newpurchase*msinc13+fico+fulldocumentation+log(homevalue)+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(2,2,2),
add.lines = list(c("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## =========================================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3) (4) (5) (6)
## -----------------------------------------------------------------------------------------
## MSAcq1-3 -0.010 -0.061 0.295*** 0.362*** -0.247 -2.290***
## (0.039) (0.040) (0.073) (0.096) (0.153) (0.284)
## MSAcq4-6 0.067 -0.087
## (0.047) (0.058)
## FICO score -0.00003*** -0.00003*** -0.00002*** -0.00002*** 0.0003*** 0.0003***
## (0.00000) (0.00000) (0.00000) (0.00000) (0.00002) (0.00002)
## Debt-to-income 0.00003*** 0.00003*** 0.00002*** 0.00002***
## (0.00001) (0.00001) (0.00001) (0.00001)
## Full documentation 0.043*** 0.043***
## (0.002) (0.002)
## log(Home value) 0.841*** 0.841*** 0.822*** 0.822*** 0.844*** 0.844***
## (0.010) (0.010) (0.010) (0.010) (0.004) (0.004)
## Freddie Mac -0.017*** -0.017*** -0.009*** -0.009***
## (0.001) (0.001) (0.002) (0.002)
## New purchase*MSAcq1-3 0.142** -0.159 5.194***
## (0.066) (0.116) (0.437)
## New purchase*MSAcq4-6 0.414***
## (0.067)
## New purchase 0.131*** 0.130*** 0.112*** 0.112*** -0.080*** -0.081***
## (0.003) (0.003) (0.004) (0.004) (0.009) (0.009)
## Alt-A -0.085*** -0.085***
## (0.004) (0.004)
## Subprime -0.035*** -0.035***
## (0.005) (0.005)
## Bank*Year Y Y Y Y Y Y
## MSA Y Y Y Y Y Y
## N 23,889,212 23,889,212 13,718,103 13,718,103 3,272,969 3,272,969
## Adjusted R2 0.815 0.815 0.777 0.777 0.754 0.754
## =========================================================================================
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[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_msa+loanyr|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
# regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[3]] <- felm(log(orig_upb)~factor(msinc13G)+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F"])
covlabs <- c("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,.]","FICO score","Debt-to-income","Full documentation","log(Home value)","Freddie Mac","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("GSE Sample","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## ===================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## -------------------------------------------------------------------
## MSAcq1-3 (0,1] 0.003 0.002 0.011
## (0.002) (0.003) (0.007)
## MSAcq1-3 (1,5] 0.002 0.002 0.126***
## (0.003) (0.003) (0.018)
## MSAcq1-3 (5-10] 0.010* 0.009* 0.113***
## (0.006) (0.005) (0.031)
## MSAcq1-3 (10,.] 0.001 0.007 0.320***
## (0.008) (0.024) (0.026)
## MSAcq4-6 (0,1] 0.001
## (0.003)
## MSAcq4-6 (1,5] 0.007***
## (0.002)
## MSAcq4-6 (5-10] -0.005
## (0.006)
## MSAcq4-6 (10,.] -0.039***
## (0.014)
## FICO score -0.00003*** -0.00003*** 0.0004***
## (0.00000) (0.00000) (0.00002)
## Debt-to-income 0.00003*** 0.00002***
## (0.00001) (0.00001)
## Full documentation 0.037***
## (0.003)
## log(Home value) 0.840*** 0.822*** 0.838***
## (0.010) (0.010) (0.005)
## Freddie Mac -0.014*** -0.009***
## (0.001) (0.001)
## New purchase 0.131*** 0.112*** -0.086***
## (0.003) (0.004) (0.010)
## Alt-A -0.083***
## (0.004)
## Subprime -0.034***
## (0.005)
## Bank*MSA Y Y Y
## Year Y Y Y
## N 23,889,212 13,718,103 3,272,969
## Adjusted R2 0.816 0.778 0.748
## ===================================================================
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[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(homevalue)+freddie+newpurchase|yr_msa+seller_name|0|msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+fico+dti+log(homevalue)+freddie+newpurchase|yr_msa+seller_name|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[3]] <- felm(log(orig_upb)~factor(msinc13G)+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|yr_msa+seller_name|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Year*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## ===================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## -------------------------------------------------------------------
## MSAcq1-3 (0,1] 0.002*** 0.004*** 0.025***
## (0.001) (0.001) (0.008)
## MSAcq1-3 (1,5] 0.005*** 0.004 0.065***
## (0.001) (0.002) (0.017)
## MSAcq1-3 (5-10] 0.003 0.006 0.058***
## (0.003) (0.003) (0.015)
## MSAcq1-3 (10,.] 0.001 -0.009 -0.006
## (0.003) (0.029) (0.084)
## MSAcq4-6 (0,1] -0.002
## (0.002)
## MSAcq4-6 (1,5] -0.0002
## (0.002)
## MSAcq4-6 (5-10] -0.008*
## (0.005)
## MSAcq4-6 (10,.] -0.067***
## (0.008)
## FICO score -0.00003*** -0.00003*** 0.0004***
## (0.00000) (0.00000) (0.00002)
## Debt-to-income 0.00003*** 0.00002***
## (0.00001) (0.00001)
## Full documentation 0.038***
## (0.003)
## log(Home value) 0.841*** 0.826*** 0.838***
## (0.010) (0.010) (0.005)
## Freddie Mac -0.014*** -0.009***
## (0.001) (0.001)
## New purchase 0.130*** 0.110*** -0.093***
## (0.003) (0.004) (0.010)
## Alt-A -0.087***
## (0.004)
## Subprime -0.035***
## (0.005)
## Year*MSA Y Y Y
## Bank Y Y Y
## N 23,889,212 13,718,103 3,272,969
## Adjusted R2 0.817 0.778 0.743
## ===================================================================
regsample <- rbind(freddie,fannie)
regsample <- merge(regsample,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~factor(msinc13G)+factor(msinc46G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample)
r[[2]] <- felm(log(orig_upb)~factor(msinc13G)+fico+dti+log(homevalue)+freddie+newpurchase|bank_year+msa|0|msa,data=regsample[loanyr<=2007])
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r[[3]] <- felm(log(orig_upb)~factor(msinc13G)+fico+fulldocumentation+log(homevalue)+newpurchase+factor(assettype)|bank_year+msa|0|msa,data=regsample[originalterm==360 & armflag=="F"])
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","GSE Sample (<2008)","Non-agency sample"),column.separate=c(1,1,1),
add.lines = list(c("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## ===================================================================
## GSE Sample GSE Sample (<2008) Non-agency sample
## (1) (2) (3)
## -------------------------------------------------------------------
## MSAcq1-3 (0,1] 0.007 0.003 0.006
## (0.006) (0.005) (0.033)
## MSAcq1-3 (1,5] 0.003 0.011* -0.004
## (0.005) (0.006) (0.034)
## MSAcq1-3 (5-10] 0.007 0.023*** -0.012
## (0.007) (0.007) (0.033)
## MSAcq1-3 (10,.] -0.008 0.012 -0.100
## (0.008) (0.027) (0.073)
## MSAcq4-6 (0,1] 0.017***
## (0.005)
## MSAcq4-6 (1,5] 0.019***
## (0.004)
## MSAcq4-6 (5-10] 0.018***
## (0.006)
## MSAcq4-6 (10,.] 0.026**
## (0.012)
## FICO score -0.00003*** -0.00002*** 0.0003***
## (0.00000) (0.00000) (0.00002)
## Debt-to-income 0.00003*** 0.00002***
## (0.00001) (0.00001)
## Full documentation 0.043***
## (0.002)
## log(Home value) 0.841*** 0.822*** 0.844***
## (0.010) (0.010) (0.004)
## Freddie Mac -0.017*** -0.009***
## (0.001) (0.002)
## New purchase 0.131*** 0.112*** -0.080***
## (0.003) (0.004) (0.009)
## Alt-A -0.085***
## (0.004)
## Subprime -0.035***
## (0.005)
## Bank*Year Y Y Y
## MSA Y Y Y
## N 23,889,212 13,718,103 3,272,969
## Adjusted R2 0.815 0.777 0.754
## ===================================================================
regsample <- merge(moodys,cbsa_bnk,by.x=c("bank","msa","loanyr"),by.y=c("bank","cbsa","acyr"))
regsample[,bank_msa:=paste(seller_name,msa)]
regsample[,homevalue:= orig_upb*100/ltvorg]
regsample[,assettype:=ifelse(assettype=="Prime","0Prime",assettype)]
regsample[,high_suc_share:=ifelse(suc_share>0.05,1,0)]
regsample[,logoneoverfico:=log(1/fico)]
regsample[,yr_msa:=paste(loanyr,msa)]
regsample[,bank_year:=paste(seller_name,loanyr)]
regsample[,homevalue:= orig_upb*100/ltvorg]
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_msa+loanyr|0|msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
covlabs <- c("MSAcq1-3","FICO score","Full documentation","log(Home value)","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("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))))
##
## ==================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## --------------------------------------------------
## MSAcq1-3 1.401*** 6.392*** -1.625***
## (0.503) (0.697) (0.523)
## FICO score 0.0001** -0.0004*** -0.0005***
## (0.00002) (0.0001) (0.0001)
## Full documentation 0.044*** 0.078*** -0.046***
## (0.002) (0.004) (0.004)
## log(Home value) 0.891*** 0.854*** 0.830***
## (0.006) (0.004) (0.006)
## New purchase 0.037*** -0.167*** -0.296***
## (0.008) (0.008) (0.011)
## Bank*MSA Y Y Y
## Year Y Y Y
## N 1,560,476 535,050 538,243
## Adjusted R2 0.801 0.656 0.640
## ==================================================
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|yr_msa+seller_name|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
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*MSA", rep("Y",6)),c("Bank", rep("Y",6))))
##
## ==================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## --------------------------------------------------
## MSAcq1-3 0.472 2.031*** -0.272
## (0.384) (0.388) (0.315)
## FICO score 0.0001** -0.0004*** -0.0005***
## (0.00003) (0.0001) (0.0001)
## Full documentation 0.047*** 0.077*** -0.048***
## (0.002) (0.003) (0.004)
## log(Home value) 0.891*** 0.855*** 0.831***
## (0.003) (0.003) (0.005)
## New purchase 0.031*** -0.175*** -0.301***
## (0.005) (0.010) (0.009)
## Year*MSA Y Y Y
## Bank Y Y Y
## N 1,560,476 535,050 538,243
## Adjusted R2 0.798 0.651 0.636
## ==================================================
r <- list()
r[[1]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="0Prime" & documentationtype %in% c("FU","NO","LO")])
r[[2]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Alt-A" & documentationtype %in% c("FU","NO","LO")])
r[[3]] <- felm(log(orig_upb)~msinc13+fico+fulldocumentation+log(homevalue)+newpurchase|bank_year+msa|0|yr_msa,data=regsample[originalterm==360 & armflag=="F" & assettype=="Subprime" & documentationtype %in% c("FU","NO","LO")])
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("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))))
##
## ==================================================
## Prime Alt-A Subprime
## (1) (2) (3)
## --------------------------------------------------
## MSAcq1-3 0.034 -0.147 0.801**
## (0.136) (0.400) (0.339)
## FICO score 0.00001 -0.0004*** -0.0003***
## (0.00003) (0.0001) (0.0001)
## Full documentation 0.043*** 0.068*** -0.045***
## (0.002) (0.003) (0.004)
## log(Home value) 0.900*** 0.857*** 0.823***
## (0.003) (0.003) (0.005)
## New purchase 0.040*** -0.159*** -0.293***
## (0.005) (0.010) (0.009)
## Bank*Year Y Y Y
## MSA Y Y Y
## N 1,560,476 535,050 538,243
## Adjusted R2 0.810 0.668 0.645
## ==================================================
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)]
hmda[,bank_yr:=paste(bank,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))]
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 white 27,598,083 0.608
## 2 na 6,070,242 0.134
## 3 hispanic 5,371,900 0.118
## 4 asian 3,140,842 0.069
## 5 black 3,055,700 0.067
## 6 native 182,635 0.004
## ---------------------------
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 white 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 419,495 0.030
## 6 native 55,989 0.004
## --------------------------
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate|0|msa,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_msa+asofdate|0|msa,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_msa+asofdate|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_msa+asofdate|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
covlabs <- c("MSInc1-3","Low income","MSInc4-6","log(Income '000)","log(Loan amount '000)","MSInc1-3*Black","MSInc1-3*Hispanic","MSInc1-3*Asian/Other","MSInc4-6*Black","MSInc4-6*Hispanic","MSInc4-6*Asian/Other","Black","Hispanic","Asian/Other","MSInc1-3*Low income","MSInc4-6*Low income")
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",
column.labels=c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))),
covariate.labels = covlabs)
##
## ==========================================================================================
## Conventional FHA Conventional FHA Conventional FHA
## (1) (2) (3) (4) (5) (6)
## ------------------------------------------------------------------------------------------
## MSInc1-3 0.651*** -0.541*** 0.675*** -0.279*** 0.589*** -0.326***
## (0.050) (0.050) (0.053) (0.054) (0.053) (0.052)
## Low income -0.032*** -0.025***
## (0.001) (0.002)
## MSInc4-6 1.144*** -0.686*** 1.599*** -0.253* 1.233*** -0.405***
## (0.190) (0.136) (0.230) (0.142) (0.161) (0.120)
## log(Income '000) 0.035*** 0.070*** 0.035*** 0.070***
## (0.001) (0.002) (0.001) (0.002)
## log(Loan amount '000) -0.002* 0.004 0.005*** 0.043*** -0.002** 0.003
## (0.001) (0.002) (0.001) (0.002) (0.001) (0.002)
## MSInc1-3*Black 0.062 -0.549***
## (0.131) (0.079)
## MSInc1-3*Hispanic -0.402** -0.644***
## (0.160) (0.077)
## MSInc1-3*Asian/Other 0.302*** -0.094
## (0.044) (0.073)
## MSInc4-6*Black -1.371*** -0.587***
## (0.232) (0.195)
## MSInc4-6*Hispanic -1.801*** -0.886***
## (0.297) (0.217)
## MSInc4-6*Asian/Other 0.284 -0.567***
## (0.189) (0.157)
## Black -0.100*** -0.075*** -0.102*** -0.079*** -0.099*** -0.074***
## (0.003) (0.002) (0.003) (0.002) (0.003) (0.002)
## Hispanic -0.053*** -0.039*** -0.055*** -0.046*** -0.052*** -0.038***
## (0.002) (0.001) (0.002) (0.002) (0.002) (0.001)
## Asian/Other -0.053*** -0.054*** -0.053*** -0.057*** -0.053*** -0.054***
## (0.002) (0.002) (0.002) (0.002) (0.002) (0.002)
## MSInc1-3*Low income -0.125** -0.431***
## (0.055) (0.058)
## MSInc4-6*Low income -1.259*** -0.637***
## (0.188) (0.124)
## Bank*MSA Y Y Y Y Y Y
## Year 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.161 0.109 0.160 0.106 0.161 0.109
## ==========================================================================================
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|msa_yr+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|msa_yr+bank|0|msa,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|msa_yr+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|msa_yr+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|msa_yr+bank|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|msa_yr+bank|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
covlabs <- c("MSInc1-3","Low income","MSInc4-6","log(Income '000)","log(Loan amount '000)","MSInc1-3*Black","MSInc1-3*Hispanic","MSInc1-3*Asian/Other","MSInc4-6*Black","MSInc4-6*Hispanic","MSInc4-6*Asian/Other","Black","Hispanic","Asian/Other","MSInc1-3*Low income","MSInc4-6*Low income")
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",
column.labels=c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),
add.lines = list(c("Bank*MSA", rep("Y",6)),c("Year", rep("Y",6))),
covariate.labels = covlabs)
##
## ==========================================================================================
## Conventional FHA Conventional FHA Conventional FHA
## (1) (2) (3) (4) (5) (6)
## ------------------------------------------------------------------------------------------
## MSInc1-3 0.496*** -0.546*** 0.544*** -0.316*** 0.422*** -0.320***
## (0.047) (0.056) (0.046) (0.063) (0.048) (0.063)
## Low income -0.034*** -0.025***
## (0.001) (0.002)
## MSInc4-6 0.912*** -0.259*** 1.378*** 0.097 0.997*** -0.015
## (0.145) (0.097) (0.186) (0.097) (0.121) (0.084)
## log(Income '000) 0.037*** 0.070*** 0.037*** 0.070***
## (0.001) (0.002) (0.001) (0.002)
## log(Loan amount '000) -0.002* 0.003 0.005*** 0.043*** -0.002* 0.003
## (0.001) (0.002) (0.001) (0.002) (0.001) (0.002)
## MSInc1-3*Black 0.164 -0.577***
## (0.139) (0.093)
## MSInc1-3*Hispanic -0.388** -0.675***
## (0.166) (0.097)
## MSInc1-3*Asian/Other 0.352*** -0.117
## (0.037) (0.078)
## MSInc4-6*Black -1.119*** -0.509**
## (0.220) (0.209)
## MSInc4-6*Hispanic -1.785*** -1.040***
## (0.259) (0.301)
## MSInc4-6*Asian/Other 0.272 -0.520***
## (0.178) (0.163)
## Black -0.106*** -0.078*** -0.108*** -0.081*** -0.106*** -0.077***
## (0.003) (0.002) (0.003) (0.002) (0.003) (0.002)
## Hispanic -0.052*** -0.039*** -0.055*** -0.046*** -0.051*** -0.037***
## (0.002) (0.001) (0.002) (0.002) (0.002) (0.001)
## Asian/Other -0.056*** -0.057*** -0.056*** -0.060*** -0.056*** -0.057***
## (0.002) (0.002) (0.002) (0.002) (0.002) (0.002)
## MSInc1-3*Low income -0.144** -0.379***
## (0.058) (0.057)
## MSInc4-6*Low income -1.257*** -0.526***
## (0.189) (0.108)
## Bank*MSA Y Y Y Y Y Y
## Year 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.149 0.095 0.148 0.091 0.149 0.095
## ==========================================================================================
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_yr+asofdate|0|msa,data=hmda[actiontaken<=3 & typeofloan==1])
r[[2]] <- felm(approved~msinc13+msinc46+log(applicantincome)+log(amountofloan)+factor(race)|bank_yr+asofdate|0|msa,data=hmda[actiontaken<=3 & typeofloan==2])
r[[3]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_yr+asofdate|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[4]] <- felm(approved~msinc13*lowincome+msinc46*lowincome+log(amountofloan)+factor(race)|bank_yr+asofdate|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
r[[5]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_yr+asofdate|0|msa,data=hmda[typeofloan==1 & actiontaken<=3])
r[[6]] <- felm(approved~msinc13*factor(race)+msinc46*factor(race)+log(applicantincome)+log(amountofloan)|bank_yr+asofdate|0|msa,data=hmda[typeofloan==2 & actiontaken<=3])
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",
column.labels=c("Conventional","FHA","Conventional","FHA","Conventional","FHA"),
add.lines = list(c("Bank*Year", rep("Y",6)),c("MSA", rep("Y",6))),
covariate.labels = covlabs)
##
## ==========================================================================================
## Conventional FHA Conventional FHA Conventional FHA
## (1) (2) (3) (4) (5) (6)
## ------------------------------------------------------------------------------------------
## MSInc1-3 -0.007 -0.425*** 0.018 -0.233 -0.011 -0.205
## (0.096) (0.162) (0.096) (0.162) (0.097) (0.157)
## Low income -0.029*** -0.025***
## (0.001) (0.002)
## MSInc4-6 0.348** 0.350* 0.753*** 0.570** 0.490*** 0.571***
## (0.159) (0.186) (0.142) (0.256) (0.165) (0.149)
## log(Income '000) 0.032*** 0.070*** 0.032*** 0.070***
## (0.001) (0.002) (0.001) (0.002)
## log(Loan amount '000) -0.005*** -0.014*** 0.001 0.023*** -0.005*** -0.014***
## (0.002) (0.004) (0.002) (0.004) (0.002) (0.004)
## MSInc1-3*Black -0.067 -0.605***
## (0.175) (0.100)
## MSInc1-3*Hispanic -0.531*** -0.693***
## (0.181) (0.109)
## MSInc1-3*Asian/Other 0.274*** -0.103
## (0.092) (0.078)
## MSInc4-6*Black -1.337*** -0.681***
## (0.225) (0.189)
## MSInc4-6*Hispanic -2.069*** -0.920***
## (0.403) (0.344)
## MSInc4-6*Asian/Other 0.005 -0.543***
## (0.102) (0.200)
## Black -0.103*** -0.083*** -0.105*** -0.087*** -0.103*** -0.081***
## (0.004) (0.003) (0.004) (0.003) (0.004) (0.003)
## Hispanic -0.063*** -0.049*** -0.065*** -0.056*** -0.062*** -0.048***
## (0.002) (0.002) (0.002) (0.002) (0.002) (0.002)
## Asian/Other -0.059*** -0.061*** -0.059*** -0.063*** -0.059*** -0.060***
## (0.002) (0.002) (0.002) (0.002) (0.002) (0.002)
## MSInc1-3*Low income -0.095 -0.333***
## (0.094) (0.058)
## MSInc4-6*Low income -1.079*** -0.328**
## (0.138) (0.163)
## Bank*Year Y Y Y Y Y Y
## MSA 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.165 0.109 0.164 0.105 0.165 0.109
## ==========================================================================================