Extract all the results (coordinates, squared cosine and
contributions) for the active individuals/variable categories from
Multiple Correspondence Analysis (MCA) outputs.
get_mca(): Extract the results for variables and individuals
get_mca_ind(): Extract the results for individuals only
get_mca_var(): Extract the results for variables only
For FactoMineR MCA results, get_mca() and get_mca_var() also
support element = "quanti.sup" for quantitative supplementary
variables and report a clean package-level error when that result is
absent.
an object of class MCA [FactoMineR], acm [ade4], expoOutput/epMCA [ExPosition].
the element to subset from the output. Possible values are "var" for variables, "ind" for individuals, "mca.cor" for correlation between variables and principal dimensions, and "quanti.sup" for quantitative supplementary variables in FactoMineR MCA results.
a list of matrices containing the results for the active individuals/variable categories including :
coordinates for the individuals/variable categories
cos2 for the individuals/variable categories
contributions of the individuals/variable categories
inertia of the individuals/variable categories
# \donttest{
# Multiple Correspondence Analysis
# ++++++++++++++++++++++++++++++
# Install and load FactoMineR to compute MCA
# install.packages("FactoMineR")
library("FactoMineR")
data(poison)
res.mca <- MCA(poison, quanti.sup = 1:2, graph = FALSE)
# Extract the results for variable categories
var <- get_mca_var(res.mca)
print(var)
#> Multiple Correspondence Analysis Results for variables
#> ===================================================
#> Name Description
#> 1 "$coord" "Coordinates for categories"
#> 2 "$cos2" "Cos2 for categories"
#> 3 "$contrib" "contributions of categories"
head(var$coord) # coordinates of variables
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> Sick_n 1.44402578 -0.04357250 0.03805397 -0.093176408 0.05979372
#> Sick_y -0.64601153 0.01949296 -0.01702414 0.041684183 -0.02674982
#> F 0.03478097 0.38856006 0.35367418 -0.209329096 -0.71992057
#> M -0.03606916 -0.40295117 -0.36677322 0.217082026 0.74658430
#> Nausea_n 0.24995909 0.09006351 -0.27552471 0.003029634 -0.07581724
#> Nausea_y -0.89568672 -0.32272758 0.98729687 -0.010856189 0.27167844
head(var$cos2) # cos2 of variables
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> Sick_n 0.93285731 0.0008493572 0.0006478363 3.883982e-03 0.001599471
#> Sick_y 0.93285731 0.0008493572 0.0006478363 3.883982e-03 0.001599471
#> F 0.00125452 0.1565707310 0.1297182185 4.544158e-02 0.537481392
#> M 0.00125452 0.1565707310 0.1297182185 4.544158e-02 0.537481392
#> Nausea_n 0.22388503 0.0290659795 0.2720246837 3.289028e-05 0.020597910
#> Nausea_y 0.22388503 0.0290659795 0.2720246837 3.289028e-05 0.020597910
head(var$contrib) # contributions of variables
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> Sick_n 14.00493008 0.03987261 0.0367811 0.2511791673 0.11463936
#> Sick_y 6.26536346 0.01783775 0.0164547 0.1123696275 0.05128603
#> F 0.01338208 5.22245977 5.2328771 2.0880456529 27.37164358
#> M 0.01387771 5.41588421 5.4266874 2.1653806771 28.38540816
#> Nausea_n 1.06142287 0.43089055 4.8771415 0.0006716942 0.46620623
#> Nausea_y 3.80343194 1.54402447 17.4764237 0.0024069041 1.67057233
# Extract the results for individuals
ind <- get_mca_ind(res.mca)
print(ind)
#> Multiple Correspondence Analysis Results for individuals
#> ===================================================
#> Name Description
#> 1 "$coord" "Coordinates for the individuals"
#> 2 "$cos2" "Cos2 for the individuals"
#> 3 "$contrib" "contributions of the individuals"
head(ind$coord) # coordinates of individuals
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> 1 -0.4450048 -0.114216819 0.30631680 -0.05619086 -0.2857812
#> 2 0.8777905 0.060321252 0.03763212 -0.13240060 -0.1807642
#> 3 -0.4507970 0.188522860 -0.10802178 -0.21759054 -0.2421866
#> 4 0.9151478 0.003217764 0.07078443 -0.10783301 -0.1614115
#> 5 -0.4599569 0.007569300 -0.28915573 -0.10317117 0.1720801
#> 6 -0.3930339 -0.652033420 -1.17958945 1.32819676 -0.5358638
head(ind$cos2) # cos2 of individuals
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> 1 0.32530703 2.143010e-02 0.154136555 0.00518675 0.13416251
#> 2 0.58801184 2.776803e-03 0.001080741 0.01337778 0.02493613
#> 3 0.48538429 8.488907e-02 0.027870606 0.11308468 0.14009546
#> 4 0.74564630 9.218472e-06 0.004460935 0.01035271 0.02319633
#> 5 0.49864491 1.350419e-04 0.197070106 0.02508845 0.06979403
#> 6 0.03423215 9.421366e-02 0.308344300 0.39093000 0.06363308
head(ind$contrib) # contributions of individuals
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> 1 1.0170795 0.2095097459 1.82247165 0.06985499 2.0025538
#> 2 3.9573754 0.0584365829 0.02750658 0.38783411 0.8012017
#> 3 1.0437283 0.5707844717 0.22664274 1.04748098 1.4381936
#> 4 4.3013812 0.0001662848 0.09731832 0.25725842 0.6388307
#> 5 1.0865750 0.0009201435 1.62398773 0.23549560 0.7260694
#> 6 0.7933878 6.8278476824 27.02594638 39.02931694 7.0408618
# You can also use the function get_mca()
get_mca(res.mca, "ind") # Results for individuals
#> Multiple Correspondence Analysis Results for individuals
#> ===================================================
#> Name Description
#> 1 "$coord" "Coordinates for the individuals"
#> 2 "$cos2" "Cos2 for the individuals"
#> 3 "$contrib" "contributions of the individuals"
get_mca(res.mca, "var") # Results for variable categories
#> Multiple Correspondence Analysis Results for variables
#> ===================================================
#> Name Description
#> 1 "$coord" "Coordinates for categories"
#> 2 "$cos2" "Cos2 for categories"
#> 3 "$contrib" "contributions of categories"
quanti.sup <- get_mca(res.mca, "quanti.sup")
head(quanti.sup$coord) # coordinates of quantitative supplementary variables
#> Dim 1 Dim 2 Dim 3 Dim 4 Dim 5
#> Age -0.008478288 -0.04116798 -0.23486616 0.13211667 -0.15096523
#> Time -0.858978644 -0.04113998 -0.02009036 -0.07346635 -0.04671424
# }