TAREA

Utilice un conjunto de datos cuantitativos, seleccionado en un contexto que sea fácilmente interpretable para usted y en el que cuente mínimo con 10 variables, para:

  1. Determinar las matrices de varianza-covarianza y correlación para el conjunto de datos completo, analizar las correlaciones existente entre las variables.
  2. Obtener los valores propios y vectores propios tanto para el ACP como para el AF. Qué información se puede extraer de los valores y vectores propios obtenidos?
  3. Determinar vectores propios significativos y la varianza explicada por cada análisis factorial.
  4. Calcular los PCs y factores a partir de los vectores propios significativos
  5. Analizar los biplots de ambos métodos.
  6. Comparar las dos técnicas de análisis multivariado con base en la información obtenida en los puntos anteriores.
  7. ¿Cuál de los dos métodos es el adecuado para el conjunto de datos?

DATOS

Este conjunto de datos contiene información relacionada con la salud y datos socioeconómicos agregados a partir de múltiples fuentes, como la Encuesta sobre la Comunidad Estadounidense, clinicaltrials.gov y cancer.gov, que abarcan diversos condados de Estados Unidos.

Variables

  • geography: Nombre del condado. (String)
  • avganncount: número medio anual de casos de cáncer en el condado.(Numeric)
  • avgdeathsperyear: Promedio anual de muertes en el condado.(Numeric)
  • medincome: Ingreso medio de los hogares del condado.(Numeric)
  • povertypercent: Porcentaje de personas que viven en la pobreza.(Numeric)
  • studypercap: Número de ensayos clínicos per cápita en el condado.(Numeric)
  • medianage: Mediana de edad de la población del condado.(Numeric)
  • percentmarried: Porcentaje de personas casadas en el condado. (Numeric)
  • pcths25_over: Porcentaje de personas de 25 años o más que terminaron la escuela secundaria.(Numeric)
  • pctbachdeg25_over:Porcentaje de personas de 25 años o más que tienen una licenciatura.(Numeric)
  • pctunemployed16_over: Porcentaje de personas de 16 años o más que están desempleadas.(Numeric)
  • pctprivatecoverage: Porcentaje de personas con seguro médico privado.(Numeric)

A continuación se muestra la base de datos a utilizar.

Nota:La base de datos contiene más registros pero decidí quedarme con los 100 primeros condados para ilustrar las técnicas vistas en clase.

PCA

MATRIZ DE COVARIANZAS

Abajo podemos observar la matriz de covarianzas de los datos; de allí podemos notar lo siguiente:

  • La cantidad de muertes por año está asociada de forma positiva con el ingreso medio por año de la locación.
  • Como era de esperarse, el ingreso medio por año varia de forma inversa o negativa con los niveles de pobreza
  • Se observa una relación negativa o inversa entre el porcentaje de personas con seguro médico privado y el porcentaje de pobreza, lo cual es razonable al pensar que las personas de mayor capacidad económica son quienes acceden a los seguros médicos privados.
  • El número de muertes por año está asociado de forma positiva con el número promedio de casos de cáncer por año, lo cual podría indicar una alta tasa de letalidad de los cáncer detectados.
  • Se observa una relación negativa o inversa entre el porcentaje de personas mayores de 25 años que tienen una licenciatura y los niveles de pobreza, lo cuál demuestra la importancia de la educación en la calidad de vida de las personas y la sociedad. -De aquí podemos también deducir que las locaciones que tienen edad media menor presentan una media de casos de cáncer anual más alta, indicando que la población joven es quien padece más la enfermedad.

MATRIZ DE CORRELACIÓN

La matriz de correlación cabe resaltar la fuerte asociación lineal entre las variables; de esta forma se complementan y ratifican las afirmaciones sacadas anteriormente en el análisis de la matriz de covarianzas.

  • avganncount y avgdeathsperyear (positiva, directa)
  • avganncount y medianage (negativa, inversa)
  • medincome y povertypercent (negativa, inversa)
  • medincome y pctprivatecoverage (positiva, directa)
  • pctbachdeg25_over y pctprivatecoverage (positiva, directa)

