Profundidad del pozo en función de la longitud de perforación propuesto

Variable Cuantitativa Continua

Cargamos las librería

library(PASWR)
## Loading required package: lattice
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)

Carga los datos (Conjunto de datos)

setwd("/cloud/project")
read_csv("P_oil-gas-other-regulated-wells-beginning-1860.csv")
## Rows: 42045 Columns: 52
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (19): Well Name, Company Name, Well Type, Map Symbol, Well Status, Conf...
## dbl  (22): API Well Number, County Code, API Hole Number, Sidetrack, Complet...
## lgl   (1): Financial Security
## dttm (10): Status Date, Permit Application Date, Permit Issued Date, Date Sp...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## # A tibble: 42,045 × 52
##    `API Well Number` `County Code` `API Hole Number` Sidetrack Completion
##                <dbl>         <dbl>             <dbl>     <dbl>      <dbl>
##  1           3.10e13             1              1072         0          0
##  2           3.10e13             1              1073         0          0
##  3           3.10e13             1             21007         0          0
##  4           3.10e13             1             21008         0          0
##  5           3.10e13             1             21009         0          0
##  6           3.10e13             1             21010         0          0
##  7           3.10e13             1             21011         0          0
##  8           3.10e13             1             21014         0          0
##  9           3.10e13             1             21015         0          0
## 10           3.10e13             1             21016         0          0
## # ℹ 42,035 more rows
## # ℹ 47 more variables: `Well Name` <chr>, `Company Name` <chr>,
## #   `Operator Number` <dbl>, `Well Type` <chr>, `Map Symbol` <chr>,
## #   `Well Status` <chr>, `Status Date` <dttm>,
## #   `Permit Application Date` <dttm>, `Permit Issued Date` <dttm>,
## #   `Date Spudded` <dttm>, `Date of Total Depth` <dttm>,
## #   `Date Well Completed` <dttm>, `Date Well Plugged` <dttm>, …
datos2<- read.csv("point_oil-gas-other-regulated-wells-beginning-1860.csv", header = T, sep = ",", dec = ".",na.strings = "-")

EXTRAER LA VARIABLE CONTINUA

# Filtrar datos válidos: sin NA y mayores que 0, ya que no son valores reales comprobados, sino solo propuestas sin verificar
datos_filtrados <- datos2 %>%
  filter(!is.na(True.Vertical.Depth.ft),
         !is.na(Proposed.Depth.ft),
         True.Vertical.Depth.ft > 0,
         Proposed.Depth.ft > 0)

#Debido a la existencia de valores atipicos, tambien lo vamos a filtrar
lim_inf_v <- quantile(datos_filtrados$True.Vertical.Depth.ft, 0.01)
lim_sup_v <- quantile(datos_filtrados$True.Vertical.Depth.ft, 0.99)

lim_inf_l <- quantile(datos_filtrados$Proposed.Depth.ft, 0.01)
lim_sup_l <- quantile(datos_filtrados$Proposed.Depth.ft, 0.99)

datos_limpios <- datos_filtrados %>%
  filter(True.Vertical.Depth.ft >= lim_inf_v & True.Vertical.Depth.ft <= lim_sup_v,
         Proposed.Depth.ft >= lim_inf_l & Proposed.Depth.ft <= lim_sup_l)

Creamos el modelo de regresion lineal

#Diagrama de dispersion
x <- datos_limpios$Proposed.Depth.ft
y <- datos_limpios$True.Vertical.Depth.ft

plot(jitter(x), jitter(y),
     main = "Grafica N° 12.1:Diagrama de dispersión de la profundiadad en función\n de la longitud de perforación propuesta de cada uno de los pozos \nde hidrocarburos en el estado de Nueva York",xlab = "Longitud de perforación propuesta (ft)",ylab = "Profundidad (ft)",
     col = rgb(0, 0, 1, alpha = 0.2),pch = 20)

