Análisis de Componentes Principales

En pocas palabras, el análisis de componentes principales (ACP) o PCA (Principal Component Analysis) permite reducir la dimensión de nuestra información.Transformando nuestras variables originales a nuevas variables (Componentes) no correlaionadas y evitándonos el lío de determinar la relación de todas las posibles combinaciones de las variables originales, lo cual conlleva a una mejor y más sencilla interpretación.

En R existe la función que hace todo el trabajo sucio de álgebra lineal. La desventaja de esta función es que únicamente arroja la salida descriptiva de los componentes principales. Por lo que si estamos interesados en obtener los coeficientes (loadings) y los puntajes de cada observación (scores) tendríamos que realizar el procedimiento correspondiente para cada caso.

El objeivo de esta práctica es crear una función que guarde en una lista todas las salidas descriptivas del ACP mencionadas anteriormente. Entonces a continuación presentamos la función .

Antes que todo eliminamos las observaciones con datos faltantes o NAs, si es que los hay.

data<-haven::read_sav("personality.sav")
data1<-na.omit(data)

Luego guardamos en una variable el ACP normal de la función .

pca<-princomp(data1)
  rpca<-summary(pca)

Ahora con la función calculamos los coeficientes y los guardamos en una variable.

  rpca2<-pca$loadings

Guardamos los puntajes de cada observación en una matriz.

rpca3<-pca$scores

Y finalmene guardamos todo en una lista

list(rpca,rpca2,rpca3)

Por lo que nuestra función queda de la siguiente forma

propca<-function(data){
  if(any(is.na(data)==TRUE)){
    data1<-na.omit(data)
  }else{
    data1=data
  }
  
  pca<-princomp(data1)
  summary(pca)
  rpca<-summary(pca)
  
  rpca2<-pca$loadings
  rpca3<-pca$scores
  
  list(rpca,rpca2,rpca3)
  }
propca(data)