54. Modelli di Regressione Strutturale#

source("../_common.R")
suppressPackageStartupMessages({
    library("lavaan")
    library("semPlot")
    library("knitr")
    library("markdown")
    library("patchwork")
    library("lme4")
    library("here")
})

set.seed(42)

Un comune modello nell’analisi delle equazioni strutturali (SEM) è il modello di regressione strutturale (Sr), noto anche come modello di percorso con variabili latenti o modello LISREL completo. La parte “strutturale” di un modello Sr rappresenta ipotesi sugli effetti diretti o indiretti tra variabili osservate o fattori comuni, mentre la parte di “misurazione” rappresenta la corrispondenza tra i fattori comuni e i loro indicatori.

La specificazione di modelli Sr con indicatori continui e i requisiti per la loro identificazione saranno considerati per primi in questo capitolo. Successivamente, vengono delineate due diverse strategie per analizzare i modelli Sr completi in cui ogni variabile nel modello strutturale è un fattore comune e ciascuno ha molteplici indicatori. Queste strategie affrontano il problema di come identificare la fonte o le fonti di errore di specificazione, separando la valutazione della parte di misurazione del modello dall’analisi della sua parte strutturale.

Inoltre, in questo capitolo vengono discussi anche i modelli Sr parziali con indicatori singoli per alcune, ma non tutte, le variabili nella parte strutturale del modello. Viene inoltre spiegato un metodo per specificare il modello che controlla esplicitamente la misurazione negli indicatori singoli senza influenzare l’adattamento del modello.

Nella Fig. 54.1 (a), è rappresentato un modello di percorso con variabili manifeste. Viene assunto che la variabile esogena X1 sia misurata senza errore, sebbene questa assunzione sia spesso violata nella pratica. Le variabili endogene nel modello, come Y1 e Y4, possono avere errori casuali che si manifestano nelle loro perturbazioni.

../_images/kline_15_1.png

Fig. 54.1 Esempi di un modello di percorso con variabili manifeste (a) e di un corrispondente modello di regressione strutturale completo con indicatori multipli per ogni fattore comune nella parte strutturale (b). (Figura tratta da Kline [Kli23])#

La Figura Fig. 54.1 (b) illustra un modello di Regressione Strutturale (SR) completo, che integra sia componenti strutturali sia di misurazione. In questo modello SR, a differenza del modello di percorso, ciascun indicatore (X1, Y1, Y4) è definito come uno tra numerosi indicatori associati a un fattore comune. Di conseguenza, tutte le variabili osservabili in questa figura includono termini di errore.

Nella parte strutturale del modello, presentata nella Figura Fig. 54.1 (b), si osserva la rappresentazione degli stessi schemi di effetti causali diretti e indiretti trovati nel modello di percorso (mostrato nella Figura Fig. 54.1 (a)), ma applicati ai fattori comuni. Tale modello strutturale è di tipo ricorsivo, sebbene sia anche fattibile la progettazione di un modello SR con componenti strutturali non ricorsive. In questa figura, ogni fattore endogeno possiede una perturbazione specifica (\(D_B\), \(D_C\)), che, a differenza dei modelli di percorso con variabili manifeste, riflettono unicamente cause non considerate e non errori di misurazione degli indicatori del fattore.

Per quanto riguarda l’analisi delle medie, le osservazioni e i parametri nei modelli SR sono trattati allo stesso modo di quelli nei modelli di percorso e nei modelli di Analisi Fattoriale Confermativa (CFA), conformemente alle regole precedentemente stabilite. L’identificazione di un modello SR completo avviene quando sia la sua componente di misurazione, riformulata come un modello CFA, sia la parte strutturale risultano identificate. La regola di identificazione in due fasi implica che, per determinare se un modello SR completo sia identificato, è necessario esaminare separatamente ciascuna delle sue parti, ovvero quelle di misurazione e strutturale.

54.1. Modellazione in Due Fasi#

Immaginiamo che un ricercatore abbia definito un modello di Regressione Strutturale (SR) completo, come mostrato nella Fig. 54.2(a). Dopo aver raccolto i dati, il ricercatore adotta un approccio monofase per analizzare il modello, eseguendo una stima simultanea delle componenti di misurazione e strutturali. Tuttavia, i risultati rivelano che il modello non si adatta bene ai dati. Ciò solleva interrogativi sulla localizzazione del problema: è nella parte di misurazione, nella parte strutturale, o in entrambe? Identificare la fonte del problema con precisione può essere complesso usando un approccio monofase.

../_images/kline_15_2.png

