MASEM Examples using the metaSEM Package

Table of Contents

1 Digman (1997)

1.1 Inspect the data

The correlation matrices and the sample sizes were stored in Digman97$data and Digman97$n, respectively. We may list the first few cases of the data by using the head() command.

#### Load the metaSEM library for TSSEM
library(metaSEM)

#### Inspect the data for inspection
head(Digman97$data)
Loading required package: OpenMx
$`Digman 1 (1994)`
       A     C   ES     E    I
A   1.00  0.62 0.41 -0.48 0.00
C   0.62  1.00 0.59 -0.10 0.35
ES  0.41  0.59 1.00  0.27 0.41
E  -0.48 -0.10 0.27  1.00 0.37
I   0.00  0.35 0.41  0.37 1.00

$`Digman 2 (1994)`
       A    C   ES     E     I
A   1.00 0.39 0.53 -0.30 -0.05
C   0.39 1.00 0.59  0.07  0.44
ES  0.53 0.59 1.00  0.09  0.22
E  -0.30 0.07 0.09  1.00  0.45
I  -0.05 0.44 0.22  0.45  1.00

$`Digman 3 (1963c)`
      A     C   ES     E    I
A  1.00  0.65 0.35  0.25 0.14
C  0.65  1.00 0.37 -0.10 0.33
ES 0.35  0.37 1.00  0.24 0.41
E  0.25 -0.10 0.24  1.00 0.41
I  0.14  0.33 0.41  0.41 1.00

$`Digman & Takemoto-Chock (1981b)`
       A     C   ES     E     I
A   1.00  0.65 0.70 -0.26 -0.03
C   0.65  1.00 0.71 -0.16  0.24
ES  0.70  0.71 1.00  0.01  0.11
E  -0.26 -0.16 0.01  1.00  0.66
I  -0.03  0.24 0.11  0.66  1.00

$`Graziano & Ward (1992)`
      A    C   ES    E    I
A  1.00 0.64 0.35 0.29 0.22
C  0.64 1.00 0.27 0.16 0.22
ES 0.35 0.27 1.00 0.32 0.36
E  0.29 0.16 0.32 1.00 0.53
I  0.22 0.22 0.36 0.53 1.00

$`Yik & Bond (1993)`
      A    C   ES    E    I
A  1.00 0.66 0.57 0.35 0.38
C  0.66 1.00 0.45 0.20 0.31
ES 0.57 0.45 1.00 0.49 0.31
E  0.35 0.20 0.49 1.00 0.59
I  0.38 0.31 0.31 0.59 1.00
head(Digman97$n)
[1] 102 149 334 162  91 656

1.2 Fixed-effects TSSEM

1.2.1 Stage 1 analysis

To conduct a fixed-effects TSSEM, we may specify FEM (the default method) in the method argument. The results are stored in an object named fixed1. It can be displayed by the summary() command. The \(\chi^2(130, N=4,496) = 1,499.73, p < .001\), CFI=0.6825, RMSEA=0.1812 and SRMR=0.1750. Based on the test statistic and the goodness-of-fit indices, the assumption of homogeneity of correlation matrices was rejected.

#### Fixed-effects model: Stage 1 analysis
fixed1 <- tssem1(my.df=Digman97$data, n=Digman97$n, method="FEM")
summary(fixed1)
Running TSSEM1 Analysis of Correlation Matrix

Call:
tssem1FEM(my.df = my.df, n = n, cor.analysis = cor.analysis, 
    model.name = model.name, cluster = cluster, suppressWarnings = suppressWarnings)

Coefficients:
       Estimate Std.Error z value  Pr(>|z|)    
S[1,2] 0.363116  0.013391 27.1171 < 2.2e-16 ***
S[1,3] 0.390176  0.012903 30.2388 < 2.2e-16 ***
S[1,4] 0.103751  0.015070  6.8846 5.796e-12 ***
S[1,5] 0.092246  0.015071  6.1207 9.318e-10 ***
S[2,3] 0.415999  0.012540 33.1741 < 2.2e-16 ***
S[2,4] 0.135208  0.014799  9.1363 < 2.2e-16 ***
S[2,5] 0.141213  0.014891  9.4834 < 2.2e-16 ***
S[3,4] 0.244505  0.014175 17.2488 < 2.2e-16 ***
S[3,5] 0.138167  0.014858  9.2992 < 2.2e-16 ***
S[4,5] 0.424514  0.012396 34.2468 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                     Value
Sample size                      4496.0000
Chi-square of target model       1499.7340
DF of target model                130.0000
p value of target model             0.0000
Chi-square of independence model 4454.5995
DF of independence model          140.0000
RMSEA                               0.1812
SRMR                                0.1750
TLI                                 0.6581
CFI                                 0.6825
AIC                              1239.7340
BIC                               406.3114
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)

The pooled correlation matrix (the parameter estimates) can be extracted by the use of the coef() command.

coef(fixed1)
           x1        x2        x3        x4         x5
x1 1.00000000 0.3631157 0.3901765 0.1037511 0.09224586
x2 0.36311572 1.0000000 0.4159987 0.1352076 0.14121296
x3 0.39017648 0.4159987 1.0000000 0.2445051 0.13816668
x4 0.10375113 0.1352076 0.2445051 1.0000000 0.42451421
x5 0.09224586 0.1412130 0.1381667 0.4245142 1.00000000

1.2.2 Stage 2 analysis

As an illustration, I continued to fit the structural model based on the pooled correlation matrix. We may specify the two-factor model with the RAM formulation.

