Introduction

This report simulates the major analyses conducted in the study ‘Reporting Structural Equation Modeling and Confirmatory Factor Analysis Results: A Review’ by Schreiber et al. (2006) in The Journal of Educational Review. In the study, a theoretical model hypothesizing the following effects were tested:

The study’s overall model was validated with a non-normed fit index of .94, a comparative fit index of .9,7 and a root mean square error of approximation of .06 (Schreiber et al., 2006). The model accounted for 55% of the variance in academic achievement (Schreiber et al., 2006). Gender was not found to have significant direct or indirect effects on sources of self-efficacy or self-efficacy; however learning disability status was found to have significant direct effects on sources of self-efficacy (.57 standardized, p<.01), (Schreiber et al., 2006). This report provides the data, analytic, and visualization structures for which real data can be fit to, to facilitate replication of the study and further analyses/studies. The analyses and graphics in this report can also be applied to current studies using similar data structures and can inform prospective studies that wish to study the relationships between variables of similar structure or to use similar methods. The simulated data structure, R code, and summary outputs are provided and are presented through R Markdown/HTML formating .

Data Setup

Data for the following variables was simulated to create the data structure a structural equation model would be fit on. The simulated values do not represent real values or those used in the study and are solely used to demonstrate the data structure and analytic methods.

set.seed(1)
data <- data.frame(matrix(ncol=0,nrow=278))
data$Gender <- sample(c(0:1),278, replace=TRUE)
data$LD <- sample(c(0:1),278, replace=TRUE)
data$Past <- rnorm(278,0,1)
data$Vica <- rnorm(278,0,1)
data$Pers <- rnorm(278,0,1)
data$Emot <- rnorm(278,0,1)
data$SELS1 <- rnorm(278,0,1)
data$SELS2 <- rnorm(278,0,1)
data$Math <- rnorm(278,0,1)
data$English <- rnorm(278,0,1)
head(data,5)
##   Gender LD       Past       Vica       Pers       Emot       SELS1
## 1      0  0 -1.3162452 -2.3317121  0.2054208  0.3349801 -1.24880342
## 2      0  1  0.9198037  0.8122454  1.1654620  0.5453878 -0.43000934
## 3      1  0  0.3981302 -0.5013107  2.2363228 -1.4029059  0.09329944
## 4      1  1 -0.4075286 -0.5108866  0.3022651  0.6770539  0.83304109
## 5      0  1  1.3242586 -1.2153640 -1.0425066 -0.7898004 -0.08493248
##        SELS2        Math     English
## 1  0.7907100 -1.45966581  0.30801312
## 2  0.7146578  0.04577322 -0.41850169
## 3 -0.5651535  0.45245611 -0.03764293
## 4  1.4180143  0.05756587  1.18729857
## 5 -1.1457568 -0.63869385 -0.10565769

Correlation Plot of All Observed Variables

Structural Equation Model

Model Specification and Summary

The following code uses the OpenMx open source package to create the structural model the previously made correlation matrix will be fit on, estimating the path parameters/coefficients of the effects outlined in the introduction. All variances, the path from ‘sources of self-efficacy’ to ‘social persuasion’, the path from ‘self-efficacy’ to ‘self efficacy for organizing school related tasks’, and the path from ‘academic achievement’ to ‘english scores’ were fixed to 1 as done in the original study (Hampton & Mason, 2003).

library(sem)
library(OpenMx)
observed <- names(data)
latents <- c("Sources", "Efficacy", "Achievement")

sem <- mxModel("SEM Model", type="RAM", manifestVars=observed,latentVars=latents, 
  mxPath(from="Sources", to = c("Past","Vica","Pers","Emot"),free = c(T,T,F,T), values=c(1,1,1,1)), 
  mxPath(from="Efficacy", to=c("SELS1", "SELS2"), free = c(T,F), values=c(1,1)),
  mxPath(from="Achievement", to=c("Math","English"), free = c(T,F), values=c(1,1)),
  mxPath(from="Sources", to="Efficacy"), mxPath(from="Efficacy", to="Achievement"),
  mxPath(from="LD", to="Sources"),mxPath(from="LD", to="Efficacy"),
  mxPath(from="Gender", to="Sources"), mxPath(from="Gender", to="Efficacy"),
  mxPath(from=observed,arrows=2, free=c(F,F,F,F,F,F,F,F,F,F),values=c(1,1,1,1,1,1,1,1,1,1)),
  mxPath(from=latents, arrows=2,free=c(F,F,F),values=c(1,1,1)),
  mxData(cov(data),type="cov",numObs=278)
)
results <- mxRun(sem)
sum <- summary(results)

