Manipulación y representación de datos estadísticos con R

🎯 Introducción

El lenguaje R proporciona potentes herramientas para la manipulación y representación de datos estadísticos. En esta actividad se trabajará con los conjuntos de datos integrados en R (precip, state.area, state.abb, discoveries) y se aplicarán técnicas de representación gráfica (histogramas, diagramas de barras, polígonos de frecuencia), cálculo de frecuencias (absolutas, relativas, acumuladas) y determinación de la moda mediante análisis visual y computacional.



1. Representación de datos

Histogramas con el vector precip

El vector precip contiene datos de precipitación media anual (en pulgadas) para 70 ciudades de Estados Unidos.

# Visualización de los datos
print(precip)

Histograma de frecuencias absolutas

hist(precip, 
     main = "Histograma de precipitaciones en ciudades de EE.UU.",
     xlab = "Precipitación media (pulgadas)",
     ylab = "Frecuencia absoluta",
     col = "lightblue",
     border = "darkblue")

Histograma de frecuencias relativas

hist(precip, 
     freq = FALSE,
     main = "Histograma de precipitaciones (frecuencias relativas)",
     xlab = "Precipitación media (pulgadas)",
     ylab = "Densidad",
     col = "lightgreen",
     border = "darkgreen")

Histograma con 10 intervalos

hist(precip, 
     breaks = 10,
     main = "Histograma con 10 intervalos",
     xlab = "Precipitación media (pulgadas)",
     ylab = "Frecuencia",
     col = "coral",
     border = "darkred")

Interpretación: Los histogramas muestran la distribución de las precipitaciones. Se observa una concentración de ciudades con precipitaciones entre 35 y 45 pulgadas.

Diagramas de barras y gráficos alternativos

ventas <- c(345.3, 452.1, 395.6)
names(ventas) <- c("Pedro", "Juan", "Maria")
barplot(ventas, main = "Ventas España", ylab = "Miles de euros", xlab = "Vendedor", col = "steelblue")
pie(ventas, main = "Ventas España", col = c("gold", "tomato", "lightgreen"))
dotchart(ventas, main = "Ventas España", xlab = "Miles de euros", col = "darkorange")

📊 Preguntas Tarea 1

  1. Órdenes para crear un diagrama de barras con los estados con más de 100,000 millas cuadradas
areas_grandes <- state.area[state.area > 100000]
estados_grandes <- state.abb[state.area > 100000]

barplot(areas_grandes,
        names.arg = estados_grandes,
        main = "Estados de EE.UU. con área superior a 100,000 millas²",
        xlab = "Estados",
        ylab = "Área (millas cuadradas)",
        col = "darkblue",
        las = 2,
        cex.names = 0.8)
abline(h = 100000, col = "red", lwd = 2, lty = 2)
  1. Figura del diagrama de barras resultante
El gráfico muestra los estados con más de 100,000 millas cuadradas. Los estados que superan este umbral son: Alaska (AK), Texas (TX), California (CA), Montana (MT), Nuevo México (NM), Arizona (AZ), Nevada (NV), Colorado (CO), Oregón (OR), Wyoming (WY) y Míchigan (MI).

2. Frecuencias

Ejemplo con numhijos

numhijos <- c(2, 1, 3, 2, 3, 6, 4, 2, 2, 1)
fabs <- table(numhijos)
frels <- fabs / 10
fabs_acum <- as.table(cumsum(fabs))
frels_acum <- as.table(cumsum(frels))

barplot(fabs, ylab = "Frecuencias absolutas", main = "Número de hijos", col = "lightgreen")
plot(fabs, type = "b", main = "Polígono de frecuencias", ylab = "Frecuencia", xlab = "Número de hijos", col = "blue", pch = 19)

Preguntas Tarea 2 (Vector discoveries)

  1. Órdenes para obtener frecuencias absolutas, relativas y acumuladas
