[MÚSICA] [MÚSICA] [MÚSICA] Ahora aprenderemos un poco del paquete ggplot2. Este paquete para fines prácticos nos provee con gráficos de alto nivel donde el usuario no tiene que preocuparse por los detalles, como lo hacíamos en el sistema base de gráficos de R. En este, las leyendas, los tipos de fuentes y todos los detalles que son llevados a cabo hasta la última minucia con el paquete base, no tenemos que preocuparnos por ello, porque you trae valores por omisión. Estos valores por omisión son de tan buena calidad, que incluso estos gráficos podemos utilizarlos inmediatamente en publicaciones. A diferencia del sistema base de gráficos de R, el sistema ggplot2 funciona con base en capas, donde cada una de las capas va añadiendo nueva información. Por ejemplo, en la primera capa se pueden ver los datos crudos, y luego se van añadiendo capas con anotaciones o de resúmenes estadísticos. Este modo de trabajo es la manera en cómo se estila hacer los análisis estadísticos. Así que en vez de pasar demasiado tiempo concentrado en los detalles de tu gráfico, lo que puedes hacer aquí es pensar de qué manera puedes ir ajustando tus datos y los mapeos hacia atributos estéticos de tal manera que puedas revelar más información de ellos. La única función que veremos en este curso del paquete de ggplot2 es la función qplot. Esta función nos permitirá hacer una gran cantidad de gráficos y de modificar varios atributos estéticos de estos gráficos. you que incluso llevar a cabo o tratar de entender todas las minucias del paquete, nos tomaría todo un curso entero. Con esta función aprenderemos a hacer diferentes gráficos, y una vez que sepamos qué gráficos podemos hacer aprenderemos cómo mapear variables a diferentes atributos estéticos, como son los colores, los tamaños o las formas. También podemos usar condicionamientos para dividir subconjuntos de nuestros datos y así poder cambiar la apariencia de los gráficos que se generen. Para poder llevar a cabo los ejemplos utilizaremos un data set o conjunto de datos, que viene con el paquete ggplot2, este se llama diamonds. Este no es más que las medidas y la información de calidad y precios de más de 54.000 diamantes. Como podemos observar, las columnas x, y, z, depth y table no son más que las medidas de las dimensiones del diamante. Ahora, como los datos son demasiados, tomaremos una pequeña muestra para hacer algunos ejemplos y en algunos otros utilizaremos todos los datos para poder generarlos. Esta muestra se toma de la siguiente manera, utilizando la función sample y pasándola a el dataframe de diamonds y finalmente guardándolo en un nuevo, en una nueva variable que conocemos como dchico. Es solo un nombre que le puse para utilizar esta nueva subconjunto de datos. Ahora podemos crear algunas gráficas, qplot al igual que la función plot del sistema base, recibe 2 parámetros iniciales que es los valores en x, y los valores en y, y entonces grafica la gráfica de dispersión. La diferencia con plot es que en este caso no necesitamos pasarle los vectores directamente, sino los nombres de las columnas del dataframe, y luego utilizamos el parámetro data donde especificamos el nombre del dataset que estamos utilizando para graficar. Podemos ver que hay mucha saturación por la gran cantidad de datos que hay, you que estamos utilizando el dataset completo. Ahora, si utilizamos la muestra que le llamamos dchico, podemos observar entonces de una mejor manera la gráfica que se genera. Podemos observar en el gráfico inicial que hay cierta correlación, parece ser exponencial y además hay ciertos lugares en donde parece hacerse estrías. Esto, el primer problema podemos tratar de compensarlo haciendo una transformación de las variables, es decir en vez de utilizar los ejes lineales, podemos hacer una transformación logarítmica de las variables y entonces estaríamos graficando los valores logarítmicos contra los valores logarítmicos de x y de y. Se puede ver que hay un poco de sobregraficación todavía, por lo que no podemos llevar a cabo conclusiones tan prontas. Es decir, todavía podemos hacer algunas modificaciones a nuestra gráfica para poder entender mejor qué está pasando. También podemos utilizar los argumentos de la variable como combinaciones de otros, por ejemplo en este caso que estamos viendo, las variables x, y, y z las combinamos para formar una única variable y las comparamos con la variable o la columna cara del dataset diamonds. Ahora hablaremos de los atributos estéticos, comenzamos por el color. En ggplot2 podemos mapear algún atributo o categoría que tenga una variable a un atributo estético, en este caso el color que va a ser dibujado en la gráfica. Por ejemplo si utilizamos el dataset dchico, podemos mapear la columna color que nos indica el color del diamante a un color distinto en la gráfica, que es justo lo que estamos observando. Además del color, otro atributo estético que tenemos es shape, shape se refiere a la forma con la que va a pintar los puntos en la gráfica. Por ejemplo, shape también es muy bueno para poder mapear de características categóricas a una característica gráfica. En este caso utilizando nuestro subconjunto de datos dchico, podemos mapear cada uno de los cortes distintos del diamante, de los diamantes que tenemos a una figurita distinta cuando se pinta en la gráfica. Así podemos observar cómo cada tipo de corte va formando algún tipo de grupo en la gráfica. ¿Recuerdan cuando en la primera gráfica, cuando pintamos todos los puntos de nuestro dataset diamonds, estaba demasiado saturado? Bueno, pues el tercer atributo que vamos a ver es alpha, este nos indica cuántos puntos se necesitan pintar o aparecer en un mismo lugar para que podemos pintar un punto completamente opaco. En el caso que estamos observando en este momento, podemos ver que le pide un alpha de un décimo, es decir cada vez que se pinte un punto en un lugar, se pintará solo un décimo de lo que sería un punto único opaco. Es decir, necesitaríamos 10 puntos en el mismo lugar para que se pinte un primer punto. Notemos ahora en esta segunda gráfica, como si cambiamos el alpha de un décimo a un centésimo, podemos encontrar nuevos patrones que no eran tan claros cuando utilizábamos un alpha más grande. El último atributo estético que vamos a aprender a utilizar es size, o como su nombre lo indica en inglés tamaño. Este atributo lo que hace es que en cada uno de los puntos que estamos dibujando, dependiendo de la medida o de la categoría que estemos mapeando a la variable, nos pintará un punto más grande o más pequeño. Podemos ver que mapeando la variable table podemos pintar puntos de distintos tamaños. El particular uso de este ejemplo, no es muy bueno y no nos da nueva información, por lo que quizá no sea conveniente utilizarlo. Antes de continuar tenemos que hacer algunas consideraciones estéticas para tratar de generar las mejores gráficas. Como you se habrán dado cuenta, algunas variables mapean mejor a ciertos atributos estéticos de mejor manera. Por ejemplo, color y la forma o shape se mapean muy bien a variables categóricas. Mientras que tamaño o size trabaja mejor con variables que son del tipo continuo. A veces la cantidad de datos puede hacer una gran diferencia y you vimos que podemos usar el alpha para poder cambiar la saturación mayor o menor, dependiendo del número de puntos que tengamos. Si esto no nos ayuda, entonces podemos tratar de subdividir los grupos de las variables que se forman en una sola variable con una técnica especial conocida como faceting. Este atributo nos permite crear una tabla, donde podemos subdividir en grupos. Por ejemplo, como lo estamos viendo en este momento, si queremos ver cómo se comporta la variable carat contra la variable price y le pedimos que nos haga el faceting por color, entonces por cada color de diamante nos va pintando el carat contra el price, o el peso del diamante contra el precio. Entonces, podemos observar cómo se va comportando para cada uno de los diferentes colores de diamantes. Esto nos permite la comparación visual inmediata. En una primera instancia, la función qplot nos sirvió para crear gráficas de dispersión, es decir valores x contra valores y. Este comportamiento puede ser modificado utilizando los geoms o geometric objects, que no son más que una descripción del tipo de objeto que queremos utilizar para graficar. Haremos una revisión de los geoms disponibles que tenemos con qplot. En principio, el primero y el que se utiliza por omisión es point, que es justo lo que utilizamos en un principio, valores x contra valores y, y los que nos dibuja es un puntito. También podemos utilizar otro geom conocido como smooth, este lo que hace es que ajusta una curva a los puntos que estamos pintando, además de que también nos dibuja el error estándar de esta curva. Una característica de smooth es que podemos especificar qué tipo de ajuste queremos para la curva, puede ser de regresión lineal, o incluso métodos más sofisticados como los splice. Otros geoms importantes que vamos a ver son el jitter y boxplot. Jitter nos permite analizar en cajas cómo se están dispersando nuestros puntos, dependiendo de las variables que queramos observar. Si usamos el geom boxplot, este nos graficará una gráfica de caja donde podemos observar la distribución de nuestros datos divididos por las categorías que nosotros querramos observar. Otros 2 geoms que son muy importantes y que están fuertemente ligados son line y path. Line nos dibuja una línea entre 2 puntos, como si fuera uno seguido del otro, y esta gráfica va generándose de izquierda a derecha. Mientras que path lo que va haciendo es puede tomar cualquier dirección, de izquierda a derecha, de derecha a izquierda. Es por eso que line se usa mucho para graficar series de tiempo, como la que estamos observando en pantalla. También es importante notar que en este ejemplo, el dataset que estamos utilizando es otro. En este, lo que estamos observando es el cambio de un precio en el tiempo. Finalmente podemos generar gráficas en una sola dimensión. Esto cuando por ejemplo queremos observar cómo se está comportando la distribución de cierta variable en nuestro conjunto de datos. Hay 3 muy importantes, la primera es histogram, que es justamente la que estamos observando en este ejemplo. En esta utilizamos el geom histogram para generar el histograma de la variable carat. Además de esta, también existen freqpoly que nos genera un polinomio de frecuencias, y finalmente density, que nos genera una gráfica de la densidad de nuestros datos, una gráfica suave de la densidad de nuestros datos. [MÚSICA] [MÚSICA]