43. Modello bifattoriale#

L’obiettivo di questo capitolo è di presentare un’introduzione ai modelli bifattoriali che stanno trovando sempre più applicazioni nelle misure di personalità e psicopatologia.

Hide code cell content
source("../_common.R")
suppressPackageStartupMessages({
    library("psych")
    library("lavaan")
    library("BifactorIndicesCalculator")
    library("semPlot")
})

Numerose misure psicologiche sono progettate per valutare individui su un singolo costrutto. Tuttavia, caratteristiche psicologiche complesse come depressione e ansia spesso si manifestano in modi vari. Di conseguenza, è consigliabile includere item che coprono diverse aree tematiche per assicurare una validità di contenuto adeguata. Pertanto, molte scale di valutazione comunemente usate producono dati che si prestano a interpretazioni valide sia attraverso un modello unidimensionale, con un forte fattore generale, sia tramite un modello multidimensionale, che comprende due o più fattori correlati.

43.1. Struttura Fattoriale#

Recenti studi hanno evidenziato che, di fronte a misure che generano dati multidimensionali a causa di una diversificata struttura di contenuto, l’adozione di un modello di misurazione bifattoriale può essere particolarmente efficace per rappresentare la struttura sottostante. Questo modello suggerisce che le correlazioni tra gli item di un test possono essere spiegate attraverso due tipi di fattori: (a) un fattore generale che riflette la varianza condivisa tra tutti gli item, e (b) una serie di fattori di gruppo che catturano la varianza specifica non spiegata dal fattore generale e che è comune tra item simili in termini di contenuto. Generalmente, si ritiene che il fattore generale e i fattori di gruppo siano indipendenti.

Il fattore generale rappresenta il costrutto principale che lo strumento si propone di misurare, mentre i fattori di gruppo individuano costrutti più specifici legati a sottodomini. I modelli bifattoriali sono utilizzati per diverse finalità importanti:

  • Analizzare la distribuzione della varianza quando si presume che uno strumento misuri sia varianza generale sia specifica di gruppo.

  • Gestire la multidimensionalità in modo che la misura risulti “essenzialmente unidimensionale”, pur presentando dimensioni secondarie.

  • Verificare la presenza di un fattore generale sufficientemente robusto da giustificare l’uso di un modello di misurazione unidimensionale.

  • Determinare l’adeguatezza di un punteggio complessivo e valutare l’utilità di analizzare le sottoscale specifiche.

Questi approcci permettono una comprensione più profonda e una valutazione più accurata della struttura sottostante dei dati psicologici, offrendo agli specialisti gli strumenti per interpretare con maggiore precisione i risultati dei test psicologici.

43.2. Un esempio pratico#

Consideriamo i dati SRS_data forniti dal pacchetto BifactorIndicesCalculator. Il dataset contiene 500 risposte al test SRS-22r sulla qualità della vita legata alla scoliosi, composta da 20 item. La sottoscala “Function” è composta dagli item 5, 9, 12, 15 e 18. La sottoscala “Pain” è composta dagli item 1, 2, 8, 11 e 17. La sottoscala “SelfImage” è composta dagli item 4, 6, 10, 14 e 19. La sottoscala “MentalHealth” è composta dagli item 3, 7, 13, 16 e 20.

Iniziamo esaminando le statistiche descrittive a livello di item e le correlazioni tra gli item.

