El acné es una enfermedad crónica e inflamatoria, que presenta una alta prevalencia particularmente en la adolescencia, y que afecta directamente en la piel. Puede de una u otra forma alterar la imagen exterior, y por lo tanto afectar de manera significativa la calidad de vida de las personas que la padecen. Los datos que se encuentran en la plataforma (acne.xls) corresponden a una muestra de pacientes que participaron en el estudio “EVALUACIÓN DE LA CALIDAD DE VIDA EN PACIENTES CON ACNÉ: VALIDACIÓN DE UNA ESCALA DE MEDICIÓN”

Punto 1: Asumiendo que las variables son de tipo continuo, realice un modelo de componentes principales e indique que ítems eliminaría del análisis.

# Cargue de datos 
setwd("C:/Users/leona/Dropbox/MAESTRIA PROVISIONAL/ANALISIS MULTIVARIADO/Parcial 1")
library(rio)
acne<-import("acne.xls")


Se cargan los datos. Se hace un examen general descriptivo de las variables para comprender las unidades en que están expresadas y el comportamiento de los promedios y las varianzas. La base de datos está conformada por 19 variables medidas en escala Likert con una escala de 1 a 7. La gráfica 1 presenta la distribución de las variables.  

boxplot(acne[,-1], las =2, main ="Figura 1. Variables incluidas", col = c(1:20), cex.axis=0.8)


Se identifican valores atípicos en la variable Granos y en la variable Grasosa la piel . Esta última variable tiene un promedio de 1.03, siendo distinta de las demas variables registradas. Se considera apropiado trabajar con la matriz de correlación para la construcción del modelo de componentes principales. Se realiza la construcción de la matriz de correlación y se visualiza en la figura 2.  

library(ggcorrplot)
## Loading required package: ggplot2
mcoracne<-cor(acne[,-1])
p.mat<-cor_pmat(acne[-1])
ggcorrplot(mcoracne, title = "Figura 2. Matriz de correlación",
          p.mat = p.mat, 
          tl.cex = 6
          )

  Las correlaciones marcadas con X son indicativas que su p-valor no fue significativo. En general, hay correlación entre las variables. La variable Grasosa la piel no tuvo correlación significativa casi con ninguna otra variable. El determinante de la matriz es de 5.996462510^{-6}, el cual es diferente de cero y todos los elementos de la diagonal son de valor 1, por lo que se considera apropiada como entrada para el análisis de componentes principales. Se revisa el paquete de análisis. La opción covmat permite como parametro de entrada la matriz de covarianza o correlación. Para que calcule basado en la matriz de correlación, el parámetro cor debe ser verdadero.  

