# 1. LIBRERIAS Y CARGA DE DATOS
library(readxl)
library(dplyr)
library(gt)
library(e1071)
library(lubridate)
setwd("C:/Users/HP/Desktop/VARIABLESDALLY")
Datos <- read.csv("Oil__Gas____Other_Regulated_Wells__Beginning_1860 (4).csv",
header = TRUE, sep = ";", dec = ",")
La variable Quad Section indica la subdivision del cuadrangulo topografico (USGS) donde se ubica el pozo. Toma 9 valores (A a la I, una cuadricula 3x3), por lo que es una variable cualitativa nominal que se analiza directamente, sin necesidad de agrupar.
# Filtramos datos vacíos
Datos_filtrados <- Datos[Datos$Quad.Section %in% LETTERS[1:9], ]
# Convertimos a factor ordenado
Secciones <- factor(Datos_filtrados$Quad.Section, levels = LETTERS[1:9], ordered = TRUE)
TDFSecciones <- as.data.frame(table(Secciones))
TDFSecciones
## Secciones Freq
## 1 A 3201
## 2 B 4831
## 3 C 3264
## 4 D 5772
## 5 E 6156
## 6 F 4933
## 7 G 6724
## 8 H 5541
## 9 I 6093
Frecuencia absoluta (ni) y relativa porcentual (hi) de pozos por seccion, ordenadas de mayor a menor.
TDFSecciones$Freq <- as.numeric(as.character(TDFSecciones$Freq))
TDFSeccionesfinal1 <- TDFSecciones %>%
rename(Seccion = Secciones) %>%
mutate(
ni = Freq,
hi = round((Freq / sum(Freq)) * 100, 5)
) %>%
select(Seccion, ni, hi) %>%
as.data.frame()
TDFSeccionesfinal1
## Seccion ni hi
## 1 A 3201 6.88165
## 2 B 4831 10.38590
## 3 C 3264 7.01709
## 4 D 5772 12.40890
## 5 E 6156 13.23444
## 6 F 4933 10.60518
## 7 G 6724 14.45555
## 8 H 5541 11.91229
## 9 I 6093 13.09900
total_ni <- sum(TDFSeccionesfinal1$ni)
total_hi <- sum(TDFSeccionesfinal1$hi)
TDFSeccionescompleta <- rbind(TDFSeccionesfinal1,
data.frame(Seccion = "Total",
ni = total_ni,
hi = total_hi))
print(TDFSeccionescompleta)
## Seccion ni hi
## 1 A 3201 6.88165
## 2 B 4831 10.38590
## 3 C 3264 7.01709
## 4 D 5772 12.40890
## 5 E 6156 13.23444
## 6 F 4933 10.60518
## 7 G 6724 14.45555
## 8 H 5541 11.91229
## 9 I 6093 13.09900
## 10 Total 46515 100.00000
gt(TDFSeccionescompleta) %>%
tab_header(
title = md("**DISTRIBUCIÓN DE FRECUENCIAS DE POZOS POR SECCIÓN - NUEVA YORK**"),
subtitle = "Distribución de pozos de petróleo y gas según la sección del cuadrante (Ordenada)") %>%
fmt_number(
columns = hi,
decimals = 2) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| DISTRIBUCIÓN DE FRECUENCIAS DE POZOS POR SECCIÓN - NUEVA YORK | ||
| Distribución de pozos de petróleo y gas según la sección del cuadrante (Ordenada) | ||
| Seccion | ni | hi |
|---|---|---|
| A | 3201 | 6.88 |
| B | 4831 | 10.39 |
| C | 3264 | 7.02 |
| D | 5772 | 12.41 |
| E | 6156 | 13.23 |
| F | 4933 | 10.61 |
| G | 6724 | 14.46 |
| H | 5541 | 11.91 |
| I | 6093 | 13.10 |
| Total | 46515 | 100.00 |
datos <- TDFSeccionescompleta[TDFSeccionescompleta$Seccion != "Total", ]
par(mar = c(7, 5, 4, 2) + 0.1)
bp <- barplot(datos$ni,
main = "Gráfica N1: Distribución de pozos según su sección en Nueva York",
ylab = "Cantidad de pozos", col = "#2E4053",
names.arg = datos$Seccion,
las = 1, cex.names = 0.9, cex.axis = 0.8, cex.main = 0.95,
ylim = c(0, max(datos$ni) * 1.15))
text(x = bp, y = datos$ni,
labels = format(datos$ni, big.mark = ","),
pos = 3, cex = 0.7, xpd = TRUE)
mtext("Sección del cuadrante (A - I)", side = 1, line = 3, cex = 0.95)
par(mar = c(7, 5, 4, 2) + 0.1)
bp <- barplot(datos$ni,
main = "Gráfica N2: Cantidad de pozos según su sección en Nueva York",
ylab = "Cantidad de pozos", col = "#2E4053",
names.arg = datos$Seccion,
las = 1, cex.names = 0.9, cex.axis = 0.8, cex.main = 0.95,
ylim = c(0, 8000))
text(x = bp, y = datos$ni,
labels = format(datos$ni, big.mark = ","),
pos = 3, cex = 0.7, xpd = TRUE)
mtext("Sección del cuadrante (A - I)", side = 1, line = 3, cex = 0.95)
par(mar = c(7, 5, 4, 2) + 0.1)
bp <- barplot(datos$hi,
main = "Gráfica N3: Distribución en porcentaje según su sección en Nueva York",
ylab = "Porcentaje (%)", col = "#2E4053",
names.arg = datos$Seccion,
las = 1, cex.names = 0.9, cex.axis = 0.8, cex.main = 0.95,
ylim = c(0, max(datos$hi) * 1.15))
text(x = bp, y = datos$hi,
labels = paste0(round(datos$hi, 2), "%"),
pos = 3, cex = 0.7, xpd = TRUE)
mtext("Sección del cuadrante (A - I)", side = 1, line = 3, cex = 0.95)
par(mar = c(7, 5, 4, 2) + 0.1)
bp <- barplot(datos$hi,
main = "Gráfica N4: Distribución en porcentaje según su sección en Nueva York",
ylab = "Porcentaje (%)", col = "#2E4053",
names.arg = datos$Seccion,
las = 1, cex.names = 0.9, cex.axis = 0.8, cex.main = 0.95,
ylim = c(0, 100))
text(x = bp, y = datos$hi,
labels = paste0(round(datos$hi, 2), "%"),
pos = 3, cex = 0.7, xpd = TRUE)
mtext("Sección del cuadrante (A - I)", side = 1, line = 3, cex = 0.95)
par(mar = c(2, 2, 4, 9), xpd = TRUE)
colores <- c("#1B4F72", "#21618C", "#2874A6", "#2E86C1", "#3498DB",
"#5DADE2", "#85C1E9", "#AED6F1", "#D6EAF8")
colores <- colores[1:nrow(datos)]
pct <- round(datos$hi, 2)
pie(datos$ni, labels = "",
col = colores, border = "white", radius = 0.95,
init.angle = 90, clockwise = TRUE, cex.main = 0.9,
main = "Gráfica N5: Distribución porcentual por sección")
frac <- datos$ni / sum(datos$ni)
theta <- (90 - 360 * (cumsum(frac) - frac / 2)) * pi / 180
text(0.62 * cos(theta), 0.62 * sin(theta),
labels = paste0(pct, "%"),
col = "white", cex = 0.8, font = 2)
legend(x = 1.05, y = 0.9,
legend = paste0("Sección ", datos$Seccion, " (", pct, "%)"),
fill = colores, cex = 0.8, bty = "n", title = "Sección")
Por tratarse de una variable cualitativa nominal, la unica medida de tendencia central aplicable es la moda (la seccion mas frecuente).
# Cálculo de la moda
moda_seccion <- as.character(datos$Seccion[which.max(datos$ni)])
# Cálculo de la mediana (posición del 50% de los datos)
n_total <- sum(datos$ni)
datos$FrecAcumulada <- cumsum(datos$ni)
mediana_idx <- which(datos$FrecAcumulada >= n_total / 2)[1]
mediana_seccion <- as.character(datos$Seccion[mediana_idx])
Conclusiones <- data.frame(
Variable = "Sección del cuadrante",
`Rango [Mín; Máx]` = "N/A",
`Media (X)` = "N/A",
`Mediana (Me)` = mediana_seccion,
`Moda (Mo)` = moda_seccion,
`Varianza (S2)` = "N/A",
`Desv. Est. (S)` = "N/A",
`C.V. (%)` = "N/A",
`Asimetría (As)` = "N/A",
`Curtosis (K)` = "N/A",
`Valores Atípicos` = "N/A",
check.names = FALSE
)
gt(Conclusiones) %>%
tab_header(
title = md("**CONCLUSIONES Y ESTADÍSTICOS**"),
subtitle = "Resumen de indicadores de ubicación de los pozos por sección en Nueva York") %>%
tab_source_note(source_note = "Autor: Dallyana") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| CONCLUSIONES Y ESTADÍSTICOS | ||||||||||
| Resumen de indicadores de ubicación de los pozos por sección en Nueva York | ||||||||||
| Variable | Rango [Mín; Máx] | Media (X) | Mediana (Me) | Moda (Mo) | Varianza (S2) | Desv. Est. (S) | C.V. (%) | Asimetría (As) | Curtosis (K) | Valores Atípicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Sección del cuadrante | N/A | N/A | F | G | N/A | N/A | N/A | N/A | N/A | N/A |
| Autor: Dallyana | ||||||||||
La moda corresponde a la seccion G, que concentra la mayor cantidad de pozos (14.46%). No obstante, la distribucion entre las 9 secciones (A a la I) es bastante uniforme (entre 6.9% y 14.5%), lo cual es esperable: las secciones representan una simple subdivision espacial 3x3 del cuadrangulo topografico, sin un factor geologico que favorezca una posicion especifica dentro de la cuadricula.