describe(SRS_data)
A psych: 20 × 13
varsnmeansdmediantrimmedmadminmaxrangeskewkurtosisse
<int><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
SRS_1 15003.6941.065191743.77751.4826154-0.55091527-0.441287770.04763682
SRS_2 25003.8101.029572743.92001.4826154-0.71482596-0.067883410.04604389
SRS_3 35003.8961.089751944.03751.4826154-0.83228535-0.039703220.04873518
SRS_4 45003.2321.279629233.29001.4826154-0.10588960-1.023584750.05722676
SRS_5 55004.1960.893970044.29751.4826253-0.74534622-0.538453310.03997955
SRS_6 65003.9140.871851043.95251.4826154-0.37669898-0.385889580.03899036
SRS_7 75004.2361.011112654.40250.0000154-1.28422859 1.080681270.04521833
SRS_8 85003.7961.131788843.90751.4826154-0.51397419-0.699307920.05061513
SRS_9 95004.4081.003768554.62750.0000154-1.77060059 2.451743850.04488989
SRS_10105003.7000.855256143.71501.4826154-0.23018341-0.209730960.03824821
SRS_11115004.5020.838691154.69000.0000154-2.03023472 4.086173020.03750741
SRS_12125004.2581.028373054.44250.0000154-1.34621075 1.119203780.04599024
SRS_13135003.8480.926613843.93751.4826154-0.64572868 0.049746190.04143943
SRS_14145004.7220.676484554.89500.0000154-2.81546817 8.206857370.03025331
SRS_15155004.8140.629441354.98750.0000154-4.1178919218.040057030.02814947
SRS_16165004.2420.959832654.39750.0000154-1.23003057 0.987458800.04292502
SRS_17175004.7360.860106754.98750.0000154-3.4840303611.298709120.03846514
SRS_18185002.9200.922660632.91750.0000154 0.05145498 0.836353880.04126264
SRS_19195003.6001.107453343.69501.4826154-0.54423397-0.281826840.04952682
SRS_20205003.9880.899708344.09001.4826154-0.89924932 0.747985040.04023618
round(cor(SRS_data, use = "pairwise.complete.obs"), 2)
A matrix: 20 × 20 of type dbl
SRS_1SRS_2SRS_3SRS_4SRS_5SRS_6SRS_7SRS_8SRS_9SRS_10SRS_11SRS_12SRS_13SRS_14SRS_15SRS_16SRS_17SRS_18SRS_19SRS_20
SRS_11.000.880.430.360.360.390.340.700.310.370.460.590.370.360.190.400.380.300.270.33
SRS_20.881.000.400.380.350.420.350.700.340.400.490.580.350.380.200.370.390.290.310.32
SRS_30.430.401.000.320.330.390.500.460.300.320.240.460.550.340.190.550.250.250.280.41
SRS_40.360.380.321.000.230.430.320.330.190.430.200.300.300.200.230.320.100.210.540.32
SRS_50.360.350.330.231.000.330.390.330.470.340.230.520.310.290.200.420.280.310.250.40
SRS_60.390.420.390.430.331.000.480.370.250.640.280.370.410.380.220.470.220.310.620.41
SRS_70.340.350.500.320.390.481.000.400.240.370.220.420.530.440.230.780.190.390.390.56
SRS_80.700.700.460.330.330.370.401.000.300.370.360.520.400.280.140.420.310.320.280.34
SRS_90.310.340.300.190.470.250.240.301.000.360.260.490.320.290.220.320.350.270.200.31
SRS_100.370.400.320.430.340.640.370.370.361.000.260.370.300.340.220.390.190.280.540.35
SRS_110.460.490.240.200.230.280.220.360.260.261.000.420.190.330.200.230.390.180.240.19
SRS_120.590.580.460.300.520.370.420.520.490.370.421.000.430.460.230.460.440.330.320.43
SRS_130.370.350.550.300.310.410.530.400.320.300.190.431.000.350.170.570.210.300.350.60
SRS_140.360.380.340.200.290.380.440.280.290.340.330.460.351.000.330.460.380.300.320.34
SRS_150.190.200.190.230.200.220.230.140.220.220.200.230.170.331.000.270.200.170.290.24
SRS_160.400.370.550.320.420.470.780.420.320.390.230.460.570.460.271.000.190.380.360.59
SRS_170.380.390.250.100.280.220.190.310.350.190.390.440.210.380.200.191.000.250.150.16
SRS_180.300.290.250.210.310.310.390.320.270.280.180.330.300.300.170.380.251.000.250.31
SRS_190.270.310.280.540.250.620.390.280.200.540.240.320.350.320.290.360.150.251.000.41
SRS_200.330.320.410.320.400.410.560.340.310.350.190.430.600.340.240.590.160.310.411.00
SRS_UnidimensionalModel <-
"
    SRS =~ SRS_1 + SRS_2 + SRS_3 + SRS_4 + SRS_5 +
    SRS_6 + SRS_7 + SRS_8 + SRS_9 + SRS_10 +
    SRS_11 + SRS_12 + SRS_13 + SRS_14 + SRS_15 +
    SRS_16 + SRS_17 + SRS_18 + SRS_19 + SRS_20
"

