Packages
options(digits = 2)
library(pacman)
p_load(psych, car, VIM, kirkegaard, weights)
Data
#Load data
data = read.csv("Lynn_table.csv", skip=2, row.names=1)
#Data groups
S.new.data = data[,c(11,13,17)]
S.old.data = data[,c(10,12,15:16)]
S.all.data = data[,c(10:13,15:17)]
Cog.data = subset(data, select=c("Reading","Math", "Science"))
Missing data
silence(matrixplot(data, labels=strtrim(colnames(data),8))) #how does missing data look like?

silence({i.data = irmi(data, noise.factor=0)}) #create imputed dataset
#Factor analysis
S.new.fa = fa(S.new.data)
S.old.fa = fa(S.old.data)
S.all.fa = fa(S.all.data)
G.fa = fa(Cog.data)
Loadings
fa_plot_loadings(S.all.fa)

ggsave("loadings1.png")
## Saving 7 x 5 in image
Scores
#DF with latent results
data["G"] = as.numeric(G.fa$scores)
data["S.new"] = as.numeric(S.new.fa$scores)
data["S.old"] = as.numeric(S.old.fa$scores)
data["S.all"] = as.numeric(S.all.fa$scores)
#Cors
(cors1 = wtd.cors(data) %>% round(2))
## Reading Math Science Mean.education IQ
## Reading 1.00 0.99 0.99 1.00 0.99
## Math 0.99 1.00 0.99 1.00 0.99
## Science 0.99 0.99 1.00 1.00 0.99
## Mean.education 1.00 1.00 1.00 1.00 0.99
## IQ 0.99 0.99 0.99 0.99 1.00
## Stature.1855 0.92 0.94 0.93 0.93 0.92
## Stature1910 0.91 0.90 0.88 0.89 0.90
## Stature1927 0.93 0.92 0.91 0.92 0.93
## Stature1980 0.94 0.95 0.94 0.94 0.93
## Per.cap.income1970 0.82 0.80 0.81 0.81 0.84
## Per.cap.income2003 0.92 0.92 0.92 0.92 0.94
## Infant.mortality1955_7 -0.84 -0.83 -0.86 -0.85 -0.84
## Infant.mortality1999_02 -0.87 -0.86 -0.88 -0.87 -0.86
## Literacy1880 0.86 0.83 0.82 0.84 0.86
## Years.educ1951 0.92 0.90 0.89 0.90 0.93
## Years.educ1971 0.88 0.86 0.86 0.87 0.87
## Years.educ2001 0.89 0.88 0.88 0.88 0.89
## Latitude 0.97 0.96 0.96 0.96 0.96
## PISA12Math 0.94 0.96 0.95 0.95 0.96
## G 1.00 1.00 1.00 1.00 0.99
## S.new 0.93 0.93 0.94 0.93 0.93
## S.old 0.92 0.91 0.91 0.91 0.92
## S.all 0.94 0.93 0.93 0.94 0.94
## Stature.1855 Stature1910 Stature1927 Stature1980
## Reading 0.92 0.91 0.93 0.94
## Math 0.94 0.90 0.92 0.95
## Science 0.93 0.88 0.91 0.94
## Mean.education 0.93 0.89 0.92 0.94
## IQ 0.92 0.90 0.93 0.93
## Stature.1855 1.00 0.93 0.96 0.94
## Stature1910 0.93 1.00 0.96 0.87
## Stature1927 0.96 0.96 1.00 0.92
## Stature1980 0.94 0.87 0.92 1.00
## Per.cap.income1970 0.67 0.73 0.74 0.66
## Per.cap.income2003 0.84 0.86 0.86 0.84
## Infant.mortality1955_7 -0.78 -0.67 -0.72 -0.66
## Infant.mortality1999_02 -0.77 -0.67 -0.76 -0.81
## Literacy1880 0.75 0.87 0.81 0.67
## Years.educ1951 0.82 0.90 0.89 0.83
## Years.educ1971 0.78 0.83 0.86 0.79
## Years.educ2001 0.72 0.69 0.76 0.80
## Latitude 0.86 0.87 0.87 0.88
## PISA12Math 0.88 0.83 0.83 0.90
## G 0.93 0.89 0.92 0.94
## S.new 0.87 0.83 0.88 0.89
## S.old 0.92 0.93 0.92 0.86
## S.all 0.92 0.91 0.91 0.88
## Per.cap.income1970 Per.cap.income2003
## Reading 0.82 0.92
## Math 0.80 0.92
## Science 0.81 0.92
## Mean.education 0.81 0.92
## IQ 0.84 0.94
## Stature.1855 0.67 0.84
## Stature1910 0.73 0.86
## Stature1927 0.74 0.86
## Stature1980 0.66 0.84
## Per.cap.income1970 1.00 0.93
## Per.cap.income2003 0.93 1.00
## Infant.mortality1955_7 -0.68 -0.72
## Infant.mortality1999_02 -0.75 -0.83
## Literacy1880 0.90 0.88
## Years.educ1951 0.89 0.94
## Years.educ1971 0.86 0.88
## Years.educ2001 0.77 0.85
## Latitude 0.80 0.90
## PISA12Math 0.75 0.87
## G 0.81 0.92
## S.new 0.85 0.95
## S.old 0.92 0.95
## S.all 0.93 0.98
## Infant.mortality1955_7 Infant.mortality1999_02
## Reading -0.84 -0.87
## Math -0.83 -0.86
## Science -0.86 -0.88
## Mean.education -0.85 -0.87
## IQ -0.84 -0.86
## Stature.1855 -0.78 -0.77
## Stature1910 -0.67 -0.67
## Stature1927 -0.72 -0.76
## Stature1980 -0.66 -0.81
## Per.cap.income1970 -0.68 -0.75
## Per.cap.income2003 -0.72 -0.83
## Infant.mortality1955_7 1.00 0.67
## Infant.mortality1999_02 0.67 1.00
## Literacy1880 -0.66 -0.64
## Years.educ1951 -0.63 -0.76
## Years.educ1971 -0.64 -0.75
## Years.educ2001 -0.72 -0.87
## Latitude -0.68 -0.90
## PISA12Math -0.76 -0.82
## G -0.85 -0.87
## S.new -0.73 -0.94
## S.old -0.72 -0.81
## S.all -0.74 -0.85
## Literacy1880 Years.educ1951 Years.educ1971
## Reading 0.86 0.92 0.88
## Math 0.83 0.90 0.86
## Science 0.82 0.89 0.86
## Mean.education 0.84 0.90 0.87
## IQ 0.86 0.93 0.87
## Stature.1855 0.75 0.82 0.78
## Stature1910 0.87 0.90 0.83
## Stature1927 0.81 0.89 0.86
## Stature1980 0.67 0.83 0.79
## Per.cap.income1970 0.90 0.89 0.86
## Per.cap.income2003 0.88 0.94 0.88
## Infant.mortality1955_7 -0.66 -0.63 -0.64
## Infant.mortality1999_02 -0.64 -0.76 -0.75
## Literacy1880 1.00 0.92 0.86
## Years.educ1951 0.92 1.00 0.96
## Years.educ1971 0.86 0.96 1.00
## Years.educ2001 0.69 0.86 0.91
## Latitude 0.84 0.89 0.80
## PISA12Math 0.76 0.81 0.71
## G 0.84 0.91 0.87
## S.new 0.78 0.91 0.89
## S.old 0.95 0.98 0.98
## S.all 0.94 0.97 0.94
## Years.educ2001 Latitude PISA12Math G S.new
## Reading 0.89 0.97 0.94 1.00 0.93
## Math 0.88 0.96 0.96 1.00 0.93
## Science 0.88 0.96 0.95 1.00 0.94
## Mean.education 0.88 0.96 0.95 1.00 0.93
## IQ 0.89 0.96 0.96 0.99 0.93
## Stature.1855 0.72 0.86 0.88 0.93 0.87
## Stature1910 0.69 0.87 0.83 0.89 0.83
## Stature1927 0.76 0.87 0.83 0.92 0.88
## Stature1980 0.80 0.88 0.90 0.94 0.89
## Per.cap.income1970 0.77 0.80 0.75 0.81 0.85
## Per.cap.income2003 0.85 0.90 0.87 0.92 0.95
## Infant.mortality1955_7 -0.72 -0.68 -0.76 -0.85 -0.73
## Infant.mortality1999_02 -0.87 -0.90 -0.82 -0.87 -0.94
## Literacy1880 0.69 0.84 0.76 0.84 0.78
## Years.educ1951 0.86 0.89 0.81 0.91 0.91
## Years.educ1971 0.91 0.80 0.71 0.87 0.89
## Years.educ2001 1.00 0.73 0.67 0.88 0.97
## Latitude 0.73 1.00 0.93 0.96 0.96
## PISA12Math 0.67 0.93 1.00 0.95 0.89
## G 0.88 0.96 0.95 1.00 0.93
## S.new 0.97 0.96 0.89 0.93 1.00
## S.old 0.94 0.93 0.85 0.91 0.94
## S.all 0.96 0.95 0.89 0.94 0.97
## S.old S.all
## Reading 0.92 0.94
## Math 0.91 0.93
## Science 0.91 0.93
## Mean.education 0.91 0.94
## IQ 0.92 0.94
## Stature.1855 0.92 0.92
## Stature1910 0.93 0.91
## Stature1927 0.92 0.91
## Stature1980 0.86 0.88
## Per.cap.income1970 0.92 0.93
## Per.cap.income2003 0.95 0.98
## Infant.mortality1955_7 -0.72 -0.74
## Infant.mortality1999_02 -0.81 -0.85
## Literacy1880 0.95 0.94
## Years.educ1951 0.98 0.97
## Years.educ1971 0.98 0.94
## Years.educ2001 0.94 0.96
## Latitude 0.93 0.95
## PISA12Math 0.85 0.89
## G 0.91 0.94
## S.new 0.94 0.97
## S.old 1.00 0.99
## S.all 0.99 1.00
#plot
GG_scatter(data, "G", "S.all") +
xlab("G") + ylab("S, general socioeconomic factor (all Lynn data)")