Fig. 54.2 Valutazione della regola in due fasi per l’identificazione di un modello di regressione strutturale completo presentato con simbolismo grafico compatto per i termini di errore degli indicatori nella parte di misurazione e le perturbazioni nella parte strutturale. (Figura tratta da Kline [Kli23])#

Per affrontare questa sfida, la modellazione bifase, suggerita da Anderson e Gerbing (1988), propone un’euristica in due fasi per l’identificazione dei modelli SR completi:

  1. Primo Passaggio: Il modello SR originale viene trasformato in un modello di misurazione CFA. Questo modello riformulato viene quindi analizzato per valutare l’adattamento ai dati. Un cattivo adattamento del modello CFA potrebbe indicare errori nelle ipotesi di misurazione del ricercatore e suggerire che l’adattamento del modello SR originale potrebbe essere compromesso, specialmente se la sua parte strutturale è sovraidentificata.

  2. Secondo Passaggio: Con un modello di misurazione CFA ritenuto valido dal primo passaggio, il secondo confronta l’adattamento del modello SR originale con quello di diversi modelli strutturali alternativi, utilizzando il test di differenza del chi-quadro.

La modellazione bifase presenta diversi problemi. Primo, richiede di considerare tutte le opzioni possibili di riformulazione sia del modello CFA che del modello strutturale. Secondo, il processo può essere paragonato a un “giardino dei sentieri che si biforcano”, dove ogni decisione può portare a diverse possibili modifiche del modello originale. Terzo, esiste il rischio di capitalizzare sulle variazioni casuali quando si testano e si riformulano modelli correlati usando gli stessi dati.

Un’altra sfida è rappresentata dai modelli equivalenti. Ad esempio, un modello CFA al Primo Passaggio e un modello SR corrispondente con una parte strutturale appena identificata al Secondo Passaggio potrebbero risultare equivalenti. La preferenza per il modello SR dovrebbe quindi basarsi su ragionamenti logici o essere supportata dal design dello studio.

Se un modello di misurazione viene mantenuto al Primo Passaggio, esistono due approcci principali per testare il modello strutturale nel Secondo Passaggio: il Model building (ricerca in avanti) e il Model trimming (ricerca all’indietro). Chou e Bentler (2002) hanno osservato che la probabilità di identificare il modello SR corretto dipende significativamente dal modello inizialmente specificato. Inoltre, hanno trovato che il modello corretto veniva identificato circa il 60% delle volte nel Model trimming.

È importante notare che se i carichi fattoriali variano notevolmente con diversi modelli strutturali, ciò indica che il modello di misurazione non è invariante e aumenta il rischio di confondimento interpretativo.

Infine, alcuni studi hanno mostrato che le statistiche globali di adattamento standard possono essere più influenzate dalla componente di misurazione dei modelli SR rispetto alla parte strutturale. Tuttavia, i risultati delle simulazioni al computer indicano che non esiste un insieme universale di soglie per gli indici di adattamento approssimato che siano validi per tutti i tipi di modelli e dati.

54.2. Una Applicazione Concreta#

La Fig. 54.3 illustra un modello SR (Regressione Strutturale) iniziale che esplora il rendimento scolastico e l’adattamento in aula di studenti di età media corrispondente ai gradi 7-8. Il modello considera l’influenza dell’abilità cognitiva generale e del livello di rischio di disturbi psicopatologici. Uno degli indicatori di rischio deriva dalla diagnosi di disturbi psichiatrici maggiori nei genitori, mentre il secondo è basato sul livello socio-economico (SES) della famiglia, con punteggi più alti che indicano un SES inferiore. Le abilità cognitive sono valutate tramite i punteggi in ragionamento verbale, analisi visivo-spaziale e memoria, ottenuti da un test di QI somministrato individualmente.

../_images/kline_15_3.png

Fig. 54.3 Modello iniziale completo di regressione strutturale del rendimento scolastico e dell’adattamento in classe come funzione dell’abilità cognitiva e del rischio di psicopatologia. (Figura tratta da Kline [Kli23])#

Il modello comprende due fattori endogeni: il rendimento scolastico, valutato attraverso test standardizzati di lettura, aritmetica e ortografia, e l’adattamento in classe, misurato con tre indicatori forniti dagli insegnanti riguardo alla motivazione, stabilità emotiva e qualità delle relazioni sociali degli studenti. In questo modello strutturale, sia il rendimento scolastico sia l’adattamento in classe sono influenzati dall’abilità cognitiva e dal rischio, ma non vi è un effetto diretto o una covarianza delle perturbazioni tra questi due fattori endogeni, indicando che eventuali associazioni tra di essi sono attribuibili alle loro cause comuni, i fattori esogeni.

