1: Carga de datos

library(readxl)
Produccio_n_Campo_Sacha_csv <- read_excel("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 ...
# 1 Extraer la variable continua
frecuencia_operaciones <- Produccio_n_Campo_Sacha_csv$`Frecuencia Operaciones` 
frecuencia_operaciones <- as.numeric(frecuencia_operaciones)
frecuencia_operaciones <- na.omit(frecuencia_operaciones)

2 Tabla de distribución de frecuencias

2.1 Sturges

Creación de la tabla de distribución de frecuencia

k <- 1 + (3.3 * log10(length(frecuencia_operaciones)))  
k <- floor(k)

min <- min(frecuencia_operaciones)  
max <- max(frecuencia_operaciones)  
R <- max - min
A <- R / k

# Líneas EXACTAS del ejemplo del enlace:
Li <- round(seq(from = min, to = max - A, by = A), 4)
Ls <- round(seq(from = min + A, to = max, by = A), 4)

MC <- round((Li + Ls) / 2, 2)

ni <- numeric(length(Li))
for (i in 1:length(Li)) {
  ni[i] <- sum(frecuencia_operaciones >= Li[i] & frecuencia_operaciones < Ls[i])  
}
ni[length(Li)] <- sum(frecuencia_operaciones >= Li[length(Li)] & frecuencia_operaciones <= max)  

cat("Suma de ni =", sum(ni), "\n")
## Suma de ni = 7705
hi <- ni / sum(ni) * 100
cat("Suma de hi =", sum(hi), "\n")
## Suma de hi = 100
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi))
Hidsc <- round(rev(cumsum(rev(hi))))

TDFFrecuencia <- data.frame(Li, Ls, MC, ni, hi, Niasc, Nidsc, Hiasc, Hidsc)
library(gt)
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
tabla1_sturges <- TDFFrecuencia %>%  
  gt() %>%
  tab_header(
    title = md("*Tabla 1: Distribución de Frecuencias*"),
    subtitle = md("**Método Sturges - Variable: Frecuencia Operaciones**")  
    
  ) %>%
  tab_source_note(
    source_note = md("Campo Sacha")
  ) %>%
  cols_label(
    Li = "L. Inferior",
    Ls = "L. Superior",
    MC = "Marca Clase",
    ni = "Frec. Abs.",
    hi = "Frec. Rel. %",
    Niasc = "Ni Asc.",
    Nidsc = "Ni Desc.",
    Hiasc = "Hi Asc. %",
    Hidsc = "Hi Desc. %"
  ) %>%
  fmt_number(
    columns = c(Li, Ls, MC),
    decimals = 2
  ) %>%
  fmt_number(
    columns = c(hi),
    decimals = 2,
    pattern = "{x}%"
  )

cat("\n=== TABLA 1: MÉTODO STURGES ===\n")
## 
## === TABLA 1: MÉTODO STURGES ===
tabla1_sturges
Tabla 1: Distribución de Frecuencias
Método Sturges - Variable: Frecuencia Operaciones
L. Inferior L. Superior Marca Clase Frec. Abs. Frec. Rel. % Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
35.00 46.00 40.50 125 1.62% 125 7705 2 100
46.00 57.00 51.50 3602 46.75% 3727 7580 48 98
57.00 68.00 62.50 2898 37.61% 6625 3978 86 52
68.00 79.00 73.50 17 0.22% 6642 1080 86 14
79.00 90.00 84.50 37 0.48% 6679 1063 87 14
90.00 101.00 95.50 149 1.93% 6828 1026 89 13
101.00 112.00 106.50 272 3.53% 7100 877 92 11
112.00 123.00 117.50 269 3.49% 7369 605 96 8
123.00 134.00 128.50 66 0.86% 7435 336 96 4
134.00 145.00 139.50 192 2.49% 7627 270 99 4
145.00 156.00 150.50 49 0.64% 7676 78 100 1
156.00 167.00 161.50 2 0.03% 7678 29 100 0
167.00 178.00 172.50 27 0.35% 7705 27 100 0
Campo Sacha

Tabla de distribución

total_ni <- sum(TDFFrecuencia$ni)  
total_hi <- 100

TDFFrecuenciaCompleto <- rbind( 
  TDFFrecuencia,  
  data.frame(
    Li = " Total", 
    Ls = " ", 
    MC = " ",
    ni = total_ni, 
    hi = total_hi, 
    Niasc = " ", 
    Nidsc = " ", 
    Hiasc = " ", 
    Hidsc = " "
  )
)

