Este es un informe con los resultados de la aplicación de la técnica de componentes principales para la materia Introducción al Análisis Multivariado de la Carrera de Especialización en Estadística para Ciencias de la Salud.
Se utilizaron las librerías psych, tidyverse, corrplot y factoextra.
library(psych)
library(tidyverse)
library(corrplot)
library(factoextra)
Los datos utilizados para el presente análisis cuentan con una licencia CC0 1.0 Universal y pertenecen a Spreng (2022).
Referencias
Spreng, R. N. (2022, September 14). Goal-Directed Cognition in Older and Younger Adults. https://doi.org/10.17605/OSF.IO/YHZXE
Spreng, R.N., Setton, R., Alter, U. et al. Neurocognitive aging data release with behavioral, structural and multi-echo functional MRI measures. Sci Data 9, 119 (2022). https://doi.org/10.1038/s41597-022-01231-7
La base de datos original contiene 301 observaciones y 71 variables. Para el presente trabajo práctico solo se seleccionaron algunas necesarias para conocer la caraterística de la muestra evaluada (genero, edad y escolaridad de los participantes) y las 24 variables que serán analizadas para con el método de componentes principales.
datos <- read.csv2("https://osf.io/download/huj8p/",
sep = ",", header = TRUE, dec = ".")
datos_selec <- datos[,-c(1,3:6,9, 12:31, 37:50, 55,57,59)]
# Cambio de nombre de las variables a castellano
names(datos_selec) <- c("Genero","Edad","Educacion","BDI","GDS","P_apertura","P_responsabilidad","P_extraversion","P_amabilidad","P_neuroticismo","IRI_toma_perspectiva","IRI_fantasia","IRI_preocupacion_empatica","IRI_malestar_personal","E_hostilidad_desconfianza","E_apoyo_emocional","E_miedo_activacion","E_amistad","E_satisfaccion_de_vida","E_apoyo_instrumental","E_soledad","E_proposito","E_hostilidad_percibida","E_rechazo_percibido","E_estres_percibido","E_afecto_positivo","E_tristeza","E_autoeficacia")
datos_selec
Las variables seleccionadas incluyen puntuaciones obtenidas por los participantes en escalas que permiten valorar la presencia de sintomatlogía depresiva, características de la personalidad, componentes de la empatía y la autopercepción de diversas variables afectivas y de interacción interpersonal. A continuación, se describen brevemente cada una de ellas.
DEPRESIÓN
Se utilizaron las puntuaciones de dos escalas: GDS (Geriatric
Depression Scale de Yesavage et al., 1982) y BDI (Beck
Depression Inventory de Beck et al., 1996). En ambos casos, mayor
puntuación indica mayor presencia de sintomatología depresiva.
EVALUACIÓN DE LA PERSONALIDAD
Se consideró al enfoque de los cinco grandes factores de la
personalidad: apertura, responsabilidad, extraversión, amabilidad, y
neuroticismo. Se evaluó mediante la escala Big Five Aspects
Scale (De Young et al., 2007) que permite obtener las siguientes
puntuaciones:
P_apertura: Puntuaciones altas indican una tendencia de la persona a buscar nuevas ideas, emociones y actividades. Las personas con alta puntuación en Apertura se caracterizan por su capacidad imaginativa y su atracción al arte y a la cultura.
P_responsabilidad: Puntuaciones altas se asocian a personas con mayor persistencia, orden y la búsqueda de logros. Las personas con altos puntajes de Responsabilidad suelen ser autodisciplinadas y ambiciosas, con una tendencia a adherirse a planes, horarios y normas.
P_extraversion: Las personas con alta puntuación de Extraversión suelen ser personas enérgicas, emocionalmente positivas y con tendencia a buscar situaciones emocionalmente activadoras. Además, las personas con alta Extraversión emprenden la búsqueda activa de interacciones sociales y buscan estar en compañía de otros.
P_amabilidad: Puntuaciones altas indican una mayor tendencia a mantener relaciones interpersonales positivas, y evitar conflictos mediante el compromiso de las partes y la cooperación.
P_neuroticismo: Puntuaciones más altas indican una mayor tendencia a experimentar emociones negativas como miedo, ansiedad y culpa. Las personas con altos puntajes en Neuroticismo suelen preocuparse en demasía por las opiniones de otras personas sobre ellos, son defensivos y buscan cuidado y protección por parte de allegados.
EMPATÍA
Se utilizó la escala Interpersonal Reactivity Index (Davis,
1983) para evaluar las cuatro dimensiones de la empatía.
IRI_toma_perspectiva: Puntuaciones altas indican mayor habilidad para comprender y adoptar de forma espontánea el punto de vista psicológico de otras personas.
IRI_fantasia: Puntuaciones altas indican mayor tendencia de los sujetos a identificarse con sentimientos y acciones de personajes ficticios.
IRI_preocupacion_empatica: Puntuaciones altas indican mayor tendencia de los sujetos a experimentar sentimientos de compasión, preocupación y calidez hacia otros en situaciones desafortunadas.
IRI_malestar_personal: Puntuaciones altas indican mayor tendencia a experimentar sentimientos de incomodidad y ansiedad en intercambios interpersonales tensos o al presenciar experiencias negativas vividas por terceros.
AUTOPERCEPCIÓN DE AFECTIVIDAD Y RELACIONES
INTERPERSONALES
Evaluación de autopercepción de variables afectivas con la herramienta
NIH Toolbox Emotion (Gershon et al., 2013). Se consideraron a
las siguientes variables:
E_hostilidad_desconfianza: Mayor puntaje indica mayores actitudes cínicas y de desconfianza hacia los otros y sus motivaciones.
E_apoyo_emocional: Mayor puntaje indica una mayor percepción subjetiva de contar con la disponibilidad de una red social de contención. Particularmente, refiere a la valoración que tiene la persona sobre la disponibilidad de la propia red social para escuchar y ayudar con los problemas de uno de forma empática.
E_miedo_activacion: Mayores puntajes indican más presencia de síntomas somáticos realacionados con la activación de la emoción del miedo y la ansiedad.
E_amistad: Mayores puntajes indican una mayor percepción subjetiva de disponibilidad de amigos y compañía para interactuar.
E_satisfaccion_de_vida: Indicador de bienestar psicológico. Mayor puntuación indica una mayor percepción subjetiva respecto de una satisfacción general con las experiencias de la vida.
E_apoyo_instrumental: Mayor puntaje indica una mayor percepción subjetiva de contar con la disponibilidad de una red social de contención. Particularmente, refiere a la valoración que tiene la persona sobre la disponibilidad de otras personas en el círculo social para obtener ayuda material, en caso de ser necesario.
E_soledad: Mayores puntajes indican una mayor percepción subjetiva de soledad, entendida como la sensación autopercibida de distanciamiento social respecto de la propia red social.
E_proposito: Mayores puntajes indican una mayor autopercepción de que la vida propia importa y que se está realizando algo importante con ella.
E_hostilidad_percibida: Indicador de angustia social que refiere al grado en que un individuo percibe sus interacciones sociales diarias como negativas o angustiosas. Particularmente, mayores puntuaciones indican mayor hostilidad percibida, es decir una percepción de mayores discusiones o críticas del círculo social.
E_rechazo_percibido: Otro indicador de angustia social. Mayores puntuaciones indican mayor autopercepción sobre rechazo social, es decir una sensación frecuente de que otras personas no lo escuchan cuando pide ayuda o no le prestan atención.
E_estres_percibido: El estrés psicológico ocurre cuando un individuo percibe que las demandas ambientales o internas que son personalmente significativas exceden su capacidad de adaptación. La escala evalúa el estrés percibido definido como las percepciones individuales sobre la naturaleza de los eventos y su relación con los valores y los recursos de afrontamiento de un individuo. Mayores puntuaciones indican mayor estrés psicológico.
E_afecto_positivo: Refiere a sentimientos que reflejan un nivel de compromiso placentero con el entorno, como felicidad, alegría, emoción, entusiasmo y satisfacción. Mayores puntuaciones indican mayor afectividad positiva percibida.
E_tristeza: La tristeza se distingue por bajos niveles de afecto positivo y se compone de síntomas que son principalmente indicadores afectivos (mal humor) y cognitivos (percepciones negativas de uno mismo, del mundo y del futuro) de depresión. Mayores puntuaciones indican mayores sentimientos de tristeza.
E_autoeficacia: La autoeficacia se describe como la creencia de una persona en su capacidad para gestionar su funcionamiento y tener control sobre eventos significativos. Mayores puntuaciones indican mayor percepción de autoeficacia.
Para realizar el análisis de componentes principales se deben estandarizar las variables dado que la magnitud influye en el análisis. En este caso, todas las variables consideradas, excepto algunas, están expresadas en puntaje burto. Otras, están expresadas en puntaje T, que es el que arroja alguna de las escalas de evaluación. Se pasan todos a puntaje estandarizado con media = 0 y varianza = 1.
# Las variables 15 a 28 están expresadas en puntaje T. Los paso a Z.
estandarizacionT <- function(x){
(x-50)/10
}
datos_selec[15:28] <- apply(datos_selec[15:28], 2, estandarizacionT)
# El resto están expresadas en puntaje bruto. Estandarizo en función de su media y DE
estandarizacion <- function(x){
(x-mean(x, na.rm = TRUE))/sd(x, na.rm=TRUE)
}
datos_selec[4:14] <- apply(datos_selec[4:14], 2, estandarizacion)
datos_selec
Se unifican las dos puntuaciones de la evaluación de la
depresión ya que a una parte de la muestra se le aplicó la
escala GDS y a la otra el BDI (cada participante tuvo puntuaciones en
una o en otra pero no en ambas). Se crea una nueva variable llamada
depresion que contiene en una unica columna los valores
de esas escalas.
Además, se eliminan a las filas con datos faltantes ya que para aplicar
PCA se requiere tener a la matriz de datos completa. Luego, se observa
la composición final de la muestra y se aplicaron gráficos exploratorios
para observar el comportamiento individual de cada variable.
# Unificación de los valores de la evaluación de depresión en una única variable
datos_selec$Depresion <- ifelse(is.na(datos_selec$GDS),
datos_selec$BDI,
datos_selec$GDS)
datos_selec <- datos_selec[,-c(4,5)] # Elimino las columnas BDI y GDS
# Se eliminan a los participantes con datos faltanes.
datos_selec <- na.omit(datos_selec)
# Descripción de la muestra final
datos_selec$Genero <- factor(datos_selec$Genero)
summary(datos_selec[,c("Genero", "Edad", "Educacion")])
## Genero Edad Educacion
## F:119 Min. :18.00 Min. :12.0
## M: 90 1st Qu.:22.00 1st Qu.:14.0
## Median :60.00 Median :16.0
## Mean :45.79 Mean :16.2
## 3rd Qu.:68.00 3rd Qu.:18.0
## Max. :89.00 Max. :24.0
sd(datos_selec$Edad)
## [1] 23.61573
sd(datos_selec$Educacion)
## [1] 2.569193
Por último, se crea una base de datos que contiene únicamente las variables numéricas a analizar mediante PCA y se realizan gráficos exploratorios de las mismas.
# Base con variables numéricas de interés para aplicar PCA (24 variables)
datos.pca <- datos_selec[-c(1:3)]
datos.pca
# Gráfico de observación de la distribución de las variables
datos.pca%>% pivot_longer(cols = c(names(datos.pca))) %>%
ggplot(aes(x=value))+
geom_histogram(bins=25,color="white", fill = "#6C4DB6")+
facet_wrap(~name, scales='free')+theme_minimal()+
labs(x="Valor",y="Frecuencia",title="Distribuciones de las variables analizadas")
Previo a la aplicación del PCA se analiza la correlación entre las variables. Se muestra con una cruz si la asociación no fue significativa.
# Matriz de correlaciones de Pearson
mat.cor <- datos.pca %>% cor()
# Cálculo de los p-valores de las correlaciones:
pvalores <- cor.mtest(datos.pca, conf.level = .95)
# Grafico
mat.cor %>% corrplot(method = 'circle', type = "lower", tl.cex = 0.7,
order = 'FPC', p.mat =pvalores$p, insig = "pch", tl.col='black',
col = c('#AC0110','#CF3D49','#D4767E','#F2B5BA',
'#d9f0d3','#a6dba0','#5aae61','#1b7837'))
Testeo formal de factorización de la matriz mediante test de Bartlett
cortest.bartlett(cor(datos.pca), n = nrow(datos.pca), diag = TRUE)
## $chisq
## [1] 2253.993
##
## $p.value
## [1] 1.050175e-306
##
## $df
## [1] 276
Se utiliza el comando princom para la obtención de las componentes
#Aplicación de componentes principales
cp <- princomp(datos.pca)
summary(cp)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## Standard deviation 2.4097212 1.4778002 1.37799998 1.05041628 0.98954717
## Proportion of Variance 0.2896089 0.1089205 0.09470584 0.05503022 0.04883726
## Cumulative Proportion 0.2896089 0.3985295 0.49323529 0.54826550 0.59710277
## Comp.6 Comp.7 Comp.8 Comp.9 Comp.10
## Standard deviation 0.9612679 0.87726667 0.84088810 0.81547974 0.79480360
## Proportion of Variance 0.0460858 0.03838324 0.03526588 0.03316688 0.03150634
## Cumulative Proportion 0.6431886 0.68157181 0.71683769 0.75000458 0.78151092
## Comp.11 Comp.12 Comp.13 Comp.14 Comp.15
## Standard deviation 0.75504412 0.71244313 0.68868757 0.66800857 0.64132333
## Proportion of Variance 0.02843302 0.02531505 0.02365499 0.02225576 0.02051315
## Cumulative Proportion 0.80994394 0.83525898 0.85891398 0.88116974 0.90168289
## Comp.16 Comp.17 Comp.18 Comp.19 Comp.20
## Standard deviation 0.58178136 0.54122380 0.5136969 0.48352372 0.47289246
## Proportion of Variance 0.01688099 0.01460939 0.0131611 0.01166041 0.01115329
## Cumulative Proportion 0.91856388 0.93317327 0.9463344 0.95799478 0.96914807
## Comp.21 Comp.22 Comp.23 Comp.24
## Standard deviation 0.427329142 0.423028424 0.365717873 0.35111065
## Proportion of Variance 0.009107587 0.008925189 0.006670689 0.00614846
## Cumulative Proportion 0.978255662 0.987180851 0.993851540 1.00000000
Visualización de varianza explicada: screeplot
Importancia relativa de las componentes.
#Screeplot
fviz_screeplot(cp, addlabels = TRUE)
Número optimo de componentes
#Numero optimo de componentes
paran::paran(datos.pca, graph=FALSE, status=FALSE, all=FALSE)
##
## Using eigendecomposition of correlation matrix.
##
## Results of Horn's Parallel Analysis for component retention
## 720 iterations, using the mean estimate
##
## --------------------------------------------------
## Component Adjusted Unadjusted Estimated
## Eigenvalue Eigenvalue Bias
## --------------------------------------------------
## 1 6.651450 7.323501 0.672051
## 2 1.779523 2.343383 0.563859
## 3 1.713390 2.190718 0.477328
## --------------------------------------------------
##
## Adjusted eigenvalues > 1 indicate dimensions to retain.
## (3 components retained)
Visualización de loadings
cargas <- loadings(cp)
cargas <- as.data.frame.matrix(cargas)
cargas
Visualización de las cargas para cada
componente
Para visualizar más sencillamente las cargas de las variables más
importantes sobre las tres componentes.
cargas %>%
tibble::rownames_to_column(var="variable") %>%
pivot_longer(cols = -variable) %>%
filter(name %in% c("Comp.1","Comp.2","Comp.3")) %>%
group_by(name) %>%
slice_max(abs(value), n=13) %>%
ungroup() %>%
ggplot(aes(x=variable,
y=value))+
geom_col(alpha=0.8, fill = "#4DB693")+
coord_flip()+
facet_wrap(~name, scales='free')+ theme_minimal()+
labs(x='Variable',y='Carga factorial',
title='Carga factorial: componentes principales',
subtitle='Primeros 3 componentes (13 cargas más relevantes)')
Gráfico biplot (componentes 1 y 2)
#Gráfico biplot
fviz_pca_var(cp, col.var="contrib",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
Valores obtenidos por los participantes en las nuevas componentes
scores <- cp$scores
head(scores)
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7
## 1 3.9786940 1.16053849 -1.7603798 -0.7190505 0.1455485 -0.8122187 0.3865270
## 2 0.1425699 1.45185121 0.8549027 0.2582112 0.6862254 -0.2945873 0.9481933
## 3 -1.8237597 -0.42561925 1.5321758 -1.7037408 1.7808746 0.3882437 0.3698520
## 4 -1.5299320 0.03016299 0.2829128 0.3271762 0.5353028 0.3762474 -0.5223619
## 5 1.6313157 -0.14875332 0.2765372 -0.1552723 0.6783267 -0.9307110 0.9070954
## 6 3.8243991 -0.28428311 1.4043964 0.6283089 -0.3093836 1.6778905 0.7654457
## Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13
## 1 0.8150668 0.4174208 -0.1168843 -0.82847196 -0.9259921 1.2133835
## 2 -0.4127268 -0.9730268 0.9291146 -0.08618177 -0.1109648 -0.1192067
## 3 0.1585963 -0.9203144 -0.3425634 -1.38362644 0.8975229 -1.1247850
## 4 -0.4134038 0.4889463 0.2224821 0.51937823 -0.2786403 -0.2787734
## 5 0.5334173 -0.1369538 -0.2428280 -0.65617632 -0.5211278 0.9772728
## 6 -0.2281519 -0.3167166 -0.3365416 -0.37918515 -0.4139421 -0.6410650
## Comp.14 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19
## 1 -0.35460913 -0.0566026 -0.7533036 -0.7943444 0.18813738 0.5100166
## 2 -0.91549617 -0.1173258 0.1885900 -1.2053222 -0.01086492 -0.2645575
## 3 -0.39580526 1.0541447 0.6534513 -0.1754626 -0.17935725 0.2653339
## 4 -0.46096966 -0.3013933 0.1116645 0.2149347 0.57235791 0.5585903
## 5 0.49269926 1.2200844 0.4484085 0.3025041 -0.14849818 -0.3962409
## 6 -0.01010829 1.1648432 0.3235392 0.4637700 -0.58045898 0.5994362
## Comp.20 Comp.21 Comp.22 Comp.23 Comp.24
## 1 0.5600633 -0.46806088 -0.31747972 -0.3831325 -1.05052333
## 2 -0.1831459 -0.16744206 0.47641591 -0.2226944 0.10779323
## 3 0.7304423 -0.04239920 0.45627023 0.2897273 0.18201498
## 4 -0.2833324 -0.50076680 -0.18247966 -0.1082097 0.21363898
## 5 0.3327806 0.03122017 0.69930602 -0.4829952 -0.07278782
## 6 -0.1512225 -0.47843031 0.04300464 0.5584563 0.19283439
Gráfico de scores sobre las dos primeras componentes
fviz_pca_ind(cp, col.ind = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
repel = TRUE)
Mostrando la NO asociación entre las
componentes
Gráfico de demostración de una de las características de las componentes
obtenidas mediante PCA
corrplot(cor(scores), type = "lower", tl.cex = 0.7, tl.col='black')