# input the correlations in lower diagnonal form
worlandLower.cor <- "
1.00
 .70 1.00
 .65  .60 1.00
 .55  .50  .45 1.00
 .50  .45  .40  .70 1.00
 .35  .35  .30  .55  .50 1.00
 .30  .30  .30  .50  .45  .44 1.00
 .25  .20  .22  .41  .28  .34  .40 1.00
 .35  .32  .32  .48  .45  .42  .60  .45 1.00
-.25 -.24 -.22 -.21 -.18 -.15 -.15 -.12 -.17 1.00
-.22 -.26 -.30 -.25 -.22 -.18 -.17 -.14 -.20  .42 1.00 "

# name the variables and convert to full correlation matrix
worland.cor <- lavaan::getCov(worlandLower.cor, names = c(
    "verbal", "visual",
    "memory", "read", "math", "spell", "motive", "harmony", "stable", "parent", "ses"
))

# add the standard deviations and convert to covariances
worland.cov <- lavaan::cor2cov(worland.cor,
    sds = c(
        13.75, 14.80, 12.60, 14.90, 15.25, 13.85, 9.50, 11.10, 8.70,
        12.00, 8.50
    )
)

Primo Passaggio nella modellazione in due fasi per un modello SR completo di rendimento scolastico e adattamento in classe

# 4-factor CFA
worlandCFA.model <- "
    Cognitive =~ verbal + visual + memory
    Achieve =~ read + math + spell
    Adjust =~ motive + harmony + stable
    Risk =~ parent + ses 
 "
worlandCFA <- lavaan::cfa(worlandCFA.model,
    sample.cov = worland.cov,
    sample.nobs = 158
)
semPlot::semPaths(worlandCFA,
    what = "col", whatLabels = "par", style = "mx", 
    layout = "tree2", nCharNodes = 7,
    shapeMan = "rectangle", sizeMan = 8, sizeMan2 = 5
)
../_images/5d3e58716867bc1a547760dfbf8a70c8e997c3d21247786b8e71130497f2be97.png
fitMeasures(worlandCFA, c("chisq", "df", "cfi", "tli", "rmsea", "srmr")) |> print()
 chisq     df    cfi    tli  rmsea   srmr 
16.212 38.000  1.000  1.049  0.000  0.023 
# predicted correlation matrix for factors
lavaan::lavInspect(worlandCFA, "cor.lv") |> print()
          Cogntv Achiev Adjust   Risk
Cognitive  1.000                     
Achieve    0.703  1.000              
Adjust     0.500  0.751  1.000       
Risk      -0.459 -0.401 -0.349  1.000
lavaan::residuals(worlandCFA, type = "standardized.mplus") |> print()
$type
[1] "standardized.mplus"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal   0.000                                                               
visual   0.000  0.000                                                        
memory   0.123 -0.130  0.000                                                 
read     0.598  0.113 -0.285  0.000                                          
math     0.505  0.038 -0.377  0.597  0.000                                   
spell   -0.952 -0.255 -0.704 -0.667 -0.206  0.000                            
motive  -0.821 -0.157  0.310 -0.042 -0.078  1.484  0.000                     
harmony  0.117 -0.453  0.171  0.942 -1.179  1.196 -1.010  0.000              
stable   0.285  0.112  0.566 -1.893 -0.467  0.942  0.422  0.436  0.000       
parent  -0.092 -0.260 -0.157  0.234  0.379  0.157  0.301  0.020 -0.022  0.000
ses      1.890 -0.247 -1.417 -0.370 -0.114 -0.112  0.213 -0.125 -0.362  0.000
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses      0.000
lavaan::residuals(worlandCFA, type = "cor.bollen") |> print()
$type
[1] "cor.bollen"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal   0.000                                                               
visual   0.000  0.000                                                        
memory   0.001 -0.002  0.000                                                 
read     0.015  0.003 -0.010  0.000                                          
math     0.017  0.001 -0.016  0.007  0.000                                   
spell   -0.040 -0.012 -0.035 -0.010 -0.006  0.000                            
motive  -0.031 -0.007  0.016 -0.001 -0.003  0.075  0.000                     
harmony  0.006 -0.026  0.010  0.041 -0.053  0.071 -0.027  0.000              
stable   0.011  0.005  0.028 -0.034 -0.015  0.045  0.005  0.012  0.000       
parent  -0.003 -0.010 -0.007  0.008  0.017  0.009  0.015  0.001 -0.001  0.000
ses      0.050 -0.010 -0.068 -0.012 -0.005 -0.006  0.010 -0.008 -0.016  0.000
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses      0.000
# calculate factor reliability coefficients (semTools)
semTools::reliability(worlandCFA) |> print()
       Cognitive   Achieve    Adjust      Risk
