1. Graficando el Data Frame de un conjunto de datos 1

1.1. Lectura de Datos Multivariados

La base de datos corresponde a una cosecha de vino con 3 tipo de calidad y para cada una existen diversos componentes o variables. Así, observamos que se trata de una base datos multivariado.

#install.packages("rattle")
data(wine, package = "rattle")
head(wine, 4) # observamos las primeras lineas de la base datos
# crearemos una nueva base de datos, para no modificar la base original.
vinos <- wine

1.2. Preparando el Data Frame

# observamos la base de datos
# View(vinos)
# si queremos elimminar una columna o variable que no nos interesa
vinos$Proline = NULL
head(vinos, 4) # comprobamos
# Para que R entienda a cada columna como una variable independiente
attach(vinos)
# Ahora podemos llarma a cada columna directamente y no utilizar el $

1.3. Análisis de Pares

Realizaremos un análisis de las variables a través de correlaciones, con el objetivo de identificar las variables que nos van a permitir diferenciar entre los diferentes cultivos de vinos. Análisis gráfico

#install.packages("car")
library("car")
# Realizamos la matriz de correlaciónes de manera gráfica entre pares de variables
pairs(vinos)

Podemos observar las correlaciones entre las variables. Así, notamos que entre las variables Phenals y Flavanoids existe una correlación positiva gráficamente. Además, podemos entender que en la columna Type expresa los tres tipos de visno; así, para el caso del Alcohol observamos que cada tipo de vino concentra un nivel diferente de alcohol. Esto puede apreciarse mejor en un gráfica de tipo boxplot.

1.4. Diseño de la Gráfica de Correlación

A través de una gráfica de tipo boxplot podemos análisar de forma gráfica la distribución de cada variable y saber cuales pueden correlacionarse.

Boxplot(vinos)

##  [1] "124" "138" "174" "60"  "26"  "122" "60"  "74"  "122" "128" "70"  "74" 
## [13] "79"  "96"  "96"  "111" "152" "159" "160" "116"

nótese que existe una variable con valores fueras de rango. Notamos que se trata de la variable magnesium. Nótece ademas, que es diferente el comando boxplot y Boxplot, en el segundo caso nos ínidica además qué valores estám fuera de rango. Ahora bien, quitaremos esas variables que se encuentran fuera de rango.

vino2 <- vinos
vino2$Magnesium = NULL
vino2$Alcalinity = NULL
Boxplot(vino2)

##  [1] "124" "138" "174" "60"  "26"  "122" "96"  "111" "152" "159" "160" "116"

Ahora podemos observar cómo está distribuida cada variable para los tres tipos dieferentes de vinos. Por ejemplo, notamos que la variable Color es variada, mientras que la variable Alcohol tiene un comportamiento más homogéneo, posiblemente similar al de una distribución normal.

1.5. Diseño de Gráficas tipo Boxplot

Ahora, no interesa análizar cada variable para seleccionar aquella que me permita identificar o diferenciar entre los tres tipo de cultivo.

Boxplot(Alcohol, Type)

## [1] "63" "72" "73"

Podemos observar cómo se distribuyen los niveles de alcochol de acuerdo a los tres tipos de vino. Así, notamos que la concentración o media de alcohol para el vino de tipo 1 es diferente al del tipo 2, y este último presenta una ligera desviación hacia los valores extremos o fuera de rango. Entonces, la cantidad de alcohol varía de acuerdo a cada tipo de vino.

Boxplot(Flavanoids, Type)

## [1] "122" "151"

En el caso de la variable Flavonids también notamos que varía de acuerdo a cada tipo de vino. Así, notamos que el \(50\%\) de los valores no pertenecen a ninguno de los cultivos. Por lo tanto, los Flavonides son una característica distintiva en cada tipo de vino; es decir, podemos diferenciar a cada tipo de vino de acuerdo a sus nivel de Flavonoids.

Boxplot(Hue, Type)

## [1] "116"

En el caso de la variable Hue, notamos que no podemos usarla como variable característica o distintiva entre los tres tipos de vinos, porque el \(50\%\) de los datos se enceuntran tanto en el tipo 1 como en el tipo 2; es decir, se traslapan.