## S matrix
Phi <- matrix(c(1,"0.3*cor","0.3*cor",1), ncol=2, nrow=2)
S1 <- bdiagMat(list(Diag(c("0.2*e1","0.2*e2","0.2*e3","0.2*e4","0.2*e5")),  
               Phi))

## This step is not necessary but it is useful in checking the content.
dimnames(S1)[[1]] <- c("A","C","ES","E","I","Alpha","Beta")
dimnames(S1)[[2]] <- c("A","C","ES","E","I","Alpha","Beta")
S1

## To convert a character matrix into an Mx matrix
S1 <- as.mxMatrix(S1)
      A        C        ES       E        I        Alpha     Beta     
A     "0.2*e1" "0"      "0"      "0"      "0"      "0"       "0"      
C     "0"      "0.2*e2" "0"      "0"      "0"      "0"       "0"      
ES    "0"      "0"      "0.2*e3" "0"      "0"      "0"       "0"      
E     "0"      "0"      "0"      "0.2*e4" "0"      "0"       "0"      
I     "0"      "0"      "0"      "0"      "0.2*e5" "0"       "0"      
Alpha "0"      "0"      "0"      "0"      "0"      "1"       "0.3*cor"
Beta  "0"      "0"      "0"      "0"      "0"      "0.3*cor" "1"
## A matrix
Lambda <-matrix(c(".3*Alpha_A",".3*Alpha_C",".3*Alpha_ES",rep(0,5),
                  ".3*Beta_E",".3*Beta_I"), ncol=2, nrow=5)
A1 <- rbind( cbind(matrix(0,ncol=5,nrow=5), Lambda),
             matrix(0, ncol=7, nrow=2) )

## This step is not necessary but it is useful in checking the content.
dimnames(A1)[[1]] <- c("A","C","ES","E","I","Alpha","Beta")
dimnames(A1)[[2]] <- c("A","C","ES","E","I","Alpha","Beta") 
A1

A1 <- as.mxMatrix(A1)
      A   C   ES  E   I   Alpha         Beta       
A     "0" "0" "0" "0" "0" ".3*Alpha_A"  "0"        
C     "0" "0" "0" "0" "0" ".3*Alpha_C"  "0"        
ES    "0" "0" "0" "0" "0" ".3*Alpha_ES" "0"        
E     "0" "0" "0" "0" "0" "0"           ".3*Beta_E"
I     "0" "0" "0" "0" "0" "0"           ".3*Beta_I"
Alpha "0" "0" "0" "0" "0" "0"           "0"        
Beta  "0" "0" "0" "0" "0" "0"           "0"
## F matrix to select the observed variables
## The last variables are "Alpha" and "Beta", both of them are latent.
F1 <- create.Fmatrix(c(1,1,1,1,1,0,0), name="F1")

Since we are conducting a correlation structure analysis, the error variances are not free parameters. We need to use the diag.constraints to constrain the diagonals as one. When there are nonlinear constraints, standard errors are not available in OpenMx. We may request the likelihood-based confidence intervals (LBCI) with the intervals argument. The chi-square test statistic of the Stage 2 analysis was \(\chi^2(4, N=4,496) = 65.06, p < .001\), CFI=0.9802, RMSEA=0.0583 and SRMR=0.0284.

fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, Fmatrix=F1, 
                 diag.constraints=TRUE, intervals="LB",
                 model.name="TSSEM2 Digman97")
summary(fixed2)
 Running TSSEM2 Digman97

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error  lbound  ubound z value Pr(>|z|)
Amatrix[1,6]  0.56258        NA 0.53242 0.59286      NA       NA
Amatrix[2,6]  0.60512        NA 0.57509 0.63532      NA       NA
Amatrix[3,6]  0.71913        NA 0.68862 0.75032      NA       NA
Amatrix[4,7]  0.78200        NA 0.71911 0.85587      NA       NA
Amatrix[5,7]  0.55089        NA 0.49939 0.60231      NA       NA
Smatrix[1,1]  0.68351        NA 0.64851 0.71653      NA       NA
Smatrix[2,2]  0.63382        NA 0.59636 0.66927      NA       NA
Smatrix[3,3]  0.48285        NA 0.43702 0.52580      NA       NA
Smatrix[4,4]  0.38847        NA 0.26741 0.48290      NA       NA
Smatrix[5,5]  0.69652        NA 0.63721 0.75061      NA       NA
Smatrix[7,6]  0.36261        NA 0.31843 0.40650      NA       NA

Goodness-of-fit indices:
                                               Value
Sample size                                4496.0000
Chi-square of target model                   65.0610
DF of target model                            4.0000
p value of target model                       0.0000
Number of constraints imposed on "Smatrix"    5.0000
DF manually adjusted                          0.0000
Chi-square of independence model           3100.6516
DF of independence model                     10.0000
RMSEA                                         0.0583
SRMR                                          0.0284
TLI                                           0.9506
CFI                                           0.9802
AIC                                          57.0610
BIC                                          31.4172
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

1.3 Fixed-effects TSSEM with cluster

1.3.1 Stage 1 analysis

There are 4 types of sample characteristics in the original cluster. We may group them into either younger or older samples.

#### Display the frequencies of "cluster"
table(Digman97$cluster)
Adolescents      Children Mature adults  Young adults 
          1             4             6             3
#### Fixed-effects TSSEM with several clusters
#### Create a variable for different samples
#### Younger participants: Children and Adolescents
#### Older participants: others
sample <- ifelse(Digman97$cluster %in% c("Children","Adolescents"),
                 yes="Younger participants", no="Older participants")

#### Show the sample
sample
 [1] "Younger participants" "Younger participants" "Younger participants"
 [4] "Younger participants" "Younger participants" "Older participants"  
 [7] "Older participants"   "Older participants"   "Older participants"  
