# Analisis de correspondencia Multiple en R
library(FactoMineR)
## Warning: package 'FactoMineR' was built under R version 4.0.5
library(ade4)
## Warning: package 'ade4' was built under R version 4.0.5
## 
## Attaching package: 'ade4'
## The following object is masked from 'package:FactoMineR':
## 
##     reconst
library(FactoClass)
## Warning: package 'FactoClass' was built under R version 4.0.5
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.0.5
## Loading required package: ggrepel
## Warning: package 'ggrepel' was built under R version 4.0.5
## Loading required package: xtable
## Loading required package: scatterplot3d
## Warning: package 'scatterplot3d' was built under R version 4.0.3
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.0.5
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(missMDA)
## Warning: package 'missMDA' was built under R version 4.0.5
library(pander)
## Warning: package 'pander' was built under R version 4.0.5
# Analisis descriptivo
fatalismo <- read.csv("FATALISMO_Y_ESTRES__correspondencia.csv", head = T,sep = ";")
#View(fatalismo)
vi<-names(fatalismo)[c(1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17)]
vi
##  [1] "INFECTARIA"  "ENFERMO"     "INTERNARAN"  "DEPRIMIRE"   "CONTAGIARME"
##  [6] "DESICION"    "EVIDENCIA"   "AGOTADO"     "JORNADA"     "LEVANTO"    
## [11] "TRABAJAR"    "DESGASTA"    "FRUSTRADO"   "TIEMPO"      "CONTACTO"   
## [16] "LIMITE"
library(fastDummies)
## Warning: package 'fastDummies' was built under R version 4.0.5
#Colocamos los labels en las variables
fatalismo$INFECTARIA <- factor(fatalismo$INFECTARIA, levels = c(1,2,3,4,5)
                               , labels = c("grave","sustancial","moderada","leve","sin desviación"))

fatalismo$ENFERMO <- factor(fatalismo$ENFERMO, levels = c(1,2,3,4,5)
                               , labels = c("nunca","muy raro","algunas veces","regularmente","siempre"))

fatalismo$INTERNARAN <- factor(fatalismo$INTERNARAN, levels = c(1,2,3,4,5)
                            , labels = c("totalmente de acuerdo","de acuerdo","indiferente o neutro","en desacuerdo","totalmente en desacuerdo"))

fatalismo$DEPRIMIRE <- factor(fatalismo$DEPRIMIRE, levels = c(1,2,3,4,5)
                               , labels = c("no es importante","poco importante","neutral","importante","muy importante"))

fatalismo$CONTAGIARME <- factor(fatalismo$CONTAGIARME, levels = c(1,2,3,4,5)
                               , labels = c("muy negativo","negativo","neutro","positivo","muy positivo"))

fatalismo$DESICION <- factor(fatalismo$DESICION, levels = c(1,2,3)
                                , labels = c("malo","regular","bueno"))

fatalismo$EVIDENCIA <- factor(fatalismo$EVIDENCIA, levels = c(1,2,3,4)
                                , labels = c("no observado","rara vez observado","observado","observado constantemente"))

fatalismo$AGOTADO <- factor(fatalismo$AGOTADO, levels = c(0,1,2,3,4,5,6)
                              , labels = c("tot agotado","mod agotado","lig agotado","Ni agotado ni relajado","Lig relajado",
                                           "mod relajado","tot relajado"))

fatalismo$JORNADA <- factor(fatalismo$JORNADA, levels = c(0,1,2,3,4,5,6)
                              , labels = c("tot insignif","mod insignif","lig insignif","ni insignif ni import","lig import","mod import","tot import"))

fatalismo$LEVANTO <- factor(fatalismo$LEVANTO, levels = c(0,1,2,3,4,5,6)
                            , labels = c("tot desanim","mod desanim","lig desanim","ni desanim ni anim","lig anim","mod anim","tot anim"))

fatalismo$TRABAJAR <- factor(fatalismo$TRABAJAR, levels = c(0,1,2,3,4,5,6)
                            , labels = c("tot desac","mod desac","lig desac","ni desac ni acuer","lig acuer","mod acuer","tot acuer"))

