Juan Pablo Rojas Veloza
Juan Gallardo
David Gracia
Katherine Restrepo
El presente trabajo ha sido realizado por el siguiente equipo:
Estudiante de Ingeniería Industrial
Estudiante de Ingeniería Eléctrica
Estudiante de Ingeniería Eléctrica
Estudiante de Ingeniería Química
La proporción expresa el número de observaciones de una variable con una característica en particular dentro del conjunto total de datos de una población. (Rubiales, 2018)
Las medidas de tendencia central son los valores medios o centrales de una distribución. Las principales medidas de tendencia central son tres: Moda, Mediana y Media.
La moda estadística es aquel valor que, dentro de un conjunto de datos, se repite el mayor número de veces. La determinación de la moda estadística en un conjunto de datos que no están agrupados no requiere ningún tipo de cálculo, sino tan solo el conteo de las variables. Otra forma de determinar la moda en datos no agrupados consiste en verificar cuál es el valor de mayor frecuencia en una tabla de frecuencias absolutas. La moda estadística es aplicable tanto para datos de información cualitativa como cuantitativa. (Frederick, 2021)
La media (\(\bar{x}\)) de un conjunto de datos es una medida de posición central. Se define como el valor característico de la serie de datos resultado de la suma de todas las observaciones dividido por el número total de datos (Serra, 2014). Su fórmula es:
\[ \bar{x} = \frac{\sum x_i}{n} \tag{1} \]
En la fórmula anterior: - \(n\): Tamaño de la muestra. - \(x_i\): Valores individuales de los datos.
La media de una muestra de valores de datos se utiliza para estimar la verdadera media desconocida de la población. Este estadístico puede verse afectado por valores extremos. Cuando se tienen valores extremos o una distribución sesgada, la mediana puede ser una mejor forma de medir el centro.
Es el valor que divide en dos partes iguales a un conjunto de datos, es decir, la mitad de los casos caen por debajo de la Mediana y la otra mitad se ubica por encima. Esta medida se calcula de la siguiente forma:
\[ L_{50} = \frac{n + 1}{2} \tag{2} \]
El rango, también conocido como amplitud o recorrido, en estadística es la diferencia entre el valor máximo y el valor mínimo de un conjunto de datos provenientes de una población o muestra. Generalmente, se suele simbolizar al rango con la letra mayúscula “R”. Para calcular el rango de una muestra o población, se utiliza la siguiente fórmula:
\[ R = x_{\text{máximo}} - x_{\text{mínimo}} \tag{3} \]
La noción de rango es útil para tener una idea general de la dispersión de un conjunto de datos, pues permite apreciar rápidamente la variabilidad de los datos e indica la longitud del intervalo donde se encuentren estos. (Gobierno de México, 2022)
La varianza es una medida estadística que cuantifica la dispersión de un conjunto de datos. En otras palabras, nos dice qué tan dispersos o agrupados están los valores en torno a la media. Una varianza baja indica que los datos tienden a estar cerca de la media, mientras que una varianza alta sugiere una mayor dispersión. La formula para calcular la varianza es la siguiente:
\[ S^2 = \frac{\sum (x_i - \bar{x})^2}{n} \tag{4} \]
Una varianza baja indica que los valores en el conjunto de datos están cerca de la media. Esto sugiere una mayor homogeneidad y menor dispersión. Es común encontrar una baja varianza en conjuntos de datos donde los valores son relativamente similares entre sí. Por el contrario, una varianza alta señala que los valores están más dispersos alrededor de la media. Este escenario sugiere una mayor heterogeneidad y variabilidad entre los datos. Conjuntos de datos con una varianza alta pueden mostrar una amplia gama de valores. Aunque la varianza es una herramienta valiosa, no es inmune a las peculiaridades de los datos. Puede verse afectada por valores extremos, y en algunos casos, la interpretación pura de la varianza puede ser limitada.(Data World, 2023)
La desviación estándar mide la dispersión de un conjunto de datos. Una desviación estándar alta indica una gran dispersión de los valores de los datos, mientras que una desviación estándar baja indica una dispersión angosta de los valores agrupados en torno a la media del conjunto de datos. Este dato se utiliza para investigar la variabilidad que presenta un conjunto de datos. Este estadístico, al igual que la media, presenta una falencia y es que puede verse afectado por valores extremos y/o conjuntos de datos pequeños. Además, la desviación estándar solo es relevante para los datos continuos. (JMP statistical software, s. f.)
\[ S = \sqrt{S^2} \tag{5} \]
El coeficiente de variación es una medida de dispersión relativa (libre de unidades de medida), que se define como el cociente de la desviación estándar entre la media aritmética. Su fórmula es la siguiente:
\[ CV = \frac{S}{\bar{x}} \times 100 \tag{6} \]
El coeficiente de variación se suele usar para comparar el grado de dispersión de dos o más conjuntos de datos; incluso si tienen medidas diferentes. Es de gran utilidad cuando se necesita comparar las dispersiones de dos conjuntos de datos cuyas medias son muy diferentes. De dos conjuntos de datos, el más homogéneo es el que tiene menor coeficiente de variación. (Rondón Poveda, 2024).
# Librerías
library(flextable)
library(moments)
library(modeest)
library(dplyr)
library(descriptr)
library(ggplot2)
library(datos)
library(fdth)
library(plotrix)
library(knitr)
library(aplpack)
library(readxl)
library(readr)
Base_Estadistica_Descriptiva <- read_excel("C:\\Users\\USER\\Documents\\R\\Base_Estadistica_Descriptiva.xlsx")
View(Base_Estadistica_Descriptiva)
set.seed(2343)
datos1 <- sample_n(Base_Estadistica_Descriptiva, size = 100, replace = FALSE)
Parcial1 <- datos1
View(datos1)
datos1 <- as.data.frame(datos1)
tblnived <- table(datos1$NivelEducativo)
dfnived <- as.data.frame(tblnived)
dfnived <- rename(dfnived, Nivel_Educativo = Var1, Frecuencia = Freq)
kable(dfnived, align = 'c', digits = 0, caption = "Tabla proporción de estudiantes por cada nivel educativo", format = "markdown")| Nivel_Educativo | Frecuencia |
|---|---|
| Primaria | 29 |
| Secundaria | 19 |
| Técnico | 28 |
| Universitario | 24 |
diag_barra_NE <- ggplot(dfnived, aes(x = Nivel_Educativo, y = Frecuencia, fill = Nivel_Educativo)) +
geom_bar(stat = 'identity') +
labs(title = "Gráfico de barras nivel educativo", x = "Nivel educativo", y = "Número de personas") +
theme_minimal() +
scale_fill_manual(values = c("#EEE9BF", "#87CEFA", "#90EE90", "#CD5555")) +
geom_text(aes(label = Frecuencia), vjust = -0.5) +
theme(axis.text.x = element_text(angle = 45, hjust = 1), plot.title = element_text(hjust = 0.5))
diag_barra_NEtblgen <- table(datos1$Genero)
dfgen <- as.data.frame(tblgen)
dfgen <- rename(dfgen, Genero = Var1, Frecuencia = Freq)
dfgen$Porcentaje <- round((dfgen$Frecuencia / sum(dfgen$Frecuencia)) * 100, 2)
torta1 <- ggplot(dfgen, aes(x = "", y = Frecuencia, fill = Genero)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y", start = 0) +
geom_text(aes(label = paste0(Porcentaje, "%")),
position = position_stack(vjust = 0.5),
size = 5,
color = "#030303") +
labs(title = "Distribución de Géneros", fill = "Género") +
scale_fill_manual(values = c("#CD919E", "#98F5FF", "#008B45")) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
legend.title = element_text(size = 12),
legend.text = element_text(size = 10)
)
torta1La media de la edad es: 40.3.
La mediana de la edad es: 40.
La desviación estándar de la edad es: 15.
media_edad <- mean(datos1$Edad)
mediana_edad <- median(datos1$Edad)
desvest_edad <- round(sd(datos1$Edad))
tabla <- data.frame(
Medida = c("Media", "Mediana", "Desviación Estándar"),
Valor = c(media_edad, mediana_edad, desvest_edad)
)
kable(tabla, align = 'c', caption = "Cálculos de las medidas de la edad")| Medida | Valor |
|---|---|
| Media | 40.3 |
| Mediana | 40.0 |
| Desviación Estándar | 15.0 |
tabhermanos <- table(datos1$Hermanos)
dfhermanos <- data.frame(tabhermanos)
sumaa <- sum(dfhermanos$Freq[as.numeric(dfhermanos$Var1) > 3])
sumab <- sum(dfhermanos$Freq[as.numeric(dfhermanos$Var1) <= 3])
sumas <- c(sumab,sumaa)
Numero_Hermanos <- c("Menos de 3","Más de 3")
dfnumher <- data.frame(Numero_Hermanos, sumas)
dfnumher <- rename(dfnumher, Numero_Hermanos = Numero_Hermanos, Frecuencia= sumas)
bar_her <- ggplot(dfnumher, aes(x = Numero_Hermanos, y = Frecuencia, fill = Numero_Hermanos)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("#CCEDB1", "#41B7C4"))+
geom_text(aes(label = Frecuencia), vjust = -1, colour = "black",size=4) +
ylim(c(0,65)) +
labs(title = "Cantidad de Hermanos", x = "Número de Hermanos", y = "Frecuencia") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
bar_herrango_ingreso <- ds_range(datos1$IngresoMensual)
varianza_ingreso <- round(var(datos1$IngresoMensual), 0)
coefv_ingreso <- round(ds_cvar(datos1$IngresoMensual),3)
tabla_ingreso <- data.frame(
Métrica = c("Rango", "Varianza", "Coeficiente de Variación"),
Valor = c(
format(round(rango_ingreso, 2), decimal.mark = "."),
format(varianza_ingreso),
format(coefv_ingreso, big.mark = ".")
)
)
kable(tabla_ingreso, align = 'c', caption = "Cálculos - Ingreso Mensual")| Métrica | Valor |
|---|---|
| Rango | 4268.81 |
| Varianza | 640433 |
| Coeficiente de Variación | 40.289 |
tabest <- table(datos1$Estatura)
dfest <- data.frame(tabest)
hist_est <- ggplot(dfest, aes(x = Freq)) +
geom_histogram(bins = 20, fill = "#D8BFD8", color = "#8B7B8B",alpha=0.7) +
geom_density(aes(y = ..density.. * max(..count..)), color = "darkblue", size = 1.5)+
labs(title = "Histograma Estatura", x = "Estatura", y = "Frecuencia")+
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5),
axis.title.x = element_text(size = 12),
axis.title.y = element_text(size = 12)) +
scale_y_continuous(expand = expansion(mult = c(0, 0.05)))
hist_estDe la información presentada en el histograma se puede afirmar que la distribución esta sesgada a la derecha, para ilustrar lo dicho anteriormente se empleó la función “geom_density”, la cual nos permite trazar una curva suave en el histograma y así comparar más fácilmente los datos obtenidos con otros tipos de distribuciones y así identificar cual presenta. Por otro lado, se podría reafirmar que la distribución presenta un sesgo hacia la derecha al evaluar sus medidas de tendencia central y percatarse que probablemente tanto la media, mediana y moda se encuentren entre el 1 y el 3 (interpretando así su sesgo hacia la derecha) y no entre el 3 y el 5 que debería ser el valor que tuviesen si estuviese normalmente distribuida. (Geom_density.Rd at Ggplot2, 2024; ggplot2, s. f.)
media_horas_trabajo <- mean(datos1$HorasDeTrabajo)
percent90 <- 90*(100+1)/100
datord <- sort(datos1$HorasDeTrabajo,decreasing = FALSE)
datord<- na.omit(datord)
sol <- datord[90] + 0.90*(datord[91]-datord[90])Con el percentil 90 de las horas de trabajo se puede concluir que el 90% de los individuos de la muestra trabajan menos de 53.66 horas y el 10% más. Además, ya que la media es de 41.20 horas se puede decir que este número de horas de trabajo es el que mejor representa la muestra.
estatura_genero <- data.frame(Parcial1[,c(2,7)])
promedio_fem <- mean(subset(Parcial1,Genero == "Femenino")$Estatura)
promedio_mas <- mean(subset(Parcial1,Genero == "Masculino")$Estatura)
promedio_otr <- mean(subset(Parcial1,Genero == "Otro")$Estatura)
promedios <- c(promedio_fem,promedio_mas,promedio_otr)
Genero <- c("Femenino","Masculino","Otro")
generovspromedio <- data.frame(Genero, ni=promedios)
diag_salario_genero <- ggplot(generovspromedio,aes(x= Genero,y=promedios, fill = Genero ))+
geom_bar(stat='identity')+ labs(title = "Gráfico de barras genero vs promedio estatura",
x = "Genero",
y = "Promedio estatura")+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diag_salario_generoLas alturas promedio de los géneros femenino, masculino y otros son respectivamente 1,75; 1,73; 1,72 teniendo en cuenta estos valores no existe alguna diferencia significativa y por tanto el género no tiene incidencia en el promedio de la estatura.
promedio_prim <- mean(subset(datos1,NivelEducativo == "Primaria")$IngresoMensual)
promedio_secu <- mean(subset(datos1,NivelEducativo == "Secundaria")$IngresoMensual)
promedio_tecn <- mean(subset(datos1,NivelEducativo == "Técnico")$IngresoMensual)
promedio_univ <- mean(subset(datos1,NivelEducativo == "Universitario")$IngresoMensual)
promedios2 <- c(promedio_prim,promedio_secu,promedio_tecn,promedio_univ)
Nivel_ed <- c("Primaria","Secundaria","Técnico","Universitario")
Nivel_edvspromedio <- data.frame(Nivel_ed, ni=promedios2)
diag_salario_Niv_ed <- ggplot(Nivel_edvspromedio,aes(x= Nivel_ed,y=promedios2, fill = Nivel_ed ))+
geom_bar(stat='identity')+ labs(title = "Grafico de barras Nivel educativo vs Ingreso mensual",
x = "Nivel educativo",
y = "Promedio ingreso mensual")+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diag_salario_Niv_edAl ser valores diferentes se puede decir que el salario varía entre los niveles educativos de forma descendente en el siguiente orden: Primaria (2057), técnico (1998), secundaria (1962) y universitario (1930). Pero esta no es suficiente información para concluir que el salario varía en función del nivel estudiantil, ya que hay otras variables que pueden afectar el salario como las horas de trabajo.
promedio_prim2 <- mean(subset(Parcial1,NivelEducativo == "Primaria")$HorasDeTrabajo)
promedio_secu2 <- mean(subset(Parcial1,NivelEducativo == "Secundaria")$HorasDeTrabajo)
promedio_tecn2 <- mean(subset(Parcial1,NivelEducativo == "Técnico")$HorasDeTrabajo)
promedio_univ2 <- mean(subset(Parcial1,NivelEducativo == "Universitario")$HorasDeTrabajo)
promedios3 <- c(promedio_prim2,promedio_secu2,promedio_tecn2,promedio_univ2)
Nivel_ed <- c("Primaria","Secundaria","Técnico","Universitario")
Nivel_edvspromedio2 <- data.frame(Nivel_ed, ni=promedios3)
diag_horas_Niv_ed <- ggplot(Nivel_edvspromedio,aes(x= Nivel_ed,y=promedios3, fill = Nivel_ed ))+
geom_bar(stat='identity')+ labs(title = "Gráfico de barras Nivel educativo vs Horas de trabajo",
x = "Nivel educativo",
y = "Promedio horas de trabajo")+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diag_horas_Niv_edEstos valores son diferentes, pero no varían significativamente, pero al organizarlos en orden descendente: Universitario (42.4), secundaria (42.3), técnico (41.4) y primaria (39.4).
Para realizar un análisis adecuado que relacione a cuanto pagan la hora de trabajo según el nivel educativo, se toma el promedio de horas que trabajan semanalmente (punto 10) y se multiplica por las 4 semanas de mes para hallar cuantas horas trabajan mensualmente.
Se divide el salario mensual promedio (punto 9) entre las horas trabajadas mensualmente hallando así a cuanto se les paga la hora a las personas de cada nivel educativo.
#para hacer un analisis mas adecuado se halla a cuanto pagan la hora segun el nivel educativo
pagohoras <- data.frame(Nivel_ed,ni=promedios2/(promedios3*4))
diag_pago_horas <- ggplot(pagohoras,aes(x= Nivel_ed,y=ni, fill = Nivel_ed ))+
geom_bar(stat='identity')+ labs(title = "Gráfico de barras Nivel educativo vs Pago por hora de trabajo",
x = "Nivel educativo",
y = "Pago hora de trabajo")+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diag_pago_horasCon esta información se puede concluir que para las personas de la muestra tienen un mejor pago los empleos de las personas con cierto nivel educativo de la siguiente manera: Primaria (13.06), Técnico (11.94), Secundaria (11.60) y Universitario (11.40)
diagrama1 <- ggplot(data = Parcial1,aes(x=IngresoMensual,y=NivelEducativo,fill=NivelEducativo)) +
geom_boxplot() +
labs(x ="Ingreso Mensual", y="Nivel Educativo", title = "Ingreso mensual por nivel educativo")+
stat_boxplot(geom = "errorbar", width=0.35, color = "black")+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diagrama1En este diagrama se muestra que las personas de la muestra que con un nivel educativo de técnico existen datos atípicos mayores al máximo y en el caso de las personas con primaria hay valores atípicos menores y mayores a los mínimos y máximos establecidos, mientras que para secundaria y universidad no hay datos atípicos.
grafico.disp <- ggplot(data = Parcial1) +
geom_point(mapping = aes(x = Edad, y = HorasDeTrabajo, color = HorasDeTrabajo))+
labs(x ="Edad", y="Horas de trabajo", title = "Edad vs Horas de trabajo") +
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
grafico.dispNo, apartir de la gráfica podemos observar que no hay ninguna relación clara. Debido a que no se puede evidenciar uan linea de tendencia entre los puntos.
tabla <- table(datos1$Genero, datos1$NivelEducativo)
kable(tabla,align = 'c',digits = 0, caption= "Distribución conjunta de Género y Nivel Educativo",format = "markdown")| Primaria | Secundaria | Técnico | Universitario | |
|---|---|---|---|---|
| Femenino | 9 | 4 | 12 | 4 |
| Masculino | 10 | 9 | 8 | 10 |
| Otro | 10 | 6 | 8 | 10 |
personas_mas_de_2_hermanos <- subset(datos1, Hermanos > 2)
proporcion <- sum(personas_mas_de_2_hermanos$IngresoMensual > 3000) / nrow(personas_mas_de_2_hermanos)
proporcion_porcentaje <- proporcion * 100diagrama2 <- ggplot(data= datos1, aes(x=NivelEducativo, y=IngresoMensual,fill=NivelEducativo)) +
geom_boxplot() +
labs(x="Nivel Educativo", y="Ingreso Mensual", title = "Ingreso Mensual por Nivel Educativo")+
stat_boxplot(geom= "errorbar", width=0.35)+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diagrama2datos1$HorasRango <- cut(datos1$HorasDeTrabajo,
breaks = c(0, 20, 30, 40, 50, 60, 70),
labels = c("0-20", "21-30", "31-40", "41-50", "51-60", "61-70"))
diagrama3 <- ggplot(data= datos1, aes(x=HorasRango, y=IngresoMensual,fill=HorasRango)) +
geom_boxplot() +
labs(x="Rangos de Horas de Trabajo", y = "Ingreso Mensual", title = "Ingreso Mensual por Rangos de Horas de Trabajo")+
stat_boxplot(geom= "errorbar", width=0.35)+
theme_light()+
theme(plot.title = element_text(hjust = 0.5),
legend.position = "right",
legend.title = element_blank())
diagrama3Gráficas comparando ingreso mensual, nivel educativo y horas de trabajo
A partir del análisis de los gráficos de caja, se puede observar que tanto las variables del nivel educativo y las horas de trabajo tienen relación con la variable de ingreso mensual. En el caso del nivel educativo, las personas con un nivel educativo más alto, como los que tienen estudios universitarios, tienden a tener ingresos mensuales más altos en comparación con aquellos con un nivel educativo más bajo, lo que muestra que el nivel educativo es una de las variables más relacionadas con el ingreso mensual. Por otro lado, el segundo grafico presentado muestra el ingreso mensual por rangos de horas de trabajo y esto indica que, aunque existe cierta relación entre las horas trabajadas y los ingresos, la dispersión de los ingresos dentro de los mismos rangos de horas trabajadas muestra que existen otros factores que también afectan el ingreso mensual. Por último, aunque se observa una tendencia a que los ingresos aumenten con más horas trabajadas, esta relación no es tan clara ni tan fuerte como la que se da con el nivel educativo.
Para predecir las horas de trabajo de una persona, consideraríamos ciertas variables como el nivel educativo, el ingreso mensual y la edad. El nivel educativo es relevante porque las personas con mayor educación suelen acceder a trabajos que requieren más horas o jornadas laborales más largas. El ingreso mensual también influye en las horas de trabajo, ya que quienes tienen mayores ingresos podrían estar trabajando más horas, ya sea por el tipo de empleo o la necesidad de mantener ese nivel económico. También la edad también es un factor importante, ya que los jóvenes pueden estar en etapas de formación o en empleos temporales con menos horas, mientras que las personas de mayor edad podrían tener empleos más estables, con jornadas laborales más regulares. Por lo tanto, estas tres variables están relacionadas con las horas de trabajo y serían útiles para predecir este valor.