[10] "Older participants"   "Older participants"   "Older participants"  
[13] "Older participants"   "Older participants"

We may conduct a fixed-effects model by specifying the cluster argument. Fixed-effects TSSEM will be conducted according to the labels in the sample. The goodness-of-fit indices of the Stage 1 analysis for the older and younger participants were \(\chi^2(80, N=3,658) = 823.88, p < .001\), CFI=0.7437, RMSEA=0.1513 and SRMR=0.1528, and \(\chi^2(40, N=838) = 344.18, p < .001\), CFI=0.7845, RMSEA=0.2131 and SRMR=0.1508, respectively.

## Example of Fixed-effects TSSEM with several clusters
cluster1 <- tssem1(Digman97$data, Digman97$n, method="FEM", 
                   cluster=sample)
summary(cluster1)
 Running TSSEM1 Analysis of Correlation Matrix 
Running TSSEM1 Analysis of Correlation Matrix
$`Older participants`

Call:
tssem1FEM(my.df = data.cluster[[i]], n = n.cluster[[i]], cor.analysis = cor.analysis, 
    model.name = model.name, suppressWarnings = suppressWarnings)

Coefficients:
       Estimate Std.Error z value  Pr(>|z|)    
S[1,2] 0.297484  0.015455 19.2489 < 2.2e-16 ***
S[1,3] 0.370088  0.014552 25.4322 < 2.2e-16 ***
S[1,4] 0.137688  0.016423  8.3838 < 2.2e-16 ***
S[1,5] 0.097971  0.016744  5.8510 4.886e-09 ***
S[2,3] 0.393709  0.014163 27.7984 < 2.2e-16 ***
S[2,4] 0.182984  0.016075 11.3831 < 2.2e-16 ***
S[2,5] 0.092664  0.016664  5.5609 2.685e-08 ***
S[3,4] 0.260756  0.015573 16.7444 < 2.2e-16 ***
S[3,5] 0.096063  0.016594  5.7890 7.080e-09 ***
S[4,5] 0.411753  0.013917 29.5858 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                     Value
Sample size                      3658.0000
Chi-square of target model        823.8769
DF of target model                 80.0000
p value of target model             0.0000
Chi-square of independence model 2992.9294
DF of independence model           90.0000
RMSEA                               0.1513
SRMR                                0.1528
TLI                                 0.7117
CFI                                 0.7437
AIC                               663.8769
BIC                               167.5032
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)

$`Younger participants`

Call:
tssem1FEM(my.df = data.cluster[[i]], n = n.cluster[[i]], cor.analysis = cor.analysis, 
    model.name = model.name, suppressWarnings = suppressWarnings)

Coefficients:
        Estimate Std.Error z value  Pr(>|z|)    
S[1,2]  0.604396  0.022188 27.2392 < 2.2e-16 ***
S[1,3]  0.465441  0.027579 16.8769 < 2.2e-16 ***
S[1,4] -0.030869  0.036047 -0.8563   0.39181    
S[1,5]  0.061581  0.034650  1.7772   0.07553 .  
S[2,3]  0.501309  0.026431 18.9668 < 2.2e-16 ***
S[2,4] -0.060834  0.034660 -1.7552   0.07923 .  
S[2,5]  0.321019  0.031157 10.3034 < 2.2e-16 ***
S[3,4]  0.175422  0.033776  5.1937 2.061e-07 ***
S[3,5]  0.305214  0.031679  9.6345 < 2.2e-16 ***
S[4,5]  0.478573  0.026966 17.7474 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                     Value
Sample size                       838.0000
Chi-square of target model        344.1826
DF of target model                 40.0000
p value of target model             0.0000
Chi-square of independence model 1461.6701
DF of independence model           50.0000
RMSEA                               0.2131
SRMR                                0.1508
TLI                                 0.7307
CFI                                 0.7845
AIC                               264.1826
BIC                                74.9419
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)

The pooled correlation matrix for each cluster can be extracted by the use of the coef() command.

coef(cluster1)
$`Older participants`
           x1         x2        x3        x4         x5
x1 1.00000000 0.29748426 0.3700879 0.1376877 0.09797102
x2 0.29748426 1.00000000 0.3937095 0.1829840 0.09266441
x3 0.37008785 0.39370949 1.0000000 0.2607561 0.09606280
x4 0.13768766 0.18298403 0.2607561 1.0000000 0.41175343
x5 0.09797102 0.09266441 0.0960628 0.4117534 1.00000000

$`Younger participants`
            x1          x2        x3          x4         x5
x1  1.00000000  0.60439588 0.4654414 -0.03086890 0.06158055
x2  0.60439588  1.00000000 0.5013091 -0.06083381 0.32101905
x3  0.46544142  0.50130913 1.0000000  0.17542223 0.30521426
x4 -0.03086890 -0.06083381 0.1754222  1.00000000 0.47857275
x5  0.06158055  0.32101905 0.3052143  0.47857275 1.00000000

1.3.2 Stage 2 analysis

The goodness-of-fit indices of the Stage 2 analysis for the older and younger participants were \(\chi^2(4, N=3,658) = 21.92, p < .001\), CFI=0.9921, RMSEA=0.0350 and SRMR=0.0160, and \(\chi^2(4, N=838) = 144.87, p < .001\), CFI=0.9427, RMSEA=0.2051 and SRMR=0.1051, respectively.

cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, Fmatrix=F1, 
                   diag.constraints=TRUE, intervals.type="LB")
#### Please note that the estimates for the younger participants are problematic.
summary(cluster2)
 Running TSSEM2 (Fixed Effects Model) Analysis of Correlation Structure 
