Este paquete está diseñado para poder graficar en forma de matriz un set de datos con múltiples variables, el resultado es una correlación de las variables elegidas en dicho dataset. Por defecto ggpairs provee 2 comparaciones diferentes por cada par de columnas que son seleccionas, y ya sea que despliegue la densidad o el conteo de variable en las gráfica de la diagonal de la matriz. A través de la configuración de distintos parámetros dicha diagonal puede ser reemplazada con ejes o etiquetas para las variables.
La sintaxis para este paquete está descrito de la siguiente manera:
ggpairs (data, mapping = NULL, columns = 1:ncol(data), title = "", upper = list(continuous = "cor", combo = "box", discrete = "facetbar", na = "na"), lower = list(continuous = "points", combo = "facethist", discrete = "facetbar", na = "na"), diag = list(continuous = "densityDiag", discrete = "barDiag", na = "naDiag"), params = NULL, ..., axisLabels = c("show", "internal", "none"), columnLabels = colnames(data[columns]), showStrips = NULL, legends = FALSE, verbose = NULL)
A manera de ejemplo, durante este trabajo utlizaremos un archivo que puede ser obtenido en la página del INEGI que muestra distintos valores de los estados de la República Mexicana, valor como población total, el partido en el gobierno, zona, etc. El dataset a utilizar se muestra abajo:
Estado | Poblacion | Partido | Zona | Unidades.economicas | Personal.ocupado | Remuneraciones | Gastos | Produccion.bruta | Consumo.intermedio |
---|---|---|---|---|---|---|---|---|---|
Aguascalientes | 1184996 | PAN | C | 47449 | 269467 | 16464.748 | 191766.54 | 183482.87 | 134530.86 |
Baja California | 3155070 | PAN | N | 95882 | 786056 | 59053.233 | 303259.20 | 303152.52 | 171797.48 |
Baja California Sur | 637026 | PAN | N | 28114 | 156985 | 6817.748 | 64786.42 | 51827.98 | 28492.47 |
Campeche | 822441 | PRI | S | 32628 | 187384 | 17272.389 | 83350.80 | 648033.01 | 50941.76 |
Coahuila de Zaragoza | 2748391 | PRI | N | 83639 | 718386 | 51999.011 | 541444.67 | 633956.40 | 426462.66 |
Colima | 650555 | PRI | C | 29273 | 138264 | 5762.470 | 49045.67 | 40858.59 | 21987.81 |
Chiapas | 4796580 | PRI | S | 155280 | 456013 | 13869.883 | 163157.29 | 157603.81 | 81533.20 |
Chihuahua | 3406465 | PAN | N | 97044 | 803175 | 59777.934 | 326617.86 | 320011.90 | 180725.20 |
Ciudad de Mexico | 8851080 | PRD | C | 415481 | 3603572 | 380314.987 | 2049042.82 | 2943782.84 | 1408762.13 |
Durango | 1632934 | PAN | N | 50452 | 266471 | 12980.015 | 117173.32 | 109487.44 | 65621.18 |
Guanajuato | 5486372 | PAN | C | 222969 | 1067292 | 55914.541 | 664779.22 | 701825.70 | 494383.01 |
Guerrero | 3388768 | PRI | S | 135564 | 396133 | 8732.267 | 91524.90 | 65970.96 | 31904.33 |
Hidalgo | 2665018 | PRI | C | 98567 | 353978 | 18135.260 | 313153.13 | 305949.31 | 251080.85 |
Jalisco | 7350682 | PRI | C | 313013 | 1561965 | 79596.965 | 776756.18 | 697866.51 | 417867.45 |
Mexico | 15175862 | PRI | C | 534838 | 2023837 | 96443.561 | 1153107.02 | 1116235.40 | 723871.73 |
Michoacan de Ocampo | 4351037 | PRD | C | 195355 | 611496 | 19560.681 | 223746.87 | 179291.97 | 110219.90 |
Morelos | 1777227 | PRD | C | 84651 | 297797 | 13715.106 | 146558.49 | 144574.83 | 95171.50 |
Nayarit | 1084979 | PRI | C | 46958 | 172246 | 5517.192 | 55240.37 | 44328.26 | 25487.55 |
Nuevo Leon | 4653458 | IND | N | 135482 | 1399230 | 123009.522 | 1150331.66 | 1317129.04 | 827305.23 |
Oaxaca | 3801962 | PRI | S | 177954 | 454996 | 13914.781 | 305242.18 | 295523.93 | 240825.81 |
Puebla | 5779829 | PAN | C | 251318 | 874001 | 38563.297 | 466031.04 | 467846.69 | 296833.39 |
Queretaro | 1827937 | PAN | C | 69022 | 458691 | 31602.639 | 338897.92 | 334841.81 | 231721.41 |
Quintana Roo | 1325578 | PRD | S | 45488 | 347726 | 12810.774 | 135805.49 | 112853.54 | 65277.64 |
San Luis Potosi | 2585518 | PRI | C | 88154 | 420366 | 22868.220 | 260083.09 | 278396.07 | 181242.28 |
Sinaloa | 2767761 | PRI | N | 93242 | 483728 | 19690.968 | 227240.71 | 160131.19 | 93309.84 |
Sonora | 2662480 | PRI | N | 90642 | 619690 | 39155.896 | 398416.04 | 439968.47 | 257997.82 |
Tabasco | 2238603 | PRD | S | 59973 | 288749 | 31217.726 | 258872.06 | 479509.46 | 185848.51 |
Tamaulipas | 3268554 | PAN | N | 104334 | 665731 | 51300.815 | 388455.06 | 423644.08 | 260256.13 |
Tlaxcala | 1169936 | PRI | C | 58245 | 179035 | 5738.694 | 72519.38 | 73902.67 | 51122.17 |
Veracruz de Ignacio de la Llave | 7643194 | PAN | S | 239392 | 905717 | 57643.510 | 628065.78 | 674358.79 | 421326.06 |
Yucatan | 1955577 | PRI | S | 98478 | 421961 | 17770.834 | 200363.23 | 183621.46 | 121712.70 |
Zacatecas | 1490668 | PRI | C | 51864 | 186220 | 7127.055 | 82236.86 | 94345.73 | 44106.76 |
La forma tradicional de ggpairs utiliza por defecto el despligue de todas las columnas del data set que se le solicita graficar, para nuestro caso se debe de reducir la cantidad de variables a considerar para que el tiempo de procesamiento no sea tan largo y evitar que R nos arroje un error por el cantidad de variables a considerar. En nuestro caso utilizaremos las variables Poblacion, Zona y Unidades.economicas:
ggpairs(INEGI,columns=c(4,2,5)
Para tener una presentación más vistosa se puede utilizar el parámetro mapping para incluir colores a las gráficas y pueda apreciarse de mejor manera. Utilizar una variable categórica podría ser una buena manera para diferenciar los valores
ggpairs(INEGI,columns=c(2,4,5),mapping=aes(color=Zona))
Otra forma de ejecutar el mismo comando en R es usando los nombres de las columnas en lugar de incluir el número, de esta forma:
ggpairs(INEGI,columns=c("Poblacion","Zona","Unidades.economicas"),mapping=aes(color=Zona))
Existen tres secciones importantes dentro de la matriz: lower, upper y diag. Las secciones lower y upper pueden contener gráficas de tipo continuos, combo o discrete
Abajo un ejemplo de como se pueden manejar distintos valore para las gráficas en los distintos tipos de variables:
ggpairs(
INEGI,columns=c("Poblacion","Zona","Unidades.economicas"),
lower = list (
continuos = "smooth",
combo = "facetdensity",
mapping=aes(color=Zona)
)
)
De igual forma, se pueden manipular las gráficas que deseamos aparezcan y las que no, esto simplemente usando el valor “blank” o NULL en alguna de las secciones. Un ejemplo abajo:
ggpairs(
INEGI,columns=c("Poblacion","Zona","Unidades.economicas"),
lower = "blank",
diag = NULL,
upper = list (
continuos = "smooth",
combo = "facetdensity",
mapping=aes(color=Zona)
)
)
Existe la manera de una vez obtenida la matriz de gráficas, se pueda invocar a solo una de ellas para una mejor visualización; sin embargo, es indispensable guardar el resultado de ggpairs y entonces poder invocar la gráfica deseada a través un simple sistema de coordenadas matricial.
INEGI_plot <- ggpairs(INEGI,columns=c("Partido","Remuneraciones","Personal.ocupado"),mapping = aes(color=Zona))
INEGI_plot
Para entonces seleccionar la gráfica de la esquina a la derecha y además agregar otros valores y detalles a la gráfica
INEGI_plot[3,3]+aes(color=Zona)
El paquete ggpairs ya no se encuentra disponible para las versiones más recientes de R (al menos para 3.3 y superiores), por lo tanto se debe descargar el paquete GGally que contiene las funciones de ggpairs