Boxplot(Color, Type)

## [1] "50"  "62"  "67"  "84"  "122"
Boxplot(Phenols, Type)

## [1] "4"   "53"  "159" "160"

Para el caso de la variable Color notamos que se traslapan las los tipos 1 y 3, por lo que no podemos usarlar como variable distintiva. Mientras, que en el caso de la variable Phenols ocurre lo contrario; es decir, no existe traslape y la diferencia entre el tipo 1 y 3 es considerable por lo que podría ser una variable distintiva entre los tres tipos de vino.

2. Graficando el Data Frame de un conjunto de datos 2

2.1. Ajustando los parámetros de graficación

Ahora, si queremos agrupar varias gráficas para compararlas podemoas hacer lo siguiente.

layout(matrix(1:6, nc = 2))
Boxplot(Alcohol, Type)
## [1] "63" "72" "73"
Boxplot(Flavanoids, Type)
## [1] "122" "151"
Boxplot(Hue, Type)
## [1] "116"
Boxplot(Color, Type)
## [1] "50"  "62"  "67"  "84"  "122"
Boxplot(Phenols, Type)
## [1] "4"   "53"  "159" "160"
Boxplot(Dilution, Type)

## [1] "141" "142"

2.2. Graficando con qplot

Luego de identificar las variables de nuestro interés, debemos verificar si tienen una correlación que NO sea útil, para ello primero realizamos una gráfica.

library("tidyverse")
qplot(Phenols, Flavanoids, aes(colour = Type))

# o lo que es equivalente
ggplot() +
   geom_point(aes(x = Phenols, y = Flavanoids, color = Type)) +
   geom_smooth(aes(x = Phenols, y = Flavanoids, color = Type), method = lm) +
   theme_minimal()

Como podemos observar, existe una correlación entre los tres tipos de vinos en terminos de las variables Phonols y Flavonids. Aparentemente un correlación lineal positiva. A estos tres tipos de vinos también se les puede llamar clusters. Ahora bien, debemos entender que primero se analizaron las variables de manera independiente y ahora analizamos, de entre estas variables distintivas, cuál es su relación entre ellas mismas y si existen grupos distintivos de acuerdo al tipo de vino o cultivo. De esta manera, observamos en la gráfica que existe una clara diferencia entre las correlaciones en las variables para el vino de tipo 1 y 3, mientras que en el caso del tipo 2 parece pertenecer a un término medio.

2.3. Creación de líneas de tendencia

#library("tidyverse")
qplot(Phenols, Flavanoids, color = Type, geom = c("point", "smooth"))

Notamos quie existe una separación por clusters entre los tres tipos de vinos.

2.4. Agregando Facetas a la grafica

Ahora realizaremos un ajuste lineal en la gráfica

ggplot(data = vinos) +
   geom_point(aes(x = Phenols, y = Flavanoids, color = Type)) +
   facet_grid(~Type, scales = "free") +
   geom_smooth(aes(x = Phenols, y = Flavanoids), method = "lm")

Ahora sí podemos observar con claridad los tipos de vinos de acuerdo a la combinación de variables seleccionada. Notamos, que en el caso del vino de tupo 2 el ajuste lineal es mucho mejor que en el tipo 1 y por supuesto que el tipo 3. Esta gráfica nos muestras las correlaciones entre las dos variables de acuerdo al tipo de vino. Además, decordemos que otra variable muy distintiva era el contenido de Alcohol. Entonces, podemos agregar esta nueva variable y obtener una gráfica en 3D.

ggplot(data = vinos) +
   geom_point(aes(x = Phenols, y = Flavanoids, color = Type, size = Alcohol))+
   facet_grid(~Type, scales = "free") +
   geom_smooth(aes(x = Phenols, y = Flavanoids), method = "lm")

Podemos observar que el contenido de alcohol del vino de tipo 1 es un poco mayor que el del tipo 3, mientras que en el caso del tipo 2 el contenido de alcohol es variado. De esta manera, podemos apreciar este tipo de análisis multivariado porque es un misma gráfica están contenidas 3 variables, y porque podemos, gráficamente, interpretar posibles resultados de interés.

Descargar el archivo en pdf desde aquí.