The DF.complete.Z object has all the test data and everything else. The unit.mean variable is the unweighted mean of all 7 subtests (standardized). I divided it into three groups, low, middle, and high scoring based on the 33th and 67th centiles.
#factor strength and mean ability level
quantile(unlist(DF.complete.Z["unit.mean"]), c(1/3, 2/3)) #find quantiles
#three groups
DF.lower = DF.complete.Z[DF.complete.Z["unit.mean"] < -0.2754322,]
DF.upper = DF.complete.Z[DF.complete.Z["unit.mean"] > 0.2303728,]
DF.middle = DF.complete.Z[DF.complete.Z["unit.mean"] < 0.2303728 & DF.complete.Z["unit.mean"] > -0.2754322,]
#schmid leiman
DF.lower.omega = omega(DF.lower[1:7])
DF.upper.omega = omega(DF.upper[1:7])
DF.middle.omega = omega(DF.middle[1:7])
#normal
DF.lower.mr = fa(DF.lower[1:7])
DF.upper.mr = fa(DF.upper[1:7])
DF.middle.mr = fa(DF.middle[1:7])
The results are puzzling. Using e.g. hierarchical omega as the measure of factor strength, the results are: low: 0.12; upper: 0.43; middle: 0.49. So the factor is much weaker in the lower scoring group.
Correlation matrices look very odd:
#cortrices
round(cor(DF.lower[1:7]),2)
round(cor(DF.upper[1:7]),2)
round(cor(DF.middle[1:7]),2)
round(cor(DF.complete.Z[1:7]),2)
> round(cor(DF.lower[1:7]),2)
ravenscore lretot nsetot voctot hfitot vantot aritot
ravenscore 1.00 0.06 0.01 -0.22 0.20 -0.12 0.08
lretot 0.06 1.00 0.01 -0.13 -0.02 0.09 0.24
nsetot 0.01 0.01 1.00 -0.30 0.13 0.03 0.00
voctot -0.22 -0.13 -0.30 1.00 -0.10 0.06 0.01
hfitot 0.20 -0.02 0.13 -0.10 1.00 0.00 0.07
vantot -0.12 0.09 0.03 0.06 0.00 1.00 -0.08
aritot 0.08 0.24 0.00 0.01 0.07 -0.08 1.00
> round(cor(DF.upper[1:7]),2)
ravenscore lretot nsetot voctot hfitot vantot aritot
ravenscore 1.00 0.01 0.04 -0.14 0.13 -0.01 -0.07
lretot 0.01 1.00 0.19 0.11 0.10 0.20 0.35
nsetot 0.04 0.19 1.00 0.11 0.03 0.06 0.41
voctot -0.14 0.11 0.11 1.00 -0.13 0.20 0.18
hfitot 0.13 0.10 0.03 -0.13 1.00 0.20 0.02
vantot -0.01 0.20 0.06 0.20 0.20 1.00 0.12
aritot -0.07 0.35 0.41 0.18 0.02 0.12 1.00
> round(cor(DF.middle[1:7]),2)
ravenscore lretot nsetot voctot hfitot vantot aritot
ravenscore 1.00 -0.03 -0.29 -0.16 -0.12 0.12 -0.32
lretot -0.03 1.00 -0.10 -0.01 -0.17 0.04 -0.27
nsetot -0.29 -0.10 1.00 -0.24 -0.05 -0.09 0.31
voctot -0.16 -0.01 -0.24 1.00 -0.32 0.06 -0.15
hfitot -0.12 -0.17 -0.05 -0.32 1.00 -0.16 -0.07
vantot 0.12 0.04 -0.09 0.06 -0.16 1.00 -0.34
aritot -0.32 -0.27 0.31 -0.15 -0.07 -0.34 1.00
> round(cor(DF.complete.Z[1:7]),2)
ravenscore lretot nsetot voctot hfitot vantot aritot
ravenscore 1.00 0.34 0.27 0.09 0.37 0.34 0.25
lretot 0.34 1.00 0.35 0.24 0.32 0.46 0.45
nsetot 0.27 0.35 1.00 0.10 0.34 0.36 0.47
voctot 0.09 0.24 0.10 1.00 0.09 0.33 0.26
hfitot 0.37 0.32 0.34 0.09 1.00 0.36 0.32
vantot 0.34 0.46 0.36 0.33 0.36 1.00 0.32
aritot 0.25 0.45 0.47 0.26 0.32 0.32 1.00
So apparently that way of dividing the groups up heavily damages the structure of the data. Why?