Nothing
## ---- message=FALSE, warning=FALSE--------------------------------------------
# Load lavaan and SEMsens packages
require(lavaan)
require(SEMsens)
set.seed(1)
## -----------------------------------------------------------------------------
smith10.use <- data(smith19.use, package = "SEMsens")
#Indicate the ordinal variables and then factorize these variables
factornames <- c("P2BEPARN", "P2CHDOES","P2HRDWRM","P2FLTRAP","P2FEELAN","P2CHHARD",
"P2MOREWK", "P2HITCHO","P2HITAPO","P2HITPRV","P2HITWAR","P2ATTENB",
"P2ATTENP", "P2PARADV","P2PARGRP","P2ATTENS","P2VOLUNT","P2FUNDRS",
"P2TVRULE", "P2TVRUL3","P2TVRUL2","P1TELLST","P1SINGSO","P1HELPAR",
"P1CHORES", "P1GAMES","P1NATURE","P1BUILD","P1SPORT","P2LIBRAR",
"P2CONCRT", "P2MUSEUM","P2ZOO")
## -----------------------------------------------------------------------------
#A model mimicked from the original model in Smith-Adcock et al. (2019).
model1 <- "
# regressions
C2RSCALE~T2LEARN+T2EXTERN+T2INTERN+T2CONTRO+T2INTERP+f1+f2+f3+f4+f5+f6
T2LEARN~f1 +f2 +f3 +f4 +f5 +f6
T2EXTERN~f1 +f2 +f3 +f4 +f5 +f6
T2INTERN~f1 +f2 +f3 +f4 +f5 +f6
T2CONTRO~f1 +f2 +f3 +f4 +f5 +f6
T2INTERP~f1 +f2 +f3 +f4 +f5 +f6
# latent variables
f1=~P2BEPARN+P2CHDOES+P2HRDWRM+P2FLTRAP+P2FEELAN+P2CHHARD+P2MOREWK
f2=~P2HITCHO+P2HITAPO+P2HITPRV+P2HITWAR
f3=~P2ATTENB+P2ATTENP+P2PARADV+P2PARGRP+P2ATTENS+P2VOLUNT+P2FUNDRS
f4=~P2TVRULE+P2TVRUL3+P2TVRUL2
f5=~P1TELLST+P1SINGSO+P1HELPAR+P1CHORES+P1GAMES+P1NATURE+P1BUILD+P1SPORT
f6=~P2LIBRAR+P2CONCRT+P2MUSEUM+P2ZOO
# residual correlations
T2LEARN ~~ T2EXTERN+T2INTERN+T2CONTRO+T2INTERP
T2EXTERN ~~ T2INTERN+T2CONTRO+T2INTERP
T2INTERN ~~ T2CONTRO+T2INTERP
T2CONTRO ~~ T2INTERP
f1 ~~ f2+f3+f4+f5+f6
f2 ~~ f3+f4+f5+f6
f3 ~~ f4+f5+f6
f4 ~~ f5+f6
f5 ~~ f6
"
#The sensitivity model
#This sensitivity model used 6 phantom variables for a quicker result
sens.model1 <- '
# regressions
C2RSCALE~T2LEARN+T2EXTERN+T2INTERN+T2CONTRO+T2INTERP+f1+f2+f3+f4+f5+f6
T2LEARN~f1 +f2 +f3 +f4 +f5 +f6
T2EXTERN~f1 +f2 +f3 +f4 +f5 +f6
T2INTERN~f1 +f2 +f3 +f4 +f5 +f6
T2CONTRO~f1 +f2 +f3 +f4 +f5 +f6
T2INTERP~f1 +f2 +f3 +f4 +f5 +f6
# latent variable definitions
f1=~P2BEPARN+P2CHDOES+P2HRDWRM+P2FLTRAP+P2FEELAN+P2CHHARD+P2MOREWK
f2=~P2HITCHO+P2HITAPO+P2HITPRV+P2HITWAR
f3=~P2ATTENB+P2ATTENP+P2PARADV+P2PARGRP+P2ATTENS+P2VOLUNT+P2FUNDRS
f4=~P2TVRULE+P2TVRUL3+P2TVRUL2
f5=~P1TELLST+P1SINGSO+P1HELPAR+P1CHORES+P1GAMES+P1NATURE+P1BUILD+P1SPORT
f6=~P2LIBRAR+P2CONCRT+P2MUSEUM+P2ZOO
# residual correlations
T2LEARN ~~ T2EXTERN+T2INTERN+T2CONTRO+T2INTERP
T2EXTERN ~~ T2INTERN+T2CONTRO+T2INTERP
T2INTERN ~~ T2CONTRO+T2INTERP
T2CONTRO ~~ T2INTERP
f1 ~~ f2+f3+f4+f5+f6
f2 ~~ f3+f4+f5+f6
f3 ~~ f4+f5+f6
f4 ~~ f5+f6
f5 ~~ f6
# phantom variables
T2LEARN ~ phantom1*phantom
T2EXTERN ~ phantom2*phantom
C2RSCALE ~ phantom3*phantom
f3 ~ phantom4*phantom
f4 ~ phantom5*phantom
f5 ~ phantom6*phantom
phantom =~ 0 # added for mean of zero
phantom ~~ 1*phantom # added for unit variance
'
## -----------------------------------------------------------------------------
old.model = model1
old.out = sem(model = model1, data = smith19.use, estimator="WLSMV",ordered = factornames)
summary(old.out, standardized=TRUE)
old.model.par <- standardizedSolution(old.out,type = "std.all")
old.model.par
#The lines that we are interested are line 1 to line 11
## ----eval=FALSE, message=FALSE, warning=FALSE---------------------------------
# my.sa1 <- sa.aco(data= smith19.use,
# model = model1,
# sens.model = sens.model1,
# k = 10,
# opt.fun = quote(1/abs(new.par$pvalue[9]-0.05)),
# rate.of.conv = .05,
# paths = c(1:11),
# seed=119,
# max.iter = 100,
# estimator="WLSMV",
# ordered = factornames)
# #15 out of 175 evaluations converged.
#
## ---- eval=FALSE, echo=T------------------------------------------------------
# #error message
# # Error in sa.aco(data= smith19.use,
# # model = model1,
# # sens.model = sens.model1,
# # k = 10,rate.of.conv = .1, :
# #
# # Sensitivity analysis models do not reach the specified convergence rate.
# # Please set a lower convergence rate threshold (i.e., rate. of. conv) or
# # reduce model complexicity)
#
## ----eval=FALSE---------------------------------------------------------------
# my.sa.table = sens.tables(my.sa1) # get results
## ----echo=FALSE---------------------------------------------------------------
load("smith19_6_my.sa.table.rdata")
## -----------------------------------------------------------------------------
my.sa.table$sens.summary
my.sa.table$phan.paths
my.sa.table$phan.min
my.sa.table$phan.max
my.sa.table$p.paths
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.