ggsave("S_G.png")
## Saving 7 x 5 in image
#MCV
fa_Jensens_method(S.all.fa, data, criterion = "G")
## Using Pearson correlations for the criterion-indicators relationships.

ggsave("MCV1.png")
## Saving 7 x 5 in image
New data
data2 = read.csv("data.csv", row.names=1, encoding = "UTF-8")
#PP - Political participation index
PP = data2[,grep("PP\\d",colnames(data2))]
PP.mean = data.frame(PP.mean=apply(PP,1,mean, na.rm=TRUE))
#NW - Normal weight, percent
NW = data2[,grep("NW\\d",colnames(data2))]
NW.mean = data.frame(NW.mean=apply(NW,1,mean, na.rm=TRUE))
#SMOKE - smokers percent
SMOKE = data2[,grep("SMOKE\\d",colnames(data2))]
SMOKE.mean = data.frame(SMOKE.mean=apply(SMOKE,1,mean, na.rm=TRUE))
#IH - Intentional Homicide
IH = data2[,grep("IH\\d",colnames(data2))]
IH.mean = data.frame(IH.mean=apply(IH,1,mean, na.rm=TRUE))
#TC - Total crime
TC = data2[,grep("TC\\d",colnames(data2))]
TC.mean = data.frame(TC.mean=apply(TC,1,mean, na.rm=TRUE))
#UEMPLOY - Unemployment
UNEMPLOY = data2[,grep("UEMPLOY\\d",colnames(data2))]
UNEMPLOY.mean = data.frame(UNEMPLOY.mean=apply(UNEMPLOY,1,mean, na.rm=TRUE))
#LEM - Life expectancy males
LEM = data2[,grep("LEM\\d",colnames(data2))]
LEM.mean = data.frame(LEM.mean=apply(LEM,1,mean, na.rm=TRUE))
#TFR - Total Fertility Rate
TFR = data2[,grep("TFR\\d",colnames(data2))]
TFR.mean = data.frame(TFR.mean=apply(TFR,1,mean, na.rm=TRUE))
#TRUST - Interpersonal trust index
TRUST = data2[,grep("TRUST\\d",colnames(data2))]
TRUST.mean = data.frame(TRUST.mean=apply(TRUST,1,mean, na.rm=TRUE))
#NoSave - Percent without savings
NoSave = data2[,grep("NoSave\\d",colnames(data2))]
NoSave.mean = data.frame(NoSave.mean=apply(NoSave,1,mean, na.rm=TRUE))
#Make reduced dataset
data2.r = cbind(PP.mean,
NW.mean,
SMOKE.mean,
IH.mean,
TC.mean,
UNEMPLOY.mean,
LEM.mean,
TFR.mean,
TRUST.mean,
NoSave.mean,
data2["PISA.M.12"],
data2["PISA.V.12"],
data2["PISA.S.12"]
)
Factor analyze
#Factor analysis for S
S2.fa = fa(data2.r[1:10])
## The estimated weights for the factor scores are probably incorrect. Try a different factor extraction method.
data2.r["S2"] = as.numeric(S2.fa$scores)
#Loadings
fa_plot_loadings(S2.fa)

