Data Preparation

To investigate the factors influencing a household’s financial well-being, a broad set of socio-economic and value-based indicators was selected from the ESS database.

str(data)
## 'data.frame':    50116 obs. of  25 variables:
##  $ name    : chr  "ESS11e04_1" "ESS11e04_1" "ESS11e04_1" "ESS11e04_1" ...
##  $ essround: int  11 11 11 11 11 11 11 11 11 11 ...
##  $ edition : num  4.1 4.1 4.1 4.1 4.1 4.1 4.1 4.1 4.1 4.1 ...
##  $ proddate: chr  "12.01.2026" "12.01.2026" "12.01.2026" "12.01.2026" ...
##  $ idno    : int  50014 50030 50057 50106 50145 50158 50211 50212 50213 50235 ...
##  $ cntry   : chr  "AT" "AT" "AT" "AT" ...
##  $ dweight : num  1.185 0.61 1.392 0.556 0.723 ...
##  $ pspwght : num  0.393 0.325 4 0.176 1.061 ...
##  $ pweight : num  0.331 0.331 0.331 0.331 0.331 ...
##  $ anweight: num  0.13 0.1076 1.3237 0.0583 0.3511 ...
##  $ lrscale : int  5 0 3 5 2 4 4 3 5 5 ...
##  $ stflife : int  8 9 10 7 9 8 8 8 8 8 ...
##  $ stfgov  : int  4 5 5 4 7 2 3 6 5 8 ...
##  $ gincdif : int  2 1 1 1 2 2 2 2 1 2 ...
##  $ health  : int  3 2 1 3 2 1 2 2 2 2 ...
##  $ rlgdgr  : int  5 0 8 6 1 3 6 6 5 10 ...
##  $ brncntr : int  1 1 1 2 1 2 1 1 1 1 ...
##  $ eisced  : int  3 5 6 5 3 4 2 7 5 2 ...
##  $ uemp3m  : int  2 2 2 2 2 2 1 2 2 2 ...
##  $ hincfel : int  1 2 1 2 2 1 2 1 2 2 ...
##  $ impricha: int  5 4 4 4 4 2 4 6 3 4 ...
##  $ iphlppla: int  2 1 1 2 2 1 2 2 1 3 ...
##  $ prob    : num  0.000579 0.001124 0.000493 0.001233 0.000949 ...
##  $ stratum : int  107 69 18 101 115 7 58 38 62 105 ...
##  $ psu     : int  317 128 418 295 344 373 86 3 108 314 ...

Using the ESS Round 11 Codebook, we identified and removed non-substantive responses. We treated values such as “Refusal” (7/77), “Don’t know” (8/88), and “No answer” (9/99) as NA and excluded them from the analysis to ensure the integrity of the patterns discovered by the algorithm. The variables were also given clear names.

variables <- c("hincfel", "lrscale", "stflife", "stfgov", "gincdif", 
                     "health", "rlgdgr", "brncntr", "eisced", "uemp3m", 
                     "impricha", "iphlppla")
data <- data[, variables]


short_scales <- c("hincfel", "health", "brncntr", "uemp3m", "impricha", "iphlppla", "gincdif")
for(var in short_scales) {
  data[[var]][data[[var]] > 6] <- NA
}


long_scales <- c("lrscale", "stflife", "stfgov", "rlgdgr", "eisced")
for(var in long_scales) {
  data[[var]][data[[var]] > 10] <- NA
}


data <- na.omit(data)

data <- data %>% rename(
  income_feeling = hincfel,
  left_right = lrscale,
  life_sat = stflife,
  gov_sat = stfgov,
  redistribution = gincdif,
  subjective_health = health,
  religiosity = rlgdgr,
  born_in_country = brncntr,
  education_level = eisced,
  unemployed_3m = uemp3m,
  importance_rich = impricha,
  importance_helping = iphlppla
)

Since the Apriori algorithm requires categorical data (factors) rather than continuous numbers, we transformed all numerical scales into meaningful groups. Variables with 0–10 Scales were grouped into three tiers: Low (0–3), Medium (4–6), and High (7–10). Health and Values were consolidated into intuitive categories like “Good/Fair/Poor” or “High/Medium/Low” based on their original coding logic. Binary Indicators were transformed into “Yes/No” factors (for unemployment and birth country).