SRS_Unidimensional <- lavaan::cfa(SRS_UnidimensionalModel,
    SRS_data,
    ordered = paste0("SRS_", 1:20),
    orthogonal = TRUE
)
semPaths(SRS_Unidimensional, intercepts = FALSE)
../_images/a0a598308d9a706a903f10925d12d34f6ad0f0577540b60f2a4e4758c3bc9d64.png

Esaminiamo la bontà di adattamento.

fit.subset <- c(
    "chisq.scaled", "df", "pvalue.scaled",
    "rmsea.scaled", "rmsea.pvalue.scale",
    "rmsea.ci.lower.scaled", "rmsea.ci.upper.scaled",
    "cfi", "tli", "srmr"
)
fitmeasures(SRS_Unidimensional, fit.subset) |> print()
         chisq.scaled                    df         pvalue.scaled 
             2087.431               170.000                 0.000 
         rmsea.scaled rmsea.ci.lower.scaled rmsea.ci.upper.scaled 
                0.150                 0.145                 0.156 
                  cfi                   tli                  srmr 
                0.961                 0.956                 0.119 
SRS_BifactorModel <-
"
    SRS =~ SRS_1 + SRS_2 + SRS_3 + SRS_4 + SRS_5 + 
           SRS_6 + SRS_7 + SRS_8 + SRS_9 + SRS_10 +
           SRS_11 + SRS_12 + SRS_13 + SRS_14 + SRS_15 +
           SRS_16 + SRS_17 + SRS_18 + SRS_19 + SRS_20
    Function =~ SRS_5 + SRS_9 + SRS_12 + SRS_15 + SRS_18
    Pain =~ SRS_1 + SRS_2 + SRS_8 + SRS_11 + SRS_17
    SelfImage =~ SRS_4 + SRS_6 + SRS_10 + SRS_14 + SRS_19
    MentalHealth =~ SRS_3 + SRS_7 + SRS_13 + SRS_16 + SRS_20
"

SRS_bifactor <- lavaan::cfa(SRS_BifactorModel,
    SRS_data,
    ordered = paste0("SRS_", 1:20),
    orthogonal = TRUE
)
semPaths(SRS_bifactor, intercepts = FALSE)
../_images/f60dd9a827b2a04d362e5b3cc9df29baa0d9960a3aac12e1816bcf5b07155814.png

Esaminiamo la bontà di adattamento.

fitmeasures(SRS_bifactor, fit.subset) |> print()
         chisq.scaled                    df         pvalue.scaled 
              468.648               150.000                 0.000 
         rmsea.scaled rmsea.ci.lower.scaled rmsea.ci.upper.scaled 
                0.065                 0.059                 0.072 
                  cfi                   tli                  srmr 
                0.997                 0.996                 0.055 

Confrontiamo i due modelli.

lavTestLRT(SRS_Unidimensional, SRS_bifactor) |> print()
Scaled Chi-Squared Difference Test (method = “satorra.2000”)

lavaan NOTE:
    The “Chisq” column contains standard test statistics, not the
    robust test that should be reported per model. A robust difference
    test is a function of two standard (not robust) statistics.
 
                    Df AIC BIC   Chisq Chisq diff Df diff Pr(>Chisq)    
SRS_bifactor       150          308.88                                  
SRS_Unidimensional 170         1965.48     1007.2      20  < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Consideriamo ora gli indici specifici per un modello bifattoriale.

bifactorIndices(SRS_bifactor, UniLambda = SRS_Unidimensional) |> print()
$ModelLevelIndices
   ECV.SRS        PUC  Omega.SRS OmegaH.SRS       ARPB 
 0.6728130  0.7894737  0.9423975  0.8338190  0.1209677 

$FactorLevelIndices
                ECV_SS     ECV_SG    ECV_GS     Omega    OmegaH         H
SRS          0.6728130 0.67281303 0.6728130 0.9423975 0.8338190 0.9431669
Function     0.1972990 0.04153902 0.8027010 0.7993085 0.0911757 0.4033325
Pain         0.4123779 0.11147096 0.5876221 0.8817340 0.3426659 0.6964443
SelfImage    0.3280132 0.08183383 0.6719868 0.8502075 0.2025235 0.5913544
MentalHealth 0.3424358 0.09234316 0.6575642 0.8917832 0.2930342 0.6148062
                    FD
