International general factor of personality? yes, but...
I merged the dataset from Schmitt et al (2007)'s paper about OCEAN traits in 56 countries with the rest of the megadataset. Then i extracted the first factor of the OCEAN means and SDs. These two are nearly uncorrelated (.07). As for factor strength, they are not too bad:
> DF.OCEAN.mean.omega
Omega
Call: omega(m = DF.OCEAN.mean)
Alpha: 0.73
G.6: 0.74
Omega Hierarchical: 0.54
Omega H asymptotic: 0.64
Omega Total 0.84
Schmid Leiman Factor loadings greater than 0.2
g F1* F2* F3* h2 u2 p2
ExtraversionMeanSchmittEtAl2007 0.44 0.66 0.64 0.36 0.30
AgreeablenessMeanSchmittEtAl2007 0.58 0.56 0.66 0.34 0.51
ConscientiousnessMeanSchmittEtAl2007 0.62 0.52 0.66 0.34 0.58
NeuroticismMeanSchmittEtAl2007 -0.66 0.28 0.36 -0.36 0.76 0.24 0.56
OpennessMeanSchmittEtAl2007 0.23 0.21 0.51 0.38 0.62 0.14
With eigenvalues of:
g F1* F2* F3*
1.40 0.69 0.62 0.40
general/max 2.04 max/min = 1.7
mean percent general = 0.42 with sd = 0.19 and cv of 0.46
Explained Common Variance of the general factor = 0.45
and
> DF.OCEAN.SD.omega
Omega
Call: omega(m = DF.OCEAN.SD)
Alpha: 0.79
G.6: 0.78
Omega Hierarchical: 0.72
Omega H asymptotic: 0.86
Omega Total 0.84
Schmid Leiman Factor loadings greater than 0.2
g F1* F2* F3* h2 u2 p2
ExtraversionSDSchmittEtAl2007 0.80 0.64 0.36 0.99
AgreeablenessSDSchmittEtAl2007 0.57 0.47 0.55 0.45 0.59
ConscientiousnessSDSchmittEtAl2007 0.57 0.35 0.48 0.52 0.68
NeuroticismSDSchmittEtAl2007 0.78 0.52 0.87 0.13 0.69
OpennessSDSchmittEtAl2007 0.43 0.24 0.25 0.75 0.74
With eigenvalues of:
g F1* F2* F3*
2.08 0.41 0.31 0.00
general/max 5.09 max/min = 136.11
mean percent general = 0.74 with sd = 0.15 and cv of 0.2
Explained Common Variance of the general factor = 0.74
Compare with values in Table 5 in my just published paper. GFP-mean is clearly weaker than g factor at individual level, GFP-SD is about the same. Dataset Var% MR Var% MR SL Omega h. Omega h. a. ECV R2 NO Complete cases 0.68 0.65 0.87 0.91 0.78 0.98 NO Impute 1 0.66 0.62 0.86 0.9 0.74 0.96 NO Impute 2 0.64 0.6 0.85 0.89 0.75 0.95 NO Impute 3 0.63 0.59 0.82 0.87 0.73 0.99 DK complete cases 0.57 0.51 0.83 0.85 0.68 0.99 DK impute 4 0.55 0.51 0.86 0.88 0.73 0.99 Int. S. Factor 0.43 0.35 0.76 0.77 0.51 0.81 Cognitive data 0.33 0.74 0.79 0.57 0.78 Personality data 0.16 0.37 0.48 0.34 0.41 Then i correlated these with national IQ, S factor and local S factors in Norway and Denmark.
> round(cor(DF.OCEAN.general.scores,use="pairwise.complete.obs"),2)
GFP.mean GFP.SD S.in.Norway S.in.Denmark Islam S.Int IQ
GFP.mean 1.00 0.07 0.09 -0.25 0.17 -0.21 -0.58
GFP.SD 0.07 1.00 0.39 0.26 -0.14 0.36 0.24
S.in.Norway 0.09 0.39 1.00 0.78 -0.72 0.73 0.60
S.in.Denmark -0.25 0.26 0.78 1.00 -0.71 0.54 0.54
Islam 0.17 -0.14 -0.72 -0.71 1.00 -0.33 -0.27
S.Int -0.21 0.36 0.73 0.54 -0.33 1.00 0.86
IQ -0.58 0.24 0.60 0.54 -0.27 0.86 1.00
So strangely, the correlation of GFP-mean x national IQ is very negative. It correlates weakly with S factors. Let's try partialing out national IQ:
> DF.OCEAN.general.scores.no.IQ = partial.r(DF.OCEAN.general.scores,c(1:6),7)
> DF.OCEAN.general.scores.no.IQ
partial correlations
GFP.mean GFP.SD S.in.Norway S.in.Denmark Islam S.Int
GFP.mean 1.00 0.26 0.68 0.09 0.02 0.72
GFP.SD 0.26 1.00 0.31 0.16 -0.08 0.32
S.in.Norway 0.68 0.31 1.00 0.67 -0.73 0.53
S.in.Denmark 0.09 0.16 0.67 1.00 -0.70 0.19
Islam 0.02 -0.08 -0.73 -0.70 1.00 -0.21
S.Int 0.72 0.32 0.53 0.19 -0.21 1.00
Even more strange. GFP-mean strongly correlates with 2 S factors, but not the one in Denmark. The Danish data are very good (25 variables) and so are the international data (42-54 variables). And all the S factors correlate strongly before partialing (.78, .73, .54) but mixed after removing IQ (.67, .53, .19). Again Denmark is odd. For GFP-SD, it is similar, but weaker (before: .39, .26, .36; after: .31, .16, .32).
What to make of this? So i emailed some colleagues:
Dear [NAMES]
Do you know if someone have looked at an international general factor of personality? Because I did it just now using a dataset of OCEAN trait scores (big five) from Schmitt et al 2007. There is indeed an international GFP in the data. It correlates negatively with national IQs (-.58). Strangely, partialing out national IQs, it correlates highly with general socioeconomic factors in Norway (.68) and internationally (.72), but not in Denmark (.09). Strange? Thoughts? I can send you the data+code if you like.
Regards, Emil
One of them had insider info:
Emil, There is a paper about to appear in Intelligence in which an international GFP has been computed and analyzed.
Best,
[NAME].
So i publish this here quickly so i establish priority and independence.
What about OCEAN traits themselves?
(sorry, tables apparently not easy to make smaller)
All correlations:
E mean E SD A mean A SD C mean C SD N mean N SD O mean O SD Mean SD S.NO S.DK Islam Int.S IQ E mean 1 0.14 0.2 0.22 0.25 0.23 -0.49 0.17 0.27 0.09 0.23 0.06 -0.19 -0.02 0.09 -0.02 E sd 0.14 1 -0.08 0.47 -0.07 0.48 0.13 0.66 0.3 0.34 0.81 0.45 0.35 -0.35 0.53 0.39 A mean 0.2 -0.08 1 0.15 0.65 0.21 -0.48 0.21 0.26 -0.13 0.11 0.08 -0.26 0.26 -0.25 -0.53 A SD 0.22 0.47 0.15 1 0.23 0.43 0 0.45 0.22 0.35 0.71 0.18 0.23 -0.18 0.12 -0.04 C mean 0.25 -0.07 0.65 0.23 1 0.1 -0.57 0.07 0.2 -0.03 0.07 0.04 -0.19 0.14 -0.19 -0.6 C SD 0.23 0.48 0.21 0.43 0.1 1 0.11 0.62 0.41 0.25 0.78 0.34 -0.03 0.04 0.19 0.04 N mean -0.49 0.13 -0.48 0 -0.57 0.11 1 0.22 -0.09 0.25 0.19 -0.1 0.13 -0.06 0.12 0.38 N SD 0.17 0.66 0.21 0.45 0.07 0.62 0.22 1 0.41 0.28 0.83 0.23 0.19 0 0.24 0.18 O mean 0.27 0.3 0.26 0.22 0.2 0.41 -0.09 0.41 1 0.07 0.4 -0.01 -0.07 0.04 -0.02 -0.06 O sd 0.09 0.34 -0.13 0.35 -0.03 0.25 0.25 0.28 0.07 1 0.56 0.22 0.14 -0.07 0.25 0.37 Mean SD 0.23 0.81 0.11 0.71 0.07 0.78 0.19 0.83 0.4 0.56 1 0.41 0.25 -0.15 0.36 0.25 S.factor.in.Norway 0.06 0.45 0.08 0.18 0.04 0.34 -0.1 0.23 -0.01 0.22 0.41 1 0.78 -0.72 0.73 0.6 S.factor.in.Denmark -0.19 0.35 -0.26 0.23 -0.19 -0.03 0.13 0.19 -0.07 0.14 0.25 0.78 1 -0.71 0.54 0.54 IslamPewResearch2010 -0.02 -0.35 0.26 -0.18 0.14 0.04 -0.06 0 0.04 -0.07 -0.15 -0.72 -0.71 1 -0.33 -0.27 International.S.Factor 0.09 0.53 -0.25 0.12 -0.19 0.19 0.12 0.24 -0.02 0.25 0.36 0.73 0.54 -0.33 1 0.86 LV2012estimatedIQ -0.02 0.39 -0.53 -0.04 -0.6 0.04 0.38 0.18 -0.06 0.37 0.25 0.6 0.54 -0.27 0.86 1
With IQ partialed out:
E mean E sd A mean A SD C mean C SD N mean N SD O mean O SD Mean SD S.NO S.DK Islam Int.S E mean 1 0.17 0.22 0.22 0.3 0.23 -0.52 0.18 0.27 0.1 0.24 0.09 -0.21 -0.02 0.21 E sd 0.17 1 0.16 0.53 0.22 0.51 -0.02 0.65 0.35 0.23 0.8 0.29 0.18 -0.28 0.42 A mean 0.22 0.16 1 0.15 0.49 0.28 -0.36 0.36 0.27 0.07 0.29 0.58 0.03 0.15 0.48 A SD 0.22 0.53 0.15 1 0.25 0.43 0.02 0.47 0.21 0.4 0.74 0.26 0.3 -0.2 0.3 C mean 0.3 0.22 0.49 0.25 1 0.15 -0.46 0.23 0.21 0.25 0.29 0.63 0.2 -0.02 0.82 C SD 0.23 0.51 0.28 0.43 0.15 1 0.1 0.62 0.41 0.26 0.79 0.39 -0.05 0.06 0.31 N mean -0.52 -0.02 -0.36 0.02 -0.46 0.1 1 0.17 -0.07 0.13 0.11 -0.45 -0.1 0.05 -0.44 N SD 0.18 0.65 0.36 0.47 0.23 0.62 0.17 1 0.43 0.23 0.83 0.16 0.11 0.05 0.18 O mean 0.27 0.35 0.27 0.21 0.21 0.41 -0.07 0.43 1 0.1 0.42 0.03 -0.04 0.03 0.06 O sd 0.1 0.23 0.07 0.4 0.25 0.26 0.13 0.23 0.1 1 0.52 0.01 -0.07 0.03 -0.14 Mean SD 0.24 0.8 0.29 0.74 0.29 0.79 0.11 0.83 0.42 0.52 1 0.33 0.15 -0.09 0.3 S.factor.in.Norway 0.09 0.29 0.58 0.26 0.63 0.39 -0.45 0.16 0.03 0.01 0.33 1 0.67 -0.73 0.53 S.factor.in.Denmark -0.21 0.18 0.03 0.3 0.2 -0.05 -0.1 0.11 -0.04 -0.07 0.15 0.67 1 -0.7 0.19 IslamPewResearch2010 -0.02 -0.28 0.15 -0.2 -0.02 0.06 0.05 0.05 0.03 0.03 -0.09 -0.73 -0.7 1 -0.21 International.S.Factor 0.21 0.42 0.48 0.3 0.82 0.31 -0.44 0.18 0.06 -0.14 0.3 0.53 0.19 -0.21 1
R code (load in the megadataset as DF.mega3 first):
DF.interest = cbind(DF.mega3[2:12],
DF.mega3[14],
DF.mega3[40],
DF.mega3[42],
DF.mega3[64],
DF.mega3[76])
DF.interest.cor = rcorr(as.matrix(DF.interest))
round(DF.interest.cor$r,2)
write.csv(round(DF.interest.cor$r,2),file="OCEANCors.csv")
#remove IQ
DF.interest.cor.without.IQ = partial.r(DF.interest, c(1:15),16)
write.csv(round(DF.interest.cor.without.IQ,2), file="OCEANCors_no_g.csv")
DF.OCEAN.full = cbind(DF.mega3[2:12])
DF.OCEAN.full.omega = omega(DF.OCEAN.full)
DF.OCEAN.full.mr = fa(DF.OCEAN.full)
DF.OCEAN.mean = cbind(DF.mega3[c(2,4,6,8,10)])
DF.OCEAN.mean.omega = omega(DF.OCEAN.mean)
DF.OCEAN.mean.mr = fa(DF.OCEAN.mean)
DF.OCEAN.SD = cbind(DF.mega3[c(3,5,7,9,11)])
DF.OCEAN.SD.omega = omega(DF.OCEAN.SD)
DF.OCEAN.SD.mr = fa(DF.OCEAN.SD)
DF.OCEAN.general.scores = cbind(DF.OCEAN.mean.mr$scores,DF.OCEAN.SD.mr$scores,
DF.mega3[14],DF.mega3[40],DF.mega3[42],DF.mega3[64],DF.mega3[76])
colnames(DF.OCEAN.general.scores) = c("GFP.mean","GFP.SD","S.in.Norway","S.in.Denmark","Islam","S.Int","IQ")
round(cor(DF.OCEAN.general.scores,use="pairwise.complete.obs"),2)
DF.OCEAN.general.scores.no.IQ = partial.r(DF.OCEAN.general.scores,c(1:6),7)