Maladaptive Defence Mechanisms

Objective

Wikipedia describes confirmatory factor analysis (CFA) as a particular form of factor analysis used to test whether a construct’s measures are consistent with the nature of that construct. CFA tests whether data fits a hypothesised measurement model.

This vignette performs a CFA on a selection of maladaptive defence mechanisms cited in organisational literature and reviews model fit.

Workflow

Based on a literature review of psychoanalytic processes within organisations, selected eight maladaptive defence mechanisms for investigation. These maladaptive defence mechanisms (latent factors) were: dissociation, displacement, isolation of affect, reaction formation, denial, projection, passive aggression and acting out. Items to measure these eight defences were sourced from “The defense style questionnaire”. Two items were selected from this scale to measure each defence, resulting in a survey instrument containing 16 items.

The survey instrument was implemented in 10 public and private sector organisations implementing organisational change, gathering 604 usable responses.

The raw data set was wrangled and tidied before processing. Conducted a brief exploratory analysis comprising a statistical summary, visualisation and correlation analysis to understand the manifest variables.

The CFA process commenced by building and fitting a base model. After reviewing the base model fit and modification indices, built a revised model to refine the fit. Compared fit statistics for both models against targets to arrive at a model with an improved and acceptable fit.

Results

1. Explore data

Chart 1 illustrates the distribution of responses for each of the 16 manifest variables.

Table 1 is a statistical summary for each of the 16 manifest variables.

Table 1 Maladaptive defence mechanisms statistical summary
vars n mean sd median trimmed mad min max range skew kurtosis se
diss.e 1 604 2.40 1.33 2 2.18 0.00 1 7 6 1.43 1.67 0.05
diss.g 2 604 2.90 1.43 2 2.80 1.48 1 7 6 0.70 -0.49 0.06
disp.o 3 604 2.59 1.38 2 2.43 1.48 1 7 6 0.94 0.14 0.06
disp.p 4 604 3.38 1.75 3 3.32 1.48 1 7 6 0.29 -1.25 0.07
isaf.q 5 604 3.49 1.79 3 3.45 1.48 1 7 6 0.23 -1.31 0.07
isaf.t 6 604 3.33 1.59 3 3.27 1.48 1 7 6 0.32 -1.09 0.06
refo.c 7 604 3.55 1.89 3 3.49 1.48 1 7 6 0.28 -1.24 0.08
refo.l 8 604 4.76 1.42 5 4.88 1.48 1 7 6 -0.60 -0.40 0.06
deni.d 9 604 2.67 1.37 2 2.52 1.48 1 7 6 0.97 0.12 0.06
deni.h 10 604 2.18 1.24 2 1.96 1.48 1 7 6 1.57 2.48 0.05
proj.b 11 604 2.54 1.24 2 2.39 0.00 1 7 6 1.15 0.74 0.05
proj.m 12 604 2.50 1.27 2 2.37 1.48 1 7 6 0.92 0.18 0.05
paag.j 13 604 2.15 1.24 2 1.93 1.48 1 7 6 1.69 2.96 0.05
paag.s 14 604 2.97 1.35 2 2.86 1.48 1 7 6 0.74 -0.21 0.05
acou.f 15 604 3.74 1.65 4 3.72 1.48 1 7 6 0.05 -1.30 0.07
acou.i 16 604 3.33 1.59 3 3.28 1.48 1 7 6 0.31 -1.12 0.06

Chart 2 box plot shows the distribution for each of the 16 manifest variables explaining the eight latent factors. Measures have median values ranging from “2” to “5”.

Chart 3 maladaptive defence mechanisms correlation heatmap calculates coefficients ranging from -0.12 to 0.48. All pairs of items measuring the same latent factor are reasonably correlated except for reaction formation (refo) and denial (deni), with correlation coefficients of 0.07.

2. Confirmatory Factor Analysis

2.1 Model 1 Base Model

The base model was built on the eight maladaptive defence mechanisms under investigation. Chart 4 path diagram shows correlations between the eight latent factors and standardised loadings between latent factors and their respective manifest variables for this data set.

Note: Please magnify the screen to see Chart 4 in greater detail.

Reviewed standardised loadings and modification indices for Model 1. The latent factors “denial” and particularly “reaction formation” had comparatively poor standardised loadings with their manifest variables.