Running TSSEM2 (Fixed Effects Model) Analysis of Correlation Structure
$`Older participants`

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
              Estimate Std.Error    lbound    ubound z value Pr(>|z|)
Amatrix[1,6]  0.512525        NA  0.476852  0.548376      NA       NA
Amatrix[2,6]  0.550049        NA  0.514878  0.585391      NA       NA
Amatrix[3,6]  0.732091        NA  0.695584  0.770073      NA       NA
Amatrix[4,7]  0.967545        NA  0.868045  1.109618      NA       NA
Amatrix[5,7]  0.430459        NA  0.369165  0.486893      NA       NA
Smatrix[1,1]  0.737319        NA  0.699283  0.772611      NA       NA
Smatrix[2,2]  0.697447        NA  0.657315  0.734901      NA       NA
Smatrix[3,3]  0.464043        NA  0.406978  0.516169      NA       NA
Smatrix[4,4]  0.063857        NA -0.231964  0.246579      NA       NA
Smatrix[5,5]  0.814705        NA  0.762936  0.863710      NA       NA
Smatrix[7,6]  0.349090        NA  0.292053  0.403235      NA       NA

Goodness-of-fit indices:
                                               Value
Sample size                                3658.0000
Chi-square of target model                   21.9236
DF of target model                            4.0000
p value of target model                       0.0002
Number of constraints imposed on "Smatrix"    5.0000
DF manually adjusted                          0.0000
Chi-square of independence model           2267.5641
DF of independence model                     10.0000
RMSEA                                         0.0350
SRMR                                          0.0160
TLI                                           0.9802
CFI                                           0.9921
AIC                                          13.9236
BIC                                         -10.8951
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

$`Younger participants`

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
                Estimate Std.Error      lbound      ubound z value Pr(>|z|)
Amatrix[1,6]  7.4763e-01        NA  7.0068e-01  7.9470e-01      NA       NA
Amatrix[2,6]  9.1196e-01        NA  8.7319e-01  9.5151e-01      NA       NA
Amatrix[3,6]  6.7721e-01        NA  6.2600e-01  7.2752e-01      NA       NA
Amatrix[4,7]  1.5235e-01        NA  1.5431e-02  3.4171e-01      NA       NA
Amatrix[5,7]  3.2898e+00        NA  1.5252e+00  2.0930e+02      NA       NA
Smatrix[1,1]  4.4104e-01        NA  3.6843e-01  5.0906e-01      NA       NA
Smatrix[2,2]  1.6833e-01        NA  9.4596e-02  2.3756e-01      NA       NA
Smatrix[3,3]  5.4139e-01        NA  4.7071e-01  6.0813e-01      NA       NA
Smatrix[4,4]  9.7679e-01        NA  8.8327e-01  9.9940e-01      NA       NA
Smatrix[5,5] -9.8226e+00        NA -4.8890e+05 -1.3113e+00      NA       NA
Smatrix[7,6]  1.1707e-01        NA  1.0827e-02  2.7500e-01      NA       NA

Goodness-of-fit indices:
                                               Value
Sample size                                 838.0000
Chi-square of target model                  144.8650
DF of target model                            4.0000
p value of target model                       0.0000
Number of constraints imposed on "Smatrix"    5.0000
DF manually adjusted                          0.0000
Chi-square of independence model           2469.5247
DF of independence model                     10.0000
RMSEA                                         0.2051
SRMR                                          0.1051
TLI                                           0.8568
CFI                                           0.9427
AIC                                         136.8650
BIC                                         117.9409
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

1.4 Random-effects TSSEM

1.4.1 Stage 1 analysis

Since there is not enough data to estimate the full variance component of the random effects, I estimate the variance component with a diagonal matrix in the RE.type argument. The range of \(I^2\) indices, the percentage of total variance that can be explained by the between study effect, are from .84 to .95.

#### Random-effects TSSEM with random effects on the diagonals
random1 <- tssem1(Digman97$data, Digman97$n, method="REM",
                  RE.type="Diag")
summary(random1)
 Running TSSEM1 (Random Effects Model) Analysis of Correlation Matrix

Call:
meta(y = ES, v = acovR, RE.constraints = Diag(x = paste(RE.startvalues, 
    "*Tau2_", 1:no.es, "_", 1:no.es, sep = "")), RE.lbound = RE.lbound, 
    I2 = I2, model.name = model.name)

95% confidence intervals: z statistic approximation
Coefficients:
               Estimate   Std.Error      lbound      ubound z value  Pr(>|z|)