SRS          0.9522166
Function     0.7096945
Pain         0.9209793
SelfImage    0.8297680
MentalHealth 0.8543576

$ItemLevelIndices
            IECV RelParBias
SRS_1  0.5104022 0.35337843
SRS_2  0.4976737 0.36753956
SRS_3  0.7980893 0.03657963
SRS_4  0.6115286 0.05215399
SRS_5  0.6353618 0.02256101
SRS_6  0.6366985 0.08805866
SRS_7  0.6318472 0.17893446
SRS_8  0.6819609 0.10337122
SRS_9  0.5875270 0.01921370
SRS_10 0.6494275 0.06424335
SRS_11 0.6329358 0.12172144
SRS_12 0.9378875 0.10010668
SRS_13 0.6242449 0.11788341
SRS_14 0.9989633 0.09897585
SRS_15 0.9995426 0.10107726
SRS_16 0.6005105 0.18980832
SRS_17 0.7498240 0.03921899
SRS_18 0.9990197 0.09332424
SRS_19 0.4582466 0.16640387
SRS_20 0.6912559 0.10480062

I ModelLevelIndices possono essere spiegati nel modo seguente:

  1. ECV.SRS: Questo indica la proporzione di varianza spiegata dal fattore generale nel modello bifattoriale. ECV sta per “Explained Common Variance” (Varianza Comune Spiegata). Un valore più alto indica che una maggiore parte della varianza totale nei dati è spiegata dal fattore generale.

  2. PUC: Questo è l’acronimo di “Percentage of Uniqueness in Common” (Percentuale di Unicità nel Comune). Indica quanto della varianza unica (cioè quella non spiegata dal fattore generale) è presente nei fattori di gruppo. Un valore basso indica che i fattori di gruppo spiegano una maggiore parte della varianza unica nei dati.

  3. Omega.SRS: Questo indice rappresenta il coefficiente di affidabilità del fattore generale del modello bifattoriale. Indica quanto sia affidabile il fattore generale nel catturare la varianza comune tra tutti gli item del test. Un valore più alto indica maggiore affidabilità.

  4. OmegaH.SRS: Questo indice rappresenta il coefficiente di affidabilità dei fattori di gruppo nel modello bifattoriale. Indica quanto sia affidabile l’insieme dei fattori di gruppo nel catturare la varianza condivisa tra gli item del gruppo specifico. Anche qui, un valore più alto indica maggiore affidabilità.

  5. ARPB: Questo sta per “Average Reproducibility of Parameter Estimates” (Riproducibilità Media delle Stime dei Parametri). Rappresenta la riproducibilità media delle stime dei parametri del modello bifattoriale. In sostanza, valuta quanto le stime dei parametri del modello sono affidabili e riproducibili.

La sezione dell’output FactorLevelIndices riguarda gli indici a livello di fattore del modello bifattoriale.

  1. ECV_SS, ECV_SG, ECV_GS: Questi rappresentano rispettivamente la proporzione di varianza spiegata dal Fattore Generale (GG), dal Fattore Specifico (SS) e dall’Interazione tra Fattore Generale e Fattore Specifico (GS) per ciascun fattore. Indicano quanto ciascun tipo di varianza contribuisce alla spiegazione della varianza totale nell’insieme dei dati del fattore.

  2. Omega: Questo indice rappresenta il coefficiente di affidabilità dell’estratto del Fattore Generale per ciascun fattore. Indica quanto sia affidabile il Fattore Generale nel catturare la varianza comune tra gli item di quel particolare fattore. Un valore più alto indica maggiore affidabilità.

  3. OmegaH: Questo indice rappresenta il coefficiente di affidabilità dell’estratto del Fattore Specifico per ciascun fattore. Indica quanto sia affidabile l’insieme dei Fattori Specifici nel catturare la varianza condivisa tra gli item del gruppo specifico. Anche qui, un valore più alto indica maggiore affidabilità.

  4. H: Questo indice rappresenta la quota della varianza unica spiegata dal Fattore Generale per ciascun fattore. Indica quanto della varianza unica è spiegata dal Fattore Generale piuttosto che da fattori specifici.

  5. FD: Questo indice rappresenta la distorsione fattoriale, che è una misura di quanto i dati si adattino bene al modello bifattoriale. Valori vicini a 1 indicano un buon adattamento.