#Calculo  de la regresion
regresionLineal<-lm(y~x)
regresionLineal
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##     35.5265       0.9773
#Resumen del modelo de regresion
summary(regresionLineal)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7133.2   -33.6    10.8    66.4  3756.4 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 35.526542   4.760238   7.463 8.97e-14 ***
## x            0.977285   0.001601 610.238  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 266.6 on 13320 degrees of freedom
## Multiple R-squared:  0.9655, Adjusted R-squared:  0.9655 
## F-statistic: 3.724e+05 on 1 and 13320 DF,  p-value: < 2.2e-16

Gráfico final de la regresión lineal

plot(jitter(x), jitter(y),
     main = "Grafica N° 12.2:Diagrama de dispersión de la profundiadad en función\n de la longitud de perforación propuesta de cada uno de los pozos \nde hidrocarburos en el estado de Nueva York",xlab = "Longitud de perforación propuesta (ft)",ylab = "Profundidad (ft)",
     col = rgb(0, 0, 1, alpha = 0.2),pch = 20)


#Agregar recta de regresión
abline(regresionLineal,col="green",lwd = 2)

Test de bondad

#Test de Pearson
r<-cor(x,y)*100
r
## [1] 98.25815
#Correlación
r2 <- ((r/100)^2)*100  
r2
## [1] 96.54663

Ecuación de la recta

#Obtenemos la ecuación de la regresión por medio de los coeficientes
b<- regresionLineal$coefficients[1]
b
## (Intercept) 
##    35.52654
m<- regresionLineal$coefficients[2]
m
##         x 
## 0.9772849
#Tabla de resumen

Variables<-c("Longitud de perforación propuesta (ft)","Profundidad (ft)")
Tipo<-c("Independiente","Dependiente")
Ecuacion<-c("y=0.9773*x+35.5265")
Test<-c(" ",round(r,2))
Correlación<-c(" ",round(r2,2))
Tabla_resumen <- data.frame(
  Variable = c("Longitud de perforación (ft)", "Distancia vertical (ft)"),
  Tipo = c("Independiente", "Dependiente"),
  Correlación_Pearson = c("", round(r, 2)),
  R2_Porcentaje = c("", round(r2, 2)),
  Intercepto = c("", round(b, 2)),
  Pendiente = c("", round(m, 3)),
  Ecuación= c("", Ecuacion)
)


library(knitr)
kable(Tabla_resumen, format = "markdown", caption = "Tabla No. 12.1:Tabla de resumen de la profundiad en función de la longitud de perforación propuesta de cada uno de los pozos de hidrocarburos
     en el estado de Nueva York")
Tabla No. 12.1:Tabla de resumen de la profundiad en función de la longitud de perforación propuesta de cada uno de los pozos de hidrocarburos en el estado de Nueva York
Variable Tipo Correlación_Pearson R2_Porcentaje Intercepto Pendiente Ecuación
Longitud de perforación (ft) Independiente
(Intercept) Distancia vertical (ft) Dependiente 98.26 96.55 35.53 0.977 y=0.9773*x+35.5265

Ventajas: en este tipo de variables, el dominio de ambas es todos los reales positivos unidos al cero, y no existe valor de la variable independiente que me genere un valor de mi variable dependiente fuera de su dominio.

Cálculo de estimaciones

#¿Cual será la profundidad real cuando se ha propuesto en el informe una longitud de perforacion de 2800 ft?

y_Espe<-m*2800+b
y_Espe
##        x 
## 2771.924

CONCLUSIONES: Entre la profundidad del pozo (ft ) y la longitud de perforación propuesto (ft) existe una relación de tipo lineal, y su ecuación es y=0.9773x+35.5265, donde la profundidad del pozo depende de un 98.26% de la propuesta de longitud de perforación y el restante se debe a otros factores, no se presenta restricciones , por ejemplo, si tenemos una propuesta de perforación de 2800 ft, tendríamos una profundidad de 2771.924 ft, aproximadamente.

.