alpha  0.8463118 0.8087788 0.7249416 0.5675488
omega  0.8513712 0.8207835 0.7296141 0.5770344
omega2 0.8513712 0.8207835 0.7296141 0.5770344
omega3 0.8515872 0.8227890 0.7327431 0.5770344
avevar 0.6588592 0.6101369 0.4744677 0.4094519

Secondo Passaggio nella modellazione in due fasi per un modello SR completo di rendimento scolastico e adattamento in classe

I risultati del Passaggio 1 del metodo in due fasi, che si concentrava sul modello di misurazione, consentono di procedere all’analisi del modello SR originale, che prevede cinque percorsi nella Fig. 54.3, nel Passaggio 2 del metodo. Anche questa seconda analisi ha portato a una soluzione ammissibile.

# step 2a
# 4-factor SR model with 5 paths among factors

# by default, lavaan frees the disturbance covariance
# between a pair of outcomes in a structural model
# when there is no direct effect between them
# thus, this parameter is explicitly fixed to zero
# in this analysis

worlandSRa_model <- "
    # measurement part
    Cognitive =~ verbal + visual + memory
    Achieve =~ read + math + spell
    Adjust =~ motive + harmony + stable
    Risk =~ parent + ses
    # structural part (5 paths)
    Achieve ~ Cognitive + Risk
    Adjust ~ Cognitive + Risk
    # constrain disturbance covariance to zero
    Adjust ~~ 0*Achieve 
"
worlandSRa <- lavaan::sem(worlandSRa_model,
    sample.cov = worland.cov,
    sample.nobs = 158
)
semPlot::semPaths(worlandSRa,
    what = "col", whatLabels = "par", style = "mx",
    layout = "tree2", nCharNodes = 7,
    shapeMan = "rectangle", sizeMan = 8, sizeMan2 = 5
)
../_images/7a7aaa71e504545f86fb02d6db10d1bbfc4d7c6f77b078e428d19cf6d08cb046.png
fitMeasures(worlandSRa, c("chisq", "df", "cfi", "tli", "rmsea", "srmr")) |> print()
 chisq     df    cfi    tli  rmsea   srmr 
49.747 39.000  0.983  0.976  0.042  0.074 
lavaan::residuals(worlandSRa, type = "standardized.mplus") |> print()
$type
[1] "standardized.mplus"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal   0.135                                                               
visual   0.892  0.122                                                        
memory   0.670  0.193  0.098                                                 
read    -0.270 -0.710 -1.047  0.009                                          
math    -0.004 -0.498 -0.910 -0.340     NA                                   
spell   -1.008 -0.332 -0.808  0.034  0.202  0.030                            
motive  -1.540 -0.721 -0.155  3.466  3.022  3.348  0.034                     
harmony -0.289 -0.858 -0.173  2.903  1.340  2.579 -0.244  0.057              
stable  -1.412 -1.235 -0.441  2.917  2.763  2.910  0.169  0.092  0.050       
parent  -0.309 -0.394 -0.260  0.960  0.849  0.340  0.625  0.244  0.702     NA
ses      1.413 -0.337 -1.439  0.567  0.478  0.135  0.653  0.157  0.546  1.467
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses         NA
lavaan::residuals(worlandSRa, type = "cor.bollen") |> print()
$type
[1] "cor.bollen"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal   0.000                                                               
visual   0.013  0.000                                                        
memory   0.011  0.004  0.000                                                 
read    -0.006 -0.019 -0.032  0.000                                          
math     0.000 -0.017 -0.034 -0.002  0.000                                   
spell   -0.042 -0.016 -0.040  0.000  0.005  0.000                            
motive  -0.054 -0.031 -0.008  0.219  0.197  0.242  0.000                     
harmony -0.015 -0.048 -0.010  0.199  0.090  0.192 -0.007  0.000              
stable  -0.041 -0.045 -0.019  0.170  0.171  0.201  0.001  0.002  0.000       
parent  -0.011 -0.017 -0.013  0.031  0.037  0.020  0.031  0.015  0.029  0.000
ses      0.044 -0.014 -0.071  0.016  0.020  0.008  0.030  0.010  0.020  0.012
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses      0.000

Sebbene gli indici di fit siano buoni, l’adattamento locale del modello con cinque percorsi tra i fattori è scarso. Ad esempio, i residui standardizzati per diverse coppie di indicatori dei fattori di rendimento e adattamento hanno spesso un valore maggiore di 2:

  • Lettura, Motivazione, 3.466

  • Ortografia, Motivazione, 3.348

  • Lettura, Armonia, 2.903

Basandosi su tutti questi risultati relativi all’adattamento globale e locale, il modello SR iniziale nella Fig. 54.3 con cinque percorsi tra i fattori è rifiutato.