TABLA 2 FORMATEADA: Con Total (TDFrecuencia OperacionesCompleto)

tabla2_con_total <- TDFFrecuenciaCompleto %>%  
  gt() %>%
  tab_header(
    title = md("*Tabla 2: Distribución Completa*"),
    subtitle = md("**Variable: Frecuencia Operaciones - Con Total**")  
  ) %>%
  tab_source_note(
    source_note = md("Fuente: Producción Campo Sacha")
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Li == " Total")
  ) %>%
  cols_label(
    Li = "L. Inferior",
    Ls = "L. Superior",
    MC = "Marca Clase",
    ni = "Frec. Abs.",
    hi = "Frec. Rel. %",
    Niasc = "Ni Asc.",
    Nidsc = "Ni Desc.",
    Hiasc = "Hi Asc. %",
    Hidsc = "Hi Desc. %"
  )

cat("\n=== TABLA 2: CON FILA DE TOTAL ===\n")
## 
## === TABLA 2: CON FILA DE TOTAL ===
tabla2_con_total
Tabla 2: Distribución Completa
Variable: Frecuencia Operaciones - Con Total
L. Inferior L. Superior Marca Clase Frec. Abs. Frec. Rel. % Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
35 46 40.5 125 1.62232317 125 7705 2 100
46 57 51.5 3602 46.74886437 3727 7580 48 98
57 68 62.5 2898 37.61194030 6625 3978 86 52
68 79 73.5 17 0.22063595 6642 1080 86 14
79 90 84.5 37 0.48020766 6679 1063 87 14
90 101 95.5 149 1.93380921 6828 1026 89 13
101 112 106.5 272 3.53017521 7100 877 92 11
112 123 117.5 269 3.49123945 7369 605 96 8
123 134 128.5 66 0.85658663 7435 336 96 4
134 145 139.5 192 2.49188838 7627 270 99 4
145 156 150.5 49 0.63595068 7676 78 100 1
156 167 161.5 2 0.02595717 7678 29 100 0
167 178 172.5 27 0.35042180 7705 27 100 0
Total 7705 100.00000000
Fuente: Producción Campo Sacha

2.2 Intervalos con R

Histograma de la variable

histo_Frecuencia <- hist(frecuencia_operaciones, 
                         main = "Gráfica: Distribución de la Frecuencia Operaciones\nCampo Sacha",  
                         xlab = "Frecuencia Operaciones",  
                         ylab = "Cantidad", 
                         col = "lightblue",
                         border = "darkblue",
                         las = 1)

#### Creación de la tabla de distribución de frecuencia

Limites <- histo_Frecuencia$breaks  
LimInf <- Limites[1:(length(Limites)-1)]
LimSup <- Limites[2:length(Limites)]
Mc <- histo_Frecuencia$mids  
ni_R <- histo_Frecuencia$counts  

cat("\nSuma de ni (R automático) =", sum(ni_R), "\n")
## 
## Suma de ni (R automático) = 7705
hi_R <- ni_R / sum(ni_R) * 100
cat("Suma de hi (R automático) =", sum(hi_R), "\n")
## Suma de hi (R automático) = 100
Ni_asc <- cumsum(ni_R)
Ni_dsc <- rev(cumsum(rev(ni_R)))
Hi_asc <- round(cumsum(hi_R), 2) 
Hi_dsc <- round(rev(cumsum(rev(hi_R))), 2)

TDF_Frecuencia_R <- data.frame(LimInf, LimSup, Mc, ni_R, hi_R,  
                               Ni_asc, Ni_dsc, Hi_asc, Hi_dsc)

Creación de la tabla de distribución de frecuencia

tabla3_R_auto <- TDF_Frecuencia_R %>%  
  gt() %>%
  tab_header(
    title = md("*Tabla 3: Distribución - Intervalos R*"),
    subtitle = md("**Método Automático de R - Variable: Frecuencia Operaciones**")  
  ) %>%
  tab_source_note(
    source_note = md("Intervalos generados automáticamente por hist()")
  ) %>%
  cols_label(
    LimInf = "L. Inferior",
    LimSup = "L. Superior",
    Mc = "Marca Clase",
    ni_R = "Frec. Abs.",
    hi_R = "Frec. Rel. %",
    Ni_asc = "Ni Asc.",
    Ni_dsc = "Ni Desc.",
    Hi_asc = "Hi Asc. %",
    Hi_dsc = "Hi Desc. %"
  ) %>%
  fmt_number(
    columns = c(hi_R, Hi_asc, Hi_dsc),
    decimals = 2,
    pattern = "{x}%"
  )

