Folder de trabajo

setwd("~/Documents/pye1pm")

Paquetes

library(pacman)
p_load("datasets","DT","fdth","prettydoc","xfun","ggplot2","beanplot")

Ejercicio #4: Análisis exploratorio de datos (EDA)

Utilizando el conjunto de datos de flores de lirios llamado IRIS

El conjunto de datos de iris es un famoso conjunto de datos de flores que se introdujo en 1936. Es una clasificación multivariada. Este dato proviene de: UCI Irvine Machine Learning Repository. https://archive.ics.uci.edu/ml/datasets/Iris

Conjunto de datos de iris ## Conociendo los datos

A traves de una tabla interactiva

datatable(airquality)

a Través de una gráfica, usando ggplot2

df <- airquality
ggplot(df, aes(Wind, Temp) ) + geom_point(aes(col=Month), size=4)

Medidas exploratorias de tendencia central

summary(df)
##      Ozone           Solar.R           Wind             Temp      
##  Min.   :  1.00   Min.   :  7.0   Min.   : 1.700   Min.   :56.00  
##  1st Qu.: 18.00   1st Qu.:115.8   1st Qu.: 7.400   1st Qu.:72.00  
##  Median : 31.50   Median :205.0   Median : 9.700   Median :79.00  
##  Mean   : 42.13   Mean   :185.9   Mean   : 9.958   Mean   :77.88  
##  3rd Qu.: 63.25   3rd Qu.:258.8   3rd Qu.:11.500   3rd Qu.:85.00  
##  Max.   :168.00   Max.   :334.0   Max.   :20.700   Max.   :97.00  
##  NA's   :37       NA's   :7                                       
##      Month            Day      
##  Min.   :5.000   Min.   : 1.0  
##  1st Qu.:6.000   1st Qu.: 8.0  
##  Median :7.000   Median :16.0  
##  Mean   :6.993   Mean   :15.8  
##  3rd Qu.:8.000   3rd Qu.:23.0  
##  Max.   :9.000   Max.   :31.0  
## 

Visualización

histograma

hist(df$Wind,
     col="steelblue",
     main = "Histograma de velocidad del viento",
     xlab= "Clases",
     ylab = "Frecuencia absoluta")

Diferentes maneras de realizsar histogramas

par(mfrow=c(1,3))
hist(iris$Petal.Length,breaks=seq(0,8,l=17),xlim=c(0,8),ylim=c(0,40))
hist(iris$Petal.Width,breaks=seq(0,8,l=17),xlim=c(0,8),ylim=c(0,40))
hist(iris$Sepal.Width,breaks=seq(0,8,l=17),xlim=c(0,8),ylim=c(0,40))

## Gráfico de dispersión (scatterplot)

Crear un gráfico de dispersión de la anchura del sépalo (Sepal.Width) versus la longitud del sépalo (Sepal.length)

En este caso usaremos la función “plot”

plot( 
  iris$Petal.Width, iris$Petal.Length,
      col = "pink",
      Main = "Gráfico de dispersión de IRIS",
      xlab = "Ancho del Sépalo",
      ylab = "Longitud del Sépalo",
      pch = 19
)
## Warning in plot.window(...): "Main" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "Main" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "Main" is not a
## graphical parameter

## Warning in axis(side = side, at = at, labels = labels, ...): "Main" is not a
## graphical parameter
## Warning in box(...): "Main" is not a graphical parameter
## Warning in title(...): "Main" is not a graphical parameter

## Gráfico comparativo de tipo “beanplot”

xiris <-iris
xiris$Species <- NULL
beanplot(xiris, main="Mediciones de flores de lirios")

## Ancho de sépalo por especies de lirios utilizando un gráfico de caja y bigote

boxplot(Sepal.Length~Species,
        data=iris,
        main = "Longitud de Sépalo por especie de flor",
        xlab = "Especie",
        ylab = "Longitud del sépalo",
        col = "orange",
        border = "blue"
        )

## Interpretando un gráfico de caja y bigote

Componentes del gráfico de caja y bigote

#Extracción de subconjuntos

irisVer <- subset(iris, Species == "versicolor")
irisVir <- subset(iris, Species == "virginica")
irisSet <- subset(iris, Species == "setosa")
par(mfrow=c(1,3),mar=c(6,3,2,1))
boxplot(irisVer[,1:4], main="Versicolor",ylim = c(0,8),las=2)
boxplot(irisSet[,1:4], main="Setosa",ylim = c(0,8),las=2)
boxplot(irisVir[,1:4], main="Virginica",ylim = c(0,8),las=2)

Ejemplo usando otros datos

volcan <- volcano

beanplot(volcan, main ="Topografía del volcán")
## log="y" selected

controls <- esoph$ncontrols

beanplot(controls, main ="Controles en cáncer de esófago")
## log="y" selected

dioxido <-CO2
dioxido$Plant <- NULL
dioxido$Type <- NULL
dioxido$Treatment <- NULL
beanplot(dioxido, main="Concentración y emisión de CO2")
## log="y" selected

Dióxido de carbono atmosférico

Descarga este codigo

xfun::embed_file("A4U1.Rmd")

Download A4U1.Rmd