data_final <- data %>%
  mutate(
    income_feeling = factor(income_feeling, 
                            levels = c(1, 2, 3, 4), 
                            labels = c("Comfortable", "Coping", "Difficult", "Very_Difficult")),
    ideology = cut(left_right, breaks = c(-1, 3, 6, 10), labels = c("Left", "Center", "Right")),
    life_sat_cat = cut(life_sat, breaks = c(-1, 3, 6, 10), labels = c("Low", "Medium", "High")),
    gov_sat_cat = cut(gov_sat, breaks = c(-1, 3, 6, 10), labels = c("Low", "Medium", "High")),
    religiosity_cat = cut(religiosity, breaks = c(-1, 3, 6, 10), labels = c("Low", "Medium", "High")),
    health_cat = cut(subjective_health, breaks = c(0, 2, 3, 5), labels = c("Good", "Fair", "Poor")),
    redist_opinon = cut(redistribution, breaks = c(0, 2, 3, 5), labels = c("Agree", "Neutral", "Disagree")),
    born_here = factor(born_in_country, levels = c(1, 2), labels = c("Yes", "No")),
    unemployed = factor(unemployed_3m, levels = c(1, 2), labels = c("Yes", "No")),
    edu_cat = cut(education_level, breaks = c(0, 2, 5, 8), labels = c("Low", "Medium", "High")),
    imp_rich = cut(importance_rich, breaks = c(0, 2, 4, 6), labels = c("High", "Medium", "Low")),
    imp_helping = cut(importance_helping, breaks = c(0, 2, 4, 6), labels = c("High", "Medium", "Low"))
  ) %>%
  select_if(is.factor)
Variables for Association Rules Analysis after Discretization
Variable Description Categories
income_feeling Feeling about household’s income nowadays Comfortable, Coping, Difficult, Very_Difficult
ideology Placement on left-right scale Left (0-3), Center (4-6), Right (7-10)
life_sat_cat How satisfied with life as a whole Low (0-3), Medium (4-6), High (7-10)
gov_sat_cat How satisfied with the national government Low (0-3), Medium (4-6), High (7-10)
redist_opinion Government should reduce income differences Agree, Neutral, Disagree
health_cat Subjective general health Good, Fair, Poor
religiosity_cat How religious are you Low, Medium, High
born_here Born in the country Yes, No
edu_cat Highest level of education (EISCED) Low, Medium, High
unemployed Ever unemployed and seeking work for 3 months Yes, No
imp_rich Important to be rich, have money and expensive things High, Medium, Low
imp_helping Important to help people and care for others’ well-being High, Medium, Low

Then, the data frame is converted into a matrix of transactions.

data_t <- as(data_final, "transactions")

Exploratory Analysis

The summary() output reveals the fundamental structure of our data. Density equal to 0.343 indicates that roughly 34% of the cells in our transaction matrix contain a value. Since every respondent has exactly 12 attributes (length distribution = 12), the matrix is balanced. The most common traits in the population are being born in the country (born_here=Yes), not having a history of unemployment (unemployed=No), and agreeing with income redistribution (redist_opinon=Agree). High life satisfaction and high altruism (imp_helping=High) are also dominant characteristics in this European sample.

summary(data_t)
## transactions as itemMatrix in sparse format with
##  39821 rows (elements/itemsets/transactions) and
##  35 columns (items) and a density of 0.3428571 
## 
## most frequent items:
##       born_here=Yes       unemployed=No redist_opinon=Agree   life_sat_cat=High 
##               36522               29347               28950               27849 
##    imp_helping=High             (Other) 
##               27663              327521 
## 
## element (itemset/transaction) length distribution:
## sizes
##    12 
## 39821 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##      12      12      12      12      12      12 
## 
## includes extended item information - examples:
##                       labels      variables      levels
## 1 income_feeling=Comfortable income_feeling Comfortable
## 2      income_feeling=Coping income_feeling      Coping
## 3   income_feeling=Difficult income_feeling   Difficult
## 
## includes extended transaction information - examples:
##   transactionID
## 1             1
## 2             2
## 3             3

Using the itemFrequency function, we analyzed the distribution of our target variable, Income Feeling. It shows that 34.2% of respondents feel “Comfortable” with their income, while the majority (44.7%) are “Coping”. A combined 21% of the population faces financial hardship, with 15.9% finding it “Difficult” and 5.2% “Very Difficult”. Because the “Very Difficult” category is relatively rare (low support), we will need to set a low supp threshold in the Apriori algorithm to find rules for this specific group.

itemFrequency(data_t[, 1:4])
##    income_feeling=Comfortable         income_feeling=Coping 
##                    0.34228171                    0.44710078 
##      income_feeling=Difficult income_feeling=Very_Difficult 
##                    0.15906180                    0.05155571