Graphic

The graphic was created by importing the OpenMx model into \(\Omega\)nyx, a Java based graphical user interface for structural equation models and adjusting it within the interface.

#library(onyxR)
#onyx(results)

Table

paths <- c("Sources of Self-Effiacy -> Past Performance","Sources of Self-Effiacy -> Vicarious Learning","Sources of Self-Effiacy -> Emotional Arousal","Self-Efficacy-> SE for Tasks in Classroom", "Academic Achievement -> Math Scores","Gender -> Sources of Self-Efficacy", "Learning Disability Status -> Sources of Self Efficacy", "Gender -> Self-Efficacy", "Learning Disability Status -> Self-Efficacy", "Sources of Self-Efficacy -> Self-Efficacy", "Self-Efficacy -> Academic Achievement")
cols <- c("Path","Standard Coefficient", "Standard Error")
table <- data.frame(matrix(nrow=length(paths),ncol=3))
colnames(table)=cols
table[,1] <- paths
table[,2] <- sum$parameters$Estimate[c(5:7,9,11,1,3,2,4,8,10)]
table[,3] <- sum$parameters$Std.Error[c(5:7,9,11,1,3,2,4,8,10)]

library(knitr)
library(kableExtra)
kable(table,"html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
  add_footnote("Non-Normed Fit Index = 51.28; Comparative Fit Index = 50.17; Root Mean Square Error of Approximation = .196; Chi-Square= 513.25; Degrees of Freedom = 44")
Path Standard Coefficient Standard Error
Sources of Self-Effiacy -> Past Performance 0.0719167 0.1127162
Sources of Self-Effiacy -> Vicarious Learning 0.3954337 0.1097992
Sources of Self-Effiacy -> Emotional Arousal -0.1242286 0.1083550
Self-Efficacy-> SE for Tasks in Classroom 0.0414687 0.1106001
Academic Achievement -> Math Scores -0.0875156 0.1467679
Gender -> Sources of Self-Efficacy -0.2202620 0.1647034
Learning Disability Status -> Sources of Self Efficacy -0.0458617 0.1647867
Gender -> Self-Efficacy -0.0380778 0.1740460
Learning Disability Status -> Self-Efficacy -0.0672619 0.1713731
Sources of Self-Efficacy -> Self-Efficacy -0.0005806 0.1228947
Self-Efficacy -> Academic Achievement 0.0121147 0.1132147
a Non-Normed Fit Index = 51.28; Comparative Fit Index = 50.17; Root Mean Square Error of Approximation = .196; Chi-Square= 513.25; Degrees of Freedom = 44

References

Hampton, N. Z., & Mason, E. (2003). Learning Disabilites, Gender, Sources of Efficacy, Self-Efficacy Beliefs, and Academic Achievement in High School Students. Journal of School Psychology, 41:101-112.

Michael C. Neale, Michael D. Hunter, Joshua N. Pritikin, Mahsa Zahery, Timothy R. Brick Robert M. Kirkpatrick, Ryne Estabrook, Timothy C. Bates, Hermine H. Maes, Steven M. Boker. (2016). OpenMx 2.0: Extended structural equation and statistical modeling. Psychometrika, 81(2), 535-549.doi:10.1007/s11336-014-9435-8

Pritikin, J. N., Hunter, M. D., & Boker, S. M. (2015). Modular open-source software for Item Factor Analysis. Educational and Psychological Measurement, 75(3), 458-474

von Oertzen, T., Brandmaier, A.M., Tsang, S. (in press). Structural Equation Modeling with \(\Omega\)nyx. Structural Equation Modeling: A Multidisciplinary Journal. doi:10.1080/10705511.2014.935842