cat("\n=== TABLA 3: INTERVALOS AUTOMÁTICOS DE R ===\n")
## 
## === TABLA 3: INTERVALOS AUTOMÁTICOS DE R ===
tabla3_R_auto
Tabla 3: Distribución - Intervalos R
Método Automático de R - Variable: Frecuencia Operaciones
L. Inferior L. Superior Marca Clase Frec. Abs. Frec. Rel. % Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
30 40 35 23 0.30% 23 7705 0.30% 100.00%
40 50 45 1071 13.90% 1094 7682 14.20% 99.70%
50 60 55 4507 58.49% 5601 6611 72.69% 85.80%
60 70 65 1036 13.45% 6637 2104 86.14% 27.31%
70 80 75 13 0.17% 6650 1068 86.31% 13.86%
80 90 85 30 0.39% 6680 1055 86.70% 13.69%
90 100 95 148 1.92% 6828 1025 88.62% 13.30%
100 110 105 261 3.39% 7089 877 92.01% 11.38%
110 120 115 238 3.09% 7327 616 95.09% 7.99%
120 130 125 97 1.26% 7424 378 96.35% 4.91%
130 140 135 162 2.10% 7586 281 98.46% 3.65%
140 150 145 72 0.93% 7658 119 99.39% 1.54%
150 160 155 19 0.25% 7677 47 99.64% 0.61%
160 170 165 6 0.08% 7683 28 99.71% 0.36%
170 180 175 22 0.29% 7705 22 100.00% 0.29%
Intervalos generados automáticamente por hist()

Tabla de distribución

total_ni_R <- sum(TDF_Frecuencia_R$ni_R)  
total_hi_R <- 100  

# Crear tabla con Total
TDF_Frecuencia_R_Completo <- rbind(  
  TDF_Frecuencia_R,  
  data.frame(
    LimInf = "Total",
    LimSup = " ", 
    Mc = " ",
    ni_R = total_ni_R,
    hi_R = total_hi_R, 
    Ni_asc = " ", 
    Ni_dsc = " ", 
    Hi_asc = " ", 
    Hi_dsc = " "
  )
)

library(gt)
library(dplyr)

tabla_Frecuencia_Final <- TDF_Frecuencia_R_Completo %>%  
  gt() %>%
  tab_header(
    title = md("*Tabla de Distribución de Frecuencias*"),
    subtitle = md("**Variable: Frecuencia Operaciones - Campo Sacha**")  
  )

# Mostrar
tabla_Frecuencia_Final
Tabla de Distribución de Frecuencias
Variable: Frecuencia Operaciones - Campo Sacha
LimInf LimSup Mc ni_R hi_R Ni_asc Ni_dsc Hi_asc Hi_dsc
30 40 35 23 0.29850746 23 7705 0.3 100
40 50 45 1071 13.90006489 1094 7682 14.2 99.7
50 60 55 4507 58.49448410 5601 6611 72.69 85.8
60 70 65 1036 13.44581441 6637 2104 86.14 27.31
70 80 75 13 0.16872161 6650 1068 86.31 13.86
80 90 85 30 0.38935756 6680 1055 86.7 13.69
90 100 95 148 1.92083063 6828 1025 88.62 13.3
100 110 105 261 3.38741077 7089 877 92.01 11.38
110 120 115 238 3.08890331 7327 616 95.09 7.99
120 130 125 97 1.25892278 7424 378 96.35 4.91
130 140 135 162 2.10253082 7586 281 98.46 3.65
140 150 145 72 0.93445814 7658 119 99.39 1.54
150 160 155 19 0.24659312 7677 47 99.64 0.61
160 170 165 6 0.07787151 7683 28 99.71 0.36
170 180 175 22 0.28552888 7705 22 100 0.29
Total 7705 100.00000000

3 Histogramas

3.1 Histograma de frecuencia absoluta local (ni)

hist(frecuencia_operaciones, 
     breaks = seq(min, max, A),  # Usar TUS intervalos calculados
     main = "Gráfica: Frecuencia de la Frecuencia Operaciones\n(Campo Sacha - Intervalos propios)", 
     col = "blue", 
     xlab = "Frecuencia Operaciones",  
     ylab = "Cantidad (ni)",
     right = FALSE)  # Para que sea [Li, Ls)

3.2 Histograma de frecuencia absoluta global (ni)