Item Frequency Plot displays the 15 most frequent items in the dataset. It confirms that the dataset is dominated by stable socio-economic indicators (born here, employed, high life satisfaction).

itemFrequencyPlot(data_t, topN = 15, col=moj_kolor, type = "relative", main = "Item Frequency Plot")

Next, we generated an image() plot for a random sample of 100 transactions. Each dot represents the presence of an item in a transaction. The vertical columns of dots indicate very common items (high support). The lack of obvious horizontal blocks suggests that there isn’t one single “type” of person that represents everyone, which is ideal for discovering diverse association rules through the Apriori algorithm.

image(sample(data_t, 100))

Association Rule Learning

To extract meaningful associations, the Apriori algorithm was configured with a minimum support of 0.001 and confidence of 0.20. The low support threshold was intentionally selected to capture patterns related to the ‘Very Difficult’ income category, which represents a small minority of the sample. The Right-Hand Side was restricted to the income_feeling levels to ensure that all discovered rules provide direct insights into the socio-economic drivers of subjective financial well-being.

rules <- apriori(data = data_t, 
                 parameter = list(supp = 0.001, conf = 0.2, minlen = 2), 
                 appearance = list(default = "lhs", 
                                   rhs = c("income_feeling=Comfortable", 
                                           "income_feeling=Coping",
                                           "income_feeling=Difficult",
                                           "income_feeling=Very_Difficult")), 
                 control = list(verbose = F))

First, we focus on rules with the highest lift. This analysis reveals a powerful link between subjective financial distress and a cluster of negative socio-economic indicators. The strongest rule, with a Lift of 9.47, identifies individuals characterized by low life satisfaction, poor health, and a history of unemployment as being significantly more likely to report ‘Very Difficult’ living conditions. Interestingly, while these individuals represent a small segment of the population (Support around 0.1%), the Confidence of nearly 50% suggests that this specific profile is a high-accuracy predictor of extreme financial strain within the ESS dataset.

inspect(head(sort(rules, by="lift")))
##     lhs                       rhs                                 support confidence    coverage     lift count
## [1] {ideology=Center,                                                                                          
##      life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      born_here=Yes,                                                                                            
##      unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001054720  0.4883721 0.002159664 9.472706    42
## [2] {ideology=Center,                                                                                          
##      life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001079832  0.4777778 0.002260114 9.267213    43
## [3] {life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      born_here=Yes,                                                                                            
##      unemployed=Yes,                                                                                           
##      imp_rich=Low}         => {income_feeling=Very_Difficult} 0.001029607  0.4659091 0.002209889 9.037002    41
## [4] {life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      redist_opinon=Agree,                                                                                      
##      unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001732754  0.4630872 0.003741744 8.982269    69
## [5] {life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      redist_opinon=Agree,                                                                                      
##      born_here=Yes,                                                                                            
##      unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001582080  0.4565217 0.003465508 8.854921    63
## [6] {life_sat_cat=Low,                                                                                         
##      gov_sat_cat=Low,                                                                                          
##      health_cat=Poor,                                                                                          
##      unemployed=Yes,                                                                                           
##      edu_cat=Medium}       => {income_feeling=Very_Difficult} 0.001104945  0.4536082 0.002435901 8.798409    44

The results sorted by Support predominantly feature single-item antecedents. This is a direct consequence of the Apriori algorithm: as more conditions are added to a rule, its frequency in the dataset, and thus its Support, inevitably decreases. The rules with the highest support represent the most generalized demographic baselines in the European sample. For instance, the association between being born in the country (born_here=Yes) and the ‘Coping’ income status appears in over 41% of all transactions. While these rules are simple, they provide the necessary context for the study, establishing that ‘Coping’ is the normative financial experience for the majority of the population. However, the Lift values remain near 1.0, suggesting these are general demographic baselines rather than specific predictors of financial situation.

inspect(head(sort(rules, by="support")))
##     lhs                       rhs                            support confidence  coverage      lift count
## [1] {born_here=Yes}        => {income_feeling=Coping}      0.4123452  0.4495920 0.9171543 1.0055720 16420
## [2] {redist_opinon=Agree}  => {income_feeling=Coping}      0.3321614  0.4568912 0.7270033 1.0218976 13227
## [3] {unemployed=No}        => {income_feeling=Coping}      0.3284448  0.4456674 0.7369730 0.9967940 13079
## [4] {born_here=Yes}        => {income_feeling=Comfortable} 0.3129002  0.3411642 0.9171543 0.9967352 12460
## [5] {life_sat_cat=High}    => {income_feeling=Coping}      0.3124482  0.4467665 0.6993546 0.9992523 12442
## [6] {redist_opinon=Agree,                                                                                
##      born_here=Yes}        => {income_feeling=Coping}      0.3072248  0.4594067 0.6687426 1.0275238 12234