ggsave("loadings2.png")
## Saving 7 x 5 in image
#Factor for G2
G2.fa = fa(data2.r[11:13])
fa_plot_loadings(G2.fa)

data2.r["G2"] = as.numeric(G2.fa$scores)
#Cors
data2.r.rank = data.frame(apply(data2.r, 2, rank))
wtd.cors(data2.r) %>% round(2)
## PP.mean NW.mean SMOKE.mean IH.mean TC.mean UNEMPLOY.mean
## PP.mean 1.00 0.63 0.04 -0.54 0.53 -0.73
## NW.mean 0.63 1.00 -0.20 -0.43 0.33 -0.74
## SMOKE.mean 0.04 -0.20 1.00 0.11 0.50 0.28
## IH.mean -0.54 -0.43 0.11 1.00 -0.03 0.76
## TC.mean 0.53 0.33 0.50 -0.03 1.00 -0.20
## UNEMPLOY.mean -0.73 -0.74 0.28 0.76 -0.20 1.00
## LEM.mean 0.43 0.35 -0.26 -0.40 0.02 -0.57
## TFR.mean 0.19 0.58 -0.10 -0.21 0.11 -0.58
## TRUST.mean 0.46 0.85 -0.41 -0.52 0.00 -0.78
## NoSave.mean -0.63 -0.75 0.27 0.73 -0.13 0.90
## PISA.M.12 0.70 0.60 -0.23 -0.75 0.22 -0.89
## PISA.V.12 0.61 0.53 -0.23 -0.75 0.22 -0.83
## PISA.S.12 0.73 0.68 -0.22 -0.74 0.26 -0.91
## S2 0.64 0.79 -0.24 -0.62 0.18 -0.93
## G2 0.70 0.62 -0.22 -0.75 0.23 -0.89
## LEM.mean TFR.mean TRUST.mean NoSave.mean PISA.M.12 PISA.V.12
## PP.mean 0.43 0.19 0.46 -0.63 0.70 0.61
## NW.mean 0.35 0.58 0.85 -0.75 0.60 0.53
## SMOKE.mean -0.26 -0.10 -0.41 0.27 -0.23 -0.23
## IH.mean -0.40 -0.21 -0.52 0.73 -0.75 -0.75
## TC.mean 0.02 0.11 0.00 -0.13 0.22 0.22
## UNEMPLOY.mean -0.57 -0.58 -0.78 0.90 -0.89 -0.83
## LEM.mean 1.00 0.25 0.31 -0.47 0.54 0.45
## TFR.mean 0.25 1.00 0.67 -0.65 0.53 0.50
## TRUST.mean 0.31 0.67 1.00 -0.87 0.64 0.57
## NoSave.mean -0.47 -0.65 -0.87 1.00 -0.86 -0.79
## PISA.M.12 0.54 0.53 0.64 -0.86 1.00 0.98
## PISA.V.12 0.45 0.50 0.57 -0.79 0.98 1.00
## PISA.S.12 0.52 0.55 0.68 -0.87 0.99 0.97
## S2 0.48 0.55 0.83 -0.91 0.78 0.69
## G2 0.53 0.53 0.64 -0.86 1.00 0.98
## PISA.S.12 S2 G2
## PP.mean 0.73 0.64 0.70
## NW.mean 0.68 0.79 0.62
## SMOKE.mean -0.22 -0.24 -0.22
## IH.mean -0.74 -0.62 -0.75
## TC.mean 0.26 0.18 0.23
## UNEMPLOY.mean -0.91 -0.93 -0.89
## LEM.mean 0.52 0.48 0.53
## TFR.mean 0.55 0.55 0.53
## TRUST.mean 0.68 0.83 0.64
## NoSave.mean -0.87 -0.91 -0.86
## PISA.M.12 0.99 0.78 1.00
## PISA.V.12 0.97 0.69 0.98
## PISA.S.12 1.00 0.80 0.99
## S2 0.80 1.00 0.78
## G2 0.99 0.78 1.00
wtd.cors(data2.r.rank) %>% round(2)
## PP.mean NW.mean SMOKE.mean IH.mean TC.mean UNEMPLOY.mean
## PP.mean 1.00 0.50 0.15 -0.35 0.48 -0.54
## NW.mean 0.50 1.00 -0.20 -0.46 0.17 -0.72
## SMOKE.mean 0.15 -0.20 1.00 0.40 0.59 0.40
## IH.mean -0.35 -0.46 0.40 1.00 0.39 0.84
## TC.mean 0.48 0.17 0.59 0.39 1.00 0.09
## UNEMPLOY.mean -0.54 -0.72 0.40 0.84 0.09 1.00
## LEM.mean 0.37 0.29 -0.07 -0.54 0.00 -0.56
## TFR.mean 0.14 0.57 -0.02 -0.47 0.08 -0.65
## TRUST.mean 0.56 0.89 -0.30 -0.56 0.03 -0.84
## NoSave.mean -0.60 -0.53 0.06 0.60 -0.18 0.73
## PISA.M.12 0.58 0.62 -0.29 -0.80 -0.01 -0.90
## PISA.V.12 0.49 0.60 -0.36 -0.74 0.03 -0.85
## PISA.S.12 0.60 0.70 -0.33 -0.78 0.01 -0.92
## S2 0.51 0.77 -0.25 -0.76 -0.05 -0.92
## G2 0.56 0.64 -0.33 -0.81 -0.02 -0.92
## LEM.mean TFR.mean TRUST.mean NoSave.mean PISA.M.12 PISA.V.12
## PP.mean 0.37 0.14 0.56 -0.60 0.58 0.49
## NW.mean 0.29 0.57 0.89 -0.53 0.62 0.60
## SMOKE.mean -0.07 -0.02 -0.30 0.06 -0.29 -0.36
## IH.mean -0.54 -0.47 -0.56 0.60 -0.80 -0.74
## TC.mean 0.00 0.08 0.03 -0.18 -0.01 0.03
## UNEMPLOY.mean -0.56 -0.65 -0.84 0.73 -0.90 -0.85
## LEM.mean 1.00 0.26 0.25 -0.37 0.62 0.48
## TFR.mean 0.26 1.00 0.55 -0.46 0.60 0.62
## TRUST.mean 0.25 0.55 1.00 -0.62 0.70 0.66
## NoSave.mean -0.37 -0.46 -0.62 1.00 -0.64 -0.59
## PISA.M.12 0.62 0.60 0.70 -0.64 1.00 0.96
## PISA.V.12 0.48 0.62 0.66 -0.59 0.96 1.00
## PISA.S.12 0.52 0.64 0.78 -0.67 0.98 0.97
## S2 0.46 0.62 0.85 -0.68 0.87 0.82
## G2 0.59 0.63 0.71 -0.66 1.00 0.97
## PISA.S.12 S2 G2
## PP.mean 0.60 0.51 0.56
## NW.mean 0.70 0.77 0.64
## SMOKE.mean -0.33 -0.25 -0.33
## IH.mean -0.78 -0.76 -0.81
## TC.mean 0.01 -0.05 -0.02
## UNEMPLOY.mean -0.92 -0.92 -0.92
## LEM.mean 0.52 0.46 0.59
## TFR.mean 0.64 0.62 0.63
## TRUST.mean 0.78 0.85 0.71
## NoSave.mean -0.67 -0.68 -0.66
## PISA.M.12 0.98 0.87 1.00
## PISA.V.12 0.97 0.82 0.97
## PISA.S.12 1.00 0.88 0.99
## S2 0.88 1.00 0.88
## G2 0.99 0.88 1.00
#plot
GG_scatter(data2.r, "G2", "S2") + labs(x = "G\n(based on PISA 2012)", y ="S, general socioeconomic factor\n(10 indicator)")

