This document shows the procedures and instructions of the requested workshop 2 Descriptive Statistics, an activity that has forged my theoretical-practical skills. First, it shows how to identify and choose the correct data type based on its genre. Second, the most qualitative variable is identified by the ratio scale with the highest priority. Third, the creation of a data frame with ages of random people is shown, using a function widely used to simulate population data with graphs. Fourth, according to a native database of the interpreter called swiss, measures of central tendency are calculated. Fifth, it is justified in which cases it is necessary to add any of the types of statistical diagrams. Sixth, the percentage of students who failed an evaluation is shown from a graphed vector of integers. Finally, two distributions are shown by gender and position of a company.
Identificar el tipo de variable y escala de medición según estos casos.
RTA: La variable es de tipo cualitativo perteneciente a la escala de medición ordinal.
RTA: La variable es de tipo cualitativo perteneciente a la escala de medición nominal.
RTA: La variable es de tipo cualitativo perteneciente a la escala de medición ordinal.
RTA: La variable es de tipo cuantitativo perteneciente a la escala de medición discreta.
RTA: La variable es de tipo cualitativo perteneciente a la escala de medición ordinal.
RTA: La variable es de tipo cualitativo perteneciente a la escala de medición nominal.
RTA: La variable es de tipo cuantitativo perteneciente a la escala de medición de intervalo.
RTA: La variable es de tipo cuantitativo perteneciente a la escala de medición de razón.
El nivel de ansiedad de un estudiante
Edad de una persona
Programa de posgrado en el que se encuentra matriculado
Marca de celular que usa una persona
RTA: Todas las opciones son cualitativas, pero la edad tiene un verdadero cero y diferencia significativa entre valores, lo que la hace una variable de razón. Es por ello que, la respuesta correcta es la b.
A). Crea un data.frame que además del identificador (ID) contenga la edad en años de la persona. Utiliza la función rnorm() para simular valores a partir de una distribución normal con media 25 años y desviación 5 años (aproximando el valor a números enteros), tome una muestra de 100 personas.
edades <- round(rnorm(100, mean = 25, sd = 5))
datos <- data.frame(ID = 1:100, Edad = edades)
#print(datos[, c("ID", "Edad")]) # Imprimer todos los 100 registros
head(datos) # Solo muestra los 6 primeros registros
## ID Edad
## 1 1 25
## 2 2 21
## 3 3 21
## 4 4 18
## 5 5 25
## 6 6 23
B). Ahora adiciona una variable que represente la valoración del servicio de transporte prestado (Excelente, Muy bueno, Bueno, Regular, Muy Regular), teniendo en cuenta que la distribución de estos resultados es: 0.28,0.50, 0.15, 0.05, 0.02. Utilice para ello la función sample()
edades <- round(rnorm(100, mean = 25, sd = 5))
datos <- data.frame(ID = 1:100, Edad = edades)
valores <- c("Excelente", "Muy bueno", "Bueno", "Regular", "Muy Regular")
probabilidades <- c(0.28, 0.50, 0.15, 0.05, 0.02)
datos$Valoracion <- sample(valores, 100, replace = TRUE, prob = probabilidades)
head(datos)
## ID Edad Valoracion
## 1 1 20 Muy bueno
## 2 2 29 Muy bueno
## 3 3 19 Excelente
## 4 4 14 Muy bueno
## 5 5 26 Bueno
## 6 6 28 Excelente
C). Cree un gráfico que le permita representar la valoración del servicio de transporte prestado, respecto a la edad. Haga un análisis estadístico de acuerdo con lo obtenido.
library(ggplot2)
edades <- round(rnorm(100, mean = 25, sd = 5))
datos <- data.frame(ID = 1:100, Edad = edades)
valores <- c("Excelente", "Muy bueno", "Bueno", "Regular", "Muy Regular")
probabilidades <- c(0.28, 0.50, 0.15, 0.05, 0.02)
datos$Valoracion <- sample(valores, 100, replace = TRUE, prob = probabilidades)
#summary(datos)
ggplot(datos, aes(x = Edad, fill = Valoracion)) +
geom_histogram(position = "stack", binwidth = 1) +
labs(
title = "Valoracion del servicio de transporte",
x = "Edad",
y = "Numero de personas"
) +
scale_fill_manual(values = c("Excelente" = "gray", "Muy bueno" = "green", "Bueno" = "black", "Regular" = "purple", "Muy Regular" = "red")) +
theme_minimal()
En el gráfico creado con ggplot2 sobre la Valoracion del
servicio de transporte con respecto a la edad, se muestra un histograma
de las edades de 100 personas, donde las barras están apiladas según la
valoración del servicio de transporte que cada persona ha dado. El cual
muestra claramente que más de la mitad del personal calificó con
muy bueno el servicio.
R contiene grupos de datos que pueden usarse para su aprendizaje. La función data(swiss) carga en el sistema la base swiss, verifique los tipos de variables que contiene. También se requiere calcular los principales indicadores de las variables Fertility y Infant.Mortality (media, mediana, varianza, desviación estándar, mínimo y máximo).
Explique en qué casos son necesarios y útiles los siguientes diagramas:
Diagramas de Barras: Cuándo: comparar categorías distintas. Para: mostrar la frecuencia o cantidad de cada categoría.
Diagramas de Cajas: Cuándo: mostrar la distribución de datos numéricos. Para: resumir datos en términos de mediana, cuartiles y detectar valores atípicos.
Histogramas: Cuándo: visualizar la distribución de una variable continua. Para: Ver la forma y frecuencia de los datos en intervalos.
Diagramas de Bigotes: Cuándo: representar la distribución y variabilidad de datos numéricos. Para: Destacar la dispersión y detectar valores extremos.
Diagramas de Dispersión: Cuándo: Examinar la relación entre dos variables continuas. Para: Identificar patrones y correlaciones entre variables.
Diagramas de Torta: Cuándo: Mostrar partes de un todo en categorías. Para: Visualizar proporciones y porcentajes de cada categoría.
La siguiente información corresponde a las notas obtenidas en una prueba de competencias computacionales realizada a un grupo de estudiantes:
Construya la tabla de distribución de frecuencias en R, un gráfico y los indicadores que le permitan caracterizar los datos. ¿Qué porcentaje de los estudiantes reprobaron la evaluación? (nota final < 3.0)
nf <- c(4.1, 2.7, 3.1, 3.2, 3.0, 3.2, 2.0, 2.4, 1.6, 3.2, 3.1, 2.6, 2.0, 2.4, 2.8,
3.3, 4.0, 3.4, 3.0, 3.1, 2.7, 2.7, 3.0, 3.8, 3.2, 2.2, 3.5, 3.5, 3.8, 3.5,
3.9, 4.2, 4.3, 3.9, 3.2, 3.5, 3.5, 3.7, 4.1, 3.7, 3.5, 3.6, 3.2, 3.1, 3.4,
3.0, 3.0, 3.0, 2.7, 1.7, 3.6, 2.1, 2.4, 3.0, 3.1, 2.5, 2.5, 3.6, 2.2, 2.4,
3.1, 3.3, 2.7, 3.7, 3.0, 2.7, 3.0, 3.2, 3.1, 2.4, 3.0, 2.7, 2.5, 3.0, 3.0,
3.0, 3.2, 3.1, 3.8, 4.1, 3.7, 3.5, 3.0, 3.7, 3.7, 4.1, 3.7, 3.9, 3.7, 2.0)
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
nf_table <- nf %>%
cut(breaks = seq(1.5, 4.5, by = 0.5), right = FALSE) %>%
table() %>%
as.data.frame()
colnames(nf_table) <- c("Rango", "Frecuencia")
#nf_table
ggplot(nf_table, aes(x = Rango, y = Frecuencia)) +
geom_bar(stat = "identity", fill = "gray") +
labs(title = "Distribución de frecuencias notas", x = "Rango de notass", y = "Frecuencia") +
theme_minimal()
mean_nf <- mean(nf)
median_nf <- median(nf)
variance_nf <- var(nf)
sd_nf <- sd(nf)
min_nf <- min(nf)
max_nf <- max(nf)
cat("Media:", mean_nf, "\n")
## Media: 3.136667
cat("Mediana:", median_nf, "\n")
## Mediana: 3.1
cat("Varianza:", variance_nf, "\n")
## Varianza: 0.3529101
cat("Desviación estándar:", sd_nf, "\n")
## Desviación estándar: 0.5940624
cat("Mínimo:", min_nf, "\n")
## Mínimo: 1.6
cat("Máximo:", max_nf, "\n")
## Máximo: 4.3
reprobados <- nf[nf < 3.0]
porcentaje_reprobados <- (length(reprobados) / length(nf)) * 100
cat("EL porcentaje de estudiantes que reprobaron fue", porcentaje_reprobados, "%\n")
## EL porcentaje de estudiantes que reprobaron fue 27.77778 %
La siguiente información resumida en una tabla corresponde a la distribución de los cargos en una empresa por el sexo de sus empleados (Cree la tabla en R). Represente esta información de manera gráfica
Distribución del sexo por cargo
Distribución del cargo por sexo
datos <- data.frame(
Cargo = c("Administrativo", "Operativo", "Vendedor"),
Mujer = c(32, 62, 132),
Hombre = c(21, 140, 55)
)
library(tidyr)
datos_long <- datos %>%
pivot_longer(cols = c(Mujer, Hombre), names_to = "Sexo", values_to = "Cantidad")
library(ggplot2)
ggplot(datos_long, aes(x = Cargo, y = Cantidad, fill = Sexo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Distribucion (sexo por cargo)", x = "Cargo", y = "Cantidad") +
theme_minimal()
ggplot(datos_long, aes(x = Sexo, y = Cantidad, fill = Cargo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Distribucion (cargo por sexo)", x = "Sexo", y = "Cantidad") +
theme_minimal()
Los siguientes datos corresponde los tiempos empleados por 70 atletas en una carrera 10K. Determine si existen datos atípicos en los tiempos utilizando un gráfico y en caso de tenerlos determine qué valor tienen, haga su respectivo análisis.
x <- c(49.88, 45.41, 45.03, 42.30, 51.85, 51.24, 58.90,
49.35, 55.69, 63.02, 53.48, 45.33, 52.84, 50.80,
51.21, 48.90, 50.96, 54.71, 62.74, 49.19, 43.39,
51.24, 56.00, 50.43, 53.48, 43.84, 49.56, 48.54,
45.75, 44.72, 51.19, 56.67, 51.32, 49.56, 52.72,
48.42, 56.89, 53.45, 44.38, 53.70, 51.49, 44.82,
47.29, 46.61, 52.10, 51.18, 51.00, 55.31, 52.49,
48.98, 53.25, 49.61, 51.06, 52.86, 46.74, 58.43,
50.06, 48.46, 45.89, 54.96, 43.06, 47.62, 52.91)
library(ggplot2)
df <- data.frame(Tiempo = x)
ggplot(df, aes(y = Tiempo)) +
geom_boxplot(fill = "purple") +
labs(title = "Diagrama de caja (tiempos de los atletas)", y = "Tiempo en minutos") +
theme_minimal()
Q1 <- quantile(x, 0.25)
mediana_q2 <- mean(x)
Q3 <- quantile(x, 0.75)
IQR <- Q3 - Q1
lm_inferior <- Q1 - 1.5 * IQR
lm_superior <- Q3 + 1.5 * IQR
val_atipicos <- x[x < lm_inferior | x > lm_superior]
cat("Mediana:", mediana_q2, "\n")
## Mediana: 50.70254
cat("Límite inferior:", lm_inferior, "\n")
## Límite inferior: 40.43
cat("Límite superior:", lm_superior, "\n")
## Límite superior: 60.67
cat("Valores atípicos:", val_atipicos, "\n")
## Valores atípicos: 63.02 62.74
El diagrama de caja y bigote permite visualizar rápidamente si hay valores que se desvían significativamente de la distribución general de los tiempos. Los valores atípicos se identifican como puntos fuera de los famosos “bigotes” del diagrama. El código proporciona estos valores atípicos y los límites que los determinan mediante el gráfico adjunto anteriormente. A continuación, expongo lo relevante:
Mediana: la mediana (la línea dentro de la caja) representa el valor central de los tiempos. Esta mediana divide el conjunto de datos en dos partes iguales.
Cuartiles: La caja del diagrama está delimitada por los cuartiles Q1 que corresponde al primer cuartil y Q3 tercer cuartil. El tamaño de la caja representa el rango intercuartílico IQR, que es la diferencia entre Q3 y Q1. Esto muestra dónde se encuentra la mayoría de los datos, con el 50% central concentrado en esta región.
Bigotes: Los “bigotes” se extienden desde los cuartiles hasta los valores más alejados que no se consideran atípicos. Los bigotes ayudan a visualizar la variabilidad en los datos que no está incluida en el rango intercuartílico.
Valores atípicos: Los puntos fuera de los bigotes son considerados valores atípicos. Estos son datos que están significativamente alejados de la mayoría de los otros datos y pueden indicar condiciones inusuales, errores o variaciones extremas en el rendimiento.