hist(frecuencia_operaciones, 
     breaks = seq(min, max, A),
     main = "Gráfica: Frecuencia de la Frecuencia Operaciones\n(Campo Sacha - Global)",  
     col = "blue", 
     xlab = "Frecuencia Operaciones",
     ylab = "Cantidad", 
     ylim = c(0, length(frecuencia_operaciones)))  # length(frecuencia_operaciones) = tu n total 

3.3 Histograma de porcentaje local (hi)

barplot(TDFFrecuencia$hi,  # Tus frecuencias relativas (%)
        space = 0,  # Sin espacio entre barras
        col = "blue", 
        xlab = "Marca de Clase (MC)", 
        ylab = "Porcentaje (%)", 
        names.arg = TDFFrecuencia$MC)  # Nombres = Marcas de clase

3.4 Histograma de porcentaje global (hi)

barplot(TDFFrecuencia$hi, 
        space = 0,
        main = "Gráfica: Porcentaje de la Frecuencia Operaciones\n(Campo Sacha - Global)",  
        col = "blue", 
        xlab = "Marca de Clase (MC)", 
        ylab = "Porcentaje (%)",
        names.arg = TDFFrecuencia$MC,  
        ylim = c(0, 100))  # Fijar eje Y de 0 a 100%

4 Diagramas

4.1 Ojivas

4.1.1 Ojivas combinadas (ni)

plot(TDFFrecuencia$Ls, TDFFrecuencia$Nidsc,
     type = "o",  # "o" = puntos con líneas
     xlim = c(0, max),  # Eje X desde 0 hasta máximo
     main = "Gráfica: Ojivas combinadas de la Frecuencia Operaciones\n(Campo Sacha)", 
     ylab = "Frecuencia Acumulada", 
     col = "blue", 
     xlab = "Frecuencia Operaciones",  
     pch = 16)

# Agregar ojiva ascendente
lines(TDFFrecuencia$Li, TDFFrecuencia$Niasc, 
      col = "black", 
      type = "b",  # "b" = puntos con líneas (pero discontinuas)
      pch = 16)

# Leyenda
legend("right",
       legend = c("Ojiva descendente (Nidsc)", "Ojiva ascendente (Niasc)"),
       col = c("blue", "black"), 
       pch = 16,
       lty = 1,
       cex = 0.8)

#### 4.1.2 Ojivas combinadas (hi) - Porcentajes

# Gráfico principal (ojiva descendente - porcentajes)
plot(TDFFrecuencia$Ls, TDFFrecuencia$Hidsc,  
     type = "o",  # "o" = puntos y líneas
     xlim = c(0, max),
     main = "Gráfica: Ojivas combinadas de la Frecuencia Operaciones\n(Campo Sacha - Porcentajes)",  
     ylab = "Porcentaje Acumulado (%)", 
     col = "blue", 
     xlab = "Frecuencia Operaciones",  
     ylim = c(0, 100))  # Porcentajes de 0 a 100%

# Agregar ojiva ascendente (porcentajes) - SIN "add=TRUE"
lines(TDFFrecuencia$Li, TDFFrecuencia$Hiasc,  
      col = "black", 
      type = "b")  # "b" = puntos con líneas discontinuas

# Leyenda
legend("right",
       legend = c("Ojiva descendente (Hidsc)", "Ojiva ascendente (Hiasc)"),
       col = c("blue", "black"), 
       pch = 1,  # Tipo de punto
       lty = 1,  # Tipo de línea
       cex = 0.7)  # Tamaño de texto

### 4.2 Diagrama de caja (Boxplot)

boxplot(frecuencia_operaciones,
        horizontal = TRUE,  # Horizontal (como el ejemplo)
        col = "blue", 
        main = "Gráfica: Distribución de la Frecuencia Operaciones\n(Campo Sacha)",  
        xlab = "Frecuencia Operaciones", 
        notch = FALSE)  # Sin muesca

## 5: Resumen y outliers

# Resumen
summary(frecuencia_operaciones)  
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   35.00   53.00   57.00   64.11   61.00  178.00
# Identificar outliers
outliers <- boxplot.stats(frecuencia_operaciones)$out  
num_outliers <- length(outliers) 
min_outliers <- min(outliers)
max_outliers <- max(outliers)

cat("Número de outliers:", num_outliers, "\n")
## Número de outliers: 1090
if(num_outliers > 0) {
  cat("Mínimo outlier:", min_outliers, "\n")
  cat("Máximo outlier:", max_outliers, "\n")
}
## Mínimo outlier: 35 
## Máximo outlier: 178

5:Indicadores estadísticos