library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
acp1<-princomp(covmat=mcoracne, cor = T)  
summary(acp1, loadings = T)
## Importance of components:
##                           Comp.1     Comp.2     Comp.3     Comp.4     Comp.5
## Standard deviation     3.0423786 1.14554674 1.08490992 0.99448564 0.91983205
## Proportion of Variance 0.4871614 0.06906723 0.06194892 0.05205272 0.04453111
## Cumulative Proportion  0.4871614 0.55622867 0.61817760 0.67023032 0.71476142
##                            Comp.6     Comp.7     Comp.8     Comp.9   Comp.10
## Standard deviation     0.81956828 0.79046187 0.76544636 0.73516124 0.6669899
## Proportion of Variance 0.03535222 0.03288579 0.03083727 0.02844537 0.0234145
## Cumulative Proportion  0.75011364 0.78299943 0.81383670 0.84228207 0.8656966
##                           Comp.11    Comp.12    Comp.13    Comp.14    Comp.15
## Standard deviation     0.65354692 0.60150830 0.58298940 0.53810166 0.53264740
## Proportion of Variance 0.02248019 0.01904275 0.01788824 0.01523965 0.01493228
## Cumulative Proportion  0.88817676 0.90721951 0.92510775 0.94034741 0.95527968
##                           Comp.16    Comp.17     Comp.18     Comp.19
## Standard deviation     0.50542092 0.47095427 0.431957755 0.431103581
## Proportion of Variance 0.01344475 0.01167357 0.009820395 0.009781595
## Cumulative Proportion  0.96872444 0.98039801 0.990218405 1.000000000
## 
## Loadings:
##                              Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7
## Atractivo                     0.145         0.341  0.140  0.785  0.357       
## Avergonzado                   0.256                       0.124 -0.421       
## Inseguro                      0.254 -0.229  0.111               -0.336 -0.251
## Disgustado                    0.237        -0.203 -0.154  0.148 -0.263 -0.328
## Molesto                       0.231        -0.310                      -0.147
## Insatisfecho                  0.277                                    -0.257
## Preocupado                    0.263               -0.187  0.139              
## Preocupadopormedicamentos     0.188        -0.527 -0.183         0.344  0.127
## Molestopornecesidaddemedica   0.216        -0.361 -0.141         0.194       
## Negativamentelaconfianza      0.274 -0.159  0.118                      -0.218
## Preocupadoporconocerpersonas  0.252 -0.153  0.138  0.106 -0.163  0.246       
## Preocupadoporsaliralugares    0.272 -0.192  0.108  0.123 -0.169  0.176       
## Socializarconotros            0.253 -0.244  0.199  0.143 -0.232  0.183  0.231
## Interactuarconpersonasquele   0.254 -0.216  0.109        -0.177         0.278
## Granos                        0.196  0.512  0.149        -0.165  0.150 -0.224
## Granosconpus                  0.190  0.535  0.172        -0.232  0.122 -0.225
## Costras                       0.213  0.370                      -0.379  0.395
## Preocupadodetenercicatrices   0.223  0.225 -0.161         0.263 -0.154  0.498
## Grasosalapiel                              -0.377  0.895        -0.105       
##                              Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13
## Atractivo                            0.135  0.208                         
## Avergonzado                   0.138         0.452   0.223  -0.248  -0.329 
## Inseguro                     -0.207         0.231          -0.296         
## Disgustado                    0.387  0.132 -0.200   0.214   0.456  -0.281 
## Molesto                       0.375  0.525         -0.251  -0.283   0.422 
## Insatisfecho                 -0.229        -0.211  -0.241                 
## Preocupado                          -0.489 -0.151           0.282   0.296 
## Preocupadopormedicamentos           -0.320  0.466   0.200           0.177 
## Molestopornecesidaddemedica  -0.619  0.304 -0.138   0.118          -0.381 
## Negativamentelaconfianza     -0.255 -0.136 -0.128                   0.204 
## Preocupadoporconocerpersonas  0.215 -0.159 -0.314   0.404  -0.330         
## Preocupadoporsaliralugares    0.125                 0.111  -0.163         
## Socializarconotros                                          0.296  -0.100 
## Interactuarconpersonasquele          0.183  0.179  -0.401   0.376  -0.102 
## Granos                              -0.143  0.236  -0.382  -0.137  -0.264 
## Granosconpus                         0.155          0.258   0.109         
## Costras                      -0.223  0.254          0.253   0.118   0.420 
## Preocupadodetenercicatrices   0.168 -0.215 -0.369  -0.315  -0.217  -0.181 
## Grasosalapiel                       -0.105                                
##                              Comp.14 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19
## Atractivo                                                                   
## Avergonzado                  -0.173          -0.444   0.100  -0.229         
## Inseguro                      0.371           0.340  -0.119   0.345  -0.319 
## Disgustado                                    0.345                         
## Molesto                      -0.121          -0.105   0.166          -0.141 
## Insatisfecho                         -0.430  -0.257  -0.532  -0.376         
## Preocupado                   -0.325          -0.343   0.147   0.364  -0.225 
## Preocupadopormedicamentos     0.223           0.118  -0.111  -0.137         
## Molestopornecesidaddemedica  -0.173   0.119           0.107   0.176         
## Negativamentelaconfianza      0.105   0.341   0.130   0.473  -0.421   0.376 
## Preocupadoporconocerpersonas -0.154   0.391          -0.375          -0.140 
## Preocupadoporsaliralugares           -0.474           0.190   0.439   0.525 
## Socializarconotros           -0.104  -0.325   0.159   0.264  -0.284  -0.526 
## Interactuarconpersonasquele   0.163   0.416  -0.204  -0.281   0.188   0.184 
## Granos                       -0.388           0.316                         
## Granosconpus                  0.506          -0.331   0.122          -0.147 
## Costras                      -0.212           0.204  -0.165           0.115 
## Preocupadodetenercicatrices   0.319                   0.139                 
## Grasosalapiel

  Se realiza el gráfico de sedimentación para evaluar el número de componentes que puede ser sugerido.  

screeplot(acp1, type="lines", main="Figura 8. Gráfico de sedimentacion")
abline(h=1, col ="red")

  El gráfico sugiere que se deben incluir los primeros tres componentes. Tomando el criterio de tener un valor propio mayor a 1 se seleccionarían los tres primeros componentes. Sin embargo, el valor propio del cuarto componente es de 0.994 y al incluirlo se explica el 67% de la varianza.  

## Solución con tres componentes. 
graf<-acp1$loadings[,1:3]
# Tabla con las cargas de los componentes
library(pander)
graf
##                                 Comp.1      Comp.2        Comp.3
## Atractivo                    0.1450145  0.02747594  0.3411413597
## Avergonzado                  0.2558158 -0.06188731  0.0300473073
## Inseguro                     0.2538686 -0.22921297  0.1110714947
## Disgustado                   0.2371726 -0.05820247 -0.2031297460
## Molesto                      0.2314692 -0.02745839 -0.3099504005
## Insatisfecho                 0.2767605 -0.04650700  0.0159632835
## Preocupado                   0.2626723  0.04796317 -0.0001799721
## Preocupadopormedicamentos    0.1884475  0.07131108 -0.5267183732
## Molestopornecesidaddemedica  0.2155396 -0.01806409 -0.3614684119
## Negativamentelaconfianza     0.2737582 -0.15935629  0.1181722100
## Preocupadoporconocerpersonas 0.2516548 -0.15324046  0.1379390786
## Preocupadoporsaliralugares   0.2721724 -0.19169453  0.1084407249
## Socializarconotros           0.2531393 -0.24353272  0.1985305596
## Interactuarconpersonasquele  0.2536300 -0.21638121  0.1093000622
## Granos                       0.1962533  0.51230441  0.1486561018
## Granosconpus                 0.1901267  0.53546107  0.1715454327
## Costras                      0.2129298  0.37016739  0.0942011860
## Preocupadodetenercicatrices  0.2229297  0.22530918 -0.1606444719
## Grasosalapiel                0.0350514  0.01202710 -0.3773410584

Se revisan las cargas para cada componente y se identifican las variables que tienen mayor carga.

C1<-c("Avergonzado","Insatisfecho", "NegativaLaConfianza", "Preocupado por salir a lugares"
)
Cargas1<-c(0.255, 0.2767, 0.273, 0.272)
C2<-c("Granos", "Granosconpus", "Costras", "Preocupadoportenercicatrices")
Cargas2<-c(0.512, 0.535, 0.370, 0.225)
C3<-c("Atractivo", "Molesto", "Preocupadopormedicamentos", "Molestopornecesidaddemedica")
Cargas3<-c(0.341, -0.309, -0.526, -0.361)
Componentes<-data.frame(C1, Cargas1, C2, Cargas2, C3, Cargas3)
library(pander)
pander(Componentes)
Table continues below
C1 Cargas1 C2
Avergonzado 0.255 Granos
Insatisfecho 0.2767 Granosconpus
NegativaLaConfianza 0.273 Costras
Preocupado por salir a lugares 0.272 Preocupadoportenercicatrices
Cargas2 C3 Cargas3
0.512 Atractivo 0.341
0.535 Molesto -0.309
0.37 Preocupadopormedicamentos -0.526
0.225 Molestopornecesidaddemedica -0.361

Cada componente podría ser definido por cuatro variables, sin que identifiquen cargas cruzadas entre los componentes. De esta forma, se podrían eliminar las variables molesto, preocupado, preocupadoporconocerpersonas, socializarconotros, interactuarconotraspersonasquele y grasosalapiel.

Punto 2: Evalúe si se cumple el modelo planteado en la figura 1 a través de un análisis factorial confirmatorio.

