The Survey of Consumer Finances is one of the most important data sources about US households financial condition. The data is released every 3 years and contains various information about families’ wealth, demographics, their assets and liabilities, income sources, awareness about financial investments and approach to financial risk.
The dataset on which the analysis was conducted contains data from 2022 survey. The entire file consists of 22.5k records with over 300 features. For the purpose of the analysis I have decided to divide the features into four groups and choose those, which are believed to give the most quality insights:
Combination of 5 binary variables - Crisis strategy:
These 3 binary variables will be combined into one - Borrowing research: - Borrowing_research 1. BSHOPNONE = 1 (No research done when borrowing money) -> “Low” 2. BSHOPMORDR = 1 (Moderate research done when borrowing money) -> “Moderate” 3. BSHOPGRDL = 1 (Thorough research done when borrowing money) -> “High”
All of the data definition can be found in the file SAS macro - Variable Definitions
Loading libraries needed for the analysis
library(arules)
library(readr)
library(arulesViz)
library(ggplot2)
library(dplyr)
library(haven)
library(arules)
library(arulesViz)
Loading the data from STATA file via function shared on the FED website.
scf_dta_import <-
function(this_url) {
this_tf <- tempfile()
download.file(this_url , this_tf , mode = 'wb')
this_tbl <- read_dta(this_tf)
this_df <- data.frame(this_tbl)
file.remove(this_tf)
names(this_df) <- tolower(names(this_df))
this_df
}
data <- scf_dta_import("https://www.federalreserve.gov/econres/files/scfp2022s.zip")
head(data,1)
## yy1 y1 wgt hhsex age agecl educ edcl married kids lf lifecl famstruct
## 1 1 11 3027.956 2 70 5 9 3 2 2 0 6 1
## racecl racecl4 racecl5 racecl_ex race occat1 occat2 indcat foodhome foodaway
## 1 1 1 1 99 1 3 4 4 600 0
## fooddelv rent income wageinc bussefarminc intdivinc kginc ssretinc
## 1 840 0 38804.73 0 0 54.04559 0 38804.73
## transfothinc penacctwd norminc wsaved saved savres1 savres2 savres3 savres4
## 1 0 6377.38 38804.73 3 1 0 0 0 0
## savres5 savres6 savres7 savres8 savres9 spendmor spendless expenshilo late
## 1 0 1 0 0 0 5 5 3 0
## late60 hpayday bnkruplast5 knowl yesfinrisk nofinrisk crdapp turndown
## 1 0 0 0 5 0 0 1 0
## feardenial turnfear forecllast5 emergborr emergsav emergpstp emergcut
## 1 0 0 0 0 1 0 0
## emergwork hborrff hborrcc hborralt hborrfin hsavfin hsavnfin hpstppay hpstpln
## 1 0 0 0 0 0 1 0 0 0
## hpstpoth hcutfood hcutent hcutoth finlit bshopnone bshopgrdl bshopmodr
## 1 0 0 0 0 1 0 1 0
## ishopnone ishopgrdl ishopmodr bcall bmagznews bmailadtv binternet bfriendwork
## 1 0 0 1 0 0 0 1 1
## bfinpro bself bdont bother icall imagznews imailadtv iinternet ifriendwork
## 1 0 0 0 0 1 0 1 1 0
## ifinpro iself idont iother bfinplan ifinplan internet checking hcheck nochk
## 1 0 0 0 0 0 0 1 6700 1 0
## ehchkg whynockg dontwrit minbal dontlike svcchg cantmang nomoney credit
## 1 0 0 0 0 0 0 0 0 0
## dontwant other cklocation cklowfeebal ckmanysvcs ckrecomfrnd ckpersonal
## 1 0 0 1 0 0 0 0
## ckconnectn cklongtime cksafety ckconvpayrl ckothchoose prepaid saving hsaving
## 1 0 0 0 0 0 0 6400 1
## mmda mmmf mma hmma call hcall liq hliq cds hcds stmutf tfbmutf gbmutf
## 1 0 0 0 0 0 0 13100 1 0 0 0 0 0
## obmutf comutf omutf nmmf hnmmf stocks hstocks nstocks wilsh notxbnd mortbnd
## 1 0 0 0 0 0 0 0 0 41800 0 0
## govtbnd obnd bond hbond irakh thrift futpen currpen retqliq hretqliq anypen
## 1 0 0 0 0 245000 0 0 0 245000 1 0
## dbplancj dcplancj dbplant bplancj savbnd hsavbnd cashli hcashli annuit trusts
## 1 0 0 0 0 0 0 0 0 0 0
## othma hothma othfin hothfin equity hequity deq reteq equitinc hbrok htrad
## 1 0 0 0 0 49000 1 0 49000 1.262733 0 0
## ntrad fin hfin vehic hvehic busveh nbusveh own nown lease nlease vlease
## 1 0 258100 1 25000 1 0 0 1 1 0 0 0
## nvehic newcar1 newcar2 farmbus houses hhouses housecl oresre horesre nnresre
## 1 1 1 1 0 674000 1 1 0 0 0
## hnnresre bus actbus nonactbus hbus othnfin hothnfin nfin hnfin nhnfin
## 1 0 0 0 0 0 0 0 699000 1 25000
## asset hasset heloc mrthel nh_mort homeeq hmrthel hheloc hnh_mort hprim_mort
## 1 957100 1 0 195000 195000 479000 1 0 1 1
## purch1 refin_ever hextract_ever hsec_mort purch2 hmort2 heloc_yn othloc
## 1 1 0 0 0 0 0 0 0
## hothloc mort1 mort2 mort3 resdbt hresdbt ccbal noccbal hccbal bnpl nobnpl
## 1 0 0 0 0 0 0 0 1 0 0 0
## hbnpl veh_inst edn_inst install oth_inst hveh_inst hedn_inst hoth_inst
## 1 0 0 0 0 0 0 0 0
## hinstall odebt hodebt debt hdebt networth levratio debt2inc kghouse kgore
## 1 0 0 0 195000 1 762100 0.2037405 5.02516 65000 0
## kgbus farmbus_kg kgstmf kgtotal paymort1 paymort2 paymort3 paymorto payloc1
## 1 0 0 0 65000 1600 0 0 0 0
## payloc2 payloc3 payloco payhi1 payhi2 paylc1 paylc2 paylco payore1 payore2
## 1 0 0 0 0 0 0 0 0 0 0
## payorev payore3 payveh1 payveh2 payveh3 payveh4 payvehm payveo1 payveo2
## 1 0 0 0 0 0 0 0 0 0
## payveom payedu1 payedu2 payedu3 payedu4 payedu5 payedu6 payedu7 payiln1
## 1 0 0 0 0 0 0 0 0 0
## payiln2 payiln3 payiln4 payiln5 payiln6 payiln7 paymarg payins paypen1
## 1 0 0 0 0 0 0 0 0 0
## paypen2 paypen3 paypen4 paypen5 paypen6 tpay mortpay conspay revpay pirtotal
## 1 0 0 0 0 0 1600 1600 0 0 0.494785
## pirmort pircons pirrev pir40 ploan1 ploan2 ploan3 ploan4 ploan5 ploan6
## 1 0.494785 0 0 1 195000 0 0 0 0 0
## ploan7 ploan8 lloan1 lloan2 lloan3 lloan4 lloan5 lloan6 lloan7 lloan8 lloan9
## 1 0 0 195000 0 0 0 0 0 0 0 0
## lloan10 lloan11 lloan12 nwcat inccat assetcat ninccat ninc2cat nwpctlecat
## 1 0 0 0 4 2 4 2 1 8
## incpctlecat nincpctlecat incqrtcat nincqrtcat
## 1 3 3 2 1
# subsetting the data frame to keep only information necessary for analysis
cols_to_keep <- c(
"agecl", "hhsex", "edcl", "racecl5", "famstruct", "income", "wsaved",
"emergsav", "emergpstp", "emergborr", "emergcut", "emergwork", "finlit",
"bshopnone", "bshopmodr", "bshopgrdl", "yesfinrisk",
"hstocks", "late"
)
us_fin <- data[cols_to_keep]
head(us_fin, 1)
## agecl hhsex edcl racecl5 famstruct income wsaved emergsav emergpstp
## 1 5 2 3 1 1 38804.73 3 1 0
## emergborr emergcut emergwork finlit bshopnone bshopmodr bshopgrdl yesfinrisk
## 1 0 0 0 1 0 0 1 0
## hstocks late
## 1 0 0
us_fin <- us_fin %>%
mutate(
Income_level = cut(
income,
breaks = c(-Inf, 50000, 150000, 500000, 2000000, Inf),
labels = c("< $50 000", "$50 000 – $150 000", "$150 000 – $500 000",
"$500 000 – $2 000 000", "≥ $2 000 000"),
right = FALSE
)
) %>%
select(-income)
us_fin <- us_fin %>%
mutate(
Age_group = factor(agecl,
levels = 1:6,
labels = c("< 35 years old", "35–44 years old", "45–54 years old",
"55–64 years old", "65–74 years old", "≥ 75 years old")),
Household_sex = factor(hhsex,
levels = 1:2,
labels = c("Male", "Female")),
Education = factor(edcl,
levels = 1:4,
labels = c("No high school diploma/GED", "High school diploma or GED",
"Some college or Assoc. degree", "Bachelor's degree or higher")),
Race = factor(racecl5,
levels = 1:5,
labels = c("White non-Hispanic", "Black/African-American non-Hispanic",
"Hispanic or Latino", "Asian", "Other or Multiple race")),
Family_struct = factor(famstruct,
levels = 1:5,
labels = c("Not married, has children", "Not married, no children, < 55",
"Not married, no children, > 55", "Married, has children",
"Married, without children")),
Spending_to_income = factor(wsaved,
levels = 1:3,
labels = c("Spending exceeded income", "Spending equaled income",
"Spending less than income")),
Financial_literacy = factor(finlit,
levels = 0:3,
labels = c("No literacy", "Poor literacy",
"Good literacy", "High literacy")),
Risk_approach = factor(yesfinrisk,
levels = c(0, 1),
labels = c("Risk averse", "Risk tolerant")),
Has_stocks = factor(hstocks,
levels = c(0, 1),
labels = c("No", "Yes")),
Late_payments = factor(late,
levels = c(0, 1),
labels = c("No", "Yes"))
) %>%
select(-agecl, -hhsex, -edcl, -racecl5, -famstruct, -wsaved, -finlit, -yesfinrisk, -hstocks, -late)
Crisis strategy
# creating the column, some respondents might have answered yes to none of the options
us_fin <- us_fin %>%
mutate(
Crisis_strat = case_when(
emergsav == 1 ~ "Secure",
emergpstp == 1 ~ "Distress",
emergborr == 1 ~ "Borrower",
emergcut == 1 | emergwork == 1 ~ "Adaptation",
TRUE ~ "None" #
),
Crisis_strat = factor(Crisis_strat,
levels = c("Secure", "Distress", "Borrower", "Adaptation", "None"))
)%>%
select(-emergsav, -emergpstp, -emergborr, -emergcut, -emergwork)
# creating column for borrowing offer validation habits
us_fin <- us_fin %>%
mutate(
Borrowing_research = case_when(
bshopgrdl == 1 ~ "High",
bshopmodr == 1 ~ "Moderate",
bshopnone == 1 ~ "Low",
TRUE ~ "None"
),
Borrowing_research = factor(
Borrowing_research,
levels = c("Low", "Moderate", "High", "None"),
ordered = TRUE
)
) %>%
select(-bshopnone, -bshopmodr, -bshopgrdl)
head(us_fin, 30)
## Income_level Age_group Household_sex
## 1 < $50 000 65–74 years old Female
## 2 < $50 000 65–74 years old Female
## 3 < $50 000 65–74 years old Female
## 4 < $50 000 65–74 years old Female
## 5 < $50 000 65–74 years old Female
## 6 $150 000 – $500 000 45–54 years old Male
## 7 $150 000 – $500 000 45–54 years old Male
## 8 $150 000 – $500 000 45–54 years old Male
## 9 $150 000 – $500 000 45–54 years old Male
## 10 $150 000 – $500 000 45–54 years old Male
## 11 $150 000 – $500 000 65–74 years old Male
## 12 $150 000 – $500 000 65–74 years old Male
## 13 $150 000 – $500 000 65–74 years old Male
## 14 $150 000 – $500 000 65–74 years old Male
## 15 $500 000 – $2 000 000 65–74 years old Male
## 16 $150 000 – $500 000 65–74 years old Female
## 17 $50 000 – $150 000 65–74 years old Female
## 18 $50 000 – $150 000 65–74 years old Female
## 19 $50 000 – $150 000 65–74 years old Female
## 20 $50 000 – $150 000 65–74 years old Female
## 21 $50 000 – $150 000 < 35 years old Female
## 22 $50 000 – $150 000 < 35 years old Female
## 23 $50 000 – $150 000 < 35 years old Female
## 24 $50 000 – $150 000 < 35 years old Female
## 25 $50 000 – $150 000 < 35 years old Female
## 26 $150 000 – $500 000 65–74 years old Male
## 27 $150 000 – $500 000 65–74 years old Male
## 28 $150 000 – $500 000 65–74 years old Male
## 29 $150 000 – $500 000 65–74 years old Male
## 30 $150 000 – $500 000 65–74 years old Male
## Education Race
## 1 Some college or Assoc. degree White non-Hispanic
## 2 Some college or Assoc. degree White non-Hispanic
## 3 Some college or Assoc. degree White non-Hispanic
## 4 Some college or Assoc. degree White non-Hispanic
## 5 Some college or Assoc. degree White non-Hispanic
## 6 Bachelor's degree or higher White non-Hispanic
## 7 Bachelor's degree or higher White non-Hispanic
## 8 Bachelor's degree or higher White non-Hispanic
## 9 Bachelor's degree or higher White non-Hispanic
## 10 Bachelor's degree or higher White non-Hispanic
## 11 Bachelor's degree or higher White non-Hispanic
## 12 Bachelor's degree or higher White non-Hispanic
## 13 Bachelor's degree or higher White non-Hispanic
## 14 Bachelor's degree or higher White non-Hispanic
## 15 Bachelor's degree or higher White non-Hispanic
## 16 Bachelor's degree or higher White non-Hispanic
## 17 Bachelor's degree or higher White non-Hispanic
## 18 Bachelor's degree or higher White non-Hispanic
## 19 Bachelor's degree or higher White non-Hispanic
## 20 Bachelor's degree or higher White non-Hispanic
## 21 High school diploma or GED Other or Multiple race
## 22 High school diploma or GED Other or Multiple race
## 23 High school diploma or GED Other or Multiple race
## 24 High school diploma or GED Other or Multiple race
## 25 High school diploma or GED Other or Multiple race
## 26 Bachelor's degree or higher White non-Hispanic
## 27 Bachelor's degree or higher White non-Hispanic
## 28 Bachelor's degree or higher White non-Hispanic
## 29 Bachelor's degree or higher White non-Hispanic
## 30 Bachelor's degree or higher White non-Hispanic
## Family_struct Spending_to_income Financial_literacy
## 1 Not married, has children Spending less than income Poor literacy
## 2 Not married, has children Spending less than income Poor literacy
## 3 Not married, has children Spending less than income Poor literacy
## 4 Not married, has children Spending less than income Poor literacy
## 5 Not married, has children Spending less than income Poor literacy
## 6 Not married, no children, < 55 Spending less than income High literacy
## 7 Not married, no children, < 55 Spending less than income High literacy
## 8 Not married, no children, < 55 Spending less than income High literacy
## 9 Not married, no children, < 55 Spending less than income High literacy
## 10 Not married, no children, < 55 Spending less than income High literacy
## 11 Married, without children Spending less than income High literacy
## 12 Married, without children Spending less than income High literacy
## 13 Married, without children Spending less than income High literacy
## 14 Married, without children Spending less than income High literacy
## 15 Married, without children Spending less than income High literacy
## 16 Not married, no children, > 55 Spending less than income High literacy
## 17 Not married, no children, > 55 Spending less than income High literacy
## 18 Not married, no children, > 55 Spending less than income High literacy
## 19 Not married, no children, > 55 Spending less than income High literacy
## 20 Not married, no children, > 55 Spending less than income High literacy
## 21 Married, without children Spending less than income No literacy
## 22 Married, without children Spending less than income No literacy
## 23 Married, without children Spending less than income No literacy
## 24 Married, without children Spending less than income No literacy
## 25 Married, without children Spending less than income No literacy
## 26 Married, without children Spending exceeded income Good literacy
## 27 Married, without children Spending exceeded income Good literacy
## 28 Married, without children Spending exceeded income Good literacy
## 29 Married, without children Spending exceeded income Good literacy
## 30 Married, without children Spending exceeded income Good literacy
## Risk_approach Has_stocks Late_payments Crisis_strat Borrowing_research
## 1 Risk averse No No Secure High
## 2 Risk averse No No Secure High
## 3 Risk averse No No Secure High
## 4 Risk averse No No Secure High
## 5 Risk averse No No Secure High
## 6 Risk averse No No Secure Moderate
## 7 Risk averse No No Secure Moderate
## 8 Risk averse No No Secure Moderate
## 9 Risk averse No No Secure Moderate
## 10 Risk averse No No Secure Moderate
## 11 Risk averse Yes Yes Secure Moderate
## 12 Risk averse Yes Yes Secure Moderate
## 13 Risk averse Yes Yes Secure Moderate
## 14 Risk averse Yes Yes Secure Moderate
## 15 Risk averse Yes Yes Secure Moderate
## 16 Risk averse No No Secure Low
## 17 Risk averse No No Secure Low
## 18 Risk averse No No Secure Low
## 19 Risk averse No No Secure Low
## 20 Risk averse No No Secure Low
## 21 Risk averse No No Adaptation High
## 22 Risk averse No No Adaptation High
## 23 Risk averse No No Adaptation High
## 24 Risk averse No No Adaptation High
## 25 Risk averse No No Adaptation High
## 26 Risk averse Yes No None Moderate
## 27 Risk averse Yes No None Moderate
## 28 Risk averse Yes No None Moderate
## 29 Risk averse Yes No None Moderate
## 30 Risk averse Yes No None Moderate
us_fin_ar <- us_fin[, sapply(us_fin, is.factor)]
trans <- as(us_fin_ar, "transactions")
Main goal of the study is to analyse financial behaviors and demographic differences between groups of US households. It aims to support general knowledge about American population and more specific characteristics, such as analyzing how different demographic groups respond to financial crises. The analysis was conducted using association rules mining, specifically apriori algorithm.
Creating all rules
all_rules <- apriori(data = trans,
parameter = list(supp = 0.005, conf = 0.5, minlen = 2),
control = list(verbose = F))
Checking top rules by support
top_supp <- head(sort(all_rules, by = "support"), 10)
inspect(top_supp)
## lhs rhs support confidence coverage lift count
## [1] {Late_payments=No} => {Risk_approach=Risk averse} 0.8414799 0.9479284 0.8877040 1.0011334 19333
## [2] {Risk_approach=Risk averse} => {Late_payments=No} 0.8414799 0.8887101 0.9468553 1.0011334 19333
## [3] {Household_sex=Male} => {Risk_approach=Risk averse} 0.7181284 0.9436088 0.7610446 0.9965713 16499
## [4] {Risk_approach=Risk averse} => {Household_sex=Male} 0.7181284 0.7584352 0.9468553 0.9965713 16499
## [5] {Household_sex=Male} => {Late_payments=No} 0.6892709 0.9056906 0.7610446 1.0202619 15836
## [6] {Late_payments=No} => {Household_sex=Male} 0.6892709 0.7764648 0.8877040 1.0202619 15836
## [7] {Has_stocks=No} => {Risk_approach=Risk averse} 0.6758651 0.9534570 0.7088575 1.0069722 15528
## [8] {Risk_approach=Risk averse} => {Has_stocks=No} 0.6758651 0.7137998 0.9468553 1.0069722 15528
## [9] {Household_sex=Male,
## Late_payments=No} => {Risk_approach=Risk averse} 0.6506202 0.9439252 0.6892709 0.9969055 14948
## [10] {Household_sex=Male,
## Risk_approach=Risk averse} => {Late_payments=No} 0.6506202 0.9059943 0.7181284 1.0206040 14948
Plotting top support rules
plot(top_supp, method="graph", engine='htmlwidget', measure="support", shading="lift", main="")
## Available control parameters (with default values):
## itemCol = #CBD2FC
## nodeCol = c("#EE0000", "#EE0303", "#EE0606", "#EE0909", "#EE0C0C", "#EE0F0F", "#EE1212", "#EE1515", "#EE1818", "#EE1B1B", "#EE1E1E", "#EE2222", "#EE2525", "#EE2828", "#EE2B2B", "#EE2E2E", "#EE3131", "#EE3434", "#EE3737", "#EE3A3A", "#EE3D3D", "#EE4040", "#EE4444", "#EE4747", "#EE4A4A", "#EE4D4D", "#EE5050", "#EE5353", "#EE5656", "#EE5959", "#EE5C5C", "#EE5F5F", "#EE6262", "#EE6666", "#EE6969", "#EE6C6C", "#EE6F6F", "#EE7272", "#EE7575", "#EE7878", "#EE7B7B", "#EE7E7E", "#EE8181", "#EE8484", "#EE8888", "#EE8B8B", "#EE8E8E", "#EE9191", "#EE9494", "#EE9797", "#EE9999", "#EE9B9B", "#EE9D9D", "#EE9F9F", "#EEA0A0", "#EEA2A2", "#EEA4A4", "#EEA5A5", "#EEA7A7", "#EEA9A9", "#EEABAB", "#EEACAC", "#EEAEAE", "#EEB0B0", "#EEB1B1", "#EEB3B3", "#EEB5B5", "#EEB7B7", "#EEB8B8", "#EEBABA", "#EEBCBC", "#EEBDBD", "#EEBFBF", "#EEC1C1", "#EEC3C3", "#EEC4C4", "#EEC6C6", "#EEC8C8", "#EEC9C9", "#EECBCB", "#EECDCD", "#EECFCF", "#EED0D0", "#EED2D2", "#EED4D4", "#EED5D5", "#EED7D7", "#EED9D9", "#EEDBDB", "#EEDCDC", "#EEDEDE", "#EEE0E0", "#EEE1E1", "#EEE3E3", "#EEE5E5", "#EEE7E7", "#EEE8E8", "#EEEAEA", "#EEECEC", "#EEEEEE")
## precision = 3
## igraphLayout = layout_nicely
## interactive = TRUE
## engine = visNetwork
## max = 100
## selection_menu = TRUE
## degree_highlight = 1
## verbose = FALSE
Checking top rules by confidence
top_conf <- head(sort(all_rules, by = "confidence"), 10)
inspect(top_conf)
## lhs rhs support confidence coverage lift count
## [1] {Crisis_strat=None} => {Spending_to_income=Spending exceeded income} 0.155560392 1 0.155560392 6.428372 3574
## [2] {Spending_to_income=Spending exceeded income} => {Crisis_strat=None} 0.155560392 1 0.155560392 6.428372 3574
## [3] {Financial_literacy=No literacy,
## Crisis_strat=Borrower} => {Has_stocks=No} 0.005353645 1 0.005353645 1.410721 123
## [4] {Education=No high school diploma/GED,
## Financial_literacy=No literacy} => {Has_stocks=No} 0.007094668 1 0.007094668 1.410721 163
## [5] {Family_struct=Not married, has children,
## Financial_literacy=No literacy} => {Has_stocks=No} 0.005440696 1 0.005440696 1.410721 125
## [6] {Family_struct=Not married, no children, > 55,
## Financial_literacy=No literacy} => {Late_payments=No} 0.007616975 1 0.007616975 1.126502 175
## [7] {Age_group=45–54 years old,
## Financial_literacy=No literacy} => {Risk_approach=Risk averse} 0.006528836 1 0.006528836 1.056128 150
## [8] {Spending_to_income=Spending equaled income,
## Financial_literacy=No literacy} => {Risk_approach=Risk averse} 0.010446137 1 0.010446137 1.056128 240
## [9] {Family_struct=Married, has children,
## Financial_literacy=No literacy} => {Risk_approach=Risk averse} 0.007616975 1 0.007616975 1.056128 175
## [10] {Race=Hispanic or Latino,
## Crisis_strat=Distress} => {Has_stocks=No} 0.005440696 1 0.005440696 1.410721 125
Checking top rules by lift
top_lift <- head(sort(all_rules, by = "lift"), 10)
inspect(top_lift)
## lhs rhs support confidence coverage lift count
## [1] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED} => {Family_struct=Not married, has children} 0.005353645 0.8913043 0.006006529 9.021021 123
## [2] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED,
## Risk_approach=Risk averse} => {Family_struct=Not married, has children} 0.005136017 0.8872180 0.005788901 8.979663 118
## [3] {Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED,
## Has_stocks=No} => {Family_struct=Not married, has children} 0.005875952 0.8181818 0.007181719 8.280937 135
## [4] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Borrowing_research=Low} => {Family_struct=Not married, has children} 0.005440696 0.8064516 0.006746464 8.162214 125
## [5] {Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED,
## Risk_approach=Risk averse,
## Has_stocks=No} => {Family_struct=Not married, has children} 0.005440696 0.8064516 0.006746464 8.162214 125
## [6] {Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED} => {Family_struct=Not married, has children} 0.006311208 0.8055556 0.007834603 8.153145 145
## [7] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Has_stocks=No,
## Borrowing_research=Low} => {Family_struct=Not married, has children} 0.005223069 0.8000000 0.006528836 8.096916 120
## [8] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Risk_approach=Risk averse,
## Borrowing_research=Low} => {Family_struct=Not married, has children} 0.005223069 0.8000000 0.006528836 8.096916 120
## [9] {Age_group=35–44 years old,
## Household_sex=Female,
## Education=High school diploma or GED,
## Risk_approach=Risk averse} => {Family_struct=Not married, has children} 0.005875952 0.7941176 0.007399347 8.037380 135
## [10] {Income_level=< $50 000,
## Age_group=35–44 years old,
## Household_sex=Female,
## Risk_approach=Risk averse,
## Has_stocks=No,
## Borrowing_research=Low} => {Family_struct=Not married, has children} 0.005005441 0.7931034 0.006311208 8.027115 115
Based on the analysis of female part of the American population, they can be characterized as very disciplined and cautious when it comes to the finance. Very high aversion to risk (confidence = 0.96), timeliness of their payments and good financial literacy prove that those characteristics are almost universal for this group. In most cases this financial strategy is a necessity. Lift of 2.01 for the lowest income group means that women are almost two times more likely to earn up to $50 000 max than general population. In many cases this approach is based on the structure of those households. Lift of 3.40 tells us that many females are single parents. In this scenario they have to focus on making ends meet and provide stability to their children rather than build wealth. Good financial literacy and education levels show us that they tend to maximize the resources they have.
female <- apriori(data = trans,
parameter = list(supp = 0.005, conf = 0.4, minlen = 2),
appearance = list(lhs = "Household_sex=Female", default = "rhs"),
control = list(verbose = F))
inspect(head(sort(female, by = "lift"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Household_sex=Female} => {Income_level=< $50 000} 0.14685528 0.6145719 0.2389554 2.0107933 3374
## [2] {Household_sex=Female} => {Financial_literacy=Good literacy} 0.09706202 0.4061931 0.2389554 1.2766465 2230
## [3] {Household_sex=Female} => {Has_stocks=No} 0.21175190 0.8861566 0.2389554 1.2501197 4865
## [4] {Household_sex=Female} => {Risk_approach=Risk averse} 0.22872688 0.9571949 0.2389554 1.0109200 5255
## [5] {Household_sex=Female} => {Borrowing_research=Moderate} 0.10781284 0.4511840 0.2389554 0.9455397 2477
## [6] {Household_sex=Female} => {Late_payments=No} 0.19843308 0.8304189 0.2389554 0.9354683 4559
## [7] {Household_sex=Female} => {Race=White non-Hispanic} 0.10729053 0.4489982 0.2389554 0.7519852 2465
## [8] {Household_sex=Female} => {Spending_to_income=Spending less than income} 0.10515778 0.4400729 0.2389554 0.7144848 2416
plt_female <- head(sort(female, by = "lift"), 15)
plot(plt_female,
method = "graph",
measure = "support",
shading = "lift"
)
The picture of the male part of American population can be characterized by reliability, high financial competence and disciplined money management. The foundation of this group seems to be clear household structure, which is shown by lift of 1.29 in terms of being married, this suggests that men tend to operate more in dual income relationships. This and strong ability to save money (confidence = 0.67; lift = 1.09) gives a good foundation to stable and secure future what is signified by “Secure” as crisis strategy in most scenarios. Men tend to hold higher education and have high financial literacy. Most men seem to be highly risk averse (confidence = 0.94; lift = 0.99), which suggest that it is a common trend within this part of population.
male <- apriori(data = trans,
parameter = list(supp = 0.005, conf = 0.4, minlen = 2),
appearance = list(lhs = "Household_sex=Male", default = "rhs"),
control = list(verbose = F))
inspect(head(sort(male, by = "lift"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Household_sex=Male} => {Family_struct=Married, without children} 0.3268770 0.4295110 0.7610446 1.2916251 7510
## [2] {Household_sex=Male} => {Financial_literacy=High literacy} 0.4354733 0.5722047 0.7610446 1.1241047 10005
## [3] {Household_sex=Male} => {Crisis_strat=Secure} 0.4198041 0.5516157 0.7610446 1.1214379 9645
## [4] {Household_sex=Male} => {Education=Bachelor's degree or higher} 0.4161915 0.5468687 0.7610446 1.1052348 9562
## [5] {Household_sex=Male} => {Spending_to_income=Spending less than income} 0.5107726 0.6711467 0.7610446 1.0896470 11735
## [6] {Household_sex=Male} => {Race=White non-Hispanic} 0.4897933 0.6435802 0.7610446 1.0778725 11253
## [7] {Household_sex=Male} => {Late_payments=No} 0.6892709 0.9056906 0.7610446 1.0202619 15836
## [8] {Household_sex=Male} => {Borrowing_research=Moderate} 0.3693580 0.4853303 0.7610446 1.0170996 8486
## [9] {Household_sex=Male} => {Risk_approach=Risk averse} 0.7181284 0.9436088 0.7610446 0.9965713 16499
## [10] {Household_sex=Male} => {Has_stocks=No} 0.4971055 0.6531884 0.7610446 0.9214666 11421
plt_male <- head(sort(male, by = "lift"), 15)
plot(plt_male,
method = "graph",
measure = "support",
shading = "lift")
Young people tend to be earning up to $150 000. They are mostly risk-averse (confidence = 0.93) which is signified by the fact that close to 80% of people in this group do not have any stocks. This means that young people, despite earning a substantial amount are stressed about their financial situation and do not spend beyond their income. There is a bigger diversity when it comes to race compared to different age groups.
youth <- apriori(trans,
parameter = list(supp = 0.01, conf = 0.4, minlen = 2),
appearance = list(lhs = "Age_group=< 35 years old", default = "rhs"))
## Apriori
##
## Parameter specification:
## confidence minval smax arem aval originalSupport maxtime support minlen
## 0.4 0.1 1 none FALSE TRUE 5 0.01 2
## maxlen target ext
## 10 rules TRUE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## Absolute minimum support count: 229
##
## set item appearances ...[1 item(s)] done [0.00s].
## set transactions ...[48 item(s), 22975 transaction(s)] done [0.02s].
## sorting and recoding items ... [48 item(s)] done [0.00s].
## creating transaction tree ... done [0.01s].
## checking subsets of size 1 2 done [0.04s].
## writing ... [10 rule(s)] done [0.00s].
## creating S4 object ... done [0.00s].
inspect(head(sort(youth, by = "lift"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Age_group=< 35 years old} => {Income_level=< $50 000} 0.06089227 0.4564437 0.1334059 1.4934199 1399
## [2] {Age_group=< 35 years old} => {Income_level=$50 000 – $150 000} 0.05723613 0.4290375 0.1334059 1.2880095 1315
## [3] {Age_group=< 35 years old} => {Has_stocks=No} 0.10415669 0.7807504 0.1334059 1.1014209 2393
## [4] {Age_group=< 35 years old} => {Borrowing_research=Moderate} 0.06911861 0.5181077 0.1334059 1.0857907 1588
## [5] {Age_group=< 35 years old} => {Risk_approach=Risk averse} 0.12491839 0.9363785 0.1334059 0.9889352 2870
## [6] {Age_group=< 35 years old} => {Household_sex=Male} 0.09379761 0.7030995 0.1334059 0.9238611 2155
## [7] {Age_group=< 35 years old} => {Late_payments=No} 0.10881393 0.8156607 0.1334059 0.9188431 2500
## [8] {Age_group=< 35 years old} => {Spending_to_income=Spending less than income} 0.07247008 0.5432300 0.1334059 0.8819666 1665
## [9] {Age_group=< 35 years old} => {Education=Bachelor's degree or higher} 0.05484222 0.4110930 0.1334059 0.8308288 1260
## [10] {Age_group=< 35 years old} => {Race=White non-Hispanic} 0.06019587 0.4512235 0.1334059 0.7557122 1383
There is a clear difference compared to the young people sample. Baby boomers are 62% more likely not to have children than general population. They seem to be much more secure in terms of their finance compared to other age groups. This demographic is less ethnically diverse than others.
baby_boomers <- apriori(trans,
parameter = list(supp = 0.01, conf = 0.4, minlen = 2),
appearance = list(lhs = "Age_group=65–74 years old", default = "rhs"))
## Apriori
##
## Parameter specification:
## confidence minval smax arem aval originalSupport maxtime support minlen
## 0.4 0.1 1 none FALSE TRUE 5 0.01 2
## maxlen target ext
## 10 rules TRUE
##
## Algorithmic control:
## filter tree heap memopt load sort verbose
## 0.1 TRUE TRUE FALSE TRUE 2 TRUE
##
## Absolute minimum support count: 229
##
## set item appearances ...[1 item(s)] done [0.00s].
## set transactions ...[48 item(s), 22975 transaction(s)] done [0.04s].
## sorting and recoding items ... [48 item(s)] done [0.00s].
## creating transaction tree ... done [0.02s].
## checking subsets of size 1 2 done [0.04s].
## writing ... [11 rule(s)] done [0.00s].
## creating S4 object ... done [0.00s].
inspect(head(sort(baby_boomers, by = "lift"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Age_group=65–74 years old} => {Family_struct=Married, without children} 0.10141458 0.5381062 0.1884657 1.6181925 2330
## [2] {Age_group=65–74 years old} => {Crisis_strat=Secure} 0.12078346 0.6408776 0.1884657 1.3029080 2775
## [3] {Age_group=65–74 years old} => {Race=White non-Hispanic} 0.13980413 0.7418014 0.1884657 1.2423740 3212
## [4] {Age_group=65–74 years old} => {Financial_literacy=High literacy} 0.10794342 0.5727483 0.1884657 1.1251724 2480
## [5] {Age_group=65–74 years old} => {Education=Bachelor's degree or higher} 0.10054407 0.5334873 0.1884657 1.0781906 2310
## [6] {Age_group=65–74 years old} => {Spending_to_income=Spending less than income} 0.12326442 0.6540416 0.1884657 1.0618758 2832
## [7] {Age_group=65–74 years old} => {Late_payments=No} 0.17597388 0.9337182 0.1884657 1.0518351 4043
## [8] {Age_group=65–74 years old} => {Risk_approach=Risk averse} 0.18171926 0.9642032 0.1884657 1.0183217 4175
## [9] {Age_group=65–74 years old} => {Household_sex=Male} 0.14494015 0.7690531 0.1884657 1.0105230 3330
## [10] {Age_group=65–74 years old} => {Borrowing_research=Moderate} 0.08683351 0.4607390 0.1884657 0.9655641 1995
## [11] {Age_group=65–74 years old} => {Has_stocks=No} 0.12735582 0.6757506 0.1884657 0.9532954 2926
distress <- apriori(data = trans,
parameter = list(supp = 0.001, conf = 0.3),
appearance = list(default = "lhs", rhs = "Crisis_strat=Distress"),
control = list(verbose = F))
distress_sorted <- sort(distress, by = "confidence", decreasing = TRUE)
inspect(head(distress_sorted, 10))
## lhs rhs support confidence coverage lift count
## [1] {Household_sex=Male,
## Education=Bachelor's degree or higher,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [2] {Household_sex=Male,
## Education=Bachelor's degree or higher,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Has_stocks=No,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [3] {Household_sex=Male,
## Education=Bachelor's degree or higher,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Risk_approach=Risk averse,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [4] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Household_sex=Female,
## Education=Some college or Assoc. degree,
## Race=White non-Hispanic,
## Family_struct=Not married, no children, < 55} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [5] {Household_sex=Male,
## Education=Bachelor's degree or higher,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Risk_approach=Risk averse,
## Has_stocks=No,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [6] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Household_sex=Female,
## Education=Some college or Assoc. degree,
## Race=White non-Hispanic,
## Family_struct=Not married, no children, < 55,
## Has_stocks=No} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [7] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Household_sex=Female,
## Education=Some college or Assoc. degree,
## Race=White non-Hispanic,
## Family_struct=Not married, no children, < 55,
## Risk_approach=Risk averse} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [8] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Household_sex=Female,
## Education=Some college or Assoc. degree,
## Race=White non-Hispanic,
## Family_struct=Not married, no children, < 55,
## Risk_approach=Risk averse,
## Has_stocks=No} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [9] {Age_group=45–54 years old,
## Education=High school diploma or GED,
## Race=Other or Multiple race,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.6250000 0.001741023 17.19686 25
## [10] {Age_group=45–54 years old,
## Education=High school diploma or GED,
## Race=Other or Multiple race,
## Has_stocks=No,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.6250000 0.001741023 17.19686 25
plot(head(sort(distress, by="lift"), 10), method="paracoord")
secure <- apriori(data = trans,
parameter = list(supp = 0.001, conf = 0.5, minlen = 2),
appearance = list(default = "lhs", rhs = "Crisis_strat=Secure"),
control = list(verbose = F))
secure_sorted <- sort(secure, by = "confidence", decreasing = TRUE)
inspect(head(secure_sorted, 10))
## lhs rhs support confidence coverage lift count
## [1] {Income_level=≥ $2 000 000,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.002829162 1 0.002829162 2.033006 65
## [2] {Income_level=≥ $2 000 000,
## Spending_to_income=Spending equaled income} => {Crisis_strat=Secure} 0.001349293 1 0.001349293 2.033006 31
## [3] {Income_level=≥ $2 000 000,
## Household_sex=Female} => {Crisis_strat=Secure} 0.002524483 1 0.002524483 2.033006 58
## [4] {Income_level=≥ $2 000 000,
## Age_group=≥ 75 years old,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.001741023 1 0.001741023 2.033006 40
## [5] {Income_level=≥ $2 000 000,
## Financial_literacy=No literacy,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.001175190 1 0.001175190 2.033006 27
## [6] {Income_level=≥ $2 000 000,
## Financial_literacy=No literacy,
## Has_stocks=Yes} => {Crisis_strat=Secure} 0.002176279 1 0.002176279 2.033006 50
## [7] {Income_level=≥ $2 000 000,
## Family_struct=Married, without children,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.001958651 1 0.001958651 2.033006 45
## [8] {Income_level=≥ $2 000 000,
## Education=Bachelor's degree or higher,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.002829162 1 0.002829162 2.033006 65
## [9] {Income_level=≥ $2 000 000,
## Race=White non-Hispanic,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.002829162 1 0.002829162 2.033006 65
## [10] {Income_level=≥ $2 000 000,
## Spending_to_income=Spending less than income,
## Financial_literacy=No literacy} => {Crisis_strat=Secure} 0.002829162 1 0.002829162 2.033006 65
plot(head(sort(secure, by="lift"), 10), method="paracoord")
Some selected demographics tend to have risky financial behaviors. Some educated males with good financial knowledge seem to be prone to financial distress and living from paycheck to paycheck. They are 20 times more likely to fall into the financial distress. This means that the knowledge does not always go hand in hand with good budgeting.
There is some level of exclusion in terms of financial education amongst single parents, especially Black/African-American. Likelihood of no financial literacy in this group is 15 times higher than the average in the sample.
According to the study, elderly people are 13.7 times more prone to lack financial knowledge than the rest of population. Combined with the fact that they are active borrowers with low research it makes them a great target to fall for financial trap.
nieche_rules <- apriori(data = trans,
parameter = list(supp = 0.001, conf = 0.25, minlen = 3, maxlen = 6),
control = list(verbose = F))
inspect(head(sort(nieche_rules , by = "lift"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Household_sex=Male,
## Education=Bachelor's degree or higher,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.7142857 0.001523395 19.65355 25
## [2] {Age_group=45–54 years old,
## Education=High school diploma or GED,
## Race=Other or Multiple race,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.6250000 0.001741023 17.19686 25
## [3] {Age_group=45–54 years old,
## Education=High school diploma or GED,
## Race=Other or Multiple race,
## Has_stocks=No,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.6250000 0.001741023 17.19686 25
## [4] {Age_group=45–54 years old,
## Education=High school diploma or GED,
## Race=Other or Multiple race,
## Risk_approach=Risk averse,
## Late_payments=Yes} => {Crisis_strat=Distress} 0.001088139 0.6250000 0.001741023 17.19686 25
## [5] {Household_sex=Male,
## Spending_to_income=Spending equaled income,
## Financial_literacy=Good literacy,
## Late_payments=Yes,
## Borrowing_research=High} => {Crisis_strat=Distress} 0.001088139 0.5555556 0.001958651 15.28609 25
## [6] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Household_sex=Female,
## Race=Black/African-American non-Hispanic,
## Family_struct=Not married, has children} => {Financial_literacy=No literacy} 0.001262242 0.4915254 0.002568009 15.05706 29
## [7] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Race=Black/African-American non-Hispanic,
## Family_struct=Not married, has children,
## Late_payments=No} => {Financial_literacy=No literacy} 0.001262242 0.4833333 0.002611534 14.80611 29
## [8] {Age_group=45–54 years old,
## Household_sex=Female,
## Race=Black/African-American non-Hispanic,
## Spending_to_income=Spending equaled income,
## Late_payments=No} => {Financial_literacy=No literacy} 0.001088139 0.4545455 0.002393906 13.92424 25
## [9] {Age_group=< 35 years old,
## Household_sex=Male,
## Education=High school diploma or GED,
## Financial_literacy=Poor literacy,
## Borrowing_research=High} => {Crisis_strat=Distress} 0.001088139 0.5000000 0.002176279 13.75749 25
## [10] {Age_group=≥ 75 years old,
## Education=No high school diploma/GED,
## Crisis_strat=Borrower,
## Borrowing_research=Low} => {Financial_literacy=No literacy} 0.001131665 0.4482759 0.002524483 13.73218 26
## [11] {Age_group=≥ 75 years old,
## Education=No high school diploma/GED,
## Has_stocks=No,
## Crisis_strat=Borrower,
## Borrowing_research=Low} => {Financial_literacy=No literacy} 0.001131665 0.4482759 0.002524483 13.73218 26
## [12] {Age_group=≥ 75 years old,
## Education=No high school diploma/GED,
## Risk_approach=Risk averse,
## Crisis_strat=Borrower,
## Borrowing_research=Low} => {Financial_literacy=No literacy} 0.001131665 0.4482759 0.002524483 13.73218 26
## [13] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Race=Black/African-American non-Hispanic,
## Family_struct=Not married, has children} => {Financial_literacy=No literacy} 0.001262242 0.4461538 0.002829162 13.66718 29
## [14] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Race=Black/African-American non-Hispanic,
## Family_struct=Not married, has children,
## Has_stocks=No} => {Financial_literacy=No literacy} 0.001262242 0.4461538 0.002829162 13.66718 29
## [15] {Income_level=< $50 000,
## Age_group=45–54 years old,
## Race=Black/African-American non-Hispanic,
## Family_struct=Not married, has children,
## Risk_approach=Risk averse} => {Financial_literacy=No literacy} 0.001262242 0.4461538 0.002829162 13.66718 29
plt_niche_rules <- head(sort(nieche_rules, by = "lift"), 15)
plot(plt_niche_rules,
method = "paracoord",
control = list(reorder = TRUE),
)
A small part of population (4.3%) are households which earn <= than $50 000, yet their situation in case of crisis is secure. Those households spend money only on the basic needs and goods, the rest goes towards their future safety.
low_income_sec <- apriori(data = trans,
parameter = list(supp = 0.001, conf = 0.01, minlen = 3),
appearance = list(rhs = "Spending_to_income=Spending less than income",
lhs = c("Income_level=< $50 000", "Crisis_strat=Secure")),
control = list(verbose = F))
inspect(sort(low_income_sec, by = "lift"))
## lhs rhs support confidence coverage lift count
## [1] {Income_level=< $50 000,
## Crisis_strat=Secure} => {Spending_to_income=Spending less than income} 0.04339499 0.6378759 0.06803047 1.03563 997
People with secure situation in case of crisis seem to be mostly white males earning over $2 000 000 often married but without any children. They do not pay attention to their borrowing habits. The amount of money earned allows them to freely play on the stock market. They mostly opt for safer strategies, to keep building their capital based on what they already have.
secure <- apriori(data = trans,
parameter = list(supp = 0.01, conf = 0.75, minlen = 4),
appearance = list(default = "lhs", rhs = "Crisis_strat=Secure"),
control = list(verbose = F))
inspect(head(sort(secure, by = "conf"), 15))
## lhs rhs support confidence coverage lift count
## [1] {Income_level=≥ $2 000 000,
## Race=White non-Hispanic,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01114255 0.9922481 0.01122960 2.017246 256
## [2] {Income_level=≥ $2 000 000,
## Race=White non-Hispanic,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Late_payments=No,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01101197 0.9921569 0.01109902 2.017061 253
## [3] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Race=White non-Hispanic,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01057671 0.9918367 0.01066376 2.016410 243
## [4] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Race=White non-Hispanic,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Late_payments=No,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01044614 0.9917355 0.01053319 2.016204 240
## [5] {Income_level=≥ $2 000 000,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01466812 0.9853801 0.01488575 2.003284 337
## [6] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01445049 0.9851632 0.01466812 2.002843 332
## [7] {Income_level=≥ $2 000 000,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01149075 0.9850746 0.01166485 2.002663 264
## [8] {Income_level=≥ $2 000 000,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No,
## Late_payments=No} => {Crisis_strat=Secure} 0.01431991 0.9850299 0.01453754 2.002572 329
## [9] {Income_level=≥ $2 000 000,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Late_payments=No,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01136017 0.9849057 0.01153428 2.002319 261
## [10] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No,
## Late_payments=No} => {Crisis_strat=Secure} 0.01410229 0.9848024 0.01431991 2.002109 324
## [11] {Income_level=≥ $2 000 000,
## Education=Bachelor's degree or higher,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01379761 0.9844720 0.01401523 2.001438 317
## [12] {Income_level=≥ $2 000 000,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Risk_approach=Risk averse,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01366703 0.9843260 0.01388466 2.001141 314
## [13] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Spending_to_income=Spending less than income,
## Has_stocks=Yes,
## Borrowing_research=Low} => {Crisis_strat=Secure} 0.01092492 0.9843137 0.01109902 2.001116 251
## [14] {Income_level=≥ $2 000 000,
## Race=White non-Hispanic,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01357998 0.9842271 0.01379761 2.000940 312
## [15] {Income_level=≥ $2 000 000,
## Household_sex=Male,
## Education=Bachelor's degree or higher,
## Family_struct=Married, without children,
## Spending_to_income=Spending less than income,
## Has_stocks=No} => {Crisis_strat=Secure} 0.01357998 0.9842271 0.01379761 2.000940 312
plot(head(sort(secure, by="lift"), 20), method="graph", engine="htmlwidget")
Based on the results of the study there are few key insights regarding US households financial behaviors:
In order to extend the study a few steps can be taken: