Ejercicios - Pruebas de Contraste de Hipótesis para una Muestra

logo

1. Prueba para contraste de media, con media poblacional y varianza conocida.

Resumen

  • Nombre: z-test.
  • Tipo de prueba: paramétrica.
  • Ecuación:

\[Z_0=\frac{\bar{x}-\mu_0}{\frac{\sigma}{\sqrt{n}}}\]

Ejemplo

El ingreso anual promedio de los profesionales de enfermería de un país se distribuye normalmente con una media de $50,000 dólares y una desviación estándar de poblacional de $2,000. El Ministerio de Salud desea saber si sus enfermeros ganan más o menos de $50,000 al año. Se selecciona una muestra de 100 personas, y su ingreso anual promedio resulta $50,350. Si el nivel de significancia es 0.05. ¿A qué conclusión puede llegar? (Fuente)

Respuesta

Antes de responder, podemos graficar la respectiva distribución de probabilidad.

library("ggplot2")

grafico_densidad = ggplot(data = data.frame(x = c(40000, 60000)), aes(x)) +
  stat_function(fun = dnorm, n = 101, args = list(mean =50000, sd = 2000)) + ylab("") +
  scale_y_continuous(breaks = NULL) + xlab("Remuneraciones") + ylab("Densidad") + ggtitle("Función de densidad (distribución normal)") + theme_bw() +
  geom_vline(xintercept = 50350,cex=1.2,colour ="darkred",linetype="longdash") + geom_text(aes(x=52000, label="xbar", y=0.0), colour ="darkred",size=5) + geom_vline(xintercept = 50000,cex=1.2,colour ="coral3",linetype="longdash") + geom_text(aes(x=51000, label="mu", y=0.00001), colour ="coral3",size=5)  

grafico_densidad

Nuestra hipótesis nula, basándose en los datos señalados en el enunciado puede ser especificada como:

\(Ho: \mu_0=50,000\) dólares.

Si aplicamos la normalización para calcular \(z\) bajo una prueba de dos colas, nos queda que:

#Datos
mu=50000
sigma = 2000
x_bar=50350
n=100

#Normalización
z = (x_bar-mu)/(sigma/sqrt(n))

#Confianza
alfa = 0.05
confianza = 1-alfa

z_alfa = qnorm(alfa/2)

El valor de \(z\) es 1.75, mientras que el intervalo de \(z_\alpha\) es [-1.959964, 1.959964]. Esto implica que \(z\) está dentro del intervalo de confianza, por lo que NO podemos rechazar \(H_0\).

Esto también puede ser probado simulando los datos, para luego aplicar la función \(z\)-test de la biblioteca de R BSDA, obteniendo un valor \(p\) mayor a 0.05.

library("BSDA")

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)
print(z)
## 
##  One-sample z-Test
## 
## data:  datos
## z = 0.38451, p-value = 0.7006
## alternative hypothesis: true mean is not equal to 50000
## 95 percent confidence interval:
##  49684.91 50468.89
## sample estimates:
## mean of x 
##   50076.9

Esto puede ser graficado como:

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("Remuneraciones") + 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)

Actividad
Buscar y resolver un ejemplo de uso de la prueba \(z\) con una cola.

2. Prueba para contraste de media, con media poblacional conocida y varianza desconocida.

Resumen

  • Nombre: t-test.
  • Tipo de prueba: paramétrica. Aplica para \(n \leq 30\).
  • Ecuación:

\[t_0=\frac{\bar{x}-\mu_0}{\frac{S}{\sqrt{n}}}\]

Ejemplo

Se dice que el costo promedio de una camiseta es de 168 dólares. Para determinar si esto es verdad, se toma una muestra aleatoria de 25 de ella, resultando en una media muestral de 172,5 dólares y una desviación estándar muestral de 15,4. Pruebe la hipótesis de que el precio de las camisetas es diferente a 168 dólares con \(\alpha = 0.05\). Suponga una distribución normal. (Fuente).

Respuesta

Antes de responder, podemos graficar la respectiva distribución de probabilidad.

library("ggplot2")