An analysis of the rules sorted by Confidence identifies the profile of respondents with the highest financial security. The premier rule shows a 90.9% probability (Confidence = 0.909) that individuals with high life and government satisfaction, centrist views, and opposition to income redistribution will report living ‘comfortably’. This cluster of attributes acts as a near-perfect predictor of economic stability. Furthermore, the presence of high education and a strong emphasis on helping others within these high-confidence rules suggests that the ‘Comfortable’ segment consists largely of highly educated individuals who value social help but prefer personal agency over state-led redistribution.

inspect(head(sort(rules, by="confidence")))
##     lhs                          rhs                              support confidence    coverage     lift count
## [1] {ideology=Center,                                                                                          
##      life_sat_cat=High,                                                                                        
##      gov_sat_cat=High,                                                                                         
##      religiosity_cat=Low,                                                                                      
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      imp_rich=Medium}         => {income_feeling=Comfortable} 0.001004495  0.9090909 0.001104945 2.655973    40
## [2] {life_sat_cat=High,                                                                                        
##      gov_sat_cat=High,                                                                                         
##      religiosity_cat=Low,                                                                                      
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      edu_cat=High,                                                                                             
##      imp_rich=Medium,                                                                                          
##      imp_helping=High}        => {income_feeling=Comfortable} 0.001004495  0.8888889 0.001130057 2.596951    40
## [3] {ideology=Center,                                                                                          
##      life_sat_cat=High,                                                                                        
##      gov_sat_cat=High,                                                                                         
##      religiosity_cat=Low,                                                                                      
##      health_cat=Good,                                                                                          
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      imp_helping=High}        => {income_feeling=Comfortable} 0.001180282  0.8867925 0.001330956 2.590826    47
## [4] {ideology=Center,                                                                                          
##      life_sat_cat=High,                                                                                        
##      gov_sat_cat=High,                                                                                         
##      religiosity_cat=Low,                                                                                      
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      imp_helping=High}        => {income_feeling=Comfortable} 0.001305844  0.8813559 0.001481630 2.574943    52
## [5] {ideology=Center,                                                                                          
##      life_sat_cat=High,                                                                                        
##      religiosity_cat=Low,                                                                                      
##      health_cat=Good,                                                                                          
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      edu_cat=High,                                                                                             
##      imp_rich=Medium,                                                                                          
##      imp_helping=High}        => {income_feeling=Comfortable} 0.001305844  0.8813559 0.001481630 2.574943    52
## [6] {ideology=Center,                                                                                          
##      gov_sat_cat=High,                                                                                         
##      religiosity_cat=Low,                                                                                      
##      redist_opinon=Disagree,                                                                                   
##      unemployed=No,                                                                                            
##      imp_rich=Medium}         => {income_feeling=Comfortable} 0.001029607  0.8723404 0.001180282 2.548604    41

The scatter plot visualizes the distribution of 288,766 generated rules based on their Support (x-axis), Confidence (y-axis), and Lift (shading). The vast majority of rules are concentrated at very low support levels (near 0.0), indicating that most complex socio-economic patterns are specific to small sub-groups of the population. We observe a clear trade-off where rules with the highest support (reaching up to 0.40) tend to have moderate confidence levels around 0.4 to 0.5. The most significant rules, indicated by the lightest shading, are found in the low-to-moderate confidence and low-support region. These rules possess Lift values exceeding 7.5.

plot(rules, method = "scatterplot", col=moj_kolor, measure = c("support", "confidence"), shading = "lift")

Targeted Rules for “Very Difficult” Income

To specifically investigate the socio-economic drivers of extreme financial hardship, the Apriori algorithm was constrained to generate rules where the Right-Hand Side (RHS) was exclusively income_feeling=Very_Difficult.

Due to the relative rarity of this category in the ESS sample (5.2%), we applied a minimum support threshold of 0.001 and a confidence of 0.15. This approach prioritizes rules with a high Lift, identifying the unique risk clusters, such as the combination of long-term unemployment and poor health, that dramatically increase the probability of severe financial strain compared to the general population.

