A continuación encontrarás mi primer trabajo en RMarkdown para aprender juntos !

Análisis básico con la base de datos “Anscombe”

Importo el dataset como “From text (base)…”

#importamos los datos y les damos un vistazo

anscombe <- read.csv2("C:/Users/Dayana Castro/Desktop/anscome/anscombe.csv")
View(anscombe)

#Revisamos la estructura de los 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 ...

Como vemos, la variable “Set” aparece como “int” cuando debería ser categórica (“Factor”). Podemos cambiar el tipo de variable con el siguiente código:

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

Ahora crearemos subconjuntos de valores con las categorías de la variable “Set”, con el fin de generar análisis estadísticos y de otro tipo para dicha variable:

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

Seguidamente, calcularemos medidas estadísticas como el promedio, la varianza, y coeficiente de correlación de las variables númericas (“X” y “Y”) del subconjunto “uno” generado arriba; estos los guardaremos en un nuevo dataframe:

#El comando "mean" calcula la media:

XProm <- mean(uno$X)
YProm <- mean (uno$Y)

#El comando "var" calcula la varianza:

Xvar <- var(uno$X)
Yvar <- var(uno$Y)

#Finalmente el comando "cor" calculará la correlación entre ambas variables:

Corr <- cor(uno$X, uno$Y)

#Guardamos todos estos resultados 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

Haremos el procedimiento anterior para los otros 3 subconjuntos:

XProm2 <- mean(dos$X)
YProm2 <- mean (dos$Y)
Xvar2 <- var(dos$X)
Yvar2 <- var(dos$Y)
Corr2 <- cor(dos$X, dos$Y)
SummaryStats2 <- data.frame(XProm2, YProm2, Xvar2, Yvar2, Corr2)
SummaryStats2
##   XProm2   YProm2 Xvar2    Yvar2     Corr2
## 1      9 7.500909    11 4.127629 0.8162365
XProm3 <- mean(tres$X)
YProm3 <- mean (tres$Y)
Xvar3 <- var(tres$X)
Yvar3 <- var(tres$Y)
Corr3 <- cor(tres$X, tres$Y)
SummaryStats3 <- data.frame(XProm3, YProm3, Xvar3, Yvar3, Corr3)
SummaryStats3
##   XProm3 YProm3 Xvar3   Yvar3     Corr3
## 1      9    7.5    11 4.12262 0.8162867
XProm4 <- mean(cuatro$X)
YProm4 <- mean(cuatro$Y)
Xvar4 <- var(cuatro$X)
Yvar4 <- var(cuatro$Y)
Corr4 <- cor(cuatro$X, cuatro$Y)
SummaryStats4 <- data.frame(XProm4, YProm4, Xvar4, Yvar4, Corr4)
SummaryStats4
##   XProm4   YProm4 Xvar4    Yvar4     Corr4
## 1      9 7.500909    11 4.123249 0.8165214

Visualización de un conjunto de datos

Usaremos la libreria “ggplot2” para examinar de manera gráfica el conjunto de datos a trabajar:

#"Activamos" la libreria "ggplot2"

#install.packages("ggplot2")

Con esta libreria, crearemos “facetas” de los datos y trazaremos una línea de regresion.

library(ggplot2)
# 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 gráfico elaborado con la libreria “ggplot” se puede, de cierta manera, descomponer teniendo en cuenta los valores de cualquier variable. Para este ejercicio usaremos la variable “Set” (recordemos que es la variable categorica de este ejercicio).

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'

Herramienta interactivas de visualización: esquisse

A continuación podrás explorar una herramienta interactiva para visualización. Disfrutala !

# Sólo quita los "#" y correlo en tu consola de R
#install.packages("esquisse")
#library(esquisse)
#esquisse::esquisser(anscombe)

(C)Dayana Ibeth Castro Guevara

Economista Esp. Estadística

Mg Analítica e Inteligencia de Negocios

UNIVALLE