data(discoveries)
fabs_discoveries <- table(discoveries)
n_discoveries <- length(discoveries)
frel_discoveries <- fabs_discoveries / n_discoveries
fabs_acum_discoveries <- as.table(cumsum(fabs_discoveries))
frel_acum_discoveries <- as.table(cumsum(frel_discoveries))

print("Frecuencias absolutas:")
print(fabs_discoveries)
print("Frecuencias relativas:")
print(frel_discoveries)
print("Frecuencias absolutas acumuladas:")
print(fabs_acum_discoveries)
print("Frecuencias relativas acumuladas:")
print(frel_acum_discoveries)
  1. Diagramas de barras y polígonos de frecuencias
barplot(fabs_discoveries,
        main = "Descubrimientos importantes (1860-1959)",
        xlab = "Número de descubrimientos por año",
        ylab = "Frecuencia absoluta",
        col = "steelblue")

plot(fabs_discoveries,
     type = "b",
     main = "Polígono de frecuencias absolutas",
     ylab = "Frecuencia absoluta",
     xlab = "Número de descubrimientos por año",
     col = "darkred",
     pch = 19,
     lwd = 2)

barplot(frel_discoveries,
        main = "Frecuencias relativas",
        xlab = "Número de descubrimientos por año",
        ylab = "Frecuencia relativa",
        col = "coral")

📈 Tarea 3. La moda. Comparación entre hist() y table() 1. Moda mediante análisis visual de los datos ordenados

discoveries_ordenado <- sort(discoveries)
print(discoveries_ordenado)
table_discoveries <- table(discoveries)
print(table_discoveries)

Análisis visual: El valor que más se repite es 2 descubrimientos por año, con una frecuencia absoluta de 26 años.

  1. Moda mediante la biblioteca modeest
moda_mfv <- mfv(discoveries)
print(paste("La moda calculada con mfv() es:", moda_mfv))
  1. Coherencia entre el análisis visual y mfv

Respuesta: Sí, existe coherencia completa. Ambos métodos coinciden en que la moda es 2 descubrimientos por año.

  1. Histograma de discoveries
hist(discoveries,
     breaks = 10,
     main = "Histograma de descubrimientos",
     xlab = "Número de descubrimientos por año",
     ylab = "Frecuencia",
     col = "lightblue",
     border = "darkblue")
  1. Diagrama de barras y polígono de frecuencias
barplot(fabs_discoveries,
        main = "Diagrama de barras - Frecuencias absolutas",
        xlab = "Número de descubrimientos por año",
        ylab = "Frecuencia absoluta",
        col = "steelblue")

plot(fabs_discoveries,
     type = "b",
     main = "Polígono de frecuencias absolutas",
     ylab = "Frecuencia absoluta",
     xlab = "Número de descubrimientos por año",
     col = "darkred",
     pch = 19,
     lwd = 2)
  1. Coherencia del histograma con la moda = 2

Respuesta: El intervalo que contiene al valor 2 es el de mayor altura, lo cual es coherente con la moda = 2. Sin embargo, el histograma no es la herramienta más precisa para datos discretos.

  1. Representatividad del diagrama de barras y el polígono de frecuencias

Respuesta: El diagrama de barras es más representativo porque respeta la naturaleza discreta de los datos y permite leer la moda directamente como la barra más alta, sin ambigüedad por agrupación en intervalos.


Conclusiones finales

A lo largo de esta actividad se han aplicado y comparado diferentes técnicas de representación y análisis estadístico en R:

Histogramas: Útiles para variables continuas, pero menos precisos para identificar modas en datos discretos.

Diagramas de barras: Ideales para variables discretas, permiten una lectura directa de frecuencias y de la moda.

Polígonos de frecuencias: Buen complemento para visualizar tendencias.

Cálculo de moda: La moda puede obtenerse visualmente o mediante mfv(), con resultados coherentes.

Frecuencias acumuladas: Permiten responder preguntas sobre proporciones acumuladas.