The discovered rules exhibit exceptionally high Lift values, ranging from 8.64 to 9.47. This indicates that individuals matching the profiles on the Left-Hand Side (LHS) are approximately nine times more likely to experience extreme financial hardship compared to the average European respondent. The results reveal a consistent cluster where multiple negative life factors overlap. Notably, every single top-10 rule includes both unemployed = Yes and health_cat = Poor. This confirms that the intersection of physical health issues and labor market exclusion is the most important driver of subjective poverty in the ESS Round 11 data. Rules 4 and 5 highlight that individuals in this state of distress almost universally support government intervention to reduce income inequality (redist_opinon = Agree). The constant presence of gov_sat_cat = Low across the rules suggests that financial strain is deeply connected to a lack of faith in national institutions, likely due to a perceived failure of the social safety net. While these “risk profiles” have low Support (appearing in roughly 0.1% of all transactions), their high Confidence and Lift make them invaluable for policy considerations. They prove that financial difficulty is not just about income levels, but a complex interaction of health, employment status, and psychological well-being.

rules_very_difficult <- apriori(data = data_t, 
                                parameter = list(supp = 0.001, conf = 0.15, minlen = 2), 
                                appearance = list(default = "lhs", 
                                                  rhs = "income_feeling=Very_Difficult"), 
                                control = list(verbose = F))
inspect(head(sort(rules_very_difficult, by = "lift"), 10))
##      lhs                       rhs                                 support confidence    coverage     lift count
## [1]  {ideology=Center,                                                                                          
##       life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       born_here=Yes,                                                                                            
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001054720  0.4883721 0.002159664 9.472706    42
## [2]  {ideology=Center,                                                                                          
##       life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001079832  0.4777778 0.002260114 9.267213    43
## [3]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       born_here=Yes,                                                                                            
##       unemployed=Yes,                                                                                           
##       imp_rich=Low}         => {income_feeling=Very_Difficult} 0.001029607  0.4659091 0.002209889 9.037002    41
## [4]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       redist_opinon=Agree,                                                                                      
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001732754  0.4630872 0.003741744 8.982269    69
## [5]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       redist_opinon=Agree,                                                                                      
##       born_here=Yes,                                                                                            
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001582080  0.4565217 0.003465508 8.854921    63
## [6]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       unemployed=Yes,                                                                                           
##       edu_cat=Medium}       => {income_feeling=Very_Difficult} 0.001104945  0.4536082 0.002435901 8.798409    44
## [7]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001958765  0.4534884 0.004319329 8.796084    78
## [8]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       unemployed=Yes,                                                                                           
##       imp_rich=Low}         => {income_feeling=Very_Difficult} 0.001079832  0.4526316 0.002385676 8.779465    43
## [9]  {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       born_here=Yes,                                                                                            
##       unemployed=Yes}       => {income_feeling=Very_Difficult} 0.001808091  0.4500000 0.004017980 8.728422    72
## [10] {life_sat_cat=Low,                                                                                         
##       gov_sat_cat=Low,                                                                                          
##       health_cat=Poor,                                                                                          
##       born_here=Yes,                                                                                            
##       unemployed=Yes,                                                                                           
##       edu_cat=Medium}       => {income_feeling=Very_Difficult} 0.001029607  0.4456522 0.002310339 8.644089    41
plot(head(sort(rules_very_difficult, by="lift"), 10), method="graph", engine="htmlwidget")
plot(head(sort(rules_very_difficult, by="lift"), 15), method="paracoord", control=list(reorder=TRUE))

Targeted Rules for “Difficult” Income

For the second-to-lowest income category, “Difficult”, we follow the same analytical procedure as before. While the “Very Difficult” category represents extreme poverty, the “Difficult” category captures a broader segment of the population struggling with financial instability. Since this category has a higher baseline frequency (15.9%) than “Very Difficult” (5.2%), the Support and Confidence thresholds are set slightly higher (supp=0.005 and conf=0.25) to filter out weak associations.

The targeted analysis for this income category highlights a distinct socio-economic profile focused on educational barriers and institutional reliance. With Lift values exceeding 2.35, the results indicate that individuals with low education (edu_cat=Low) and moderate life satisfaction are significantly more likely to face chronic financial strain. A critical insight from these rules is that several high-confidence rules involve individuals who are currently employed (unemployed=No) yet still report financial difficulty. This suggests that for this segment, employment alone is insufficient to guarantee financial security, particularly when combined with low institutional trust (gov_sat_cat=Low) and a high demand for state-led wealth redistribution.

