r Sys.Date(){r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE) library(readr) library(dplyr) library(knitr) library(kableExtra) if (!requireNamespace("gt", quietly = TRUE)) install.packages("gt", repos = "https://cloud.r-project.org") library(gt)
Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.
```{r carga_datos} ruta_archivo <- “C:/Users/thann/OneDrive/Escritorio/ESTADISTICA.LOL/datos_vale.csv”
datos_vale <- read_delim( ruta_archivo, delim = “;”, show_col_types = FALSE )
cat(“Base de datos cargada correctamente.”) cat(“Total de registros (filas):”, nrow(datos_vale), “”)
---
## 2. Extracción y Limpieza de la Variable
La variable **LONGITUDE_LATITUDE_SOURCE** (Fuente de Coordenadas) identifica el método o sistema utilizado para registrar las coordenadas geográficas de cada arrendamiento. Se eliminan los registros sin valor (NA o vacíos).
```{r extraer_variable}
x_raw <- datos_vale %>%
filter(!is.na(LONGITUDE_LATITUDE_SOURCE), LONGITUDE_LATITUDE_SOURCE != "") %>%
pull(LONGITUDE_LATITUDE_SOURCE)
n <- length(x_raw)
cat("Observaciones válidas:", n, "\n")
cat("Fuentes distintas:", length(unique(x_raw)), "\n")
| Criterio | Clasificación |
|---|---|
| Nombre | Fuente de Coordenadas |
| Nombre técnico | LONGITUDE_LATITUDE_SOURCE |
| Tipo | Cualitativa |
| Subtipo | Nominal policotómica |
| Dominio | Métodos/sistemas de georreferenciación registrados |
| Rango | Múltiples categorías |
| Unidad | No aplica |
| Escala | Nominal |
| Fuente | Kansas Geological Survey – Kansas, EE.UU. |
Justificación: La variable identifica el origen de los datos de localización sin establecer un orden jerárquico entre las fuentes. Corresponde a una variable cualitativa nominal policotómica. Se construye la tabla de distribución de frecuencias con frecuencia absoluta, porcentual y en fracción.
Se construye la tabla de distribución de frecuencias de la variable
Fuente de Coordenadas, correspondiente a los
arrendamientos de hidrocarburos registrados en Kansas, EE.UU. (n =
r format(n, big.mark=",")).
```{r tabla_frecuencias} freq_abs <- sort(table(x_raw), decreasing = TRUE) categorias <- names(freq_abs) ni <- as.integer(freq_abs) hi_pct <- ni / n * 100 hi_frac <- ni / n
tabla_df <- data.frame( Categoria = categorias, ni = ni, hi_pct = sprintf(“%.2f%%”, hi_pct), hi_frac = sprintf(“%.4f”, hi_frac), stringsAsFactors = FALSE )
total_row <- data.frame( Categoria = “TOTAL”, ni = n, hi_pct = “100.00%”, hi_frac = “1.0000”, stringsAsFactors = FALSE )
tabla_df\(ni <- as.character(tabla_df\)ni) total_row\(ni <- as.character(total_row\)ni)
tabla_final <- bind_rows(tabla_df, total_row)
kable( tabla_final, caption = paste0( “Cuadro N°1: Distribución de Frecuencias de la Variable Cualitativa Nominal Fuente de Coordenadas,”, “registrada en los arrendamientos de hidrocarburos del estado de Kansas, EE.UU.,”, “período histórico disponible (n =”, format(n, big.mark = “,”), ” registros válidos).” ), col.names = c(“Fuente de Coordenadas”, “Frecuencia (nᵢ)”, “Porcentaje (hᵢ %)”, “Porcentaje en fracción (hᵢ)”), align = c(“l”, “c”, “c”, “c”), escape = FALSE ) %>% kable_styling( bootstrap_options = c(“striped”, “hover”, “condensed”, “bordered”), full_width = TRUE, font_size = 12 ) %>% row_spec(0, bold = TRUE, background = “#d3d3d3”, color = “black”) %>% row_spec(nrow(tabla_final), bold = TRUE, background = “#a9a9a9”, color = “black”)
---
## 4.1 Justificación del Análisis por Agrupaciones
La variable **LONGITUDE_LATITUDE_SOURCE** presenta **`r length(unique(x_raw))` categorías distintas**, lo que supera ampliamente el umbral de 5–6 categorías recomendado para el análisis nominal directo. Con tantas fuentes individuales, la tabla de frecuencias resulta extensa y dificulta la identificación de patrones generales: categorías con frecuencias bajas fragmentan la lectura sin aportar información interpretativa relevante.
Por esta razón, se reagrupan las categorías originales en **grupos temáticos** según el tipo o tecnología de georreferenciación que representan. Este criterio de agrupación —ampliamente utilizado en estadística descriptiva para variables nominales policotómicas con muchas modalidades— permite:
- **Reducir la dispersión categorial** sin perder la esencia informativa de la variable.
- **Identificar patrones de mayor escala**: qué familias de métodos de geolocalización predominan en los registros de Kansas.
- **Facilitar la comparación visual** en los gráficos, ya que un número menor de categorías produce diagramas más legibles e interpretables.
Los grupos definidos son los siguientes:
| Grupo | Descripción | Criterio de clasificación |
|-------|-------------|--------------------------|
| **GPS / GNSS** | Sistemas de posicionamiento satelital | Categorías con referencia a GPS, GNSS o satélite |
| **PLSS / Legal** | Sistema de agrimensura rectangular y descripciones legales | Categorías basadas en PLSS, sección, township o range |
| **Digitalización / Cartografía** | Métodos basados en digitalización de mapas o fotografía | Categorías de digitalización o fotointerpretación |
| **Estimación / Calculado** | Valores estimados o calculados indirectamente | Categorías con cálculo aproximado o sin fuente precisa |
| **Otro / No especificado** | Categorías que no encajan en los grupos anteriores | Resto de categorías |
> **Nota:** La agrupación se realiza de forma programática a partir de los valores reales presentes en los datos. Las categorías de cada grupo se asignan mediante coincidencia de patrones de texto (*pattern matching*), garantizando reproducibilidad y trazabilidad del criterio utilizado.
```{r agrupacion_categorias}
asignar_grupo <- function(fuente) {
fuente_up <- toupper(fuente)
dplyr::case_when(
grepl("GPS|GNSS|SATELIT|SATELLITE|GLOBAL POSITION", fuente_up) ~ "GPS / GNSS",
grepl("PLSS|SECTION|TOWNSHIP|RANGE|LEGAL|SURVEY|PUBLIC LAND", fuente_up) ~ "PLSS / Legal",
grepl("DIGIT|MAP|CARTO|PHOTO|AERIAL|ORTHO|GIS|SCAN", fuente_up) ~ "Digitalización / Cartografía",
grepl("ESTIM|CALC|APPROX|INTERPOLAT|INFER|COMPUTED|DERIVED", fuente_up) ~ "Estimación / Calculado",
TRUE ~ "Otro / No especificado"
)
}
grupos_raw <- asignar_grupo(x_raw)
cat("Distribución por grupo:\n")
print(sort(table(grupos_raw), decreasing = TRUE))
Se construye la tabla de distribución de frecuencias de la variable
Fuente de Coordenadas agrupada por tipo de
tecnología/método de georreferenciación (n =
r format(length(x_raw), big.mark=",")).
```{r tabla_agrupaciones} n_g <- length(grupos_raw)
freq_g <- sort(table(grupos_raw), decreasing = TRUE) grupos_n <- names(freq_g) ni_g <- as.integer(freq_g) hi_pct_g <- ni_g / n_g * 100 hi_frac_g <- ni_g / n_g
tabla_g <- data.frame( Grupo = grupos_n, ni = ni_g, hi_pct = sprintf(“%.2f%%”, hi_pct_g), hi_frac = sprintf(“%.4f”, hi_frac_g), stringsAsFactors = FALSE )
total_g <- data.frame( Grupo = “TOTAL”, ni = n_g, hi_pct = “100.00%”, hi_frac = “1.0000”, stringsAsFactors = FALSE )
tabla_g\(ni <- as.character(tabla_g\)ni) total_g\(ni <- as.character(total_g\)ni)
tabla_g_final <- bind_rows(tabla_g, total_g)
kable( tabla_g_final, caption = paste0( “Cuadro N0b03: Distribución de Frecuencias por Agrupaciones de la Variable Cualitativa Nominal Fuente de Coordenadas,”, “registrada en los arrendamientos de hidrocarburos del estado de Kansas, EE.UU.,”, “período histórico disponible (n =”, format(n_g, big.mark = “,”), ” registros válidos).” ), col.names = c(“Grupo de Fuente de Coordenadas”, “Frecuencia (nd62)”, “Porcentaje (hd62 %)”, “Porcentaje en fracción (hd62)”), align = c(“l”, “c”, “c”, “c”), escape = FALSE ) %>% kable_styling( bootstrap_options = c(“striped”, “hover”, “condensed”, “bordered”), full_width = TRUE, font_size = 12 ) %>% row_spec(0, bold = TRUE, background = “#d3d3d3”, color = “black”) %>% row_spec(nrow(tabla_g_final), bold = TRUE, background = “#a9a9a9”, color = “black”)
---
## 4.3 Representación Gráfica por Agrupaciones
### 4.3.1 Gráfica — Diagrama de Barras por Grupo (Frecuencia Absoluta)
```{r barras_grupos_abs, fig.width=9, fig.height=6}
freq_g_ord <- sort(table(grupos_raw), decreasing = TRUE)
colores_g2 <- gray(seq(0.30, 0.80, length.out = length(freq_g_ord)))
par(mar = c(9, 6, 7, 2))
bp_g <- barplot(
as.numeric(freq_g_ord),
names.arg = names(freq_g_ord),
col = colores_g2,
border = "black",
ylim = c(0, max(as.numeric(freq_g_ord)) * 1.18),
xlab = "", ylab = "", main = "", las = 2, cex.names = 0.80
)
text(bp_g, as.numeric(freq_g_ord) + max(as.numeric(freq_g_ord)) * 0.02,
labels = format(as.numeric(freq_g_ord), big.mark = ","), cex = 0.85)
mtext("Frecuencia Absoluta (n\u1d62)", side = 2, line = 4.5, cex = 1)
mtext("Grupo de Fuente de Coordenadas", side = 1, line = 7.5, cex = 1)
mtext(
"Diagrama de Barras \u2014 Frecuencia Absoluta por Agrupaci\u00f3n\nde la Variable Fuente de Coordenadas, Kansas, EE.UU.",
side = 3, line = 3.5, cex = 0.9, font = 2
)
```{r barras_grupos_pct, fig.width=9, fig.height=6} pct_g_ord <- sort(table(grupos_raw) / n_g * 100, decreasing = TRUE)
par(mar = c(9, 6, 7, 2)) bp_g2 <- barplot( as.numeric(pct_g_ord), names.arg = names(pct_g_ord), col = colores_g2, border = “black”, ylim = c(0, max(as.numeric(pct_g_ord)) * 1.18), xlab = ““, ylab =”“, main =”“, las = 2, cex.names = 0.80 ) text(bp_g2, as.numeric(pct_g_ord) + max(as.numeric(pct_g_ord)) * 0.02, labels = paste0(round(as.numeric(pct_g_ord), 2),”%“), cex = 0.85) mtext(”Porcentaje (hd62 %)“, side = 2, line = 4.5, cex = 1) mtext(”Grupo de Fuente de Coordenadas”, side = 1, line = 7.5, cex = 1) mtext( “Diagrama de Barras 014 Porcentaje por Agrupaci0f3nla Variable Fuente de Coordenadas, Kansas, EE.UU.”, side = 3, line = 3.5, cex = 0.9, font = 2 )
### 4.3.3 Gráfica — Diagrama Circular por Grupo
```{r circular_grupos, fig.width=9, fig.height=7}
pct_g_circ <- table(grupos_raw) / n_g * 100
grises_g <- gray(seq(0.15, 0.85, length.out = length(pct_g_circ)))
par(mar = c(2, 2, 6, 14), xpd = TRUE)
pie(
as.numeric(pct_g_circ),
labels = paste0(round(as.numeric(pct_g_circ), 2), "%"),
col = grises_g,
border = "black",
main = "",
radius = 1,
cex = 0.85
)
legend(
x = 1.2,
y = 1,
legend = names(pct_g_circ),
fill = grises_g,
cex = 0.75,
title = "Grupo",
bty = "n"
)
mtext(
"Diagrama Circular \u2014 Distribución Porcentual por Agrupación\nde la Variable Fuente de Coordenadas, Kansas, EE.UU.",
side = 3, line = 3.5, cex = 0.9, font = 2
)
```{r indicadores_grupos} moda_g_val <- names(sort(table(grupos_raw), decreasing = TRUE))[1] moda_g_n <- max(table(grupos_raw))
indicadores_g <- data.frame( Tamaño muestral (n) =
format(n_g, big.mark = “,”), Número de grupos =
as.character(length(unique(grupos_raw))), Moda (grupo) =
moda_g_val, Frecuencia de la moda = format(moda_g_n,
big.mark = “,”), Porcentaje de la moda =
paste0(round(moda_g_n / n_g * 100, 2), “%”), check.names = FALSE,
stringsAsFactors = FALSE )
kable( indicadores_g, caption = “Cuadro N0b04: Indicadores de la Variable Cualitativa Nominal Fuente de Coordenadas 014 Análisis por Agrupaciones, arrendamientos de hidrocarburos, Kansas, EE.UU.”, align = “c”, escape = FALSE ) %>% kable_styling( bootstrap_options = c(“striped”, “hover”, “condensed”, “bordered”), full_width = TRUE, font_size = 12 ) %>% row_spec(0, bold = TRUE, background = “#d3d3d3”, color = “black”)
---
## 5. Representación Gráfica
### 5.1 Gráfica N°1 — Diagrama de Barras (Frecuencia Absoluta)
```{r barras_absoluta, fig.width=9, fig.height=6}
freq_ord <- sort(table(x_raw), decreasing = TRUE)
colores_g <- gray(seq(0.30, 0.80, length.out = length(freq_ord)))
par(mar = c(9, 6, 7, 2))
bp <- barplot(
as.numeric(freq_ord),
names.arg = names(freq_ord),
col = colores_g,
border = "black",
ylim = c(0, max(as.numeric(freq_ord)) * 1.18),
xlab = "", ylab = "", main = "", las = 2, cex.names = 0.75
)
text(bp, as.numeric(freq_ord) + max(as.numeric(freq_ord)) * 0.02,
labels = format(as.numeric(freq_ord), big.mark = ","), cex = 0.85)
mtext("Frecuencia Absoluta (nᵢ)", side = 2, line = 4.5, cex = 1)
mtext("Fuente de Coordenadas", side = 1, line = 7.5, cex = 1)
mtext(
"Gráfica N°1: Diagrama de Barras — Frecuencia Absoluta\nde la Variable Fuente de Coordenadas, Kansas, EE.UU.",
side = 3, line = 3.5, cex = 0.9, font = 2
)
```{r barras_porcentaje, fig.width=9, fig.height=6} pct_ord <- sort(table(x_raw) / n * 100, decreasing = TRUE)
par(mar = c(9, 6, 7, 2)) bp2 <- barplot( as.numeric(pct_ord), names.arg = names(pct_ord), col = colores_g, border = “black”, ylim = c(0, max(as.numeric(pct_ord)) * 1.18), xlab = ““, ylab =”“, main =”“, las = 2, cex.names = 0.75 ) text(bp2, as.numeric(pct_ord) + max(as.numeric(pct_ord)) * 0.02, labels = paste0(round(as.numeric(pct_ord), 2),”%“), cex = 0.85) mtext(”Porcentaje (hᵢ %)“, side = 2, line = 4.5, cex = 1) mtext(”Fuente de Coordenadas”, side = 1, line = 7.5, cex = 1) mtext( “Gráfica N°2: Diagrama de Barras — Porcentajela Variable Fuente de Coordenadas, Kansas, EE.UU.”, side = 3, line = 3.5, cex = 0.9, font = 2 )
### 5.3 Gráfica N°3 — Diagrama Circular (Distribución Porcentual)
```{r circular, fig.width=9, fig.height=7}
pct_circ <- table(x_raw) / n * 100
grises_c <- gray(seq(0.15, 0.85, length.out = length(pct_circ)))
par(mar = c(2, 2, 6, 12), xpd = TRUE)
pie(
as.numeric(pct_circ),
labels = paste0(round(as.numeric(pct_circ), 2), "%"),
col = grises_c,
border = "black",
main = "",
radius = 1,
cex = 0.85
)
legend(
x = 1.2,
y = 1,
legend = names(pct_circ),
fill = grises_c,
cex = 0.75,
title = "Fuente",
bty = "n"
)
mtext(
"Gráfica N°3: Diagrama Circular — Distribución Porcentual\nde la Variable Fuente de Coordenadas, Kansas, EE.UU.",
side = 3, line = 3.5, cex = 0.9, font = 2
)
```{r indicadores} moda_val <- names(sort(table(x_raw), decreasing = TRUE))[1] moda_n <- max(table(x_raw))
indicadores_h <- data.frame( Tamaño muestral (n) =
format(n, big.mark = “,”), Número de categorías =
as.character(length(unique(x_raw))), Moda = moda_val,
Frecuencia de la moda = format(moda_n, big.mark = “,”),
Porcentaje de la moda = paste0(round(moda_n / n * 100, 2),
“%”), check.names = FALSE, stringsAsFactors = FALSE )
kable( indicadores_h, caption = “Cuadro N°2: Indicadores de la Variable Cualitativa Nominal Fuente de Coordenadas, arrendamientos de hidrocarburos, Kansas, EE.UU.”, align = “c”, escape = FALSE ) %>% kable_styling( bootstrap_options = c(“striped”, “hover”, “condensed”, “bordered”), full_width = TRUE, font_size = 12 ) %>% row_spec(0, bold = TRUE, background = “#d3d3d3”, color = “black”) ```
El análisis de la variable Fuente de Coordenadas
revela los sistemas de georreferenciación utilizados para registrar la
ubicación de los arrendamientos en Kansas. Con
r length(unique(x_raw)) fuentes distintas
identificadas, la fuente modal es
“r names(sort(table(x_raw), decreasing = TRUE))[1]”,
que representa el r round(max(table(x_raw))/n*100, 2)% de
los registros, evidenciando el método de localización predominante en la
base de datos.
Autor: Araujo Valeska | Análisis Estadístico — Kansas Hydrocarbon Leases Dataset