##### UNIVERSIDAD CENTRAL DEL ECUADOR #####
#### AUTOR: ASHLY ALZATE ####
### CARRERA: INGENIERÍA EN PETROLEOS #####
#### VARIABLE DÍA ####
## DATOS ###
library(readxl)
Produccio_n_Campo_Sacha_csv<- read_excel("C:/Users/LEO/Documents/Producción Campo Sacha.csv.xlsx")
View(Produccio_n_Campo_Sacha_csv)
str(Produccio_n_Campo_Sacha_csv)
## tibble [8,344 × 31] (S3: tbl_df/tbl/data.frame)
## $ mes : chr [1:8344] "Ene" "Ene" "Ene" "Ene" ...
## $ día : num [1:8344] 1 1 1 1 1 1 1 1 1 1 ...
## $ Pozo : chr [1:8344] "SACHA-001A" "SACHA-019A" "SACHA-052B" "SACHA-083A" ...
## $ Campo : chr [1:8344] "SACHA" "SACHA" "SACHA" "SACHA" ...
## $ Reservorio : chr [1:8344] "U" "U" "U INFERIOR" "HOLLIN INFERIOR" ...
## $ Bpd : num [1:8344] NA 53 249 139 186 136 NA 456 161 164 ...
## $ Bppd_BH : num [1:8344] 159 NA NA NA NA NA 155 NA NA NA ...
## $ Bfpd_BE : num [1:8344] NA 534 346 1158 1163 ...
## $ Bfpd_BH : num [1:8344] 695 NA NA NA NA NA 441 NA NA NA ...
## $ Bapd_BE : num [1:8344] NA 481 97 1019 977 ...
## $ Bapd_BH : num [1:8344] 536 NA NA NA NA NA 286 NA NA NA ...
## $ Bsw_BE : num [1:8344] NA 90.1 28 88 84 ...
## $ Bsw_BH : num [1:8344] 77.1 NA NA NA NA ...
## $ Api_BE : num [1:8344] NA 26.7 27.8 27.7 24 20.5 NA 28.5 29.9 26.3 ...
## $ Api_BH : num [1:8344] 27.8 NA NA NA NA NA 23.2 NA NA NA ...
## $ Gas_BE : num [1:8344] NA 10.76 50.55 1.11 27.9 ...
## $ Gas_BH : num [1:8344] 32.3 NA NA NA NA ...
## $ Salinidad_BE : num [1:8344] NA 15920 30227 1600 13000 ...
## $ Salinidad_BH : num [1:8344] 10800 NA NA NA NA NA 3800 NA NA NA ...
## $ Rgl_BE : num [1:8344] NA 20.15 146.1 0.96 23.99 ...
## $ Rgl_BH : num [1:8344] 46.5 NA NA NA NA ...
## $ Gor_BE : num [1:8344] NA 203.02 203.01 7.99 150 ...
## $ Gor_BH : num [1:8344] 203 NA NA NA NA ...
## $ Horas_BE : num [1:8344] NA 4 5 4 4 10 NA 4 10 10 ...
## $ Horas_BH : num [1:8344] 4 NA NA NA NA NA 4 NA NA NA ...
## $ Bomba_BE : chr [1:8344] NA "SF-320|SF-320|SF-900|SFGH2500/520/180/9259" "RC 1000|RC 1000|RC 1000/300/120/9250" "P23/68/30/7000" ...
## $ Bomba_BH : chr [1:8344] "JET 12K/0//0" NA NA NA ...
## $ Frecuencia Operaciones: num [1:8344] NA 65 62 46 59 52 NA 58.5 57 54 ...
## $ Voltaje : num [1:8344] NA 479 457 364 440 452 NA 475 455 439 ...
## $ Amperaje : num [1:8344] NA 29 35 14 59 30 NA 23 35 34 ...
## $ Presión Intake : num [1:8344] NA 484 406 0 345 162 NA 546 338 0 ...
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##Extraer Variable Nominal
día <- Produccio_n_Campo_Sacha_csv$día
##EDAvariable nominal
TDF_día<- table(día)
tabla_día <- as.data.frame(TDF_día)
hi <- tabla_día$Freq/sum(tabla_día$Freq)
hi_porc <- hi*100
sum(hi_porc)
## [1] 100
tabla_día <- data.frame(tabla_día,hi_porc)
library(dplyr)
# Asegurarse de que 'día' sea numérico
tabla_día$día <- as.numeric(tabla_día$día)
# Crear la columna 'grupo' según el número de día
tabla_día$grupo <- case_when(
tabla_día$día == 1 ~ 1,
tabla_día$día == 2 ~ 2,
tabla_día$día == 3 ~ 3,
tabla_día$día == 4 ~ 4,
tabla_día$día == 5 ~ 5,
tabla_día$día == 6 ~ 6,
tabla_día$día == 7 ~ 7,
tabla_día$día == 8 ~ 8,
tabla_día$día == 9 ~ 9,
tabla_día$día == 10 ~ 10,
tabla_día$día == 11 ~ 11,
tabla_día$día == 12 ~ 12,
tabla_día$día == 13 ~ 13,
tabla_día$día == 14 ~ 14,
tabla_día$día == 15 ~ 15,
tabla_día$día == 16 ~ 16,
tabla_día$día == 17 ~ 17,
tabla_día$día == 18 ~ 18,
tabla_día$día == 19 ~ 19,
tabla_día$día == 20 ~ 20,
tabla_día$día == 21 ~ 21,
tabla_día$día == 22 ~ 22,
tabla_día$día == 23 ~ 23,
tabla_día$día == 24 ~ 24,
tabla_día$día == 25 ~ 25,
tabla_día$día == 26 ~ 26,
tabla_día$día == 27 ~ 27,
tabla_día$día == 28 ~ 28,
tabla_día$día == 29 ~ 29,
tabla_día$día == 30 ~ 30,
tabla_día$día == 31 ~ 31,
TRUE ~ NA_real_ # Para días que falten o sean inválidos
)
# Verificar
head(tabla_día[, c("día", "grupo")])
## día grupo
## 1 1 1
## 2 2 2
## 3 3 3
## 4 4 4
## 5 5 5
## 6 6 6
tabla_resumen <- tabla_día %>%
group_by(grupo) %>%
summarise(
Frecuencia = sum(Freq),
Porcentaje = sum(hi_porc)
) %>%
arrange(desc(Frecuencia))
sum(tabla_resumen$Frecuencia)
## [1] 8344
sum(tabla_resumen$Porcentaje)
## [1] 100
colnames(tabla_resumen) <- c("día","ni","hi (%)")
print(tabla_resumen)
## # A tibble: 31 × 3
## día ni `hi (%)`
## <dbl> <int> <dbl>
## 1 1 349 4.18
## 2 16 346 4.15
## 3 3 333 3.99
## 4 2 331 3.97
## 5 5 327 3.92
## 6 27 309 3.70
## 7 8 304 3.64
## 8 9 296 3.55
## 9 4 295 3.54
## 10 15 287 3.44
## # ℹ 21 more rows
#### Crear de fila de totales ####
totales <- c( día = "TOTAL",
ni= sum(tabla_resumen$ni),
hi= sum(hi*100))
tabla_día <- rbind(tabla_resumen,totales)
tabla_día
## # A tibble: 32 × 3
## día ni `hi (%)`
## <chr> <chr> <chr>
## 1 1 349 4.18264621284755
## 2 16 346 4.14669223394056
## 3 3 333 3.99089165867689
## 4 2 331 3.96692233940556
## 5 5 327 3.9189837008629
## 6 27 309 3.7032598274209
## 7 8 304 3.64333652924257
## 8 9 296 3.54745925215724
## 9 4 295 3.53547459252157
## 10 15 287 3.43959731543624
## # ℹ 22 more rows
# Asignar a una variable más corta para facilitar el trabajo
database <- Produccio_n_Campo_Sacha_csv
# día
# Frecuencias completas
frecuencias_día <- table(database$día)
# Ordenar de mayor a menor
frecuencias_día_ordenadas <- sort(frecuencias_día, decreasing = TRUE)
# Diagrama de barras local ni
barplot(frecuencias_día_ordenadas,
main = "Gráfica Nº1 Distribución de día Campo Sacha",
xlab = "",
ylab = "Cantidad",
col = colorRampPalette(c("#4ECDC4"))(length(frecuencias_día_ordenadas)),
border = "white",
cex.names = 0.6,
las = 2)
mtext("día", side = 1, line = 7)

