This analysis explores depressive symptoms in Austria using data from the European Social Survey (ESS Round 11). After extracting data related to the Austrian country, we specifically examined responses to the 8-item version of the CES-D8 scale, which includes both negative and positive affect items.
The CES-D8 items are grouped into three conceptual domains:
2.1.1 - Define CES-D8 variable names and Reverse Positive Items
vnames = c("fltdpr", "flteeff", "slprl", "fltlnl", "enjlf", "cldgng", "fltsd", "wrhpp")
likert_df <- DataAT[, vnames]
likert_df <- as.data.frame(lapply(likert_df, as.character), stringsAsFactors = FALSE)
2.1.2 - Basic Likert Plot and Table
# Convert items to ordered factors (Likert requires this)
likert_df[] <- lapply(likert_df, function(x) {
factor(as.character(x),
levels = c("1", "2", "3", "4"),
labels = c("Rarely", "Sometimes", "Often", "Always"),
ordered = TRUE)
})
# Create basic likert object
likert_obj <- likert::likert(likert_df)
plot(likert_obj)
2.1.3 - Append Mean and Count
# Convert to numeric
likert_numeric_df = as.data.frame(lapply(DataAT[, vnames], as.numeric))
# Calculation of means
likert_means = c()
for (v in vnames) {
likert_means[v] = mean(likert_numeric_df[[v]], na.rm = TRUE)
}
# Calculation of counts
likert_counts = c()
for (v in vnames) {
likert_counts[v] = sum(!is.na(likert_numeric_df[[v]]))
}
# Summary table
likert_table = likert_obj$results
likert_table$Mean = round(unlist(likert_means), 3)
likert_table$Count = unlist(likert_counts)
2.1.4 - Rename Items and Round Percentages
str(likert_table)
## 'data.frame': 8 obs. of 7 variables:
## $ Item : chr "fltdpr" "flteeff" "slprl" "fltlnl" ...
## $ Rarely : num 0 0 0 0 0 0 0 0
## $ Sometimes: num 0 0 0 0 0 0 0 0
## $ Often : num 0 0 0 0 0 0 0 0
## $ Always : num 0 0 0 0 0 0 0 0
## $ Mean : num 1.36 1.59 1.63 1.29 2.81 ...
## $ Count : int 2350 2348 2346 2350 2337 2347 2345 2338
# Set descriptive labels
likert_table$Item = c(
"Felt depressed",
"Everything was an effort",
"Sleep was restless",
"Felt lonely",
"Enjoyed life",
"Could not get going",
"Felt sad",
"Felt happy")
expected_cols = c("Item", names(likert_obj$results)[2:6], "Mean", "Count")
existing_cols = intersect(expected_cols, names(likert_table))
# Keep only those columns that exist
likert_table = likert_table[, existing_cols]
# Round Likert percentage columns if they exist
percent_cols = intersect(names(likert_table), names(likert_obj$results)[2:6])
likert_table[, percent_cols] = round(likert_table[, percent_cols], 1)
2.1.5 - Display Formatted Table
kable_styling(
kable(likert_table, caption = "Distribution of depression-related responses in Austria (ESS11)"),
bootstrap_options = "striped"
)
| Item | Rarely | Sometimes | Often | Always | Mean | Count |
|---|---|---|---|---|---|---|
| Felt depressed | 0 | 0 | 0 | 0 | 1.359 | 2350 |
| Everything was an effort | 0 | 0 | 0 | 0 | 1.591 | 2348 |
| Sleep was restless | 0 | 0 | 0 | 0 | 1.633 | 2346 |
| Felt lonely | 0 | 0 | 0 | 0 | 1.286 | 2350 |
| Enjoyed life | 0 | 0 | 0 | 0 | 2.813 | 2337 |
| Could not get going | 0 | 0 | 0 | 0 | 1.363 | 2347 |
| Felt sad | 0 | 0 | 0 | 0 | 1.361 | 2345 |
| Felt happy | 0 | 0 | 0 | 0 | 2.873 | 2338 |
2.1.6 - Replot from Table
# Plot again using only percentage columns
plot(likert(summary = likert_table[, 1:6]))
2.2.1 - Reverse-code Positive Items ‘Happy’ and ‘Enjoyed life’ are reversed so that higher values mean more depressive symptoms
# Check and convert if numeric version doesn't exist
if (!"enjlf_num" %in% names(DataAT)) {
DataAT$enjlf_num = as.numeric(DataAT$enjlf)
}
if (!"wrhpp_num" %in% names(DataAT)) {
DataAT$wrhpp_num = as.numeric(DataAT$wrhpp)
}
DataAT$enjlf_rev = 5 - DataAT$enjlf_num
DataAT$wrhpp_rev = 5 - DataAT$wrhpp_num
2.2.2 - Compute new total CES-D8 score using consistent directionality
In order to be able to do so we need to also convert the other CES-D items to numeric variables:
DataAT$fltdpr_num = as.numeric(DataAT$fltdpr)
DataAT$flteeff_num = as.numeric(DataAT$flteeff)
DataAT$slprl_num = as.numeric(DataAT$slprl)
DataAT$fltlnl_num = as.numeric(DataAT$fltlnl)
DataAT$cldgng_num = as.numeric(DataAT$cldgng)
DataAT$fltsd_num = as.numeric(DataAT$fltsd)
DataAT$CES_D8_new = rowSums(DataAT[, c(
"fltdpr_num", "flteeff_num", "slprl_num", "fltlnl_num",
"cldgng_num", "fltsd_num", "enjlf_rev", "wrhpp_rev"
)], na.rm = TRUE)
2.2.3 - Plot of histogram of depressions scores to visualize distribution to choose clinical cutoff
hist(DataAT$CES_D8_new,
breaks = 20,
main = "Distribution of CES-D8 Depression Scores",
xlab = "Total Score",
col = "skyblue",
border = "white")
2.2.4 - Create binary variable for clinically significant depression
Each CES-D8 item is scored from 1 to 4, yielding a total range from 8 to 32. Based on the score distribution, a threshold of 16 was chosen, as it marks the right tail where symptom severity appears clinically significant.
DataAT$clin_dep = ifelse(DataAT$CES_D8_new >= 16, 1, 0)
2.2.5 - Frequency table
| Var1 | Freq |
|---|---|
| 0 | 1877 |
| 1 | 477 |
| Var1 | Freq |
|---|---|
| 0 | 79.74 |
| 1 | 20.26 |
Finally, we examine which psychosocial predictors are associated with clinical depression using logistic regression. Key predictors include life satisfaction, perceived control, trust, job insecurity, and self-rated health.
2.3.1 - Logistic Regression Model (Clinical Depression)
Model Summary
##
## Call:
## glm(formula = clin_dep ~ ctrlife + stflife + ppltrst + testji9 +
## stfhlth, family = binomial(link = "logit"), data = DataAT)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 33.33678 2058.24320 0.016 0.9871
## ctrlife1 -17.48729 2520.82311 -0.007 0.9945
## ctrlife2 -29.68550 2058.24344 -0.014 0.9885
## ctrlife3 -16.84719 1455.39839 -0.012 0.9908
## ctrlife4 -17.01211 1455.39819 -0.012 0.9907
## ctrlife5 -18.18562 1455.39799 -0.012 0.9900
## ctrlife6 -17.81210 1455.39797 -0.012 0.9902
## ctrlife7 -17.78121 1455.39793 -0.012 0.9903
## ctrlife8 -17.87502 1455.39793 -0.012 0.9902
## ctrlife9 -18.62558 1455.39793 -0.013 0.9898
## ctrlifeComplete control -18.76733 1455.39791 -0.013 0.9897
## stflife1 -16.28935 1455.39860 -0.011 0.9911
## stflife2 -14.95665 1455.39852 -0.010 0.9918
## stflife3 -13.34326 1455.39833 -0.009 0.9927
## stflife4 -14.21871 1455.39808 -0.010 0.9922
## stflife5 -14.91058 1455.39789 -0.010 0.9918
## stflife6 -16.07806 1455.39787 -0.011 0.9912
## stflife7 -16.81729 1455.39786 -0.012 0.9908
## stflife8 -17.02964 1455.39787 -0.012 0.9907
## stflife9 -17.50833 1455.39786 -0.012 0.9904
## stflifeExtremely satisfied -17.99883 1455.39789 -0.012 0.9901
## ppltrst1 0.95725 0.92210 1.038 0.2992
## ppltrst2 0.09383 0.91727 0.102 0.9185
## ppltrst3 0.27871 0.81769 0.341 0.7332
## ppltrst4 -0.36069 0.85916 -0.420 0.6746
## ppltrst5 0.38083 0.80184 0.475 0.6348
## ppltrst6 0.23792 0.81516 0.292 0.7704
## ppltrst7 -0.33981 0.82249 -0.413 0.6795
## ppltrst8 -0.65668 0.83952 -0.782 0.4341
## ppltrst9 -0.03446 0.92692 -0.037 0.9703
## ppltrstMost people can be trusted -0.39374 1.35445 -0.291 0.7713
## testji91 -0.01021 0.45679 -0.022 0.9822
## testji92 0.20249 0.41329 0.490 0.6242
## testji93 0.19086 0.42733 0.447 0.6551
## testji94 -0.26258 0.49132 -0.534 0.5930
## testji95 0.22812 0.44125 0.517 0.6052
## testji96 0.41988 0.57584 0.729 0.4659
## testji97 -1.39141 0.75642 -1.839 0.0658 .
## testji98 0.67279 0.55147 1.220 0.2225
## testji99 0.14389 0.69377 0.207 0.8357
## testji9Extremely likely -0.68168 0.77383 -0.881 0.3784
## stfhlth1 -1.64731 1.25784 -1.310 0.1903
## stfhlth2 -0.13447 1.00966 -0.133 0.8940
## stfhlth3 0.73434 0.87273 0.841 0.4001
## stfhlth4 0.02530 0.87715 0.029 0.9770
## stfhlth5 0.58407 0.85671 0.682 0.4954
## stfhlth6 -0.08458 0.89358 -0.095 0.9246
## stfhlth7 0.27161 0.83947 0.324 0.7463
## stfhlth8 -0.22994 0.84620 -0.272 0.7858
## stfhlth9 0.12697 0.86760 0.146 0.8837
## stfhlthExtremely good 0.80575 0.93533 0.861 0.3890
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 727.46 on 748 degrees of freedom
## Residual deviance: 562.44 on 698 degrees of freedom
## (1605 observations deleted due to missingness)
## AIC: 664.44
##
## Number of Fisher Scoring iterations: 14
Odds Ratios with Confidence Intervals
| OddsRatio | CI_lower | CI_upper | |
|---|---|---|---|
| (Intercept) | 3.005939e+14 | 0.000 | NA |
| ctrlife1 | 0.000000e+00 | 0.000 | 1.546760e+02 |
| ctrlife2 | 0.000000e+00 | NA | 2.261190e+126 |
| ctrlife3 | 0.000000e+00 | NA | 1.713987e+120 |
| ctrlife4 | 0.000000e+00 | NA | 3.120425e+120 |
| ctrlife5 | 0.000000e+00 | NA | 2.009736e+120 |
| ctrlife6 | 0.000000e+00 | NA | 3.115596e+120 |
| ctrlife7 | 0.000000e+00 | NA | 3.700404e+120 |
| ctrlife8 | 0.000000e+00 | NA | 3.287505e+120 |
| ctrlife9 | 0.000000e+00 | NA | 1.566809e+120 |
| ctrlifeComplete control | 0.000000e+00 | NA | 1.452455e+120 |
| stflife1 | 0.000000e+00 | 0.000 | 0.000000e+00 |
| stflife2 | 0.000000e+00 | 0.000 | 0.000000e+00 |
| stflife3 | 0.000000e+00 | NA | 1.427472e+94 |
| stflife4 | 0.000000e+00 | NA | 6.905451e+121 |
| stflife5 | 0.000000e+00 | NA | 7.236426e+121 |
| stflife6 | 0.000000e+00 | NA | 2.452844e+121 |
| stflife7 | 0.000000e+00 | NA | 1.221110e+121 |
| stflife8 | 0.000000e+00 | NA | 9.668870e+120 |
| stflife9 | 0.000000e+00 | NA | 6.097507e+120 |
| stflifeExtremely satisfied | 0.000000e+00 | NA | 3.557520e+120 |
| ppltrst1 | 2.605000e+00 | 0.455 | 1.117100e+01 |
| ppltrst2 | 1.098000e+00 | 0.191 | 7.432000e+00 |
| ppltrst3 | 1.321000e+00 | 0.289 | 4.899000e+00 |
| ppltrst4 | 6.970000e-01 | 0.139 | 4.313000e+00 |
| ppltrst5 | 1.464000e+00 | 0.333 | 8.306000e+00 |
| ppltrst6 | 1.269000e+00 | 0.281 | 7.367000e+00 |
| ppltrst7 | 7.120000e-01 | 0.155 | 4.179000e+00 |
| ppltrst8 | 5.190000e-01 | 0.108 | 3.118000e+00 |
| ppltrst9 | 9.660000e-01 | 0.163 | 6.628000e+00 |
| ppltrstMost people can be trusted | 6.750000e-01 | 0.078 | 8.281000e+00 |
| testji91 | 9.900000e-01 | 0.484 | 2.015000e+00 |
| testji92 | 1.224000e+00 | 0.547 | 2.784000e+00 |
| testji93 | 1.210000e+00 | 0.524 | 2.368000e+00 |
| testji94 | 7.690000e-01 | 0.356 | 1.989000e+00 |
| testji95 | 1.256000e+00 | 0.528 | 3.004000e+00 |
| testji96 | 1.522000e+00 | 0.473 | 4.603000e+00 |
| testji97 | 2.490000e-01 | 0.073 | 9.600000e-01 |
| testji98 | 1.960000e+00 | 0.650 | 5.732000e+00 |
| testji99 | 1.155000e+00 | 0.383 | 4.195000e+00 |
| testji9Extremely likely | 5.060000e-01 | 0.146 | 2.067000e+00 |
| stfhlth1 | 1.930000e-01 | 0.014 | 2.107000e+00 |
| stfhlth2 | 8.740000e-01 | 0.118 | 4.273000e+00 |
| stfhlth3 | 2.084000e+00 | 0.400 | 1.269500e+01 |
| stfhlth4 | 1.026000e+00 | 0.192 | 6.211000e+00 |
| stfhlth5 | 1.793000e+00 | 0.355 | 6.834000e+00 |
| stfhlth6 | 9.190000e-01 | 0.167 | 3.797000e+00 |
| stfhlth7 | 1.312000e+00 | 0.270 | 4.935000e+00 |
| stfhlth8 | 7.950000e-01 | 0.161 | 4.616000e+00 |
| stfhlth9 | 1.135000e+00 | 0.657 | 4.510000e+00 |
| stfhlthExtremely good | 2.238000e+00 | 0.372 | 1.518300e+01 |
2.3.2 - Linear Regression (Continuous CES-D8 Score)
In addition to the logistic model, we fit a linear regression using
the continuous CES-D8 score (CES_D8_new) as the dependent
variable. This allows us to capture variation across the full spectrum
of depressive symptoms.
Model Summary
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 32.4765542 | 4.1912147 | 7.7487212 | 0.0000000 |
| ctrlife1 | -7.0700746 | 5.3150226 | -1.3302059 | 0.1838849 |
| ctrlife2 | -5.3355298 | 4.2921019 | -1.2431042 | 0.2142468 |
| ctrlife3 | -3.8451822 | 3.4026731 | -1.1300475 | 0.2588444 |
| ctrlife4 | -1.9652152 | 3.2317575 | -0.6080949 | 0.5433224 |
| ctrlife5 | -3.6955703 | 3.1113120 | -1.1877852 | 0.2353221 |
| ctrlife6 | -4.5400130 | 3.0991372 | -1.4649280 | 0.1433908 |
| ctrlife7 | -4.1137048 | 3.0743125 | -1.3380894 | 0.1813031 |
| ctrlife8 | -4.6629521 | 3.0745014 | -1.5166531 | 0.1298070 |
| ctrlife9 | -5.0054597 | 3.0713659 | -1.6297178 | 0.1036123 |
| ctrlifeComplete control | -5.2088821 | 3.0614248 | -1.7014568 | 0.0893026 |
| stflife1 | -10.3613303 | 3.6658183 | -2.8264714 | 0.0048410 |
| stflife2 | -7.7595656 | 3.5080841 | -2.2119098 | 0.0272960 |
| stflife3 | -8.5169838 | 3.2153308 | -2.6488671 | 0.0082588 |
| stflife4 | -10.2000938 | 3.1603684 | -3.2275015 | 0.0013071 |
| stflife5 | -10.9464352 | 3.0633933 | -3.5733039 | 0.0003768 |
| stflife6 | -12.9688024 | 3.0490121 | -4.2534440 | 0.0000239 |
| stflife7 | -14.1004303 | 3.0339154 | -4.6476017 | 0.0000040 |
| stflife8 | -14.6637558 | 3.0347168 | -4.8320014 | 0.0000017 |
| stflife9 | -15.8625276 | 3.0321323 | -5.2314760 | 0.0000002 |
| stflifeExtremely satisfied | -16.5528260 | 3.0306820 | -5.4617496 | 0.0000001 |
| ppltrst1 | 0.5471289 | 1.0169432 | 0.5380132 | 0.5907394 |
| ppltrst2 | -1.0834372 | 0.9596093 | -1.1290399 | 0.2592689 |
| ppltrst3 | -0.3282984 | 0.8663231 | -0.3789561 | 0.7048357 |
| ppltrst4 | -1.3079594 | 0.8891537 | -1.4710161 | 0.1417374 |
| ppltrst5 | -0.8150263 | 0.8454315 | -0.9640358 | 0.3353618 |
| ppltrst6 | -0.8068982 | 0.8582320 | -0.9401866 | 0.3474471 |
| ppltrst7 | -1.1991328 | 0.8477109 | -1.4145540 | 0.1576452 |
| ppltrst8 | -1.1780053 | 0.8545334 | -1.3785362 | 0.1684795 |
| ppltrst9 | -1.8121930 | 0.9297781 | -1.9490597 | 0.0516885 |
| ppltrstMost people can be trusted | -1.5493409 | 1.2015523 | -1.2894494 | 0.1976690 |
| testji91 | -0.0187425 | 0.4603224 | -0.0407159 | 0.9675340 |
| testji92 | 0.1405106 | 0.4132024 | 0.3400528 | 0.7339191 |
| testji93 | -0.1633152 | 0.4365794 | -0.3740791 | 0.7084591 |
| testji94 | -0.3483347 | 0.4620653 | -0.7538646 | 0.4511848 |
| testji95 | 0.0762718 | 0.4364748 | 0.1747450 | 0.8613306 |
| testji96 | 0.3067147 | 0.5821774 | 0.5268405 | 0.5984717 |
| testji97 | -0.3903762 | 0.5433030 | -0.7185239 | 0.4726748 |
| testji98 | 0.5925059 | 0.5543458 | 1.0688381 | 0.2855121 |
| testji99 | 0.4064911 | 0.5955749 | 0.6825189 | 0.4951373 |
| testji9Extremely likely | -1.3971119 | 0.6795785 | -2.0558506 | 0.0401683 |
| stfhlth1 | -0.6179849 | 1.1351344 | -0.5444157 | 0.5863293 |
| stfhlth2 | -0.0440316 | 0.9958708 | -0.0442142 | 0.9647463 |
| stfhlth3 | 1.3227040 | 0.8844553 | 1.4955013 | 0.1352356 |
| stfhlth4 | 0.3757689 | 0.8847030 | 0.4247402 | 0.6711570 |
| stfhlth5 | 0.7879890 | 0.8640406 | 0.9119814 | 0.3620934 |
| stfhlth6 | 0.3644092 | 0.8730122 | 0.4174159 | 0.6765026 |
| stfhlth7 | 0.6073071 | 0.8396200 | 0.7233119 | 0.4697306 |
| stfhlth8 | 0.5988654 | 0.8331515 | 0.7187953 | 0.4725076 |
| stfhlth9 | 0.2208950 | 0.8495072 | 0.2600273 | 0.7949194 |
| stfhlthExtremely good | 0.8956431 | 0.9089649 | 0.9853440 | 0.3247965 |
This model helps interpret how psychosocial variables relate to depression symptom severity across the whole distribution, rather than just above a clinical threshold.
3.1 - Histogram of CES-D8 Depression Scores
This shows the distribution of depression scores to define a meaningful cutoff for “clinically depressed” individuals (suggested: CES-D8 ≥ 16).
3.2 - Bar Chart: Frequency of Clinical Depression
This visualizes prevalence of clinically significant depression in the Austrian sample using a binarized version of CES-D8.
3.3 - Odds Ratios for Predictors of Clinical Depression
This highlights which factors (life control, satisfaction, trust) are protective or risky for clinical depression.
This study explored the prevalence and predictors of depression in Austria using data from the European Social Survey (ESS Round 11). We applied both a continuous scoring approach and a clinical classification based on the CES-D8 threshold. Results revealed that depressive symptoms are widespread, with approximately one-fifth of the Austrian sample meeting criteria for clinically significant depression.
By reverse-coding positive affect items and summing the eight indicators, we created a total depression score. A cutoff of ≥16 was used to classify respondents as clinically depressed, following CES-D literature and the distribution of scores in our sample.
By combining descriptive statistics and Likert-scale visualization this report provides a well-rounded picture of how depression manifests and varies within the Austrian population. The findings highlight the importance of subjective wellbeing and perceived autonomy in mental health with potential relevance for targeted prevention, early detection, and public health interventions.