2.2 Model 2 Revised Model

Improving model fit is an iterative process of reassigning and removing redundant items where appropriate, guided by theoretical concepts. Respecified the model in a number of different ways. Removing the “reaction formation” manifest variables resulted in a high out-of-bounds correlation between “denial” and “dissociation”, indicating multicollinearity or a strong similarity between these two factors. For an improved fit, “denial” was removed from the scale for two reasons. First, because of a poor standardised loading item, and second another latent factor, dissociation, was capturing the measure.

Chart 5 illustrates the revised model. The standardised loadings between latent factors and their manifest variables in Model 2 were mainly moderate.

Note: Please magnify the screen to see Chart 5 in greater detail.

Table 2 summarises the relationship between latent factors and manifest variables for Model 2.

Table 2 Item estimate and loading for Model 2
latent factor item estimate std.err z-value p-value std.all
dissociation diss.e 0.7793 0.0929 8.3859 0 0.5854
dissociation diss.g 0.5684 0.0800 7.1029 0 0.3984
displacement disp.o 0.9093 0.1197 7.5983 0 0.6578
displacement disp.p 0.4567 0.0889 5.1373 0 0.2605
isolationaffect isaf.q 0.9653 0.1007 9.5877 0 0.5388
isolationaffect isaf.t 1.1199 0.1032 10.8512 0 0.7065
projection proj.b 0.7785 0.0563 13.8203 0 0.6281
projection proj.m 0.9644 0.0602 16.0249 0 0.7614
pass.aggress. paag.j 0.4903 0.0605 8.1066 0 0.3958
pass.aggress. paag.s 0.8155 0.0781 10.4470 0 0.6058
actingout acou.f 0.9985 0.0940 10.6257 0 0.6042
actingout acou.i 0.9592 0.0903 10.6169 0 0.6033

Chart 6 qq-plot shows the residuals for Model 2. The residuals mostly fall within the 0.95 confidence level.

2.3 Compare model fit

Compared fit for both models. Output 1 shows, based on this data set, Model 2 is preferred with improved absolute and relative fit statistics.

Note: Fit measure targets: CFI, TLI, GFI > 0.90 | RMSEA, SRMR < 0.05 | model with lowest AIC and BIC.

Output 1 Comparison of model fit

####################### Model Fit Indices ###########################
                  chisq df pvalue   cfi   tli   gfi rmsea  srmr        aic
dmmal_cfa_fit2  85.618† 39   .000 .949† .913† .978† .044† .036† 25191.798†
dmmal_cfa_fit1 202.990  76   .000 .901  .843  .960  .053  .050  33616.234 
                      bic
dmmal_cfa_fit2 25363.537†
dmmal_cfa_fit1 33880.448 

Finally, assessed the overall reliability and internal consistency of the scale. There was a slight improvement in the standardised Cronbach’s alpha for the revised model. Internal consistency and reliability increased from α = 0.6865 in Model 1 to α = 0.6921 in Model 2. This measure of scale reliability was moderate and acceptable.


Reference:

Maladaptive defence mechanisms were measured using selected items from ‘The Defense Style Questionnaire’ by Andrews, Singh and Bond, published in The Journal of Nervous and Mental Disease.


Session information and package update

## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.4.0 (2024-04-24 ucrt)
##  os       Windows 11 x64 (build 22631)
##  system   x86_64, mingw32
##  ui       RTerm
##  language (EN)
##  collate  English_Australia.utf8
##  ctype    English_Australia.utf8
##  tz       Australia/Brisbane
##  date     2024-07-29
##  pandoc   3.1.11 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  ! package      * version   date (UTC) lib source
##    abind          1.4-5     2016-07-21 [1] CRAN (R 4.4.0)
##    arm            1.14-4    2024-04-01 [1] CRAN (R 4.4.0)
##    backports      1.5.0     2024-05-23 [1] CRAN (R 4.4.0)
##    base64enc      0.1-3     2015-07-28 [1] CRAN (R 4.4.0)
##    boot           1.3-30    2024-02-26 [2] CRAN (R 4.4.0)
##    bslib          0.7.0     2024-03-29 [1] CRAN (R 4.4.0)
##    cachem         1.1.0     2024-05-16 [1] CRAN (R 4.4.0)
##    car          * 3.1-2     2023-03-30 [1] CRAN (R 4.4.0)
##    carData      * 3.0-5     2022-01-06 [1] CRAN (R 4.4.0)
##    checkmate      2.3.1     2023-12-04 [1] CRAN (R 4.4.0)
##    cli            3.6.3     2024-06-21 [1] CRAN (R 4.4.1)
##    cluster        2.1.6     2023-12-01 [2] CRAN (R 4.4.0)
##    coda           0.19-4.1  2024-01-31 [1] CRAN (R 4.4.0)
##    codetools      0.2-20    2024-03-31 [2] CRAN (R 4.4.0)
##    colorspace     2.1-0     2023-01-23 [1] CRAN (R 4.4.1)
##    corpcor        1.6.10    2021-09-16 [1] CRAN (R 4.4.0)
##    data.table   * 1.15.4    2024-03-30 [1] CRAN (R 4.4.0)
##    devtools       2.4.5     2022-10-11 [1] CRAN (R 4.4.0)
##    digest         0.6.36    2024-06-23 [1] CRAN (R 4.4.1)
##    dplyr        * 1.1.4     2023-11-17 [1] CRAN (R 4.4.0)
##    ellipsis       0.3.2     2021-04-29 [1] CRAN (R 4.4.0)
##    emmeans        1.10.3    2024-07-01 [1] CRAN (R 4.4.1)
##    estimability   1.5.1     2024-05-12 [1] CRAN (R 4.4.0)
##    evaluate       0.24.0    2024-06-10 [1] CRAN (R 4.4.0)
##    fansi          1.0.6     2023-12-08 [1] CRAN (R 4.4.0)
##    farver         2.1.2     2024-05-13 [1] CRAN (R 4.4.0)
##    fastmap        1.2.0     2024-05-15 [1] CRAN (R 4.4.0)
##    fdrtool        1.2.17    2021-11-13 [1] CRAN (R 4.4.0)
##    forcats      * 1.0.0     2023-01-29 [1] CRAN (R 4.4.0)
##    foreign        0.8-86    2023-11-28 [2] CRAN (R 4.4.0)
##    Formula        1.2-5     2023-02-24 [1] CRAN (R 4.4.0)
##    fs             1.6.4     2024-04-25 [1] CRAN (R 4.4.0)
##    generics       0.1.3     2022-07-05 [1] CRAN (R 4.4.0)
##    GGally       * 2.2.1     2024-02-14 [1] CRAN (R 4.4.0)
##    ggplot2      * 3.5.1     2024-04-23 [1] CRAN (R 4.4.0)
##    ggstats        0.6.0     2024-04-05 [1] CRAN (R 4.4.0)
##    glasso         1.11      2019-10-01 [1] CRAN (R 4.4.0)
##    glue           1.7.0     2024-01-09 [1] CRAN (R 4.4.0)
##    gridExtra      2.3       2017-09-09 [1] CRAN (R 4.4.0)
##    gtable         0.3.5     2024-04-22 [1] CRAN (R 4.4.0)
##    gtools         3.9.5     2023-11-20 [1] CRAN (R 4.4.0)
##    here         * 1.0.1     2020-12-13 [1] CRAN (R 4.4.0)
##    highr          0.11      2024-05-26 [1] CRAN (R 4.4.0)
##    Hmisc          5.1-3     2024-05-28 [1] CRAN (R 4.4.0)
##    hms            1.1.3     2023-03-21 [1] CRAN (R 4.4.0)
##    htmlTable      2.4.3     2024-07-21 [1] CRAN (R 4.4.1)
##    htmltools      0.5.8.1   2024-04-04 [1] CRAN (R 4.4.0)
##    htmlwidgets    1.6.4     2023-12-06 [1] CRAN (R 4.4.0)
##    httpuv         1.6.15    2024-03-26 [1] CRAN (R 4.4.0)
##    igraph         2.0.3     2024-03-13 [1] CRAN (R 4.4.0)
##    jpeg           0.1-10    2022-11-29 [1] CRAN (R 4.4.0)
##    jquerylib      0.1.4     2021-04-26 [1] CRAN (R 4.4.0)
##    jsonlite       1.8.8     2023-12-04 [1] CRAN (R 4.4.0)
##    kableExtra   * 1.4.0     2024-01-24 [1] CRAN (R 4.4.0)
##    knitr          1.48      2024-07-07 [1] CRAN (R 4.4.1)
##    kutils         1.73      2023-09-17 [1] CRAN (R 4.4.0)
##    labeling       0.4.3     2023-08-29 [1] CRAN (R 4.4.0)
##    later          1.3.2     2023-12-06 [1] CRAN (R 4.4.0)
##    lattice        0.22-6    2024-03-20 [2] CRAN (R 4.4.0)
##    lavaan       * 0.6-18    2024-06-07 [1] CRAN (R 4.4.0)
##    lifecycle      1.0.4     2023-11-07 [1] CRAN (R 4.4.0)
##    likert         1.3.5     2016-12-31 [1] CRAN (R 4.4.0)
##    lisrelToR      0.3       2024-02-07 [1] CRAN (R 4.4.0)
##    lme4           1.1-35.5  2024-07-03 [1] CRAN (R 4.4.1)
##    lubridate    * 1.9.3     2023-09-27 [1] CRAN (R 4.4.0)
##    magrittr       2.0.3     2022-03-30 [1] CRAN (R 4.4.0)
##    MASS           7.3-60.2  2024-04-24 [2] local
##    Matrix         1.7-0     2024-03-22 [2] CRAN (R 4.4.0)
##    memoise        2.0.1     2021-11-26 [1] CRAN (R 4.4.0)
##    mi             1.1       2022-06-06 [1] CRAN (R 4.4.0)
##    mime           0.12      2021-09-28 [1] CRAN (R 4.4.0)
##    miniUI         0.1.1.1   2018-05-18 [1] CRAN (R 4.4.0)
##    minqa          1.2.7     2024-05-20 [1] CRAN (R 4.4.0)
##    mnormt         2.1.1     2022-09-26 [1] CRAN (R 4.4.0)
##    multcomp       1.4-26    2024-07-18 [1] CRAN (R 4.4.1)
##    munsell        0.5.1     2024-04-01 [1] CRAN (R 4.4.0)
##    mvtnorm        1.2-5     2024-05-21 [1] CRAN (R 4.4.0)
##    nlme           3.1-164   2023-11-27 [2] CRAN (R 4.4.0)
##    nloptr         2.1.1     2024-06-25 [1] CRAN (R 4.4.1)
##    nnet           7.3-19    2023-05-03 [2] CRAN (R 4.4.0)
##    OpenMx         2.21.11   2023-11-28 [1] CRAN (R 4.4.0)
##    openxlsx       4.2.6.1   2024-07-23 [1] CRAN (R 4.4.1)
##    pbapply        1.7-2     2023-06-27 [1] CRAN (R 4.4.0)
##    pbivnorm       0.6.0     2015-01-23 [1] CRAN (R 4.4.0)
##    pillar         1.9.0     2023-03-22 [1] CRAN (R 4.4.0)
##    pkgbuild       1.4.4     2024-03-17 [1] CRAN (R 4.4.0)
##    pkgconfig      2.0.3     2019-09-22 [1] CRAN (R 4.4.0)
##    pkgload        1.4.0     2024-06-28 [1] CRAN (R 4.4.1)
##    plyr           1.8.9     2023-10-02 [1] CRAN (R 4.4.0)
##    png            0.1-8     2022-11-29 [1] CRAN (R 4.4.0)
##    profvis        0.3.8     2023-05-02 [1] CRAN (R 4.4.0)
##    promises       1.3.0     2024-04-05 [1] CRAN (R 4.4.0)
##    psych        * 2.4.6.26  2024-06-27 [1] CRAN (R 4.4.1)
##    purrr        * 1.0.2     2023-08-10 [1] CRAN (R 4.4.0)
##    qgraph         1.9.8     2023-11-03 [1] CRAN (R 4.4.0)
##    quadprog       1.5-8     2019-11-20 [1] CRAN (R 4.4.0)
##    R6             2.5.1     2021-08-19 [1] CRAN (R 4.4.0)
##    RColorBrewer   1.1-3     2022-04-03 [1] CRAN (R 4.4.0)
##    Rcpp           1.0.13    2024-07-17 [1] CRAN (R 4.4.1)
##  D RcppParallel   5.1.8     2024-07-06 [1] CRAN (R 4.4.1)
##    readr        * 2.1.5     2024-01-10 [1] CRAN (R 4.4.0)
##    remotes        2.5.0     2024-03-17 [1] CRAN (R 4.4.0)
##    reshape2       1.4.4     2020-04-09 [1] CRAN (R 4.4.0)
##    rlang          1.1.4     2024-06-04 [1] CRAN (R 4.4.0)
##    rmarkdown      2.27      2024-05-17 [1] CRAN (R 4.4.0)
##    rockchalk      1.8.157   2022-08-06 [1] CRAN (R 4.4.0)
##    rpart          4.1.23    2023-12-05 [2] CRAN (R 4.4.0)
##    rprojroot      2.0.4     2023-11-05 [1] CRAN (R 4.4.0)
##    rstudioapi     0.16.0    2024-03-24 [1] CRAN (R 4.4.0)
##    sandwich       3.1-0     2023-12-11 [1] CRAN (R 4.4.0)
##    sass           0.4.9     2024-03-15 [1] CRAN (R 4.4.0)
##    scales         1.3.0     2023-11-28 [1] CRAN (R 4.4.0)
##    sem            3.1-15    2022-04-10 [1] CRAN (R 4.4.0)
##    semPlot      * 1.1.6     2022-08-10 [1] CRAN (R 4.4.0)
##    semTools     * 0.5-6     2022-05-10 [1] CRAN (R 4.4.0)
##    sessioninfo    1.2.2     2021-12-06 [1] CRAN (R 4.4.0)
##    shiny          1.8.1.1   2024-04-02 [1] CRAN (R 4.4.0)
##    stringi        1.8.4     2024-05-06 [1] CRAN (R 4.4.0)
##    stringr      * 1.5.1     2023-11-14 [1] CRAN (R 4.4.0)
##    survival       3.5-8     2024-02-14 [2] CRAN (R 4.4.0)
##    svglite        2.1.3     2023-12-08 [1] CRAN (R 4.4.0)
##    systemfonts    1.1.0     2024-05-15 [1] CRAN (R 4.4.0)
##    TH.data        1.1-2     2023-04-17 [1] CRAN (R 4.4.0)
##    tibble       * 3.2.1     2023-03-20 [1] CRAN (R 4.4.0)
##    tidyr        * 1.3.1     2024-01-24 [1] CRAN (R 4.4.0)
##    tidyselect     1.2.1     2024-03-11 [1] CRAN (R 4.4.0)
##    tidyverse    * 2.0.0     2023-02-22 [1] CRAN (R 4.4.0)
##    timechange     0.3.0     2024-01-18 [1] CRAN (R 4.4.0)
##    tzdb           0.4.0     2023-05-12 [1] CRAN (R 4.4.0)
##    urlchecker     1.0.1     2021-11-30 [1] CRAN (R 4.4.0)
##    usethis        2.2.3     2024-02-19 [1] CRAN (R 4.4.0)
##    utf8           1.2.4     2023-10-22 [1] CRAN (R 4.4.0)
##    vctrs          0.6.5     2023-12-01 [1] CRAN (R 4.4.0)
##    viridisLite    0.4.2     2023-05-02 [1] CRAN (R 4.4.0)
##    withr          3.0.0     2024-01-16 [1] CRAN (R 4.4.0)
##    xfun           0.46      2024-07-18 [1] CRAN (R 4.4.1)
##    XML            3.99-0.17 2024-06-25 [1] CRAN (R 4.4.1)
##    xml2           1.3.6     2023-12-04 [1] CRAN (R 4.4.0)
##    xtable         1.8-4     2019-04-21 [1] CRAN (R 4.4.0)
##    yaml           2.3.9     2024-07-05 [1] CRAN (R 4.4.1)
##    zip            2.3.1     2024-01-27 [1] CRAN (R 4.4.0)
##    zoo            1.8-12    2023-04-13 [1] CRAN (R 4.4.0)
## 
##  [1] C:/Users/wayne/AppData/Local/R/win-library/4.4
##  [2] C:/Program Files/R/R-4.4.0/library
## 
##  D ── DLL MD5 mismatch, broken installation.
## 
## ──────────────────────────────────────────────────────────────────────────────