This data was transcribed from https://uva.theopenscholar.com/files/cogage/files/predictors_of_crossword_7.pdf
Hambrick, D. Z., Salthouse, T. A., & Meinz, E. J. (1999). Predictors of crossword puzzle proficiency and moderators of age–cognition relations. Journal of Experimental Psychology: General 128(2), 131–164
##study 1
cormat <- matrix(0,nrow=18, ncol=18)
corr_values <- c(.29,
.32, .74,
-.33, .12, .15,
-.48, .04, .04, .58,
-.61, -.08, -.10, .46, .68,
.26, .39, .36, .37, .30, .09,
.39, .40, .38, .36, .24, .001, .86,
.20, .29, .31, .44, .34, .12, .76, .77,
-.48, .10, .08, .51, .60, .54, .29, .25, .38,
-.35, .23, .20, .58, .65, .52, .47, .44, .51, .73,
.03, .38, .39, .40, .40, .21, .57, .58, .56, .41, .55,
-.24, .19, .25, .49, .54, .42, .45, .38, .44, .46, .56, .68,
-.03, .24, .27, .38, .42, .20, .49, .49, .54, .53, .57, .59, .49,
.04, .42, .44, .43, .42, .28, .62, .63, .56, .47, .58, .71, .61, .53,
.21, .50, .49, .43, .36, .13, .75, .76, .72, .38, .57, .69, .55, .62, .73,
.30, .60, .56, .36, .29, .07, .73, .75, .67, .32, .50, .67, .48, .57, .71, .94,
.15, .38, .35, .42, .30, .07, .65, .65, .69, .39, .55, .60, .46, .56, .60, .74, .74)
cormat[upper.tri(cormat)] <- corr_values
cormat <- cormat + t(cormat)
diag(cormat) <- 1
colnames(cormat) <- rownames(cormat) <- c("Age", "NumCWPuz", "HrWPuz", "CopyW", "LetCom", "PatCom", "AntVoc", "SynVoc", "GenInfo", "Cattell", "Shipley", "MkWds", "Fluency", "WdSwitch", "Anagram", "Puzz1", "Puzz2", "WordID")
#cormat <- cormat[-17,-17]
This model is based on the Hambrick et al. (1999) study, which examined predictors of crossword puzzle proficiency and moderators of age-cognition relations. The model includes several latent variables, each representing a different cognitive ability or experience related to crossword puzzle proficiency.
library(lavaan)
## This is lavaan 0.6-18
## lavaan is FREE software! Please report any bugs.
# Define the model
hsm.model <- 'Puzproficiency =~ Puzz1 + Puzz2 + WordID
Puzexperience =~ NumCWPuz + HrWPuz
GenKnow =~ GenInfo +AntVoc + SynVoc
Retrieval =~ Anagram+MkWds +WdSwitch + Fluency
Reasoning =~ Cattell + Shipley
PercSpeed =~ CopyW + LetCom + PatCom
'
fitHSM <- cfa(hsm.model,sample.cov=cormat,sample.nobs=202)
summary(fitHSM, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)
## lavaan 0.6-18 ended normally after 71 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 49
##
## Number of observations 202
##
## Model Test User Model:
##
## Test statistic 269.269
## Degrees of freedom 104
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 3004.143
## Degrees of freedom 136
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.942
## Tucker-Lewis Index (TLI) 0.925
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3496.677
## Loglikelihood unrestricted model (H1) -3362.042
##
## Akaike (AIC) 7091.354
## Bayesian (BIC) 7253.459
## Sample-size adjusted Bayesian (SABIC) 7098.217
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.089
## 90 Percent confidence interval - lower 0.076
## 90 Percent confidence interval - upper 0.102
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 0.869
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.077
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Puzproficiency =~
## Puzz1 1.000 0.968 0.971
## Puzz2 0.996 0.028 36.152 0.000 0.964 0.967
## WordID 0.795 0.049 16.194 0.000 0.770 0.772
## Puzexperience =~
## NumCWPuz 1.000 0.870 0.872
## HrWPuz 0.974 0.087 11.248 0.000 0.847 0.849
## GenKnow =~
## GenInfo 1.000 0.833 0.835
## AntVoc 1.100 0.064 17.127 0.000 0.916 0.918
## SynVoc 1.115 0.064 17.477 0.000 0.928 0.930
## Retrieval =~
## Anagram 1.000 0.841 0.843
## MkWds 0.991 0.068 14.472 0.000 0.834 0.836
## WdSwitch 0.831 0.074 11.184 0.000 0.699 0.701
## Fluency 0.871 0.073 11.948 0.000 0.733 0.735
## Reasoning =~
## Cattell 1.000 0.793 0.795
## Shipley 1.155 0.084 13.821 0.000 0.916 0.918
## PercSpeed =~
## CopyW 1.000 0.668 0.669
## LetCom 1.311 0.129 10.183 0.000 0.875 0.877
## PatCom 1.126 0.122 9.225 0.000 0.751 0.753
##
## Covariances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Puzproficiency ~~
## Puzexperience 0.537 0.079 6.829 0.000 0.638 0.638
## GenKnow 0.681 0.083 8.226 0.000 0.844 0.844
## Retrieval 0.688 0.084 8.222 0.000 0.845 0.845
## Reasoning 0.443 0.071 6.242 0.000 0.576 0.576
## PercSpeed 0.234 0.056 4.174 0.000 0.363 0.363
## Puzexperience ~~
## GenKnow 0.341 0.065 5.233 0.000 0.472 0.472
## Retrieval 0.370 0.068 5.423 0.000 0.506 0.506
## Reasoning 0.165 0.058 2.826 0.005 0.239 0.239
## PercSpeed 0.020 0.048 0.407 0.684 0.034 0.034
## GenKnow ~~
## Retrieval 0.527 0.073 7.231 0.000 0.753 0.753
## Reasoning 0.342 0.062 5.546 0.000 0.518 0.518
## PercSpeed 0.182 0.049 3.725 0.000 0.327 0.327
## Retrieval ~~
## Reasoning 0.507 0.073 6.958 0.000 0.759 0.759
## PercSpeed 0.340 0.060 5.674 0.000 0.606 0.606
## Reasoning ~~
## PercSpeed 0.440 0.068 6.454 0.000 0.831 0.831
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Puzz1 0.058 0.012 4.708 0.000 0.058 0.058
## .Puzz2 0.065 0.013 5.199 0.000 0.065 0.066
## .WordID 0.403 0.042 9.636 0.000 0.403 0.405
## .NumCWPuz 0.239 0.059 4.071 0.000 0.239 0.240
## .HrWPuz 0.278 0.058 4.806 0.000 0.278 0.280
## .GenInfo 0.302 0.035 8.593 0.000 0.302 0.303
## .AntVoc 0.156 0.024 6.423 0.000 0.156 0.157
## .SynVoc 0.134 0.023 5.776 0.000 0.134 0.134
## .Anagram 0.287 0.037 7.729 0.000 0.287 0.289
## .MkWds 0.300 0.038 7.873 0.000 0.300 0.301
## .WdSwitch 0.506 0.055 9.175 0.000 0.506 0.509
## .Fluency 0.458 0.051 8.980 0.000 0.458 0.460
## .Cattell 0.366 0.046 7.976 0.000 0.366 0.368
## .Shipley 0.156 0.040 3.874 0.000 0.156 0.157
## .CopyW 0.549 0.062 8.884 0.000 0.549 0.552
## .LetCom 0.229 0.045 5.131 0.000 0.229 0.230
## .PatCom 0.430 0.053 8.103 0.000 0.430 0.432
## Puzproficiency 0.937 0.099 9.427 0.000 1.000 1.000
## Puzexperience 0.756 0.110 6.871 0.000 1.000 1.000
## GenKnow 0.693 0.096 7.214 0.000 1.000 1.000
## Retrieval 0.708 0.098 7.243 0.000 1.000 1.000
## Reasoning 0.629 0.096 6.538 0.000 1.000 1.000
## PercSpeed 0.446 0.087 5.096 0.000 1.000 1.000
##
## R-Square:
## Estimate
## Puzz1 0.942
## Puzz2 0.934
## WordID 0.595
## NumCWPuz 0.760
## HrWPuz 0.720
## GenInfo 0.697
## AntVoc 0.843
## SynVoc 0.866
## Anagram 0.711
## MkWds 0.699
## WdSwitch 0.491
## Fluency 0.540
## Cattell 0.632
## Shipley 0.843
## CopyW 0.448
## LetCom 0.770
## PatCom 0.568
library(semPlot)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## The following object is masked from 'package:lavaan':
##
## cor2cov
#semPaths(fitHSM, "model","est",curvePivot = TRUE,edge.label.cex = 0.5)
#lavaan.diagram(fitHSM)
# Define the model
hsm_sem.model <- 'PuzProf =~ Puzz1 + Puzz2 + WordID
PuzExp =~ NumCWPuz + HrWPuz
GenKnow =~ GenInfo +AntVoc + SynVoc
Retrieval =~ Anagram+MkWds +WdSwitch + Fluency
Reasoning =~ Cattell + Shipley
PercSpeed =~ CopyW + LetCom + PatCom
Reasoning ~ PercSpeed
PuzProf ~ GenKnow + Retrieval + PuzExp
GenKnow ~ Age + Reasoning
Retrieval ~ Reasoning + GenKnow
PuzExp ~ Age + Reasoning
PercSpeed ~ Age
'
fitHSM2<- sem(hsm_sem.model,sample.cov=cormat,sample.nobs=202)
summary(fitHSM2, fit.measures=TRUE, standardized=TRUE, rsquare=TRUE)
## lavaan 0.6-18 ended normally after 58 iterations
##
## Estimator ML
## Optimization method NLMINB
## Number of model parameters 45
##
## Number of observations 202
##
## Model Test User Model:
##
## Test statistic 323.584
## Degrees of freedom 125
## P-value (Chi-square) 0.000
##
## Model Test Baseline Model:
##
## Test statistic 3256.496
## Degrees of freedom 153
## P-value 0.000
##
## User Model versus Baseline Model:
##
## Comparative Fit Index (CFI) 0.936
## Tucker-Lewis Index (TLI) 0.922
##
## Loglikelihood and Information Criteria:
##
## Loglikelihood user model (H0) -3397.658
## Loglikelihood unrestricted model (H1) -3235.866
##
## Akaike (AIC) 6885.316
## Bayesian (BIC) 7034.188
## Sample-size adjusted Bayesian (SABIC) 6891.619
##
## Root Mean Square Error of Approximation:
##
## RMSEA 0.089
## 90 Percent confidence interval - lower 0.077
## 90 Percent confidence interval - upper 0.101
## P-value H_0: RMSEA <= 0.050 0.000
## P-value H_0: RMSEA >= 0.080 0.889
##
## Standardized Root Mean Square Residual:
##
## SRMR 0.086
##
## Parameter Estimates:
##
## Standard errors Standard
## Information Expected
## Information saturated (h1) model Structured
##
## Latent Variables:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## PuzProf =~
## Puzz1 1.000 0.943 0.968
## Puzz2 0.998 0.028 35.149 0.000 0.941 0.966
## WordID 0.795 0.051 15.743 0.000 0.750 0.763
## PuzExp =~
## NumCWPuz 1.000 0.862 0.871
## HrWPuz 0.969 0.088 11.043 0.000 0.835 0.843
## GenKnow =~
## GenInfo 1.000 0.813 0.827
## AntVoc 1.087 0.067 16.339 0.000 0.884 0.901
## SynVoc 1.130 0.065 17.404 0.000 0.918 0.938
## Retrieval =~
## Anagram 1.000 0.825 0.834
## MkWds 1.004 0.071 14.083 0.000 0.828 0.837
## WdSwitch 0.843 0.077 10.992 0.000 0.696 0.701
## Fluency 0.888 0.075 11.798 0.000 0.733 0.739
## Reasoning =~
## Cattell 1.000 0.810 0.812
## Shipley 1.093 0.074 14.681 0.000 0.885 0.887
## PercSpeed =~
## CopyW 1.000 0.679 0.680
## LetCom 1.272 0.121 10.490 0.000 0.863 0.865
## PatCom 1.129 0.118 9.600 0.000 0.766 0.768
##
## Regressions:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## Reasoning ~
## PercSpeed 1.019 0.113 9.009 0.000 0.854 0.854
## PuzProf ~
## GenKnow 0.507 0.077 6.630 0.000 0.437 0.437
## Retrieval 0.448 0.071 6.314 0.000 0.392 0.392
## PuzExp 0.287 0.049 5.827 0.000 0.263 0.263
## GenKnow ~
## Age 0.636 0.056 11.388 0.000 0.782 0.780
## Reasoning 0.885 0.086 10.322 0.000 0.882 0.882
## Retrieval ~
## Reasoning 0.525 0.067 7.856 0.000 0.515 0.515
## GenKnow 0.502 0.065 7.733 0.000 0.494 0.494
## PuzExp ~
## Age 0.530 0.071 7.502 0.000 0.615 0.613
## Reasoning 0.563 0.094 6.003 0.000 0.529 0.529
## PercSpeed ~
## Age -0.401 0.053 -7.611 0.000 -0.592 -0.590
##
## Variances:
## Estimate Std.Err z-value P(>|z|) Std.lv Std.all
## .Puzz1 0.059 0.012 4.826 0.000 0.059 0.062
## .Puzz2 0.064 0.012 5.112 0.000 0.064 0.067
## .WordID 0.403 0.042 9.637 0.000 0.403 0.417
## .NumCWPuz 0.237 0.059 4.035 0.000 0.237 0.242
## .HrWPuz 0.284 0.058 4.904 0.000 0.284 0.289
## .GenInfo 0.306 0.035 8.766 0.000 0.306 0.317
## .AntVoc 0.181 0.025 7.372 0.000 0.181 0.189
## .SynVoc 0.116 0.021 5.652 0.000 0.116 0.121
## .Anagram 0.298 0.039 7.729 0.000 0.298 0.305
## .MkWds 0.293 0.038 7.669 0.000 0.293 0.299
## .WdSwitch 0.500 0.055 9.087 0.000 0.500 0.508
## .Fluency 0.446 0.050 8.848 0.000 0.446 0.454
## .Cattell 0.339 0.042 8.154 0.000 0.339 0.341
## .Shipley 0.211 0.033 6.373 0.000 0.211 0.213
## .CopyW 0.534 0.060 8.897 0.000 0.534 0.537
## .LetCom 0.250 0.042 5.957 0.000 0.250 0.251
## .PatCom 0.408 0.050 8.084 0.000 0.408 0.410
## .PuzProf 0.136 0.021 6.468 0.000 0.153 0.153
## .PuzExp 0.499 0.080 6.255 0.000 0.671 0.671
## .GenKnow 0.203 0.037 5.434 0.000 0.307 0.307
## .Retrieval 0.164 0.033 4.951 0.000 0.241 0.241
## .Reasoning 0.178 0.039 4.584 0.000 0.271 0.271
## .PercSpeed 0.300 0.059 5.108 0.000 0.652 0.652
##
## R-Square:
## Estimate
## Puzz1 0.938
## Puzz2 0.933
## WordID 0.583
## NumCWPuz 0.758
## HrWPuz 0.711
## GenInfo 0.683
## AntVoc 0.811
## SynVoc 0.879
## Anagram 0.695
## MkWds 0.701
## WdSwitch 0.492
## Fluency 0.546
## Cattell 0.659
## Shipley 0.787
## CopyW 0.463
## LetCom 0.749
## PatCom 0.590
## PuzProf 0.847
## PuzExp 0.329
## GenKnow 0.693
## Retrieval 0.759
## Reasoning 0.729
## PercSpeed 0.348
semPaths(fitHSM2,"par", weighted = TRUE, nCharNodes = 7, layout="spring",
sizeMan = 8, sizeMan2 = 6)
This isn’t the exact same model values that Hambrick et al. derived, pro