MFA ROLES AND INFLUENCES, EUROPE
rolesinfluences<-mfadata[,c(225:242,246:270,201,1)]
rolesinfluences<-droplevels(rolesinfluences)
rolesinfluences<-rolesinfluences %>% filter(complete.cases(.))
roles<-rolesinfluences[,1:18]
influences<-rolesinfluences[,19:43]
nrow(rolesinfluences)
## [1] 8150
rolesinfluences<-rolesinfluences %>% filter(complete.cases(.))
nrow(rolesinfluences)
## [1] 8150
res<-MFA(rolesinfluences, group=c(18, 25,1,1), type=c("n", "n","s","n"), ncp=5,
name.group=c("ROLES", "INFLUENCES", "WEIGHT", "COUNTRY"), num.group.sup=c(3,4), graph=FALSE, row.w = rolesinfluences$nworldweight)
eig.val <- get_eigenvalue(res)
head(eig.val)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 1.2940456 13.254481 13.25448
## Dim.2 0.8234177 8.433995 21.68848
## Dim.3 0.5320565 5.449679 27.13815
## Dim.4 0.4764735 4.880361 32.01851
## Dim.5 0.3629029 3.717094 35.73561
## Dim.6 0.3462863 3.546896 39.28250
fviz_screeplot(res)

