Skript mit Erklärung der Verfahren und Vorgehensweisen anhand von Beispielen.

Strukturgleichungsmodelle (1.9 MB)

Die Schritte der Modellentwicklung lassen sich nicht in ein einfaches Schema zwängen. Ein inhaltlich gut begründetetes Modell mit akzeptablem Fit hizukriegen, kann viel Zeit in Anspruch nehmen. Das beigefügte Skript enthält Beispiele für Pfadanalyse, Messmodelle und hybride Modelle mit und ohne Gruppenvergleich. Die Lösungen sind als Vorschläge zu verstehen und zeigen typiche Schritte der Modellentwicklung.

Um die Darstellung übersichtlich zu halten, wählen wir hier das im Paket lavaan enthaltene Beispiel “HolzingerSwineford1939” und zeigen nur die Überprüfung des ersten Modells, dessen Fit nach den heutigen Kriterien schlecht ist. Im Skript wird gezeigt, wie man zu einem Modell mit besserem Fit kommt. Die Beschreibung des Datensatzes erhalten Sie, wenn Sie in R ?HolzingerSwineford1939 eingeben.

Der Datensatz enthält die Ergebnisse verschiedener Fähigkeitstests von Kindern im siebten und achten Schuljahr aus zwei verschiedenen Schulen (Pasteur, Grant-White). Es wird eine dreifaktorielle konfirmatorische Faktorenanalyse spezifiziert. Der Faktor “visual” ist durch die Indikatoren “visual perception” (x1), “cubes” (x2), “lozenges” (x3), der Faktor “textual” durch “paragraph comprehension” (x4), “Sentence completion” (x5), “word meaning” (x6) und der Faktor “speed” durch “speeded addition” (x7), “speeded counting of dots” (x8), “speeded discrimination straight and curved capitals” (x9) definiert. Die Gruppenvariable ist “school” mit den Stufen “Pasteur” und “Grant-White”.

Dateneingabe

Die Verfahren kann man auf Rohdaten oder auf Kovarianzmatrizen anwenden. In Lehrbüchern findet man häufig Korrelations- oder Kovarianzmatrizen als Ausgangsdaten.
Für Korrelationsmatrizen verwenden wir folgendes Eingabeformat:

Gruppenvergleiche:

Syntaxhinweise für die Modellspezifikation

Hinweise: ?model.syntax in R eingeben.
Lnks: https://www.jstatsoft.org/article/view/v048i02 oder http://lavaan.ugent.be/tutorial/tutorial.pdf

Kurzfassung:


Erforderliches Paket laden

library(lavaan)

Datensatz einlesen, Variablen und Modell spezifizieren

library(lavaan)
data <- HolzingerSwineford1939

# Variablen spezifizieren
# Falls die Korrelations- oder Kovarianzmatrix gegeben ist, müssen alle
# in der Matrix enthaltenen Variablen berücksichtigt werden.
Variablen <- 1:15
Daten <-"Rohdaten" # Für Korrelations- oder Kovarianzmatrix: Daten <- "Matrix". Sonst Daten <- "Rohdaten"
n.gruppen <- 2     # Falls Korrelations- oder Kovarianzmatrix: Anzahl Gruppen eingeben
Gruppe <- "school" # Für Rohdaten: Name der Gruppenvariable. Für Matrix: NULL

# Modell spezifizieren
model <- 'visual  =~ x1 + x2 + x3
          textual =~ x4 + x5 + x6
          speed   =~ x7 + x8 + x9'


Modell überprüfen

