ANÁLISIS ESTADÍSTICO

1. CARGA DE LIBRERÍAS Y DATOS

# 1. CARGA DE DATOS Y LIBRERIAS
library(dplyr)
library(knitr)
library(gt)

setwd("C:/Users/HP/Documents/PROYECTO ESTADISTICA/RStudio")
datos_full <- read.csv("tablap.csv", header = TRUE, sep = ";", dec = ",")

# Muestreo (10% de los datos para claridad visual - Ajustado según tu código literal al 1%)
set.seed(42)
datos <- datos_full[sample(nrow(datos_full), round(nrow(datos_full) * 0.01)), ]

2. TABLA PARES DE VALORES

x <- as.numeric(datos$Horizontal.Length) / 1000
y <- as.numeric(datos$Fuel.consumed..drilling.in.gallon.)

TPV <- data.frame(x, y)

# --- MOSTRAR TABLA (Primeros 20 registros procesados con gt) ---
tabla_tpv_previa <- head(TPV, 20)

# Multiplicamos la columna 'x' por 1000 solo para la visualización en metros
tabla_tpv_previa$x <- tabla_tpv_previa$x * 1000

tabla_tpv_previa <- cbind(Nro = 1:nrow(tabla_tpv_previa), tabla_tpv_previa)

tabla_tpv_previa %>% 
  gt() %>%
  cols_label(Nro = "N°", x = "Longitud Horizontal (m)", y = "Consumo (galones)") %>%
  tab_header(title = md("**Tabla N° 4. Pares de Valores: Longitud vs. Consumo**")) %>%
  cols_align(align = "center") %>%
  fmt_number(columns = c(x, y), decimals = 2) %>%
  tab_options(table.width = pct(80), column_labels.font.weight = "bold")
Tabla N° 4. Pares de Valores: Longitud vs. Consumo
Longitud Horizontal (m) Consumo (galones)
1 2,151.84 5,195.29
2 2,441.18 6,859.66
3 448.46 2,683.84
4 1,050.89 2,979.56
5 1,856.06 4,549.63
6 240.10 1,444.85
7 1,765.53 4,531.40
8 2,053.42 5,119.57
9 2,406.76 7,119.47
10 65.49 2,139.57
11 2,479.23 6,545.87
12 1,540.39 3,761.80
13 784.95 3,456.13
14 2,014.83 4,837.81
15 1,816.15 3,563.52
16 1,079.38 3,660.69
17 174.29 1,787.93
18 1,835.85 4,281.62
19 2,035.98 3,328.64
20 1,127.34 3,441.46

3. DIAGRAMA DE DISPERSIÓN

plot(x * 1000, y, 
     pch = 16, 
     col = "blue", 
     main ="Gráfica Nº 1: Dispersión Longitud vs Consumo",
     xlab =" Longitud Horizontal (m) ",
     ylab = " Consumo (galones) ")

4. CONJETURA DEL MODELO

xcuad <- x^2; xcub <- x^3; xcta <- x^4

regresion_polinomica <- lm(y ~ x + xcuad + xcub + xcta)
beta0 <- regresion_polinomica$coefficients[1]
beta1 <- regresion_polinomica$coefficients[2]
beta2 <- regresion_polinomica$coefficients[3]
beta3 <- regresion_polinomica$coefficients[4]
beta4 <- regresion_polinomica$coefficients[5]

# Generar la curva
plot(x * 1000, y, pch = 16, col = "blue",
     main ="Gráfica Nº 2: Comparación modelo polinómico",
     xlab =" Longitud Horizontal (m) ", ylab = " Consumo (galones) ")

curve(beta0 + beta1*(x/1000) + beta2*(x/1000)^2 + beta3*(x/1000)^3 + beta4*(x/1000)^4, 
      from = min(x*1000), to = max(x*1000), add = TRUE, col="red", lwd = 2)

5. TEST DE APROBACIÓN Y RESTRICCIONES

r <- cor(y, predict(regresion_polinomica))

tabla_tests <- data.frame(
  Indicador = c("Correlación de Pearson (r)"),
  Valor = c(paste0(round(r * 100, 2), " %"))
)

# Imprimir la tabla de indicadores de Pearson
tabla_tests %>% 
  gt() %>%
  tab_header(title = md("**Test de Aprobación del Modelo Polinómico**")) %>%
  cols_align(align = "center") %>%
  tab_options(table.width = pct(60), column_labels.font.weight = "bold")
Test de Aprobación del Modelo Polinómico
Indicador Valor
Correlación de Pearson (r) 94.72 %
# Generación de la tarjeta gráfica independiente de restricciones
plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 100))

text(50, 85, "RESTRICCIONES DEL MODELO", cex = 1.4, font = 2, col = "#D9534F")

parrafo_1 <- "El modelo requiere un escalado inicial de variables para 
mitigar la multicolinealidad. Los modelos de grado superior son 
altamente sensibles a la extrapolación outside-range."


text(50, 55, parrafo_1, cex = 1.1, font = 3, col = "black")

rect(2, 5, 98, 95, border = "#D9534F", lwd = 3)

6. CÁLCULO DE PRONÓSTICOS

x0_m <- 1500
x0 <- x0_m / 1000 
consumo_esp <- beta0 + beta1*x0 + beta2*x0^2 + beta3*x0^3 + beta4*x0^4

plot.new()
plot.window(xlim = c(0, 100), ylim = c(0, 1))

rect(10, 0.4, 90, 0.6, col = "#E5E7E9", border = NA)
text(50, 0.85, "PRONÓSTICO DEL MODELO POLINÓMICO", cex = 1.5, font = 2, col = "#2A9D8F")

texto_pregunta <- paste0("¿Cuál sería el consumo esperado si la longitud es de ", x0_m, "m?")
text(50, 0.75, texto_pregunta, cex = 1.1, font = 3)

text(50, 0.5, paste0("R = ", round(consumo_esp, 2), " galones"), cex = 1.6, font = 2, col = "#1F618D")
rect(10, 0.4, 90, 0.6, border = "#2A9D8F", lwd = 2)

7. CONCLUSIÓN

## Entre la longitud horizontal (m) y el consumo de combustible (galones), se observa una relación polinomial de cuarto grado. Ejemplo: Cuando la longitud es de 1500 m, el modelo predice un consumo aproximado de 3670.34 galones.