fatalismo$DESGASTA <- factor(fatalismo$DESGASTA, levels = c(0,1,2,3,4,5,6)
                             , labels = c("tot desgast","mod desgast","lig desgast","ni desgast ni resist","lig resist","mod resist","tot resist"))

fatalismo$FRUSTRADO <- factor(fatalismo$FRUSTRADO, levels = c(0,1,2,3,4,5,6)
                             , labels = c("tot frust","mod frust","lig frust","ni frust ni satisf","lig satisf","mod satisf","tot satisf"))

fatalismo$TIEMPO <- factor(fatalismo$TIEMPO, levels = c(0,1,2,3,4,5,6)
                              , labels = c("nunca","casi nunca","a veces","ocasionalmente","regularmente","mayor parte del tiempo","todo el tiempo"))

fatalismo$CONTACTO <- factor(fatalismo$CONTACTO, levels = c(0,1,2,3,4,5,6)
                              , labels = c("nunca","casi nunca","rara vez","algunas veces","ocasionalmente","casi siempre","siempre"))

fatalismo$LIMITE <- factor(fatalismo$LIMITE, levels = c(0,1,2,3,4,5,6)
                             , labels = c("tot estres","mod estres","lig estres","ni estre ni relax","lige relax","mod relax","tot relax"))

tabla1 <- fatalismo[,c(-8,-18)]  # eliminamos fatalismo y estres
head(tabla1)
##       INFECTARIA       ENFERMO               INTERNARAN        DEPRIMIRE
## 1       moderada algunas veces               de acuerdo no es importante
## 2     sustancial      muy raro            en desacuerdo       importante
## 3           leve  regularmente            en desacuerdo       importante
## 4           leve  regularmente totalmente en desacuerdo          neutral
## 5           leve         nunca            en desacuerdo       importante
## 6 sin desviación       siempre totalmente en desacuerdo   muy importante
##    CONTAGIARME DESICION                EVIDENCIA      AGOTADO
## 1       neutro  regular       rara vez observado mod relajado
## 2       neutro  regular       rara vez observado  mod agotado
## 3 muy positivo     malo observado constantemente mod relajado
## 4       neutro     malo                observado  mod agotado
## 5     negativo  regular       rara vez observado  lig agotado
## 6     positivo  regular       rara vez observado tot relajado
##                 JORNADA            LEVANTO  TRABAJAR    DESGASTA  FRUSTRADO
## 1          tot insignif        mod desanim mod desac lig desgast  tot frust
## 2 ni insignif ni import        tot desanim tot desac tot desgast mod satisf
## 3          tot insignif        lig desanim lig acuer  lig resist  mod frust
## 4          tot insignif ni desanim ni anim tot desac tot desgast  tot frust
## 5          tot insignif        mod desanim mod desac mod desgast  tot frust
## 6            lig import           mod anim mod acuer  mod resist mod satisf
##                   TIEMPO      CONTACTO     LIMITE
## 1             casi nunca    casi nunca tot estres
## 2           regularmente         nunca tot estres
## 3                a veces algunas veces mod estres
## 4             casi nunca         nunca tot estres
## 5                  nunca    casi nunca mod estres
## 6 mayor parte del tiempo  casi siempre lig estres
str(tabla1)
## 'data.frame':    81 obs. of  16 variables:
##  $ INFECTARIA : Factor w/ 5 levels "grave","sustancial",..: 3 2 4 4 4 5 4 4 2 4 ...
##  $ ENFERMO    : Factor w/ 5 levels "nunca","muy raro",..: 3 2 4 4 1 5 5 5 2 5 ...
##  $ INTERNARAN : Factor w/ 5 levels "totalmente de acuerdo",..: 2 4 4 5 4 5 5 2 4 5 ...
##  $ DEPRIMIRE  : Factor w/ 5 levels "no es importante",..: 1 4 4 3 4 5 3 2 2 4 ...
##  $ CONTAGIARME: Factor w/ 5 levels "muy negativo",..: 3 3 5 3 2 4 3 2 1 3 ...
##  $ DESICION   : Factor w/ 3 levels "malo","regular",..: 2 2 1 1 2 2 3 2 1 1 ...
##  $ EVIDENCIA  : Factor w/ 4 levels "no observado",..: 2 2 4 3 2 2 3 1 1 1 ...
##  $ AGOTADO    : Factor w/ 7 levels "tot agotado",..: 6 2 6 2 3 7 6 6 2 2 ...
##  $ JORNADA    : Factor w/ 7 levels "tot insignif",..: 1 4 1 1 1 5 5 2 1 1 ...
##  $ LEVANTO    : Factor w/ 7 levels "tot desanim",..: 2 1 3 4 2 6 5 1 1 2 ...
##  $ TRABAJAR   : Factor w/ 7 levels "tot desac","mod desac",..: 2 1 5 1 2 6 1 3 2 2 ...
##  $ DESGASTA   : Factor w/ 7 levels "tot desgast",..: 3 1 5 1 2 6 4 3 2 2 ...
##  $ FRUSTRADO  : Factor w/ 7 levels "tot frust","mod frust",..: 1 6 2 1 1 6 1 1 1 1 ...
##  $ TIEMPO     : Factor w/ 7 levels "nunca","casi nunca",..: 2 5 3 2 1 6 1 2 1 1 ...
##  $ CONTACTO   : Factor w/ 7 levels "nunca","casi nunca",..: 2 1 4 1 2 6 1 2 2 1 ...
##  $ LIMITE     : Factor w/ 7 levels "tot estres","mod estres",..: 1 1 2 1 2 3 2 1 1 1 ...
#attach(fatalismo)
#tabla1 <- table(Fatalimo_c, ESTRES) # variables a relacionar