rules_difficult <- apriori(data = data_t, 
                           parameter = list(supp = 0.005, conf = 0.25, minlen = 2), 
                           appearance = list(default = "lhs", 
                                             rhs = "income_feeling=Difficult"), 
                           control = list(verbose = F))

inspect(head(sort(rules_difficult, by = "lift"), 10))
##      lhs                        rhs                            support confidence   coverage     lift count
## [1]  {life_sat_cat=Low,                                                                                    
##       redist_opinon=Agree,                                                                                 
##       edu_cat=Low}           => {income_feeling=Difficult} 0.005148037  0.4035433 0.01275709 2.537022   205
## [2]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       redist_opinon=Agree,                                                                                 
##       edu_cat=Low,                                                                                         
##       imp_helping=High}      => {income_feeling=Difficult} 0.005173150  0.3872180 0.01335979 2.434387   206
## [3]  {life_sat_cat=Medium,                                                                                 
##       religiosity_cat=High,                                                                                
##       redist_opinon=Agree,                                                                                 
##       unemployed=No,                                                                                       
##       edu_cat=Low}           => {income_feeling=Difficult} 0.005198262  0.3833333 0.01356068 2.409965   207
## [4]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       redist_opinon=Agree,                                                                                 
##       edu_cat=Low}           => {income_feeling=Difficult} 0.008035961  0.3818616 0.02104417 2.400712   320
## [5]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       redist_opinon=Agree,                                                                                 
##       born_here=Yes,                                                                                       
##       unemployed=No,                                                                                       
##       edu_cat=Low}           => {income_feeling=Difficult} 0.005399161  0.3791887 0.01423872 2.383908   215
## [6]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       redist_opinon=Agree,                                                                                 
##       unemployed=No,                                                                                       
##       edu_cat=Low}           => {income_feeling=Difficult} 0.005600060  0.3786078 0.01479119 2.380256   223
## [7]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       redist_opinon=Agree,                                                                                 
##       born_here=Yes,                                                                                       
##       edu_cat=Low}           => {income_feeling=Difficult} 0.007533713  0.3773585 0.01996434 2.372402   300
## [8]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       religiosity_cat=High,                                                                                
##       redist_opinon=Agree,                                                                                 
##       born_here=Yes,                                                                                       
##       unemployed=No}         => {income_feeling=Difficult} 0.006428769  0.3748170 0.01715175 2.356424   256
## [9]  {life_sat_cat=Medium,                                                                                 
##       gov_sat_cat=Low,                                                                                     
##       religiosity_cat=High,                                                                                
##       redist_opinon=Agree,                                                                                 
##       born_here=Yes,                                                                                       
##       imp_helping=High}      => {income_feeling=Difficult} 0.006604555  0.3746439 0.01762889 2.355335   263
## [10] {life_sat_cat=Low,                                                                                    
##       edu_cat=Low}           => {income_feeling=Difficult} 0.006177645  0.3744292 0.01649883 2.353986   246
plot(head(sort(rules_difficult, by="lift"), 10), method="graph", engine="htmlwidget")
plot(head(sort(rules_difficult, by="lift"), 15), method="paracoord", control=list(reorder=TRUE))

Targeted Rules for “Coping” Income

The targeted analysis for the ‘Coping’ category reveals the socio-economic standard of the European population. With Support values reaching nearly 7.3% for complex rules, this group represents the most common demographic profile in the dataset.

The findings indicate that the ‘Coping’ segment is primarily composed of individuals with medium education and a history of stable employment (unemployed=No). Interestingly, high life satisfaction is frequently associated with this category, suggesting that financial ‘adequacy’, rather than wealth, is sufficient for a positive life outlook for a large portion of respondents.

The Lift values near 1.2 confirm that this is a baseline group: these traits are widely distributed across the sample and represent the normative social experience where individuals manage their finances without significant distress but also without the luxury of the ‘Comfortable’ class.”

rules_coping <- apriori(data = data_t, 
                        parameter = list(supp = 0.05, conf = 0.45, minlen = 2), 
                        appearance = list(default = "lhs", 
                                          rhs = "income_feeling=Coping"), 
                        control = list(verbose = F))
inspect(head(sort(rules_coping, by = "lift"), 10))
##      lhs                       rhs                        support confidence   coverage     lift count
## [1]  {ideology=Center,                                                                                
##       life_sat_cat=High,                                                                              
##       redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       edu_cat=Medium}       => {income_feeling=Coping} 0.06858190  0.5323587 0.12882650 1.190691  2731
## [2]  {ideology=Center,                                                                                
##       life_sat_cat=High,                                                                              
##       redist_opinon=Agree,                                                                            
##       edu_cat=Medium}       => {income_feeling=Coping} 0.07337837  0.5293478 0.13862033 1.183956  2922
## [3]  {life_sat_cat=High,                                                                              
##       redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       edu_cat=Medium,                                                                                 
##       imp_rich=Medium}      => {income_feeling=Coping} 0.05130459  0.5290005 0.09698400 1.183180  2043
## [4]  {life_sat_cat=High,                                                                              
##       redist_opinon=Agree,                                                                            
##       edu_cat=Medium,                                                                                 
##       imp_rich=Medium}      => {income_feeling=Coping} 0.05439341  0.5285505 0.10291052 1.182173  2166
## [5]  {ideology=Center,                                                                                
##       health_cat=Good,                                                                                
##       redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       unemployed=No,                                                                                  
##       edu_cat=Medium}       => {income_feeling=Coping} 0.05012431  0.5252632 0.09542704 1.174821  1996
## [6]  {redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       unemployed=No,                                                                                  
##       edu_cat=Medium,                                                                                 
##       imp_rich=Medium}      => {income_feeling=Coping} 0.05630195  0.5239542 0.10745586 1.171893  2242
## [7]  {life_sat_cat=High,                                                                              
##       gov_sat_cat=Low,                                                                                
##       redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       edu_cat=Medium}       => {income_feeling=Coping} 0.05047588  0.5235738 0.09640642 1.171042  2010
## [8]  {life_sat_cat=High,                                                                              
##       gov_sat_cat=Low,                                                                                
##       redist_opinon=Agree,                                                                            
##       edu_cat=Medium}       => {income_feeling=Coping} 0.05286156  0.5232414 0.10102710 1.170298  2105
## [9]  {life_sat_cat=High,                                                                              
##       gov_sat_cat=Medium,                                                                             
##       redist_opinon=Agree,                                                                            
##       edu_cat=Medium}       => {income_feeling=Coping} 0.05288667  0.5232298 0.10107732 1.170273  2106
## [10] {health_cat=Good,                                                                                
##       redist_opinon=Agree,                                                                            
##       born_here=Yes,                                                                                  
##       edu_cat=Medium,                                                                                 
##       imp_rich=Medium}      => {income_feeling=Coping} 0.05358981  0.5231674 0.10243339 1.170133  2134
plot(head(sort(rules_coping, by="lift"), 10), method="graph", engine="htmlwidget")
plot(head(sort(rules_coping, by="lift"), 15), method="paracoord", control=list(reorder=TRUE))

Targeted Rules for “Comfortable” Income

The analysis of the ‘Comfortable’ income category identifies a robust segment of success within the European population. With Confidence levels exceeding 70% and Lift values above 2.0, these rules define the protective profile against financial strain.

The dominant predictors of financial comfort are high educational attainment (edu_cat=High), stable employment (unemployed=No), and good subjective health. Interestingly, this group exhibits a clear ideological pattern: high satisfaction with national governance coupled with an opposition to income redistribution (redist_opinon=Disagree). These results suggest that for the most affluent segment, financial security is deeply intertwined with personal health capital, high educational attainment, and a positive outlook on institutional performance.

rules_comfortable <- apriori(data = data_t, 
                             parameter = list(supp = 0.01, conf = 0.6, minlen = 2), 
                             appearance = list(default = "lhs", 
                                               rhs = "income_feeling=Comfortable"), 
                             control = list(verbose = F))

