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()
#
#
#
# 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
# lender_bank <- 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)
#
# a <- data.frame(lender=mergers[[i]][4][[1]],bank=rep(mergers[[i]][6][[1]],length(mergers[[i]][4][[1]])))
# if(is.null(lender_bank)) {
# lender_bank <- a
# } else {
# lender_bank <- rbind(lender_bank,a)
# }
# }
#
# lender_bank <- lender_bank[!duplicated(lender_bank),]
# write_fst(lender_bank,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/lender_bank.fst",compress = 100)
#
# # 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)]
#
# write_fst(cbsa_bnk,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_bnk.fst",compress = 100)
#
# write_fst(cbsa_share,"C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share.fst",compress = 100)
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[,msinc46Q:=ifelse(msinc46<=0.0001,"Q0",
ifelse(msinc46<0.0027235,"Q1",
ifelse(msinc46<0.0112596,"Q2",
ifelse(msinc46<0.0366354,"Q3","Q4"))))]
#
cbsa_share<- read_fst("C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Projects/Bank Mergers/data/cbsa_share.fst",as.data.table = T)
freddie <- list.files(pattern="*.fst",path = "C:/Users/dratnadiwakara2/Documents/OneDrive - Louisiana State University/Raw Data/Freddie/Acq",full.names = TRUE)
freddie = lapply(freddie, read_fst,as.data.table=T, columns = c("fico","dt_first_pi","cd_msa","ltv","dti","orig_upb","int_rt","prop_type","zipcode","id_loan","orig_loan_term","seller_name"))
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")]
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% unique(cbsa_bnk$bank),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 18500326 988.1 51994801 2776.9 28891643 1543.0
## Vcells 479428024 3657.8 1157395472 8830.3 1156501419 8823.5
moodys[,bank:=seller_name]
moodys[,bank:=ifelse(bank %in% unique(cbsa_bnk$bank),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()
r2 <- list()
r3 <- list()
r[[1]] <- felm(int_rt~msinc13+msinc46+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r2[[1]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)++fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[1]] <- felm(int_rt~factor(msinc13Q)+factor(msinc46Q)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18647729 995.9 51994801 2776.9 28891643 1543.0
## Vcells 1272584851 9709.1 2001310059 15268.8 1692170167 12910.3
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)
r2[[2]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[2]] <- felm(int_rt~factor(msinc13Q)+factor(msinc46Q)+fico+ltv+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18662984 996.8 51994801 2776.9 28891643 1543.0
## Vcells 2696783100 20574.9 4150345976 31664.7 3444420868 26278.9
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)
r2[[3]] <- felm(int_rt~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[3]] <- felm(int_rt~factor(msinc13Q)+fico+ltv+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18720167 999.8 51994801 2776.9 28891643 1543.0
## Vcells 2643127779 20165.5 4150345976 31664.7 4080721682 31133.5
.printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, 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, Yr MSA*Bank, Yr MSA*Bank, 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
##
.printtable(r2,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
##
## ==========================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## ----------------------------------------------------------
## msinc13 0.773*** 1.147*** 9.269**
## (0.158) (0.257) (4.597)
## I(msinc132) 0.330 -4.464* -29.220
## (1.519) (2.592) (70.072)
## msinc46 0.295 0.219
## (0.231) (0.399) (0.000)
## I(msinc462) 2.196 3.036
## (2.243) (6.120) (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, Yr MSA*Bank, Yr MSA*Bank, 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
##
.printtable(r3,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
##
## ===========================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## -----------------------------------------------------------
## factor(msinc13Q)Q1 0.042*** 0.042*** -0.199***
## (0.005) (0.006) (0.022)
## factor(msinc13Q)Q2 0.025*** 0.082*** 0.060
## (0.005) (0.005) (0.086)
## factor(msinc13Q)Q3 0.010* 0.035*** 0.356***
## (0.005) (0.009) (0.093)
## factor(msinc13Q)Q4 0.060*** 0.048*** 0.249
## (0.006) (0.010) (0.168)
## factor(msinc46Q)Q1 0.025*** -0.001
## (0.006) (0.008)
## factor(msinc46Q)Q2 0.007 0.030***
## (0.008) (0.007)
## factor(msinc46Q)Q3 0.010 0.014
## (0.011) (0.009)
## factor(msinc46Q)Q4 0.043*** 0.022***
## (0.007) (0.007)
## 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.227***
## (0.010)
## log(orig_upb) -0.221*** -0.222*** -1.051***
## (0.004) (0.008) (0.018)
## -----------------------------------------------------------
## Fixed Effects MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, 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
##
rm(r)
rm(r1)
rm(r2)
rm(regsample)
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18719004 999.8 51994801 2776.9 28891643 1543.0
## Vcells 1216934735 9284.5 3320276781 25331.8 4080721682 31133.5
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()
r2 <- list()
r3 <- list()
r[[1]] <- felm(I(ltv/100)~msinc13+msinc46+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r2[[1]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[1]] <- felm(I(ltv/100)~factor(msinc13Q)+factor(msinc46Q)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18652320 996.2 51994801 2776.9 28891643 1543.0
## Vcells 1235647085 9427.3 3320276781 25331.8 4080721682 31133.5
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(I(ltv/100)~msinc13+msinc46+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r2[[2]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[2]] <- felm(I(ltv/100)~factor(msinc13Q)+factor(msinc46Q)+fico+dti+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18667620 997.0 51994801 2776.9 28891643 1543.0
## Vcells 2589260162 19754.5 3984412137 30398.7 4080721682 31133.5
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(I(ltv/100)~msinc13+msinc46+fico+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r2[[3]] <- felm(I(ltv/100)~msinc13+I(msinc13^2)+msinc46+I(msinc46^2)+fico+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
r3[[3]] <- felm(I(ltv/100)~factor(msinc13Q)+fico+fulldocumentation+log(orig_upb)|bank_msa+loanyr|0|msa,data=regsample)
gc(verbose = F)
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 18724856 1000.1 51994801 2776.9 28891643 1543.0
## Vcells 2516056745 19196.0 3984412137 30398.7 4080721682 31133.5
.printtable(r,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
##
## ==========================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## ----------------------------------------------------------
## msinc13 0.034 0.057* -0.446***
## (0.032) (0.034) (0.116)
## msinc46 -0.299*** -0.053
## (0.041) (0.055) (0.000)
## fico -0.00001*** -0.0003*** -0.0003***
## (0.00000) (0.00002) (0.00001)
## dti -0.00001*** 0.001***
## (0.00000) (0.00004)
## fulldocumentation 0.012***
## (0.002)
## log(orig_upb) 0.070*** 0.075*** 0.137***
## (0.004) (0.005) (0.004)
## ----------------------------------------------------------
## Fixed Effects MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations 8,210,798 15,685,571 3,272,882
## Adjusted R2 0.147 0.212 0.291
## ==========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##
.printtable(r2,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
##
## ==========================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## ----------------------------------------------------------
## msinc13 -0.387*** -0.177* -2.300***
## (0.063) (0.098) (0.387)
## I(msinc132) 4.929*** 2.894*** 37.778***
## (0.736) (1.068) (6.780)
## msinc46 -0.493*** -0.362***
## (0.084) (0.107) (0.000)
## I(msinc462) 2.325*** 5.383***
## (0.874) (1.816) (0.000)
## fico -0.00001*** -0.0003*** -0.0003***
## (0.00000) (0.00002) (0.00001)
## dti -0.00001*** 0.001***
## (0.00000) (0.00004)
## fulldocumentation 0.012***
## (0.002)
## log(orig_upb) 0.070*** 0.075*** 0.137***
## (0.004) (0.005) (0.004)
## ----------------------------------------------------------
## Fixed Effects MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations 8,210,798 15,685,571 3,272,882
## Adjusted R2 0.148 0.213 0.291
## ==========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##
.printtable(r3,column.labels = c("Freddie Loans","Fannie Loans","Moody's Loans"),lines = list(c("Fixed Effects","MSA*Bank, Yr","MSA*Bank, Yr","MSA*Bank, Yr")))
##
## ===========================================================
## Dependent variable:
## ----------------------------------------
## Freddie Loans Fannie Loans Moody's Loans
## (1) (2) (3)
## -----------------------------------------------------------
## factor(msinc13Q)Q1 0.015*** -0.0003 -0.035***
## (0.003) (0.003) (0.003)
## factor(msinc13Q)Q2 0.012*** 0.005 -0.018
## (0.003) (0.004) (0.014)
## factor(msinc13Q)Q3 -0.014*** -0.007*** -0.019***
## (0.003) (0.003) (0.005)
## factor(msinc13Q)Q4 0.001 0.003 -0.010*
## (0.003) (0.004) (0.006)
## factor(msinc46Q)Q1 0.015*** -0.007*
## (0.004) (0.004)
## factor(msinc46Q)Q2 0.006 0.003
## (0.004) (0.004)
## factor(msinc46Q)Q3 -0.011*** -0.005**
## (0.003) (0.002)
## factor(msinc46Q)Q4 -0.017*** -0.005
## (0.003) (0.004)
## fico -0.00001*** -0.0003*** -0.0003***
## (0.00000) (0.00002) (0.00001)
## dti -0.00001*** 0.001***
## (0.00000) (0.00004)
## fulldocumentation 0.012***
## (0.002)
## log(orig_upb) 0.070*** 0.075*** 0.137***
## (0.004) (0.005) (0.004)
## -----------------------------------------------------------
## Fixed Effects MSA*Bank, Yr MSA*Bank, Yr MSA*Bank, Yr
## Observations 8,210,798 15,685,571 3,272,882
## Adjusted R2 0.148 0.213 0.291
## ===========================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##
rm(r)
rm(r1)
rm(r2)
rm(regsample)
rm(freddie)
rm(fannie)
rm(moodys)
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2468134 131.9 41595841 2221.5 28891643 1543.0
## Vcells 714208185 5449.0 3187529710 24319.0 4080721682 31133.5
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","actiontaken","applicantrace1","applicantincome","purposeofloan","amountofloan"))
hmda <- do.call(rbind , hmda)
hmda[,lender:=paste0(agencycode,"-",respondentid)]
hmda[,countycode:=paste0(state,countycode)]
hmda[,approved:=ifelse(actiontaken %in% c("1"),1,0)]
hmda <- hmda[asofdate>=2000]
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2481473 132.6 6978626 372.7 28891643 1543
## Vcells 4521180989 34493.9 12514263845 95476.3 10367526195 79098
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)
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2481346 132.6 6978626 372.7 28891643 1543.0
## Vcells 4825745080 36817.6 15017196614 114572.2 12439794522 94908.2
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[,msinc13Q:=ifelse(is.na(msinc13Q),"Q0",msinc13Q)]
hmda[,msinc46Q:=ifelse(is.na(msinc46Q),"Q0",msinc46Q)]
hmda <- hmda[applicantincome>0 & amountofloan>0]
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2481310 132.6 6978626 372.7 28891643 1543.0
## Vcells 7719931727 58898.5 18020715936 137487.2 15773151132 120339.6
r <- list()
r[[1]] <- felm(approved~msinc13+msinc46+factor(purposeofloan)+log(applicantincome)+log(amountofloan)|asofdate+cbsa|0|cbsa,data=hmda)
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 2481791 132.6 6978626 372.7 28891643 1543.0
## Vcells 12404729999 94640.6 21624939123 164985.2 16856200905 128602.7
# r[[2]] <- felm(approved~factor(msinc13Q)+factor(msinc46Q)+factor(purposeofloan)+log(applicantincome)+log(amountofloan)|asofdate+cbsa,data=hmda)
.printtable(r)
##
## ==================================================
## Dependent variable:
## ---------------------------
## --------------------------------------------------
## msinc13 -2.437***
## (0.197)
## msinc46 -3.370***
## (0.366)
## factor(purposeofloan)3 -0.114***
## (0.005)
## log(applicantincome) 0.079***
## (0.002)
## log(amountofloan) 0.001
## (0.002)
## --------------------------------------------------
##
## Observations 232,386,819
## Adjusted R2 0.043
## ==================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
##