12 Ex: Ginzberg Depression

# install.packages("remotes")
# remotes::install_github("sarbearschwartz/apaSupp")
# remotes::install_github("ddsjoberg/gtsummary")

library(carData)
library(tidyverse)   
library(broom)     
library(naniar)
library(corrplot)   
library(GGally)
library(gtsummary)
library(apaSupp)
library(performance)
library(interactions)
library(car)
library(effects)
library(emmeans)
library(ggResidpanel)
library(modelsummary)
library(ppcor)
library(jtools)
library(olsrr)
library(DescTools)
library(effectsize)
library(ggpubr)

12.1 PURPOSE

12.1.1 Background

Fatalism has been studied as a health belief since 1980. Several studies have found a positive association between fatalism and depression. Researchers have suggested that fatalism can make people more vulnerable to depression.

If you have pathological Simplicity thinking, you can’t think gray about nearly anything. You see everything in life as a black-and-white film. You think in such extremes, so you end up feeling in these extremes as well.

12.1.2 Research Question

Is there a relationship between depression and beliefs (simplicity and fatalism)?

More so, if we control for the assumed association between fatalism and depression, does simplistic beliefs play an additional role?

12.1.3 Data Description

The data for psychiatric patients (n = 84) hospitalized for depression is provided by the carData package.

Source: Personal communication from Georges Monette, Department of Mathematics and Statistics, York University, with the permission of the original investigator.

References: Fox, J. (2016) Applied Regression Analysis and Generalized Linear Models, Third Edition. Sage.

12.1.3.1 Variables

  • simplicity Measures subject’s need to see the world in black and white
  • fatalism Fatalism scale
  • depression Beck self-report depression scale
data("Ginzberg", package = "carData")  

df_ginz <- Ginzberg
tibble::glimpse(df_ginz)
Rows: 82
Columns: 6
$ simplicity <dbl> 0.92983, 0.91097, 0.53366, 0.74118, 0.53366, 0.62799, 0.778…
$ fatalism   <dbl> 0.35589, 1.18439, -0.05837, 0.35589, 0.77014, 1.39152, 0.35…
$ depression <dbl> 0.59870, 0.72787, 0.53411, 0.56641, 0.50182, 0.56641, 0.469…
$ adjsimp    <dbl> 0.75934, 0.72717, 0.62176, 0.83522, 0.47697, 0.40664, 0.845…
$ adjfatal   <dbl> 0.10673, 0.99915, 0.03811, 0.42218, 0.81423, 1.23261, 0.297…
$ adjdep     <dbl> 0.41865, 0.51688, 0.70699, 0.65639, 0.53518, 0.34042, 0.421…

12.2 EXPLORATORY DATA ANALYSIS

Before embarking on any inferencial anlaysis or modeling, always get familiar with your variables one at a time (univariate), as well as pairwise (bivariate).

12.2.1 Summary Statistics

12.2.1.1 Univariate

df_ginz %>% 
  dplyr::select("Simplicity" = simplicity,
                "Fatalism" = fatalism,
                "Depression" = depression) %>% 
  apaSupp::tab_desc(caption = "Description of Psychiatric Patients Hospitalized for Depression")
Table 12.1
Description of Psychiatric Patients Hospitalized for Depression

Variable

NA

M

SD

min

Q1

Mdn

Q3

max

Simplicity

0

1.00

0.50

0.25

0.66

0.88

1.27

2.85

Fatalism

0

1.00

0.50

-0.06

0.56

0.98

1.39

2.22

Depression

0

1.00

0.50

0.47

0.57

0.82

1.37

2.25

Note. NA = not available or missing. Mdn = median. Q1 = 25th percentile, Q3 = 75th percentile. N = 82.

12.2.1.2 Bivariate

df_ginz %>% 
  dplyr::select("Simplicity" = simplicity,
                "Fatalism" = fatalism,
                "Depression" = depression) %>% 
  apaSupp::tab_cor(caption = "Correlations Between Continuous Meaurses")
Table 12.2
Correlations Between Continuous Meaurses

Variables

r

p

Simplicity

Fatalism

0.630

< .001

***

Simplicity

Depression

0.640

< .001

***

Fatalism

Depression

0.660

< .001

***

Note. r = Pearson's Product-Moment correlation coefficient. N = 82.

* p < .05. ** p < .01. *** p < .001.

df_ginz %>% 
  dplyr::select("Simplicity" = simplicity,
                "Fatalism" = fatalism,
                "Depression" = depression) %>% 
  cor(method = "pearson") %>% 
  corrplot::corrplot.mixed()

12.2.2 Visualize Distributions

12.2.2.1 Univariate

Always plot your data first!

df_ginz %>% 
  apaSupp::spicy_histos(var = simplicity)

