Realizar calculos para determinar medidas de localizacion y tendencia contral 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(2000)
n <- 100
edades <- sample(15:60, n, replace = TRUE)
peso <- sample(40:100, n, replace = TRUE)
estatura <- sample(140:205, n, replace = TRUE) / 100
personas <- data.frame(edades, peso, estatura)
names(personas) <- c("Edad", "Peso", "Estatura")
personas
## Edad Peso Estatura
## 1 35 90 1.56
## 2 54 54 1.88
## 3 44 86 1.83
## 4 29 90 1.97
## 5 28 65 1.78
## 6 29 59 1.53
## 7 19 65 1.79
## 8 50 60 1.71
## 9 43 47 1.60
## 10 52 76 1.50
## 11 36 50 1.98
## 12 23 71 1.90
## 13 39 71 1.91
## 14 21 92 1.41
## 15 19 43 2.04
## 16 60 90 1.75
## 17 57 60 1.46
## 18 46 42 1.63
## 19 31 94 1.80
## 20 15 90 1.57
## 21 55 66 1.93
## 22 40 95 1.47
## 23 45 45 1.99
## 24 25 62 1.72
## 25 17 49 1.77
## 26 41 86 1.42
## 27 47 64 1.66
## 28 21 45 1.94
## 29 37 56 1.64
## 30 39 100 1.49
## 31 29 78 1.93
## 32 48 64 2.05
## 33 57 100 1.68
## 34 37 79 1.80
## 35 49 66 2.02
## 36 56 76 1.89
## 37 31 43 1.66
## 38 56 76 1.65
## 39 41 55 1.86
## 40 30 44 1.77
## 41 55 80 1.52
## 42 51 52 2.03
## 43 52 67 1.52
## 44 44 69 1.65
## 45 56 41 1.72
## 46 17 65 1.95
## 47 15 94 1.70
## 48 50 41 1.53
## 49 44 43 1.87
## 50 16 100 1.56
## 51 48 60 2.04
## 52 35 44 1.65
## 53 29 43 1.99
## 54 25 50 1.51
## 55 27 72 1.71
## 56 20 43 1.52
## 57 15 65 1.55
## 58 36 63 1.84
## 59 26 67 2.01
## 60 21 76 1.46
## 61 16 43 1.90
## 62 36 77 1.84
## 63 33 74 1.71
## 64 55 91 1.74
## 65 29 90 1.87
## 66 29 80 1.98
## 67 52 81 1.49
## 68 58 100 1.75
## 69 32 79 1.63
## 70 28 42 1.48
## 71 46 78 1.83
## 72 24 51 1.72
## 73 57 40 1.96
## 74 44 45 1.86
## 75 54 66 1.71
## 76 53 72 1.60
## 77 34 57 1.92
## 78 17 84 1.89
## 79 36 72 2.04
## 80 32 93 2.01
## 81 52 42 1.88
## 82 39 74 1.92
## 83 40 73 1.58
## 84 51 75 1.50
## 85 51 47 1.95
## 86 32 93 1.82
## 87 46 49 1.58
## 88 38 86 1.56
## 89 47 67 1.61
## 90 52 89 1.88
## 91 19 79 1.92
## 92 53 46 1.45
## 93 52 91 2.05
## 94 32 48 1.62
## 95 50 57 1.44
## 96 51 85 1.66
## 97 46 78 1.99
## 98 31 84 1.82
## 99 21 90 1.81
## 100 42 66 1.62
media.edad <- sum(personas$Edad) / n
media.edad
## [1] 38.23
media.peso <- sum(personas$Peso) / n
media.peso
## [1] 68.13
media.estatura <- sum(personas$Estatura) / n
media.estatura
## [1] 1.7486
mediana.edad <- median(personas$Edad)
mediana.edad
## [1] 39
orden.personas.edad <- sort(personas$Edad)
posicion <- ceiling(n /2)
orden.personas.edad
## [1] 15 15 15 16 16 17 17 17 19 19 19 20 21 21 21 21 23 24 25 25 26 27 28 28 29
## [26] 29 29 29 29 29 30 31 31 31 32 32 32 32 33 34 35 35 36 36 36 36 37 37 38 39
## [51] 39 39 40 40 41 41 42 43 44 44 44 44 45 46 46 46 46 47 47 48 48 49 50 50 50
## [76] 51 51 51 51 52 52 52 52 52 52 53 53 54 54 55 55 55 56 56 56 57 57 57 58 60
cat("Valor de la posición ",posicion, "del conjunto de datos(Vector) edades es: ", orden.personas.edad[posicion])
## Valor de la posición 50 del conjunto de datos(Vector) edades es: 39
cat("Valor de la posición ",posicion + 1,"del conjunto de datos (Vector) edades es: ", orden.personas.edad[posicion+1])
## Valor de la posición 51 del conjunto de datos (Vector) edades es: 39
mediana.edad=sum(orden.personas.edad[posicion], orden.personas.edad[posicion+1])/2
media.edad
## [1] 38.23
mediana.peso <- median(personas$Peso)
mediana.peso
## [1] 67
orden.persona.peso <- sort(personas$Peso)
posicion <- ceiling(n/2)
orden.persona.peso
## [1] 40 41 41 42 42 42 43 43 43 43 43 43 44 44 45 45 45 46
## [19] 47 47 48 49 49 50 50 51 52 54 55 56 57 57 59 60 60 60
## [37] 62 63 64 64 65 65 65 65 66 66 66 66 67 67 67 69 71 71
## [55] 72 72 72 73 74 74 75 76 76 76 76 77 78 78 78 79 79 79
## [73] 80 80 81 84 84 85 86 86 86 89 90 90 90 90 90 90 91 91
## [91] 92 93 93 94 94 95 100 100 100 100
mediana.estatura <- median(personas$Estatura)
mediana.estatura
## [1] 1.75
orden.personas.estatura <- sort(personas$Estatura)
posicion <- ceiling(n /2)
orden.personas.estatura
## [1] 1.41 1.42 1.44 1.45 1.46 1.46 1.47 1.48 1.49 1.49 1.50 1.50 1.51 1.52 1.52
## [16] 1.52 1.53 1.53 1.55 1.56 1.56 1.56 1.57 1.58 1.58 1.60 1.60 1.61 1.62 1.62
## [31] 1.63 1.63 1.64 1.65 1.65 1.65 1.66 1.66 1.66 1.68 1.70 1.71 1.71 1.71 1.71
## [46] 1.72 1.72 1.72 1.74 1.75 1.75 1.77 1.77 1.78 1.79 1.80 1.80 1.81 1.82 1.82
## [61] 1.83 1.83 1.84 1.84 1.86 1.86 1.87 1.87 1.88 1.88 1.88 1.89 1.89 1.90 1.90
## [76] 1.91 1.92 1.92 1.92 1.93 1.93 1.94 1.95 1.95 1.96 1.97 1.98 1.98 1.99 1.99
## [91] 1.99 2.01 2.01 2.02 2.03 2.04 2.04 2.04 2.05 2.05
cat("Valor de la posición ",posicion, "del conjunto de datos(Vector) estatura es: ", orden.personas.estatura[posicion])
## Valor de la posición 50 del conjunto de datos(Vector) estatura es: 1.75
cat("Valor de la posición ",posicion + 1,"del conjunto de datos (Vector) estatura es: ", orden.personas.estatura[posicion+1])
## Valor de la posición 51 del conjunto de datos (Vector) estatura es: 1.75
mediana.estatura=sum(orden.personas.estatura[posicion], orden.personas.estatura[posicion+1])/2
media.estatura
## [1] 1.7486
frecuencia <- table(personas$Edad)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
##
## 29 52 21 32 36 44 46 51 15 17 19 31 39 50 55 56 57 16 25 28 35 37 40 41 47 48
## 6 6 4 4 4 4 4 4 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2
## 53 54 20 23 24 26 27 30 33 34 38 42 43 45 49 58 60
## 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
moda= frecuencia[1]
moda
## 29
## 6
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 29 con 6
frecuencia <- table(personas$Peso)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
##
## 43 90 65 66 76 100 42 45 60 67 72 78 79 86 41 44 47 49 50 57
## 6 6 4 4 4 4 3 3 3 3 3 3 3 3 2 2 2 2 2 2
## 64 71 74 80 84 91 93 94 40 46 48 51 52 54 55 56 59 62 63 69
## 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
## 73 75 77 81 85 89 92 95
## 1 1 1 1 1 1 1 1
moda= frecuencia[1]
moda
## 43
## 6
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 43 con 6
frecuencia <- table(personas$Estatura)
frecuencia <- sort(frecuencia, descreasing = TRUE)
frecuencia
##
## 1.41 1.42 1.44 1.45 1.47 1.48 1.51 1.55 1.57 1.61 1.64 1.68 1.7 1.74 1.78 1.79
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 1.81 1.91 1.94 1.96 1.97 2.02 2.03 1.46 1.49 1.5 1.53 1.58 1.6 1.62 1.63 1.75
## 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
## 1.77 1.8 1.82 1.83 1.84 1.86 1.87 1.89 1.9 1.93 1.95 1.98 2.01 2.05 1.52 1.56
## 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3
## 1.65 1.66 1.72 1.88 1.92 1.99 2.04 1.71
## 3 3 3 3 3 3 3 4
moda= frecuencia[1]
moda
## 1.41
## 1
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es: 1.41 con 1
ggplot(data = personas, aes(x = edades)) + geom_bar()
ggplot(data = personas, aes(x = peso)) + geom_bar()
*Grafica de barra estatura
ggplot(data = personas, aes(x = estatura)) + geom_bar()
ggplot(data = personas, aes(x = edades)) + geom_histogram(bins = 30)
ggplot(data = personas, aes(x= peso)) + geom_histogram(bins = 30)
ggplot(data = personas, aes(x = estatura)) + geom_histogram(bins = 30)
*Histograma de edad con medidas de localizacion
ggplot(personas, aes(x = edades)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(edades)), color="red") +
geom_vline(aes(xintercept=median(edades)), color= "darkgreen")
*Histograma de peso con medidas de localizacion
ggplot(personas, aes(x = peso)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(peso)), color="red") +
geom_vline(aes(xintercept=median(peso)), color= "darkgreen")
ggplot(personas, aes(x = estatura)) +
geom_histogram(aes(fill=..count..), bins=20, color="white") +
geom_vline(aes(xintercept=mean(estatura)), color="red") +
geom_vline(aes(xintercept=median(estatura)), color= "darkgreen")
ggplot(aes(x = edades), data = personas) + geom_histogram(color = “green”, fill = “green”, alpha = 0.2) + labs(title = “Histograma de Edades”) + geom_vline(aes(xintercept = median(edades), color = “mediana”), linetype = “dashed”, size = 1) + geom_vline(aes(xintercept = mean(edades), color = “media”), linetype = " deshed“, size = 1) + geom_vline(aes(xintercept = moda [1], color =”moda“), linetype =”dashed", size = 1)
*En este caso podemos darnos cuenta el cómo sacar la media, la mediana y la moda
Manejaremos nuevas librerías para sacar estas mismas
Nos podemos dar cuenta que para sacar la media tenemos que sumar todos los valores de la edad, el peso y la estatura después los tenemos que dividir con el número de personas que son
*Podemos tambien sacar directamente las posiciones de cada uno con otras lineas de codigo las cuales nos pueden ahorrar un poco mas de lectura o vista al momento en que nas da directo el numero
Para la mediana lo que podemos observar es que la formula o lenguaje de mediana. Edad nos sacara el número mediano de entre los 100 datos que tenemos, primeramente, acomodando todos los datos
En los ultimos codigos nos dan todos los diagramas, histogramas de cada uno (edades, peso, estatura) para así poder tener un poco más de apreciación ante estos datos.