De resaltar también que la vartiable percentmarried no tiene asociación lineal representativa con ninguna variable del dataset en cuestión.

PCA DE LOS DATOS

Se usa a la función PCA de la libreria FactoMineR con el parámetro scale.unit = TRUE para realizar la normalización de los datos previo a los cálculos de los valores y vectores propios de la PCA.

pca = PCA(datos2, scale.unit = TRUE)

A continuación se muestran los valores propios de la matriz de datos; allí se puede observar que los las tres primeras componentes (PC1, PC2 y PC3) de forma conjunta explican aproximandamente el 74,5 % de la variabilidad total, teniendo asociados valores propios mayores que 1, lo cual nos da una idea de que estos son estadísticamente significativos. De acuerdo a lo anterior, realizamos la PCA con 3 componentes.

Valores propios

Valores propios
eigenvalue percentage of variance cumulative percentage of variance
comp 1 4.7547025 43.2245678 43.22457
comp 2 2.1163513 19.2395571 62.46412
comp 3 1.3250082 12.0455295 74.50965
comp 4 0.9648440 8.7713095 83.28096
comp 5 0.7226592 6.5696293 89.85059
comp 6 0.4238939 3.8535811 93.70417
comp 7 0.3434572 3.1223378 96.82651
comp 8 0.2094210 1.9038268 98.73034
comp 9 0.0744483 0.6768029 99.40714
comp 10 0.0617854 0.5616852 99.96883
comp 11 0.0034290 0.0311730 100.00000

Varianza explicada

CONTRIBUCIÓN DE LAS VARIABLES

De acuerdo a lo anterior, decidimos entonces quedarnos con las tres primeras componentes principales para reducir la dimensionalidad del conjunto de datos; a continuación podemos observar la contribución que tiene cada una de las variables dentro de cada componente; podemos determinar que:

Para el componente 1, las variables de mayor peso o importancia son:

  • medincome
  • pcths25_over
  • pctbachdeg25_over
  • pctprivatecoverage

Esta componente podría representar el aspecto socio económico del condado, relacionado con los ingresos y niveles de alfabetismo de sus habitantes.

Para la componente 2 las variables de mayor contribución son:

  • povertypercent
  • medianage
  • percentmarried
  • pctunemployed16_over

Este componente podría estar orientado a caracterizar a los habitantes en cuanto al estado económico, su estructura demográfica y sus patrones de relaciones familiares y matrimoniales.

Para la componente 3 las variables de mayor contribución son:

  • avganncount
  • avgdeathsperyear
  • studypercap

Esta componente claramente reúne las variables asociadas a medir algunos aspectos relacionados con la salud de los habitantes del condado.

TABLA

Contribución de las variables
Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
avganncount 9.9225146 9.3304380 17.7983804 6.0728578 3.1358770
avgdeathsperyear 9.5801591 10.1673470 17.2542609 6.3824417 3.2750562
medincome 16.7067068 3.0326213 1.1284107 0.0471002 0.6815095
povertypercent 9.9660361 18.0010337 1.2818421 0.2174545 0.8656619
studypercap 0.0040349 0.2266133 14.7062551 79.3387978 4.0271416
medianage 5.3336752 16.1268821 9.6594145 1.8970818 12.1028817
percentmarried 0.2613415 24.5172300 20.7177677 0.3246227 1.0686260
pcths25_over 11.9468334 2.6879007 0.3156358 2.3995510 40.2313094
pctbachdeg25_over 16.0809582 0.0131446 3.1651285 2.8004967 12.5108474
pctunemployed16_over 6.2636004 10.2540347 10.2103770 0.0166109 19.6596079
pctprivatecoverage 13.9341398 5.6427546 3.7625272 0.5029849 2.4414814

Contribuciones a PC1

