Fantásticos gráficos de Análisis de Componentes Principales en R

El Análisis de Componentes Principales (PCA) es un análisis meramente descriptivo cuya función es reducir el número de variables existentes, excluyendo aquéllas que tengan menos influencia a la hora de establecer diferencias entre los individuos. Por ello, el peso que tiene la figura o el gráfico del análisis de componentes principales a la hora de valorar la importancia de cada variable es importantísima. Esta figura resume gráficamente todo el análisis de componentes principales, y su correcta interpretación, apoyada por los datos numéricos, es básica a la hora de obtener conclusiones. Afortunadamente en R hay paquetes que permiten realizar fantásticos gráficos de Análisis de Componentes Principales para poder facilitar su interpretación. A continuación detallamos dichos pasos.

Quiero leer...

Paso 1. Fantásticos gráficos de Análisis de Componentes Principales: se requieren los paquetes devtools, ggbiplot y vqv

Para instalar los paquetes ggbiplot y vqv tenemos que cargar primero el paquete devtools, ya que éste contiene una función de instalación de los dos primeros. Debido a que ggbiplotvqv no se encuentran en los respositorios de R, sino en Github, el comando de devtools va en relación a la instalación a través de Github. Si no tenemos instalado el paquete devtools, lo podemos instalar siguiendo este tutorial en R Commander. Una vez instalado, lo cargamos e instalamos los otros dos paquetes siguiendo los siguientes comandos:

[sourcecode lang=»r»] library(devtools)
install_github("ggbiplot", "vqv")
[/sourcecode]

A continuación, podemos cargar en R Commander el paquete ggbiplot siguiendo los menús de la interfaz gráfica, o bien introduciendo y ejecutando el siguiente comando:

[sourcecode lang=»r»] library(ggbiplot)
[/sourcecode]

Paso 2. Cargamos los datos wine y realizamos la gráfica con ggbiplot

Para ilustrar la generación de esta figura, usaremos los datos del «wine«, que vienen integrados dentro del paquete «ggbiplot«. Podemos cargarlos a través de la interfaz gráfica o ejecutando el siguiente comando:

[sourcecode lang=»r»] data(wine)
[/sourcecode]

A continuación ejecutamos el siguiente código para obtener la figura del análisis de componentes principales:

[sourcecode lang=»r»] wine.pca = prcomp(wine, scale. = TRUE)
g = ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE)
g = g + scale_color_discrete(name = »)
g = g + opts(legend.direction = ‘horizontal’, legend.position = ‘top’)
print(g)
[/sourcecode]

ggbiplot en acción con los datos del ejemplo wine

 

Paso 3. Comprender y personalizar el comando ggbiplot

Una vez vistos esos ejemplos, introduzcámonos dentro de los atributos que se pueden modificar del comando ggbiplot para personalizar nuestras figuras:

[sourcecode lang=»r»] ggbiplot(PCA, obs.scale = 1, var.scale = 1, groups = X, ellipse = TRUE/FALSE, circle = TRUE/FALSE)
[/sourcecode]

En ese comando, podemos modificar principalmente 4 atributos:

  1. PCA: se refiere al nombre que hayamos dado al análisis de componentes principales.
  2. Groups = se refiere al nombre de la variable donde están los grupos.
  3. Ellipse = TRUE/FALSE. Se refiere a realizar elipses alrededor de cada uno de los grupos.
  4. Circle = TRUE/FALSE. Realiza un círculo que agrupe todos los pesos de las variables.

ggbiplot y atributos

Como podéis ver, generar fantásticos gráficos de análisis de componentes principales usando R es muy sencillo. Espero que estas imágenes os sean de utilidad y os valgan para dar una oportunidad a estos paquetes estadísticos.

Referencias

20 comentarios en «Fantásticos gráficos de Análisis de Componentes Principales en R»

  1. Error: could not find function «opts»
    se tiene que utilizar la fución «theme» en lugar de «opts» para que ponga horizontal la leyenda

    Saludos

    Responder
  2. ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
    groups = wine.class, ellipse = TRUE, circle = TRUE) +
    scale_color_discrete(name = ») +
    theme(legend.direction = ‘horizontal’, legend.position = ‘top’)

    Responder
  3. g = g + scale_color_discrete(name = »)
    g = g + opts(legend.direction = ‘horizontal’, legend.position = ‘top’)

    BUEN DÍA !
    cual es la diferencia en esas dos gráficas?. Porque a mi me salen idénticas.

    Responder
  4. Hola me ha salido todo bien, muchas gracias. Al final para instalar los demás paquetes use:
    >library(devtools)
    > install_github(«vqv/ggbiplot»)
    No se si de esta manera me instalo también el paquete»vqv»??? al final me salió el gráfico idéntico pero me apareció un mensaje de error:
    Error: could not find function «opts»
    No se en que influye esto? podría ayudarme?

    Responder
  5. Hola Mario,

    Fantástico post de principal component. Una herramienta estadística muy interesante para ordenar las variables por orden de información según la diagonalización de la matrix de covarianza.

    Otro de los gráficos interesantes es graficar el valor del porcentaje de la varianza de cada principal component con un barplot para ver cuanta información retiene cada componente.

    Muchas gracias,

    Salut!

    Responder
    • Por supuesto, el gráfico de desmoronamiento, donde se muestra el porcentaje de varianza acumulado por cada componente, lo tengo explicado en otras entradas. Gracias Jordi!

      Responder
  6. He descargado e instalado el paquete devtools pero cuando ejecuto el comando siguiente :

    install_github(«vqv/ggbiplot»)

    recibo el siguiente mensaje:

    Skipping install of ‘ggbiplot’ from a github remote, the SHA1 (7325e880) has not changed since last install.
    ## Use `force = TRUE` to force installation

    He probado el siguiente comando:

    install_github(«vqv/ggbiplot», ‘force = TRUE’)

    y tampoco he tenido éxito.

    Espero que me podáis resolver mi problema.

    Saludos,

    Laura

    Responder
  7. Buenos días,
    al agregar las opciones del grafico de:
    groups = Mul.C.f, ellipse = FALSE, circle = FALSE) +
    scale_color_discrete(name = »)
    theme(legend.direction = ‘horizontal’, legend.position = ‘top’)
    Obtengo este error
    Error: Aesthetics must be either length 1 or the same as the data (169): colour, x, y

    Ayuda
    Gracias

    Responder
  8. Hola, no me permite instalar los paquetes y he usado estas opciones

    install_github(«ggbiplot», «vqv»)
    install_github(«vqv/ggbiplot», ref = «experimental»)

    y ninguna me ha funcionado, me aparece

    Downloading GitHub repo vqv/ggbiplot@experimental
    Error in utils::download.file(url, path, method = download_method(), quiet = quiet, :
    cannot open URL ‘https://api.github.com/repos/vqv/ggbiplot/tarball/experimental’

    si alguien me podría ayudar seria fantástico. Gracias

    Responder

Deja un comentario