Se parte del modelo teórico planteado. Se realiza un análisis factorial confirmadorio con el modelo propuesto por el autor.

library(lavaan)
## This is lavaan 0.6-7
## lavaan is BETA software! Please report any bugs.
## 
## Attaching package: 'lavaan'
## The following object is masked from 'package:psych':
## 
##     cor2cov
modelo1<- '
autoperc = ~ Atractivo + Avergonzado + Inseguro + Insatisfecho + Negativamentelaconfianza
emocional = ~ Disgustado + Molesto + Preocupado + Preocupadopormedicamentos + Molestopornecesidaddemedica
social = ~ Preocupadoporconocerpersonas + Preocupadoporsaliralugares + Socializarconotros + Interactuarconpersonasquele
Sintomas = ~ Granos + Granosconpus + Costras + Preocupadodetenercicatrices + Grasosalapiel
'

m1<-cfa(modelo1, data = acne)
m1
## lavaan 0.6-7 ended normally after 60 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of free parameters                         44
##                                                       
##   Number of observations                           349
##                                                       
## Model Test User Model:
##                                                       
##   Test statistic                               455.667
##   Degrees of freedom                               146
##   P-value (Chi-square)                           0.000

  El modelo converge. Se crea el diagrama de caminos  

library(semPlot)
## Registered S3 methods overwritten by 'huge':
##   method    from   
##   plot.sim  BDgraph
##   print.sim BDgraph
semPaths(m1, intercepts = FALSE,edge.label.cex=0.8, 
         optimizeLatRes = TRUE, groups = "lat",pastel = TRUE, 
         exoVar = FALSE, sizeInt=3,edge.color ="black",esize = 3, 
         label.prop=1,sizeLat = 6,"std", layout="tree")

  Se revisan las cargas en comparación con el modelo propuesto por el autor. En los tres primeros componentes no se identifican diferencias. Sin embargo, en el cuarto componente, la carga de la variable Grasosalapiel es muy inferior a la identificada por el autor.Se evalua el ajuste del modelo propuesto.

fitMeasures(m1)
##                npar                fmin               chisq                  df 
##              44.000               0.653             455.667             146.000 
##              pvalue      baseline.chisq         baseline.df     baseline.pvalue 
##               0.000            4196.495             171.000               0.000 
##                 cfi                 tli                nnfi                 rfi 
##               0.923               0.910               0.910               0.873 
##                 nfi                pnfi                 ifi                 rni 
##               0.891               0.761               0.924               0.923 
##                logl   unrestricted.logl                 aic                 bic 
##          -10672.866          -10445.032           21433.731           21603.355 
##              ntotal                bic2               rmsea      rmsea.ci.lower 
##             349.000           21463.772               0.078               0.070 
##      rmsea.ci.upper        rmsea.pvalue                 rmr          rmr_nomean 
##               0.086               0.000               0.158               0.158 
##                srmr        srmr_bentler srmr_bentler_nomean                crmr 
##               0.051               0.051               0.051               0.053 
##         crmr_nomean          srmr_mplus   srmr_mplus_nomean               cn_05 
##               0.053               0.051               0.051             135.186 
##               cn_01                 gfi                agfi                pgfi 
##             145.502               0.882               0.846               0.678 
##                 mfi                ecvi 
##               0.642               1.558

Se concluye que en los tres primeros factores el modelo propuesto es similar a la estructura que se identifica. Sin embargo, la carga de la variable Grasosapiel hace que el cuarto componente no sea similar. Esta variable debería ser considerada para eliminación.

Análisis factorial exploratorio

Se realiza un análisis factorial exploratorio incluyendo todas las variables incluidas en la base de datos. Basado en los hallazgos del PCA se considera que se deben extraer tres factores. Se extraen los factores utilizando el método de componentes principales. Basado en el tamaño de la muestra que es de 390, se deberían considerar cargas mayores de 0.3.Se trabaja inicialmente con la matriz de correlación. Se inicia realizando una prueba de esfericidad de Bartlett con la hipótesis nula de que alguna de las correlaciones es cero.

