A continuacion, se cargan los paquetes necesarios para todas las medidas descriptivas que se veran
Se tomará una muestra de 160 registros de la base de datos. Para ello se sembrará una semilla con el número 0227 y la muestra se llamará datos.d
# Leer archivo Excel
base_datos <- read_excel("Base_Estadistica_Descriptiva.xlsx")
set.seed(3393)
datos.d <- sample_n(base_datos,size=160,replace=FALSE)
datos.d
Solucion
Determine el porcentaje de hombres que tienen estudios universitarios y muestre cuál es la cantidad total de mujeres participantes.
hombres <- datos.d[datos.d$Genero == "Masculino", ]
hombres_uni <- datos.d[datos.d$NivelEducativo == "Universitario", ]
# Calculamos el porcentaje
porcentaje_hombres_uni <- (nrow(hombres_uni) / nrow(hombres)) * 100
# Contar mujeres
mujeres <- datos.d[datos.d$Genero == "Femenino", ]
total_mujeres <- nrow(mujeres)
cat("Porcentaje de hombres con estudios universitarios:", round(porcentaje_hombres_uni,2), "%\n")
## Porcentaje de hombres con estudios universitarios: 77.55 %
## Cantidad total de mujeres participantes: 55
Elabore un diagrama de caja y bigotes para la variable estatura en función del género y analice la gráfica.
muestra = sample_n(base_datos, size = 160, replace = FALSE)
boxplot(Estatura ~ Genero, data = muestra,main="Diagrama de cajas y bigotes", xlab = "Genero", ylab = "Estatura", col = c("pink","blue","gray"))
Por los bigotes expuestos en la graficas, se puede afirmar que el hombre con la altura mas baja es mas alto que la mujer con la altura mas baja, asimismo, el apartado de otro se encuetra aproximadamente en la mitad de ambos extremos de los bigotes.
Por otro lado se puede afirmar que la mediana de las mujeres es mayor al de los hombres, sin embargo, el extremo superior de la caja del genero masculino es mayor que es extremo superior de la caja femenina. Por lo tanto, es valido afirmar que se encuentran en promedio mujeres altas en comparacion con los hombres,
Por ultimo, en el genero definido como “otro” tanto el extremo inferior como el superior y la mediana son superiores a los otros dos generos evaluados. En conclusion, los evaluados como “otro” son en promedio mas altos que ambos generos (masculino y femenino).
## [1] "ID" "Genero" "NivelEducativo" "Edad"
## [5] "Hermanos" "Estatura" "IngresoMensual" "HorasDeTrabajo"
## tibble [160 × 8] (S3: tbl_df/tbl/data.frame)
## $ ID : num [1:160] 7.03e+08 3.63e+08 9.08e+08 9.44e+08 3.82e+08 ...
## $ Genero : chr [1:160] "Masculino" "Masculino" "Masculino" "Otro" ...
## $ NivelEducativo: chr [1:160] "Secundaria" "Primaria" "Secundaria" "Técnico" ...
## $ Edad : num [1:160] 54 27 39 56 49 52 42 37 41 41 ...
## $ Hermanos : num [1:160] 4 0 6 0 6 2 2 3 6 2 ...
## $ Estatura : num [1:160] 1.95 1.72 1.87 1.58 1.92 1.68 1.7 1.73 1.52 1.7 ...
## $ IngresoMensual: num [1:160] 712 3080 763 2373 1630 ...
## $ HorasDeTrabajo: num [1:160] 40.2 41.5 44.7 48.4 24.5 51.9 63.5 47.6 7.4 54.1 ...
##
## 0 1 2 3 4 5 6
## 28 19 23 22 19 20 29
barplot(frec_Hermanos, width = 1.3, ylim=c(0,130),col = 'burlywood',
border = '#B03060',ylab="Frecuencia absoluta",main = "Diagrama de barras para la cantidad de Hermanos",
xlab = "Categoría", density = 250)
## [1] FALSE
## [1] TRUE
View(df)
attach(df)
df <- rename(df, Hermanos = Var1, frecuencia= Freq)
diag_barra <- ggplot(df, aes(x = Hermanos, y=frecuencia)) +
geom_col()
diag_barra
diag_barra <- ggplot(df, aes(x = Hermanos, y=frecuencia)) +
geom_col() +
geom_text(aes(label = Hermanos), vjust = 1, colour = "blue")
diag_barra
diag_barra <- ggplot(df, aes(x = Hermanos, y=frecuencia)) +
geom_col() +
geom_text(aes(label = Hermanos), vjust = -1, colour = "red") +
ylim(c(0,60))
diag_barra
diag_barra <- ggplot(df, aes(x = Hermanos, y=frecuencia)) +
geom_bar(stat = 'identity',fill = 4)
diag_barra
diag_barra <- ggplot(df, aes(x = Hermanos, y=frecuencia, fill = Hermanos)) +
geom_bar(stat = 'identity') +
geom_text(aes(label = Hermanos), vjust = -1, colour = "black") +
ylim(c(0,100))
diag_barra
Hermanos_mas_frecuente <- names(frec_Hermanos[frec_Hermanos == max(frec_Hermanos)])
Hermanos_mas_frecuente
## [1] "6"
## [1] FALSE
## [1] TRUE
## [1] "Var1" "Freq"
## The following objects are masked from df (pos = 3):
##
## Freq, Var1
df <- rename(df, NivelEducativo = Var1, frecuencia= Freq)
pct <- round(Freq/sum(Freq)*100)
eti <- paste(Var1, pct)
eti <- paste(eti,"%")
library(plotrix)
torta1 <- pie3D(frec_NivelEducativo,main="Diagrama de torta",radius = 0.5,
explode = 0.2, labels = eti)
Elabore una tabla de frecuencias, el histograma y el polígono de fre- cuencias para la variable HorasDeTrabajo.
Tabla de frecuencias
# 1. Tabla de frecuencias
tabla_frec <- table(datos.d$HorasDeTrabajo)
tabla_frec <- as.data.frame(tabla_frec)
colnames(tabla_frec) <- c("HorasDeTrabajo", "Frecuencia")
print(tabla_frec)
## HorasDeTrabajo Frecuencia
## 1 8.1 1
## 2 16.5 1
## 3 19.4 1
## 4 20 2
## 5 21.4 1
## 6 22.8 1
## 7 23.4 1
## 8 23.7 1
## 9 23.8 1
## 10 24.6 1
## 11 24.7 1
## 12 25.5 2
## 13 25.8 1
## 14 25.9 2
## 15 26 1
## 16 26.4 1
## 17 26.7 1
## 18 27.7 1
## 19 27.9 1
## 20 28.2 1
## 21 28.3 1
## 22 28.9 1
## 23 29.1 1
## 24 29.3 2
## 25 29.5 1
## 26 29.7 2
## 27 30.4 1
## 28 30.5 1
## 29 30.6 1
## 30 31.2 3
## 31 31.7 1
## 32 31.9 2
## 33 32.4 1
## 34 33.3 1
## 35 33.8 1
## 36 34 1
## 37 34.3 1
## 38 34.4 1
## 39 34.5 1
## 40 34.9 1
## 41 35.1 1
## 42 35.4 1
## 43 35.5 1
## 44 35.6 1
## 45 36.1 1
## 46 36.2 1
## 47 36.5 2
## 48 36.6 2
## 49 36.7 2
## 50 37.4 1
## 51 37.5 1
## 52 37.7 1
## 53 38 1
## 54 38.1 2
## 55 38.2 2
## 56 38.3 1
## 57 38.7 2
## 58 38.8 1
## 59 39.1 1
## 60 39.2 1
## 61 39.4 2
## 62 39.5 1
## 63 39.6 2
## 64 39.8 1
## 65 39.9 2
## 66 40 3
## 67 40.1 1
## 68 40.4 1
## 69 40.7 2
## 70 40.9 1
## 71 41.1 2
## 72 41.2 1
## 73 41.3 1
## 74 41.4 1
## 75 41.5 1
## 76 41.7 1
## 77 42 1
## 78 42.2 1
## 79 42.3 2
## 80 42.7 1
## 81 42.9 1
## 82 43.1 1
## 83 43.2 1
## 84 43.3 1
## 85 43.4 1
## 86 43.7 1
## 87 44.2 2
## 88 44.5 1
## 89 44.6 1
## 90 44.7 1
## 91 44.9 1
## 92 45.1 1
## 93 45.3 2
## 94 45.6 1
## 95 46.2 1
## 96 46.5 1
## 97 47.1 1
## 98 47.3 1
## 99 47.4 1
## 100 47.6 1
## 101 47.8 1
## 102 48.2 1
## 103 48.5 1
## 104 48.8 1
## 105 48.9 1
## 106 49.1 2
## 107 49.3 2
## 108 49.4 2
## 109 49.5 1
## 110 49.9 1
## 111 50.1 1
## 112 50.4 1
## 113 51.2 1
## 114 51.3 1
## 115 51.4 2
## 116 51.6 2
## 117 51.7 2
## 118 52.9 1
## 119 53.7 1
## 120 54.9 1
## 121 56.6 1
## 122 57.1 1
## 123 57.5 1
## 124 58.4 1
## 125 62.4 1
## 126 63.1 1
## 127 64.2 1
## 128 66.9 1
## 129 68.6 1
## 130 77.2 1
Histograma
hist(datos.d$HorasDeTrabajo,
main = "Histograma de Horas de Trabajo",
xlab = "Horas de trabajo",
ylab = "Frecuencia",
col = "lightblue",
border = "black")
Poliogono de frecuencias
Elabore un dataframe con las medidas de tendencia central, de varia- bilidad, Q1 ,Q3 y las medidas de forma para la variable IingresoMensual.
# Medidas de tendencia central
media <- mean(datos.d$IngresoMensual)
mediana <- median(datos.d$IngresoMensual)
moda = mlv1(datos.d$IngresoMensual)
## Warning: argument 'method' is missing. Data are supposed to be continuous.
## Default method 'shorth' is used
# Medidas de variabilidad
varianza <- var(datos.d$IngresoMensual)
desv_est <- sd(datos.d$IngresoMensual)
rango <- max(datos.d$IngresoMensual) - min(datos.d$IngresoMensual)
# Cuartiles
Q1 <- as.numeric(quantile(datos.d$IngresoMensual, 0.25))
Q3 <- as.numeric(quantile(datos.d$IngresoMensual, 0.75))
#Medidas de forma
# Curtosis
curtosis <- sum((datos.d$IngresoMensual - media)^4) / (160 * desv_est^4)
#Asimetría
asimetria <- sum((datos.d$IngresoMensual - media)^3) / (160 * desv_est^3)
#Dataframe
resultados <- data.frame(
Media = media,
Mediana = mediana,
Moda = moda,
Varianza = varianza,
DesviacionEstandar = desv_est,
Rango = rango,
Q1 = Q1,
Q3 = Q3,
Asimetria = asimetria,
Curtosis = curtosis
)
print(resultados)
## Media Mediana Moda Varianza DesviacionEstandar Rango Q1
## 1 1910.194 1977.075 2197.344 753454 868.0173 4903.13 1256.467
## Q3 Asimetria Curtosis
## 1 2481.21 -0.179864 2.836105
**