# Datensatz data2 für die Analyse
if (Daten=="Rohdaten") {
data2 <- na.omit(data[, Variablen, drop=FALSE])
Data <- data2; sample.cov <- NULL; sample.mean <- NULL; sample.nobs <- NULL} else {
data <- as.matrix(data)
Matrix <- vector("list", length=n.gruppen)
Means <- vector("list", length=n.gruppen)
N <- vector(length=n.gruppen)
for (i in 1:n.gruppen) {
# Stichprobengroesse einlesen
N[i] <- data[((i-1)*(ncol(data)+3)+1), 1]
# Mittelwerte einlesen
Means[[i]] <- data[((i-1)*(ncol(data)+3)+2),]   
# Dreiecksmatrix einlesen
matr <- data[((i-1)*(ncol(data)+3)+4):(i*(ncol(data)+3)) ,]
# Dreiecksmatrix in symmetrische Matrix verwandeln
matr[upper.tri(matr)] <- t(matr)[upper.tri(matr)]
# Standardabweichungen einlesen
SD <- as.matrix(data[(i-1)*(ncol(data)+3)+3,])
# Kovarianzmatrix berechnen
matr <- SD%*%t(SD)*matr 
rownames(matr) <- colnames(data)
Matrix[[i]] <- matr}
data2 <- list(Matrix=Matrix, Means=Means, N=N)
Data <- NULL; sample.cov <- data2$Matrix; sample.mean <- data2$Means; sample.nobs <- data2$N}