Esaminiamo i modification indices.

modificationIndices(worlandSRa, sort = TRUE, minimum.value = 5)
A lavaan.data.frame: 6 × 8
lhsoprhsmiepcsepc.lvsepc.allsepc.nox
<chr><chr><chr><dbl><dbl><dbl><dbl><dbl>
126Adjust ~ Achieve31.938548 0.45534940.85582910.85582910.8558291
16Achieve~~Adjust 31.93854734.87894980.70392730.70392730.7039273
125Achieve~ Adjust 31.938539 1.08820500.57898650.57898650.5789865
44Achieve=~motive 5.438535 0.14917671.95617580.20657100.2065710
54Adjust =~spell 5.240735 0.38948442.71740770.19682890.1968289
52Adjust =~read 5.038370 0.34679512.41956740.16290360.1629036

I risultati dei modification indices mostrano che l’assenza di un percorso tra i fattori di rendimento e adattamento nella Fig. 54.3 è chiaramente incoerente con i dati. Per aggiungere una covariazione tra i fattori di rendimento e adattamento abbiamo due opzioni: o aggiungere un effetto diretto tra i fattori o permettere alle loro perturbazioni di covariare. Ma sarebbe difficile giustificare un effetto diretto rispetto all’altro: scarse abilità scolastiche potrebbero peggiorare l’adattamento in classe tanto quanto i problemi comportamentali a scuola potrebbero influire negativamente sul rendimento. La specificazione di una causalità reciproca tra Rendimento e Adattamento renderebbe il modello strutturale non ricorsivo, ma il modello non sarebbe identificato senza imporre vincoli irrealistici. Riformuliamo dunque il modello della Fig. 54.3 permettendo alle perturbazioni tra i fattori di rendimento e adattamento di covariare.

# step 2b
# 4-factor SR model with 6 paths among factors
# this model is equivalent to the basic 4-factor
# CFA measurement model analyzed in step 1

worlandSRb_model <- "
    # measurement part
    Cognitive =~ verbal + visual + memory
    Achieve =~ read + math + spell
    Adjust =~ motive + harmony + stable
    Risk =~ parent + ses
    # structural part (6 paths)
    Achieve ~ Cognitive + Risk
    Adjust ~ Cognitive + Risk
    Adjust ~~ Achieve 
"
worlandSRb <- lavaan::sem(worlandSRb_model,
    sample.cov = worland.cov,
    sample.nobs = 158
)
semPlot::semPaths(worlandSRb,
    what = "col", whatLabels = "par", style = "mx", 
    layout = "tree2", nCharNodes = 7,
    shapeMan = "rectangle", sizeMan = 8, sizeMan2 = 5
)
../_images/34fd83a1e186db8870b75158b3c9f54f9d83b31ffbb4e697021144c88ac11824.png
parameterEstimates(worlandSRb) |> print()
         lhs op       rhs     est     se      z pvalue ci.lower ci.upper
1  Cognitive =~    verbal   1.000  0.000     NA     NA    1.000    1.000
2  Cognitive =~    visual   1.000  0.090 11.144  0.000    0.824    1.175
3  Cognitive =~    memory   0.788  0.077 10.217  0.000    0.637    0.940
4    Achieve =~      read   1.000  0.000     NA     NA    1.000    1.000
5    Achieve =~      math   0.925  0.083 11.100  0.000    0.761    1.088
6    Achieve =~     spell   0.678  0.080  8.480  0.000    0.521    0.835
7     Adjust =~    motive   1.000  0.000     NA     NA    1.000    1.000
8     Adjust =~   harmony   0.861  0.136  6.311  0.000    0.593    1.128
9     Adjust =~    stable   0.940  0.114  8.231  0.000    0.716    1.164
10      Risk =~    parent   1.000  0.000     NA     NA    1.000    1.000
11      Risk =~       ses   0.773  0.224  3.445  0.001    0.333    1.213
12   Achieve  ~ Cognitive   0.719  0.109  6.574  0.000    0.504    0.933
13   Achieve  ~      Risk  -0.175  0.190 -0.922  0.357   -0.548    0.198
14    Adjust  ~ Cognitive   0.261  0.070  3.743  0.000    0.124    0.398
15    Adjust  ~      Risk  -0.146  0.127 -1.153  0.249   -0.395    0.102
16   Achieve ~~    Adjust  36.374  7.967  4.565  0.000   20.758   51.989
17    verbal ~~    verbal  46.253  9.782  4.728  0.000   27.080   65.425
18    visual ~~    visual  76.171 12.153  6.268  0.000   52.351   99.991
19    memory ~~    memory  69.732  9.717  7.177  0.000   50.688   88.776
20      read ~~      read  51.273 11.238  4.562  0.000   29.247   73.299
21      math ~~      math  86.341 13.049  6.616  0.000   60.764  111.917
22     spell ~~     spell 112.797 14.078  8.012  0.000   85.205  140.389
23    motive ~~    motive  37.737  6.463  5.839  0.000   25.071   50.404
24   harmony ~~   harmony  83.953 10.590  7.927  0.000   63.197  104.709
25    stable ~~    stable  29.306  5.386  5.441  0.000   18.749   39.863
26    parent ~~    parent  88.008 18.343  4.798  0.000   52.057  123.959
27       ses ~~       ses  38.895 10.208  3.810  0.000   18.887   58.903
28 Cognitive ~~ Cognitive 141.620 22.098  6.409  0.000   98.308  184.931
29   Achieve ~~   Achieve  84.317 16.324  5.165  0.000   52.321  116.312
30    Adjust ~~    Adjust  38.008  8.188  4.642  0.000   21.960   54.055
31      Risk ~~      Risk  55.075 19.988  2.755  0.006   15.899   94.251
32 Cognitive ~~      Risk -40.515 12.448 -3.255  0.001  -64.912  -16.118
fitMeasures(worlandSRb, c("chisq", "df", "cfi", "tli", "rmsea", "srmr")) |> print()
 chisq     df    cfi    tli  rmsea   srmr 
