Este taller introductorio tiene el objetivo de presentar aspectos fundamentales del valor de visualizar preliminarmente un conjunto de datos para determinar sus propiedades. Utilizaremos el dataset tradicional de Anscombe.

Referencias: Munzner Tamara (2013). Visualization Analysis & Design. CRC Press, Boca Raton FL


CĂ¡lculo de estadĂ­sticas descriptivas

Importe el dataset anscombe.csv disponible en https://www.smartartifact.com/icesi/anscombe/data/anscombe.csv.

# Importar los datos
anscombe <- read.csv2("C:/Users/Admin/Desktop/anscombe.csv")
# Imprimir la estructura de datos
str(anscombe)
## 'data.frame':    44 obs. of  3 variables:
##  $ Set: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ X  : int  10 8 13 9 11 14 6 4 12 7 ...
##  $ Y  : num  8.04 6.95 7.58 8.81 8.33 ...

Es probable que al importar el tipo de dato de la columna Set aparece de tipo entero. Conviertala a factor para que sea una variable categorica

anscombe$Set <- as.factor(anscombe$Set)
str(anscombe)
## 'data.frame':    44 obs. of  3 variables:
##  $ Set: Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
##  $ X  : int  10 8 13 9 11 14 6 4 12 7 ...
##  $ Y  : num  8.04 6.95 7.58 8.81 8.33 ...

A partir de este punto el objetivo es calcular el promedio, varianza y correlacion entre los valores de X y Y de cada grupo de datos del conjunto de datos. A continuacion se describe como: Cree un subconjunto para cada valor de Set

uno <- subset(anscombe, Set=="1")
dos <- subset(anscombe, Set=="2")
tres <- subset(anscombe, Set=="3")
cuatro <- subset(anscombe, Set=="4")

Calcule el promedio, varianza, y correlaciĂ³n para cada objeto y guĂ¡rdelos en una dataframe

XProm <- mean(uno$X)
YProm <- mean (uno$Y)
Xvar <- var(uno$X)
Yvar <- var(uno$Y)
Corr <- cor(uno$X, uno$Y)
# Se guardan en un dataset
SummaryStats <- data.frame(XProm, YProm, Xvar, Yvar, Corr)
SummaryStats
##   XProm    YProm Xvar     Yvar      Corr
## 1     9 7.500909   11 4.127269 0.8164205

Repita el proceso para cada subconjunto y guarde los resultados en el dataframe SummaryStats

VisualizaciĂ³n del conjunto de datos

Veamos los conjuntos grĂ¡ficamente usando la libreria ggplot2. Descargue e importe la libreria ggplot2

# omita el signo '#' si no tiene la libreria descargada
# install.packages("ggplot2")

Usaremos metodos de la libreria ggplot2 para crear facetas y trazar la regresion lineal

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
# Canvas sobre el que vamos a dibujar
plotAns <- ggplot(anscombe,aes(X,Y, color = Set))
# Diagrama de lineas
plotAns <- plotAns + geom_line()
# Regresion lineal
plotAns <- plotAns + geom_smooth(method=lm, se=FALSE)
# promedio X
plotAns <- plotAns + geom_vline (aes ( xintercept = SummaryStats[1,1]))
# promedio Y
plotAns <- plotAns + geom_hline (aes ( yintercept = SummaryStats[1,2]))
plotAns
## `geom_smooth()` using formula 'y ~ x'

Facetas

Un diagrama hecho en ggplot se puede descomponer con base en los valores de una de las columnas del conjunto de datos. En este caso usamos la columna Set

library(ggplot2)
# Canvas sobre el que vamos a dibujar
plotAns <- ggplot(anscombe,aes(X,Y))
# Diagrama de dispersion
plotAns <- plotAns + geom_point()
# Regresion lineal
plotAns <- plotAns + geom_smooth(method=lm, se=FALSE)
# promedio X
plotAns <- plotAns + geom_vline (aes ( xintercept = SummaryStats[1,1]))
# promedio Y
plotAns <- plotAns + geom_hline (aes ( yintercept = SummaryStats[1,2]))
# facetas
plotAns <- plotAns + facet_grid(. ~ Set)
plotAns
## `geom_smooth()` using formula 'y ~ x'

Pregunta

Se podrĂ­a hacer un boxplot de este conjunto de datos?

#install.packages("esquisse")
#library(esquisse)
#esquisse::esquisser(anscombe)