Se encuestó a 40 estudiantes sobre su red social preferida para fines académicos: WhatsApp (W), YouTube (Y), LinkedIn (L), Instagram (I).
red_social <- c("W","Y","L","L","I","W","Y","Y","L","W",
"W","I","Y","L","L","W","Y","I","L","W",
"W","Y","L","I","W","L","L","Y","W","I",
"L","Y","W","W","L","I","Y","L","W","L")
length(red_social) # comprobación: debe ser 40
## [1] 40
fi <- table(red_social)
hi <- prop.table(fi)
tabla_frec1 <- data.frame(
Red_Social = names(fi),
Frecuencia_Absoluta = as.vector(fi),
Frecuencia_Relativa = round(as.vector(hi), 3),
Frecuencia_Porcentual = round(as.vector(hi) * 100, 1)
)
# Ordenar de mayor a menor frecuencia
tabla_frec1 <- tabla_frec1[order(-tabla_frec1$Frecuencia_Absoluta), ]
rownames(tabla_frec1) <- NULL
# Fila de totales
totales1 <- data.frame(
Red_Social = "Total",
Frecuencia_Absoluta = sum(tabla_frec1$Frecuencia_Absoluta),
Frecuencia_Relativa = sum(tabla_frec1$Frecuencia_Relativa),
Frecuencia_Porcentual = sum(tabla_frec1$Frecuencia_Porcentual)
)
rbind(tabla_frec1, totales1)
## Red_Social Frecuencia_Absoluta Frecuencia_Relativa Frecuencia_Porcentual
## 1 L 13 0.325 32.5
## 2 W 12 0.300 30.0
## 3 Y 9 0.225 22.5
## 4 I 6 0.150 15.0
## 5 Total 40 1.000 100.0
par(mfrow = c(1, 2))
# Diagrama de barras
barplot(sort(fi, decreasing = TRUE),
col = c("#4682B4", "#F28E2B", "#32CD32", "#B22222"),
main = "Preferencia de Red Social",
xlab = "Red social", ylab = "Frecuencia absoluta",
ylim = c(0, max(fi) + 3))
# Diagrama de sectores (torta)
etiquetas <- paste0(names(fi), " (", round(as.vector(hi) * 100, 1), "%)")
pie(fi, labels = etiquetas,
col = c("#5F9EA0", "#F28E2B", "#59A14F", "#7FFFD4"),
main = "Distribución de preferencias")
par(mfrow = c(1, 1))
red_predominante <- names(which.max(fi))
porcentaje_predominante <- round(max(hi) * 100, 1)
La red social predominante es LinkedIn, ya que fue seleccionada por 13 de los 40 estudiantes encuestados, siendo la frecuencia más alta entre todas las opciones. Esto representa el 32,5 % del total del grupo. Por lo tanto, aproximadamente 1 de cada 3 estudiantes manifestó preferir LinkedIn para fines académicos. Además, este resultado indica que LinkedIn tiene una mayor preferencia que WhatsApp (30 %), YouTube (22,5 %) e Instagram (15 %), por lo que puede considerarse la red social con mayor aceptación dentro del grupo analizado.
tabla2 <- matrix(c(45, 15,
30, 10,
10, 40),
nrow = 3, byrow = TRUE,
dimnames = list(
Facultad = c("Ingeniería", "Ciencias Salud", "Artes"),
Deporte = c("Practica Deporte", "No practica")
))
tabla2_totales <- addmargins(tabla2)
tabla2_totales
## Deporte
## Facultad Practica Deporte No practica Sum
## Ingeniería 45 15 60
## Ciencias Salud 30 10 40
## Artes 10 40 50
## Sum 85 65 150
barplot(t(tabla2),
beside = TRUE,
col = c("#00FF7F", "#FF00FF"),
legend.text = colnames(tabla2),
args.legend = list(x = "topright", bty = "n"),
main = "Práctica de deporte según Facultad",
xlab = "Facultad", ylab = "Número de estudiantes",
ylim = c(0, 50))
porcentaje_practica <- round(tabla2[, "Practica Deporte"] / rowSums(tabla2) * 100, 1)
porcentaje_practica
## Ingeniería Ciencias Salud Artes
## 75 75 20
facultad_mayor <- names(which.max(porcentaje_practica))
¿Cuál es la facultad con mayor cultura deportiva en términos porcentuales? La facultad de Ingeniería tiene el mayor porcentaje de estudiantes que practican deporte, con un 75%, frente al 75% de Ciencias de la Salud y apenas 20% en Artes.
¿Parece haber una asociación entre la facultad y el hábito de hacer deporte? Se puede evaluar formalmente con una prueba de independencia Chi-cuadrado:
chi_test <- chisq.test(tabla2)
chi_test
##
## Pearson's Chi-squared test
##
## data: tabla2
## X-squared = 41.063, df = 2, p-value = 1.211e-09
Dado que el valor p (1.21e-09) es considerablemente menor que 0.05, se rechaza la hipótesis de independencia: sí existe asociación entre la facultad y la práctica de deporte. Ingeniería y Ciencias de la Salud muestran una alta proporción de estudiantes activos, mientras que en Artes ocurre lo contrario, con una amplia mayoría que no practica deporte regularmente.
peso <- c(45, 50, 44, 49, 56, 60, 59, 54, 50, 52,
55, 46, 51, 55, 57, 58, 49, 52, 54, 56,
64, 60, 57, 62, 55, 56, 45, 63, 54, 52,
44, 47, 64, 46, 52, 61, 63, 55, 53, 57)
length(peso) # comprobación: debe ser 40
## [1] 40
Como se trata de una variable cuantitativa continua con muchos valores distintos, se agrupan los datos en intervalos de clase, usando la regla de Sturges para definir el número de clases.
n <- length(peso)
k <- ceiling(1 + 3.322 * log10(n)) # Número de clases (Sturges)
rango <- max(peso) - min(peso)
amplitud <- ceiling(rango / k)
lim_inf <- floor(min(peso))
cortes <- seq(lim_inf, by = amplitud, length.out = k + 1)
intervalos <- cut(peso, breaks = cortes, right = FALSE, include.lowest = TRUE)
fi4 <- table(intervalos)
hi4 <- prop.table(fi4)
Fi4 <- cumsum(fi4)
Hi4 <- cumsum(hi4)
marca_clase <- (cortes[-length(cortes)] + cortes[-1]) / 2
tabla_frec4 <- data.frame(
Intervalo = names(fi4),
Marca_de_Clase = marca_clase,
Frecuencia_Absoluta = as.vector(fi4),
Frecuencia_Relativa = round(as.vector(hi4), 3),
Frecuencia_Porcentual = round(as.vector(hi4) * 100, 1),
Frec_Acumulada = as.vector(Fi4),
Frec_Rel_Acumulada = round(as.vector(Hi4), 3)
)
tabla_frec4
## Intervalo Marca_de_Clase Frecuencia_Absoluta Frecuencia_Relativa
## 1 [44,47) 45.5 6 0.150
## 2 [47,50) 48.5 3 0.075
## 3 [50,53) 51.5 7 0.175
## 4 [53,56) 54.5 8 0.200
## 5 [56,59) 57.5 7 0.175
## 6 [59,62) 60.5 4 0.100
## 7 [62,65] 63.5 5 0.125
## Frecuencia_Porcentual Frec_Acumulada Frec_Rel_Acumulada
## 1 15.0 6 0.150
## 2 7.5 9 0.225
## 3 17.5 16 0.400
## 4 20.0 24 0.600
## 5 17.5 31 0.775
## 6 10.0 35 0.875
## 7 12.5 40 1.000
(k = 7 clases, amplitud = 3, calculados con la regla de Sturges: k = 1 + 3.322·log10(n))
par(mfrow = c(1, 2))
# Histograma
barplot(fi4, names.arg = names(fi4), col = "#4E79A7",
main = "Histograma de Peso",
xlab = "Intervalo de peso (kg)", ylab = "Frecuencia absoluta",
las = 2, cex.names = 0.7)
# Polígono de frecuencias
plot(marca_clase, fi4, type = "b", pch = 19, col = "#E15759",
main = "Polígono de Frecuencias",
xlab = "Marca de clase (kg)", ylab = "Frecuencia absoluta")
par(mfrow = c(1, 1))
clase_modal <- names(which.max(fi4))
media_peso <- round(mean(peso), 1)
mediana_peso <- median(peso)
El peso promedio de los estudiantes es de 54 kg, mientras que la mediana se encuentra en 54.5 kg.
El intervalo que concentra la mayor cantidad de estudiantes es [53,56), donde se encuentran 8 de los 40 estudiantes, equivalentes al 20% del grupo.
En general, los pesos presentan una mayor concentración alrededor de los valores centrales, dentro de un rango que va desde 44 kg hasta 64 kg.
No se observan valores que se encuentren considerablemente alejados del conjunto de datos, lo que indica una distribución relativamente concentrada de los pesos.