library(REdaS)
## Loading required package: grid
bart_spher(mcoracne)
##  Bartlett's Test of Sphericity
## 
## Call: bart_spher(x = mcoracne)
## 
##      X2 = 597.391
##      df = 171
## p-value < 2.22e-16

  La prueba rechaza la hipótesis nula. Se realiza la prueba KMO de adecuación de muestreo.

KMO(acne[,-1])
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = acne[, -1])
## Overall MSA =  0.94
## MSA for each item = 
##                    Atractivo                  Avergonzado 
##                         0.95                         0.95 
##                     Inseguro                   Disgustado 
##                         0.94                         0.95 
##                      Molesto                 Insatisfecho 
##                         0.95                         0.96 
##                   Preocupado    Preocupadopormedicamentos 
##                         0.94                         0.90 
##  Molestopornecesidaddemedica     Negativamentelaconfianza 
##                         0.93                         0.95 
## Preocupadoporconocerpersonas   Preocupadoporsaliralugares 
##                         0.96                         0.95 
##           Socializarconotros  Interactuarconpersonasquele 
##                         0.93                         0.96 
##                       Granos                 Granosconpus 
##                         0.90                         0.87 
##                      Costras  Preocupadodetenercicatrices 
##                         0.93                         0.95 
##                Grasosalapiel 
##                         0.63

El valor global es de 0.94. Ninguna variable tuvo un valor inferior a 0.5 por lo que se considera que se pueden incluir todas en el análisis. Se realiza entonces el análisis factorial exploratorio, extrayendo tres factores, con rotación varimax.

library(REdaS)
library(psych)
(efa1 <- principal(mcoracne, nfactors=3, rotate="varimax", cor="pearson"))
## Principal Components Analysis
## Call: principal(r = mcoracne, nfactors = 3, rotate = "varimax", cor = "pearson")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                RC1   RC2   RC3   h2   u2 com
## Atractivo                     0.45  0.32 -0.17 0.33 0.67 2.1
## Avergonzado                   0.67  0.31  0.27 0.61 0.39 1.8
## Inseguro                      0.79  0.16  0.18 0.68 0.32 1.2
## Disgustado                    0.54  0.23  0.48 0.57 0.43 2.3
## Molesto                       0.47  0.22  0.58 0.61 0.39 2.2
## Insatisfecho                  0.70  0.35  0.31 0.71 0.29 1.9
## Preocupado                    0.61  0.42  0.31 0.64 0.36 2.3
## Preocupadopormedicamentos     0.24  0.20  0.75 0.66 0.34 1.3
## Molestopornecesidaddemedica   0.41  0.19  0.62 0.58 0.42 2.0
## Negativamentelaconfianza      0.80  0.26  0.20 0.74 0.26 1.3
## Preocupadoporconocerpersonas  0.75  0.24  0.15 0.64 0.36 1.3
## Preocupadoporsaliralugares    0.81  0.23  0.20 0.75 0.25 1.3
## Socializarconotros            0.82  0.17  0.09 0.72 0.28 1.1
## Interactuarconpersonasquele   0.78  0.18  0.18 0.67 0.33 1.2
## Granos                        0.22  0.82  0.11 0.73 0.27 1.2
## Granosconpus                  0.20  0.84  0.08 0.75 0.25 1.1
## Costras                       0.33  0.69  0.18 0.61 0.39 1.6
## Preocupadodetenercicatrices   0.35  0.49  0.44 0.56 0.44 2.8
## Grasosalapiel                -0.05 -0.04  0.42 0.18 0.82 1.0
## 
##                        RC1  RC2  RC3
## SS loadings           6.32 3.02 2.40
## Proportion Var        0.33 0.16 0.13
## Cumulative Var        0.33 0.49 0.62
## Proportion Explained  0.54 0.26 0.20
## Cumulative Proportion 0.54 0.80 1.00
## 
## Mean item complexity =  1.6
## Test of the hypothesis that 3 components are sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.05 
## 
## Fit based upon off diagonal values = 0.99

  Se evaluan las cargas de las variables en cada factor. Se considera como significativas las cargas de 0.5 o mayores.  

