Para la realizacion de esta prueba se necesita utilizar una prueba parametrica llamada z-test, la cual posee la siguiente ecuación:
\[ Z_0 = \frac{\overline{x} - \mu_0}{\frac{\sigma}{\sqrt{n}}} \]
Esto se puede aplicar a un ejemplo como el siguiente:
Una embotelladora de refrescos dice que sus latas de refresco tienen una cantidad de refresco de media 33cl y desviación tipica 2cl.
Se han tomado 50 latas de refresco y se ha calculado que el contenido medio por lata es de 32.5cl. ¿Es cierta la información del fabricante con un nivel de significancia de 0.01? o ¿nos está dando menos cantidad de producto de la que nos dice?
Podemos graficar la distribucion de probabilidad respectiva de la siguiente manera:
library("ggplot2")
grafico_densidad = ggplot(data = data.frame(x = c(25, 40)), aes(x)) +
stat_function(fun = dnorm, n = 51, args = list(mean =33, sd = 2)) + ylab("") +
scale_y_continuous(breaks = NULL) + xlab("Contenido") + ylab("Densidad") + ggtitle("Función de densidad (distribución normal)") + theme_bw() +
geom_vline(xintercept = 32.5,cex=1.2,colour ="darkred",linetype="longdash") + geom_text(aes(x=32, label="xbar", y=0.0), colour ="darkred",size=5) + geom_vline(xintercept = 33,cex=1.2,colour ="coral3",linetype="longdash") + geom_text(aes(x=33.5, label="mu", y=0.00001), colour ="coral3",size=5)
grafico_densidad
Entonces, consideraremos la siguiente hipotesis nula:
\[H_0 : \mu_0 = 33 cl\]
Entonces, aplicando normalizacion para calcular z bajo una prueba de 1 cola, se tiene que:
#Datos
mu=33
sigma = 2
x_bar=32.5
n=50
#Normalización
z = (x_bar-mu)/(sigma/sqrt(n))
#Confianza
alfa = 0.01
confianza = 1-alfa
z_alfa = qnorm(alfa)
c(z,z_alfa)
## [1] -1.767767 -2.326348
Donde podemos ver que nuestro z esta por sobre el punto critico y, por lo tanto, se acepta la hipotesis nula
De igual manera se puede probar esto con el z-test incluido en la libreria BSDA
library("BSDA")
## Loading required package: lattice
##
## Attaching package: 'BSDA'
## The following object is masked from 'package:datasets':
##
## Orange
set.seed(3)
#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 = -2.2198, p-value = 0.02643
## alternative hypothesis: true mean is not equal to 33
## 99 percent confidence interval:
## 31.64360 33.10071
## sample estimates:
## mean of x
## 32.37216
Y podemos graficar esto así:
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("Contenido") + 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)
Para la realizacion de esta prueba se necesita utilizar una prueba parametrica llamada t-test, la cual posee la siguiente ecuación:
\[ t_0 = \frac{\overline{x} - \mu_0}{\frac{S}{\sqrt{n}}} \]
Esto se puede aplicar a un ejemplo como el siguiente:
Para que un auto funcion bien debe utilizar gasolina que tenga un octanaje de al menos 82 Octanos, se tomaron 47 muestras de distintos lotes producidos en una refineria, obteniendo una media de 78.58 y una desviaciñon estandar de 4.273 Con el nivel de confianza del 90% ¿se puede decir que la gasolina producida en esta plantaes apta para el uso en automóviles?
Antes de responder, podemos graficar la respectiva distribución de probabilidad.
library(ggplot2)
grafico_densidad = ggplot(data = data.frame(x = c(60, 110)), aes(x)) +
stat_function(fun = dt, n = 101, args = list(x =82, df = 46)) + ylab("") +
scale_y_continuous(breaks = NULL) + xlab("Octanaje") + ylab("Densidad") + ggtitle("Función de densidad (Distribución t)") + theme_bw() +
geom_vline(xintercept = 78.58,cex=1.2,colour ="darkred",linetype="longdash") + geom_text(aes(x=77, label="xbar", y=0.0), colour ="darkred",size=5) + geom_vline(xintercept = 82,cex=1.2,colour ="coral3",linetype="longdash") + geom_text(aes(x=83.5, 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:
\[H_0 : \mu_0 = 82\] Si aplicamos la normalización para calcular t bajo una prueba de dos colas, nos queda que:
#Datos
mu=82
s = 4.273
x_bar=78.58
n=47
#Normalización
t = (x_bar-mu)/(s/sqrt(n))
#Confianza
alfa = 0.05
confianza = 1-alfa
t_alfa = qt(alfa,df = n-1)
c(t,t_alfa)
## [1] -5.487091 -1.678660
Donde podemos ver que t esta fuera del intervalo de confianza, por lo tanto la hipotesis nula es FALSA
Esto también puede ser probado simulando los datos y aplicando la funcion t-test en R
set.seed(7)
#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 = -3.8484, df = 46, p-value = 0.0001825
## alternative hypothesis: true mean is less than 82
## 95 percent confidence interval:
## -Inf 80.60041
## sample estimates:
## mean of x
## 79.51758
Siendo posible de graficar de la siguiente manera:
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)
Para la realizacion de esta prueba se necesita utilizar una prueba parametrica llamada t-test, la cual posee la siguiente ecuación:
\[ X_0=\frac{(n-1)S^2}{\sigma^2} \]
Esto se puede aplicar a un ejemplo con los siguientes datos:
\[ H_0 = varianza\space es\space 8.5 \\ H_a = varianza\space no\space es\space 8.5\\ \alpha = 0.1\\ n = 22\\ S^2 = 17 \] Fuente
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 =8.5, df = 21)) + ylab("") +
scale_y_continuous(breaks = NULL) + xlab("Puntaje") + ylab("Densidad") + ggtitle("Función de densidad") + theme_bw() +
geom_vline(xintercept = 17,cex=1.2,colour ="darkred") + geom_text(aes(x=18, label="S^2", y=0.0005), colour ="darkred",size=5)
grafico_densidad
Entonces, con la hipotesis nula ya entregada, probamos con chi cuadrado:
#Datos
sigma2= 8.5
n = 22
s2= 17
#Normalización
chi = (n-1)*s2/(sigma2)
#Confianza
alfa = 0.05
confianza = 1-alfa
chi_alfa_low = qchisq(alfa/2,df = n-1)
chi_alfa_up = qchisq(alfa/2,df = n-1,lower.tail = F)
c(chi,chi_alfa_low,chi_alfa_up)
## [1] 42.00000 10.28290 35.47888
Como el valor de chi esta fuera del rango de aceptacion, la hipotesis nula es rechazada.
Esto también puede ser probado simulando los datos y aplicando la funcion varTest en R
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
#Creación de muestra artificial
set.seed(10)
datos=rnorm(22,sqrt(s2),n=n)
#Aplicación de test
chi = varTest(datos,sigma.squared=sigma2,alternative="two.sided",conf.level = 0.9)
print(chi)
##
## Results of Hypothesis Test
## --------------------------
##
## Null Hypothesis: variance = 8.5
##
## Alternative Hypothesis: True variance is not equal to 8.5
##
## Test Name: Chi-Squared Test on Variance
##
## Estimated Parameter(s): variance = 13.46816
##
## Data: datos
##
## Test Statistic: Chi-Squared = 33.27427
##
## Test Statistic Parameter: df = 21
##
## P-value: 0.08652596
##
## 90% Confidence Interval: LCL = 8.657065
## UCL = 24.400297
Para proporcion binomial poseemos la siguiente formula:
\[ Z_p = \frac{P - P_0} {\sqrt{\frac{P_0(1-P_0)}{n}}} \]
El caso es el siguiente:
El director de una universidad nueva afirma que solamente el 18% de los estudiantes no estan de acuerdo con su actual gestión. En una encuesta aplicada a los estudiantes 90 de 450 manifestaron estar en desacuerdo. ¿Se podria afirmar con una sifnificación del 5% que la proporción en desacuerdo es mayor al 18%?
Definimos nuestra Hipotesis nula como:
\[H_0: P_0 = 0,18 \\ H_1 : P_0 > 0.18\]
Entonces aplicamos test de proporcion binomial para los datos:
x = 90
n = 450
p = x/n
p_0 = 0.18
alfa = 0.05
confianza = 1-alfa
prop.test(x,n,p=p_0, alt="greater", conf.level = confianza, correct = FALSE)
##
## 1-sample proportions test without continuity correction
##
## data: x out of n, null probability p_0
## X-squared = 1.2195, df = 1, p-value = 0.1347
## alternative hypothesis: true p is greater than 0.18
## 95 percent confidence interval:
## 0.1708181 1.0000000
## sample estimates:
## p
## 0.2
Por lo tanto se acepta la Hipotesis Nula, ya que el valor estimado esta dentro del intervalo de confianza
Se utilizara la prueba del signo para el siguiente caso:
En un estudio se pretende conocer si un tratamiento produce efectos positivos en los niveles de burnout de un grupo de trabajadores. Primero, se administró una escala de burnout a trabajadores, se seleccionaron los que tenian un elevado nivel de nurnout, posteriormente, se les hizo ingresar a un centro de técnicas de relajación y finalmente se les administro, de nuevo, la escala de burnout. Los resultados de entre 10 personas que se les realizo el test, 8 tuvieron una mejora en su nivel de burnout. ¿Podemos rechazar que el tratamiento no produce efectos en los niveles de burnout de los trabajadores con un 95% de confianza?
Entonces nuestra hipotesis nula consiste en:
\[H_0 : El\space tratamiento\space no\space produce\space efectos\space en\space los\space niveles\space de\space burnout\space de\space los\space trabajadores\]
Entonces, aplicando la herramienta de R:
binom.test(8,10)
##
## Exact binomial test
##
## data: 8 and 10
## number of successes = 8, number of trials = 10, p-value = 0.1094
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.4439045 0.9747893
## sample estimates:
## probability of success
## 0.8
Por lo tanto, NO podemos rechazar la hipotesis nula
Se tiene la siguiente lista de datos:
## Personas Altura
## 1 Pedro 1.70
## 2 Juan 1.76
## 3 Diego 1.73
## 4 Nicolas 1.68
## 5 Elena 1.64
## 6 Alejandra 1.69
## 7 Gaspar 1.67
## 8 Jhon 1.72
## 9 Ivania 1.71
## 10 Alex 1.75
y queremos saber si la mediana de la altura es igual a 1.70 m con un nivel de significancia de 0.1.
Entonces aplicamos test de wilcoxon en R:
wilcox.test(data$Altura, mu = 1.70, conf.int = 0.90)
## Warning in wilcox.test.default(data$Altura, mu = 1.7, conf.int = 0.9): cannot
## compute exact p-value with ties
## Warning in wilcox.test.default(data$Altura, mu = 1.7, conf.int = 0.9): cannot
## compute exact confidence interval with ties
## Warning in wilcox.test.default(data$Altura, mu = 1.7, conf.int = 0.9): cannot
## compute exact p-value with zeroes
## Warning in wilcox.test.default(data$Altura, mu = 1.7, conf.int = 0.9): cannot
## compute exact confidence interval with zeroes
##
## Wilcoxon signed rank test with continuity correction
##
## data: data$Altura
## V = 26, p-value = 0.7213
## alternative hypothesis: true location is not equal to 1.7
## 95 percent confidence interval:
## 1.674974 1.739981
## sample estimates:
## (pseudo)median
## 1.705004
Donde el valor de la mediana esta dentro del rango de confianza, por lo tanto se acepta la hipotesis nula.