16.212 38.000  1.000  1.049  0.000  0.023 
# predicted correlation matrix for factors
lavaan::lavInspect(worlandSRb, "cor.lv") |> print()
          Cogntv Achiev Adjust   Risk
Cognitive  1.000                     
Achieve    0.703  1.000              
Adjust     0.500  0.751  1.000       
Risk      -0.459 -0.401 -0.349  1.000
lavaan::residuals(worlandSRb, type = "standardized.mplus") |> print()
$type
[1] "standardized.mplus"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal      NA                                                               
visual  -0.003     NA                                                        
memory   0.122 -0.131     NA                                                 
read     0.597  0.113 -0.285     NA                                          
math     0.504  0.038 -0.377  0.597     NA                                   
spell   -0.952 -0.255 -0.704 -0.667 -0.206     NA                            
motive  -0.821 -0.157  0.309 -0.042 -0.078  1.484     NA                     
harmony  0.117 -0.453  0.171  0.942 -1.179  1.196 -1.010     NA              
stable   0.284  0.112  0.566 -1.893 -0.467  0.942  0.422  0.436     NA       
parent  -0.093 -0.261 -0.157  0.234  0.378  0.157  0.300  0.019 -0.023  0.040
ses      1.891 -0.247 -1.417 -0.370 -0.114 -0.112  0.213 -0.125 -0.361  0.052
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses      0.020
lavaan::residuals(worlandSRb, type = "cor.bollen") |> print()
$type
[1] "cor.bollen"

$cov
        verbal visual memory   read   math  spell motive harmny stable parent
verbal   0.000                                                               
visual   0.000  0.000                                                        
memory   0.001 -0.002  0.000                                                 
read     0.015  0.003 -0.010  0.000                                          
math     0.017  0.001 -0.016  0.007  0.000                                   
spell   -0.040 -0.012 -0.036 -0.010 -0.006  0.000                            
motive  -0.031 -0.007  0.016 -0.001 -0.003  0.075  0.000                     
harmony  0.006 -0.026  0.010  0.041 -0.053  0.071 -0.027  0.000              
stable   0.011  0.005  0.028 -0.034 -0.015  0.045  0.005  0.012  0.000       
parent  -0.003 -0.011 -0.007  0.008  0.017  0.009  0.015  0.001 -0.001  0.000
ses      0.050 -0.010 -0.068 -0.012 -0.005 -0.006  0.010 -0.008 -0.016  0.000
           ses
verbal        
visual        
memory        
read          
math          
spell         
motive        
harmony       
stable        
parent        
ses      0.000

Confrontiamo i due modelli con il test del rapporto di verosimiglianza.

lavTestLRT(worlandSRa, worlandSRb)
A anova: 2 × 8
DfAICBICChisqChisq diffRMSEADf diffPr(>Chisq)
<int><dbl><dbl><dbl><dbl><dbl><int><dbl>
worlandSRb3812938.1613023.9216.21231 NA NANA NA
worlandSRa3912969.7013052.3949.7465433.534230.4537762 17.002093e-09

L’adattamento del modello SR con 5 percorsi tra i fattori è significativamente peggiore rispetto a quello del modello CFA con 6 percorsi. Gli indici di fit del modello con 6 percorsi sono buoni così come il suo adattamento locale.