grafico_densidad = ggplot(data = data.frame(x = c(100, 300)), aes(x)) +
  stat_function(fun = dt, n = 101, args = list(x =168, df = 24)) + ylab("") +
  scale_y_continuous(breaks = NULL) + xlab("Puntaje") + ylab("Densidad") + ggtitle("Función de densidad (Distribución t)") + theme_bw() +
  geom_vline(xintercept = 172.5,cex=1.2,colour ="darkred",linetype="longdash") + geom_text(aes(x=180, label="xbar", y=0.0), colour ="darkred",size=5) + geom_vline(xintercept = 168,cex=1.2,colour ="coral3",linetype="longdash") + geom_text(aes(x=170, label="mu", y=0.001), colour ="coral3",size=5)  

grafico_densidad

Nuestra hipótesis nula, basándose en los datos señalados en el enunciado puede ser especificada como:

\(Ho: \mu_0=168\) dólares.

Si aplicamos la normalización para calcular \(t\) bajo una prueba de dos colas, nos queda que:

#Datos
mu=168
s = 15.4
x_bar=172.5
n=25

#Normalización
t = (x_bar-mu)/(s/sqrt(n))

#Confianza
alfa = 0.05
confianza = 1-alfa

t_alfa = qt(alfa/2,df = n-1)

El valor de \(t\) es 1.461039, mientras que el intervalo de \(t_\alpha\) es [-2.0638986, 2.0638986]. Esto implica que \(t\) está dentro del intervalo de confianza, por lo que NO podemos rechazar \(H_0\).

Esto también puede ser probado simulando los datos, para luego aplicar la función \(t\)-test de la biblioteca de R base, obteniendo un valor \(p\) mayor a 0.05.

set.seed(10)

#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)
print(t)
## 
##  One Sample t-test
## 
## data:  datos
## t = -0.15836, df = 24, p-value = 0.8755
## alternative hypothesis: true mean is not equal to 168
## 95 percent confidence interval:
##  161.5496 173.5311
## sample estimates:
## mean of x 
##  167.5404

Esto puede ser graficado como:

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("Remuneraciones") + 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)

Actividad
Buscar y resolver un ejemplo de uso de la prueba \(t\) con una cola.

3. Prueba para contraste de varianza

Resumen

  • Nombre: chi-test.
  • Tipo de prueba: no paramétrica.
  • Ecuación:

\[\chi_0=\frac{(n-1)S^2}{\sigma^2}\]

Ejemplo

Una empresa del giro alimenticio desea determinar si el lote de una materia prima tiene o no una varianza poblacional mayor a 15 en su grado de endurecimiento. Se realiza un muestreo de 20 elementos y se obtiene una varianza muestral de 20,98. Realizar la prueba de hipótesis con alfa = 0.05 (Fuente).

Respuesta

Antes de responder, podemos graficar la respectiva distribución de probabilidad.

library("ggplot2")

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

grafico_densidad

Nuestra hipótesis nula, basándose en los datos señalados en el enunciado puede ser especificada como:

\(Ho: \sigma^2 \leq 15\).

Si aplicamos la normalización para calcular \(chi\) bajo una prueba de una cola, nos queda que:

#Datos
sigma2=15
n = 20
s2=20.98


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

#Confianza
alfa = 0.05
confianza = 1-alfa

chi_alfa = qchisq(alfa,df = n-1,lower.tail = F) #Lower.tail se relaciona con <= de la hipótesis nula.

El valor de \(chi\) es 26.5746667, mientras \(chi_\alpha\) es [30.1435272]. Esto implica que \(chi\) está dentro del intervalo de confianza, por lo que NO podemos rechazar \(H_0\).

Esto también puede ser probado simulando los datos, para luego aplicar la función varTest de la biblioteca de R EnvStats, obteniendo un valor \(p\) mayor a 0.05.

library("EnvStats")


#Creación de muestra artificial
set.seed(10)
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 = 15
## 
## Alternative Hypothesis:          True variance is greater than 15
## 
## Test Name:                       Chi-Squared Test on Variance
## 
## Estimated Parameter(s):          variance = 13.42416
## 
## Data:                            datos
## 
## Test Statistic:                  Chi-Squared = 17.00393
## 
## Test Statistic Parameter:        df = 19
## 
## P-value:                         0.5896015
## 
## 95% Confidence Interval:         LCL = 8.461484
##                                  UCL =      Inf

Actividad
Buscar y resolver un ejemplo de uso de la prueba chi para varianza con dos colas.