summary(tabla1,nbelements=Inf)
##           INFECTARIA          ENFERMO                      INTERNARAN
##  grave         : 7   nunca        : 8   totalmente de acuerdo   : 8  
##  sustancial    :11   muy raro     : 8   de acuerdo              :18  
##  moderada      : 3   algunas veces: 2   indiferente o neutro    :10  
##  leve          :36   regularmente :36   en desacuerdo           :33  
##  sin desviación:24   siempre      :27   totalmente en desacuerdo:12  
##                                                                      
##                                                                      
##             DEPRIMIRE        CONTAGIARME    DESICION 
##  no es importante:12   muy negativo:22   malo   :49  
##  poco importante :16   negativo    :26   regular:28  
##  neutral         :12   neutro      :14   bueno  : 4  
##  importante      :29   positivo    :10               
##  muy importante  :12   muy positivo: 9               
##                                                      
##                                                      
##                     EVIDENCIA                    AGOTADO  
##  no observado            :40   tot agotado           :19  
##  rara vez observado      :24   mod agotado           :22  
##  observado               : 9   lig agotado           : 6  
##  observado constantemente: 8   Ni agotado ni relajado:14  
##                                Lig relajado          : 2  
##                                mod relajado          :14  
##                                tot relajado          : 4  
##                   JORNADA                 LEVANTO                TRABAJAR 
##  tot insignif         :44   tot desanim       :30   tot desac        :35  
##  mod insignif         :14   mod desanim       :24   mod desac        :23  
##  lig insignif         : 5   lig desanim       : 7   lig desac        : 7  
##  ni insignif ni import: 4   ni desanim ni anim:10   ni desac ni acuer: 6  
##  lig import           : 5   lig anim          : 2   lig acuer        : 4  
##  mod import           : 5   mod anim          : 4   mod acuer        : 5  
##  tot import           : 4   tot anim          : 4   tot acuer        : 1  
##                  DESGASTA               FRUSTRADO                     TIEMPO  
##  tot desgast         :37   tot frust         :48   nunca                 :46  
##  mod desgast         :25   mod frust         :20   casi nunca            :15  
##  lig desgast         : 8   lig frust         : 6   a veces               :11  
##  ni desgast ni resist: 4   ni frust ni satisf: 2   ocasionalmente        : 4  
##  lig resist          : 3   lig satisf        : 0   regularmente          : 1  
##  mod resist          : 3   mod satisf        : 4   mayor parte del tiempo: 3  
##  tot resist          : 1   tot satisf        : 1   todo el tiempo        : 1  
##            CONTACTO                LIMITE  
##  nunca         :42   tot estres       :40  
##  casi nunca    :22   mod estres       :26  
##  rara vez      : 3   lig estres       : 5  
##  algunas veces : 9   ni estre ni relax: 5  
##  ocasionalmente: 0   lige relax       : 1  
##  casi siempre  : 4   mod relax        : 3  
##  siempre       : 1   tot relax        : 1
  # En cuanto al analisis descriptivo, notamos que en las 7 primeras variables (fatalismo) 
  # se presenta mayor atributo en infectaria leve (36), enfermo regular (36), internaran en desacuerdo (33)...
  # En cuento a las 9 ultimas variables (estres) se presenta mayor concentracion en ...


