E1U1

Héctor David Picos Valdez

23/10/2020

1.- ¿Qué es la estadística y que aplicaciones tiene en ingeniería de Software?

La estadistica nos sirve para medir la calidad que posee un software midiendolo respecto a su robustez, tiempo de respuesta, aceptación del usuario con esto podemos saber cual es el promedio de aceptación del software por parte del usuario o con un histograma medir que aspecto o caracteristica les gusta mas al usuario

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.

Variables Cualitativas: ## Estas toman valores como una cualidad o categoria, ## e.g. Sexo (Hombre, Mujer)

Variables Cuantitativas: ## Estas toman valores numericos, ## e.g. Edades (15, 17, 25)

Variable Dependiente: ## Depende del valor que tome otra varialble

Variable Independiente: ## Su valor no depende de nadie más

Distribución de frecuencia: ## Son tablas que te muestran una serie de intervalos y determinar la frecuencia con la cual los datos entran es ese intervalo,

Distibución normnal: ##Es una distribución en forma de campana donde se utiliza la media y con el valor de Z nos sirve para determinar el porcentaje de los datos y dar asi lugar a determinar si una hipótesis es nula o verdadera con los resultados

Importación de los datos

library(pacman)
p_load("readxl","modest","DT","fdth","tidyverse","plotly", "gifski", "gganimate")
pozos <- read_excel("pozos (3).xlsx", 
    col_types = c("numeric", "numeric"))
pozos2 <- read_csv("pozos.csv", col_types = cols(TEMP = col_number(), 
    PHB = col_number(), PH = col_number()))
ph <- pozos$PH
temp <- pozos$TEMP
phb <- pozos2$PHB

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

Inciso A para ph

### Datos de menor a mayor
sort(ph)
##   [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
### Valor máximo
vphMax <- max(ph)
vphMax
## [1] 7.5
### Valor mínimo
vphMin <- min(ph)
vphMin
## [1] 6.1
### Rango
phRango <- vphMax-vphMin
phRango
## [1] 1.4

Inciso A para temperatura

### Datos de menor a mayor
sort(temp)
##   [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
### Valor máximo
vTMax <- max(temp)
vTMax
## [1] 32.1
### Valor mínimo
vTMin <- min(temp)
vTMin
## [1] 25.6
### Rango
TRango <- vTMax-vTMin
TRango
## [1] 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

nph <- length(ph)
### intervalo de clase
kph <- nclass.Sturges(ph)
kph
## [1] 10
### ancho de clase
phac <- phRango/10
phac
## [1] 0.14

Se obtuvieron 10 intervalos para los datos de pH y el ancho de clase fue de 0.14

Temperatura

nT <- length(temp)
### intervalo de clase
kT <- nclass.Sturges(temp)
kT
## [1] 10
### ancho de clase
Tac <- TRango/10
Tac
## [1] 0.65

Se obtuvieron 10 intervalos para los datos de temperatura y el ancho de clase fue de 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.

Inciso C para ph

distpH <- fdt(ph, breaks = "Sturges")
distpH
##   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

Donde se muestra una mayor frecuencia de datos es en el inertvalo entre (6.961-7.114) con una frecuencia de 108; con la menor frecuencia es de 1 y esto se presenta en 3 intervalos siendo estos: (6.039-6.193), (6.193-6.346) y [7.421,7.575)

Inciso C para temperatura

distT <- fdt(temp,breaks = "Sturges")
distT
##     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

Donde se muestra una mayor frecuencia de datos es en el inertvalo entre (28.883-29.59) con una frecuencia de 81; la menor frecuencia es de 2 y ocurre en 2 intervalos siendo estos: (25.344-26.052) y (31.713-32.421)

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

Inciso D para ph

### Histograma
hist(ph)

### Polígono de frecuencias relativas
plot(distpH, type = "rfh")

### Histograma de frecuencias acumulado
plot(distpH, type = "cfh")

Inciso D para temperatura

### Histograma
hist(temp)

### Polígono de frecuencias relativas
plot(distT, type = "rfh")

### Histograma de frecuencias acumulado
plot(distT, type = "cfh")

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

Inciso E para ph

### media
mean(ph)
## [1] 6.890444
### mediana
median(ph)
## [1] 6.9
### moda
mfv(ph)
## [1] 7

Inciso E para temperatura

### media
mean(temp)
## [1] 28.69795
### mediana
median(temp)
## [1] 28.7
### moda
mfv(temp)
## [1] 28.6

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

Inciso F para ph

### Varianza
var(ph)
## [1] 0.04908645
### Desviación estándar
sd(ph)
## [1] 0.2215546

Inciso F para temperatura

### Varianza
var(temp)
## [1] 1.035407
### Desviación estándar
sd(temp)
## [1] 1.017549

Ni la Desviación Estándar ni la varianza pueden ser negativas, el valor mas bajo que pueden tomar ambas es de 0

G) Elabore gráfico de caja y bigote

Inciso G para ph

### Gráfico de caja y bigote
boxplot(ph)

Inciso G para temperatura

### Gráfico de caja y bigote
boxplot(temp)

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?

### grafica de dispersion pH
plot(pozos)

### grafica de dispersion temperatura
plot(temp)

Creacion de un data frame para comparar ph y temperatura

datos <- data.frame(temp, ph)
g2 <- ggplot(data = datos)+
  geom_line(mapping = aes(x = temp, y = ph), colour="blue")+
  ggtitle("Valores de ph dependiendo de la temperatura")+
  transition_reveal(temp)
ggplotly(g2)

Regresión lineal

Recta de los mínimos cuadrados

reg <- lm(ph ~ temp, data = pozos)
summary(reg)
## 
## 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

Ecuación de la recta de los mínimos cuadrados

\[y = 7.017231 - 0.004418x\]

Intervalo de confianza

confint(reg)
##                   2.5 %     97.5 %
## (Intercept)  6.29600715 7.73845554
## temp        -0.02953383 0.02069782

Análisis gráfico de residuos

par(mfrow=c(1,2))
plot(reg)

Shapiro-Wilk*

shapiro.test(reg$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  reg$residuals
## W = 0.96474, p-value = 1.44e-06

Matriz de correlación

rel <- data_frame(ph,temp)
## Warning: `data_frame()` is deprecated as of tibble 1.1.0.
## Please use `tibble()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
pairs(rel)

Curva de regresión lineal

reg2 <- glm(phb ~ temp, data = pozos2, family = binomial())
colores <- NULL
colores[phb==0] <- "green"
colores[phb==1] <- "red"
datos <- data.frame(temp= seq(25.6,32.1,0.1))
probabilidades <- predict(reg2, datos, type = "response")
plot(temp, phb, pch = 21, bg = colores, xlab = 'Temperatura', ylab = 'Probabilidad de pH')
legend('bottomleft', c('PHB = 0', 'PHB = 1'), pch = 21, col = c('green', 'red'))

lines(datos$temp, probabilidades, col="blue", lwd=3)