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
## Conociendo los datos
A traves de una tabla interactiva
datatable(airquality)
a Través de una gráfica, usando ggplot2
<- airquality df
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(
$Petal.Width, iris$Petal.Length,
iriscol = "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”
<-iris
xiris $Species <- NULL
xirisbeanplot(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
<- subset(iris, Species == "versicolor")
irisVer <- subset(iris, Species == "virginica")
irisVir <- subset(iris, Species == "setosa")
irisSet 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
<- volcano
volcan
beanplot(volcan, main ="Topografía del volcán")
## log="y" selected
<- esoph$ncontrols
controls
beanplot(controls, main ="Controles en cáncer de esófago")
## log="y" selected
<-CO2
dioxido $Plant <- NULL
dioxido$Type <- NULL
dioxido$Treatment <- NULL
dioxidobeanplot(dioxido, main="Concentración y emisión de CO2")
## log="y" selected
Dióxido de carbono atmosférico