Irrational Ideas

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 the irrational belief scale and reviews model fit.

Workflow

In their book A New Guide to Rational Living, authors Ellis and Harper describe 10 irrational ideas that influence an individual’s emotions and behaviours. These irrational ideas were measured in 10 public and private sector organisations implementing organisational change using the “Irrational belief scale”, gathering 593 usable responses.

The raw data set was wrangled 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 base model fit statistics and modification indices, revised the model to refine the fit. Compared fit statistics for both models against targets to arrive at a preferred model for this data set.

Results

1. Explore data

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

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

Table 1 Irrational ideas statistical summary
vars n mean sd median trimmed mad min max range skew kurtosis se
ii01.c 1 593 3.55 1.74 3 3.51 1.48 1 7 6 0.24 -1.31 0.07
ii01.r 2 593 4.87 1.60 5 4.99 1.48 1 7 6 -0.70 -0.54 0.07
ii02.a 3 593 3.38 1.81 3 3.31 1.48 1 7 6 0.46 -1.23 0.07
ii02.o 4 593 4.76 1.64 5 4.86 1.48 1 7 6 -0.66 -0.67 0.07
ii03.d 5 593 3.02 1.45 3 2.93 1.48 1 7 6 0.69 -0.26 0.06
ii03.l 6 593 3.40 1.60 3 3.33 1.48 1 7 6 0.31 -0.90 0.07
ii04.h 7 593 3.85 1.52 4 3.85 1.48 1 7 6 -0.13 -1.20 0.06
ii04.n 8 593 3.52 1.46 3 3.47 1.48 1 7 6 0.16 -1.22 0.06
ii05.b 9 593 3.85 1.63 4 3.84 1.48 1 7 6 -0.02 -1.17 0.07
ii05.q 10 593 3.86 1.62 4 3.85 1.48 1 7 6 0.00 -1.24 0.07
ii06.f 11 593 4.90 1.39 5 5.08 1.48 1 7 6 -0.84 -0.35 0.06
ii06.m 12 593 3.22 1.52 3 3.16 1.48 1 7 6 0.39 -1.03 0.06
ii07.i 13 593 2.57 1.30 2 2.42 1.48 1 7 6 1.07 0.57 0.05
ii07.s 14 593 1.96 1.00 2 1.81 0.00 1 7 6 1.93 5.71 0.04
ii08.e 15 593 2.96 1.52 2 2.87 1.48 1 7 6 0.64 -0.82 0.06
ii08.k 16 593 2.68 1.39 2 2.56 1.48 1 7 6 0.92 -0.13 0.06
ii09.j 17 593 4.33 1.56 5 4.40 1.48 1 7 6 -0.38 -1.01 0.06
ii09.t 18 593 4.68 1.73 5 4.77 1.48 1 7 6 -0.53 -0.88 0.07
ii10.g 19 593 4.45 1.59 4 4.46 1.48 1 7 6 -0.21 -0.76 0.07
ii10.p 20 593 3.66 1.34 4 3.61 1.48 1 7 6 0.10 -0.81 0.06

Chart 2 is a box plot of the 20 manifest variables explaining the 10 latent factors. Measures have median values ranging from “2” to “5”.

Chart 3 is a correlation heatmap of irrational ideas. Correlation coefficients are mostly positive, ranging from -0.03 to 0.58. Chart 3 shows that all items measuring the same latent factor are moderately correlated except for ii05, with a correlation coefficient of 0.16.

2. Confirmatory Factor Analysis

2.1 Model 1 Base Model

The base model has 10 latent factors consistent with the irrational ideas theoretical framework. Chart 4 path diagram shows correlations between the 10 latent factors and standardised loadings between latent factors and their respective manifest variables.

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

Chart 4 shows an out-of-bounds correlation between latent factors ii05 (managing feelings) and ii10 (passive existence) with a coefficient of 1.04. Out-of-bounds correlations between latent factors are addressed by respecifying the model.

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. Reviewed model statistics and modification indices to understand ways to improve fit. To maintain the theoretical framework and retain the 10 latent factors, removed the item with the poorest loading (ii05.b) from the model. Chart 5 shows that standardised loadings for the remaining manifest variables in Model 2 are moderate, and correlations between latent factors are now within bounds.

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
ii01 ii01.c 1.2083 0.0841 14.3655 0 0.6938
ii01 ii01.r 0.8619 0.0730 11.8137 0 0.5382
ii02 ii02.a 1.0228 0.0900 11.3615 0 0.5666
ii02 ii02.o 1.0037 0.0839 11.9584 0 0.6123
ii03 ii03.d 0.9934 0.0694 14.3074 0 0.6838
ii03 ii03.l 1.0565 0.0759 13.9251 0 0.6594
ii04 ii04.h 1.1239 0.0600 18.7252 0 0.7406
ii04 ii04.n 1.1360 0.0574 19.8079 0 0.7801
ii05 ii05.q 1.6183 0.0470 34.4384 0 1.0000
ii06 ii06.f 0.5741 0.0689 8.3333 0 0.4124
ii06 ii06.m 0.9742 0.0904 10.7784 0 0.6394
ii07 ii07.i 0.5477 0.0701 7.8125 0 0.4224
ii07 ii07.s 0.6115 0.0653 9.3675 0 0.6146
ii08 ii08.e 0.9648 0.0683 14.1338 0 0.6364
ii08 ii08.k 1.0949 0.0652 16.7933 0 0.7897
ii09 ii09.j 1.1324 0.0753 15.0316 0 0.7279
ii09 ii09.t 0.9974 0.0792 12.5991 0 0.5775
ii10 ii10.g 1.0104 0.0702 14.3907 0 0.6352
ii10 ii10.p 0.9548 0.0603 15.8461 0 0.7112

Chart 6 qq-plot shows the residuals for Model 2. The residuals fall mainly on a straight line, within the 0.95 confidence level.

2.3 Compare model fit

Compared fit for both models. Output 1 shows that both models have similar and acceptable fit statistics. However, Model 2 is slightly better overall, 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
ii_cfa_fit2 267.549† 108   .000 .937† .900† .953† .050  .037† 38877.682†
ii_cfa_fit1 301.047  125   .000 .933  .898  .949  .049† .038  41065.716 
                   bic
ii_cfa_fit2 39237.268†
ii_cfa_fit1 41438.458 

Finally, assessed the overall reliability and internal consistency of the scale. The standardised Cronbach’s alpha for the revised scale (α = 0.8427) and the original scale (α = 0.8464) were similar, and being above 0.80, were considered to be very good.


Reference:

Irrational ideas were measured using the ‘Irrational belief scale’ developed by Malouff and Schutte, published in the Sourcebook of Adult Assessment Strategies, based on Ellis and Harper’s work, published in A New Guide to Rational Living.


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.
## 
## ──────────────────────────────────────────────────────────────────────────────