# Modell rechnen
library(lavaan)
fit1 <- cfa(model, data = Data, sample.cov=sample.cov, sample.mean=sample.mean, sample.nobs=sample.nobs, group = Gruppe, meanstructure=TRUE)
summary(fit1, fit.measures=TRUE, standardized=TRUE)
## lavaan 0.6-7 ended normally after 58 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of free parameters                         60
##                                                       
##   Number of observations per group:                   
##     Pasteur                                        156
##     Grant-White                                    144
##                                                       
## Model Test User Model:
##                                                       
##   Test statistic                               116.185
##   Degrees of freedom                                48
##   P-value (Chi-square)                           0.000
##   Test statistic for each group:
##     Pasteur                                     64.309
##     Grant-White                                 51.876
## 
## Model Test Baseline Model:
## 
##   Test statistic                               957.434
##   Degrees of freedom                                72
##   P-value                                        0.000
## 
## User Model versus Baseline Model:
## 
##   Comparative Fit Index (CFI)                    0.923
##   Tucker-Lewis Index (TLI)                       0.884
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3670.805
##   Loglikelihood unrestricted model (H1)      -3612.713
##                                                       
##   Akaike (AIC)                                7461.610
##   Bayesian (BIC)                              7683.837
##   Sample-size adjusted Bayesian (BIC)         7493.552
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.097
##   90 Percent confidence interval - lower         0.075
##   90 Percent confidence interval - upper         0.120
##   P-value RMSEA <= 0.05                          0.001
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           0.068
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## 
## Group 1 [Pasteur]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual =~                                                             
##     x1                1.000                               1.047    0.887
##     x2                0.394    0.122    3.220    0.001    0.412    0.336
##     x3                0.570    0.140    4.076    0.000    0.597    0.515
##   textual =~                                                            
##     x4                1.000                               0.946    0.823
##     x5                1.183    0.102   11.613    0.000    1.119    0.856
##     x6                0.875    0.077   11.421    0.000    0.827    0.838
##   speed =~                                                              
##     x7                1.000                               0.591    0.547
##     x8                1.125    0.277    4.057    0.000    0.665    0.682
##     x9                0.922    0.225    4.104    0.000    0.545    0.551
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual ~~                                                             
##     textual           0.479    0.106    4.531    0.000    0.484    0.484
##     speed             0.185    0.077    2.397    0.017    0.299    0.299
##   textual ~~                                                            
##     speed             0.182    0.069    2.628    0.009    0.325    0.325
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .x1                4.941    0.095   52.249    0.000    4.941    4.183
##    .x2                5.984    0.098   60.949    0.000    5.984    4.880
##    .x3                2.487    0.093   26.778    0.000    2.487    2.144
##    .x4                2.823    0.092   30.689    0.000    2.823    2.457
##    .x5                3.995    0.105   38.183    0.000    3.995    3.057
##    .x6                1.922    0.079   24.321    0.000    1.922    1.947
##    .x7                4.432    0.087   51.181    0.000    4.432    4.098
##    .x8                5.563    0.078   71.214    0.000    5.563    5.702
##    .x9                5.418    0.079   68.440    0.000    5.418    5.480
##     visual            0.000                               0.000    0.000
##     textual           0.000                               0.000    0.000
##     speed             0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .x1                0.298    0.232    1.286    0.198    0.298    0.214
##    .x2                1.334    0.158    8.464    0.000    1.334    0.887
##    .x3                0.989    0.136    7.271    0.000    0.989    0.735
##    .x4                0.425    0.069    6.138    0.000    0.425    0.322
##    .x5                0.456    0.086    5.292    0.000    0.456    0.267
##    .x6                0.290    0.050    5.780    0.000    0.290    0.297
##    .x7                0.820    0.125    6.580    0.000    0.820    0.701
##    .x8                0.510    0.116    4.406    0.000    0.510    0.535
##    .x9                0.680    0.104    6.516    0.000    0.680    0.696
##     visual            1.097    0.276    3.967    0.000    1.000    1.000
##     textual           0.894    0.150    5.963    0.000    1.000    1.000
##     speed             0.350    0.126    2.778    0.005    1.000    1.000
## 
## 
## Group 2 [Grant-White]:
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual =~                                                             
##     x1                1.000                               0.788    0.684
##     x2                0.730    0.152    4.786    0.000    0.575    0.517
##     x3                0.911    0.162    5.629    0.000    0.718    0.695
##   textual =~                                                            
##     x4                1.000                               0.974    0.866
##     x5                0.986    0.087   11.374    0.000    0.961    0.829
##     x6                0.961    0.085   11.329    0.000    0.936    0.826
##   speed =~                                                              
##     x7                1.000                               0.682    0.660
##     x8                1.223    0.186    6.590    0.000    0.834    0.800
##     x9                1.059    0.164    6.450    0.000    0.722    0.702
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##   visual ~~                                                             
##     textual           0.413    0.099    4.154    0.000    0.538    0.538
##     speed             0.279    0.077    3.636    0.000    0.520    0.520
##   textual ~~                                                            
##     speed             0.220    0.074    2.978    0.003    0.331    0.331
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .x1                4.934    0.096   51.431    0.000    4.934    4.286
##    .x2                6.201    0.093   66.974    0.000    6.201    5.581
##    .x3                1.986    0.086   23.067    0.000    1.986    1.922
##    .x4                3.315    0.094   35.366    0.000    3.315    2.947
##    .x5                4.705    0.097   48.710    0.000    4.705    4.059
##    .x6                2.464    0.094   26.078    0.000    2.464    2.173
##    .x7                3.920    0.086   45.493    0.000    3.920    3.791
##    .x8                5.478    0.087   63.051    0.000    5.478    5.254
##    .x9                5.328    0.086   62.158    0.000    5.328    5.180
##     visual            0.000                               0.000    0.000
##     textual           0.000                               0.000    0.000
##     speed             0.000                               0.000    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
##    .x1                0.705    0.126    5.573    0.000    0.705    0.532
##    .x2                0.904    0.123    7.325    0.000    0.904    0.732
##    .x3                0.552    0.102    5.404    0.000    0.552    0.517
##    .x4                0.315    0.065    4.824    0.000    0.315    0.249
##    .x5                0.421    0.073    5.800    0.000    0.421    0.313
##    .x6                0.410    0.070    5.873    0.000    0.410    0.318
##    .x7                0.604    0.092    6.577    0.000    0.604    0.565
##    .x8                0.391    0.094    4.174    0.000    0.391    0.360
##    .x9                0.536    0.089    5.994    0.000    0.536    0.507
##     visual            0.621    0.163    3.806    0.000    1.000    1.000
##     textual           0.950    0.154    6.163    0.000    1.000    1.000
##     speed             0.465    0.119    3.909    0.000    1.000    1.000
modindices(fit1)  # Modifikationsindizes
##         lhs op rhs block group level     mi    epc sepc.lv sepc.all sepc.nox
## 73   visual =~  x4     1     1     1  1.498  0.099   0.104    0.090    0.090
## 74   visual =~  x5     1     1     1  9.593 -0.281  -0.294   -0.225   -0.225
## 75   visual =~  x6     1     1     1  3.972  0.137   0.144    0.146    0.146
## 76   visual =~  x7     1     1     1  5.182 -0.227  -0.238   -0.220   -0.220
## 77   visual =~  x8     1     1     1  0.925 -0.097  -0.101   -0.104   -0.104
## 78   visual =~  x9     1     1     1 11.073  0.304   0.318    0.322    0.322
## 79  textual =~  x1     1     1     1 10.185  0.944   0.893    0.756    0.756
## 80  textual =~  x2     1     1     1  0.388 -0.086  -0.081   -0.066   -0.066
## 81  textual =~  x3     1     1     1  6.203 -0.393  -0.371   -0.320   -0.320
## 82  textual =~  x7     1     1     1  0.486  0.076   0.071    0.066    0.066
## 83  textual =~  x8     1     1     1  1.176 -0.120  -0.113   -0.116   -0.116
## 84  textual =~  x9     1     1     1  0.247  0.049   0.047    0.047    0.047
## 85    speed =~  x1     1     1     1  0.041 -0.066  -0.039   -0.033   -0.033
## 86    speed =~  x2     1     1     1  0.587 -0.168  -0.099   -0.081   -0.081
## 87    speed =~  x3     1     1     1  0.522  0.149   0.088    0.076    0.076
## 88    speed =~  x4     1     1     1  0.068  0.038   0.022    0.019    0.019
## 89    speed =~  x5     1     1     1  3.333 -0.293  -0.173   -0.132   -0.132
## 90    speed =~  x6     1     1     1  2.661  0.200   0.118    0.120    0.120
## 91       x1 ~~  x2     1     1     1  3.971 -0.340  -0.340   -0.539   -0.539
## 92       x1 ~~  x3     1     1     1  0.641 -0.240  -0.240   -0.442   -0.442
## 93       x1 ~~  x4     1     1     1  3.932  0.119   0.119    0.334    0.334
## 94       x1 ~~  x5     1     1     1  2.240 -0.100  -0.100   -0.271   -0.271
## 95       x1 ~~  x6     1     1     1  0.361  0.031   0.031    0.104    0.104
## 96       x1 ~~  x7     1     1     1  0.804 -0.071  -0.071   -0.143   -0.143
## 97       x1 ~~  x8     1     1     1  0.628 -0.059  -0.059   -0.150   -0.150
## 98       x1 ~~  x9     1     1     1  1.595  0.091   0.091    0.203    0.203
## 99       x2 ~~  x3     1     1     1  8.961  0.329   0.329    0.286    0.286
## 100      x2 ~~  x4     1     1     1  2.275 -0.107  -0.107   -0.141   -0.141
## 101      x2 ~~  x5     1     1     1  0.008  0.007   0.007    0.009    0.009
## 102      x2 ~~  x6     1     1     1  1.007  0.060   0.060    0.096    0.096
## 103      x2 ~~  x7     1     1     1  6.851 -0.241  -0.241   -0.230   -0.230
## 104      x2 ~~  x8     1     1     1  0.002  0.004   0.004    0.004    0.004
## 105      x2 ~~  x9     1     1     1  2.830  0.141   0.141    0.148    0.148
## 106      x3 ~~  x4     1     1     1  0.546 -0.046  -0.046   -0.072   -0.072
## 107      x3 ~~  x5     1     1     1  3.757 -0.134  -0.134   -0.199   -0.199
## 108      x3 ~~  x6     1     1     1  1.345  0.062   0.062    0.115    0.115
## 109      x3 ~~  x7     1     1     1  1.724 -0.107  -0.107   -0.118   -0.118
## 110      x3 ~~  x8     1     1     1  0.321  0.040   0.040    0.057    0.057
## 111      x3 ~~  x9     1     1     1  4.526  0.158   0.158    0.192    0.192
## 112      x4 ~~  x5     1     1     1  5.463  0.315   0.315    0.715    0.715
## 113      x4 ~~  x6     1     1     1 11.280 -0.326  -0.326   -0.928   -0.928
## 114      x4 ~~  x7     1     1     1  7.197  0.159   0.159    0.270    0.270
## 115      x4 ~~  x8     1     1     1  1.349 -0.061  -0.061   -0.130   -0.130
## 116      x4 ~~  x9     1     1     1  1.290 -0.062  -0.062   -0.114   -0.114
## 117      x5 ~~  x6     1     1     1  1.303  0.138   0.138    0.380    0.380
## 118      x5 ~~  x7     1     1     1  1.914 -0.090  -0.090   -0.147   -0.147
## 119      x5 ~~  x8     1     1     1  0.337 -0.033  -0.033   -0.069   -0.069
## 120      x5 ~~  x9     1     1     1  0.199  0.026   0.026    0.048    0.048
## 121      x6 ~~  x7     1     1     1  0.035  0.009   0.009    0.019    0.019
## 122      x6 ~~  x8     1     1     1  1.566  0.055   0.055    0.143    0.143
## 123      x6 ~~  x9     1     1     1  0.008 -0.004  -0.004   -0.009   -0.009
## 124      x7 ~~  x8     1     1     1  4.187  0.342   0.342    0.528    0.528
## 125      x7 ~~  x9     1     1     1  1.544 -0.157  -0.157   -0.210   -0.210
## 126      x8 ~~  x9     1     1     1  0.498 -0.109  -0.109   -0.185   -0.185
## 127  visual =~  x4     2     2     1  0.025  0.020   0.015    0.014    0.014
## 128  visual =~  x5     2     2     1  0.211 -0.059  -0.047   -0.040   -0.040
## 129  visual =~  x6     2     2     1  0.086  0.037   0.029    0.026    0.026
## 130  visual =~  x7     2     2     1 11.016 -0.489  -0.385   -0.373   -0.373
## 131  visual =~  x8     2     2     1  2.981 -0.277  -0.218   -0.209   -0.209
## 132  visual =~  x9     2     2     1 24.888  0.739   0.582    0.566    0.566
## 133 textual =~  x1     2     2     1  0.347  0.087   0.085    0.074    0.074
## 134 textual =~  x2     2     2     1  0.659 -0.104  -0.102   -0.092   -0.092
## 135 textual =~  x3     2     2     1  0.009  0.013   0.012    0.012    0.012
## 136 textual =~  x7     2     2     1  0.177  0.037   0.036    0.035    0.035
## 137 textual =~  x8     2     2     1 10.206 -0.295  -0.288   -0.276   -0.276
## 138 textual =~  x9     2     2     1  9.660  0.273   0.266    0.259    0.259
## 139   speed =~  x1     2     2     1  3.000  0.372   0.254    0.221    0.221
## 140   speed =~  x2     2     2     1  0.500 -0.135  -0.092   -0.083   -0.083
## 141   speed =~  x3     2     2     1  1.313 -0.223  -0.152   -0.147   -0.147
## 142   speed =~  x4     2     2     1  0.652 -0.090  -0.061   -0.054   -0.054
## 143   speed =~  x5     2     2     1  2.473  0.184   0.126    0.108    0.108
## 144   speed =~  x6     2     2     1  0.511 -0.082  -0.056   -0.049   -0.049
## 145      x1 ~~  x2     2     2     1  0.742 -0.090  -0.090   -0.113   -0.113
## 146      x1 ~~  x3     2     2     1  1.297 -0.156  -0.156   -0.250   -0.250
## 147      x1 ~~  x4     2     2     1  0.109  0.019   0.019    0.040    0.040
## 148      x1 ~~  x5     2     2     1  0.005  0.004   0.004    0.008    0.008
## 149      x1 ~~  x6     2     2     1  0.018 -0.008  -0.008   -0.015   -0.015
## 150      x1 ~~  x7     2     2     1  5.430 -0.161  -0.161   -0.247   -0.247
## 151      x1 ~~  x8     2     2     1  0.371  0.041   0.041    0.077    0.077
## 152      x1 ~~  x9     2     2     1  8.464  0.196   0.196    0.319    0.319
## 153      x2 ~~  x3     2     2     1  3.767  0.184   0.184    0.261    0.261
## 154      x2 ~~  x4     2     2     1  0.410  0.038   0.038    0.070    0.070
## 155      x2 ~~  x5     2     2     1  1.059 -0.065  -0.065   -0.105   -0.105
## 156      x2 ~~  x6     2     2     1  0.056 -0.015  -0.015   -0.024   -0.024
## 157      x2 ~~  x7     2     2     1  0.440 -0.047  -0.047   -0.064   -0.064
## 158      x2 ~~  x8     2     2     1  0.002 -0.003  -0.003   -0.005   -0.005
## 159      x2 ~~  x9     2     2     1  0.000  0.000   0.000    0.001    0.001
## 160      x3 ~~  x4     2     2     1  0.005 -0.003  -0.003   -0.008   -0.008
## 161      x3 ~~  x5     2     2     1  0.885 -0.051  -0.051   -0.107   -0.107
## 162      x3 ~~  x6     2     2     1  1.274  0.061   0.061    0.127    0.127
## 163      x3 ~~  x7     2     2     1  3.247 -0.111  -0.111   -0.193   -0.193
## 164      x3 ~~  x8     2     2     1  0.189 -0.026  -0.026   -0.056   -0.056
## 165      x3 ~~  x9     2     2     1  1.368  0.070   0.070    0.130    0.130
## 166      x4 ~~  x5     2     2     1  0.023  0.019   0.019    0.053    0.053
## 167      x4 ~~  x6     2     2     1  0.027 -0.020  -0.020   -0.056   -0.056
## 168      x4 ~~  x7     2     2     1  0.489  0.035   0.035    0.079    0.079
## 169      x4 ~~  x8     2     2     1  3.902 -0.092  -0.092   -0.261   -0.261
## 170      x4 ~~  x9     2     2     1  0.454  0.032   0.032    0.078    0.078
## 171      x5 ~~  x6     2     2     1  0.000  0.002   0.002    0.004    0.004
## 172      x5 ~~  x7     2     2     1  0.730  0.045   0.045    0.090    0.090
## 173      x5 ~~  x8     2     2     1  0.200  0.022   0.022    0.055    0.055
## 174      x5 ~~  x9     2     2     1  0.694  0.043   0.043    0.090    0.090
## 175      x6 ~~  x7     2     2     1  0.012 -0.006  -0.006   -0.012   -0.012
## 176      x6 ~~  x8     2     2     1  0.156 -0.019  -0.019   -0.048   -0.048
## 177      x6 ~~  x9     2     2     1  0.197 -0.022  -0.022   -0.048   -0.048
## 178      x7 ~~  x8     2     2     1 25.284  0.624   0.624    1.284    1.284
## 179      x7 ~~  x9     2     2     1  4.602 -0.217  -0.217   -0.381   -0.381
## 180      x8 ~~  x9     2     2     1  8.364 -0.400  -0.400   -0.873   -0.873
# Standardisierte Residuen
attributes(fit1@Data)$block.label <- fit1@Data@group.label
resid(fit1, "standardized")
## $Pasteur
## $Pasteur$type
## [1] "standardized"
## 
## $Pasteur$cov
##    x1     x2     x3     x4     x5     x6     x7     x8     x9    
## x1  0.000                                                        
## x2 -2.140  0.000                                                 
## x3 -0.840  2.719  0.000                                          
## x4  1.891 -1.132 -1.579  0.000                                   
## x5 -2.308 -0.782 -3.434  2.172  0.000                            
## x6  2.042  0.400 -0.311 -3.620  1.106  0.000                     
## x7 -2.130 -2.697 -1.483  1.888 -0.540  0.975  0.000              
## x8 -1.013 -0.501  0.447 -1.078 -1.609  0.602  1.898  0.000       
## x9  2.613  1.689  2.888 -0.189  0.135  0.706 -1.306 -0.731  0.000
## 
## $Pasteur$mean
## x1 x2 x3 x4 x5 x6 x7 x8 x9 
##  0  0  0  0  0  0  0  0  0 
## 
## 
## $`Grant-White`
## $`Grant-White`$type
## [1] "standardized"
## 
## $`Grant-White`$cov
##    x1     x2     x3     x4     x5     x6     x7     x8     x9    
## x1  0.000                                                        
## x2 -0.884  0.000                                                 
## x3 -1.185  1.764  0.000                                          
## x4  0.560 -0.234  0.076  0.000                                   
## x5  0.180 -1.215 -0.654  0.151  0.000                            
## x6  0.337 -0.596  0.780 -0.165  0.014  0.000                     
## x7 -2.342 -1.654 -3.032  0.352  1.266 -0.033  0.000              
## x8  0.644 -0.753 -1.370 -3.066 -0.610 -2.216  4.027  0.000       
## x9  4.133  0.967  2.192  2.057  2.882  1.402 -2.259 -3.147  0.000
## 
## $`Grant-White`$mean
## x1 x2 x3 x4 x5 x6 x7 x8 x9 
##  0  0  0  0  0  0  0  0  0