#E1U1D
setwd("~/VERANOPYE")
library(pacman)
p_load(modeest, tidyverse, plotly, fdth, readxl)
pozos <- read_excel("pozos.xlsx")
pH <- pozos$PH
temp <- pozos$TEMP
#A) Ordene los datos menor a mayor, indique el valor máximo / mínimo y el rango total de datos.
#PH
sort(pH) #Orden de menor a mayor
## [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(pH) #Resumen estadístico
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.10 6.80 6.90 6.89 7.00 7.50
range(pH) #Rango (de donde a donde)
## [1] 6.1 7.5
min(pH) #Valor mínimo
## [1] 6.1
max(pH) #Valor máximo
## [1] 7.5
rangopH <- max(pH)-min(pH) #Cálculo de rango total
rangopH #Rango total
## [1] 1.4
#TEMPERATURA
sort(temp) #Orden de menor a mayor
## [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(temp) #Resumen estadístico
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 25.6 28.0 28.7 28.7 29.2 32.1
range(temp) #Rango (de donde a donde)
## [1] 25.6 32.1
min(temp) #Valor mínimo
## [1] 25.6
max(temp) #Valor máximo
## [1] 32.1
rangoTemp <- max(temp)-min(temp) #Cálculo de rango total
rangoTemp #Rango total
## [1] 6.5
#B) Obtenga (el número de) los intervalos (o clases) usando la fórmula según Sturges y el ancho de clase.
#PH
intpH <- 1+3.3*log10(length(pH)) #Cálculo de intervalos o clases
intpH <- ceiling(intpH) #Redondeo hacia el siguiente valor entero
intpH #Número dentervalos o clases
## [1] 10
ACpH <- rangopH/intpH #Cálculo de ancho de clase
ACpH #Valor del ancho de clase
## [1] 0.14
#TEMPERATURA
intTemp <- 1+3.3*log10(length(temp)) #Cálculo de intervalos o clases
intTemp <- ceiling(intTemp) #Redondeo hacia el siguiente valor entero
intTemp #Número dentervalos o clases
## [1] 10
ACtemp <- rangoTemp/intTemp #Cálculo de ancho de clase
ACtemp #Valor del ancho de clase
## [1] 0.65
#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.
#PH
sturgespH <- fdt(pH, breaks = "Sturges")
sturgespH
## 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
#EXPLICACIÓN: Los datos de pH se encuentran acumulados en el centro, ya que de la clase 4 a la clase 7 se concentran el 89% de los datos, siendo la clase 7 con el mayor número de frecuencias. Esto quiere decir que los extremos solo cuentan con el 11% de los datos. También se observa que los datos se encuentran un poco más concentrados hacia la derecha.
#TEMPERATURA
sturgesTemp <- fdt(temp, breaks = "Sturges")
sturgesTemp
## 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
#EXPLICACIÓN: Los datos de temperatura se encuentran centrados ligeramente hacia izquierda, ya que de la clase 4 a la clase 6 se concentran el 77% de los datos, siendo la clase 6 con el mayor número de frecuencias.
#D) Elabore un histograma, polígono de frecuencias, histograma de frecuencias acumulado.
#PH
plot(sturgespH, type="fh") #Histograma de frecuencias absolutas

plot(sturgespH, type="cfh") #Histograma de frecuencias acumuladas

plot(sturgespH, type="fp") #Polígono de frecuencias

#TEMPERATURA
plot(sturgesTemp, type="fh") #Histograma de frecuencias absolutas

plot(sturgesTemp, type="cfh") #Histograma de frecuencias acumuladas

plot(sturgesTemp, type="fp") #Polígono de frecuencias

#E) Obtenga la media, mediana, moda e interprete los resultados.
#PH
mean(pH) #Media
## [1] 6.890444
median(pH) #Mediana
## [1] 6.9
mlv(pH, method="mfv") #Moda
## [1] 7
#EXPLICACIÓN: La media (6.89), mediana (6.9) y moda(7) cuentan con una pequeña diferencia decimal entre sí pero los valores trabajados en el pH son muy sensibles a los decimales, por lo tanto en este caso la media es menor que la mediana, esto quiere decir que la distribución se encuentra sesgada a la izquierda (negativamente).
#TEMPERATURA
mean(temp) #Media
## [1] 28.69795
median(temp) #Mediana
## [1] 28.7
mlv(temp, method="mfv") #Moda
## [1] 28.6
#EXPLICACIÓN: La media (28.69795), mediana (28.7) y moda (28.6) cuentan con una pequeña diferancia decimal al igual que el ejemplo pasado, en este caso la media también es menor a la mediana, por lo tanto se trata de una distribución sesgada hacia la izquierda (negativamente), pero también podría considerarse una distribución unimodal o simétrica por las pequeñas variaciones y tomar los valores como iguales al redondearlos.
#F)Obtenga la varianza y la desviación estándar, interprete los resultados.
#¿Pueden estas medidas ser negativas?
#Estas medidas no pueden ser negativas, ya que consiste en sumas cuadráticas y cualquier número elevado al cuadrado (incluyendo negativos) siempre será positivo.
#PH
var(pH) #Varianza
## [1] 0.04908645
sd(pH) #Desviación estándar
## [1] 0.2215546
#EXPLICACIÓN: La dispersión de los datos de pH entre sí es muy pequeña, ya que cuenta con una desviación estándar de 0.2215546, esto quiere decir que los datos se encuentran muy concentrados.
#TEMPERATURA
var(temp) #Varianza
## [1] 1.035407
sd(temp) #Desviación estándar
## [1] 1.017549
#EXPLICACIÓN: La dispersión de los datos de temperaturaes muy baja al igual que el pH pero mayor que esta última, ya que cuenta con una desviación estándar de 1.017549.
#G) Elabore un gráfico de caja y bigote
#PH
boxplot(pH)

#TEMPERATURA
boxplot(temp)

#H) Elabora una gráfica de dispersión de pH versus temperatura, use ggplot aquí.
ggplot(pozos) +
geom_point(mapping = aes(x=pH, y=temp))

#En base a esta gráfica: ¿Considera que estas 2 variables están relacionadas?
#No, ya que en la gráfica de dispersión se alcanza a observar que para todos los pH (a excepción de los extremos, pero esto porque tienen baja frecuencia) se mantienen igual a distintas temperaturas, como por ejemplo el pH 6.8 se mantiene igual a 31°C y a 26°C. Así que se puede concluir que la tempertura no afecta al pH en este caso.