# Diagrama de barras global ni
top_día <- head(frecuencias_día_ordenadas, 10)
barplot(top_día,
main = "Gráfica Nº2 Distribución de Día Campo Sacha",
xlab = "",
ylab = "Cantidad",
col = colorRampPalette(c("#4ECDC4", "#4ECDC4", "#4ECDC4"))(length(top_día)),
border = "white",
cex.names = 0.7,
las = 2,
ylim = c(0,5234))
mtext("día", side = 1, line = 8)

# Diagrama de barras local hi
barplot(tabla_resumen$`hi (%)`, main="Gráfica N°3: Distribución del porcentaje de día del Campo Sacha",
xlab = "",
ylab = "Porcentaje %",
col = "skyblue",
names.arg=tabla_resumen$día,
cex.names = 0.8,
las = 2)
mtext("día", side = 1, line = 8)

# Diagrama de barrras global hi
barplot(tabla_resumen$`hi (%)`,main="Gráfica N°4: Distribución del porcentaje de día del Campo Sacha ",
xlab = "",
ylab = "Porcentaje %",
col = "skyblue",
ylim = c(0,100),
names.arg=tabla_resumen$día,
cex.names = 0.8,
las = 2)
mtext("día", side = 1, line = 8)

# Definir colores (ajustar al número de filas)
colores <- rev(heat.colors(nrow(tabla_resumen)))
# Diagrama circular
pie(tabla_resumen$`hi (%)`,
main = "Gráfica N°5: Distribución porcentual de los días del Campo Sacha",
radius = 1.08,
labels = paste0(round(tabla_resumen$`hi (%)`, 2), "%"),
col = colores,
cex = 0.8
)
# Permitir que la leyenda salga del área del gráfico
par(xpd = TRUE)
# Agregar leyenda
legend(x = 1.5, y = 1,
legend = tabla_resumen$día,
fill = colores,
cex = 0.5,
title = "Día del Campo Sacha")

#Tabla de indicadores
tabla_indicadores <- data.frame(
Estadístico = c("Variable", "Rango", "Media", "Mediana", "Moda", "Desviación Estándar"),
Valor = c("Días", "Campo Sacha",
paste0(round(mean(tabla_resumen$`hi (%)`), 1), "%"),
paste0(round(median(tabla_resumen$`hi (%)`), 1), "%"),
paste0(tabla_resumen$día[which.max(tabla_resumen$ni)],
" (", round(max(tabla_resumen$`hi (%)`), 1), "%)"),
paste0(round(sd(tabla_resumen$`hi (%)`), 1), "%"))
)
print(tabla_indicadores)
## Estadístico Valor
## 1 Variable Días
## 2 Rango Campo Sacha
## 3 Media 3.2%
## 4 Mediana 3.2%
## 5 Moda 1 (4.2%)
## 6 Desviación Estándar 0.5%
#Conclusión
#El análisis de la variable ordinal día evidencia la distribución temporal de los registros de producción en el Campo Sacha, mostrando la concentración de datos en determinados periodos, lo cual resulta clave para el seguimiento y control del comportamiento productivo del campo.