ggsave("G2_S2.png")
## Saving 7 x 5 in image
#MCV
fa_Jensens_method(S2.fa, data2.r, criterion = "G2")
## Using Pearson correlations for the criterion-indicators relationships.

ggsave("MCV2.png")
## Saving 7 x 5 in image
Cross dataset comparison
## Cross dataset comparison
cross.DF = merge_datasets(data[ , c("G", "S.all")], data2.r[ , c("G2", "S2")])
#merge regions
cross.DF["Abruzzi Basilicata", "G2"] = (cross.DF["Abruzzo", "G2"] + cross.DF["Basilicata","G2"]) / 2
cross.DF["Abruzzi Basilicata", "S2"] = (cross.DF["Abruzzo", "S2"] + cross.DF["Basilicata","S2"]) / 2
wtd.cors(cross.DF) %>% round(2)
## G S.all G2 S2
## G 1.00 0.94 0.95 0.88
## S.all 0.94 1.00 0.89 0.93
## G2 0.95 0.89 1.00 0.78
## S2 0.88 0.93 0.78 1.00
#plot
GG_scatter(cross.DF, "G", "G2") +
labs(x = "G\n(Lynn's data)", y ="G\n(New dataset")

ggsave("G_G2.png")
## Saving 7 x 5 in image
GG_scatter(cross.DF, "S.all", "S2") +
labs(x = "S\n(Lynn's data)", y = "S\n(New dataset")