Infine, l’output ItemLevelIndices riguarda gli indici a livello di item in un modello bifattoriale.

  1. IECV: Questo indica la proporzione di varianza spiegata dal Fattore Generale per ciascun item. IECV sta per “Item Explained Common Variance” (Varianza Comune Spiegata dell’Item). Indica quanto della varianza totale dell’item può essere spiegata dal Fattore Generale del modello bifattoriale. Valori più alti indicano che il Fattore Generale contribuisce maggiormente a spiegare le variazioni osservate nell’item.

  2. RelParBias: Questo rappresenta il bias relativo dei parametri dell’item. Indica quanto i parametri dell’item sono influenzati dalla presenza del Fattore Generale e dai fattori specifici nel modello. Valori più alti indicano una maggiore influenza dei fattori specifici rispetto al Fattore Generale nell’item.

Per i dati dell’esempio considerato, di seguito è riportata un’interpretazione succinta dei risultati chiave per ciascun gruppo principale di risultati:

43.2.1. Model-Level Indices#

  • ECV.SRS (Explained Common Variance): Il 67.28% della varianza osservata è spiegata dal modello.

  • PUC (Percentage of Uncontaminated Correlations): Il 78.95% delle correlazioni tra gli item è “puro”, cioè non contaminato da altri fattori oltre al fattore generale.

  • Omega.SRS: La consistenza interna complessiva del test è molto alta (0.942), indicando una buona affidabilità.

  • OmegaH.SRS: Il 83.38% della varianza totale standardizzata è attribuibile al fattore generale, confermando che è un fattore dominante nel modello.

  • ARPB (Average Relative Parameter Bias): Un bias relativo medio basso (0.121) suggerisce che le stime dei parametri sono relativamente poco distorte.

43.2.2. Factor-Level Indices#

  • ECV (Explained Common Variance) per i fattori specifici:

    • Funzione: 19.73% della varianza è spiegata dal fattore specifico “Funzione”, con l’80.27% attribuibile al fattore generale.

    • Dolore (Pain): 41.24% della varianza è spiegata dal fattore specifico “Dolore”.

    • Autopercezione (SelfImage): 32.80% della varianza è spiegata dal fattore specifico “Autopercezione”.

    • Salute Mentale (MentalHealth): 34.24% della varianza è spiegata dal fattore specifico “Salute Mentale”.

  • Omega e OmegaH per ogni fattore specifico: Le misure Omega indicano la consistenza interna per ciascun sottogruppo di item, mentre OmegaH indica la proporzione della varianza attribuibile ai fattori specifici rispetto al fattore generale.

43.2.3. Item-Level Indices#

  • IECV (Item Explained Common Variance): Valori come 0.937 per SRS_12 e quasi 1 per SRS_14, SRS_15 e SRS_18 indicano che questi item sono molto influenzati dal fattore generale.

  • RelParBias (Relative Parameter Bias): La maggior parte degli item mostra un bias relativo basso, suggerendo che gli effetti dei fattori specifici su questi item sono correttamente rappresentati senza grande distorsione.

In sintesi, il modello bifattoriale sembra adattarsi bene ai dati, con un forte fattore generale che domina la struttura del test, supportato da alcuni fattori specifici che spiegano porzioni significative della varianza in diverse aree tematiche. Gli item individuati con alti valori di IECV sono particolarmente rappresentativi del fattore generale.

43.3. Commenti e considerazioni conclusive#

In questo capitolo, abbiamo esplorato diversi indici derivati dall’analisi con un modello bifattoriale, ognuno dei quali rivela aspetti specifici delle proprietà psicometriche di uno strumento di misura. Questi indici sono di grande utilità per gli sviluppatori e i valutatori di scale, oltre a essere strumenti preziosi per i ricercatori e i professionisti che le impiegano nella pratica clinica e nella ricerca. Inoltre, contribuiscono allo sviluppo e alla comprensione dei costrutti psicologici che tali strumenti intendono misurare.

43.4. Session Info#

