Realizar cálculos para determinar medidas de localización y tendencia central como la media, mediana, moda con un conjunto de datos de personas.
Con un conjunto de datos de personas y con variables de interés como la edad, peso y estatura, determinar medidas de localización y tendencia central, se pide mostrar los datos, identificar las medidas visualizar gráficamente e interpretar las medidas.
library(readr)
library(ggplot2)
library(resumeRdesc)
set.seed(2020)
n=100
Edades= sample(15:65, n, replace = TRUE)
Pesos= sample(40:100, n, replace = TRUE)
Estaturas= sample(140:205, n, replace = TRUE)/100
personas <- data.frame(Edades, Pesos, Estaturas)
names(personas)= c("Edad", "Peso", "Estatura" )
personas
## Edad Peso Estatura
## 1 42 97 1.97
## 2 58 89 1.77
## 3 37 52 1.43
## 4 36 44 1.65
## 5 38 63 1.60
## 6 15 87 1.64
## 7 31 59 1.72
## 8 50 91 1.70
## 9 56 59 1.70
## 10 20 53 1.40
## 11 63 52 1.90
## 12 59 67 1.43
## 13 22 56 1.42
## 14 56 69 1.59
## 15 64 84 1.98
## 16 30 78 1.63
## 17 43 80 1.59
## 18 48 99 1.83
## 19 62 99 1.68
## 20 17 79 1.40
## 21 16 66 1.83
## 22 43 68 1.83
## 23 54 92 1.61
## 24 18 74 1.96
## 25 64 98 1.51
## 26 28 74 1.51
## 27 28 41 2.00
## 28 26 52 1.49
## 29 62 47 1.52
## 30 61 62 1.66
## 31 28 100 1.96
## 32 21 71 1.41
## 33 34 43 1.88
## 34 32 78 1.83
## 35 35 85 1.50
## 36 62 88 1.90
## 37 58 94 1.80
## 38 32 92 1.41
## 39 24 75 1.93
## 40 45 63 1.59
## 41 20 87 1.46
## 42 61 80 2.01
## 43 57 99 1.53
## 44 27 68 1.64
## 45 46 67 1.75
## 46 38 93 1.62
## 47 27 41 1.90
## 48 59 71 2.03
## 49 16 56 1.52
## 50 45 56 1.66
## 51 30 76 1.66
## 52 27 49 1.59
## 53 15 90 1.62
## 54 52 86 1.67
## 55 17 50 1.91
## 56 43 90 1.78
## 57 39 56 1.92
## 58 59 78 1.84
## 59 57 52 1.87
## 60 39 49 1.55
## 61 19 77 1.65
## 62 57 94 1.81
## 63 52 95 1.67
## 64 16 60 1.89
## 65 39 49 2.04
## 66 49 98 1.81
## 67 38 50 1.73
## 68 64 99 1.84
## 69 47 86 1.45
## 70 21 42 1.90
## 71 22 64 1.42
## 72 35 83 1.86
## 73 27 70 1.65
## 74 48 62 1.93
## 75 19 90 1.95
## 76 18 84 1.77
## 77 33 87 1.73
## 78 62 43 1.43
## 79 37 60 1.82
## 80 18 99 1.81
## 81 32 100 1.80
## 82 56 80 1.69
## 83 15 76 1.71
## 84 61 91 1.95
## 85 36 95 1.70
## 86 45 98 1.77
## 87 55 42 1.66
## 88 30 97 1.86
## 89 20 65 1.50
## 90 38 93 1.41
## 91 40 40 1.40
## 92 24 68 1.46
## 93 40 53 1.58
## 94 47 63 1.92
## 95 42 66 1.84
## 96 15 78 1.51
## 97 31 57 1.93
## 98 54 75 1.50
## 99 29 58 1.98
## 100 58 64 1.67
media.edad=sum(personas$Edad)/n
media.edad
## [1] 38.81
media.peso=sum(personas$Peso)/n
media.peso
## [1] 72.65
media.estatura=sum(personas$Estatura)/n
media.estatura
## [1] 1.7069
orden.persona.edad <- sort(personas$Edad)
posicion <- ceiling(n /2)
orden.persona.edad
## [1] 15 15 15 15 16 16 16 17 17 18 18 18 19 19 20 20 20 21 21 22 22 24 24 26 27
## [26] 27 27 27 28 28 28 29 30 30 30 31 31 32 32 32 33 34 35 35 36 36 37 37 38 38
## [51] 38 38 39 39 39 40 40 42 42 43 43 43 45 45 45 46 47 47 48 48 49 50 52 52 54
## [76] 54 55 56 56 56 57 57 57 58 58 58 59 59 59 61 61 61 62 62 62 62 63 64 64 64
# La posicion:
cat("Valor de la posición ",posicion, " del conjunto de datos (Vector) edades es: ",orden.persona.edad[posicion])
## Valor de la posición 50 del conjunto de datos (Vector) edades es: 38
# La posición cuando son par:
cat("Valor de la posición ",posicion + 1, " del conjunto de datos (Vector) edades es: ", orden.persona.edad[posicion + 1])
## Valor de la posición 51 del conjunto de datos (Vector) edades es: 38
mediana.edad <- sum(orden.persona.edad[posicion], orden.persona.edad[posicion + 1]) / 2
mediana.edad
## [1] 38
orden.persona.peso <- sort(personas$Peso)
posicion <- ceiling(n /2)
orden.persona.peso
## [1] 40 41 41 42 42 43 43 44 47 49 49 49 50 50 52 52 52 52
## [19] 53 53 56 56 56 56 57 58 59 59 60 60 62 62 63 63 63 64
## [37] 64 65 66 66 67 67 68 68 68 69 70 71 71 74 74 75 75 76
## [55] 76 77 78 78 78 78 79 80 80 80 83 84 84 85 86 86 87 87
## [73] 87 88 89 90 90 90 91 91 92 92 93 93 94 94 95 95 97 97
## [91] 98 98 98 99 99 99 99 99 100 100
# La posicion:
cat("Valor de la posición ",posicion, " del conjunto de datos (Vector) edades es: ",orden.persona.peso[posicion])
## Valor de la posición 50 del conjunto de datos (Vector) edades es: 74
# La posición cuando son par:
cat("Valor de la posición ",posicion + 1, " del conjunto de datos (Vector) edades es: ", orden.persona.peso[posicion + 1])
## Valor de la posición 51 del conjunto de datos (Vector) edades es: 74
mediana.peso <- sum(orden.persona.peso[posicion], orden.persona.peso[posicion + 1]) / 2
mediana.peso
## [1] 74
orden.persona.estatura <- sort(personas$Estatura)
posicion <- ceiling(n /2)
orden.persona.estatura
## [1] 1.40 1.40 1.40 1.41 1.41 1.41 1.42 1.42 1.43 1.43 1.43 1.45 1.46 1.46 1.49
## [16] 1.50 1.50 1.50 1.51 1.51 1.51 1.52 1.52 1.53 1.55 1.58 1.59 1.59 1.59 1.59
## [31] 1.60 1.61 1.62 1.62 1.63 1.64 1.64 1.65 1.65 1.65 1.66 1.66 1.66 1.66 1.67
## [46] 1.67 1.67 1.68 1.69 1.70 1.70 1.70 1.71 1.72 1.73 1.73 1.75 1.77 1.77 1.77
## [61] 1.78 1.80 1.80 1.81 1.81 1.81 1.82 1.83 1.83 1.83 1.83 1.84 1.84 1.84 1.86
## [76] 1.86 1.87 1.88 1.89 1.90 1.90 1.90 1.90 1.91 1.92 1.92 1.93 1.93 1.93 1.95
## [91] 1.95 1.96 1.96 1.97 1.98 1.98 2.00 2.01 2.03 2.04
# La posicion:
cat("Valor de la posición ",posicion, " del conjunto de datos (Vector) edades es: ",orden.persona.estatura[posicion])
## Valor de la posición 50 del conjunto de datos (Vector) edades es: 1.7
# La posición cuando son par:
cat("Valor de la posición ",posicion + 1, " del conjunto de datos (Vector) edades es: ", orden.persona.estatura[posicion + 1])
## Valor de la posición 51 del conjunto de datos (Vector) edades es: 1.7
mediana.estatura <- sum(orden.persona.estatura[posicion], orden.persona.estatura[posicion + 1]) / 2
mediana.estatura
## [1] 1.7
frecuencia <- table(personas$Edad)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
##
## 15 27 38 62 16 18 20 28 30 32 39 43 45 56 57 58 59 61 64 17 19 21 22 24 31 35
## 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2
## 36 37 40 42 47 48 52 54 26 29 33 34 46 49 50 55 63
## 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1
moda <- frecuencia[1]
moda
## 15
## 4
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 15 con 4
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
print("Es multimodal")
## [1] "Es multimodal"
moda <- Mode(personas$Edad)
moda
## [1] 15 27 38 62
frecuencia <- table(personas$Peso)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
##
## 99 52 56 78 49 63 68 80 87 90 98 41 42 43 50 53 59 60 62 64
## 5 4 4 4 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2
## 66 67 71 74 75 76 84 86 91 92 93 94 95 97 100 40 44 47 57 58
## 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1
## 65 69 70 77 79 83 85 88 89
## 1 1 1 1 1 1 1 1 1
moda <- frecuencia[1]
moda
## 99
## 5
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 99 con 5
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
print("Es moda")
## [1] "Es moda"
moda <- Mode(personas$Peso)
moda
## [1] 99
frecuencia <- table(personas$Estatura)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
##
## 1.59 1.66 1.83 1.9 1.4 1.41 1.43 1.5 1.51 1.65 1.67 1.7 1.77 1.81 1.84 1.93
## 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3
## 1.42 1.46 1.52 1.62 1.64 1.73 1.8 1.86 1.92 1.95 1.96 1.98 1.45 1.49 1.53 1.55
## 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1
## 1.58 1.6 1.61 1.63 1.68 1.69 1.71 1.72 1.75 1.78 1.82 1.87 1.88 1.89 1.91 1.97
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 2 2.01 2.03 2.04
## 1 1 1 1
moda <- frecuencia[1]
moda
## 1.59
## 4
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 1.59 con 4
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
print("Multimodal")
## [1] "Multimodal"
moda <- Mode(personas$Estatura)
moda
## [1] 1.59 1.66 1.83 1.90
ggplot(data = personas, aes(x = Edad)) +
geom_bar()
ggplot(data = personas, aes(x = Peso)) +
geom_bar()
ggplot(data = personas, aes(x = Estatura)) +
geom_bar()
ggplot(data = personas, aes(x = Edad)) +
geom_histogram(bins = 30)
ggplot(data = personas, aes(x = Peso)) +
geom_histogram(bins = 30)
ggplot(data = personas, aes(x = Estatura)) +
geom_histogram(bins = 30)
ggplot(personas, aes(x=Edad)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(Edad)), color="orange") +
geom_vline(aes(xintercept=median(Edad)), color= "black")
ggplot(personas, aes(x=Peso)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(Peso)), color="green") +
geom_vline(aes(xintercept=median(Peso)), color= "yellow")
ggplot(personas, aes(x=Estatura)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(Estatura)), color="purple") +
geom_vline(aes(xintercept=median(Estatura)), color= "darkblue")
ggplot(aes(x = Edad), data = personas) +
geom_histogram(color = 'green',
fill = 'green',
alpha = 0.2) +
labs(title = "Histograma completo de Edad") +
geom_vline(aes(xintercept = median(Edad),
color = "mediana"),
linetype = "dashed",
size = 1) +
geom_vline(aes(xintercept = mean(Edad),
color = "media"),
linetype = "dashed",
size = 1) +
geom_vline(
aes(xintercept = moda[1],
color = "moda"),
linetype = "dashed",
size = 1
)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(aes(x = Peso), data = personas) +
geom_histogram(color = 'green',
fill = 'green',
alpha = 0.2) +
labs(title = "Histograma completo de Peso") +
geom_vline(aes(xintercept = median(Peso),
color = "mediana"),
linetype = "dashed",
size = 1) +
geom_vline(aes(xintercept = mean(Peso),
color = "media"),
linetype = "dashed",
size = 1) +
geom_vline(
aes(xintercept = moda[1],
color = "moda"),
linetype = "dashed",
size = 1
)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(aes(x = Estatura), data = personas) +
geom_histogram(color = 'green',
fill = 'green',
alpha = 0.2) +
labs(title = "Histograma completo de Estatura") +
geom_vline(aes(xintercept = median(Estatura),
color = "mediana"),
linetype = "dashed",
size = 1) +
geom_vline(aes(xintercept = mean(Estatura),
color = "media"),
linetype = "dashed",
size = 1) +
geom_vline(
aes(xintercept = moda[1],
color = "moda"),
linetype = "dashed",
size = 1
)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
En este caso, vimos una nuevas librerias, las cuales sirven para visualizar las barras y para analizar datos estadisticos descriptivos, aunque una de estas librerias se instala de diferente forma, ya que primero se instala una libreria llamada “remotes” y luego en la consola escribir “remotes::install_github(“osoramirez/resumeRdesc”, para que se instale. Se utilizaron para sacar la media, mediana y moda de edades, estaturas y pesos. Tambien algo nuevo que destacar, es el usar un histograma para sacar los datos mas completos, que se capturaron.
El contenido del caso 3, se puede visualizar que en la moda de edad, peso y estatura, pertenece al grupo de multimodal y moda, los cuales son los que tienen uno o mas frecuencias los cuales se hacen notar. En media, la edad, peso, estatura, varian sus frecuencias, son las que dan un valor mas aproximado y de los cuales, se saca el resultado que se repita mas. Y en mediana, dan dos numeros de frecuencia, los cuales se posicionan en algun lugar para sacar cual se repite mas.
En los histogramas, se puede notar el punto medio el cual es donde hay mas frecuencias, en edad, se ubica entre las personas de 35 a 40 años, en peso, el punto medio esta entre las personas que pesan 70 y 80 y en estatura, su punto medio esta entre las personas que miden 1.75cm.
Conclusion: Esto quiere decir que la tendencia, se encuentra entre las personas que tengan 35 a 40 años de edad con un peso de entre 70 a 80 kg y estatura de 1.75cm.