# Contributions of variables to PC1
fviz_contrib(pca, choice = "var", axes = 1)

Contribuciones a PC2

# Contributions of variables to PC2
fviz_contrib(pca, choice = "var", axes = 2)

Contribuciones a PC3

# Contributions of variables to PC2
fviz_contrib(pca, choice = "var", axes = 3)

BIPLOTS

A Continuación se muestran los biplots de todos los pares de componentes que se pueden generar de acuerdo a la selección previamente realizada.

PC1-PC2

fviz_pca_biplot(pca, repel = TRUE,addlabels = TRUE) #biplot

Acá podemos observar que las variables mayor correlacionadas con la componente 1 y 2 son precisamente aquellas que mayor aporte realizan a su construcción, tal como lo vimos anteriormente. Se puede observar adicionalmente por ejemplo que las variables pctprivatecoverage, medincome, pctbachdeg25_over, avganncount y avgdeathsperyear tienen una asociación positiva con la PC1 ya que sus vectores apuntan en la dirección positiva del eje asociado a la dim 1.

En el caso de la componente 2, las variables con mayor correlación positiva son: percentmarried y medianage. Las variables pctunemployed16_over y povertypercent por su parte tienen una asociación negativa con la componente 2.

La longitud de los vectores representa la calidad de la representación de las variables en cada componente.

PC1-PC3

fviz_pca_biplot(pca,repel = TRUE, axes = c(1, 3),addlabels = TRUE) #biplot

Acá podemos observar que las variables mayor correlacionadas con la componente 3 son studypercap, avganncount, *percentmarried y avgdeathsperyear lo cual corresponde con las variables que mayor aporte tienen a su construcción; adicionalmente tienen una asociación positiva con la componente 3 ya que sus vectores apuntan en la dirección positiva del eje asociado a la dimensión.

PC2-PC3

fviz_pca_biplot(pca, repel = TRUE,axes = c(2, 3), addlabels = TRUE) #biplot

Se puede observar aquí por ejemplo que las variables pctunemployed16_over, avganncount, povertypercent y avgdeathsperyear tienen una asociación negativa con la PC3 ya que sus vectores apuntan en la dirección negativa del eje asociado a la dim 3.

CORRELACIÓN CON LAS VARIABLES

DIM 1-DIM 2

Acá podemos ver las correlaciones de las variables con las componentes;los vectores asociados a una variable que estén muy cerca del eje que corresponde a una determinada componente, indica un correlación alta entre ellos. Por ejemplo, tal como concluimos anteriormente la variable pctbachdeg25_ove está fuertemente correlacionada con el componente 1. Además podemos determinar, debido al pequeño angulo que existe entre los vectores asociados a las variables pctunemployed16_over y povertypercent, que estas variables tienen una correlación alta; de igual forma podemos ver que los vectores de las variables medincome y povertypercent apuntan en direcciones opuestas formando un angulo entre ellas de aproximadamente 180 grados, lo que nos indica una fuerte correlación negativa.

fviz_pca_var(pca, col.var = "black") 

DIM 1-DIM 3

fviz_pca_var(pca, col.var = "black", axes = c(1, 3)) 

CALIDAD DE LA REPRESENTACIÓN

Acá podemos ver la calidad de la representación a través de un gráfico de barras. Las variables que tienen un valor cercano a uno, indican que la representación de la variable a través del par de componentes es fiel o de muy buena calidad. Por ejemplo, las componentes 1 y 2, conservan, explican o representan gran parte de la variabilidad de las variables medincome, povertyupercent y pctprivatecoverage. De forma general, con el uso de las tres componentes hay una buena representación de la mayor parte las variables consideradas en el dataset.

DIM 1-DIM 2

fviz_cos2(pca, choice = "var", axes = 1:2)

DIM 1-DIM 3

fviz_cos2(pca, choice = "var", axes = 1:3)

DIM 2-DIM 3

fviz_cos2(pca, choice = "var", axes = 2:3)