df_ginz %>% 
  apaSupp::spicy_histos(var = fatalism)

df_ginz %>% 
  apaSupp::spicy_histos(var = depression)

12.2.2.2 Bivariate

df_ginz %>% 
  dplyr::select("Simplicity" = simplicity,
                "Fatalism" = fatalism,
                "Depression" = depression) %>%
  data.frame %>% 
  GGally::ggscatmat() +
  theme_bw()

df_ginz %>% 
  ggplot(aes(x = simplicity,
              y = depression)) +
  geom_point() +
  theme_bw() +
  geom_smooth(method = "lm",
              formula = y ~ x) +
  ggpubr::stat_regline_equation(label.x = 0.25,
                                label.y = 2.45,
                                size = 6) +
  labs(x = "Simplicity\n(need to see the world in black and white)",
       y = "Observed Depression\n(Beck self-report)")

df_ginz %>% 
  ggplot(aes(x = fatalism,
              y = depression)) +
  geom_point() +
  theme_bw() +
  geom_smooth(method = "lm",
              formula = y ~ x) +
  ggpubr::stat_regline_equation(label.x = 0,
                                label.y = 2.45,
                                size = 6) +
  labs(x = "Fatalism\n(belief that all events are predetermined and therefore inevitable)",
       y = "Observed Depression\n(Beck self-report)")

12.3 REGRESSION ANALYSIS

  • The dependent variable (DV) is depression score (\(Y\))
  • The independent variables (IVs) are 2 beliefs, simplicity and fatalism (\(X_1\), \(X_2\))

12.3.1 Fit Models

The lm() function must be supplied with at least two options:

  • a formula: Y ~ X
  • a dataset: data = XXXXXXX

When a model is fit and directly saved as a named object via the assignment opperator (<-), no output is produced.

12.3.1.1 Model 1: Fatalism

fit_lm_fat <- lm(depression ~ fatalism,
               data = df_ginz)
summary(fit_lm_fat)

Call:
lm(formula = depression ~ fatalism, data = df_ginz)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.69096 -0.25544 -0.03114  0.20540  1.17070 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.34263    0.09408   3.642 0.000479 ***
fatalism     0.65737    0.08425   7.802 1.97e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3791 on 80 degrees of freedom
Multiple R-squared:  0.4321,    Adjusted R-squared:  0.425 
F-statistic: 60.88 on 1 and 80 DF,  p-value: 1.97e-11

12.3.1.2 Model 2: Simplicity

fit_lm_sim <- lm(depression ~ simplicity,
               data = df_ginz)
summary(fit_lm_sim)

Call:
lm(formula = depression ~ simplicity, data = df_ginz)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.6575 -0.2370 -0.1215  0.1896  1.4243 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.35673    0.09559   3.732 0.000354 ***
simplicity   0.64327    0.08560   7.515 7.17e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3852 on 80 degrees of freedom
Multiple R-squared:  0.4138,    Adjusted R-squared:  0.4065 
F-statistic: 56.47 on 1 and 80 DF,  p-value: 7.17e-11

12.3.1.3 Model 3: Both Beliefs

fit_lm_both <- lm(depression ~ fatalism + simplicity,
               data = df_ginz)
summary(fit_lm_both)

Call:
lm(formula = depression ~ fatalism + simplicity, data = df_ginz)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.67818 -0.23270 -0.05276  0.16817  1.10094 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.20269    0.09472   2.140 0.035455 *  
fatalism     0.41777    0.10064   4.151 8.28e-05 ***
simplicity   0.37953    0.10064   3.771 0.000312 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3512 on 79 degrees of freedom
Multiple R-squared:  0.5188,    Adjusted R-squared:  0.5066 
F-statistic: 42.58 on 2 and 79 DF,  p-value: 2.837e-13

12.3.2 Compare Models

apaSupp::tab_lms(list(fit_lm_sim, fit_lm_fat, fit_lm_both))
Table 12.3
Compare Regression Models

Model 1

Model 2

Model 3

Variable

b

(SE)

p

b

(SE)

p

b

(SE)

p

(Intercept)

0.36

(0.10)

< .001 ***

0.34

(0.09)

< .001 ***

0.20

(0.09)

.035 *

simplicity

0.64

(0.09)

< .001 ***

0.38

(0.10)

< .001 ***

fatalism

0.66

(0.08)

< .001 ***

0.42

(0.10)

< .001 ***

0.41

0.43

0.52

Adjusted R²

0.41

0.43

0.51

* p < .05. ** p < .01. *** p < .001.

anova(fit_lm_sim, fit_lm_both)
# A tibble: 2 × 6
  Res.Df   RSS    Df `Sum of Sq`     F   `Pr(>F)`
   <dbl> <dbl> <dbl>       <dbl> <dbl>      <dbl>