# PUNTO 1
# ¿Cuántos ejes se generan en el ACM?
# p-># categorias  s-># variables
# (p-s = 81-16 = 65 ejes)


# PUNTO 2
# ¿Qué relación existe entre la Inercia Total, el número de modalidades y el número 
# de variables cualitativas?
p<-81
s<-16
Intotal<-(p/s)-1
Intotal
## [1] 4.0625
# PUNTO 3
# ¿Qué similitudes existen entre los pacientes que tienen COVID?
tabla1 <- droplevels(tabla1[1:81,])

#acm<-dudi.acm(tabla1, nf=65, scannf = FALSE)
#res.ACM <- dudi.acm(tabla1, nf=10, scannf = F) # ACM

acm <- dudi.acm(tabla1, nf=65, scannf = FALSE)
eigenval <- get_eigenvalue(acm)
pander(head(eigenval))
  eigenvalue variance.percent cumulative.variance.percent
Dim.1 0.4512 9.376 9.376
Dim.2 0.3827 7.953 17.33
Dim.3 0.2623 5.451 22.78
Dim.4 0.2226 4.625 27.41
Dim.5 0.2041 4.24 31.65
Dim.6 0.1924 3.997 35.64
fviz_mca_ind(acm,repel=T)+labs(title ="Nube de Puntos de Fatalismo y Estres")
## Warning: ggrepel: 65 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

uni.acm <- MCA(tabla1, graph = FALSE)
#warnings() 
fviz_mca_ind(uni.acm,repel=TRUE)+labs(title ="Nube de Puntos de Fatalismo y Estres")
## Warning: ggrepel: 65 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

# Representación Simultanea (Biplot)
fviz_mca_biplot(uni.acm,repel=TRUE)+labs(title ="Representación simultanea de Fatalismo y Estres")
## Warning: ggrepel: 73 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
## Warning: ggrepel: 80 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

# PUNTO 4
fviz_contrib(uni.acm,axes=c(1,2),choice = "ind" )+labs(title = "Contribución de individuos en el primer plano factorial")

fviz_cos2(uni.acm,axes=c(1,2),choice = "ind" )+labs(title = "Cos2 de individuos en el primer plano factorial")

# PUNTO 5
fviz_mca_var(uni.acm,axes=c(1,2),repel = T )+labs(title = "Nube de puntos de Categorías en el primer plano factorial")
## Warning: ggrepel: 80 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

fviz_mca_var(uni.acm,choice = "mca.cor",repel = T, ggtheme = theme_minimal())+labs(title = "Nube de puntos de Categorías en el primer plano factorial")

# PUNTO 6

# Punto 7
fviz_contrib(uni.acm,choice = "var",axes=c(1,2),repel = T )+labs(title = "Contribuciones de Categorías en el primer plano factorial")

fviz_cos2(uni.acm,choice="var",axes=c(1,2),repel = T )+labs(title = "cos2 de Categorías en el primer plano factorial")