ANÁLISIS FACTORIAL

paper guia

El análisis factorial esta relacionado con los componentes principales, pero existen ciertas diferencias. En primer lugar, los componentes principales se construyen para explicar las varianzas, mientras que los factores se construyen para explicar las covarianzas o correlaciones entre las variables. En segundo lugar, componentes principales es un herramienta descriptiva, mientras que el an·lisis factorial presupone un modelo estadístico formal de generación de la muestra dada.

PERTINENCIA DEL MODELO

Primero realizaremos el test de esfericidad de Bartlett y la prueba de Kaiser-Meyer-Olkin. La Medida Kaiser-Meyer-Olkin es un estadístico que indica la proporción de varianza en las variables que pueden ser causadas por factores subyacentes. Los valores altos (cercanos a 1.0) generalmente indican que un análisis factorial puede ser útil con los datos. Si el valor es menor que 0,50, los resultados del análisis factorial probablemente no serán muy útiles. El test de esfericidad de Bartlett contrasta la hipótesis de que la matriz de correlaciones es una matriz de identidad, lo que indicaría que las variables no están relacionadas y, por lo tanto, no son adecuadas para la detección de estructuras.

Bartlett

mat_cor <- hetcor(datos2)$correlations 

cortest.bartlett(mat_cor)->p_esf
p_esf$p
## [1] 1.593664e-207

Dado que prueba de esfericidad de Bartlett tiene un valor-p de 1.593664e-207, con una confianza del 95% rechazamos la hipótesis nula y concluimos que la matriz de datos si contiene estructuras de correlación adecuadas para el análisis.

KMO

KMO(mat_cor)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = mat_cor)
## Overall MSA =  0.67
## MSA for each item = 
##          avganncount     avgdeathsperyear            medincome 
##                 0.59                 0.58                 0.69 
##       povertypercent          studypercap            medianage 
##                 0.62                 0.22                 0.61 
##       percentmarried         pcths25_over    pctbachdeg25_over 
##                 0.67                 0.63                 0.73 
## pctunemployed16_over   pctprivatecoverage 
##                 0.81                 0.82

Este test nos arroja un valor medio de 0.67 (mediocre); esto nos indica que los resultados del análisis factorial son aceptables.

NÚMERO DE FACTORES

De acuerdo a los valores propios mayores que la unidad que se aprecian en las gráficas podemos inferir que dos es el número de factores óptimos para análisis factorial.

scree plot

scree(mat_cor)

parallel Analysis Scree

fa.parallel(mat_cor,fa="fa")

## Parallel analysis suggests that the number of factors =  4  and the number of components =  NA

PRUEBA DE NORMALIDAD MULTIVARIANTE

Los test realizados para verificar el supuesto de normalidad fueron negativos, lo que nos indica con una confianza del 95% que los datos no provienen de una distribución normal multivariada; debido a ésto, no es conveniente estimar los parámetros del análisis factorial mediante el método de máxima verosimilitud.

Test Royston’s

library(MVN)
# Royston's MVN test
result <- mvn(data = datos2, mvnTest = "royston")
result$multivariateNormality
##      Test        H      p value MVN
## 1 Royston 165.1546 1.169275e-32  NO

Test Henze-Zirkler’s

# Henze-Zirkler's MVN test
result <- mvn(data = datos2, mvnTest = "hz")
result$multivariateNormality
##            Test       HZ p value MVN
## 1 Henze-Zirkler 1.493889       0  NO

Test de Doornik-Hansen

# Doornik-Hansen's MVN test
result <- mvn(data = datos2, mvnTest = "dh")
result$multivariateNormality
##             Test        E df p value MVN
## 1 Doornik-Hansen 1866.666 22       0  NO

EXTRACCIÓN DE FACTORES

Se usará el método de mínimos cuadrados ordinarios (OLS) para el cálculo de los factores, donde el número de factores es igual a dos. La rotación elegida para el análisis de resultados será la rotación varimax ya que nos interesa tener una estructura de factores en la cual cada variable pondere altamente a un único factor y sean así más claros en la interpretación.

