library("ggplot2")
library("BSDA")
## Loading required package: lattice
## 
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
## 
##     Orange
library("EnvStats")
## 
## Attaching package: 'EnvStats'
## The following objects are masked from 'package:stats':
## 
##     predict, predict.lm
## The following object is masked from 'package:base':
## 
##     print.default
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

Pruebas de contraste de hipotesis para una sola muestra

1. Ejemplo de uso de la prueba z con una cola

La hipotesis nula será que los alumnos tienen 25 años o menos \[ H_{0}: \mu_{0} \leq 25\]

# Datos 
mu = 25
sigma = 4.5
x_bar = 22.5
n = 40

z = (x_bar-mu)/(sigma/sqrt(n)) # [1] -3.513642
alfa = 0.05
confianza = 1-alfa

z_alfa = qnorm(alfa/2) # [-1.959964 - 1.959964]

Se tiene un valor de -3.513642 para z, mientras que el intervalo zα es de [-1.959964 - 1.959964], por lo que z no se encuentra dentro del intervalo de confianza.

set.seed(10)

#Creación de muestra artificial
datos = rnorm(n,x_bar,sigma)

#Aplicación de test
z = z.test(x=datos,mu=mu,sigma.x=sigma,conf.level = confianza,alternative="less")
print(z)
## 
##  One-sample z-Test
## 
## data:  datos
## z = -6.092, p-value = 5.575e-10
## alternative hypothesis: true mean is less than 25
## 95 percent confidence interval:
##        NA 21.83579
## sample estimates:
## mean of x 
##  20.66546

Se tiene un p value menor a 0.05, por lo que la hipótesis nula se rechaza.

dnorm_limit <- function(x) {
    y <- dnorm(x)
    y[x < z_alfa  |  x > -z_alfa] <- NA
    return(y)
}

# ggplot() with dummy data
grafico_densidad = ggplot(data.frame(x = c(-3, 3)), aes(x = x)) + 
  stat_function(fun = dnorm_limit, geom = "area", fill = "blue", alpha = 0.2) +  stat_function(fun = dnorm) +
  xlab("Edades") + ylab("Densidad") + ggtitle("Función de densidad") + 
  theme_bw() + geom_vline(xintercept = (x_bar-mu)/(sigma/sqrt(n)),cex=1.2,colour ="darkred") + 
  geom_text(aes(x=(x_bar-mu)/(sigma/sqrt(n))+0.2, label="z", y=0.0), colour ="darkred",size=10)

plot(grafico_densidad)

2. Ejemplo de uso de la prueba t con una cola

octanaje = c(81,75,76,86,72,74,75,82,79,83,83,78,82)

# Datos
mu = 82 # octanaje para que un auto funcione bien
s = sd(octanaje)
x_bar = mean(octanaje) # 14.9
n=length(octanaje) #13

#Normalización
t = (x_bar-mu)/(s/sqrt(n)) # [1] -2.597366
#Confianza
alfa = 0.05
confianza = 1-alfa
t_alfa = qt(alfa/2,df = n-1) # [1] -2.178813

El valor de t corresponde a -2.597366, y el intervalo t es [-2.178813,2.178813], por lo que nuestro t está fuera del intervalo de confianza, se puede rechazar Ho.

set.seed(941)

#Creación de muestra artificial
datos = rnorm(n,x_bar,s)
#Aplicación de test
t = t.test(x=datos,mu=mu,conf.level = confianza,alternative="less")
print(t)
## 
##  One Sample t-test
## 
## data:  datos
## t = -2.883, df = 12, p-value = 0.006877
## alternative hypothesis: true mean is less than 82
## 95 percent confidence interval:
##      -Inf 80.95795
## sample estimates:
## mean of x 
##  79.27069

Como p value es menor a 0.05, se rechaza la hipótesis Ho.

dnorm_limit <- function(x) {
    y <- dnorm(x)
    y[x < t_alfa  |  x > -t_alfa] <- NA
    return(y)
}

# ggplot() with dummy data
grafico_densidad = ggplot(data.frame(x = c(-3, 3)), aes(x = x)) + 
  stat_function(fun = dnorm_limit, geom = "area", fill = "blue", alpha = 0.2) +  stat_function(fun = dnorm) +
  xlab("Octanaje") + ylab("Densidad") + ggtitle("Función de densidad") + 
  theme_bw() + geom_vline(xintercept = (x_bar-mu)/(s/sqrt(n)),cex=1.2,colour ="darkred") + 
  geom_text(aes(x=(x_bar-mu)/(s/sqrt(n))+0.2, label="t", y=0.0), colour ="darkred",size=10)

plot(grafico_densidad)

3. Ejemplo de uso de la prueba chi para varianza con dos colas

La hipotesis nula será sobre si el lote tendrá o no un grado de endulzamiento mayor a 18. \[ H_{0} : \sigma^{2} = 18 \]