Intercept1   3.9465e-01  5.4223e-02  2.8837e-01  5.0092e-01  7.2782 3.384e-13
Intercept10  4.4413e-01  3.2547e-02  3.8034e-01  5.0792e-01 13.6460 < 2.2e-16
Intercept2   4.4009e-01  4.1258e-02  3.5923e-01  5.2096e-01 10.6668 < 2.2e-16
Intercept3   5.4542e-02  6.1716e-02 -6.6418e-02  1.7550e-01  0.8838  0.376821
Intercept4   9.8668e-02  4.6219e-02  8.0813e-03  1.8926e-01  2.1348  0.032776
Intercept5   4.2966e-01  4.0156e-02  3.5096e-01  5.0837e-01 10.6999 < 2.2e-16
Intercept6   1.2851e-01  4.0816e-02  4.8514e-02  2.0851e-01  3.1486  0.001641
Intercept7   2.0526e-01  4.9591e-02  1.0806e-01  3.0245e-01  4.1390 3.488e-05
Intercept8   2.3994e-01  3.1924e-02  1.7737e-01  3.0251e-01  7.5159 5.662e-14
Intercept9   1.8910e-01  4.3014e-02  1.0480e-01  2.7341e-01  4.3963 1.101e-05
Tau2_10_10   1.1151e-02  5.0467e-03  1.2591e-03  2.1042e-02  2.2095  0.027143
Tau2_1_1     3.7207e-02  1.5000e-02  7.8079e-03  6.6607e-02  2.4805  0.013120
Tau2_2_2     2.0305e-02  8.4348e-03  3.7735e-03  3.6837e-02  2.4073  0.016069
Tau2_3_3     4.8219e-02  1.9723e-02  9.5631e-03  8.6876e-02  2.4448  0.014492
Tau2_4_4     2.4610e-02  1.0624e-02  3.7872e-03  4.5433e-02  2.3164  0.020535
Tau2_5_5     1.8725e-02  8.2474e-03  2.5602e-03  3.4890e-02  2.2704  0.023184
Tau2_6_6     1.8256e-02  8.7889e-03  1.0301e-03  3.5482e-02  2.0772  0.037786
Tau2_7_7     2.9424e-02  1.2263e-02  5.3893e-03  5.3459e-02  2.3995  0.016420
Tau2_8_8     9.6511e-03  4.8824e-03  8.1675e-05  1.9220e-02  1.9767  0.048076
Tau2_9_9     2.0934e-02  9.1280e-03  3.0430e-03  3.8824e-02  2.2933  0.021829
               
Intercept1  ***
Intercept10 ***
Intercept2  ***
Intercept3     
Intercept4  *  
Intercept5  ***
Intercept6  ** 
Intercept7  ***
Intercept8  ***
Intercept9  ***
Tau2_10_10  *  
Tau2_1_1    *  
Tau2_2_2    *  
Tau2_3_3    *  
Tau2_4_4    *  
Tau2_5_5    *  
Tau2_6_6    *  
Tau2_7_7    *  
Tau2_8_8    *  
Tau2_9_9    *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Q statistic on homogeneity of effect sizes: 2380.981
Degrees of freedom of the Q statistic: 130
P value of the Q statistic: 0
Heterogeneity indices (based on the estimated Tau2):
                              Estimate
Intercept1: I2 (Q statistic)    0.9487
Intercept2: I2 (Q statistic)    0.9082
Intercept3: I2 (Q statistic)    0.9414
Intercept4: I2 (Q statistic)    0.8894
Intercept5: I2 (Q statistic)    0.9005
Intercept6: I2 (Q statistic)    0.8537
Intercept7: I2 (Q statistic)    0.9093
Intercept8: I2 (Q statistic)    0.7714
Intercept9: I2 (Q statistic)    0.8746
Intercept10: I2 (Q statistic)   0.8431

Number of studies (or clusters): 14
Number of observed statistics: 140
Number of estimated parameters: 20
Degrees of freedom: 120
-2 log likelihood: -110.8452 
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

The pooled correlation coefficients (fixed effects) and the variance components (the random effects) can be extracted by the use of the coef() command via the select argument.

coef(random1, select="fixed")
Intercept1  Intercept2  Intercept3  Intercept4  Intercept5  Intercept6 
0.39464580  0.44009393  0.05454224  0.09866822  0.42966158  0.12851209 
Intercept7  Intercept8  Intercept9 Intercept10 
0.20525671  0.23993565  0.18910299  0.44413318
coef(random1, select="random")
   Tau2_1_1    Tau2_2_2    Tau2_3_3    Tau2_4_4    Tau2_5_5    Tau2_6_6 
0.037207282 0.020305406 0.048219423 0.024610339 0.018724852 0.018256080 
   Tau2_7_7    Tau2_8_8    Tau2_9_9  Tau2_10_10 
0.029423940 0.009651086 0.020933506 0.011150539

1.4.2 Stage 2 analysis

The steps are exactly the same as those in the fixed-effects model. The chi-square test statistic of the Stage 2 analysis was \(\chi^2(4, N=4,496) = 8.51, p < .001\), CFI=0.9911, RMSEA=0.0158 and SRMR=0.0463.

random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, Fmatrix=F1, 
                  diag.constraints=TRUE, intervals="LB")
summary(random2)
 Running TSSEM2 (Random Effects Model) Analysis of Correlation Structure

