Dataset overview

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:

Demographics

  • AGECL (Renamed to: Age_group) – Age Group
    1. < 35 years old
    2. 35–44 years old
    3. 45–54 years old
    4. 55–64 years old
    5. 65–74 years old
    6. ≥ 75 years old
  • HHSEX (Renamed to: Household_sex)
    1. 1 - Male
    2. 2 - Female
  • EDCL (Renamed to: Education) – Education
    1. No high school diploma or GED (General Educational Development)
    2. High school diploma or GED
    3. Some college or Assoc. degree
    4. Bachelor’s degree or higher
  • RACECL5 (Renamed to: Race)– Race
    1. White non-Hispanic
    2. Black/African-American non-Hispanic
    3. Hispanic or Latino
    4. Asian
    5. Other or Multiple race
  • FAMSTRUCT (Renamed to: Family_struct) – Family structure
    1. Not married, has children
    2. Not married, without children, under 55 years old
    3. Not married, without children, over 55 years old
    4. Married, has children
    5. Married, without children

Financial Status

  • INCOME (Renamed to: Income_level) – Income level Will be binned as follows
    1. < $50 000
    2. $50 000 – $150 000
    3. $150 000 – $500 000
    4. $500 000 – $2 000 000
    5. ≥ $2 000 000
  • WSAVED (Renamed to: Spending_to_income) – Spending and savings relationship
    1. Spending exceeded income
    2. Spending equaled income
    3. Spending less than income

Combination of 5 binary variables - Crisis strategy:

  • Crisis_strat
    1. EMERGSAV=1 (If household uses its savings during crisis) -> “Secure”
    2. EMERGPSTP=1 (If household stops paying bills during crisis) -> “Distress”
    3. EMERGBORR=1 (If household borrows money during crisis) -> “Borrower”
    4. ELSE (EMERGCUT = 1 or EMERGWORK = 1 If household cuts its spending or works more during crisis)-> “Adaptation”

Behavioral

  • FINLIT (Renamed to: Financial_literacy) - score of financial knowledge test
    1. Values ranging from 0 to 3, where 0 means no correct answers and 3 means all answers were correct (binning required)

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”

  • Risk_approach
    1. YESFINRISK = 1 -> “Risk tolerant”
    2. YESFINRISK = 0 -> “Risk averse”

Credit health and financial products

  • HSTOCKS (Renamed to: Has_stocks)
    1. 1 - Has stocks; 0 - Doesn’t have stocks
  • LATE (Renamed to: Late_payments)
    1. 1 - Has any late payments; 0 - Doesn’t have late payments

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

Data preprocessing

#  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")

Association Rules analysis

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")

Conclusions

Based on the results of the study there are few key insights regarding US households financial behaviors:

Extensions of study

In order to extend the study a few steps can be taken: