# Required packages
packages <- c(
"tidyverse",
"sjPlot",
"broom",
"modelsummary",
"gt",
"knitr",
"dplyr",
"scales",
"kableExtra",
"flextable",
"car",
"fst"
)
# Install and load packages
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)) install.packages(new_packages)
lapply(packages, library, character.only = TRUE)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Learn more about sjPlot with 'browseVignettes("sjPlot")'.
## 
## 
## Adjuntando el paquete: 'scales'
## 
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
## 
## 
## 
## Adjuntando el paquete: 'kableExtra'
## 
## 
## The following object is masked from 'package:dplyr':
## 
##     group_rows
## 
## 
## 
## Adjuntando el paquete: 'flextable'
## 
## 
## The following objects are masked from 'package:kableExtra':
## 
##     as_image, footnote
## 
## 
## The following object is masked from 'package:purrr':
## 
##     compose
## 
## 
## Cargando paquete requerido: carData
## 
## 
## Adjuntando el paquete: 'car'
## 
## 
## The following object is masked from 'package:dplyr':
## 
##     recode
## 
## 
## The following object is masked from 'package:purrr':
## 
##     some
## [[1]]
##  [1] "lubridate" "forcats"   "stringr"   "dplyr"     "purrr"     "readr"    
##  [7] "tidyr"     "tibble"    "ggplot2"   "tidyverse" "stats"     "graphics" 
## [13] "grDevices" "utils"     "datasets"  "methods"   "base"     
## 
## [[2]]
##  [1] "sjPlot"    "lubridate" "forcats"   "stringr"   "dplyr"     "purrr"    
##  [7] "readr"     "tidyr"     "tibble"    "ggplot2"   "tidyverse" "stats"    
## [13] "graphics"  "grDevices" "utils"     "datasets"  "methods"   "base"     
## 
## [[3]]
##  [1] "broom"     "sjPlot"    "lubridate" "forcats"   "stringr"   "dplyr"    
##  [7] "purrr"     "readr"     "tidyr"     "tibble"    "ggplot2"   "tidyverse"
## [13] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"  
## [19] "base"     
## 
## [[4]]
##  [1] "modelsummary" "broom"        "sjPlot"       "lubridate"    "forcats"     
##  [6] "stringr"      "dplyr"        "purrr"        "readr"        "tidyr"       
## [11] "tibble"       "ggplot2"      "tidyverse"    "stats"        "graphics"    
## [16] "grDevices"    "utils"        "datasets"     "methods"      "base"        
## 
## [[5]]
##  [1] "gt"           "modelsummary" "broom"        "sjPlot"       "lubridate"   
##  [6] "forcats"      "stringr"      "dplyr"        "purrr"        "readr"       
## [11] "tidyr"        "tibble"       "ggplot2"      "tidyverse"    "stats"       
## [16] "graphics"     "grDevices"    "utils"        "datasets"     "methods"     
## [21] "base"        
## 
## [[6]]
##  [1] "knitr"        "gt"           "modelsummary" "broom"        "sjPlot"      
##  [6] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [11] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [16] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [21] "methods"      "base"        
## 
## [[7]]
##  [1] "knitr"        "gt"           "modelsummary" "broom"        "sjPlot"      
##  [6] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [11] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [16] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [21] "methods"      "base"        
## 
## [[8]]
##  [1] "scales"       "knitr"        "gt"           "modelsummary" "broom"       
##  [6] "sjPlot"       "lubridate"    "forcats"      "stringr"      "dplyr"       
## [11] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [16] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [21] "datasets"     "methods"      "base"        
## 
## [[9]]
##  [1] "kableExtra"   "scales"       "knitr"        "gt"           "modelsummary"
##  [6] "broom"        "sjPlot"       "lubridate"    "forcats"      "stringr"     
## [11] "dplyr"        "purrr"        "readr"        "tidyr"        "tibble"      
## [16] "ggplot2"      "tidyverse"    "stats"        "graphics"     "grDevices"   
## [21] "utils"        "datasets"     "methods"      "base"        
## 
## [[10]]
##  [1] "flextable"    "kableExtra"   "scales"       "knitr"        "gt"          
##  [6] "modelsummary" "broom"        "sjPlot"       "lubridate"    "forcats"     
## [11] "stringr"      "dplyr"        "purrr"        "readr"        "tidyr"       
## [16] "tibble"       "ggplot2"      "tidyverse"    "stats"        "graphics"    
## [21] "grDevices"    "utils"        "datasets"     "methods"      "base"        
## 
## [[11]]
##  [1] "car"          "carData"      "flextable"    "kableExtra"   "scales"      
##  [6] "knitr"        "gt"           "modelsummary" "broom"        "sjPlot"      
## [11] "lubridate"    "forcats"      "stringr"      "dplyr"        "purrr"       
## [16] "readr"        "tidyr"        "tibble"       "ggplot2"      "tidyverse"   
## [21] "stats"        "graphics"     "grDevices"    "utils"        "datasets"    
## [26] "methods"      "base"        
## 
## [[12]]
##  [1] "fst"          "car"          "carData"      "flextable"    "kableExtra"  
##  [6] "scales"       "knitr"        "gt"           "modelsummary" "broom"       
## [11] "sjPlot"       "lubridate"    "forcats"      "stringr"      "dplyr"       
## [16] "purrr"        "readr"        "tidyr"        "tibble"       "ggplot2"     
## [21] "tidyverse"    "stats"        "graphics"     "grDevices"    "utils"       
## [26] "datasets"     "methods"      "base"
chs <- read.csv("C:/Users/luisr/Downloads/CHS2021ECL_PUMF.csv")

Task 1: Life Satisfaction in Atlantic Canada Regions

Data Preparation

table(chs$PGEOGR, useNA = "ifany") #checking variable data
## 
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
## 2446 1714 1088 1977 2037 2001 1218 1165 1395 2195  946 1021 1009 1091 1033 2233 
##   17   18   19   20   21   22   23   24   25   26   27   28 
## 1037 1924  997  940 1742 1078  968 2748 1110 1123 1964  788
table(chs$PLIS_05, useNA = "ifany") #checking variable data
## 
##    1    2    3    4    5    6    7    8    9   99 
## 1442 1059 1164 3933 3279 6634 9707 5597 7881  292
atlantic_region_data <- chs %>%
  filter(PGEOGR %in% c(1, 2, 3, 4, 5, 6)) %>%
  select(PGEOGR, PLIS_05) %>%
  filter(PLIS_05 != 99, !is.na(PLIS_05)) %>%
  mutate(region = factor(PGEOGR,
                         levels = c(1, 2, 3, 4, 5, 6),
                         labels = c("Newfoundland and Labrador", 
                                    "Prince Edward Island",
                                    "Halifax",
                                    "Rest of Nova Scotia",
                                    "Saint John and Mocton",
                                    "Rest of New Brunswick")),
         life_satisfaction = case_when(
           PLIS_05 == 1 ~ "Very dissatisfied",
           PLIS_05 %in% c(2, 3) ~ "Dissatisfied",
           PLIS_05 %in% c(4, 5) ~ "Neutral",
           PLIS_05 %in% c(6, 7) ~ "Satisfied",
           PLIS_05 %in% c(8, 9) ~ "Very satisfied"
         ),
         life_satisfaction = factor(life_satisfaction,
                                    levels = c("Very dissatisfied", "Dissatisfied", 
                                               "Neutral", "Satisfied", "Very satisfied")))

Visualization with Boxplot

ggplot(atlantic_region_data, aes(x = region, y = PLIS_05, fill = region)) +
  geom_boxplot(outlier.shape = 16, outlier.size = 2, outlier.color = "blue") +
  labs(
    title = "Life Satisfaction Across Atlantic Canada Regions",
    x = "Region",
    y = "Life Satisfaction Score"
  ) +
  scale_fill_brewer(palette = "Dark2") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 40, size = 8, hjust = 1, family = "sans", colour = "gray20"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5, family = "serif", colour = "darkred"), 
    axis.text = element_text(size = 12, family = "sans"),
    axis.title = element_text(size = 14, family = "serif")
  )

Descriptive Analysis

The boxplot shows the distribution of life satisfaction scores (PLIS_05) across various Atlantic Canada regions: Newfoundland and Labrador, Prince Edward Island, Halifax, Rest of Nova Scotia, Saint John and Moncton, and Rest of New Brunswick.

The median life satisfaction scores slightly vary across regions, but most are located within the higher range of the response scale (6 to 9), indicating that most respondents report moderate to high levels of satisfaction. Regions with higher medians appear to be Halifax and Prince Edward Island, while Newfoundland and Labrador shows a slightly lower median.

The width of the boxes reflects the interquartile range (IQR), indicating that Halifax has a narrower IQR compared to other regions, suggesting more consistent responses. In contrast, the Rest of Nova Scotia displays a wider IQR, indicating greater variability in responses.

When considering outliers, some regions such as Saint John and Moncton exhibit significantly lower scores than the rest, which may be due to differences in socioeconomic or cultural characteristics.

Overall, there appear to be some differences in life satisfaction between regions, although most scores are consistently high.

Regression Analysis

model <- lm(PLIS_05 ~ region, data = atlantic_region_data)
#Summary of the regression model
summary(model)
## 
## Call:
## lm(formula = PLIS_05 ~ region, data = atlantic_region_data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7721 -0.7721  0.3052  1.4802  2.7500 
## 
## Coefficients:
##                             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  6.69485    0.04166 160.702  < 2e-16 ***
## regionPrince Edward Island   0.07727    0.06482   1.192  0.23323    
## regionHalifax               -0.44485    0.07495  -5.935 3.03e-09 ***
## regionRest of Nova Scotia   -0.07711    0.06230  -1.238  0.21582    
## regionSaint John and Mocton -0.17502    0.06182  -2.831  0.00464 ** 
## regionRest of New Brunswick  0.01389    0.06213   0.224  0.82313    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.052 on 11171 degrees of freedom
## Multiple R-squared:  0.005023,   Adjusted R-squared:  0.004577 
## F-statistic: 11.28 on 5 and 11171 DF,  p-value: 7.196e-11
plot_model(model, 
           type = "est", 
           show.values = TRUE, 
           value.offset = 0.3, 
           vline.color = "red") +
  labs(
    title = "Regression Coefficients Visualization: Life Satisfaction Across Atlantic Canada Regions",
    x = "Region",
    y = "Coefficient Estimate"
  ) +
  theme_minimal()

prediction_labels <- c(
  "(Intercept)" = "Intercept",
  "regionPrince Edward Island" = "Prince Edward Island",
  "regionHalifax" = "Halifax",             
  "regionRest of Nova Scotia" = "Rest of Nova Scotia",
  "regionSaint John and Mocton" = "Saint John and Mocton",
  "regionRest of New Brunswick" = "Rest of New Brunswick" 
)

tab_model(
  model,
  pred.labels = prediction_labels,
  dv.labels = "Life Satisfaction",
  title = "Linear Regression Results: Life Satisfaction by Region"
)
Linear Regression Results: Life Satisfaction by Region
  Life Satisfaction
Predictors Estimates CI p
Intercept 6.69 6.61 – 6.78 <0.001
Prince Edward Island 0.08 -0.05 – 0.20 0.233
Halifax -0.44 -0.59 – -0.30 <0.001
Rest of Nova Scotia -0.08 -0.20 – 0.05 0.216
Saint John and Mocton -0.18 -0.30 – -0.05 0.005
Rest of New Brunswick 0.01 -0.11 – 0.14 0.823
Observations 11177
R2 / R2 adjusted 0.005 / 0.005

Regression Interpretation

A linear regression model was conducted using region as the predictor and life satisfaction (PLIS_05) as the dependent variable. This analysis aims to determine if there are statistically significant differences in life satisfaction across the various Atlantic Canada regions.

Intercept

The intercept represents the average life satisfaction score for the reference region (Newfoundland and Labrador). Any other coefficient in the model should be interpreted as a change in life satisfaction compared to this baseline region. Coefficients Interpretation. Each coefficient in the regression model indicates how much life satisfaction changes on average when comparing a region to the reference region. Positive coefficients indicate that a region has, on average, higher life satisfaction than the reference region, while negative coefficients suggest the opposite.

For example:

If the coefficient for Prince Edward Island is positive and significant, it implies that life satisfaction in this region is higher on average compared to Newfoundland and Labrador.

If the coefficient for Saint John and Moncton is negative and significant, it suggests that this region has lower life satisfaction on average compared to Newfoundland and Labrador.

Statistical Significance

Statistical significance is assessed using the p-values associated with each coefficient. A p-value below 0.05 indicates that the difference with the reference region is statistically significant. Based on the coefficient visualization generated with sjPlot, it is possible to quickly identify which regions differ significantly from Newfoundland and Labrador.

Magnitude of the Effect

The size of the coefficients reflects the magnitude of the differences between regions. Regions with larger coefficients (either positive or negative) have a stronger effect on life satisfaction compared to the reference region. R² and Model Fit. The R² value provides information about the proportion of variability in life satisfaction explained by the predictor (region). A low R² suggests that other important factors affecting life satisfaction are not included in the model. In this case, if the R² is low, it means that even though there are significant differences between some regions, region alone is not a strong predictor of life satisfaction.

General Conclusion

The analysis shows that there are significant differences in life satisfaction between some Atlantic Canada regions. However, the model also suggests that region alone does not explain a large portion of the variability in life satisfaction, indicating that other individual or contextual factors likely influence this outcome.

Task 2: Populist Attitudes in Portugal

Part A: Data Preparation

Portugal_data <- read.fst("C:/Users/luisr/Downloads/portugal_data.fst")
colnames(Portugal_data)
##    [1] "name"      "essround"  "edition"   "proddate"  "cntry"     "idno"     
##    [7] "dweight"   "pspwght"   "pweight"   "anweight"  "prob"      "stratum"  
##   [13] "psu"       "netuse"    "netusoft"  "netustm"   "nwspol"    "nwsppol"  
##   [19] "nwsptot"   "pplfair"   "pplhlp"    "ppltrst"   "rdpol"     "rdtot"    
##   [25] "tvpol"     "tvtot"     "actrolg"   "actrolga"  "badge"     "bctprd"   
##   [31] "bghtprd"   "clsprty"   "contplt"   "cptppol"   "cptppola"  "dclagr"   
##   [37] "dclaid"    "dclcrm"    "dcldef"    "dclenv"    "dclintr"   "dclmig"   
##   [43] "dclwlfr"   "dmcntov"   "dntmny"    "ecohenv"   "etapapl"   "euftf"    
##   [49] "freehms"   "gincdif"   "ginveco"   "hmsacld"   "hmsfmlsh"  "ilglpst"  
##   [55] "lawobey"   "lrscale"   "mmbprty"   "needtru"   "pbldmn"    "pbldmna"  
##   [61] "pltcare"   "pltinvt"   "polactiv"  "polcmpl"   "poldcs"    "polintr"  
##   [67] "prtdgcl"   "prtyban"   "psppipl"   "psppipla"  "psppsgv"   "psppsgva" 
##   [73] "pstplonl"  "ptcpplt"   "scnsenv"   "sgnptit"   "stfdem"    "stfeco"   
##   [79] "stfedu"    "stfgov"    "stfhlth"   "stflife"   "trstep"    "trstlgl"  
##   [85] "trstplc"   "trstplt"   "trstprl"   "trstprt"   "trstun"    "vote"     
##   [91] "wrkorg"    "wrkprty"   "imsmetn"   "imdfetn"   "impcntr"   "imbgeco"  
##   [97] "imueclt"   "imwbcnt"   "volunfp"   "lrnobed"   "loylead"   "donprty"  
##  [103] "prtvde1"   "prtvade1"  "prtvbde1"  "prtvcde1"  "prtvdde1"  "prtvede1" 
##  [109] "prtvfde1"  "prtvde2"   "prtvade2"  "prtvbde2"  "prtvcde2"  "prtvdde2" 
##  [115] "prtvede2"  "prtvfde2"  "prtvlt1"   "prtvalt1"  "prtvblt1"  "prtvclt1" 
##  [121] "prtvlt2"   "prtvalt2"  "prtvblt2"  "prtvclt2"  "prtvlt3"   "prtvalt3" 
##  [127] "prtvblt3"  "prtvclt3"  "prtvtal"   "prtvtat"   "prtvtaat"  "prtvtbat" 
##  [133] "prtvtcat"  "prtvtbe"   "prtvtabe"  "prtvtbbe"  "prtvtcbe"  "prtvtdbe" 
##  [139] "prtvtebe"  "prtvtbg"   "prtvtabg"  "prtvtbbg"  "prtvtcbg"  "prtvtdbg" 
##  [145] "prtvtebg"  "prtvtch"   "prtvtach"  "prtvtbch"  "prtvtcch"  "prtvtdch" 
##  [151] "prtvtech"  "prtvtfch"  "prtvtgch"  "prtvthch"  "prtvtcy"   "prtvtacy" 
##  [157] "prtvtbcy"  "prtvtccy"  "prtvtcz"   "prtvtacz"  "prtvtbcz"  "prtvtccz" 
##  [163] "prtvtdcz"  "prtvtecz"  "prtvtdk"   "prtvtadk"  "prtvtbdk"  "prtvtcdk" 
##  [169] "prtvtddk"  "prtvtee"   "prtvtaee"  "prtvtbee"  "prtvtcee"  "prtvtdee" 
##  [175] "prtvteee"  "prtvtfee"  "prtvtgee"  "prtvthee"  "prtvtes"   "prtvtaes" 
##  [181] "prtvtbes"  "prtvtces"  "prtvtdes"  "prtvtees"  "prtvtfes"  "prtvtfi"  
##  [187] "prtvtafi"  "prtvtbfi"  "prtvtcfi"  "prtvtdfi"  "prtvtefi"  "prtvtfr"  
##  [193] "prtvtafr"  "prtvtbfr"  "prtvtcfr"  "prtvtdfr"  "prtvtefr"  "prtvtgb"  
##  [199] "prtvtagb"  "prtvtbgb"  "prtvtcgb"  "prtvtdgb"  "prtvtgr"   "prtvtagr" 
##  [205] "prtvtbgr"  "prtvtcgr"  "prtvtdgr"  "prtvthr"   "prtvtahr"  "prtvtbhr" 
##  [211] "prtvthu"   "prtvtahu"  "prtvtbhu"  "prtvtchu"  "prtvtdhu"  "prtvtehu" 
##  [217] "prtvtfhu"  "prtvtghu"  "prtvtie"   "prtvtaie"  "prtvtbie"  "prtvtcie" 
##  [223] "prtvtdie"  "prtvtil"   "prtvtail"  "prtvtbil"  "prtvtcil"  "prtvtdil" 
##  [229] "prtvtis"   "prtvtais"  "prtvtbis"  "prtvtcis"  "prtvtdis"  "prtvtit"  
##  [235] "prtvtait"  "prtvtbit"  "prtvtcit"  "prtvtdit"  "prtvtlu"   "prtvtlv"  
##  [241] "prtvtalv"  "prtvtnl"   "prtvtanl"  "prtvtbnl"  "prtvtcnl"  "prtvtdnl" 
##  [247] "prtvtenl"  "prtvtfnl"  "prtvtgnl"  "prtvthnl"  "prtvtno"   "prtvtano" 
##  [253] "prtvtbno"  "prtvtpl"   "prtvtapl"  "prtvtbpl"  "prtvtcpl"  "prtvtdpl" 
##  [259] "prtvtepl"  "prtvtpt"   "prtvtapt"  "prtvtbpt"  "prtvtcpt"  "prtvtdpt" 
##  [265] "prtvtro"   "prtvtaro"  "prtvtru"   "prtvtaru"  "prtvtbru"  "prtvtcru" 
##  [271] "prtvtdru"  "prtvtse"   "prtvtase"  "prtvtbse"  "prtvtcse"  "prtvtdse" 
##  [277] "prtvtsi"   "prtvtasi"  "prtvtbsi"  "prtvtcsi"  "prtvtdsi"  "prtvtesi" 
##  [283] "prtvtfsi"  "prtvtsk"   "prtvtask"  "prtvtbsk"  "prtvtcsk"  "prtvtdsk" 
##  [289] "prtvtesk"  "prtvttr"   "prtvtatr"  "prtvtua"   "prtvtaua"  "prtvtbua" 
##  [295] "prtvtcua"  "prtvtxk"   "prtvtrs"   "prtvtars"  "prtvtme"   "prtvtame" 
##  [301] "prtclal"   "prtclat"   "prtclaat"  "prtclcat"  "prtcldat"  "prtclbe"  
##  [307] "prtclabe"  "prtclbbe"  "prtclcbe"  "prtcldbe"  "prtclebe"  "prtclbg"  
##  [313] "prtclabg"  "prtclbbg"  "prtclcbg"  "prtcldbg"  "prtclebg"  "prtclch"  
##  [319] "prtclach"  "prtclbch"  "prtclcch"  "prtcldch"  "prtclech"  "prtclfch" 
##  [325] "prtclgch"  "prtclhch"  "prtclsk"   "prtclask"  "prtclbsk"  "prtclcsk" 
##  [331] "prtcldsk"  "prtclesk"  "prtclcy"   "prtclacy"  "prtclbcy"  "prtclccy" 
##  [337] "prtclcz"   "prtclacz"  "prtclbcz"  "prtclccz"  "prtcldcz"  "prtclecz" 
##  [343] "prtclde"   "prtclade"  "prtclbde"  "prtclcde"  "prtcldde"  "prtclede" 
##  [349] "prtclfde"  "prtcldk"   "prtcladk"  "prtclbdk"  "prtclcdk"  "prtclddk" 
##  [355] "prtclee"   "prtclaee"  "prtclbee"  "prtclcee"  "prtcldee"  "prtcleee" 
##  [361] "prtclfee"  "prtclgee"  "prtclhee"  "prtcles"   "prtclaes"  "prtclbes" 
##  [367] "prtclces"  "prtcldes"  "prtclees"  "prtclfes"  "prtclges"  "prtclfi"  
##  [373] "prtclafi"  "prtclbfi"  "prtclcfi"  "prtcldfi"  "prtclefi"  "prtclffi" 
##  [379] "prtclfr"   "prtclafr"  "prtclbfr"  "prtclcfr"  "prtcldfr"  "prtclefr" 
##  [385] "prtclffr"  "prtclgb"   "prtclagb"  "prtclbgb"  "prtclcgb"  "prtcldgb" 
##  [391] "prtclgr"   "prtclagr"  "prtclbgr"  "prtclcgr"  "prtcldgr"  "prtclhr"  
##  [397] "prtclahr"  "prtclbhr"  "prtclhu"   "prtclahu"  "prtclbhu"  "prtclchu" 
##  [403] "prtcldhu"  "prtclehu"  "prtclfhu"  "prtclghu"  "prtclhhu"  "prtclie"  
##  [409] "prtclaie"  "prtclbie"  "prtclcie"  "prtcldie"  "prtcleie"  "prtclfie" 
##  [415] "prtclil"   "prtclail"  "prtclbil"  "prtclcil"  "prtcldil"  "prtcleil" 
##  [421] "prtclis"   "prtclais"  "prtclbis"  "prtclcis"  "prtcldis"  "prtclit"  
##  [427] "prtclait"  "prtclbit"  "prtclcit"  "prtcldit"  "prtcleit"  "prtcllt"  
##  [433] "prtclalt"  "prtclblt"  "prtclclt"  "prtcllu"   "prtcllv"   "prtclalv" 
##  [439] "prtclnl"   "prtclanl"  "prtclbnl"  "prtclcnl"  "prtcldnl"  "prtclenl" 
##  [445] "prtclfnl"  "prtclgnl"  "prtclno"   "prtclano"  "prtclbno"  "prtclpl"  
##  [451] "prtclapl"  "prtclbpl"  "prtclcpl"  "prtcldpl"  "prtclepl"  "prtclfpl" 
##  [457] "prtclgpl"  "prtclhpl"  "prtclipl"  "prtclpt"   "prtclapt"  "prtclbpt" 
##  [463] "prtclcpt"  "prtcldpt"  "prtclept"  "prtclfpt"  "prtclro"   "prtclaro" 
##  [469] "prtclru"   "prtclaru"  "prtclbru"  "prtclcru"  "prtcldru"  "prtclse"  
##  [475] "prtclase"  "prtclbse"  "prtclcse"  "prtcldse"  "prtclsi"   "prtclasi" 
##  [481] "prtclbsi"  "prtclcsi"  "prtcldsi"  "prtclesi"  "prtclfsi"  "prtcltr"  
##  [487] "prtclatr"  "prtclua"   "prtclaua"  "prtclbua"  "prtclcua"  "prtcldua" 
##  [493] "prtclxk"   "prtclrs"   "prtclars"  "prtclme"   "prtclame"  "prtmbat"  
##  [499] "prtmbaat"  "prtmbbe"   "prtmbabe"  "prtmbbbe"  "prtmbcbe"  "prtmbbg"  
##  [505] "prtmbabg"  "prtmbbbg"  "prtmbch"   "prtmbach"  "prtmbbch"  "prtmbcch" 
##  [511] "prtmbcy"   "prtmbcz"   "prtmbacz"  "prtmbbcz"  "prtmbde"   "prtmbade" 
##  [517] "prtmbbde"  "prtmbcde"  "prtmbdk"   "prtmbadk"  "prtmbbdk"  "prtmbee"  
##  [523] "prtmbaee"  "prtmbbee"  "prtmbcee"  "prtmbes"   "prtmbaes"  "prtmbbes" 
##  [529] "prtmbfi"   "prtmbafi"  "prtmbbfi"  "prtmbfr"   "prtmbafr"  "prtmbbfr" 
##  [535] "prtmbcfr"  "prtmbgb"   "prtmbagb"  "prtmbgr"   "prtmbagr"  "prtmbbgr" 
##  [541] "prtmbcgr"  "prtmbhr"   "prtmbhu"   "prtmbahu"  "prtmbbhu"  "prtmbchu" 
##  [547] "prtmbie"   "prtmbaie"  "prtmbbie"  "prtmbil"   "prtmbail"  "prtmbbil" 
##  [553] "prtmbis"   "prtmbit"   "prtmbait"  "prtmblt"   "prtmblu"   "prtmblv"  
##  [559] "prtmbnl"   "prtmbanl"  "prtmbbnl"  "prtmbcnl"  "prtmbno"   "prtmbano" 
##  [565] "prtmbpl"   "prtmbapl"  "prtmbbpl"  "prtmbcpl"  "prtmbdpl"  "prtmbpt"  
##  [571] "prtmbapt"  "prtmbbpt"  "prtmbro"   "prtmbaro"  "prtmbru"   "prtmbaru" 
##  [577] "prtmbbru"  "prtmbse"   "prtmbase"  "prtmbsi"   "prtmbasi"  "prtmbbsi" 
##  [583] "prtmbcsi"  "prtmbsk"   "prtmbask"  "prtmbbsk"  "prtmbtr"   "prtmbatr" 
##  [589] "prtmbua"   "prtmbaua"  "prtmbbua"  "prtmbcua"  "aesfdrk"   "atchctr"  
##  [595] "atcherp"   "blgetmg"   "brghmef"   "brghmwr"   "brncntr"   "cntbrth"  
##  [601] "cntbrtha"  "cntbrthb"  "cntbrthc"  "cntbrthd"  "crmvct"    "crvctef"  
##  [607] "crvctwr"   "ctzcntr"   "ctzship"   "ctzshipa"  "ctzshipb"  "ctzshipc" 
##  [613] "ctzshipd"  "dscrage"   "dscrdk"    "dscrdsb"   "dscretn"   "dscrgnd"  
##  [619] "dscrgrp"   "dscrlng"   "dscrna"    "dscrnap"   "dscrntn"   "dscroth"  
##  [625] "dscrrce"   "dscrref"   "dscrrlg"   "dscrsex"   "facntn"    "facntr"   
##  [631] "fbrncnt"   "fbrncnta"  "fbrncntb"  "fbrncntc"  "happy"     "health"   
##  [637] "hlthhmp"   "inmdisc"   "inprdsc"   "livecntr"  "livecnta"  "lnghoma"  
##  [643] "lnghom1"   "lnghomb"   "lnghom2"   "mbrncnt"   "mbrncnta"  "mbrncntb" 
##  [649] "mbrncntc"  "mmbrn"     "mocntn"    "mocntr"    "pray"      "rlgatnd"  
##  [655] "rlgblg"    "rlgblge"   "rlgdgr"    "rlgdnm"    "rlgdnme"   "sclact"   
##  [661] "sclmeet"   "trrcnyr"   "trrenyr"   "trrprsn"   "trrtort"   "feethngr" 
##  [667] "vteurmmb"  "vteubcmb"  "vteumbgb"  "rlgdnal"   "rlgdnat"   "rlgdnbat" 
##  [673] "rlgdnbe"   "rlgdnch"   "rlgdnach"  "rlgdncy"   "rlgdnacy"  "rlgdnde"  
##  [679] "rlgdnade"  "rlgdndk"   "rlgdnfi"   "rlgdnafi"  "rlgdngb"   "rlgdngr"  
##  [685] "rlgdnagr"  "rlgdnhu"   "rlgdnie"   "rlgdnil"   "rlgdnis"   "rlgdnais" 
##  [691] "rlgdnlt"   "rlgdnlv"   "rlgdnnl"   "rlgdnanl"  "rlgdnno"   "rlgdnpl"  
##  [697] "rlgdnapl"  "rlgdnbpl"  "rlgdnpt"   "rlgdnro"   "rlgdnru"   "rlgdnaru" 
##  [703] "rlgdnse"   "rlgdnase"  "rlgdnsi"   "rlgdnsk"   "rlgdnask"  "rlgdnbsk" 
##  [709] "rlgdnua"   "rlgdnrs"   "rlgdme"    "rlgdeal"   "rlgdeat"   "rlgdebat" 
##  [715] "rlgdebe"   "rlgdech"   "rlgdeach"  "rlgdecy"   "rlgdeacy"  "rlgdede"  
##  [721] "rlgdeade"  "rlgdedk"   "rlgdefi"   "rlgdeafi"  "rlgdegb"   "rlgdegr"  
##  [727] "rlgdeagr"  "rlgdehu"   "rlgdeie"   "rlgdeil"   "rlgdeis"   "rlgdeais" 
##  [733] "rlgdelt"   "rlgdelv"   "rlgdenl"   "rlgdeanl"  "rlgdeno"   "rlgdepl"  
##  [739] "rlgdeapl"  "rlgdebpl"  "rlgdept"   "rlgdero"   "rlgderu"   "rlgdearu" 
##  [745] "rlgdese"   "rlgdease"  "rlgdesi"   "rlgdesk"   "rlgdeask"  "rlgdebsk" 
##  [751] "rlgdeua"   "rlgders"   "rlgdeme"   "hhmmb"     "gndr"      "gndr2"    
##  [757] "gndr3"     "gndr4"     "gndr5"     "gndr6"     "gndr7"     "gndr8"    
##  [763] "gndr9"     "gndr10"    "gndr11"    "gndr12"    "gndr13"    "gndr14"   
##  [769] "gndr15"    "gndr16"    "gndr17"    "gndr18"    "gndr19"    "gndr20"   
##  [775] "gndr21"    "gndr22"    "gndr23"    "gndr24"    "rship2"    "rshipa2"  
##  [781] "rship3"    "rshipa3"   "rship4"    "rshipa4"   "rship5"    "rshipa5"  
##  [787] "rship6"    "rshipa6"   "rship7"    "rshipa7"   "rship8"    "rshipa8"  
##  [793] "rship9"    "rshipa9"   "rship10"   "rshipa10"  "rship11"   "rshipa11" 
##  [799] "rship12"   "rshipa12"  "rship13"   "rshipa13"  "rship14"   "rshipa14" 
##  [805] "rship15"   "rshipa15"  "rshipa16"  "rshipa17"  "rshipa18"  "rshipa19" 
##  [811] "rshipa20"  "rshipa21"  "rshipa22"  "rshipa23"  "rshipa24"  "yrbrn2"   
##  [817] "yrbrn3"    "yrbrn4"    "yrbrn5"    "yrbrn6"    "yrbrn7"    "yrbrn8"   
##  [823] "yrbrn9"    "yrbrn10"   "yrbrn11"   "yrbrn12"   "yrbrn13"   "yrbrn14"  
##  [829] "yrbrn15"   "yrbrn16"   "yrbrn17"   "yrbrn18"   "yrbrn19"   "yrbrn20"  
##  [835] "yrbrn21"   "yrbrn22"   "yrbrn23"   "yrbrn24"   "age"       "agea"     
##  [841] "ablrtr"    "anctry1"   "anctry2"   "atncrse"   "brwmny"    "chldhhe"  
##  [847] "chldhm"    "cmsrv"     "cmsrvp"    "crpdwk"    "crpdwkp"   "dngdk"    
##  [853] "dngdkp"    "dngna"     "dngnap"    "dngnapp"   "dngoth"    "dngothp"  
##  [859] "dngref"    "dngrefp"   "domicil"   "dsbld"     "dsbldp"    "dvrcdev"  
##  [865] "dvrcdeva"  "edctn"     "edctnp"    "edufld"    "edulvla"   "edulvlb"  
##  [871] "edulvlfa"  "edulvlfb"  "edulvlma"  "edulvlmb"  "edulvlpa"  "edulvlpb" 
##  [877] "eduyrs"    "eisced"    "eiscedf"   "eiscedm"   "eiscedp"   "emplno"   
##  [883] "emplnof"   "emplnom"   "emplnop"   "emplrel"   "emprelp"   "emprf14"  
##  [889] "emprm14"   "estsz"     "fxltph"    "faalv"     "hhmodwl"   "hincfel"  
##  [895] "hincsrc"   "hincsrca"  "hinctnt"   "hinctnta"  "hswrk"     "hswrkp"   
##  [901] "iccohbt"   "icmnart"   "icmsw"     "icomdng"   "icomdnp"   "icpdwk2"  
##  [907] "icpdwrk"   "icppdwk"   "icwhct"    "inttph"    "ioactp"    "iorgact"  
##  [913] "isco08"    "isco08p"   "iscoco"    "iscocop"   "jbspv"     "jbspvf"   
##  [919] "jbspvm"    "jbspvp"    "lvghw"     "lvghwa"    "lvgoptn"   "lvgptn"   
##  [925] "lvgptna"   "lvgptne"   "lvgptnea"  "mainact"   "marital"   "maritala" 
##  [931] "maritalb"  "marsts"    "mbltph"    "mbtru"     "mnactic"   "mnactp"   
##  [937] "moalv"     "njbspv"    "njbspvp"   "occf14"    "occf14a"   "occf14b"  
##  [943] "occf14ie"  "occm14"    "occm14a"   "occm14b"   "occm14ie"  "orgwrk"   
##  [949] "partner"   "pdjobev"   "pdjobyr"   "pdwrk"     "pdwrkp"    "rmhhus"   
##  [955] "rshpsts"   "rtdsbyr"   "rtrd"      "rtrdp"     "tporgwk"   "uemp12m"  
##  [961] "uemp3m"    "uemp5yr"   "uempla"    "uemplap"   "uempli"    "uemplip"  
##  [967] "wkdcorp"   "wkhtot"    "wkhtotp"   "wrkac6m"   "wrkctr"    "wrkctra"  
##  [973] "wrkctrhu"  "wkdcorg"   "wkdcorga"  "nacer1"    "nacer11"   "nacer2"   
##  [979] "edagegb"   "edlvat"    "edlveat"   "eduat1"    "eduat2"    "edlvbe"   
##  [985] "edlvabe"   "edlvdbe"   "edlvebe"   "edlvbg"    "edlvdbg"   "edlvebg"  
##  [991] "edlvch"    "edlvach"   "edlvbch"   "edlvcch"   "edlvdch"   "edlvcy"   
##  [997] "edlvacy"   "edlvdcy"   "edlvecy"   "edlvgcy"   "edlvcz"    "edlvdcz"  
## [1003] "edlvdal"   "edlvde"    "edlvade"   "edlvdfi"   "edlvdis"   "edlvdk"   
## [1009] "edlvadk"   "edlvddk"   "edlvdxk"   "edlvee"    "edlvaee"   "edlvbee"  
## [1015] "edlvdee"   "edlves"    "edlvaes"   "edlvdes"   "edlvees"   "edlvges"  
## [1021] "edlvhes"   "edlvfr"    "edlvafr"   "edlvbfr"   "edlvdfr"   "edlvgb"   
## [1027] "edlvagb"   "edlvgr"    "edlvagr"   "edlvdgr"   "edlvegr"   "edlvhr"   
## [1033] "edlvdhr"   "edlvehr"   "edlvhu"    "edlvahu"   "edlvbhu"   "edlvdhu"  
## [1039] "edlvdahu"  "edlvie"    "edlvaie"   "edlvbie"   "edlvdie"   "edlvil"   
## [1045] "edlvail"   "eduil1"    "eduail1"   "edubil1"   "edlvit"    "edlvait"  
## [1051] "edlvdit"   "edlveit"   "edlvlt"    "edlvdlt"   "edlvlu"    "edlvlv"   
## [1057] "edlvdlv"   "edlvelv"   "edlvnl"    "edlvdnl"   "edlvenl"   "edlvno"   
## [1063] "edlvano"   "edlvdno"   "edlveno"   "edlvpl"    "edlvapl"   "edlvbpl"  
## [1069] "edlvdpl"   "edlvepl"   "edlvgpl"   "edlvhpl"   "edlvpt"    "edlvapt"  
## [1075] "edlvbpt"   "edlvdpt"   "edlvro"    "edlvru"    "edlvdru"   "edlvse"   
## [1081] "edlvase"   "edlvdse"   "edlvsi"    "edlvasi"   "edlvdsi"   "edlvesi"  
## [1087] "edlvsk"    "edlvask"   "edlvdsk"   "edlvtr"    "edlvua"    "edlvaua"  
## [1093] "edlvdua"   "edude1"    "eduade1"   "edubde1"   "educde1"   "edude2"   
## [1099] "eduade2"   "edubde2"   "edude3"    "eduade3"   "edugb2"    "eduagb2"  
## [1105] "edubgb2"   "eduil2"    "eduail2"   "edupl2"    "eduyrpl"   "edugb1"   
## [1111] "eduagb1"   "edubgb1"   "educgb1"   "edlvdrs"   "edlvdme"   "edagepgb" 
## [1117] "edlvpat"   "edlvpeat"  "edlvpfat"  "edlvpbe"   "edlvpdbe"  "edlvpebe" 
## [1123] "edlvpch"   "edlvpdch"  "edlvpcy"   "edlvpdcy"  "edlvpecy"  "edlvpgcy" 
## [1129] "edlvpcz"   "edlvpdcz"  "edlvpdbg"  "edlvpebg"  "edlvpdfi"  "edlvpdis" 
## [1135] "edlvpdit"  "edlvpeit"  "edlvpdk"   "edlvpddk"  "edlvpdxk"  "edlvpee"  
## [1141] "edlvpdee"  "edlvpes"   "edlvpdes"  "edlvpees"  "edlvpfes"  "edlvpges" 
## [1147] "edlvpfr"   "edlvpdfr"  "edlvpgb"   "edlvpgr"   "edlvpdgr"  "edlvpegr" 
## [1153] "edlvphr"   "edlvpdhr"  "edlvpehr"  "edlvphu"   "edlvpdhu"  "edlvpdahu"
## [1159] "edlvpie"   "edlvpdie"  "edlvpil"   "edupil1"   "edupail1"  "edupbil1" 
## [1165] "edlvplt"   "edlvpdlt"  "edlvplv"   "edlvpdlv"  "edlvpelv"  "edlvpnl"  
## [1171] "edlvpdnl"  "edlvpenl"  "edlvpno"   "edlvpdno"  "edlvpeno"  "edlvppl"  
## [1177] "edlvpdpl"  "edlvpepl"  "edlvpfpl"  "edlvpgpl"  "edlvppt"   "edlvpdpt" 
## [1183] "edlvpro"   "edlvpru"   "edlvpdru"  "edlvpse"   "edlvpdse"  "edlvpsi"  
## [1189] "edlvpdsi"  "edlvpesi"  "edlvpsk"   "edlvpdsk"  "edlvptr"   "edlvpua"  
## [1195] "edlvpdua"  "edupde1"   "edupade1"  "edupbde1"  "edupcde1"  "edupde2"  
## [1201] "edupade2"  "edupbde2"  "edupde3"   "edupade3"  "edupgb2"   "edupagb2" 
## [1207] "edupbgb2"  "edupil2"   "edupail2"  "eduppl2"   "eduyrppl"  "edlvpdal" 
## [1213] "edupgb1"   "edupagb1"  "edupbgb1"  "edupcgb1"  "edlvpdrs"  "edlvpdme" 
## [1219] "edlvfdal"  "edlvfat"   "edlvfeat"  "edlvfbe"   "edlvfdbe"  "edlvfebe" 
## [1225] "edlvfdbg"  "edlvfebg"  "edlvfhr"   "edlvfdhr"  "edlvfehr"  "edlvfcy"  
## [1231] "edlvfdcy"  "edlvfecy"  "edlvfgcy"  "edlvfcz"   "edlvfdcz"  "edlvfdk"  
## [1237] "edlvfddk"  "edlvfee"   "edlvfdee"  "edlvfdfi"  "edlvffr"   "edlvfdfr" 
## [1243] "edufde1"   "edufade1"  "edufbde1"  "edufde2"   "edufade2"  "edufde3"  
## [1249] "edufade3"  "edlvfgr"   "edlvfdgr"  "edlvfegr"  "edlvfhu"   "edlvfdhu" 
## [1255] "edlvfdahu" "edlvfdis"  "edlvfie"   "edlvfdie"  "edlvfil"   "edufil1"  
## [1261] "edufail1"  "edufbil1"  "edufil2"   "edufail2"  "edlvfdit"  "edlvfeit" 
## [1267] "edlvfdxk"  "edlvflv"   "edlvfdlv"  "edlvflt"   "edlvfdlt"  "edlvfnl"  
## [1273] "edlvfdnl"  "edlvfenl"  "edlvfno"   "edlvfdno"  "edlvfeno"  "edlvfpl"  
## [1279] "edlvfdpl"  "edlvfepl"  "edlvffpl"  "edlvfpt"   "edlvfdpt"  "edlvfro"  
## [1285] "edlvfru"   "edlvfdru"  "edlvfsk"   "edlvfdsk"  "edlvfsi"   "edlvfdsi" 
## [1291] "edlvfesi"  "edlvfes"   "edlvfdes"  "edlvfees"  "edlvffes"  "edlvfse"  
## [1297] "edlvfdse"  "edlvfch"   "edlvfdch"  "edlvftr"   "edlvfua"   "edlvfdua" 
## [1303] "edlvfgb"   "edufgb1"   "edufagb1"  "edufbgb1"  "edufcgb1"  "edufgb2"  
## [1309] "edufagb2"  "edufbgb2"  "edagefgb"  "edlvfdrs"  "edlvfdme"  "edagemgb" 
## [1315] "edlvmat"   "edlvmeat"  "edlvmbe"   "edlvmdbe"  "edlvmebe"  "edlvmch"  
## [1321] "edlvmdch"  "edlvmcy"   "edlvmdcy"  "edlvmecy"  "edlvmgcy"  "edlvmcz"  
## [1327] "edlvmdcz"  "edlvmdal"  "edlvmdfi"  "edlvmdis"  "edlvmdit"  "edlvmeit" 
## [1333] "edlvmdk"   "edlvmddk"  "edlvmdxk"  "edlvmee"   "edlvmdee"  "edlvmes"  
## [1339] "edlvmdes"  "edlvmees"  "edlvmfes"  "edlvmfr"   "edlvmdfr"  "edlvmgb"  
## [1345] "edlvmgr"   "edlvmdgr"  "edlvmegr"  "edlvmhr"   "edlvmdhr"  "edlvmehr" 
## [1351] "edlvmhu"   "edlvmdhu"  "edlvmdahu" "edlvmie"   "edlvmdie"  "edlvmil"  
## [1357] "edumil1"   "edumail1"  "edumbil1"  "edlvmlt"   "edlvmdlt"  "edlvmlv"  
## [1363] "edlvmdlv"  "edlvmnl"   "edlvmdnl"  "edlvmenl"  "edlvmno"   "edlvmdno" 
## [1369] "edlvmeno"  "edlvmpl"   "edlvmdpl"  "edlvmepl"  "edlvmfpl"  "edlvmpt"  
## [1375] "edlvmdpt"  "edlvmro"   "edlvmru"   "edlvmdru"  "edlvmse"   "edlvmdse" 
## [1381] "edlvmsi"   "edlvmdsi"  "edlvmesi"  "edlvmsk"   "edlvmdsk"  "edlvmtr"  
## [1387] "edlvmua"   "edlvmdua"  "edumde1"   "edumade1"  "edumbde1"  "edumde2"  
## [1393] "edumade2"  "edumde3"   "edumade3"  "edumgb1"   "edumagb1"  "edumbgb1" 
## [1399] "edumcgb1"  "edumgb2"   "edumagb2"  "edumbgb2"  "edumil2"   "edumail2" 
## [1405] "edlvmdbg"  "edlvmebg"  "edlvmdrs"  "edlvmdme"  "marstfi"   "marstgb"  
## [1411] "marstie"   "martlfr"   "rshpsfi"   "rshpsgb"   "impdiff"   "impenv"   
## [1417] "impfree"   "impfun"    "imprich"   "impsafe"   "imptrad"   "ipadvnt"  
## [1423] "ipbhprp"   "ipcrtiv"   "ipeqopt"   "ipfrule"   "ipgdtim"   "iphlppl"  
## [1429] "iplylfr"   "ipmodst"   "iprspot"   "ipshabt"   "ipstrgv"   "ipsuces"  
## [1435] "ipudrst"   "regionat"  "regionbe"  "regionbg"  "regionch"  "regioach" 
## [1441] "regioncy"  "regioncz"  "regioacz"  "regionde"  "regiondk"  "regioadk" 
## [1447] "regionee"  "regiones"  "regioaes"  "regionfi"  "regioafi"  "regionfr" 
## [1453] "regiongb"  "regiongr"  "regioagr"  "regionhr"  "regionhu"  "regionie" 
## [1459] "regioaie"  "regiobie"  "regionil"  "regionis"  "regionit"  "regionlt" 
## [1465] "regionlu"  "regionlv"  "regionnl"  "regionno"  "regionpl"  "regionpt" 
## [1471] "regioapt"  "regionro"  "regionru"  "regionse"  "regionsi"  "regionsk" 
## [1477] "regiontr"  "regionua"  "regunit"   "inwtm"     "inwshh"    "inwsmm"   
## [1483] "inwyys"    "inwdd"     "inwdds"    "inwmm"     "inwmms"    "inwyr"    
## [1489] "inwyye"    "inwds"     "inwehh"    "inwemm"    "inwdde"    "inwmme"   
## [1495] "inwde"     "spltadm"   "spltadma"  "spltadmb"  "spltadmc"  "spltadmd" 
## [1501] "spltadme"  "spltadmf"  "supqad1"   "supqadm"   "supqad2"   "supqdd"   
## [1507] "supqmm"    "supqyr"    "intewde"   "mode"      "actvgrs"   "agertr"   
## [1513] "bseftwk"   "bsmw"      "chdohwk"   "cld12hh"   "cldcrmr"   "cldcrot"  
## [1519] "cldnhh"    "cldnhhd"   "cldnhhg"   "cldnhhn"   "clfncrc"   "clfncsp"  
## [1525] "clhwkrc"   "clhwksp"   "clmrlx"    "clnhhbo"   "clnhhby"   "clnhhyb"  
## [1531] "crspce"    "cuthheq"   "dfcnswk"   "dfcnswka"  "dsdclve"   "dsgrhwk"  
## [1537] "dsgrmny"   "dsgrmnya"  "dsgrpwk"   "edul12m"   "edupdem"   "emplrjb"  
## [1543] "flthmcc"   "fmpvtst"   "frshrst"   "frsptjb"   "fstjbyr"   "fthcncr"  
## [1549] "gdsprt"    "grspay"    "grspaya"   "gvprppv"   "gwdvhwk"   "gwhhprc"  
## [1555] "hlpcowk"   "hlthrwk"   "hmeqphw"   "hwkmono"   "hwkpwd1"   "hwkpwd2"  
## [1561] "hwkpwdp"   "hwkpwe1"   "hwkpwe2"   "hwkpwep"   "hwkstrs"   "hwktwd1"  
## [1567] "hwktwd2"   "hwktwe1"   "hwktwe2"   "hwwkhs"    "icag45y"   "icago45"  
## [1573] "icagu70"   "icagu70a"  "icchld"    "iccldnh"   "icempl"    "icemplr"  
## [1579] "icgndr"    "ichwk1"    "ichwk2"    "icmnac"    "icmnact"   "icnopfm"  
## [1585] "icnopfma"  "icpart1"   "icpart2"   "icpart3"   "icptn"     "icptnwk"  
## [1591] "icptnwka"  "indisdc"   "ipjbhin"   "ipjbini"   "ipjbprm"   "ipjbscr"  
## [1597] "ipjbtro"   "ipjbwfm"   "jbcoedu"   "jbedyrs"   "jblrn"     "jbrqlrn"  
## [1603] "jbscr"     "jbtmppm"   "jbtsktm"   "lfintr"    "linwk3y"   "lkafohh"  
## [1609] "lscjb3y"   "lsintjb"   "mlohinc"   "mnrsefw"   "mnrsphm"   "nbsrsp"   
## [1615] "netpay"    "nevdnjb"   "npemp3y"   "oprtad"    "orgfd3y"   "payprd"   
## [1621] "payprda"   "pdjbndm"   "phwwkhs"   "plnchld"   "pphincr"   "ppwwkp"   
## [1627] "prmpls"    "prntghr"   "prrfmly"   "pthcncr"   "ptmhmcc"   "ptnwkwe"  
## [1633] "puemp3y"   "pwkhsch"   "quclss"    "rdpay3y"   "rpljbde"   "rsnlvem"  
## [1639] "rtryr"     "scrsefw"   "smblvjb"   "stdask"    "stdhrsw"   "stdlvl"   
## [1645] "stdmcdo"   "stdtruf"   "stpvtfm"   "tchints"   "tchlcrt"   "tchlp"    
## [1651] "tchtruf"   "tmtowrk"   "tngdohm"   "trndnjb"   "truinwk"   "uemp3y"   
## [1657] "updhlrl"   "updhlrp"   "useknwl"   "vrtywrk"   "wgdpeft"   "wkdcpce"  
## [1663] "wkengtp"   "wkhsch"    "wkjbndm"   "wkovrtm"   "wkovtmp"   "wkshr3y"  
## [1669] "wmcpwrk"   "wntrtr"    "wpmwkcp"   "wrkengt"   "wrkhrd"    "wrkspv"   
## [1675] "wrkwe"     "yrcremp"   "yrlvptn"   "yrskdwk"   "yrspdwk"   "yrspdwka" 
## [1681] "absddng"   "accdng"    "atnoact"   "chlrnnw"   "dclvlf"    "deaimpp"  
## [1687] "dngval"    "enjstm"    "enrglot"   "flapppl"   "flclpla"   "flrms"    
## [1693] "fltanx"    "fltbrd"    "fltpcfl"   "fltrstm"   "flttrd"    "fmlenj"   
## [1699] "fmlstrs"   "fstwttv"   "hlpoth"    "hlprtrn"   "inccmp"    "inccmpw"  
## [1705] "jbintr"    "jbstrs"    "lchshcp"   "lfcllk"    "lfwrs"     "lotsgot"  
## [1711] "lrnnew"    "lrnntlf"   "nhpftr"    "optftr"    "pactlot"   "pdwrkcr"  
## [1717] "physact"   "plinsoc"   "plprftr"   "pplahlp"   "ppllfcr"   "prhlppl"  
## [1723] "pstvms"    "rcndsrv"   "rehlppl"   "sedirlf"   "stfjb"     "stflfsf"  
## [1729] "stfsdlv"   "tmabdng"   "tmdotwa"   "tmendng"   "tmimdng"   "tnapsur"  
## [1735] "trtrsp"    "trtunf"    "uempnyr"   "wkvlorg"   "wrbknrm"   "acetalv"  
## [1741] "admaimg"   "algyplv"   "aljewlv"   "allbpe"    "allbpne"   "almuslv"  
## [1747] "alpfpe"    "alpfpne"   "alwspsc"   "blncmig"   "comnlng"   "cpimpop"  
## [1753] "ctbfsmv"   "dfegcf"    "dfegcon"   "dfeghbg"   "eimgrpc"   "eimpcnt"  
## [1759] "eimrcnt"   "fclcntr"   "gvrfgap"   "gvtrimg"   "icbrnct"   "idetalv"  
## [1765] "imacrlv"   "imbghct"   "imbleco"   "imdetbs"   "imdetmr"   "imfljob"  
## [1771] "imgclg"    "imgetn"    "imgfrnd"   "imgrpc"    "imhecop"   "imrcntr"  
## [1777] "imrsprc"   "imscrlv"   "imsetbs"   "imsetmr"   "imsmrgt"   "imtcjob"  
## [1783] "imunplv"   "imwbcrm"   "imwgdwn"   "lwdscwp"   "lwpeth"    "noimbro"  
## [1789] "pplstrd"   "qfimchr"   "qfimcmt"   "qfimedu"   "qfimfml"   "qfimlng"  
## [1795] "qfimwht"   "qfimwlt"   "qfimwsk"   "rfgawrk"   "rfgbfml"   "rfgdtcn"  
## [1801] "rfgfrpc"   "rfggvfn"   "rlgueim"   "shrrfg"    "smctmbe"   "smegbhw"  
## [1807] "smegbli"   "stimrdt"   "vrtrlg"    "cltodm"    "cltofrd"   "cltommb"  
## [1813] "cltona"    "cltonn"    "cltoptp"   "cltoref"   "cltovw"    "cnsodm"   
## [1819] "cnsofrd"   "cnsommb"   "cnsona"    "cnsonn"    "cnsoptp"   "cnsoref"  
## [1825] "cnsovw"    "discpol"   "empl"      "epaodm"    "epaofrd"   "epaommb"  
## [1831] "epaona"    "epaonn"    "epaoptp"   "epaoref"   "epaovw"    "hlpppl"   
## [1837] "hmnodm"    "hmnofrd"   "hmnommb"   "hmnona"    "hmnonn"    "hmnoptp"  
## [1843] "hmnoref"   "hmnovw"    "impapol"   "impavo"    "impfml"    "impfrds"  
## [1849] "implsrt"   "impoblw"   "impopin"   "imppol"    "imprlg"    "imprwcr"  
## [1855] "imprwct"   "imprwkc"   "impsppl"   "impvo"     "impvote"   "impwrk"   
## [1861] "othvdm"    "othvfrd"   "othvmmb"   "othvna"    "othvnn"    "othvptp"  
## [1867] "othvref"   "othvvw"    "prfodm"    "prfofrd"   "prfommb"   "prfona"   
## [1873] "prfonn"    "prfoptp"   "prforef"   "prfovw"    "prtydm"    "prtyfrd"  
## [1879] "prtymmb"   "prtyna"    "prtynn"    "prtyptp"   "prtyref"   "prtyvw"   
## [1885] "rlgodm"    "rlgofrd"   "rlgommb"   "rlgona"    "rlgonn"    "rlgoptp"  
## [1891] "rlgoref"   "rlgovw"    "sclcdm"    "sclcfrd"   "sclcmmb"   "sclcna"   
## [1897] "sclcnn"    "sclcptp"   "sclcref"   "sclcvw"    "setodm"    "setofrd"  
## [1903] "setommb"   "setona"    "setonn"    "setoptp"   "setoref"   "setovw"   
## [1909] "sptcdm"    "sptcfrd"   "sptcmmb"   "sptcna"    "sptcnn"    "sptcptp"  
## [1915] "sptcref"   "sptcvw"    "stfhwkp"   "strtbsn"   "trudm"     "trufrd"   
## [1921] "truiwkp"   "trummb"    "truna"     "trunn"     "truptp"    "truref"   
## [1927] "trusay"    "truvw"     "truwrkp"   "wkchtsk"   "wkdcsin"   "wkenvin"  
## [1933] "wrkflex"   "yrlvdae"   "advbach"   "advhach"   "advslep"   "advsthr"  
## [1939] "chsrgp"    "dcadmms"   "dcdfcwr"   "dcdisc"    "dckptrt"   "dctreql"  
## [1945] "ddprsmd"   "dsplvpr"   "follwdc"   "hltherb"   "illcure"   "mdhair"   
## [1951] "mdhappy"   "mdlswgt"   "mdmemo"    "mdsdeff"   "mdsexlf"   "pplcure"  
## [1957] "pprlydc"   "prcbach"   "prchach"   "prcslep"   "prcsthr"   "prfmddc"  
## [1963] "prfsmdc"   "psmdcpr"   "ptnrlcq"   "tmcnsdc"   "usmdprs"   "usmprse"  
## [1969] "bnkfldl"   "bsnprft"   "cmprcti"   "ctzchtx"   "ctzhlpo"   "flgvbnf"  
## [1975] "flinsr"    "flinsrw"   "fodcncl"   "frdbnft"   "frmwktg"   "icsbfm"   
## [1981] "ignrlaw"   "kptchng"   "mnyacth"   "musdocm"   "olwmsop"   "payavtx"  
## [1987] "pboafvr"   "pbofvr"    "pbofvrw"   "pyavtxw"   "rprochg"   "scbevts"  
## [1993] "scndhfl"   "slcnflw"   "slcnsfl"   "tstfnch"   "tstpboh"   "tstrprh"  
## [1999] "wrytrdh"   "acldnmr"   "adftjob"   "adllvhm"   "adlvptn"   "adpnt"    
## [2005] "advcyc"    "aftjbyc"   "ageadlt"   "agemage"   "ageoage"   "alvgptn"  
## [2011] "anvcld"    "brnmm"     "bthcld"    "evlvptn"   "evmar"     "evpdemp"  
## [2017] "fcldbrn"   "ggchld"    "iaglptn"   "iaglvmr"   "iagpnt"    "iagrtr"   
## [2023] "lvpntyr"   "lvptnyr"   "maryr"     "nbthcld"   "ngchld"    "oldfrl"   
## [2029] "oldgpnt"   "oldhlpo"   "pdempyr"   "plnftr"    "rcldnmr"   "rdvcyc"   
## [2035] "rftjbyc"   "rlvgptn"   "rnvcld"    "rpntyng"   "rspslvo"   "rwkold"   
## [2041] "svclvo"    "tochld"    "tolvpnt"   "towkht"    "tygledu"   "tyglvmr"  
## [2047] "tyglvp"    "tygpnt"    "tygrtr"    "tygsexi"   "wrinco"    "ycldbyr"  
## [2053] "ygcdbyr"   "admub"     "basinc"    "bennent"   "bnlwinc"   "brnocnt"  
## [2059] "cldcrsv"   "dcndleq"   "dfincac"   "ditxssp"   "earnpen"   "earnueb"  
## [2065] "eduunmp"   "eudcnbf"   "eusclbf"   "gvcldcr"   "gvhlthc"   "gvjbevn"  
## [2071] "gvpdlwk"   "gvslvol"   "gvslvue"   "hlthcef"   "imrccon"   "imsclbn"  
## [2077] "insfben"   "lbenent"   "lklpwcf"   "lknemny"   "lknhlcn"   "lkuemp"   
## [2083] "lvoapen"   "lvpbhlt"   "nmnybsc"   "prtsick"   "sbbsntx"   "sbcwkfm"  
## [2089] "sbenccm"   "sbeqsoc"   "sblazy"    "sblwcoa"   "sblwlka"   "sbprvpv"  
## [2095] "sbstrec"   "schtaut"   "sickdsb"   "slvpens"   "slvuemp"   "smdfslv"  
## [2101] "txadleq"   "txautef"   "txearn"    "ub20edu"   "ub20pay"   "ub20unp"  
## [2107] "ub50edu"   "ub50pay"   "ub50unp"   "ubedu"     "ubpay"     "ubspedu"  
## [2113] "ubsppay"   "ubspunp"   "ubunp"     "uemplwk"   "uentrjb"   "wrkprbf"  
## [2119] "yngfnjb"   "acq30bs"   "acq70bs"   "agdcold"   "agdcyng"   "agegrbl"  
## [2125] "ageyo30"   "agrpblg"   "buproag"   "chg1530"   "dprschg"   "dprsf70"  
## [2131] "dprso70"   "dprsy30"   "frndo70"   "frndy30"   "lkrspag"   "mbfmo70"  
## [2137] "oafl20"    "oafl70"    "p20cnec"   "p20cust"   "p70cnec"   "p70cust"  
## [2143] "p70hltb"   "predage"   "predetn"   "predsex"   "pvolwrk"   "sgr2070"  
## [2149] "srdscag"   "stsp20"    "stsp40"    "stsp70"    "suproag"   "trtbdag"  
## [2155] "twcol20"   "twcol70"   "v20adm"    "v20cntm"   "v20comp"   "v20envy"  
## [2161] "v20frnd"   "v20mrst"   "v20pity"   "v20resp"   "v70adm"    "v70cntm"  
## [2167] "v70comp"   "v70envy"   "v70frnd"   "v70mrst"   "v70pity"   "v70resp"  
## [2173] "wr20crm"   "wr20emp"   "bplcdc"    "bstln5y"   "bystlct"   "bystlwr"  
## [2179] "caplcst"   "ctfrdc"    "ctinplt"   "ctjbcnt"   "ctmtgfr"   "ctprpwr"  
## [2185] "dbctvrd"   "doplcsy"   "dpcstrb"   "flsin5y"   "gsupplc"   "insclct"  
## [2191] "insclwr"   "jdgcbrb"   "lwstrob"   "plcarcr"   "plccbrb"   "plccbrg"  
## [2197] "plccont"   "plcexdc"   "plcfrdc"   "plciplt"   "plcipvl"   "plcjbcn"  
## [2203] "plcpvcr"   "plcrgwr"   "plcrspc"   "plcstf"    "plcvcrc"   "plcvcrp"  
## [2209] "rgbrklw"   "stcbg2t"   "tmprs"     "trfoct"    "trfowr"    "troff5y"  
## [2215] "wevdct"    "widprsn"   "wraccrc"   "wraccrp"   "chpldm"    "chpldmc"  
## [2221] "chpldmi"   "ctstogv"   "cttresa"   "cttresac"  "dfprtal"   "dfprtalc" 
## [2227] "dspplvt"   "dspplvtc"  "fairelc"   "fairelcc"  "fplvdm"    "fplvdmc"  
## [2233] "fplvdmi"   "gptpelc"   "gptpelcc"  "grdfinc"   "grdfincc"  "gvcodmc"  
## [2239] "gvcodmi"   "gvctzpv"   "gvctzpvc"  "gvexpdc"   "gvexpdcc"  "gvspcdm"  
## [2245] "gvspdmc"   "gvspdmi"   "imvtctz"   "medcrgv"   "medcrgvc"  "meprinf"  
## [2251] "meprinfc"  "oppcrgv"   "oppcrgvc"  "pltavie"   "pltaviec"  "pplvdmc"  
## [2257] "pplvdmi"   "rghmgpr"   "rghmgprc"  "stpldmc"   "stpldmi"   "votedir"  
## [2263] "votedirc"  "viepol"    "wpestop"   "keydec"    "viepolc"   "wpestopc" 
## [2269] "keydecc"   "admit"     "showcv"    "accalaw"   "impdema"   "impdemb"  
## [2275] "impdemc"   "impdemd"   "impdeme"   "alcbnge"   "alcfreq"   "alcwkdy"  
## [2281] "alcwknd"   "anypacc"   "cgtsday"   "cgtsmke"   "cnfpplh"   "dosprt"   
## [2287] "dshltdk"   "dshltgp"   "dshltms"   "dshltna"   "dshltnt"   "dshltref" 
## [2293] "eatveg"    "etfruit"   "fnsdfml"   "height"    "hlpfmhr"   "hlpfmly"  
## [2299] "hltphal"   "hltphbn"   "hltphbp"   "hltphdi"   "hltphdk"   "hltphhb"  
## [2305] "hltphhc"   "hltphna"   "hltphnap"  "hltphnt"   "hltphpa"   "hltphpf"  
## [2311] "hltphref"  "hltphsc"   "hltphsd"   "hltphsh"   "hltpral"   "hltprbn"  
## [2317] "hltprbp"   "hltprca"   "hltprdi"   "hltprdk"   "hltprhb"   "hltprhc"  
## [2323] "hltprna"   "hltprnt"   "hltprpa"   "hltprpf"   "hltprref"  "hltprsc"  
## [2329] "hltprsd"   "hltprsh"   "jbexebs"   "jbexecp"   "jbexedk"   "jbexena"  
## [2335] "jbexenap"  "jbexent"   "jbexera"   "jbexeref"  "jbexevc"   "jbexevh"  
## [2341] "jbexevl"   "jbexpdk"   "jbexpmc"   "jbexpml"   "jbexpna"   "jbexpnap" 
## [2347] "jbexpnt"   "jbexpref"  "jbexpti"   "jbexpvi"   "medtrdk"   "medtrna"  
## [2353] "medtrnap"  "medtrnl"   "medtrnp"   "medtrnt"   "medtrnu"   "medtrnaa" 
## [2359] "medtroc"   "medtroth"  "medtrref"  "medtrun"   "medtrwl"   "trhltacp" 
## [2365] "trhltacu"  "trhltch"   "trhltcm"   "trhltdk"   "trhltho"   "trhltht"  
## [2371] "trhlthy"   "trhltmt"   "trhltna"   "trhltnt"   "trhltos"   "trhltpt"  
## [2377] "trhltre"   "trhltref"  "trhltsh"   "weight"    "icgndra"   "banhhap"  
## [2383] "ccgdbd"    "cflsenr"   "clmchng"   "clmthgt1"  "clmthgt2"  "elgbio"   
## [2389] "elgcoal"   "elghydr"   "elgngas"   "elgnuc"    "elgsun"    "elgwind"  
## [2395] "eneffap"   "gvsrdcc"   "inctxff"   "lklmten"   "lkredcc"   "ownrdcc"  
## [2401] "rdcenr"    "sbsrnen"   "wrdpfos"   "wrdpimp"   "wrenexp"   "wrinspw"  
## [2407] "wrntdis"   "wrpwrct"   "wrtcfl"    "wrtratc"   "btminfr"   "evfredu"  
## [2413] "evfrjob"   "frlgrsp"   "frlneti"   "frprtpl"   "fvgabc"    "grspfr"   
## [2419] "grsplet"   "grspnum"   "gvintcz"   "ifredu"    "ifrjob"    "infqbst"  
## [2425] "jstprev"   "netifr"    "netilet"   "netinum"   "occinfr"   "pcmpinj"  
## [2431] "poltran"   "ppldsrv"   "recexp"    "recgndr"   "recimg"    "recknow"  
## [2437] "recskil"   "sofrdst"   "sofrpr"    "sofrprv"   "sofrwrk"   "topinfr"  
## [2443] "wltdffr"   "iincsrc"   "acchome"   "accwrk"    "accmove"   "accoth"   
## [2449] "accnone"   "accref"    "accdk"     "accna"     "fampref"   "famadvs"  
## [2455] "fampdf"    "mcclose"   "mcinter"   "mccoord"   "mcpriv"    "mcmsinf"  
## [2461] "chldo12"   "gndro12a"  "gndro12b"  "ageo12"    "hhlio12"   "closeo12" 
## [2467] "ttmino12"  "speako12"  "como12"    "scrno12"   "phoneo12"  "livpnt"   
## [2473] "pntmofa"   "agepnt"    "hhlipnt"   "closepnt"  "ttminpnt"  "speakpnt" 
## [2479] "compnt"    "scrnpnt"   "phonepnt"  "wrkhome"   "wrklong"   "wrkresp"  
## [2485] "scrhlm"    "sclmsup"   "mansupp"   "manhlp"    "manwrkpl"  "manspeak" 
## [2491] "mancom"    "manscrn"   "manphone"  "teamfeel"  "wrkextra"  "colprop"  
## [2497] "colhlp"    "colspeak"  "colcom"    "colscrn"   "colphone"  "mcwrkhom" 
## [2503] "c19spo12"  "c19mco12"  "c19sppnt"  "c19mcpnt"  "c19whome"  "c19wplch" 
## [2509] "c19whacc"  "c19spwrk"  "c19mcwrk"  "secgrdec"  "scidecpb"  "admc19"   
## [2515] "panpriph"  "panmonpb"  "govpriph"  "govmonpb"  "panfolru"  "panclobo" 
## [2521] "panresmo"  "gvhanc19"  "gvjobc19"  "gveldc19"  "gvfamc19"  "hscopc19" 
## [2527] "gvbalc19"  "gvimpc19"  "gvconc19"  "respc19"   "reshhc19"  "hapljc19" 
## [2533] "hapirc19"  "hapwrc19"  "hapfuc19"  "hapfoc19"  "hapnoc19"  "hapnwc19" 
## [2539] "hapnpc19"  "haprec19"  "hapdkc19"  "hapnac19"  "icvacc19"  "getavc19" 
## [2545] "getnvc19"  "vdcond"    "vdovexre"  "vdtype"    "vdtpsvre"  "vdtpitre" 
## [2551] "vdtpscre"  "vdtpaure"  "vdtpvire"  "vdtpoire"  "vdtpntre"  "vdtpapre" 
## [2557] "vdtprere"  "vdtpdkre"  "vdtpnare"  "cldgng"    "enjlf"     "fltdpr"   
## [2563] "flteeff"   "fltlnl"    "fltlnla"   "fltsd"     "hrshsnt"   "hrshsnta" 
## [2569] "mnrgtjb"   "pdaprp"    "pdaprpa"   "slprl"     "smbtjob"   "smbtjoba" 
## [2575] "stfjbot"   "wrhpp"     "stfmjob"   "wrywprb"   "trdawrk"   "jbprtfp"  
## [2581] "pfmfdjb"   "pfmfdjba"  "dcsfwrk"   "dcsfwrka"  "implvdm"   "ccrdprs"  
## [2587] "ccnthum"   "wrclmch"   "yrbrn"     "wkhct"     "region"    "admdw"    
## [2593] "admge"     "iagmr"     "tygmr"     "domain"    "trstsci"   "prtvtmk"  
## [2599] "prtclmk"   "rlgdnmk"   "admrclc"   "testic34"  "testic35"  "testic36" 
## [2605] "testic37"  "testic38"  "testic39"  "testic40"  "testic41"  "testic42" 
## [2611] "rshpsmk"   "marstmk"   "edlvdmk"   "edlvpdmk"  "edlvfdmk"  "edlvmdmk" 
## [2617] "testii1"   "testii2"   "testii3"   "testii4"   "testii5"   "testii6"  
## [2623] "testii7"   "testii8"   "testii9"   "ainws"     "ainwe"     "binwe"    
## [2629] "cinwe"     "dinwe"     "finwe"     "ginwe"     "hinwe"     "iinwe"    
## [2635] "kinwe"     "vinwe"     "jinws"     "jinwe"     "scrlgblg"  "scchpldm" 
## [2641] "scwflt"    "scrwiat"   "sctmfeel"  "scrwwc"    "scclprp"   "scwsds"   
## [2647] "scwass"    "scwa5se"   "scwa11se"  "scwa59se"  "scwa89se"  "scwb30se" 
## [2653] "scwc55se"  "scwd62se"  "scwd78se"  "scwrecse"  "scwtype"   "uagent"   
## [2659] "smplresp"  "questcmp"  "intagea"   "intgndr"   "intnum"    "intlnga"  
## [2665] "rlgdemk"
Portugal_data$trstplt <- ifelse(Portugal_data$trstplt >= 0 & Portugal_data$trstplt <= 10, Portugal_data$trstplt, NA)
Portugal_data$trstprl <- ifelse(Portugal_data$trstprl >= 0 & Portugal_data$trstprl <= 10, Portugal_data$trstprl, NA)
Portugal_data$trstprt <- ifelse(Portugal_data$trstprt >= 0 & Portugal_data$trstprt <= 10, Portugal_data$trstprt, NA)

Portugal_data$trust_score <- rowMeans(
  Portugal_data[, c("trstplt", "trstprl", "trstprt")], 
  na.rm = TRUE
)

Portugal_data$trust <- Portugal_data$trust_score * 10
Portugal_data$populist <- 100 - Portugal_data$trust
Portugal_data <- Portugal_data %>%
  mutate(
    birth_year = ifelse(yrbrn < 1928 | yrbrn > 2005, NA, yrbrn), # Recode birth year
    generation = case_when(
      birth_year %in% 1928:1945 ~ "Interwar",
      birth_year %in% 1946:1964 ~ "Baby Boomers",
      birth_year %in% 1965:1980 ~ "Gen X",
      birth_year %in% 1981:1996 ~ "Millennials",  # <- corrección aquí
      birth_year %in% 1997:2005 ~ "Gen Z",
      TRUE ~ NA_character_
    ),
    generation = factor(generation,
                        levels = c("Interwar", "Baby Boomers", "Gen X", "Millennials", "Gen Z"))
  )
table(Portugal_data$generation, useNA = "ifany")
## 
##     Interwar Baby Boomers        Gen X  Millennials        Gen Z         <NA> 
##         4382         5371         4416         2645          307          760
Portugal_data$gndr <- case_when(
  Portugal_data$gndr == 1 ~ "Male",
  Portugal_data$gndr == 2 ~ "Female",
  TRUE ~ NA_character_ 
)
#Converting to factor for analysis
Portugal_data$gndr <- factor(Portugal_data$gndr, levels = c("Male", "Female"))

Part B: Descriptive Analysis

Filtered_data <- Portugal_data %>%
  filter(!is.na(generation) & !is.na(populist))

#Create the boxplot visualization
ggplot(Filtered_data, aes(x = generation, y = populist, fill = generation)) +
  geom_boxplot(outlier.shape = 16, outlier.size = 2, outlier.color = "red4") + 
  labs(
    title = "Populist Attitudes by Generation",
    subtitle = "Boxplot showing the distribution of populist attitudes across generations",
    x = "Generation",
    y = "Populist Attitudes Score",
    caption = "Source: ESS Data, 2025"
  ) +
  scale_fill_brewer(palette = "Dark2") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5, family = "serif", colour = "darkred"),
    plot.subtitle = element_text(size = 12, hjust = 0.5),
    axis.text = element_text(size = 12, family = "sans"),
    axis.title = element_text(size = 14, family = "serif"),
    plot.caption = element_text(size = 10, hjust = 1, family = "sans")
  )

The boxplot illustrates the distribution of populist attitudes across different generations in Portugal: Interwar, Baby Boomers, Gen X, Millennials, and Gen Z. The populist attitudes variable was constructed by reversing a trust scale, where higher values indicate stronger populist attitudes.

The median level of populist attitudes varies across generations, with Generation X and Millennials showing higher median scores, while Baby Boomers and the Interwar Generation tend to have lower median scores. Generation Z appears to have a median score that is intermediate, but its distribution is notably more dispersed. The interquartile range (IQR) is wider for Generation X and Millennials, indicating greater variability in populist attitudes compared to other generational groups. Additionally, there are some noticeable outliers, particularly among Millennials and Generation Z, suggesting that some individuals within these groups hold particularly strong or weak populist attitudes.

Overall, the results indicate that younger generations (Millennials and Gen Z) exhibit greater variability in their populist attitudes, while older generations appear to have more consistent and generally lower levels of populist sentiments.

model_gender <- lm(populist ~ gndr, data = Portugal_data)

model_gender_gen <- lm(populist ~ gndr + generation, data = Portugal_data)

Part C: Regression Models

modelsummary(
  list("Gender Only" = model_gender, "Gender + Generation" = model_gender_gen),
  fmt = 2,
  estimate = "{estimate} [{conf.low}, {conf.high}]",
  statistic = NULL,
  stars = TRUE,
  coef_rename = c(
    "(Intercept)" = "Intercept",
    "gndrFemale" = "Female",
    "generationBaby Boomers" = "Baby Boomers",
    "generationGen X" = "Generation X",
    "generationMillennials" = "Millennials",
    "generationGen Z" = "Gen Z"
  ),
  gof_map = c("nobs", "r.squared", "adj.r.squared", "aic", "bic"),
  title = "Regression Comparison of Populist Attitudes",
  notes = "Source: ESS Data, 2025",
  output = "kableExtra"
) %>%
  kable_styling(font_size = 12, latex_options = "hold_position") %>%
  row_spec(0, extra_css = "font-family: 'sans';")
Regression Comparison of Populist Attitudes
Gender Only Gender + Generation
Intercept 71.46 [71.00, 71.93] 73.02 [72.31, 73.74]
Female 1.13 [0.53, 1.74] 0.96 [0.35, 1.58]
Baby Boomers -0.69 [-1.50, 0.12]
Generation X -1.80 [-2.65, -0.96]
Millennials -3.14 [-4.11, -2.16]
Gen Z -13.12 [-15.46, -10.79]
Num.Obs. 17655 16935
R2 0.001 0.010
R2 Adj. 0.001 0.009
AIC 156279.5 149702.0
BIC 156302.9 149756.2
+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001
Source: ESS Data, 2025

Part D: Regression Interpretation

Two regression models were created to examine how populist attitudes in Portugal relate to gender and generation.

Model 1: Gender Only

The first model uses only gender as a predictor of populist attitudes.

Intercept: Represents the average level of populist attitudes for the reference group, which is likely females (if coded this way).

Male Coefficient: If this coefficient is positive and statistically significant, it suggests that men tend to have higher populist attitudes compared to women. If negative, it indicates the opposite.

The significance of this coefficient is evaluated through its p-value. If the p-value is below 0.05, the gender difference is statistically significant. The R² value for this model indicates how much of the variation in populist attitudes is explained solely by gender. It is expected to be low since only one predictor is being used.

Model 2: Gender + Generation. The second model includes both gender and generation as predictors, providing a more comprehensive understanding of what influences populist attitudes.

Intercept: This represents the average populist attitudes score for the reference group, likely women from the Interwar Generation (depending on how the model is configured).

Gender Coefficient: This coefficient indicates the average difference between men and women within the reference generation. If it changes considerably compared to Model 1, it may suggest that generation moderates the relationship between gender and populist attitudes.

Generation Coefficients: Each coefficient indicates the difference in populist attitudes for each generation relative to the reference group (Interwar Generation). A positive coefficient implies that a generation has higher average populist attitudes than the reference group, while a negative coefficient indicates the opposite.

Model Comparison

R² and Adjusted R²: These values should increase with the inclusion of the generation variable. A significant improvement in these metrics indicates that generation is an important predictor of populist attitudes.

AIC and BIC: Lower values indicate better model fit. If these metrics decrease substantially in Model 2, it suggests that adding the generation variable improves the model.

Significance of Coefficients: Comparing which coefficients remain significant across models helps assess the robustness of the predictors.

General Conclusion

The analysis indicates that generation is a significant predictor of populist attitudes in Portugal. Younger generations, particularly Millennials and Gen Z, tend to have higher populist attitudes compared to older generations. Additionally, gender differences may interact with generational effects, suggesting that the relationship between gender and populist attitudes is not consistent across age groups. Model 2 provides a better fit than Model 1, indicating that including generation as a predictor substantially improves the explanatory power of the model.

Task 3: Authoritarian Values in France

Part A: Data Preparation

France_data <- read.fst("C:/Users/luisr/Downloads/france_data.fst")
France_data <- France_data %>%
  mutate(
    behave = ipbhprp,    
    secure = impsafe,    
    safety = ipstrgv,    
    tradition = imptrad, 
    rules = ipfrule      
  )
France_data <- France_data %>% 
  mutate(
    across(c("behave", "secure", "safety", "tradition", "rules"),
                ~ na_if(.x, 7) %>% na_if(8) %>% na_if(9)) %>%
  mutate(
    across(c("behave", "secure", "safety", "tradition", "rules"), ~ 7 - .x)))
France_data$auth <- scales::rescale(
  France_data$behave + 
  France_data$secure + 
  France_data$safety + 
  France_data$tradition + 
  France_data$rules, 
  to = c(0, 100), 
  na.rm = TRUE
)
#Examine the distribution
summary(France_data$auth)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00   48.00   60.00   59.75   72.00  100.00     800

Educational Level

France_data <- France_data %>%
  mutate(
    education = case_when(
      eisced %in% c(0, 1, 2) ~ "Lower Secondary or Less",
      eisced %in% c(3, 4, 5) ~ "Upper Secondary",
      eisced %in% c(6, 7, 8) ~ "Tertiary Education",
      TRUE ~ NA_character_
    ),
    education = factor(
      education,
      levels = c("Lower Secondary or Less", "Upper Secondary", "Tertiary Education")
    )
  )

Residential Area

France_data <- France_data %>%
  mutate(
    residence = case_when(
      domicil %in% c(1, 2) ~ "Urban",   # Big city / Suburbs
      domicil %in% c(3, 4, 5) ~ "Rural", # Town / Village / Farm
      TRUE ~ NA_character_
    ),
    residence = factor(residence, levels = c("Urban", "Rural"))
  )

Economic status

France_data <- France_data %>%
  mutate(
    econ_status = case_when(
      hincfel == 1 ~ "Economic Comfort",  # Living comfortably
      hincfel %in% c(2, 3, 4) ~ "Economic Strain",  # Coping / Difficult
      TRUE ~ NA_character_
    ),
    econ_status = factor(econ_status, levels = c("Economic Comfort", "Economic Strain"))
  )
#verificacion de datos

table(France_data$education, useNA = "ifany")
## 
## Lower Secondary or Less         Upper Secondary      Tertiary Education 
##                    7527                    8602                    2876 
##                    <NA> 
##                      33
table(France_data$residence, useNA = "ifany")
## 
## Urban Rural  <NA> 
##  5945 13087     6
table(France_data$econ_status, useNA = "ifany")
## 
## Economic Comfort  Economic Strain             <NA> 
##             4981            10693             3364
str(France_data[, c("education", "residence", "econ_status")])
## 'data.frame':    19038 obs. of  3 variables:
##  $ education  : Factor w/ 3 levels "Lower Secondary or Less",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ residence  : Factor w/ 2 levels "Urban","Rural": 2 1 1 2 2 2 1 2 2 2 ...
##  $ econ_status: Factor w/ 2 levels "Economic Comfort",..: NA NA NA NA NA NA NA NA NA NA ...

Part B: Descriptive Analysis

Filtered_France_data <- France_data %>%
  filter(!is.na(auth), !is.na(education))

ggplot(Filtered_France_data, aes(x = education, y = auth, fill = education)) +
  geom_violin(trim = FALSE, alpha = 0.7, color = NA) +
  geom_boxplot(width = 0.1, outlier.shape = 16, outlier.size = 1.5, color = "gray23", fill = "white") +
  scale_fill_brewer(palette = "Dark2") +
  labs(
    title = "Authoritarian Values by Education Level in France",
    subtitle = "Violin plots with internal boxplots showing the distribution and central tendency",
    x = "Education Level",
    y = "Authoritarian Values (0–100)",
    caption = "Source: ESS France, Round 6"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16, hjust = 0.5, family = "sans"),
    plot.subtitle = element_text(size = 12, hjust = 0.5, family = "serif"),
    axis.title = element_text(size = 14, family = "sans"),
    axis.text = element_text(size = 12, family = "sans"),
    axis.text.x = element_text(angle = 20, hjust = 1),
    plot.caption = element_text(size = 10, hjust = 0, family = "serif"),
    legend.position = "none"
  )

The violin plot displays the distribution of authoritarian values across different educational levels in France: Lower Secondary or Less, Upper Secondary, and Tertiary Education. Authoritarian values were calculated using a composite scale that included measures related to proper behavior, security, strong government, tradition, and rule-following.

In general, individuals with Lower Secondary or Less education tend to have higher average authoritarian values compared to the other two educational groups. The median for this group is higher, and the distribution is wider, indicating greater variability in authoritarian attitudes. The Tertiary Education group shows a much narrower distribution, with a lower interquartile range (IQR) and fewer extreme values. This suggests that individuals with higher education tend to have lower and more consistent authoritarian values. The Upper Secondary group falls between the other two groups, with a slightly wider distribution than the Tertiary Education group but narrower than the Lower Secondary or Less group.

Overall, the plot suggests a negative relationship between educational level and authoritarian values, with higher education associated with lower authoritarian attitudes and greater consistency within the group. This pattern implies that education may play a critical role in shaping authoritarian beliefs.

Part C: Progressive Model Building

Models to use

model1 <- lm(auth ~ education, data = France_data)

model2 <- lm(auth ~ education + residence, data = France_data)

model3 <- lm(auth ~ education + residence + econ_status, data = France_data)
pred_labels <- c(
  "(Intercept)" = "Intercept",
  "educationLower Secondary or Less" = "Lower Secondary or Less",
  "educationUpper Secondary" = "Upper Secondary",
  "educationTertiary Education" = "Tertiary Education",
  "residential_areaUrban periphery" = "Urban",
  "residential_areaRural" = "Rural",
  "economic_statusEconomic Comfort" = "Economic Comfort",
  "economic_statusEconomic Strain" = "Economic Strain"
)
tab_model(
  model1, model2, model3,
  pred.labels = pred_labels,
  dv.labels = c("Model 1:\nEducation Level", "Model 2:\n+ Residential Area", "Model 3:\n+ Economic Status"),
  string.pred = "Predictors",
  string.est = "β",
  string.ci = "95% CI",
  string.p = "p-value",
  p.style = "stars",
  p.threshold = c(0.05, 0.01, 0.001),  #Show stars for significance
  show.aic = TRUE,     #Show AIC values
  show.r2 = TRUE,      #Show R^2 values
  show.fstat = TRUE,   #Show F-statistics
  digits = 2,          #Round estimates to 3 decimal places
  title = "Regression Models Predicting Authoritarian Values",
  CSS = list(
    css.table = "font-size: 12px; width: auto; margin-bottom: 20px;",
    css.thead = "font-weight: bold; border-bottom: 1px solid #ddd;",
    css.tdata = "padding: 5px; border-bottom: 1px solid #f0f0f0;",
    css.caption = "font-weight: bold; font-size: 14px; margin-bottom: 10px;",
    css.footnote = "font-size: 11px;",
    css.depvarhead = "font-weight: bold; text-align: center; border-bottom: 1px solid #ddd;",
    css.centeralign = "text-align: center;",
    css.firsttablecol = "font-weight: bold; font-size: 12px;"
  )
)
Regression Models Predicting Authoritarian Values
  Model 1: Education Level Model 2: + Residential Area Model 3: + Economic Status
Predictors β 95% CI β 95% CI β 95% CI
Intercept 63.44 *** 63.00 – 63.88 63.70 *** 63.09 – 64.31 63.59 *** 62.69 – 64.50
Upper Secondary -4.87 *** -5.46 – -4.27 -4.85 *** -5.45 – -4.26 -5.27 *** -5.97 – -4.57
Tertiary Education -9.47 *** -10.29 – -8.64 -9.53 *** -10.36 – -8.70 -9.65 *** -10.59 – -8.71
residenceRural -0.37 -0.97 – 0.22 -0.99 ** -1.64 – -0.34
econ_statusEconomic Strain 1.36 *** 0.70 – 2.02
Observations 18213 18209 15173
R2 / R2 adjusted 0.030 / 0.030 0.030 / 0.030 0.033 / 0.032
AIC 158483.775 158444.119 131712.087
  • p<0.05   ** p<0.01   *** p<0.001
# Crear tabla de comparación de AIC y BIC
model_comparison <- data.frame(
  Model = c("Model 1: Education", 
            "Model 2: + Residential Area", 
            "Model 3: + Economic Status"),
  AIC = c(AIC(model1), AIC(model2), AIC(model3)),
  BIC = c(BIC(model1), BIC(model2), BIC(model3))
)

# Mostrar tabla con formato
kable(model_comparison, caption = "Table: AIC and BIC Values for All Regression Models", digits = 2) %>%
  kable_styling(full_width = FALSE, font_size = 13)
Table: AIC and BIC Values for All Regression Models
Model AIC BIC
Model 1: Education 158483.8 158515.0
Model 2: + Residential Area 158444.1 158483.2
Model 3: + Economic Status 131712.1 131757.9
coef_data <- tidy(model3, conf.int = TRUE)

coef_data <- coef_data[coef_data$term != "(Intercept)", ]

coef_labels <- c(
  "educationUpper Secondary" = "Upper Secondary",
  "educationTertiary Education" = "Tertiary Education",
  "residenceRural" = "Rural Area",
  "econ_statusEconomic Strain" = "Economic Strain"
)
coef_data$term <- coef_labels[coef_data$term]

ggplot(coef_data, aes(x = estimate, y = term)) +
  geom_point(size = 3, color = "black") +
  geom_errorbarh(aes(xmin = conf.low, xmax = conf.high), height = 0.2, color = "gray40") +
  geom_vline(xintercept = 0, color = "red", linetype = "dashed") +
  geom_text(
    aes(label = round(estimate, 2)),
    hjust = ifelse(coef_data$estimate >= 0, -0.3, 1.3),
    vjust = -1,  # ← esto sube los textos
    size = 4,
    family = "sans"
  ) +
  labs(
    title = "Coefficient Plot for Final Regression Model",
    x = "Estimated Effect (β)",
    y = "Predictor"
  ) +
  theme_minimal(base_size = 13)

Three progressive regression models were built to predict authoritarian values in France based on education level, residential area, and economic status. Model 1: Education Level Only

This model considers only education level as the predictor.

Intercept: Represents the average authoritarian values score for the reference group, likely Tertiary Education.

Education Coefficients: Each coefficient indicates how much authoritarian values change on average when comparing an educational group to the reference category. Positive coefficients suggest higher authoritarian values than the reference group, while negative coefficients indicate lower values.

Significance: Statistically significant coefficients (p-value < 0.05) indicate meaningful differences between educational groups. Typically, Lower Secondary or Less is expected to have a positive and significant coefficient, indicating higher authoritarian values than Tertiary Education.

Model Fit (R²): This metric indicates how much of the variability in authoritarian values is explained by educational level alone. It is expected to be low or moderate, as education is only one factor influencing authoritarian attitudes.

Model 2: Education Level + Residential Area

This model adds residential area (urban or rural) as a predictor.

Intercept: Represents the average authoritarian values score for individuals with Tertiary Education living in urban areas.

Education Coefficients: Similar to Model 1, but now adjusted for residential area.

Residential Area Coefficient: A positive and significant coefficient indicates that individuals living in rural areas tend to have higher authoritarian values compared to those living in urban areas.

Model Fit (R²): The R² value should increase slightly if residential area is a relevant predictor.

AIC and BIC: These values should decrease if the inclusion of residential area improves the model’s fit. A substantial decrease suggests that this predictor is important.

Model 3: Education Level + Residential Area + Economic Status (Full Model)

The final model includes education, residential area, and economic status.

Intercept: Represents the average authoritarian values score for an individual with Tertiary Education living in an urban area and experiencing Economic Comfort.

Education and Residential Area Coefficients: These coefficients are interpreted similarly to previous models but are now adjusted for economic status.

Economic Status Coefficient: If this coefficient is positive and significant, it indicates that individuals experiencing Economic Strain have higher authoritarian values compared to those with Economic Comfort.

Model Fit (R²): The R² value should be higher than the previous models if economic status contributes meaningfully to explaining authoritarian values.

AIC and BIC: Lower values indicate better model fit. If these values decrease substantially, the predictor is meaningful.

Model Comparison

R² and Adjusted R²: These values are expected to increase as more predictors are added, indicating that the model is explaining more variance.

AIC and BIC: Decreasing values across models suggest improved fit. If the full model has the lowest AIC and BIC, it is the most effective at explaining authoritarian values.

Significance of Coefficients: Examining which coefficients remain significant across models reveals the robustness of these predictors.

General Conclusion

The analysis suggests that education, residential area, and economic status all contribute to predicting authoritarian values in France. Lower educational levels, living in rural areas, and experiencing economic difficulties are all associated with higher authoritarian values. The full model (Model 3) provides the best fit, indicating that these factors interact to influence authoritarian beliefs.