# Contribution to dimensions
stargazer(res$group$contrib, type="text", digits=2)
##
## ========================================
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## ----------------------------------------
## ROLES 47.80 69.28 65.93 43.89 25.82
## INFLUENCES 52.20 30.72 34.07 56.11 74.18
## ----------------------------------------
stargazer(res$quali.var$contrib, type="text", digits=2)
##
## ======================================================
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## ------------------------------------------------------
## notDetachedObserver 0.19 1.22 0.12 5.88 7.18
## DetachedObserver 0.05 0.30 0.03 1.42 1.74
## notReportReality 0.24 2.50 0.001 8.48 4.06
## ReportReality 0.02 0.16 0.0000 0.53 0.25
## notAnalysCurrAffairs 1.21 3.76 0.01 1.50 0.08
## AnalysCurrAffairs 0.33 1.02 0.004 0.41 0.02
## notMonPolLeaders 1.36 7.13 2.35 0.001 0.24
## MonPolLeaders 1.13 5.92 1.95 0.001 0.20
## notMonBusiness 0.89 4.97 2.08 0.0003 0.15
## MonBusiness 0.96 5.36 2.25 0.0003 0.16
## notSetPolAgenda 0.84 1.40 0.01 0.56 0.04
## SetPolAgenda 2.42 4.04 0.02 1.62 0.12
## notInflPublOpinion 2.06 0.46 2.00 0.25 0.40
## InflPublOpinion 3.16 0.71 3.06 0.38 0.61
## notAdvSocialChange 2.44 0.99 1.94 0.09 0.91
## AdvSocialChange 2.53 1.03 2.01 0.09 0.95
## notAdvGoverment 0.45 0.79 0.35 0.53 0.003
## AdvGoverment 1.59 2.79 1.24 1.86 0.01
## notSupNatDevelop 2.39 0.45 1.58 0.05 0.75
## SupNatDevelop 3.34 0.63 2.21 0.06 1.06
## notPosImagePolit 0.17 0.005 0.25 0.50 0.01
## PosImagePolit 2.62 0.08 3.98 7.81 0.15
## notSupGovPolicy 0.13 0.004 0.22 0.43 0.05
## SupGovPolicy 2.36 0.08 4.01 7.87 0.89
## notEntertainment 0.31 1.27 4.45 0.004 1.10
## Entertainment 0.57 2.35 8.20 0.01 2.02
## notLargeAudience 1.02 1.44 5.69 0.11 0.85
## LargeAudience 1.10 1.57 6.19 0.12 0.93
## notAdvDailyLife 1.14 0.14 3.47 0.004 0.30
## AdvDailyLife 1.42 0.17 4.30 0.004 0.37
## notInfoMakePolDec 1.56 5.12 0.68 0.07 0.01
## InfoMakePolDec 1.20 3.93 0.52 0.05 0.004
## notMotivPolPart 1.11 1.74 0.0004 0.08 0.0001
## MotivPolPart 2.08 3.27 0.001 0.16 0.0002
## notLetPeopleExpr 2.31 1.66 0.50 2.00 0.15
## LetPeopleExpr 1.11 0.80 0.24 0.96 0.07
## PersonalValues0 0.51 0.06 0.02 0.40 1.07
## PersonalValues 0.38 0.04 0.02 0.30 0.79
## PeersOnStaff0 0.27 0.29 0.14 0.18 0.57
## PeersOnStaff 0.70 0.75 0.35 0.47 1.46
## EditSupervis0 0.83 1.08 0.78 0.12 4.45
## EditSupervis 0.97 1.26 0.91 0.15 5.21
## Managers0 0.90 0.68 0.32 0.03 3.98
## Managers 2.13 1.61 0.75 0.08 9.41
## Owners0 0.81 0.52 0.23 0.09 3.09
## Owners 2.33 1.51 0.66 0.25 8.94
## EdPolicy0 0.92 0.53 0.49 0.57 2.36
## EdPolicy 0.91 0.52 0.48 0.56 2.33
## AdvertCons0 0.61 0.50 0.01 0.02 0.18
## AdvertCons 2.57 2.11 0.04 0.09 0.76
## ProfitExp0 0.58 0.64 0.0003 0.01 0.13
## ProfitExp 2.15 2.37 0.001 0.04 0.47
## AudienceRes0 0.75 0.56 0.09 0.57 0.01
## AudienceRes 1.63 1.22 0.20 1.24 0.02
## AvailResour0 0.70 0.26 0.23 3.26 0.21
## AvailResour 0.58 0.21 0.19 2.67 0.17
## TimeLimits0 0.69 0.24 0.51 2.94 0.005
## TimeLimits 0.41 0.14 0.30 1.72 0.003
## JournEthics0 0.57 0.35 0.09 5.63 0.04
## JournEthics 0.19 0.11 0.03 1.86 0.01
## FriendsPeerFamily0 0.17 0.16 0.01 0.03 0.02
## FriendsPeerFamily 0.96 0.93 0.04 0.15 0.10
## ColleaguesOtherMedia0 0.15 0.13 0.05 0.03 0.07
## ColleaguesOtherMedia 1.33 1.12 0.46 0.24 0.63
## AudienceFeedb0 0.94 0.76 0.21 1.28 0.07
## AudienceFeedb 1.58 1.28 0.36 2.16 0.12
## CompetingNewsorg0 0.78 0.56 0.02 0.34 0.08
## CompetingNewsorg 1.98 1.42 0.05 0.85 0.19
## MediaLawsRegul0 0.94 0.06 0.01 2.12 0.11
## MediaLawsRegul 1.06 0.07 0.01 2.38 0.13
## InformAccess0 1.36 0.09 0.33 3.88 0.25
## InformAccess 0.72 0.05 0.18 2.05 0.13
## Censorshp0 0.49 0.12 0.15 0.07 0.05
## Censorshp 2.71 0.67 0.86 0.42 0.25
## GovOfficials0 0.21 0.04 0.39 0.33 0.49
## GovOfficials 2.35 0.46 4.38 3.72 5.50
## Politician0 0.22 0.05 0.62 0.41 0.52
## Politician 2.30 0.49 6.58 4.36 5.53
## PressureGroups0 0.16 0.06 0.38 0.25 0.45
## PressureGroups 2.13 0.77 5.06 3.30 5.97
## BusinessPeople0 0.19 0.10 0.44 0.22 0.28
## BusinessPeople 2.12 1.08 4.81 2.42 3.12
## PublRelat0 0.32 0.29 0.13 0.13 0.48
## PublRelat 2.01 1.78 0.81 0.83 2.95
## RelationshSources0 0.82 0.27 0.38 0.37 0.43
## RelationshSources 1.17 0.39 0.54 0.53 0.62
## ------------------------------------------------------
stargazer(res$partial.axes$contrib, type="text", digits=2)
##
## ==============================================
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## ----------------------------------------------
## Dim1.ROLES 44.34 47.87 5.66 0.98 0.10
## Dim2.ROLES 3.42 21.71 59.63 4.83 1.60
## Dim3.ROLES 0.01 0.0000 1.27 37.34 9.77
## Dim4.ROLES 0.03 0.10 0.05 0.33 8.36
## Dim5.ROLES 0.02 0.06 0.16 0.12 3.90
## Dim1.INFLUENCES 52.02 27.59 18.28 1.09 0.01
## Dim2.INFLUENCES 0.05 0.0003 8.33 51.55 15.36
## Dim3.INFLUENCES 0.07 1.02 0.40 3.11 59.24
## Dim4.INFLUENCES 0.03 1.01 1.46 0.46 0.01
## Dim5.INFLUENCES 0.01 0.64 4.77 0.19 1.65
## Dim1.WEIGHT 0 0 0 0 0
## Dim1.COUNTRY 0 0 0 0 0
## Dim2.COUNTRY 0 0 0 0 0
## Dim3.COUNTRY 0 0 0 0 0
## Dim4.COUNTRY 0 0 0 0 0
## Dim5.COUNTRY 0 0 0 0 0
## ----------------------------------------------
## Separate analyses
res$separate.analyses$ROLES$eig[1:5]
## [1] 0.20023496 0.11659435 0.07508369 0.06777116 0.06356256
stargazer(res$separate.analyses$ROLES$var$contrib, type="text", digits=2)
##
## ====================================================
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## ----------------------------------------------------
## notDetachedObserver 0.85 0.38 20.01 12.23 0.24
## DetachedObserver 0.21 0.09 4.84 2.96 0.06
## notReportReality 1.41 1.57 25.18 8.87 1.42
## ReportReality 0.09 0.10 1.57 0.55 0.09
## notAnalysCurrAffairs 3.98 1.39 4.44 2.20 0.001
## AnalysCurrAffairs 1.08 0.38 1.21 0.60 0.0002
## notMonPolLeaders 5.55 6.25 0.69 0.48 1.08
## MonPolLeaders 4.62 5.19 0.57 0.40 0.89
## notMonBusiness 3.74 4.98 0.51 0.30 0.77
## MonBusiness 4.03 5.37 0.55 0.32 0.83
## notSetPolAgenda 2.27 0.06 1.25 0.07 0.18
## SetPolAgenda 6.53 0.18 3.60 0.21 0.53
## notInflPublOpinion 3.30 1.56 0.01 0.95 5.35
## InflPublOpinion 5.05 2.38 0.01 1.45 8.20
## notAdvSocialChange 4.37 1.07 0.09 3.56 7.99
## AdvSocialChange 4.54 1.11 0.09 3.69 8.30
## notAdvGoverment 1.36 0.04 0.31 0.02 0.69
## AdvGoverment 4.80 0.14 1.11 0.08 2.46
## notSupNatDevelop 3.51 1.25 0.05 0.53 4.49
## SupNatDevelop 4.92 1.75 0.07 0.75 6.29
## notPosImagePolit 0.23 0.38 0.51 1.25 0.03
## PosImagePolit 3.54 5.95 8.02 19.45 0.46
## notSupGovPolicy 0.18 0.32 0.52 1.07 0.03
## SupGovPolicy 3.28 5.92 9.64 19.59 0.62
## notEntertainment 0.02 6.67 0.66 0.0001 1.85
## Entertainment 0.03 12.30 1.22 0.0001 3.42
## notLargeAudience 0.25 8.93 1.46 0.10 2.29
## LargeAudience 0.27 9.70 1.58 0.10 2.49
## notAdvDailyLife 0.96 4.34 1.36 1.51 6.95
## AdvDailyLife 1.19 5.38 1.68 1.86 8.61
## notInfoMakePolDec 5.16 2.53 0.02 1.36 7.36
## InfoMakePolDec 3.96 1.94 0.02 1.05 5.65
## notMotivPolPart 2.87 0.13 0.07 2.58 3.16
## MotivPolPart 5.39 0.24 0.13 4.84 5.92
## notLetPeopleExpr 4.38 0.01 4.69 3.40 0.87
## LetPeopleExpr 2.10 0.005 2.25 1.63 0.42
## ----------------------------------------------------
res$separate.analyses$INFLUENCES$eig[1:5]
## [1] 0.20968987 0.08789568 0.07308447 0.05963433 0.05229307
stargazer(res$separate.analyses$INFLUENCES$var$contrib, type="text", digits=2)
##
## ====================================================
## Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
## ----------------------------------------------------
## PersonalValues0 0.63 1.25 0.01 3.41 3.34
## PersonalValues 0.46 0.92 0.01 2.50 2.45
## PeersOnStaff0 0.66 0.38 0.33 2.82 3.77
## PeersOnStaff 1.71 0.99 0.85 7.28 9.75
## EditSupervis0 2.24 0.40 5.29 0.001 4.59
## EditSupervis 2.63 0.47 6.20 0.002 5.37
## Managers0 1.86 0.001 5.78 0.21 0.32
## Managers 4.40 0.003 13.66 0.50 0.75
## Owners0 1.57 0.01 4.65 0.34 0.02
## Owners 4.54 0.02 13.46 1.00 0.06
## EdPolicy0 1.95 0.91 1.97 1.25 1.75
## EdPolicy 1.92 0.90 1.94 1.23 1.73
## AdvertCons0 1.14 0.004 0.79 0.04 3.11
## AdvertCons 4.84 0.02 3.34 0.16 13.19
## ProfitExp0 1.15 0.001 0.68 0.005 4.26
## ProfitExp 4.28 0.003 2.54 0.02 15.81
## AudienceRes0 1.25 0.90 0.06 0.06 3.07
## AudienceRes 2.75 1.98 0.14 0.14 6.72
## AvailResour0 1.41 3.44 2.30 2.16 0.01
## AvailResour 1.16 2.82 1.89 1.77 0.01
## TimeLimits0 1.49 3.33 1.38 3.71 0.42
## TimeLimits 0.87 1.95 0.80 2.17 0.24
## JournEthics0 0.42 4.67 2.58 4.52 2.24
## JournEthics 0.14 1.54 0.85 1.49 0.74
## FriendsPeerFamily0 0.34 0.06 0.15 3.46 0.12
## FriendsPeerFamily 2.00 0.32 0.85 20.13 0.70
## ColleaguesOtherMedia0 0.34 0.02 0.20 2.12 0.01
## ColleaguesOtherMedia 2.96 0.13 1.71 18.23 0.05
## AudienceFeedb0 1.57 1.70 0.64 1.82 1.25
## AudienceFeedb 2.66 2.87 1.08 3.07 2.10
## CompetingNewsorg0 1.48 0.40 0.31 0.39 0.90
## CompetingNewsorg 3.77 1.02 0.79 0.99 2.30
## MediaLawsRegul0 1.28 2.34 1.73 1.73 0.05
## MediaLawsRegul 1.44 2.63 1.95 1.95 0.06
## InformAccess0 2.07 3.57 3.56 2.55 0.59
## InformAccess 1.10 1.89 1.89 1.35 0.32
## Censorshp0 0.78 0.20 0.01 0.28 0.02
## Censorshp 4.37 1.10 0.07 1.57 0.13
## GovOfficials0 0.38 1.01 0.25 0.09 0.21
## GovOfficials 4.29 11.36 2.78 1.04 2.32
## Politician0 0.44 1.35 0.22 0.09 0.25
## Politician 4.61 14.28 2.33 0.98 2.65
## PressureGroups0 0.34 0.92 0.16 0.01 0.02
## PressureGroups 4.47 12.24 2.19 0.09 0.31
## BusinessPeople0 0.43 0.85 0.06 0.0002 0.003
## BusinessPeople 4.77 9.38 0.68 0.002 0.04
## PublRelat0 0.68 0.43 0.22 0.16 0.15
## PublRelat 4.22 2.64 1.35 0.96 0.95
## RelationshSources0 1.51 0.16 1.37 0.05 0.32
## RelationshSources 2.17 0.23 1.96 0.08 0.46
## ----------------------------------------------------
#stargazer(res$partial.axes$cor.between, type="text", digits=2)
res$group$RV
## ROLES INFLUENCES WEIGHT COUNTRY MFA
## ROLES 1.00000000 0.07512058 0.02844237 0.06873431 0.76275974
## INFLUENCES 0.07512058 1.00000000 0.02204947 0.04799398 0.70215371
## WEIGHT 0.02844237 0.02204947 1.00000000 0.18898224 0.03460847
## COUNTRY 0.06873431 0.04799398 0.18898224 1.00000000 0.08020404
## MFA 0.76275974 0.70215371 0.03460847 0.08020404 1.00000000
res$group$correlation
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## ROLES 0.7998574 0.8116950 0.7575925 0.7161664 0.5152433
## INFLUENCES 0.8242254 0.5246864 0.5142873 0.7952736 0.8654423
fviz_contrib(res, choice = "quali.var", axes = 1, top = 30, palette = "jco")