inspect(head(sort(rules_comfortable, by = "lift"), 10))
##      lhs                          rhs                             support confidence   coverage     lift count
## [1]  {life_sat_cat=High,                                                                                      
##       health_cat=Good,                                                                                        
##       redist_opinon=Disagree,                                                                                 
##       unemployed=No,                                                                                          
##       edu_cat=High,                                                                                           
##       imp_helping=High}        => {income_feeling=Comfortable} 0.01125035  0.7356322 0.01529344 2.149201   448
## [2]  {life_sat_cat=High,                                                                                      
##       health_cat=Good,                                                                                        
##       redist_opinon=Disagree,                                                                                 
##       born_here=Yes,                                                                                          
##       unemployed=No,                                                                                          
##       edu_cat=High,                                                                                           
##       imp_helping=High}        => {income_feeling=Comfortable} 0.01009518  0.7322404 0.01378670 2.139292   402
## [3]  {life_sat_cat=High,                                                                                      
##       gov_sat_cat=High,                                                                                       
##       religiosity_cat=Low,                                                                                    
##       health_cat=Good,                                                                                        
##       unemployed=No,                                                                                          
##       edu_cat=High}            => {income_feeling=Comfortable} 0.01009518  0.7230216 0.01396248 2.112358   402
## [4]  {life_sat_cat=High,                                                                                      
##       redist_opinon=Disagree,                                                                                 
##       born_here=Yes,                                                                                          
##       unemployed=No,                                                                                          
##       edu_cat=High,                                                                                           
##       imp_helping=High}        => {income_feeling=Comfortable} 0.01200372  0.7220544 0.01662439 2.109532   478
## [5]  {life_sat_cat=High,                                                                                      
##       redist_opinon=Disagree,                                                                                 
##       unemployed=No,                                                                                          
##       edu_cat=High,                                                                                           
##       imp_helping=High}        => {income_feeling=Comfortable} 0.01330956  0.7201087 0.01848271 2.103848   530
## [6]  {life_sat_cat=High,                                                                                      
##       gov_sat_cat=High,                                                                                       
##       religiosity_cat=Low,                                                                                    
##       born_here=Yes,                                                                                          
##       unemployed=No,                                                                                          
##       edu_cat=High}            => {income_feeling=Comfortable} 0.01009518  0.7140320 0.01413827 2.086094   402
## [7]  {life_sat_cat=High,                                                                                      
##       health_cat=Good,                                                                                        
##       redist_opinon=Disagree,                                                                                 
##       unemployed=No,                                                                                          
##       edu_cat=High}            => {income_feeling=Comfortable} 0.01577057  0.7120181 0.02214912 2.080211   628
## [8]  {life_sat_cat=High,                                                                                      
##       gov_sat_cat=High,                                                                                       
##       religiosity_cat=Low,                                                                                    
##       unemployed=No,                                                                                          
##       edu_cat=High}            => {income_feeling=Comfortable} 0.01172748  0.7118902 0.01647372 2.079837   467
## [9]  {health_cat=Good,                                                                                        
##       redist_opinon=Disagree,                                                                                 
##       unemployed=No,                                                                                          
##       edu_cat=High,                                                                                           
##       imp_helping=High}        => {income_feeling=Comfortable} 0.01197860  0.7098214 0.01687552 2.073793   477
## [10] {gov_sat_cat=High,                                                                                       
##       religiosity_cat=Low,                                                                                    
##       health_cat=Good,                                                                                        
##       unemployed=No,                                                                                          
##       edu_cat=High}            => {income_feeling=Comfortable} 0.01037141  0.7084048 0.01464052 2.069654   413
plot(head(sort(rules_comfortable, by="lift"), 10), method="graph", engine="htmlwidget")
plot(head(sort(rules_comfortable, by="lift"), 15), method="paracoord", control=list(reorder=TRUE))

Conclusion

The association rules analysis conducted on the ESS Round 11 dataset reveals a clear divide in the socio-economic profiles of European households. By setting income_feeling as the rule consequent, we identified that financial well-being is not a random occurrence but a predictable outcome of specific clusters of life circumstances. The most striking finding is the segmeny associated with the Very Difficult category, where the intersection of labor market exclusion (unemployment) and poor physical health highly increases the likelihood of extreme financial strain. This suggests that for the most vulnerable, economic hardship is deeply intertwined with physical and professional marginalization.

In contrast, the Comfortable and Coping categories represent the more integrated segments of society. While the “Coping” status represents the majority characterized by medium education and stable employment, the “Comfortable” status is strongly protected by high human capital (education) and a high level of institutional satisfaction. Interestingly, an ideological shift is observable across the income feelings: as financial security increases, support for government-led redistribution decreases, and institutional trust significantly rises. Ultimately, these rules demonstrate that subjective poverty in Europe is a multidimensional phenomenon where education, health, and trust in national institutions play just as critical a role as traditional employment status.

Summary of Association Rule Patterns by Income Level
Income_Category Socio_Economic_Profile Statistical_Measures Main_Driver
Very Difficult Unemployed + Poor Health + Low Trust/Satisfaction Highest Lift (~9.0); extreme risk cluster Health & Labor Exclusion
Difficult Low Education + Working + Support for Redistribution Moderate Lift (~2.5); educational barriers Low Human Capital
Coping Medium Education + Born in Country + Stable Employment Baseline Support (~45%); societal norm Economic Stability
Comfortable High Education + High Trust + Opposition to Redistribution High Confidence (>70%); protective factors High Capital & Institutional Trust