1     80 11.9     NA       NA     NA   NA        
2     79  9.74     1        2.13  17.2  0.0000828
anova(fit_lm_fat, fit_lm_both)
# A tibble: 2 × 6
  Res.Df   RSS    Df `Sum of Sq`     F  `Pr(>F)`
   <dbl> <dbl> <dbl>       <dbl> <dbl>     <dbl>
1     80 11.5     NA       NA     NA   NA       
2     79  9.74     1        1.75  14.2  0.000312

12.3.3 Assumption Checks

12.3.3.1 Multicolinearity Check

car::vif(fit_lm_both)
  fatalism simplicity 
  1.662557   1.662557 

12.3.3.2 Residual Diagnostics

performance::check_residuals(fit_lm_both)
OK: Simulated residuals appear as uniformly distributed (p = 0.447).
ggResidpanel::resid_panel(fit_lm_both)

12.4 EFFECT SIZES

Variance Explained = variance in the DV “explained by” or “attributed to” the IV(s)

12.4.1 Variance Partitioning

Variance in the DV - Total

var(df_ginz$depression)
[1] 0.2499999

Variance in the SV - Not attributed to Simplicity

var(fit_lm_sim$residuals)
[1] 0.1465519

Variance in the SV - Not attributed to Fatalism

var(fit_lm_fat$residuals)
[1] 0.141967

Variance in the SV - Not attributed to the combination of Simplicity and Fatalism

var(fit_lm_both$residuals)
[1] 0.1203068

12.4.1.1 Model with only Simplicity

summary(fit_lm_sim)$r.squared
[1] 0.4137922
1 - (var(fit_lm_sim$residuals)/var(df_ginz$depression))
[1] 0.4137922

12.4.1.2 Model with only Fatalism

summary(fit_lm_fat)$r.squared
[1] 0.4321319
1 - (var(fit_lm_fat$residuals)/var(df_ginz$depression))
[1] 0.4321319

12.4.1.3 Model with Both Predictors

summary(fit_lm_both)$r.squared
[1] 0.5187726
1 - (var(fit_lm_both$residuals)/var(df_ginz$depression))
[1] 0.5187726

12.4.2 Variance Explained

12.4.2.1 R-squared

AKA: “Coefficient of Determination”

Total for all the predictors in the model

  • From Simplicity, not controlling for Fatalism = .414

  • From Fatalism, not controlling for Simplicity = .432

  • Total COLLECTIVELY from Both Beliefs = .519

“Coefficient of NON-Determination”

1 - .519
[1] 0.481

12.4.2.2 Eta-Squared

AKA: “Semi-partial Correlation”

  • Unique from only Simplicity, WHILE controlling for Fatalism
.519 - .432
[1] 0.087
  • Unique from only Fatalism, WHILE controlling for Simplicity
.519 - .414
[1] 0.105
  • Shared from OVERLAP in Both Beliefs
.432 + .414 - .519
[1] 0.327

12.4.2.3 Partial Eta-squared

AKA: “Partial Correlation”

  • Unique from only Simplicity, AFTER controlling for Fatalism
.087/(.087 + .481)
[1] 0.153169
  • Unique from only Fatalism, AFTER controlling for Simplicity
.105/(.105 + .481)
[1] 0.1791809

12.4.2.4 Auto Calculations

DescTools::EtaSq(fit_lm_both)
               eta.sq eta.sq.part
fatalism   0.10498045    0.179084
simplicity 0.08664075    0.152572

12.4.3 Standardized Regression

parameters::standardise_parameters(fit_lm_both)
# A tibble: 3 × 5
  Parameter   Std_Coefficient    CI CI_low CI_high
  <chr>                 <dbl> <dbl>  <dbl>   <dbl>
1 (Intercept)        7.62e-17  0.95 -0.154   0.154
2 fatalism           4.18e- 1  0.95  0.217   0.618
3 simplicity         3.80e- 1  0.95  0.179   0.580

12.5 APA WRITE-UP

12.5.1 Methods

A sample of 82 psychiatric patients hospitalized for depression completed the Beck Depression Inventory by self-report. Their beliefs in simplicity (black and white thinking) and fatalism (fate controls everything) were also self-reported and scored.

To assess the potential relationship between both these beliefs and depressive symptoms, first Pearson correlations were computed between pairs of all three measures. Then unadjusted, simple linear regression models for each belief score separately were compared to the multiple linear regression including both beliefs. Multiple linear regression was used to further investigate the hypothesized association between simplicity and depression after controlling for the previously documented correlation between fatalism and depression. Variance inflation factors (VIF) were computed to assess potential concern regarding colinearity between the two beliefs.