modelo_varimax<-fa(mat_cor,
            nfactors = 2,
            rotate = "varimax",
            fm="minres") # modelo mínimo residuo

BIPLOT FA

En el Biplot podemos observar que las variables pctprivatecoverage, pctunemployed16_over, medincome y povertypercent son las más correlacionadas con el factor 1, mientras que las variables avganncount, avgdeathsperyear y medianage lo son con el factor 2.

#Rotaciones

biplot.psych(fa(datos2,nfactors = 2,fm="minres",rotate = 'varimax'),main = "Biplot con rotación Varimax",col=c(2,3,4),pch = c(25,18))  

INTERPRETACIÓN DE RESULTADOS

Diagrama

Acá podemos observar que el factor 1 tiene mayor aporte a la representación de las variables medincome, pctprivatecoverage y pctbachdeg25_over.Esto coincide con componente 1 formado en el PCA ya que ambos están asociados por las mismas variables. En el caso del factor 2 vemos que las variables avganncount y avgdeathsperyear son las que más relación tienen con este.

fa.diagram(modelo_varimax)

Varianza explicada

La proporción de varianza explicada que logramos con los dos factores es del 55.8%, lo cual es inferior a lo alcanzado con el PCA de tres factores (74.5%)

modelo_varimax$loadings
## 
## Loadings:
##                      MR1    MR2   
## avganncount           0.187  0.774
## avgdeathsperyear      0.167  0.779
## medincome             0.826  0.423
## povertypercent       -0.938       
## studypercap                       
## medianage                   -0.661
## percentmarried        0.289 -0.461
## pcths25_over         -0.371 -0.643
## pctbachdeg25_over     0.608  0.594
## pctunemployed16_over -0.612       
## pctprivatecoverage    0.809  0.289
## 
##                  MR1   MR2
## SS loadings    3.248 2.888
## Proportion Var 0.295 0.263
## Cumulative Var 0.295 0.558

Comunalidades

En general, vemos que la varianza explicada por los dos factores propuestos es bueno para todas las variables, excepto para studypercap, percentmarried, medianage y pcths25_over.

modelo_varimax$communalities
##          avganncount     avgdeathsperyear            medincome 
##          0.633692058          0.634921199          0.861345698 
##       povertypercent          studypercap            medianage 
##          0.880568730          0.002400202          0.437373648 
##       percentmarried         pcths25_over    pctbachdeg25_over 
##          0.296101508          0.551560145          0.722192586 
## pctunemployed16_over   pctprivatecoverage 
##          0.377158210          0.738694072

Unicidades

De forma inversa a lo analizado en la sección de comunalidades, vemos que las variables studypercap, percentmarried, medianage y pcths25_over no son bien explicadas por los dos factores considerados y por ende el modelo de reducción de dimensionalidad a través de dos factores no es tan adecuado.

modelo_varimax$uniquenesses 
##          avganncount     avgdeathsperyear            medincome 
##            0.3663117            0.3650825            0.1386560 
##       povertypercent          studypercap            medianage 
##            0.1194329            0.9976007            0.5626289 
##       percentmarried         pcths25_over    pctbachdeg25_over 
##            0.7039008            0.4484438            0.2778107 
## pctunemployed16_over   pctprivatecoverage 
##            0.6228446            0.2613077

CONCLUSIÓN

Debido al incumplimiento del supuesto de normalidad, es más pertinente en nuestro caso hacer uso de los resultados del PCA. Adicionalmente, el análisis mediante PCA nos permite realizar una reducción de la dimensionalidad con una mayor explicación de la variabilidad total. Por otra parte, el análisis de componentes principales hace énfasis en explicar la varianza de los datos, mientras que el objetivo del análisis factorial es explicar la correlación entre variables y encontrar factores no observables o medibles.