fviz_contrib(res, choice = "quali.var", axes = 2, top = 30, palette = "jco")

fviz_contrib(res, choice = "quali.var", axes = 3, top = 30, palette = "jco")

#MFA First dimension: Domination by elites (political, economic)
#MFA Second dimension: Political / interventionist role
#MFA Third dimension: Variant of second, emphasise goverment support (seems unstable)
# individuals, axes and groups
print(plot.MFA(res, axes=c(1, 2), choix="ind", new.plot=TRUE, lab.ind=FALSE,
lab.par=FALSE, lab.var=FALSE, habillage="group", title=""))

print(plot.MFA(res, axes=c(1, 2), choix="axes", new.plot=TRUE,
habillage="group", title=""))

print(plot.MFA(res, axes=c(1, 2), choix="group", new.plot=TRUE,
lab.grpe=TRUE, title=""))

# active variables
fviz_mfa_var(res, "quali.var", palette = "jco",
col.var.sup = "violet", repel = TRUE, labelsize=3,
geom = c("point", "text"), legend = "bottom") + ylab("2: NONPOLITICAL/NONMONITORAL ROLE --->") +
xlab("1: SUBJUGATION BY ELITES --->")

fviz_mfa_var(res, "quali.var", palette = "jco",
col.var.sup = "violet", repel = TRUE, labelsize=3, axes = c(1,3), select.var=list(contrib=50),
geom = c("point", "text"), legend = "bottom")