5.1: Extraer la variable continua

# Media aritmética
x <- mean(frecuencia_operaciones)  

# Mediana 
Me <- median(frecuencia_operaciones) 

# Mínimo y máximo
ri <- min(frecuencia_operaciones)  
rs <- max(frecuencia_operaciones)  

# Mostrar resultados
cat("Media aritmética (x) =", x, "\n")
## Media aritmética (x) = 64.11041
cat("Mediana (Me) =", Me, "\n")
## Mediana (Me) = 57
cat("Mínimo (ri) =", ri, "\n")
## Mínimo (ri) = 35
cat("Máximo (rs) =", rs, "\n")
## Máximo (rs) = 178

5.2 Dispersión

# Varianza
varianza <- var(frecuencia_operaciones)  
cat("Varianza =", varianza, "\n")
## Varianza = 527.2979
# Desviación estándar
s <- sd(frecuencia_operaciones) 
cat("Desviación estándar (s) =", s, "\n")
## Desviación estándar (s) = 22.96297
# Coeficiente de variación
CV <- (s / x) * 100
cat("Coeficiente de variación (CV) =", CV, "%\n")
## Coeficiente de variación (CV) = 35.81784 %
# 5.3 Forma 

# install.packages("e1071")

library(e1071)

# Coeficiente de asimetría
As <- skewness(frecuencia_operaciones)  

# Coeficiente de kurtosis  
k <- kurtosis(frecuencia_operaciones) 

cat("Coeficiente de asimetría =", As, "\n")
## Coeficiente de asimetría = 2.352603
cat("Coeficiente de kurtosis =", k, "\n")
## Coeficiente de kurtosis = 4.859665

6: Tabla resumen

# 6 Tabla resumen 

Variable <- c("Frecuencia Operaciones") 

TablaIndicadores <- data.frame(
  Variable,
  ri,                    # mínimo
  rs,                    # máximo  
  round(x, 2),           # media (x)
  Me,                    # mediana (Me)
  round(s, 2),           # desviación estándar (sd)
  round(CV, 2),          # coeficiente de variación (%)
  round(As, 2),          # asimetría (As)
  round(k, 2)            # kurtosis (K)
)

colnames(TablaIndicadores) <- c("Variable", "minimo", "máximo", "x", 
                                "Me", "sd", "Cv (%)", "As", "K")

library(gt)

tabla_resumen_gt <- TablaIndicadores %>%
  gt() %>%
  tab_header(
    title = md("*Tabla: Indicadores estadísticos*"),
    subtitle = md("**Variable: Frecuencia Operaciones**")  
  ) %>%
  tab_source_note(
    source_note = md("Campo Sacha")
  ) %>%
  
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2)
  ) %>%
  # Formatear números (2 decimales)
  fmt_number(
    columns = c("minimo", "máximo", "x", "Me", "sd", "Cv (%)", "As", "K"),
    decimals = 2
  ) %>%
  # Añadir % al CV
  fmt_number(
    columns = "Cv (%)",
    pattern = "{x}%"
  )

# Mostrar tabla
tabla_resumen_gt
Tabla: Indicadores estadísticos
Variable: Frecuencia Operaciones
Variable minimo máximo x Me sd Cv (%) As K
Frecuencia Operaciones 35.00 178.00 64.11 57.00 22.96 35.82% 2.35 4.86
Campo Sacha

6.1:Outliers

# 1. Crear tabla 
TablaOutliers <- data.frame(
  Outliers = num_outliers,
  Mínimo = ifelse(num_outliers > 0, min_outliers, NA),
  Máximo = ifelse(num_outliers > 0, max_outliers, NA)
)

library(gt)

tabla_outliers_final <- TablaOutliers %>%
  gt() %>%
  tab_header(
    title = "Outliers - Frecuencia Operaciones", 
    subtitle = "Campo Sacha"
  )

# 3. Mostrar
tabla_outliers_final
Outliers - Frecuencia Operaciones
Campo Sacha
Outliers Mínimo Máximo
1090 35 178

7: CONCLUSIÓN

# La Frecuencia Operaciones en Campo Sacha presenta alta variabilidad (CV=35.82%) con rango de 35.00 a 178.00 y media de 64.11. La distribución es fuertemente asimétrica positiva (As=2.35, media>mediana=57.00) y muy concentrada (K=4.86). Los 1,090 outliers detectados (que incluyen los valores extremos) indican múltiples regímenes operativos y sugieren necesidad de estandarización y posible segmentación del análisis.