Call:
wls(Cov = pooledS, asyCov = asyCov, n = tssem1.obj$total.n, Amatrix = Amatrix, 
    Smatrix = Smatrix, Fmatrix = Fmatrix, diag.constraints = diag.constraints, 
    cor.analysis = cor.analysis, intervals.type = intervals.type, 
    mx.algebras = mx.algebras, model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error  lbound  ubound z value Pr(>|z|)
Amatrix[1,6]  0.57255        NA 0.47370 0.67690      NA       NA
Amatrix[2,6]  0.59010        NA 0.49047 0.69487      NA       NA
Amatrix[3,6]  0.77046        NA 0.65994 0.90431      NA       NA
Amatrix[4,7]  0.69340        NA 0.56258 0.87183      NA       NA
Amatrix[5,7]  0.64011        NA 0.50833 0.78644      NA       NA
Smatrix[1,1]  0.67218        NA 0.54176 0.77561      NA       NA
Smatrix[2,2]  0.65178        NA 0.51711 0.75944      NA       NA
Smatrix[3,3]  0.40640        NA 0.18193 0.56452      NA       NA
Smatrix[4,4]  0.51919        NA 0.23937 0.68353      NA       NA
Smatrix[5,5]  0.59026        NA 0.38131 0.74161      NA       NA
Smatrix[7,6]  0.39366        NA 0.30236 0.49030      NA       NA

Goodness-of-fit indices:
                                               Value
Sample size                                4496.0000
Chi-square of target model                    8.5118
DF of target model                            4.0000
p value of target model                       0.0745
Number of constraints imposed on "Smatrix"    5.0000
DF manually adjusted                          0.0000
Chi-square of independence model            514.5599
DF of independence model                     10.0000
RMSEA                                         0.0158
SRMR                                          0.0463
TLI                                           0.9776
CFI                                           0.9911
AIC                                           0.5118
BIC                                         -25.1319
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

2 Becker and Schram (1994)

2.1 Inspect the data

We may list the first few cases of the data by using the head() command.

#### Load the metaSEM library for TSSEM
library(metaSEM)

#### Inspect the data for inspection (not required for the analysis)
head(Becker94$data)
Loading required package: OpenMx
$`Becker (1978) Females`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.47        -0.21
Spatial            0.47    1.00        -0.15
SAT (Verbal)      -0.21   -0.15         1.00

$`Becker (1978) Males`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.28         0.19
Spatial            0.28    1.00         0.18
SAT (Verbal)       0.19    0.18         1.00

$`Berry (1957) Females`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.48         0.41
Spatial            0.48    1.00         0.26
SAT (Verbal)       0.41    0.26         1.00

$`Berry (1957) Males`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.37         0.40
Spatial            0.37    1.00         0.27
SAT (Verbal)       0.40    0.27         1.00

$`Rosenberg (1981) Females`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.42         0.48
Spatial            0.42    1.00         0.23
SAT (Verbal)       0.48    0.23         1.00

$`Rosenberg (1981) Males`
             SAT (Math) Spatial SAT (Verbal)
SAT (Math)         1.00    0.41         0.74
Spatial            0.41    1.00         0.44
SAT (Verbal)       0.74    0.44         1.00
head(Becker94$n)
[1]  74 153  48  55  51  18

2.2 Fixed-effects TSSEM

2.2.1 Stage 1 analysis

The test statistic of the Stage 1 analysis based on the TSSEM approach was \(\chi^2(27, N=538) = 62.50, p < .001\), CFI=0.7943, RMSEA=0.1565 and SRMR=0.2011. Based on the test statistic and the goodness-of-fit indices, the hypothesis of homogeneity of correlation matrices was rejected.

#### Fixed-effects model
## Stage 1 analysis
fixed1 <- tssem1(Becker94$data, Becker94$n, method="FEM")
summary(fixed1)
Running TSSEM1 Analysis of Correlation Matrix

Call:
tssem1FEM(my.df = my.df, n = n, cor.analysis = cor.analysis, 
    model.name = model.name, cluster = cluster, suppressWarnings = suppressWarnings)

Coefficients:
       Estimate Std.Error z value  Pr(>|z|)    
S[1,2] 0.379638  0.037484 10.1281 < 2.2e-16 ***
S[1,3] 0.332255  0.040384  8.2274 2.220e-16 ***
S[2,3] 0.175639  0.042743  4.1092 3.971e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                     Value
Sample size                       538.0000
Chi-square of target model         62.4983
DF of target model                 27.0000
p value of target model             0.0001
Chi-square of independence model  202.6121
DF of independence model           30.0000
RMSEA                               0.1565
SRMR                                0.2011
TLI                                 0.7715
CFI                                 0.7943
AIC                                 8.4983
BIC                              -107.2738
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)
coef(fixed1)
          x1        x2        x3
x1 1.0000000 0.3796383 0.3322554
x2 0.3796383 1.0000000 0.1756393
x3 0.3322554 0.1756393 1.0000000

2.2.2 Stage 2 analysis

We may specify the model via the RAM formulation. If all variables are observed, there is no need to specify the F matrix. Since the df of the regression model is 0, the proposed model always fits the data perfectly.

#### Prepare models for stage 2 analysis
## A1: asymmetric matrix (regression coefficients)
A1 <- create.mxMatrix(c(0,0,0,"0.2*Spatial2Math",
                        0,0,"0.2*Verbal2Math",0,0), 
                        type="Full", ncol=3, nrow=3, 
                        name="A1")
A1
FullMatrix 'A1' 

@labels
     [,1] [,2]           [,3]         
[1,] NA   "Spatial2Math" "Verbal2Math"
[2,] NA   NA             NA           
[3,] NA   NA             NA           

@values
     [,1] [,2] [,3]
[1,]    0  0.2  0.2
[2,]    0  0.0  0.0
[3,]    0  0.0  0.0

@free
      [,1]  [,2]  [,3]
[1,] FALSE  TRUE  TRUE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE

@lbound: No lower bounds assigned.

@ubound: No upper bounds assigned.
## S1: symmetric matrix (variance covariance matrix among variables)
S1 <- create.mxMatrix(c("0.2*ErrorVarMath",0,0,1,"0.2*CorBetweenSpatialVerbal",1), 
                        type="Symm", name="S1")
S1
SymmMatrix 'S1' 

@labels
     [,1]           [,2]                      [,3]                     
[1,] "ErrorVarMath" NA                        NA                       
[2,] NA             NA                        "CorBetweenSpatialVerbal"
[3,] NA             "CorBetweenSpatialVerbal" NA                       

@values
     [,1] [,2] [,3]
[1,]  0.2  0.0  0.0
[2,]  0.0  1.0  0.2
[3,]  0.0  0.2  1.0

@free
      [,1]  [,2]  [,3]
[1,]  TRUE FALSE FALSE
[2,] FALSE FALSE  TRUE
[3,] FALSE  TRUE FALSE

@lbound: No lower bounds assigned.

@ubound: No upper bounds assigned.
## Stage 2 analysis
fixed2 <- tssem2(fixed1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE, 
                 intervals="LB")