print(efa1$loadings, cut = 0.5)
## 
## Loadings:
##                              RC1    RC2    RC3   
## Atractivo                                        
## Avergonzado                   0.666              
## Inseguro                      0.788              
## Disgustado                    0.540              
## Molesto                                     0.582
## Insatisfecho                  0.703              
## Preocupado                    0.607              
## Preocupadopormedicamentos                   0.753
## Molestopornecesidaddemedica                 0.615
## Negativamentelaconfianza      0.797              
## Preocupadoporconocerpersonas  0.747              
## Preocupadoporsaliralugares    0.809              
## Socializarconotros            0.825              
## Interactuarconpersonasquele   0.779              
## Granos                               0.816       
## Granosconpus                         0.836       
## Costras                              0.687       
## Preocupadodetenercicatrices                      
## Grasosalapiel                                    
## 
##                  RC1   RC2   RC3
## SS loadings    6.321 3.022 2.403
## Proportion Var 0.333 0.159 0.126
## Cumulative Var 0.333 0.492 0.618

Basados en este criterio, las variables preocupadoportenercicatrices y Grasosalapiel se consideran candidatas a ser eliminadas del análisis. El modelo explica el 61% de la varianza. Los componentes construidos podrían ser nombrados como “Autoestima y relaciónes sociales”, “Síntomas de la enfermedad” y “Efectos del tratamiento”, basados en las variables que cargan a cada factor.

Particiones y agrupamiento

Se inicia realizando un agrupamiento jerárquico no supervisado. Se inicia evaluando el promedio y la varianza de cada variable.

m.acne<-acne[,-1]
library(summarytools)
descr(m.acne, stats = c("mean", "sd"), transpose = T)
## Descriptive Statistics  
## m.acne  
## N: 349  
## 
##                                      Mean   Std.Dev
## ---------------------------------- ------ ---------
##                          Atractivo   3.02      1.35
##                        Avergonzado   4.47      1.75
##                            Costras   4.57      1.50
##                         Disgustado   3.74      1.83
##                             Granos   3.66      1.26
##                       Granosconpus   4.58      1.43
##                      Grasosalapiel   1.03      0.35
##                       Insatisfecho   4.07      1.77
##                           Inseguro   4.83      1.68
##        Interactuarconpersonasquele   4.70      1.95
##                            Molesto   4.13      1.88
##        Molestopornecesidaddemedica   4.28      1.99
##           Negativamentelaconfianza   4.59      1.83
##                         Preocupado   3.52      1.85
##        Preocupadodetenercicatrices   3.10      1.93
##       Preocupadoporconocerpersonas   4.70      1.87
##          Preocupadopormedicamentos   4.25      2.04
##         Preocupadoporsaliralugares   4.72      1.96
##                 Socializarconotros   5.13      1.87

Las varianzas son diferentes entres las variables. Se decide realizar el análisis utilizando la matriz estandarizada. Se construye la matriz de disimilaridad utilizando una distancia euclideana.

# Estandarización de la matriz 
e.m.acne<-scale(m.acne)
# Creación de la matriz de distancias 
dis.e.m.acne<-dist(e.m.acne, method = "euclidean")

La gráfica de la matriz de distancia es la siguiente.

library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(cluster)
mat.dist<-get_dist(dis.e.m.acne)
fviz_dist(mat.dist)

  Para la realización del agrupamiento jerárquico se utiliza el método de ligamiento completo que se considera el más apropiado.

library(cluster)
lig.completo<-hclust(dis.e.m.acne, method = "complete")
plot(lig.completo, main="Ligamiento completo")

  No se identifica visualmente cual es el número óptimo de clusters. Se realiza la evaluación por otros métodos. Utilizando un modelo bayesiano se obtiene lo siguiente:

library(mclust)
## Package 'mclust' version 5.4.6
## Type 'citation("mclust")' for citing this R package in publications.
## 
## Attaching package: 'mclust'
## The following object is masked from 'package:psych':
## 
##     sim
(b.modelo<-Mclust(e.m.acne))
## 'Mclust' model object: (EEI,7) 
## 
## Available components: 
##  [1] "call"           "data"           "modelName"      "n"             
##  [5] "d"              "G"              "BIC"            "loglik"        
##  [9] "df"             "bic"            "icl"            "hypvol"        
## [13] "parameters"     "z"              "classification" "uncertainty"