fviz_mfa_var(res, "quali.var", axes=c(1,2), col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
col.var.sup = "violet", repel = TRUE,
geom = c("point", "text"), select.var=list(contrib=30))

fviz_mfa_var(res, "quali.var", axes=c(1,3), col.var = "contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
col.var.sup = "violet", repel = TRUE,
geom = c("point", "text"), select.var=list(contrib=30))

# COUNTRIES / SUPPLEMENTARY
fviz_mfa_ind(res, geom="pint", repel=TRUE) # pint is a typo, but it works

PCA ROLES AND INFLUENCES, EUROPE (equal country weight)
# https://f0nzie.github.io/machine_learning_compilation/detailed-study-of-principal-component-analysis.html
roleinflnum<-wjseuro[,c(38:55,75:86, 88:100,201,1)]
roleinflnum<-roleinflnum %>% filter(complete.cases(.))
x<-c(1:43) # convert factors to numeric
roleinflnum[x] = lapply(roleinflnum[x], FUN = function(y){as.numeric(y)})
res.pca<-PCA(roleinflnum, quanti.sup=44, quali.sup=45, scale.unit=TRUE, ncp=3, graph = FALSE, row.w = roleinflnum$nworldweight)
fviz_eig(res.pca)

head(res.pca$eig)
## eigenvalue percentage of variance cumulative percentage of variance
## comp 1 7.629906 17.743969 17.74397
## comp 2 4.355220 10.128418 27.87239
## comp 3 2.655125 6.174709 34.04710
## comp 4 2.497489 5.808114 39.85521
## comp 5 1.912005 4.446523 44.30173
## comp 6 1.663330 3.868209 48.16994
fviz_pca_ind(res.pca, geom="point") # individuals

