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")
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.
.