# standardized estimates with standard errors
lavaan::standardizedSolution(worlandSRb) |> print()
         lhs op       rhs est.std    se      z pvalue ci.lower ci.upper
1  Cognitive =~    verbal   0.868 0.032 27.075  0.000    0.805    0.931
2  Cognitive =~    visual   0.806 0.037 21.720  0.000    0.733    0.879
3  Cognitive =~    memory   0.747 0.043 17.470  0.000    0.663    0.831
4    Achieve =~      read   0.876 0.031 28.212  0.000    0.815    0.937
5    Achieve =~      math   0.791 0.038 20.778  0.000    0.717    0.866
6    Achieve =~     spell   0.639 0.053 11.984  0.000    0.534    0.743
7     Adjust =~    motive   0.761 0.049 15.552  0.000    0.665    0.857
8     Adjust =~   harmony   0.561 0.065  8.657  0.000    0.434    0.688
9     Adjust =~    stable   0.781 0.048 16.381  0.000    0.688    0.875
10      Risk =~    parent   0.620 0.100  6.217  0.000    0.425    0.816
11      Risk =~       ses   0.677 0.104  6.495  0.000    0.473    0.881
12   Achieve  ~ Cognitive   0.657 0.079  8.358  0.000    0.503    0.811
13   Achieve  ~      Risk  -0.100 0.107 -0.935  0.350   -0.310    0.110
14    Adjust  ~ Cognitive   0.431 0.103  4.179  0.000    0.229    0.633
15    Adjust  ~      Risk  -0.151 0.127 -1.186  0.236   -0.400    0.098
16   Achieve ~~    Adjust   0.643 0.085  7.592  0.000    0.477    0.808
17    verbal ~~    verbal   0.246 0.056  4.421  0.000    0.137    0.355
18    visual ~~    visual   0.350 0.060  5.847  0.000    0.233    0.467
19    memory ~~    memory   0.442 0.064  6.920  0.000    0.317    0.567
20      read ~~      read   0.232 0.054  4.271  0.000    0.126    0.339
21      math ~~      math   0.374 0.060  6.197  0.000    0.255    0.492
22     spell ~~     spell   0.592 0.068  8.686  0.000    0.458    0.725
23    motive ~~    motive   0.421 0.074  5.649  0.000    0.275    0.567
24   harmony ~~   harmony   0.686 0.073  9.445  0.000    0.543    0.828
25    stable ~~    stable   0.390 0.075  5.229  0.000    0.244    0.536
26    parent ~~    parent   0.615 0.124  4.967  0.000    0.372    0.858
27       ses ~~       ses   0.542 0.141  3.840  0.000    0.265    0.818
28 Cognitive ~~ Cognitive   1.000 0.000     NA     NA    1.000    1.000
29   Achieve ~~   Achieve   0.498 0.077  6.470  0.000    0.347    0.649
30    Adjust ~~    Adjust   0.732 0.080  9.108  0.000    0.574    0.889
31      Risk ~~      Risk   1.000 0.000     NA     NA    1.000    1.000
32 Cognitive ~~      Risk  -0.459 0.098 -4.686  0.000   -0.651   -0.267

La correlazione stimata tra i fattori esogeni abilità cognitiva e rischio, –.459, è sensata: è negativa (più alto il rischio, minore l’abilità cognitiva). Questa correlazione non è prossima a -1.0, il che suggerisce che i due fattori sono distinti e non quasi identici, confermando così l’ipotesi di validità discriminante.

Analizzando gli impatti specifici, un incremento di un punto nel fattore cognitivo (misurato come varianza comune del ragionamento verbale) prevede un aumento di .719 punti nel rendimento scolastico (misurato come varianza comune dell’abilità di lettura), tenendo conto del fattore di rischio. In termini standardizzati, un aumento di una deviazione standard nell’abilità cognitiva si traduce in un aumento di .657 deviazioni standard nel rendimento scolastico, sempre controllando per il rischio.

L’influenza del rischio sul rendimento scolastico è meno marcata: un incremento di un punto nel rischio (misurato come varianza comune del disturbo genitoriale) prevede una diminuzione di .175 punti nel rendimento scolastico. Standardizzando, un aumento di una deviazione standard nel rischio si associa a una diminuzione di .100 deviazioni standard nel rendimento, controllando per l’abilità cognitiva.

