Skript mit Erklärung der Verfahren und Vorgehensweisen anhand von Beispielen.
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”.
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:
Hinweise: ?model.syntax in R eingeben.
Lnks: https://www.jstatsoft.org/article/view/v048i02 oder http://lavaan.ugent.be/tutorial/tutorial.pdf
Kurzfassung:
lat.var =~ Ind1 + Ind2 +Ind3
y ~ x1 + x2 + x3
y1 ~~ y1
x4 ~~ x1 + x2 + x3 # x: exogene Variablen
x1 ~~ 0*x2
y4 ~~ y1 + y2 + y3 # y: endogene Variablen
y1 ~ 1
y1 ~ 0.5*1
y ~ x1 + c(a, a, a)*x2 + x3
y ~ label("p1")*x1 + label("p2")*x2 + x3
constraints <- 'p1==p2'
library(lavaan)
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'
# 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