En primer lugar, cargamos/instalmos las librerías que vamos a usar y leemos la base de datos en la variable “df”, nos quedamos solo con los datos completos, tiramos los niveles que no se usan, renombramos el identimicador de la encuesta de V3 a ID y exploramos las primeras líneas:
if (!require("pacman")) install.packages("pacman")
pacman::p_load("MASS","tidyverse","haven","stringr", "FactoMineR","factoextra","corrplot","gplots","ggrepel")
###################################VVVVVVVVVV#########################################
df <- read_sav("WV6_Data_Spain_2011_Spss_v20180912.sav IZQUIERDA DERECH Y TIC TOTALES.sav") %>%
as_factor() %>%
filter(complete.cases(.)) %>%
droplevels()
df %>% head()
#####Puedo escribir, que no me hace caso
#df %>% select(-recIndiceTradicional,-recIndiceInfoCModerno,-IDEOLOGIApolitica)
#No tocar de aquí hacia abajo
#VAMOS CON TODO
df2 = df
El modelo que se ha hecho en SPSS tenía esta pinta si lo he visto bien:
fit <- MCA(df2 %>%mutate_all(as.factor), ncp = 2, graph = TRUE)
Los autovalores son:
get_eigenvalue(fit)
eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.27349587 12.155372 12.15537
Dim.2 0.17387341 7.727707 19.88308
Dim.3 0.16633501 7.392667 27.27575
Dim.4 0.15433243 6.859219 34.13497
Dim.5 0.14436064 6.416028 40.55099
Dim.6 0.13722947 6.099088 46.65008
Dim.7 0.13153818 5.846141 52.49622
Dim.8 0.12617331 5.607702 58.10393
Dim.9 0.11781842 5.236374 63.34030
Dim.10 0.11439951 5.084423 68.42472
Dim.11 0.11348013 5.043561 73.46828
Dim.12 0.11235159 4.993404 78.46169
Dim.13 0.10272606 4.565603 83.02729
Dim.14 0.10041278 4.462790 87.49008
Dim.15 0.08942568 3.974475 91.46456
Dim.16 0.08363339 3.717040 95.18160
Dim.17 0.08100441 3.600196 98.78179
Dim.18 0.02740969 1.218209 100.00000
fviz_screeplot(fit, addlabels = TRUE)
Realmente si nos quedamos solo con 2 dimensiones no vamos a ver mucho, pues queda mucha información fuera de ellas, pero vamos a echar un vistazo e todos modos:
fviz_mca_var(fit, choice = "mca.cor", col.var="black",
repel = TRUE,
ggtheme = theme_minimal())
fviz_mca_var(fit,
repel = TRUE, col.var="black",
ggtheme = theme_minimal())
Ya vimos que 2 dimensiones se quedaban cortas para representar las variables. Vamos a poner de color rojo las que estén mejor representadas en un plano, y de otros colores conforme vayamos perdiendo esta propiedad
fviz_mca_var(fit, col.var = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE, # Avoid text overlapping
ggtheme = theme_minimal())
Una forma de ver quien está mejor o peor representado también sería asociando, en lugar de color rojo, un grado de transparencia al símbolo que lo representa:
fviz_mca_var(fit, alpha.var="cos2", col.var="black",
repel = TRUE,
ggtheme = theme_minimal())
Ordenemos de mejor a peor lo bien que se representan cada valor de las variables en un plano:
fviz_cos2(fit, choice = "var", axes = 1:2)