library(pacman)
p_load(rmdformats,readr,readxl,ggplot2,plotly,DT,xfun,gridExtra,leaflet)

1. ¿Qué es la estadística y que aplicaciones tiene en ingeniería (según su ingeniería)?

La estadística es la parte de la ciencia que se encarga de recopilar datos para analizarlos y poder hacer inferencias y conclusiones. Se considera el arte de tomar decisiones luego de analizar los datos obtenidos mediante diferentes herramientas estadísticas. A la vista de la información anterior, se trata de datos estadísticos y pueden dar una idea de cómo se aplica en ingeniería, en este caso en ingeniería de software, e incluso más extensamente en informática. En la actualidad, estas dos disciplinas están estrechamente relacionadas, porque el hecho de que existan recursos informáticos con herramientas estadísticas promueve mucho el uso de estas herramientas, de modo que se puedan tomar conclusiones y decisiones. Además, hay muchas contribuciones a las estadísticas de la IA, porque la IA es básicamente estadística, es decir, para obtener experiencia, datos y poder tomar decisiones por ti mismo.

2.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.

Caso de estudio

Importar los datos

library(readxl)
pozos <- read_excel("pozos.xlsx")

Ordene los datos de menor a mayor, indique el valor máximo / mínimo y el rango total de datos.

PH

ph <- t(pozos$PH)
ph <- as.vector(ph)
ph <- ph[1:293]
ph <- as.numeric(ph)

sort(ph,decreasing=FALSE)
##   [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
max(ph)
## [1] 7.5
min(ph)
## [1] 6.1
## Este es el rango
max(ph)-min(ph)
## [1] 1.4

Temperatura

temperatura <- t(pozos$TEMP)
temperatura <- as.vector(temperatura)
temperatura <- temperatura[1:293]

sort(temperatura,decreasing=FALSE)
##   [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
max(temperatura)
## [1] 32.1
min(temperatura)
## [1] 25.6
## Este es el rango
max(temperatura)-min(temperatura)
## [1] 6.5
datos4 <- data.frame(ph,temperatura)

Obtenga (el número de) los intervalos (o clases) usando la fórmula según Surges y el ancho de clase.

PH

n <- length(ph)
## Número de los intervalos
i <- ceiling(sqrt(n))
i
## [1] 18

Temperatura

n1 <- length(temperatura)
## Número de los intervalos
i2 <- ceiling(sqrt(n1))
i2
## [1] 18

###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

library(fdth)
## 
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
## 
##     sd, var
tabla<- fdt(ph)
tabla
##   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

Esta tabla de frecuencia nos dice que hay 10 intervalos de valor de PH que se pueden ingresar. Nos dice que solo hay un valor de PH que ingresa en el primer y segundo intervalo, lo que representa el 0.34% de la frecuencia relativa de todos los porcentajes de datos. . Luego, hay 7 niveles de PH en el tercer intervalo, que representan el 2,94% de la frecuencia relativa porcentual. En el siguiente intervalo, los datos 40, 67, 44, 108 que pertenecen a este intervalo representan el 13,65%, que ha aumentado en 22,87 .%, 15,87% y 36,68% de frecuencia relativa. A continuación se encuentran dos intervalos, su frecuencia absoluta es igual a 12, representan 4.10% de la frecuencia porcentual relativa, en el último intervalo, solo tiene una frecuencia de 1, que representa 0.34% del primer intervalo. Si sumamos el porcentaje de frecuencia relativa, debe dar 100%, como se muestra en la última columna de la tabla.

Temperatura

library(fdth)
tabla1<- fdt(temperatura)
tabla1
##     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

Esta tabla de frecuencias nos dice que hay 10 intervalos en los que puede entrar la temperatura y que hay 2 frecuencias en el primer intervalo, que representan el 0,68% de la frecuencia porcentual relativa de todos los datos. Luego, hay 5 en el segundo intervalo, que representan el 1,71% de la frecuencia relativa porcentual. En el siguiente intervalo, los datos pertenecientes a este intervalo han aumentado en 17, 63, 79, 81 y 28, lo que representa el 5,8%, 21,5 %, que es 26,96%, 27,65% y 9,56% de la frecuencia relativa, respectivamente. A continuación se encuentra el intervalo con 9, que representa el 3,07% del porcentaje de frecuencia relativa, y los dos últimos contienen 7 y 2, que representan el 2,39% y 0,68%, respectivamente. Si sumamos el porcentaje de frecuencia relativa, debe dar 100%, como se muestra en la última columna de la tabla.

Elabore un histograma, polígono de frecuencias, histograma de frecuencias acumulado.

PH

plot(tabla, type = "fh")
title(main = "PH")

plot(tabla, type = "fp")
title(main = "PH")

plot(tabla, type = "cfh")
title(main = "PH")

## Temperatura

plot(tabla1, type = "fh")
title(main = "TEMPERATURA")

plot(tabla1, type = "fp")
title(main = "TEMPERATURA")

plot(tabla1, type = "cfh")
title(main = "TEMPERATURA")

E) Obtenga la media, mediana, moda e interprete los resultados.

PH

mean(ph)
## [1] 6.890444
median(ph)
## [1] 6.9
library(modeest)
## Registered S3 method overwritten by 'rmutil':
##   method         from
##   print.response httr
## 
## Attaching package: 'modeest'
## The following object is masked from 'package:fdth':
## 
##     mfv
mlv(ph,method = "mfv")
## [1] 7

Estos datos pueden considerarse normales porque la mayoría de ellos están cerca de los valores promedio y mediano de 6,89 y 6,9, respectivamente.

Temperatura

mean(temperatura)
## [1] 28.69795
median(temperatura)
## [1] 28.7
library(modeest)
mlv(temperatura,method = "mfv")
## [1] 28.6

Estos datos pueden considerarse normales porque la mayoría de ellos están cerca de los valores promedio y mediano de 28,69 y 28,7, respectivamente.

Obtenga la varianza y la desviación estándar, interprete los resultados. ¿Pueden estas medidas ser negativas?

PH

var(ph)
## [1] 0.04908645
sd(ph)
## [1] 0.2215546

Después de obtener la desviación estándar, se puede concluir parcialmente que los datos no están muy dispersos. Y estos valores no pueden ser números negativos, porque las raíces no pueden funcionar con números negativos.

Temperatura

var(temperatura)
## [1] 1.035407
sd(temperatura)
## [1] 1.017549

Después de obtener la desviación estándar, se puede concluir parcialmente que los datos no están muy dispersos, incluso si el rango es más alto que los datos de PH. Y estos valores no pueden ser números negativos, porque no puede usar números negativos para calcular raíces.

Elabore gráfico de caja y bigote

PH

boxplot(ph)

Se puede observar que en los datos del ph hay pocos que están dispersos de la mediana y media.

Temperatura

boxplot(temperatura)

Se puede ver que en los datos de temperatura, más datos se desvían de la mediana y la media.

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?

cor(pozos)
##               PH        TEMP
## PH    1.00000000 -0.02029087
## TEMP -0.02029087  1.00000000
ggplot(data = datos4)+
aes(x=temperatura,y=ph)+
geom_point()