La correlazione di perturbazione di .643 misura la relazione tra il rendimento scolastico e l’adattamento in classe, dopo aver escluso l’influenza di altri fattori noti, in questo caso l’abilità cognitiva e il rischio di psicopatologia. In termini più semplici, la correlazione di perturbazione ci dice quanto sono correlati il rendimento scolastico e l’adattamento in classe quando si tiene conto (o si “controlla”) dell’effetto dell’abilità cognitiva e del rischio. Un valore di .643 indica una correlazione moderatamente forte, suggerendo che quando il rendimento scolastico di uno studente migliora (o peggiora), anche il suo adattamento in classe tende a migliorare (o peggiorare) in modo simile, indipendentemente dal suo livello di abilità cognitiva o dal grado di rischio di psicopatologia.

La presenza di questa correlazione parziale sostanziale implica che ci sono fattori non misurati nel modello che influenzano sia il rendimento scolastico sia l’adattamento in classe. Questi fattori non misurati potrebbero includere variabili come il sostegno familiare, la qualità dell’insegnamento, fattori ambientali o personalità dello studente. Importante è che questi fattori non misurati sono distinti sia dall’abilità cognitiva dello studente sia dal suo rischio di psicopatologia. In conclusione, il valore di .643 non solo mette in luce l’interdipendenza tra rendimento scolastico e adattamento in classe, ma suggerisce anche l’esistenza di altre variabili influenti che non sono state direttamente misurate o incluse nel modello. Questa informazione può essere preziosa per indirizzare ulteriori ricerche o interventi educativi.

54.3. Strategie Avanzate di Modellazione per i Modelli di Regressione Strutturale#

Oltre all’approccio tradizionale di modellazione in due fasi, esiste un metodo più complesso a quattro fasi per analizzare i modelli SR completi. Questa strategia, introdotta da Mulaik e Millsap nel 2000, amplia la modellazione bifase aggiungendo ulteriori analisi esplorative che possono portare a conclusioni più definitive in una serie più estesa di studi. Questo metodo prevede che ogni fattore comune abbia almeno quattro indicatori, numero ritenuto sufficiente per testare l’unidimensionalità con il test dell’annullamento della tetrade. I quattro indicatori rappresentano anche il numero minimo perché un modello CFA a singolo fattore sia considerato sovraidentificato. Il ricercatore testa quindi una serie di almeno quattro modelli gerarchicamente correlati, seguendo questi passaggi:

  1. Primo Passaggio: Il modello iniziale meno restrittivo è un modello EFA, dove ogni indicatore satura su tutti i fattori. Il numero di fattori è lo stesso dei modelli analizzati nei passaggi successivi. Questo modello viene analizzato con lo stesso metodo di stima utilizzato nei passaggi successivi, ad esempio il metodo ML per indicatori continui e normalmente distribuiti. Alternativamente, si possono usare tecniche come ESEM o E/CFA al posto dell’EFA. Questo passaggio serve a testare la correttezza provvisoria delle ipotesi riguardo al numero di fattori.

  2. Secondo Passaggio: Corrisponde al Primo Passaggio della modellazione bifase. Qui, si specifica un modello CFA con alcuni carichi incrociati fissati a zero, identificando gli indicatori che non dipendono da certi fattori comuni. Se l’adattamento del modello CFA è ragionevole, si può procedere al test del modello SR; in caso contrario, il modello di misurazione va rivisto.

  3. Terzo Passaggio: Si specifica il modello SR target con lo stesso schema di carichi incrociati fissati a zero del modello CFA del Secondo Passaggio. Tipicamente, la parte strutturale del modello SR include meno effetti diretti rispetto al totale delle covarianze tra fattori nel modello CFA. Se la parte strutturale del modello SR ha tanti percorsi quanti il modello CFA, i due modelli saranno equivalenti e questo passaggio può essere omesso.

  4. Quarto Passaggio: Coinvolge test su ipotesi specifiche sui parametri definiti dall’inizio del processo. Questi test possono comportare l’applicazione di vincoli zero o altri, aumentando di uno dfM. I Passaggi 3 e 4 della modellazione a quattro fasi rappresentano una precisazione delle attività generali del Secondo Passaggio della modellazione bifase.

Una delle critiche alla modellazione a quattro fasi riguarda la necessità di avere almeno quattro indicatori per fattore, condizione non sempre pratica o desiderabile, specialmente quando pochi indicatori, o anche un singolo indicatore ottimale, presentano migliori caratteristiche psicometriche rispetto a quattro. Tuttavia, Mulaik e Millsap hanno osservato che avere almeno quattro indicatori può compensare, in parte, le limitazioni di un campione più piccolo incrementando dfM.

Entrambi gli approcci, bifase e quattro fasi, sfruttano la variazione casuale quando i modelli vengono testati e riformulati utilizzando gli stessi dati, e sono considerati migliori della modellazione monofase, dove non esiste una distinzione tra questioni di misurazione e struttura.