Análisis anscombe

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

Cálculo de estadísticas descriptivas

Importar el Dataset

anscombe <- read.csv2("~/MAIN/VisualizacionDatos/anscombe/anscombe.csv")
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 ...

Convertir Set a factor

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 ...

Crear 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")

Calcular el promedio, varianza, y correlación para cada objeto y guardarlos en un 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 dataframe
SummaryStats <- data.frame(XProm, YProm, Xvar, Yvar, Corr)
SummaryStats
##   XProm    YProm Xvar     Yvar      Corr
## 1     9 7.500909   11 4.127269 0.8164205

Visualización del conjunto de datos

# install.packages("ggplot2")

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.0.5
# 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

# 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'

### Boxplot

# install.packages("esquisse")

# library(esquisse)
# esquisse::esquisser(anscombe)
ggplot(anscombe) +
  aes(x = Set, y = Y) +
  geom_boxplot(shape = "circle", fill = "#5295CD") +
  labs(
    x = "X",
    y = "Y",
    title = "Título",
    subtitle = "Subtítulo"
  ) +
  theme_minimal()