Pozos de aguas subterránea
Introducción
¿Qué es la estadística y que aplicaciones tiene en ingeniería (IQ)?
La estadística es la rama de las matemáticas que estudia la variabilidad, colección, organización, análisis, interpretación, y presentación de los datos, su aplicación en la ingeniería química es contraste y análisis de datos de diferentes pruebas experimentales o procesos dentro de un sistema determinado (reactores o pruebas químicas de composición), con ella se pueden determinar parámetros de un proceso así como encontrar valores que hagan más eficientes la producción de un determinado producto incrementando la ganancia y menor uso de recursos.
Enliste y defina los tipos de variables usados en estadística, de 2 ejemplos de cada uno. Defina distribución de frecuencia y explique que es la distribución normal.
Variables cuantitativos
Las variables cuantitativas son variables que se expresan numéricamente.
variable continua: son variables que toman un valor infinito de valores entre un intervalo de datos. Ejemplo; el tiempo que tarda un tanque de agua en secarse o llenarse.
Variable discreta: Toman un valor finito de valores entre un intervalo de datos. Ejemplo; Número de litros de agua consumidos o a recibir.
Variables cualitativos
Las variables cualitativas son variables que se expresan, por lo general, en palabras.
Variable ordinal: Expresa diferentes niveles y orden. Ejemplo: Diferencia de profundidad, zonas o calidad de un terreno con acuífero.
Variable nominal: Expresa un nombre claramente diferenciado. Ejemplo: pH o temperatura.
Importar datos
library(pacman)
p_load("rmdformats","readxl","plotly","xfun","gridExtra","leaflet","base64enc", "htmltools", "mime", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2","plotly", "gganimate","gifski","scales","psych","GGally","fdth","modeest","normtest","nortest","moments")
library(readxl)
pozos <- read_excel("pozos.xlsx")
datatable(pozos)
ppH <- data.frame(pozos$PH)
pTemp <- data.frame(pozos$TEMP)
Incisos de pH y Temperatura
A) Ordene los datos de menor a mayor, indique el valor máximo / mínimo y el rango total de datos.
pH
vectorPH <- pozos$PH
vectorPH <- sort(vectorPH, decreasing = FALSE)
vectorPH
## [1] 6.1 6.3 6.4 6.4 6.4 6.4 6.4 6.4 6.4 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5
## [19] 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.5 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6
## [37] 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.6 6.7 6.7 6.7 6.7 6.7
## [55] 6.7 6.7 6.7 6.7 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8
## [73] 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8
## [91] 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8
## [109] 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.8 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9
## [127] 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9
## [145] 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 6.9 7.0 7.0
## [163] 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0
## [181] 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0
## [199] 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0
## [217] 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0
## [235] 7.0 7.0 7.0 7.0 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1
## [253] 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.1 7.2 7.2
## [271] 7.2 7.2 7.2 7.2 7.2 7.2 7.2 7.2 7.2 7.2 7.3 7.3 7.3 7.3 7.3 7.3 7.4 7.4
## [289] 7.4 7.4 7.4 7.4 7.5
summary(pozos$PH)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.10 6.80 6.90 6.89 7.00 7.50
range(pozos$PH, na.rm = FALSE)
## [1] 6.1 7.5
Primero que nada, ordenamos los datos de menor a mayor para poder observar de forma ascendente los valores de pH medidos en el pozo, observamos que los valores mínimos eran de 6.1 pH y máximos de 7.5 pH, lo cual quiere decir que el agua variaba de acides a ligeramente alcalino a lo largo de su ciclo, por sus cuartiles se puede saber que el paso de ácido a alcalino es constante. (su rango es de 1.4 restando los mínimos y máximos 7.5-6.1)
Temperatura
vectorTemp <- pozos$TEMP
vectorTemp <- sort(vectorTemp, decreasing = FALSE)
vectorTemp
## [1] 25.6 25.8 26.2 26.3 26.3 26.4 26.4 26.8 26.8 26.9 27.0 27.0 27.1 27.2 27.2
## [16] 27.3 27.3 27.3 27.3 27.4 27.4 27.4 27.4 27.4 27.5 27.5 27.5 27.5 27.5 27.5
## [31] 27.5 27.5 27.5 27.5 27.5 27.5 27.6 27.7 27.7 27.7 27.7 27.8 27.8 27.8 27.8
## [46] 27.8 27.8 27.8 27.8 27.8 27.8 27.8 27.9 27.9 27.9 27.9 27.9 27.9 27.9 27.9
## [61] 27.9 27.9 27.9 27.9 27.9 27.9 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0
## [76] 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.1 28.1 28.1 28.2 28.2 28.2
## [91] 28.2 28.2 28.2 28.2 28.2 28.2 28.2 28.2 28.2 28.3 28.3 28.3 28.3 28.3 28.3
## [106] 28.3 28.4 28.4 28.4 28.4 28.4 28.4 28.4 28.5 28.5 28.5 28.5 28.5 28.5 28.5
## [121] 28.5 28.5 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6 28.6
## [136] 28.6 28.6 28.6 28.6 28.6 28.6 28.7 28.7 28.7 28.7 28.7 28.7 28.7 28.7 28.7
## [151] 28.7 28.7 28.7 28.7 28.8 28.8 28.8 28.8 28.8 28.8 28.8 28.8 28.8 28.8 28.8
## [166] 28.8 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9 28.9
## [181] 28.9 28.9 28.9 28.9 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0
## [196] 29.0 29.0 29.0 29.1 29.1 29.1 29.1 29.1 29.1 29.1 29.1 29.1 29.1 29.1 29.2
## [211] 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.2 29.3 29.3
## [226] 29.3 29.3 29.4 29.4 29.4 29.4 29.4 29.4 29.4 29.4 29.4 29.4 29.4 29.5 29.5
## [241] 29.5 29.5 29.5 29.5 29.5 29.5 29.5 29.6 29.6 29.6 29.7 29.7 29.8 29.8 29.8
## [256] 29.8 29.8 29.8 29.9 29.9 29.9 29.9 30.0 30.0 30.0 30.0 30.0 30.0 30.1 30.1
## [271] 30.1 30.1 30.2 30.2 30.2 30.3 30.3 30.3 30.3 30.4 30.5 30.6 30.8 30.9 31.1
## [286] 31.1 31.1 31.2 31.4 31.5 31.7 31.9 32.1
summary(pozos$TEMP)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 25.6 28.0 28.7 28.7 29.2 32.1
range(pTemp, na.rm = FALSE)
## [1] 25.6 32.1
Gracias a ordenar las temperaturas del pozo podemos ver que al igual que el pH, la temperatura tambien tiene un progreso constante ascendente, sus minimas es de 25.6 y máximas de 32.1, si bien los cambios de temperatura no son tan abrutos, las condiciones geologicas del pozo puen afectar en gran medida el pH. (rango de 6.5)
b) Obtenga (el número de) los intervalos (o clases) usando la fórmula según Surges y el ancho de clase.
pH
nclass.Sturges(ppH) # Número de intervalos
## [1] 1
A = diff(range(ppH) / 10) # Ancho de intervalos
A
## [1] 0.14
Se obtuvo usando el comando nclass con Sturges para obtener número de intervalos que resulto en 10 y el ancho de intervalos utilizando la función diff(range(dato) /10) para pH como 0.14 lo cual es la diferencia de los limites reales.
Temperatura
nclass.Sturges(pTemp) # Número de intervalos
## [1] 1
A = diff(range(pTemp) / 10) # Ancho de intervalos
A
## [1] 0.65
De igual manera los intervalos de Temperatura fueron de 10 y anchura de intervalos fue de 0.65, siendo más grande debido al tamaño de los valores de temperatura.
c) Construya una tabla de frecuencias que incluya: límites de clases, frecuencia absoluta, frecuencia relativa, frecuencia relativa porcentual, frecuencia acumulada y explique a detalle que refleja esta tabla.
- f= frecuencia absoluta
- rf= frecuencia relativa
- rf(%) frecuencia relativa porcentual
- cf= frecuencia acumulada
- cf(%)=frecuencia acumulada porcentual
pH
distPH <- fdt(ppH, breaks="Sturges")
distPH
## pozos.PH
## Class limits f rf rf(%) cf cf(%)
## [6.039,6.193) 1 0.00 0.34 1 0.34
## [6.193,6.346) 1 0.00 0.34 2 0.68
## [6.346,6.5) 7 0.02 2.39 9 3.07
## [6.5,6.653) 40 0.14 13.65 49 16.72
## [6.653,6.807) 67 0.23 22.87 116 39.59
## [6.807,6.961) 44 0.15 15.02 160 54.61
## [6.961,7.114) 108 0.37 36.86 268 91.47
## [7.114,7.268) 12 0.04 4.10 280 95.56
## [7.268,7.421) 12 0.04 4.10 292 99.66
## [7.421,7.575) 1 0.00 0.34 293 100.00
En la tabla de frecuencias del pH podemos ver la frecuencia absoluta hasta la acumulada porcentual, podemos ver que en frecuencia absoluta los valores de las clases de [6.039, 6.193] hasta [6.346,6.5] los valores se mantiene en un solo digito, si embargo pega un pico en los valores de [6.5,6.653] a [6.807,6.961], en ellos podemos ver que la frecuencia relativa pasa en orden de 0.14, 0.23 y 0.15 en ese lapso de tiempo, sin embargo, al llegar los intervalos de [6.961,7.114] su frecuencia aumenta bastante dando un total de 108 con una frecuencia acumulada porcentual de 91.47% siendo por lejos el valor más alto de la tabla, hasta las siguientes intervalos donde se normaliza, podemos decir que los intervalos de [6.961,7.114] es la parte donde más tiempo se mantuvo ese pH en pozo
Temperatura
distTEMP <- fdt(pTemp, breaks="Sturges")
distTEMP
## pozos.TEMP
## Class limits f rf rf(%) cf cf(%)
## [25.344,26.052) 2 0.01 0.68 2 0.68
## [26.052,26.759) 5 0.02 1.71 7 2.39
## [26.759,27.467) 17 0.06 5.80 24 8.19
## [27.467,28.175) 63 0.22 21.50 87 29.69
## [28.175,28.883) 79 0.27 26.96 166 56.66
## [28.883,29.59) 81 0.28 27.65 247 84.30
## [29.59,30.298) 28 0.10 9.56 275 93.86
## [30.298,31.006) 9 0.03 3.07 284 96.93
## [31.006,31.713) 7 0.02 2.39 291 99.32
## [31.713,32.421) 2 0.01 0.68 293 100.00
La frecuencia absoluta de las variables de [25.344,26.052) hasta [26.759,27.467] muestra un incremento normal, sin embargo, de las variables de [27.467,28.175) a (28.883,29.59)] se muestra un aumento de frecuencia de temperatura ascendente gigante en comparación a intervalos pasados, con una frecuencia acumulada porcentual de 93.86 %, lo cual quiere decir que el aumento en temperatura en esos rangos de se mantuvo en crecimiento por un buen tiempo de ello, algo como una corriente de agua lo debió alterar.
d) Elabore un histograma, polígono de frecuencias, histograma de frecuencias acumulado.
pH
Hietograma de pH
hist(pozos$PH, main = "Histograma de pH", xlab = "pH", ylab = "Frecuencia")
Aquí podemos ver el histograma de frecuencia de pH, podemos ver que los rangos de pH de 6.5 a 7.0 son los que más se repiten en la gráfica, esto puede ser a que el aumento de pH en ese rango se mantuvo una buena parte del tiempo, gracias a que si bien cuando aumenta la temperatura disminuye el pH, en este caso aumenta en conjunto a la temperatura, esto pude se debió a que una corriente mineralizada de reacción con el agua del pozo y el pH aumenté en consecuencia.
Histograma de poligonos de pH
plot(distPH, type="fp", main = "Histograma de poligonos de pH", xlab = "pH", ylab = "Frecuencia")
Aquí podemos ver de manera más grafica los datos de pH, viendo claramente el lapso de incremento de pH en ello se puede ver en este caso 2 momentos de ellos.
Hsitograma de frecuencia acumulada de pH
plot(distPH, type="cfh", main = "Histograma de frecuencia acumulada de pH", xlab = "pH", ylab = "Frecuencia")
Aquí podemos ver el incremento de pH que empezó desde los 6.5 donde el cambio es más abrupto podría ser debido que algo como una corriente subterránea hacia reacción a partir de ese momento.
Temperatura
Histograma Temperatura
hist(pozos$TEMP, main = "Histograma de poligonos de Temperatura", xlab = "Temperatura", ylab = "Frecuencia")
Aquí podemos ver la frecuencia en temperatura del pozo, en los lapsos de 27 a 28 la temperatura aumenta un grado sin embargo de 28 a 29 aumenta la frecuencia en ella, puede ser debido a una corriente de agua termal paso por allí y dejo residuos minerales.
Histograma de poligonos de Temperatura
plot(distTEMP, type="fp", main = "Histograma de poligono de Temperatura", xlab = "Temperatura", ylab = "Frecuencia")
Aquí podemos ver el momento del aumento de temperatura en el agua que duro desde 27.47 grados a 30.30 grados.
Hsitograma de frecuencia acumulada Temperatura
plot(distTEMP, type="cfh", main = "Histograma de frecuencia acumulada de Temperatura", xlab = "Temperatura", ylab = "Frecuencia")
Aquí observamos que la temperatura aumento de exponencialmente desde los26.76 hasta los 28.88 grados donde el crecimiento de temperatura fue más abrupto en el lapsus de tiempo.
e) Obtenga la media, mediana, moda e interprete los resultados.
pH
Media
mean(pozos$PH)
## [1] 6.890444
La media de los datos de fue de 6.890444 siendo el promedio de datos de pH o el más representativo en el pozo.
Mediana
median(pozos$PH)
## [1] 6.9
Con 6.9 la mediana representa el valor medio del pozo.
Moda
mlv(pozos$PH)
## Warning: argument 'method' is missing. Data are supposed to be continuous.
## Default method 'shorth' is used
## [1] 6.989796
El valor más repetitivo del pozo fue 6.98, siendo el estado de pH que más duro en él.
Temperatura
Media
mean(pozos$TEMP)
## [1] 28.69795
La media de los datos de fue de 28.69795 siendo el promedio de datos de temperatura o el más representativo en el pozo.
Mediana
median(pozos$TEMP)
## [1] 28.7
Con 28.7 la mediana representa el valor medio del pozo.
Moda
mlv(pozos$TEMP)
## Warning: argument 'method' is missing. Data are supposed to be continuous.
## Default method 'shorth' is used
## Warning: encountered a tie, and the difference between minimal and
## maximal value is > length('x') * 'tie.limit'
## the distribution could be multimodal
## [1] 28.59864
El valor más repetitivo del pozo fue 28.59864, siendo el estado de pH que más duro en él.
f) Obtenga la varianza y la desviación estándar, interprete los resultados. ¿Pueden estas medidas ser negativas?
pH
Varianza pH
var(pozos$PH)
## [1] 0.04908645
la variación de pH fue más bien minima en comparación al de la escla de pH
Desviación estandar pH
sd(pozos$PH)
## [1] 0.2215546
Su deviación entre valores es pequeña debido a que si bien el pH aumento, no fue muy grande el incremento.
Temperatura
Varianza Temperatura
var(pozos$TEMP)
## [1] 1.035407
La variación de los pozos fue de grado en grado prácticamente, tiene sentido la variación de 1.035407
Desviación estandar Temperatura
sd(pozos$TEMP)
## [1] 1.017549
La desviación estándar de los pozos fue de grado en grado prácticamente.
g) Elabore gráfico de caja y bigote
pH y Temperatura
par(mfrow=c(1, 2))
boxplot(pozos$PH, main = "pH del agua")
boxplot(pozos$TEMP, main = "Temperatura del agua")
Aquí podemos ver la graficas de caja y bigote del pH y temperatura, en ambas si bien hay Valores que se alejan de la tendencia central, ambos tienen valores normales en ellos, que se puede decir que son confiables, sin embargo, podemos ver que en el de la temperatura en es más al sesgo a las temperaturas mayores.
h) Elabora una gráfica de dispersión de pH versus temperatura, use ggplot aquí. En base a esta gráfica: ¿Considera que estas 2 variables están relacionadas?
versus <- ggplot(pozos)+
geom_point(aes(x=TEMP, y=PH, colour = "Temperatura vs pH"))
labs(title="pH vs Temperatura del agua",x="Orden",y="Temperatura")
## $x
## [1] "Orden"
##
## $y
## [1] "Temperatura"
##
## $title
## [1] "pH vs Temperatura del agua"
##
## attr(,"class")
## [1] "labels"
ggplotly(versus)
Aquí podemos ver una tabla de dispersión de pH contra Temperatura, en ella podemos observar que la agrupación de las variables están muy dispersas hacia el centro siendo esto que si bien el pH debería disminuir con la temperatura esta aumenta por así decirlos, sabiendo que si bien una fuente mineral alcaliniza el agua, pudo haber sido una corriente termal la que creo una reacción en el pozo y dejo residuos, lo cual puede explicar el aumento de temperatura en el agua y su posterior subida de pH constante en ella.
versus <- ggplot(pozos)+
geom_line(aes(x=TEMP, y=PH, colour = "Temperatura vs pH"))
labs(title="pH vs Temperatura del agua",x="Orden",y="Temperatura")
## $x
## [1] "Orden"
##
## $y
## [1] "Temperatura"
##
## $title
## [1] "pH vs Temperatura del agua"
##
## attr(,"class")
## [1] "labels"
ggplotly(versus)
Aquí podemos observar con mayor claridad la relación del pH con la Temperatura.
Regresión lineal
cor(pozos)
## PH TEMP
## PH 1.00000000 -0.02029087
## TEMP -0.02029087 1.00000000
Utilizando la regresión lineal vamos a ver la relación entre los datos, en esta correlación podemos ver que la temperatura muestra cierta discordancia con el pH.
regp <- lm(PH ~ TEMP, pozos)
summary(regp)
##
## Call:
## lm(formula = PH ~ TEMP, data = pozos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.78955 -0.09220 0.01089 0.11089 0.59587
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.017231 0.366448 19.149 <2e-16 ***
## TEMP -0.004418 0.012761 -0.346 0.729
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2219 on 291 degrees of freedom
## Multiple R-squared: 0.0004117, Adjusted R-squared: -0.003023
## F-statistic: 0.1199 on 1 and 291 DF, p-value: 0.7294
Aquí podemos observar la relación de los datos, podemos ver en p-valué de 0.7294 y el R-quered: 0.0004117 que la relación es más bien pequeña, esto puede confirmar la hipótesis de que un corriente termal afecto al pozo dejando residuos en él, de esta manera el pH aumento a pesar del aumento de temperatura
Conclusión
Debido a la relación de los datos obtenidos, se dio a la conclusión que la relación entre el pH y la temperatura del pozo es más bien pequeña, esto puede confirmar la hipótesis de que un corriente termal afecto al pozo dejando residuos en él, de esta manera el pH aumento a pesar del aumento de temperatura ya que cuando hay un incremento en la temperatura, el pH disminuye, de igual forma una disminución de temperatura implica un aumento en el pH. La causa de que se afecte el pH del agua por la temperatura es que cuando aumenta la temperatura, las moléculas tienden a separarse en sus elementos: hidrógeno y oxígeno.