12.5.2 Results

A summary of the participant measures is provided in Table 1. Notably, the distribution of simplicity beliefs exhibited a high degree of positive skewness, while depressive symptoms was less positively skewed (see supplemental materials).

Depressive Symptoms were positively correlated with both fatalism beliefs (r = .660) and simplicity beliefs (r = .640). A similar degree of correlation was manifest between the two types of belief (r = .630).

The unadjusted models are presented in Table 2. The first model replicated previous studies, as fatalism beliefs exhibited a strong and significant association with depressive symptoms, b = 0.66, SE = 0.08, p < .001, \(R^2\) = .43. The second model showed a similar association between simplicity beliefs and depressive symptoms, b = 0.64, SE = 0.09, p < .001, \(R^2\) = .41.

Table 3 details the final model which revealed that after accounting for fatalism’s role, simplicity beliefs accounted for 15% of the remaining variance in depressive symptoms, \(\eta_p^2\) = .153. Over half of the total variance in depressive symptoms may be attributed to both beliefs together, \(R_{adj}^2\) = .51. No concern was raised regarding multicolinearity, thus each belief exhibited a distinct association with depression symptom. Fatalism belief did expressed a slightly stronger association, b = 0.42, SE = 0.10, p < .001, \(\eta^2\) = .105, compared to simplicity beliefs, b = 0.38, SE = 0.10, p < .001, \(\eta^2\) = .087.

12.5.3 Tables

df_ginz %>% 
  dplyr::select("Simplicity Beliefs" = simplicity,
                "Fatalism Beliefs" = fatalism,
                "Depressive Symptoms" = depression) %>% 
  apaSupp::tab_desc(caption = "Description of Sampled Psychiatric Patients Hospitalized for Depression",
                    general_note = "All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three.")
Table 12.4
Description of Sampled Psychiatric Patients Hospitalized for Depression

Variable

NA

M

SD

min

Q1

Mdn

Q3

max

Simplicity Beliefs

0

1.00

0.50

0.25

0.66

0.88

1.27

2.85

Fatalism Beliefs

0

1.00

0.50

-0.06

0.56

0.98

1.39

2.22

Depressive Symptoms

0

1.00

0.50

0.47

0.57

0.82

1.37

2.25

Note. All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three. NA = not available or missing. Mdn = median. Q1 = 25th percentile, Q3 = 75th percentile. N = 82.

apaSupp::tab_lms(list(fit_lm_fat, fit_lm_sim),
                 mod_names = c("Model 1\nFatalism Only",
                               "Model 2\nSimplicity Only"),
                 var_labels = c("simplicity" = "Simplicity",
                                "fatalism"   = "Fatalism"),
                 caption = "Parameter Estimates for Unadjusted, Simple Linear Models Regressing Depressive Symptoms on EAch Belief Score Seperately",
                 general_note = "All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three. N = 82.",
                 p_note = "*** p < .001")
Table 12.5
Parameter Estimates for Unadjusted, Simple Linear Models Regressing Depressive Symptoms on EAch Belief Score Seperately

Model 1
Fatalism Only

Model 2
Simplicity Only

Variable

b

(SE)

p

b

(SE)

p

(Intercept)

0.34

(0.09)

< .001 ***

0.36

(0.10)

< .001 ***

Fatalism

0.66

(0.08)

< .001 ***

Simplicity

0.64

(0.09)

< .001 ***

0.43

0.41

Adjusted R²

0.43

0.41

Note. All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three. N = 82.

*** p < .001

apaSupp::tab_lm(fit_lm_both,
                 var_labels = c("simplicity" = "Simplicity",
                                "fatalism"   = "Fatalism"),
                 caption = "Parameter Estimates for Multiple Linear Model Regressing Depressive Symptoms on Both Belief Scorse",
                 general_note = "All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three. N = 82.",
                 p_note = "* p < .05. *** p < .001",
         std = FALSE,
         vif = TRUE)
Table 12.6
Parameter Estimates for Multiple Linear Model Regressing Depressive Symptoms on Both Belief Scorse

Variable

b

(SE)

p

VIF

𝜂²

𝜂ₚ²

(Intercept)

0.20

(0.09)

.035 *

Fatalism

0.42

(0.10)

< .001 ***

1.66

.105

.179

Simplicity

0.38

(0.10)

< .001 ***

1.66

.087

.153

0.52

Adjusted R²

0.51

Note. All measures are self-reported. Depressive symptoms are captured by the Beck Depression Inventory and each belief is scored between zero and three. N = 82. VIF = variance inflation factor. 𝜂² = semi-partial correlation. 𝜂ₚ² = partial correlation.

* p < .05. *** p < .001