Este modelo sugieren la existencia de 7 clusters en los datos. Se utiliza esta información para realizar una partición utilizando el método de k-medias para siete grupos.

kmedias<-kmeans(e.m.acne, centers = 7,iter.max = 100, algorithm = c("Hartigan-Wong"), nstart = 10)
# Graficas de número de clusters 
fviz_nbclust(e.m.acne, kmeans, method = "wss")
## Registered S3 methods overwritten by 'car':
##   method                          from
##   influence.merMod                lme4
##   cooks.distance.influence.merMod lme4
##   dfbeta.influence.merMod         lme4
##   dfbetas.influence.merMod        lme4

fviz_nbclust(e.m.acne, kmeans, method = "silhouette")

  El método gráfico también sugiere la existencia de siete grupos. Se exploran las diferencias de cada cluster utilizando los datos originales y no los datos estandarizados. Los datos se presentan para cada grupo. Se presenta el tamaño de cada cluster encontrando que uno de los clusters tiene solo tres elementos. Este grupo corresponde a los sujetos con un alto puntaje en todas las variables, incluida la variable Grasosapiel

# Tamaño de cada cluster 
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
kmedias$size
## [1] 71 80 17 64 68  3 46
mediascluster<-acne %>%
  mutate(Cluster = kmedias$cluster) %>%
  group_by(Cluster) %>%
   summarise_all("mean")

pander(mediascluster)
Table continues below
Cluster IdPaciente Atractivo Avergonzado Inseguro Disgustado
1 189.8 2.535 2.676 2.986 2.113
2 217.1 3.925 6.062 6.325 5.487
3 180.5 1.471 2.706 2.706 2.824
4 217.2 2.797 3.891 4.641 2.797
5 194.9 2.956 4.809 4.926 4.015
6 202.3 3.333 6 5.667 5.333
7 174.5 3.174 5.326 5.957 4.37
Table continues below
Molesto Insatisfecho Preocupado Preocupadopormedicamentos
2.296 2.169 1.915 2.211
5.812 6 5.713 5.975
3.647 1.765 1.529 6.412
3.266 3.469 2.484 3.328
4.559 4.25 3.706 4.559
6.667 5.667 3.333 6.667
4.609 4.935 4.087 4.239
Table continues below
Molestopornecesidaddemedica Negativamentelaconfianza
2.239 2.535
6.175 6.463
5.529 2.176
3.094 4.109
4.544 4.618
6.333 6.333
4.783 5.935
Table continues below
Preocupadoporconocerpersonas Preocupadoporsaliralugares Socializarconotros
2.718 2.38 2.817
6.513 6.688 6.662
2.647 1.941 2.706
4.359 4.625 5.297
4.456 4.618 5.147
6.333 7 6.667
6.065 6.109 6.543
Table continues below
Interactuarconpersonasquele Granos Granosconpus Costras
2.282 3.07 4.042 3.493
6.475 4.7 5.65 5.975
3.353 1.941 2.412 2.941
4.453 2.969 3.656 3.828
4.765 4.235 5.324 5.221
5.333 4.333 5.333 5.667
6.022 3.5 4.522 4.391
Preocupadodetenercicatrices Grasosalapiel
1.563 1
5.263 1
1.588 1
2.203 1
3.897 1
5 4.667
2.196 1

Se realiza la representación en el plano de los grupos.

fviz_cluster(kmedias, data= m.acne)

La representación gráfica de los grupos revela sobreposición, sin una completa discriminación de algunos elementos. Se realizan pruebas de hipótesis para evaluar si existen diferencias entre los grupos.

acneCluster<-(mediascluster<-acne %>%
  mutate(Cluster = kmedias$cluster))