fviz_pca_var(res.pca, geom = c("point", "text"), col.var = "contrib", repel=TRUE) # active variables

fviz_pca_var(res.pca, geom = c("point", "text"), col.var = "contrib", repel=TRUE, axes=c(1,3)) # active variables

fviz_pca_var(res.pca, geom = c("point", "text"), col.var = "contrib", repel=TRUE, select.var=list(contrib=20), axes=c(1,2))

fviz_pca_var(res.pca, geom = c("point", "text"), col.var = "contrib", repel=TRUE, select.var=list(contrib=20), axes=c(1,3))

fviz_pca_var(res.pca, geom = c("point", "text"), col.var = "contrib", repel=TRUE, select.var=list(contrib=20), axes=c(3,2))

p<-fviz_pca_ind(res.pca, invisible = "ind")
p<-ggpar(p,ylim=c(-2,2), xlim=c(-2.2,2.2))
p<-fviz_add(p, res.pca$quali.sup$coord, labelsize = 4, pointsize = 1, repel = TRUE)
p

stargazer(res.pca$var$contrib, type="text", digits=2)
##
## ================================================
## Dim.1 Dim.2 Dim.3
## ------------------------------------------------
## Detached.observer 0.03 1.53 3.28
## Report.reality 0.07 2.79 4.56
## Analyse.current.affairs 0.52 4.91 1.32
## Monitor.political.leaders 0.98 12.02 0.06
## Monitor.business 0.75 9.25 0.08
## Set.political.agenda 1.54 7.72 0.50
## Influence.public.opinion 2.48 2.47 0.01
## Advocate.for.social.change 2.45 4.21 0.03
## Adversary.government 1.30 4.50 1.09
## Sup.national.development 2.93 2.99 0.07
## Pos.image.politicians 2.42 0.79 2.41
## Sup.gov.policy 2.56 0.81 1.52
## Entertain 0.64 1.88 0.88
## Large.audience 1.33 0.93 1.08
## Advice.for.daily.life 1.66 0.04 0.09
## Info.people.pol.decisions 1.02 9.61 0.04
## Motivate.pol.particip. 1.60 7.05 0.31
## Let.people.express.themselves 1.45 4.01 1.98
## Personal.values 0.82 0.0004 2.55
## Peers.on.staff 1.54 1.27 1.46
## Editorial.supervisors 2.85 1.84 0.51
## Managers.of.news.org 4.39 1.30 0.08
## Owners 4.39 1.02 0.32
## Editorial.policy 2.51 0.70 1.80
## Advertising.considerations 4.10 1.96 0.01
## Profit.expectations 3.67 2.26 0.01
## Audience.research 2.87 1.15 3.20
## Availability.of.resources 1.43 0.18 6.97
## Time.limits 1.32 0.14 4.99
## Journalism.ethics 0.48 1.42 9.04
## Friends.peers.family 1.67 0.95 0.28
## Colleagues.other.media 2.42 1.48 0.24
## Audience.feedback 3.02 1.26 4.40
## Competing.newsorg 3.32 1.64 0.87
## Media.laws.and.regul 2.28 0.04 4.64
## Information.acceess 2.08 0.07 5.48
## Censorship 4.32 0.18 1.06
## Government.officials 4.88 0.06 7.18
## Politicians 4.83 0.04 9.08
## Pressure.groups 4.17 0.42 7.99
## Business.people 4.56 0.83 6.60
## Public.relations 3.92 2.01 1.50
## Relationships.sources 2.43 0.22 0.44
## ------------------------------------------------
stargazer(res.pca$quali.sup$v.test, type="text", digits=2)
##
## ===================================
## Dim.1 Dim.2 Dim.3
## -----------------------------------
## Albania 4.94 -1.96 1.56
## Austria -10.44 -0.21 0.47
## Belgium -9.42 -3.24 -2.47
## Bulgaria 10.53 1.94 4.02
## Croatia 10.36 13.27 -1.41
## Cyprus 4.90 5.68 -1.50
## Czech Republic -0.58 -3.63 11.63
## Denmark -6.65 4.98 -7.87
## Estonia 1.88 0.88 7.02
## Finland -4.41 -0.11 4.60
## France -9.30 0.87 2.39
## Germany -6.33 -6.36 4.62
## Greece 1.27 5.37 -1.42
## Hungary 9.13 -7.35 -0.11
## Iceland -9.43 -7.02 5.96
## Ireland -1.08 -2.75 -1.50
## Italy -10.36 -3.38 -0.83
## Kosovo 8.25 7.43 -4.22
## Latvia -3.90 2.75 5.94
## Moldova 6.27 2.80 6.05
## Netherlands -4.75 -5.85 -9.67
## Norway -6.40 -1.96 -4.48
## Romania 6.98 -0.45 11.03
## Russia 6.33 -8.17 -15.00
## Serbia 9.32 7.17 -3.41
## Spain 9.75 7.45 -4.23
## Sweden -6.01 4.83 -1.37
## Switzerland -7.00 -0.77 -6.35
## UK 0.80 -11.26 0.37
## -----------------------------------
fviz_contrib(res.pca, choice = "var", axes = 1, top = 30, palette = "jco")

fviz_contrib(res.pca, choice = "var", axes = 2, top = 30, palette = "jco")

fviz_contrib(res.pca, choice = "var", axes = 3, top = 30, palette = "jco")