grafico_densidad = ggplot(data = data.frame(x = c(0, 60)), aes(x)) +
  stat_function(fun = dchisq, n = 21, args = list(x =18, df = 19)) + ylab("") +
  scale_y_continuous(breaks = NULL) + xlab("Grado endulzamiento") + ylab("Densidad") + ggtitle("Función de densidad") + theme_bw() +
  geom_vline(xintercept = 20.98,cex=1.2,colour ="darkred") + geom_text(aes(x=23, label="S^2", y=0.0), colour ="darkred",size=5) 

grafico_densidad

# Datos
sigma2 = 18
n = 20
s2 = 22.63

#Normalización
chi = (n-1)*s2/(sigma2) # [1] 23.88722

#Confianza
alfa = 0.05
confianza = 1-alfa

chi_alfa = qchisq(alfa,df = n-1) # [1] 10.11701

El valor de chi corresponde a 23.88722, mientras que chiα es [-10.11701,10.11701], por lo que chi esta fuera del intervalo de confianza.

#Creación de muestra artificial
set.seed(520)
datos=rnorm(20,sqrt(s2),n=n)

#Aplicación de test
chi = varTest(datos,sigma.squared=sigma2,alternative="greater")
print(chi)
## 
## Results of Hypothesis Test
## --------------------------
## 
## Null Hypothesis:                 variance = 18
## 
## Alternative Hypothesis:          True variance is greater than 18
## 
## Test Name:                       Chi-Squared Test on Variance
## 
## Estimated Parameter(s):          variance = 24.41138
## 
## Data:                            datos
## 
## Test Statistic:                  Chi-Squared = 25.76756
## 
## Test Statistic Parameter:        df = 19
## 
## P-value:                         0.1367969
## 
## 95% Confidence Interval:         LCL = 15.38692
##                                  UCL =      Inf

4. Ejemplo de bondad de ajuste Chi cuadrado

datos = data.frame(iris)
datos = group_by(datos,Species)
pedidas = c(100,100,100)
chisq.test(pedidas, p = c(1/2,1/3,1/6))
## 
##  Chi-squared test for given probabilities
## 
## data:  pedidas
## X-squared = 66.667, df = 2, p-value = 3.338e-15

Se tiene un pvalue menor a 0.05, por lo que hay una diferencia significativa entre las iris entregadas y las pedidas.

5. Ejemplo de pruieba de hipotesis en una proporcion binomial

# Con una cola
# Datos
p_bar = 124/500
x = 124
p_o = 0.16
n = 500

print(prop.test(x,n,p=p_o,alt="greater",correct=FALSE))
## 
##  1-sample proportions test without continuity correction
## 
## data:  x out of n, null probability p_o
## X-squared = 28.81, df = 1, p-value = 3.993e-08
## alternative hypothesis: true p is greater than 0.16
## 95 percent confidence interval:
##  0.2176458 1.0000000
## sample estimates:
##     p 
## 0.248

Se tiene un pvalue menor a 0.05, por lo que la hipotesis se puede rechazar.

6. Ejemplo de prueba de hipotesis en el que se aplica la prueba del signo

binom.test(24,40)
## 
##  Exact binomial test
## 
## data:  24 and 40
## number of successes = 24, number of trials = 40, p-value = 0.2682
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
##  0.4332671 0.7513500
## sample estimates:
## probability of success 
##                    0.6

Se obtiene un pvalue mayor a 0.05, por lo que el cubo con las nuevas tecnologías podrían ser igual de popular si es que son lanzadas al mercado, se recalca la palabra podrían, ya que solamente un grupo acotado de personas probaron los nuevos cubos, lo cual no se compara a la cantidad de personas que compran estos productos, además, que por ser una tecnologia que provee mayor comodidad a la hora del uso de los cubos (mayor velocidad de giro y menos probabilidad de desarme de piezas) implica un valor mucho más elevado.

7. Ejemplo de prueba de hipotesis en el que se aplica la prueba de Wilcoxon

datos = select(filter(data.frame(Titanic), Survived == "Yes"), Class, Sex, Freq)

wilcox.test(datos$Freq, mu = 15, conf.int = 0.95)
## Warning in wilcox.test.default(datos$Freq, mu = 15, conf.int = 0.95): cannot
## compute exact p-value with ties
## Warning in wilcox.test.default(datos$Freq, mu = 15, conf.int = 0.95): cannot
## compute exact confidence interval with ties
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  datos$Freq
## V = 87, p-value = 0.3385
## alternative hypothesis: true location is not equal to 15
## 95 percent confidence interval:
##   9.500007 75.999996
## sample estimates:
## (pseudo)median 
##       38.00005

Se tiene un p value mayor a 0.05, por lo que la hipotesis se acepta #### Referencias Para actividad 1 https://www.youtube.com/watch?v=AJcy4eZMwWM Para actividad 2 https://www.youtube.com/watch?v=Ged-jKhYihs Para actividad 3 https://www.youtube.com/watch?v=qrtBrueW_sE Ejemplos para actividades 4 a 7 creados.