ggsave("S_S2.png")
## Saving 7 x 5 in image
Correlations
wtd.cors(data2.r)
## PP.mean NW.mean SMOKE.mean IH.mean TC.mean UNEMPLOY.mean
## PP.mean 1.000 0.63 0.039 -0.538 0.528 -0.73
## NW.mean 0.625 1.00 -0.202 -0.426 0.335 -0.74
## SMOKE.mean 0.039 -0.20 1.000 0.113 0.499 0.28
## IH.mean -0.538 -0.43 0.113 1.000 -0.033 0.76
## TC.mean 0.528 0.33 0.499 -0.033 1.000 -0.20
## UNEMPLOY.mean -0.728 -0.74 0.282 0.758 -0.201 1.00
## LEM.mean 0.434 0.35 -0.264 -0.399 0.021 -0.57
## TFR.mean 0.187 0.58 -0.103 -0.211 0.110 -0.58
## TRUST.mean 0.462 0.85 -0.414 -0.523 -0.004 -0.78
## NoSave.mean -0.633 -0.75 0.270 0.725 -0.129 0.90
## PISA.M.12 0.699 0.60 -0.225 -0.747 0.217 -0.89
## PISA.V.12 0.606 0.53 -0.231 -0.753 0.224 -0.83
## PISA.S.12 0.734 0.68 -0.218 -0.737 0.261 -0.91
## S2 0.638 0.79 -0.235 -0.624 0.180 -0.93
## G2 0.701 0.62 -0.225 -0.748 0.230 -0.89
## LEM.mean TFR.mean TRUST.mean NoSave.mean PISA.M.12 PISA.V.12
## PP.mean 0.434 0.19 0.462 -0.63 0.70 0.61
## NW.mean 0.348 0.58 0.851 -0.75 0.60 0.53
## SMOKE.mean -0.264 -0.10 -0.414 0.27 -0.23 -0.23
## IH.mean -0.399 -0.21 -0.523 0.73 -0.75 -0.75
## TC.mean 0.021 0.11 -0.004 -0.13 0.22 0.22
## UNEMPLOY.mean -0.574 -0.58 -0.776 0.90 -0.89 -0.83
## LEM.mean 1.000 0.25 0.314 -0.47 0.54 0.45
## TFR.mean 0.252 1.00 0.671 -0.65 0.53 0.50
## TRUST.mean 0.314 0.67 1.000 -0.87 0.64 0.57
## NoSave.mean -0.467 -0.65 -0.870 1.00 -0.86 -0.79
## PISA.M.12 0.542 0.53 0.637 -0.86 1.00 0.98
## PISA.V.12 0.449 0.50 0.568 -0.79 0.98 1.00
## PISA.S.12 0.516 0.55 0.684 -0.87 0.99 0.97
## S2 0.477 0.55 0.827 -0.91 0.78 0.69
## G2 0.529 0.53 0.644 -0.86 1.00 0.98
## PISA.S.12 S2 G2
## PP.mean 0.73 0.64 0.70
## NW.mean 0.68 0.79 0.62
## SMOKE.mean -0.22 -0.24 -0.22
## IH.mean -0.74 -0.62 -0.75
## TC.mean 0.26 0.18 0.23
## UNEMPLOY.mean -0.91 -0.93 -0.89
## LEM.mean 0.52 0.48 0.53
## TFR.mean 0.55 0.55 0.53
## TRUST.mean 0.68 0.83 0.64
## NoSave.mean -0.87 -0.91 -0.86
## PISA.M.12 0.99 0.78 1.00
## PISA.V.12 0.97 0.69 0.98
## PISA.S.12 1.00 0.80 0.99
## S2 0.80 1.00 0.78
## G2 0.99 0.78 1.00