summary(fixed2)
 Running TSSEM2 (Fixed Effects Model) Analysis of Correlation Structure

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error   lbound   ubound z value Pr(>|z|)
Amatrix[1,2] 0.331508        NA 0.257718 0.405183      NA       NA
Amatrix[1,3] 0.274030        NA 0.196570 0.351545      NA       NA
Smatrix[1,1] 0.783099        NA 0.715506 0.842382      NA       NA
Smatrix[2,3] 0.175639        NA 0.091809 0.259474      NA       NA

Goodness-of-fit indices:
                                            Value
Sample size                                538.00
Chi-square of target model                   0.00
DF of target model                           0.00
p value of target model                      0.00
Number of constraints imposed on "Smatrix"   1.00
DF manually adjusted                         0.00
Chi-square of independence model           156.22
DF of independence model                     3.00
RMSEA                                        0.00
SRMR                                         0.00
TLI                                          -Inf
CFI                                          1.00
AIC                                          0.00
BIC                                          0.00
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

2.3 Fixed-effects TSSEM with cluster

2.3.1 Stage 1 analysis

The goodness-of-fit indices of the Stage 1 analysis for the female and male participants were \(\chi^2(12, N=235) = 42.41, p < .001\), CFI=0.7116, RMSEA=0.2327 and SRMR=0.2339, and \(\chi^2(12, N=303) = 16.13, p = .1852\), CFI=0.9385, RMSEA=0.0755 and SRMR=0.1508, respectively.

#### Fixed-effects model with cluster
## Stage 1 analysis
cluster1 <- tssem1(Becker94$data, Becker94$n, method="FEM", cluster=Becker94$gender)
summary(cluster1)
Running TSSEM1 Analysis of Correlation Matrix 
Running TSSEM1 Analysis of Correlation Matrix
$Females

Call:
tssem1FEM(my.df = data.cluster[[i]], n = n.cluster[[i]], cor.analysis = cor.analysis, 
    model.name = model.name, suppressWarnings = suppressWarnings)

Coefficients:
       Estimate Std.Error z value  Pr(>|z|)    
S[1,2] 0.456133  0.052537  8.6822 < 2.2e-16 ***
S[1,3] 0.338984  0.062744  5.4027 6.565e-08 ***
S[2,3] 0.170466  0.065469  2.6038   0.00922 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                    Value
Sample size                      235.0000
Chi-square of target model        42.4076
DF of target model                12.0000
p value of target model            0.0000
Chi-square of independence model 120.4236
DF of independence model          15.0000
RMSEA                              0.2327
SRMR                               0.2339
TLI                                0.6395
CFI                                0.7116
AIC                               18.4076
BIC                              -23.1074
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)

$Males

Call:
tssem1FEM(my.df = data.cluster[[i]], n = n.cluster[[i]], cor.analysis = cor.analysis, 
    model.name = model.name, suppressWarnings = suppressWarnings)

Coefficients:
       Estimate Std.Error z value  Pr(>|z|)    
S[1,2] 0.317561  0.052147  6.0897 1.131e-09 ***
S[1,3] 0.326223  0.052724  6.1874 6.116e-10 ***
S[2,3] 0.179204  0.056411  3.1767  0.001489 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Goodness-of-fit indices:
                                    Value
Sample size                      303.0000
Chi-square of target model        16.1330
DF of target model                12.0000
p value of target model            0.1852
Chi-square of independence model  82.1885
DF of independence model          15.0000
RMSEA                              0.0755
SRMR                               0.1580
TLI                                0.9231
CFI                                0.9385
AIC                               -7.8670
BIC                              -52.4318
OpenMx status: 0 ("0" and "1": considered fine; other values indicate problems)
coef(cluster1)
$Females
          x1        x2        x3
x1 1.0000000 0.4561334 0.3389843
x2 0.4561334 1.0000000 0.1704662
x3 0.3389843 0.1704662 1.0000000

$Males
          x1        x2        x3
x1 1.0000000 0.3175609 0.3262228
x2 0.3175609 1.0000000 0.1792036
x3 0.3262228 0.1792036 1.0000000

2.3.2 Stage 2 analysis

## Stage 2 analysis
cluster2 <- tssem2(cluster1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE, 
                   intervals="LB")
summary(cluster2)
 Running TSSEM2 (Fixed Effects Model) Analysis of Correlation Structure 
Running TSSEM2 (Fixed Effects Model) Analysis of Correlation Structure
$Females

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error  lbound  ubound z value Pr(>|z|)
Amatrix[1,2]  0.41027        NA 0.30512 0.51470      NA       NA
Amatrix[1,3]  0.26905        NA 0.15249 0.38586      NA       NA
Smatrix[1,1]  0.72166        NA 0.61311 0.81439      NA       NA
Smatrix[2,3]  0.17047        NA 0.04201 0.29893      NA       NA

Goodness-of-fit indices:
                                            Value
Sample size                                235.00
Chi-square of target model                   0.00
DF of target model                           0.00
p value of target model                      0.00
Number of constraints imposed on "Smatrix"   1.00
DF manually adjusted                         0.00
Chi-square of independence model           102.96
DF of independence model                     3.00
RMSEA                                        0.00
SRMR                                         0.00
TLI                                          -Inf
CFI                                          1.00
AIC                                          0.00
BIC                                          0.00
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

$Males