sessionInfo()
R version 4.3.3 (2024-02-29)
Platform: x86_64-apple-darwin20 (64-bit)
Running under: macOS Sonoma 14.4.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-x86_64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Europe/Rome
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] BifactorIndicesCalculator_0.2.2 ggokabeito_0.1.0               
 [3] viridis_0.6.5                   viridisLite_0.4.2              
 [5] ggpubr_0.6.0                    ggExtra_0.10.1                 
 [7] bayesplot_1.11.1                gridExtra_2.3                  
 [9] patchwork_1.2.0                 semTools_0.5-6.920             
[11] semPlot_1.1.6                   lavaan_0.6-17                  
[13] psych_2.4.3                     scales_1.3.0                   
[15] markdown_1.12                   knitr_1.45                     
[17] lubridate_1.9.3                 forcats_1.0.0                  
[19] stringr_1.5.1                   dplyr_1.1.4                    
[21] purrr_1.0.2                     readr_2.1.5                    
[23] tidyr_1.3.1                     tibble_3.2.1                   
[25] ggplot2_3.5.1                   tidyverse_2.0.0                
[27] here_1.0.1                     

loaded via a namespace (and not attached):
  [1] rstudioapi_0.16.0  jsonlite_1.8.8     magrittr_2.0.3    
  [4] TH.data_1.1-2      estimability_1.5   nloptr_2.0.3      
  [7] rmarkdown_2.26     vctrs_0.6.5        minqa_1.2.6       
 [10] base64enc_0.1-3    rstatix_0.7.2      htmltools_0.5.8.1 
 [13] broom_1.0.5        Formula_1.2-5      htmlwidgets_1.6.4 
 [16] plyr_1.8.9         sandwich_3.1-0     emmeans_1.10.0    
 [19] zoo_1.8-12         uuid_1.2-0         igraph_2.0.3      
 [22] mime_0.12          lifecycle_1.0.4    pkgconfig_2.0.3   
 [25] Matrix_1.6-5       R6_2.5.1           fastmap_1.1.1     
 [28] shiny_1.8.1.1      digest_0.6.35      OpenMx_2.21.11    
 [31] fdrtool_1.2.17     colorspace_2.1-0   rprojroot_2.0.4   
 [34] Hmisc_5.1-2        fansi_1.0.6        timechange_0.3.0  
 [37] abind_1.4-5        compiler_4.3.3     withr_3.0.0       
 [40] glasso_1.11        htmlTable_2.4.2    backports_1.4.1   
 [43] carData_3.0-5      ggsignif_0.6.4     MASS_7.3-60.0.1   
 [46] corpcor_1.6.10     gtools_3.9.5       tools_4.3.3       
 [49] pbivnorm_0.6.0     foreign_0.8-86     zip_2.3.1         
 [52] httpuv_1.6.15      nnet_7.3-19        glue_1.7.0        
 [55] quadprog_1.5-8     nlme_3.1-164       promises_1.3.0    
 [58] lisrelToR_0.3      grid_4.3.3         pbdZMQ_0.3-11     
 [61] checkmate_2.3.1    cluster_2.1.6      reshape2_1.4.4    
 [64] generics_0.1.3     gtable_0.3.5       tzdb_0.4.0        
 [67] data.table_1.15.4  hms_1.1.3          car_3.1-2         
 [70] utf8_1.2.4         sem_3.1-15         pillar_1.9.0      
 [73] IRdisplay_1.1      rockchalk_1.8.157  later_1.3.2       
 [76] splines_4.3.3      lattice_0.22-6     survival_3.5-8    
 [79] kutils_1.73        tidyselect_1.2.1   miniUI_0.1.1.1    
 [82] pbapply_1.7-2      stats4_4.3.3       xfun_0.43         
 [85] qgraph_1.9.8       arm_1.13-1         stringi_1.8.3     
 [88] boot_1.3-30        evaluate_0.23      codetools_0.2-19  
 [91] mi_1.1             cli_3.6.2          RcppParallel_5.1.7
 [94] IRkernel_1.3.2     rpart_4.1.23       xtable_1.8-4      
 [97] repr_1.1.6         munsell_0.5.1      Rcpp_1.0.12       
[100] coda_0.19-4.1      png_0.1-8          XML_3.99-0.16.1   
[103] parallel_4.3.3     jpeg_0.1-10        lme4_1.1-35.3     
[106] mvtnorm_1.2-4      openxlsx_4.2.5.2   crayon_1.5.2      
[109] rlang_1.1.3        multcomp_1.4-25    mnormt_2.1.1