#Cargamos el dataset “Iris” que, contiene, al menos, tres variables posiblemente correlacionadas

El conjunto de datos “Iris” es un conjunto de datos utilizado en el campo de la estadística y el aprendizaje automático, gracias a que se encuentra incluido en la instalación base de R, y está disponible para su uso inmediato en R Studio sin necesidad de instalar paquetes adicionales. Asimismo, “Iris” ha sido ampliamente utilizado en distintas actividades relativas al presente programa de postgrado.

data(iris)

#Visualizamos la estructura del dataset “Iris”

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

El conjunto de datos “Iris” contiene mediciones de tres especies diferentes de flores de iris: Setosa, Versicolor y Virginica. Cada especie consta de 50 muestras, por lo que disponemos de un total de 150 observaciones. Cada observación se caracteriza por cuatro atributos: longitud del sépalo, ancho del sépalo, longitud del pétalo y ancho del pétalo, todos medidos en centímetros.

Estructura del conjunto de datos:

El conjunto de datos “Iris” tiene una estructura tabular donde cada fila representa una observación (una flor de iris) y cada columna representa un atributo de esa observación. Atributos presentes en el dataset:

Longitud del sépalo (Sepal.Length): longitud del sépalo de la flor de iris en centímetros Ancho del sépalo (Sepal.Width): ancho del sépalo de la flor de iris en centímetros Longitud del pétalo (Petal.Length): longitud del pétalo de la flor de iris en centímetros Ancho del pétalo (Petal.Width): ancho del pétalo de la flor de iris en centímetros Especie (Species): especie de la flor de iris, que puede ser “setosa”, “versicolor” o “virginica”

Vamos a ajustar los nombres de nuestro dataset:

names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
names(iris) <- c("Longitud_Sepalo", "Ancho_Sepalo", "Longitud_Petalo", "Ancho_Petalo", "Especie")

Instalamos y cargamos la librería “scatterplot3d”, herramienta de visualización tridimensional

options(repos = c(CRAN = "https://cloud.r-project.org"))
install.packages("scatterplot3d")
## Installing package into 'C:/Users/andre/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'scatterplot3d' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\andre\AppData\Local\Temp\Rtmp2TRrD1\downloaded_packages
library(scatterplot3d)
scatterplot3d(iris$Longitud_Sepalo, iris$Ancho_Sepalo, iris$Longitud_Petalo, color = as.integer(iris$Especie))

Eje X (Longitud del Sépalo): el eje X corresponde a la longitud del sépalo de las flores de iris. Esta variable se muestra en el extremo derecho del gráfico Eje Y (Ancho del Sépalo): el eje Y corresponde al ancho del sépalo de las flores de iris. Esta variable se muestra en la parte inferior del gráfico Eje Z (Longitud del Pétalo): el eje Z corresponde a la longitud del pétalo de las flores de iris. Esta variable se muestra en la parte trasera del gráfico

Tal y como podemos observar en la representación tridimensional de las variables “Longitud del Sépalo”, “Ancho del Sépalo”, “Longitud del Pétalo” y “Especie” (representada por los tres colores del gráfico: negro, rojo y verde), encontramos que cada una de las especies registradas en el dataset se ubica en una zona espacial concreta, siendo la especie “Setosa” (negro) la que más se diferencia de las otras dos, pues cuenta con dimensiones más pequeñas que la ubican en la base del gráfico. Las otras dos especies (“Versicolor” y “Virginica”) presentan dimensiones más cercanas, aunque la “Virginica” supera al resto de especies en las medidas de las variables representadas, lo que la lleva a situarse en la zona alta del gráfico (puntos verdes).

#Representación interactiva de los datos “Iris”, mediante la librería “plotly”

install.packages("plotly")
## Installing package into 'C:/Users/andre/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'plotly' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\andre\AppData\Local\Temp\Rtmp2TRrD1\downloaded_packages
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
plot_ly(data = iris, x = ~Longitud_Sepalo, y = ~Ancho_Sepalo,
        color = ~Especie,
        text = ~paste("Especie: ", Especie, "<br> Longitud del Sépalo: ", Longitud_Sepalo, "<br> Ancho del Sépalo: ", Ancho_Sepalo),
        mode = "markers",
        type = "scatter",
        marker = list(size = 10, opacity = 0.8)) %>%
  layout(title = "Gráfico interactivo de iris",
         xaxis = list(title = "Longitud del Sépalo"),
         yaxis = list(title = "Ancho del Sépalo"),
         hovermode = "closest")

Como podemos observar en el presente gráfico, y al contar únicamente con la posibilidad de relacionar, aparte del color de los puntos (“Especie”), dos variables en los ejes x / y, vemos claramente cómo, si bien la “Especie Setosa” está muy bien definida, la representación subraya la cercanía entre las otras dos especies (“Versicolor” y “Virginica”) y muestra cómo distintos registros de ambas se entremezclan en el centro de la imagen. Podríamos llevar a cabo este gráfico pero con las mediciones del pétalo de las flores, para determinar si podemos discriminar mejor el tipo de “Especie”.

#Gráfica interactiva usando “Longitud del Pétalo” y “Ancho del Pétalo”

plot_ly(data = iris, x = ~Longitud_Petalo, y = ~Ancho_Petalo,
        color = ~Especie,  # Se asume que Especie es la variable que contiene la especie
        text = ~paste("Especie: ", Especie, "<br> Longitud del Pétalo: ", Longitud_Petalo, "<br> Ancho del Pétalo: ", Ancho_Petalo),
        mode = "markers",
        type = "scatter",
        marker = list(size = 10, opacity = 0.8)) %>%
  layout(title = "Gráfico interactivo de iris",
         xaxis = list(title = "Longitud del Pétalo"),
         yaxis = list(title = "Ancho del Pétalo"),
         hovermode = "closest")

En este punto del ejercicio, acabamos de lograr una representación más clara gracias al uso exclusivo de las variables relativas a los pétalos de esta especie de flor. En la gráfica observamos tres conjuntos de observaciones agrupados en torno al color que representa cada especie: verde (“Setosa”), rojo (“Versicolor”) y lila (“Virginica”). Podemos afirmar así que, para las especies “Versicolor” y “Virginica”, las mediciones del pétalo son críticas a la hora de su identificación, mientras que las dimensiones del sépalo no son tan definitorias para diferenciar ambas especies.