Se carga el conjunto de datos de arrendamientos de hidrocarburos del estado de Kansas, EE.UU., registrados por el Kansas Geological Survey.
ruta_archivo <- file.choose()
datos_vale <- read_csv(
ruta_archivo,
show_col_types = FALSE
)
cat("Base de datos cargada correctamente.\n")
## Base de datos cargada correctamente.
cat("Total de registros (filas):", nrow(datos_vale), "\n")
## Total de registros (filas): 47757
Se realiza el aislamiento y limpieza de la variable cualitativa nominal dicotómica Produce Petróleo (PRODUCES_OIL), clasificada en dos categorías: Sí y No, según los valores registrados en la columna PRODUCES_OIL.
cat("Valores únicos originales en PRODUCES_OIL:\n")
## Valores únicos originales en PRODUCES_OIL:
print(unique(datos_vale$PRODUCES_OIL))
## [1] 1 0
x_raw <- datos_vale %>%
mutate(PRODUCES_OIL_clean = trimws(toupper(as.character(PRODUCES_OIL)))) %>%
filter(PRODUCES_OIL_clean %in% c("YES", "NO", "Y", "N", "TRUE", "FALSE", "1", "0")) %>%
mutate(
produce_petroleo = case_when(
PRODUCES_OIL_clean %in% c("YES", "Y", "TRUE", "1") ~ "Sí",
PRODUCES_OIL_clean %in% c("NO", "N", "FALSE", "0") ~ "No"
)
) %>%
pull(produce_petroleo)
n <- length(x_raw)
if (n == 0) {
stop("No se encontraron valores reconocibles en PRODUCES_OIL. Revisa los valores únicos impresos arriba y ajusta el filtro.")
}
orden_logico <- c("Sí", "No")
x_raw <- factor(x_raw, levels = orden_logico)
cat("Observaciones válidas:", n, "\n")
## Observaciones válidas: 47757
cat("Valores únicos:", length(unique(x_raw)), "\n")
## Valores únicos: 2
Se presenta la ficha técnica de identificación de la variable, especificando su naturaleza estadística y su fuente de origen.
tabla_id <- data.frame(
Criterio = c(
"Nombre", "Nombre técnico", "Tipo", "Subtipo",
"Dominio", "Rango", "Unidad", "Escala", "Fuente"
),
Clasificacion = c(
"Produce Petróleo",
"PRODUCES_OIL",
"Cualitativa",
"Nominal dicotómica",
"{Sí, No}",
"2 categorías",
"No aplica",
"Nominal",
"Kansas Geological Survey – Kansas, EE.UU."
)
)
tabla_id %>%
gt() %>%
tab_header(
title = md("**Identificación de la Variable**")
) %>%
cols_label(
Criterio = md("**Criterio**"),
Clasificacion = md("**Clasificación**")
) %>%
tab_style(
style = list(
cell_fill(color = "#2C2C2C"),
cell_text(color = "white", weight = "bold")
),
locations = cells_column_labels()
) %>%
tab_style(
style = cell_fill(color = "#F5F5F5"),
locations = cells_body(rows = seq(1, nrow(tabla_id), by = 2))
) %>%
tab_source_note(source_note = md("*Autor: Araujo Valeska*")) %>%
tab_options(
table.width = pct(60),
heading.title.font.size = px(16),
table.font.size = px(13),
data_row.padding = px(6)
)
| Identificación de la Variable | |
| Criterio | Clasificación |
|---|---|
| Nombre | Produce Petróleo |
| Nombre técnico | PRODUCES_OIL |
| Tipo | Cualitativa |
| Subtipo | Nominal dicotómica |
| Dominio | {Sí, No} |
| Rango | 2 categorías |
| Unidad | No aplica |
| Escala | Nominal |
| Fuente | Kansas Geological Survey – Kansas, EE.UU. |
| Autor: Araujo Valeska | |
Justificación: La variable toma únicamente dos valores posibles (Sí/No), sin orden natural entre ellos. Corresponde a una variable cualitativa nominal dicotómica. Se construye la tabla de distribución de frecuencias con frecuencia absoluta, porcentual y en fracción.
Se calcula la distribución de frecuencias absolutas (\(n_i\)) y porcentuales (\(h_i\%\)) para las dos categorías de la variable cualitativa nominal, respetando la estructura de tres columnas estipulada por la cátedra.
# 1. Frecuencias absolutas
frecuencias_base <- data.frame(
Produce_Petroleo = levels(x_raw),
Frecuencia_ni = as.integer(table(x_raw))
) %>%
arrange(match(Produce_Petroleo, orden_logico))
# 2. Porcentaje
tabla_final <- frecuencias_base %>%
mutate(Porcentaje_hi = (Frecuencia_ni / sum(Frecuencia_ni)) * 100)
# 3. Fila TOTAL
total_fila <- data.frame(
Produce_Petroleo = "TOTAL",
Frecuencia_ni = sum(tabla_final$Frecuencia_ni),
Porcentaje_hi = sum(tabla_final$Porcentaje_hi)
)
# 4. Formateo
resultado <- bind_rows(
tabla_final %>% mutate(Porcentaje_hi = sprintf("%.2f", Porcentaje_hi)),
total_fila %>% mutate(Porcentaje_hi = sprintf("%.2f", Porcentaje_hi))
)
# 5. Tabla GT
resultado %>%
rename(
"Produce Petróleo" = Produce_Petroleo,
"Frecuencia (ni)" = Frecuencia_ni,
"Porcentaje (hi%)" = Porcentaje_hi
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°1: Distribución de Frecuencias**"),
subtitle = md("*Variable Cualitativa Nominal: Produce Petróleo*")
) %>%
cols_label(
"Produce Petróleo" = md("**Produce Petróleo**"),
"Frecuencia (ni)" = md("**Frecuencia (ni)**"),
"Porcentaje (hi%)" = md("**Porcentaje (hi%)**")
) %>%
tab_style(
style = list(
cell_fill(color = "#2C2C2C"),
cell_text(color = "white", weight = "bold")
),
locations = cells_column_labels()
) %>%
tab_style(
style = cell_fill(color = "#F5F5F5"),
locations = cells_body(rows = seq(1, nrow(resultado), by = 2))
) %>%
tab_style(
style = list(
cell_fill(color = "#D6D6D6"),
cell_text(weight = "bold")
),
locations = cells_body(
rows = `Produce Petróleo` == "TOTAL",
columns = everything()
)
) %>%
tab_source_note(source_note = md("*Autor: Araujo Valeska*")) %>%
tab_options(
table.width = pct(60),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°1: Distribución de Frecuencias | ||
| Variable Cualitativa Nominal: Produce Petróleo | ||
| Produce Petróleo | Frecuencia (ni) | Porcentaje (hi%) |
|---|---|---|
| Sí | 32640 | 68.35 |
| No | 15117 | 31.65 |
| TOTAL | 47757 | 100.00 |
| Autor: Araujo Valeska | ||
Se presentan tres gráficas en escala de grises que permiten analizar visualmente la distribución de la variable cualitativa nominal dicotómica Produce Petróleo.
par(mar = c(8, 6, 5, 2))
bp1 <- barplot(tabla_final$Frecuencia_ni,
main = "",
xlab = "",
ylab = "",
col = c("gray30", "gray72"),
ylim = c(0, max(tabla_final$Frecuencia_ni) * 1.15),
names.arg = as.character(tabla_final$Produce_Petroleo),
cex.names = 0.9,
las = 2)
mtext("Frecuencia (ni)", side = 2, line = 4.5, cex = 1, font = 1)
mtext("Produce Petróleo", side = 1, line = 6, cex = 1)
mtext("Gráfica N°1: Distribución de Frecuencias Absolutas de la Variable Produce Petróleo",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
text(x = bp1,
y = tabla_final$Frecuencia_ni,
labels = format(tabla_final$Frecuencia_ni, big.mark = ","),
pos = 3, cex = 0.9, col = "black")
par(mar = c(8, 6, 5, 2))
bp2 <- barplot(tabla_final$Porcentaje_hi,
main = "",
xlab = "",
ylab = "Porcentaje %",
col = c("gray30", "gray72"),
ylim = c(0, max(tabla_final$Porcentaje_hi) * 1.2),
names.arg = as.character(tabla_final$Produce_Petroleo),
cex.names = 0.9,
las = 2)
mtext("Produce Petróleo", side = 1, line = 6, cex = 1)
mtext("Gráfica N°2: Distribución Porcentual de la Variable Produce Petróleo",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
text(x = bp2,
y = tabla_final$Porcentaje_hi,
labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
pos = 3, cex = 0.9, col = "black")
par(mar = c(5, 2, 4, 10), xpd = TRUE)
colores_grises <- c("gray30", "gray72")
pie(tabla_final$Porcentaje_hi,
main = "",
radius = 1,
labels = paste0(round(tabla_final$Porcentaje_hi, 2), "%"),
col = colores_grises,
cex = 0.9)
mtext("Gráfica N°3: Distribución Porcentual de la Variable Produce Petróleo",
side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
legend(x = 1.2,
y = 1,
legend = as.character(tabla_final$Produce_Petroleo),
fill = colores_grises,
cex = 0.85,
title = "Produce Petróleo",
bty = "n")
Para la variable cualitativa nominal dicotómica Produce Petróleo, el único indicador de tendencia central aplicable es la moda. La mediana, media, varianza y demás medidas de dispersión no aplican para este tipo de variable.
# Moda: categoría con mayor frecuencia
moda_petroleo <- as.character(
tabla_final$Produce_Petroleo[which.max(tabla_final$Frecuencia_ni)]
)
# Tabla de indicadores en formato largo
tabla_indicadores <- data.frame(
Indicador = c(
"Variable",
"Tipo de variable",
"Categorías (Rango)",
"Moda (Mo)",
"Mediana (Me)",
"Media (X̄)",
"Varianza (V)",
"Desv. Estándar (Sd)",
"Coef. Variación (CV%)",
"Asimetría (As)",
"Curtosis (K)"
),
Valor = c(
"Produce Petróleo",
"Cualitativa Nominal Dicotómica",
"Sí — No",
moda_petroleo,
"—",
"—",
"—",
"—",
"—",
"—",
"—"
)
)
# Tabla GT de indicadores
tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N°2: Indicadores Estadísticos**"),
subtitle = md("*Variable Cualitativa Nominal: Produce Petróleo*")
) %>%
cols_label(
Indicador = md("**Indicador**"),
Valor = md("**Valor**")
) %>%
tab_style(
style = list(
cell_fill(color = "#2C2C2C"),
cell_text(color = "white", weight = "bold")
),
locations = cells_column_labels()
) %>%
tab_style(
style = cell_fill(color = "#F5F5F5"),
locations = cells_body(rows = seq(1, nrow(tabla_indicadores), by = 2))
) %>%
tab_style(
style = list(
cell_fill(color = "#D6D6D6"),
cell_text(weight = "bold")
),
locations = cells_body(
rows = Indicador == "Moda (Mo)",
columns = everything()
)
) %>%
tab_style(
style = cell_text(style = "italic", color = "gray40"),
locations = cells_body(
rows = Valor == "—",
columns = Valor
)
) %>%
tab_source_note(source_note = md("*Autor: Araujo Valeska*")) %>%
tab_options(
table.width = pct(60),
heading.title.font.size = px(16),
heading.subtitle.font.size = px(12),
table.font.size = px(13),
data_row.padding = px(6)
)
| Tabla N°2: Indicadores Estadísticos | |
| Variable Cualitativa Nominal: Produce Petróleo | |
| Indicador | Valor |
|---|---|
| Variable | Produce Petróleo |
| Tipo de variable | Cualitativa Nominal Dicotómica |
| Categorías (Rango) | Sí — No |
| Moda (Mo) | Sí |
| Mediana (Me) | — |
| Media (X̄) | — |
| Varianza (V) | — |
| Desv. Estándar (Sd) | — |
| Coef. Variación (CV%) | — |
| Asimetría (As) | — |
| Curtosis (K) | — |
| Autor: Araujo Valeska | |
La variable Produce Petróleo es una variable cualitativa nominal dicotómica cuyas categorías son Sí y No. Su valor más frecuente (moda) es Sí, con una participación del 68.35% en la muestra, lo que evidencia que la mayoría de los arrendamientos de hidrocarburos en Kansas corresponden a explotaciones con producción activa de petróleo.
Autor: Araujo Valeska