Call:
wls(Cov = tssem1.obj$pooledS, asyCov = tssem1.obj$acovS, n = tssem1.obj$total.n, 
    Amatrix = Amatrix, Smatrix = Smatrix, Fmatrix = Fmatrix, 
    diag.constraints = diag.constraints, cor.analysis = cor.analysis, 
    intervals.type = intervals.type, mx.algebras = mx.algebras, 
    model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error  lbound  ubound z value Pr(>|z|)
Amatrix[1,2]  0.26770        NA 0.16586 0.36951      NA       NA
Amatrix[1,3]  0.27825        NA 0.17502 0.38151      NA       NA
Smatrix[1,1]  0.82422        NA 0.73666 0.89529      NA       NA
Smatrix[2,3]  0.17920        NA 0.06854 0.28988      NA       NA

Goodness-of-fit indices:
                                             Value
Sample size                                303.000
Chi-square of target model                   0.000
DF of target model                           0.000
p value of target model                      0.000
Number of constraints imposed on "Smatrix"   1.000
DF manually adjusted                         0.000
Chi-square of independence model            66.793
DF of independence model                     3.000
RMSEA                                        0.000
SRMR                                         0.000
TLI                                           -Inf
CFI                                          1.000
AIC                                          0.000
BIC                                          0.000
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

2.4 Random-effects TSSEM

2.4.1 Stage 1 analysis

The \(I^2\) indices for the correlations between spatial and math, verbal and math, and spatial and verbal are .00, .81 and .23, respectively.

#### Random-effects model
## Stage 1 analysis: A diagonal matrix for random effects 
random1 <- tssem1(Becker94$data, Becker94$n, method="REM", RE.type="Diag")
summary(random1)
Running TSSEM1 (Random Effects Model) Analysis of Correlation Matrix

Call:
meta(y = ES, v = acovR, RE.constraints = Diag(x = paste(RE.startvalues, 
    "*Tau2_", 1:no.es, "_", 1:no.es, sep = "")), RE.lbound = RE.lbound, 
    I2 = I2, model.name = model.name)

95% confidence intervals: z statistic approximation
Coefficients:
              Estimate   Std.Error      lbound      ubound z value  Pr(>|z|)
Intercept1  3.7078e-01  3.6894e-02  2.9846e-01  4.4309e-01 10.0496 < 2.2e-16
Intercept2  4.3160e-01  7.7260e-02  2.8018e-01  5.8303e-01  5.5864 2.319e-08
Intercept3  2.0294e-01  4.6493e-02  1.1182e-01  2.9407e-01  4.3650 1.271e-05
Tau2_1_1    1.0000e-10  4.8927e-03 -9.5895e-03  9.5895e-03  0.0000    1.0000
Tau2_2_2    4.7467e-02  2.6207e-02 -3.8973e-03  9.8832e-02  1.8113    0.0701
Tau2_3_3    5.1622e-03  9.7471e-03 -1.3942e-02  2.4266e-02  0.5296    0.5964
              
Intercept1 ***
Intercept2 ***
Intercept3 ***
Tau2_1_1      
Tau2_2_2   .  
Tau2_3_3      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Q statistic on homogeneity of effect sizes: 81.65906
Degrees of freedom of the Q statistic: 27
P value of the Q statistic: 2.11158e-07
Heterogeneity indices (based on the estimated Tau2):
                             Estimate
Intercept1: I2 (Q statistic)   0.0000
Intercept2: I2 (Q statistic)   0.8052
Intercept3: I2 (Q statistic)   0.2274

Number of studies (or clusters): 10
Number of observed statistics: 30
Number of estimated parameters: 6
Degrees of freedom: 24
-2 log likelihood: -23.6443 
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)
coef(random1, select="fixed")
Intercept1 Intercept2 Intercept3 
 0.3707764  0.4316038  0.2029438
coef(random1, select="random")
    Tau2_1_1     Tau2_2_2     Tau2_3_3 
0.0000000001 0.0474673577 0.0051622023

2.4.2 Stage 2 analysis

## Stage 2 analysis
random2 <- tssem2(random1, Amatrix=A1, Smatrix=S1, diag.constraints=TRUE, 
                  intervals="LB")
summary(random2)
 Running TSSEM2 (Random Effects Model) Analysis of Correlation Structure

Call:
wls(Cov = pooledS, asyCov = asyCov, n = tssem1.obj$total.n, Amatrix = Amatrix, 
    Smatrix = Smatrix, Fmatrix = Fmatrix, diag.constraints = diag.constraints, 
    cor.analysis = cor.analysis, intervals.type = intervals.type, 
    mx.algebras = mx.algebras, model.name = model.name, suppressWarnings = suppressWarnings)

95% confidence intervals: Likelihood-based statistic
Coefficients:
             Estimate Std.Error  lbound  ubound z value Pr(>|z|)
Amatrix[1,2]  0.29535        NA 0.21440 0.37406      NA       NA
Amatrix[1,3]  0.37166        NA 0.21310 0.52956      NA       NA
Smatrix[1,1]  0.73008        NA 0.59027 0.83046      NA       NA
Smatrix[2,3]  0.20294        NA 0.11175 0.29414      NA       NA

Goodness-of-fit indices:
                                            Value
Sample size                                538.00
Chi-square of target model                   0.00
DF of target model                           0.00
p value of target model                      0.00
Number of constraints imposed on "Smatrix"   1.00
DF manually adjusted                         0.00
Chi-square of independence model           129.65
DF of independence model                     3.00
RMSEA                                        0.00
SRMR                                         0.00
TLI                                          -Inf
CFI                                          1.00
AIC                                          0.00
BIC                                          0.00
OpenMx status1: 0 ("0" and "1": considered fine; other values indicate problems)

Author: Mike W.-L. Cheung

Created: 2013-10-31 Thu 08:52

Emacs 24.3.1 (Org mode 8.2.1)

Validate