# 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))
| 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")