anova(lm(acneCluster$Atractivo~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Atractivo
##                      Df Sum Sq Mean Sq F value Pr(>F)
## acneCluster$Cluster   1   0.01 0.01207  0.0066 0.9354
## Residuals           347 635.80 1.83229
anova(lm(acneCluster$Avergonzado~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Avergonzado
##                      Df Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  68.62  68.623    23.9 1.554e-06 ***
## Residuals           347 996.31   2.871                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Inseguro~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Inseguro
##                      Df Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  92.62  92.624  36.287 4.345e-09 ***
## Residuals           347 885.74   2.553                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Disgustado~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Disgustado
##                      Df  Sum Sq Mean Sq F value   Pr(>F)   
## acneCluster$Cluster   1   28.45 28.4528  8.7192 0.003363 **
## Residuals           347 1132.34  3.2632                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Molesto~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Molesto
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1   41.75  41.746  12.179 0.0005457 ***
## Residuals           347 1189.45   3.428                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Insatisfecho~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Insatisfecho
##                      Df  Sum Sq Mean Sq F value  Pr(>F)    
## acneCluster$Cluster   1   55.12  55.124  18.421 2.3e-05 ***
## Residuals           347 1038.36   2.992                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Preocupado~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Preocupado
##                      Df  Sum Sq Mean Sq F value  Pr(>F)  
## acneCluster$Cluster   1    9.47  9.4749  2.7683 0.09705 .
## Residuals           347 1187.65  3.4226                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Preocupadopormedicamentos~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Preocupadopormedicamentos
##                      Df  Sum Sq Mean Sq F value  Pr(>F)  
## acneCluster$Cluster   1   17.39 17.3884  4.2271 0.04053 *
## Residuals           347 1427.42  4.1136                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Molestopornecesidaddemedica~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Molestopornecesidaddemedica
##                      Df  Sum Sq Mean Sq F value   Pr(>F)   
## acneCluster$Cluster   1   31.81  31.814  8.2248 0.004385 **
## Residuals           347 1342.23   3.868                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Negativamentelaconfianza~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Negativamentelaconfianza
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  103.37 103.366  33.874 1.338e-08 ***
## Residuals           347 1058.86   3.051                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Preocupadoporconocerpersonas~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Preocupadoporconocerpersonas
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1   87.77  87.775  26.858 3.724e-07 ***
## Residuals           347 1134.03   3.268                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Preocupadoporsaliralugares~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Preocupadoporsaliralugares
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  134.09 134.085  38.468 1.583e-09 ***
## Residuals           347 1209.51   3.486                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Socializarconotros~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Socializarconotros
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  176.54 176.538  58.682 1.867e-13 ***
## Residuals           347 1043.91   3.008                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Interactuarconpersonasquele~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Interactuarconpersonasquele
##                      Df  Sum Sq Mean Sq F value    Pr(>F)    
## acneCluster$Cluster   1  142.89  142.89  41.776 3.471e-10 ***
## Residuals           347 1186.91    3.42                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Granos~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Granos
##                      Df Sum Sq Mean Sq F value Pr(>F)
## acneCluster$Cluster   1   0.08 0.07732  0.0483 0.8262
## Residuals           347 555.70 1.60144
anova(lm(acneCluster$Granosconpus~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Granosconpus
##                      Df Sum Sq Mean Sq F value Pr(>F)
## acneCluster$Cluster   1   0.57  0.5703  0.2794 0.5974
## Residuals           347 708.19  2.0409
anova(lm(acneCluster$Grasosalapiel~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Grasosalapiel
##                      Df Sum Sq Mean Sq F value  Pr(>F)  
## acneCluster$Cluster   1  0.553 0.55273  4.5557 0.03351 *
## Residuals           347 42.101 0.12133                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(acneCluster$Costras~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Costras
##                      Df Sum Sq Mean Sq F value Pr(>F)
## acneCluster$Cluster   1   2.48  2.4809  1.0966 0.2957
## Residuals           347 785.05  2.2624
anova(lm(acneCluster$Preocupadodetenercicatrices~acneCluster$Cluster, data = acneCluster))
## Analysis of Variance Table
## 
## Response: acneCluster$Preocupadodetenercicatrices
##                      Df  Sum Sq Mean Sq F value Pr(>F)
## acneCluster$Cluster   1    2.01  2.0105  0.5414 0.4624
## Residuals           347 1288.68  3.7138

Las variables Granos, Granosconpus y Grasosalapiel no alcanzaron valores estadísticamente significativos. En todas las demás variables, se identifica que al menos un grupo tiene diferencia signficativa en su promedio entre los clusters.