En este documento tendremos como fin ilustrar un archivo de R-Markdown para los estudiantes en el curso de EstadÃstica para que sea mucho más fácil y compacto para ellos realizar sus propios informes.
library(readxl)
Data <- read_excel("C:/Users/sebas/OneDrive/Escritorio/Universidad Javeriana/Profesora Isabel/Data.xlsx")
X<- data.frame(Data)
#Observar los primeros elementos
head(X)
## edad peso altura sexo muneca biceps
## 1 43 87.3 188.0 Hombre 12.2 35.8
## 2 65 80.0 174.0 Hombre 12.0 35.0
## 3 45 82.3 176.5 Hombre 11.2 38.5
## 4 37 73.6 180.3 Hombre 11.2 32.2
## 5 55 74.1 167.6 Hombre 11.8 32.9
## 6 33 85.9 188.0 Hombre 12.4 38.5
#Observar la clase de los elementos
str(X)
## 'data.frame': 36 obs. of 6 variables:
## $ edad : num 43 65 45 37 55 33 25 35 28 26 ...
## $ peso : num 87.3 80 82.3 73.6 74.1 85.9 73.2 76.3 65.9 90.9 ...
## $ altura: num 188 174 176 180 168 ...
## $ sexo : chr "Hombre" "Hombre" "Hombre" "Hombre" ...
## $ muneca: num 12.2 12 11.2 11.2 11.8 12.4 10.6 11.3 10.2 12 ...
## $ biceps: num 35.8 35 38.5 32.2 32.9 38.5 38.3 35 32.1 40.4 ...
#Observamos que la columna del género no aparece como un factor asÃ
#Que lo corregiremos
X$sexo<- factor(X$sexo,levels=c("Hombre","Mujer"),labels=c("Hombre",
"Mujer"))
#Comprobamos
str(X)
## 'data.frame': 36 obs. of 6 variables:
## $ edad : num 43 65 45 37 55 33 25 35 28 26 ...
## $ peso : num 87.3 80 82.3 73.6 74.1 85.9 73.2 76.3 65.9 90.9 ...
## $ altura: num 188 174 176 180 168 ...
## $ sexo : Factor w/ 2 levels "Hombre","Mujer": 1 1 1 1 1 1 1 1 1 1 ...
## $ muneca: num 12.2 12 11.2 11.2 11.8 12.4 10.6 11.3 10.2 12 ...
## $ biceps: num 35.8 35 38.5 32.2 32.9 38.5 38.3 35 32.1 40.4 ...
Ahora procederemos a realizar estadÃsticas descriptivas básicas con la función summary
summary(X)
## edad peso altura sexo muneca
## Min. :19.00 Min. :42.00 Min. :147.2 Hombre:18 Min. : 8.300
## 1st Qu.:24.75 1st Qu.:54.95 1st Qu.:164.8 Mujer :18 1st Qu.: 9.475
## Median :28.00 Median :71.50 Median :172.7 Median :10.650
## Mean :31.44 Mean :68.95 Mean :171.6 Mean :10.467
## 3rd Qu.:37.00 3rd Qu.:82.40 3rd Qu.:179.4 3rd Qu.:11.500
## Max. :65.00 Max. :98.20 Max. :190.5 Max. :12.400
## biceps
## Min. :23.50
## 1st Qu.:25.98
## Median :32.15
## Mean :31.17
## 3rd Qu.:35.05
## Max. :40.40
#También recordemos podemos aplicar otras descriptivas
#Desviación estándar
apply(X[,-4],2,sd)
## edad peso altura muneca biceps
## 10.554469 14.868999 10.520170 1.175463 5.234392
#Crear funciones para realizar el coeficiente de variación
coefvar<- function(x){
coefvar<- round((sd(x)/abs(mean(x)))*100,3)
}
cat("Coeficiente de variación %:")
## Coeficiente de variación %:
apply(X[,-4],2,coefvar)
## edad peso altura muneca biceps
## 33.565 21.564 6.132 11.231 16.795
Ahora procederemos a realizar los diferentes gráficos descriptivos y evaluación de estructuras de correlación lineal.
cor<- round(cor(X[,-4],method="pearson"),2);cor
## edad peso altura muneca biceps
## edad 1.00 0.52 0.33 0.62 0.48
## peso 0.52 1.00 0.80 0.85 0.91
## altura 0.33 0.80 1.00 0.66 0.71
## muneca 0.62 0.85 0.66 1.00 0.88
## biceps 0.48 0.91 0.71 0.88 1.00
#Podemos hacerlo mucho más bonito básandonos en librerÃas como ggplot2 y reshape
library(ggplot2);library(reshape2)
melted_cor <- melt(cor)
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) +
geom_tile() +
geom_text(aes(Var2, Var1, label = value), size = 5) +
scale_fill_gradient2(low = "blue", high = "red",
limit = c(-1,1), name=("Correlation Pearson")) +
theme(axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.background = element_blank())
#Ahora evaluamos esta estructura de correlación con diagramas de dispersión
pairs(X[,-4],pch=19)
#Ahora procederemos a realizar histogramas junto con densidades para
#Cada variable cuantitativa
hist(X$edad,main="",xlab="Edad",col="aquamarine4",freq=FALSE,ylab="Frecuencia Relativa",panel.first=grid())
lines(density(X$edad),lwd=2,lty=2)
#Procedemos a realizar boxplots por grupos
boxplot(X$biceps~X$sexo,main="",xlab="Sexo",ylab="Circuferencia del Biceps en cm",pch=19,col="white",border=c("blue4","pink"))
## Agregando mas detalles
# Vertical box plot
boxplot(X$biceps~X$sexo,main="",xlab="Sexo",ylab="Circuferencia del Biceps en cm",pch=19,col="white",border=c("blue4","pink"))
grid(nx = NULL, ny = NULL,
lty = 1, col = "gray", lwd = 1)
boxplot(X$biceps~X$sexo,xlab="Sexo",ylab="Circuferencia del Biceps en cm",pch=19,col="white",border=c("blue4","pink"),add=T)
# Points
stripchart(X$biceps~X$sexo, # Data
method = "jitter", # Random noise
pch = 19, # Pch symbols
col = c("blue4","pink"), # Color of the symbol
vertical = TRUE, # Vertical mode
add = TRUE)