suppressMessages(library("BSDA"))
library("ggplot2")
suppressMessages(library("EnvStats"))
Un científico desea saber si su nuevo medicamento afecta en los niveles de IQ de sus pacientes, para esto, llega a un acuerdo con 20 pacientes para experimentación de este medicamento, esto se llevará a cabo a lo largo de un mes, registrando sus niveles de IQ al final del mes. Tras la experimentacion se logra observar que el IQ de sus pacientes en promedio resulta de 102. Se debe tener en cuenta que el IQ de la población corresponde a una distribución normal con una media de 100 y una desviación estándar de 15 y que el nivel de significancia es de 0.05 (Fuente)
# Datos
mu = 100
sigma = 15
x_bar = 102
n = 20
# Normalización
z = (x_bar-mu)/(sigma/sqrt(n))
# Confianza
alfa = 0.05
confianza = 1 - alfa
# Ya que se busca probar que hubo un cambio solamente positivo en el IQ de los pacientes, se calcula con una sola cola
z_alfa = qnorm(alfa)
cat("El valor de z corresponde a:", z)
## El valor de z corresponde a: 0.5962848
cat("\nEl valor de z_alfa corresponde a:", z_alfa)
##
## El valor de z_alfa corresponde a: -1.644854
Teniendo en cuenta que el valor de Z es 0.5962848 y el valor de \(Z_{\alpha}\) es -1.644854. Se puede observar que z está dentro del intervalo de confianza y por lo tanto se acepta la hipótesis nula.
Utilizando la librería BSDA se tiene que
set.seed(123)
datos = rnorm(n, x_bar, sigma)
z = z.test(x = datos, mu = mu, sigma.x = sigma, conf.level = confianza)
print(z)
##
## One-sample z-Test
##
## data: datos
## z = 1.2296, p-value = 0.2188
## alternative hypothesis: true mean is not equal to 100
## 95 percent confidence interval:
## 97.55044 110.69828
## sample estimates:
## mean of x
## 104.1244
Es decir, con un p-value de 0.2188 obtenido a través del z-test, el cual es mayor al nivel de confianza de 0.05, se mantiene la aceptación de la hipótesis nula.
Se tiene una fábrica de galletas. Cada galleta debe contener 10 gramos de azúcar. Las galletas son producidas por una máquina que añade azúcar en un recipiente antes de mezclar todo. Tienes la sospecha de que la máquina realmente no está añadiendo 10 gramos de azúcar por cada galleta y que está añadiendo cantidades erroneas. Si tu sospecha es correcta, la máquina necesita ser reparada, y para probar esto, has registrado el nivel de azúcar de treinta galletas y obtuviste una media de 9.98. Ten en cuenta una distribución normal con una media de 9.99 y una desviación estándar de 0.04 (Fuente)
# Datos
mu = 10
sigma = 0.04
x_bar = 9.98
n = 30
# Normalización
t = (x_bar - mu)/(sigma/sqrt(n))
# Confianza
alfa = 0.05
confianza = 1 - alfa
# Se calcula una sola cola, ya que se desea probar si la media de azúcar en galletas es estrictamente mayor a la que debería
t_alfa = qt(alfa, df = n - 1)
t_alfa
## [1] -1.699127
t
## [1] -2.738613
Teniendo en cuenta que el valor de t es -2.738613 y el valor de \(t_{\alpha}\) es -1.699127. Se puede observar que NO está dentro del intervalo de confianza, y por lo tanto no se puede aceptar la hipótesis nula, es decir, que la máquina encargada del azúcar en las galletas no está funcionando erróneamente y no necesitará reparación.
Utilizando la librería BSDA se tiene que
set.seed(154)
datos = rnorm(n, x_bar, sigma)
t = t.test(x=datos, mu = mu, conf.level = confianza)
t
##
## One Sample t-test
##
## data: datos
## t = -2.4785, df = 29, p-value = 0.01926
## alternative hypothesis: true mean is not equal to 10
## 95 percent confidence interval:
## 9.966722 9.996813
## sample estimates:
## mean of x
## 9.981767
Se puede observar que el p-value obtenido a través del test es de 0.01926, el cual es menor al nivel de confianza de 0.05, y por ende se rechaza la hipótesis nula.
Se tiene bajo un estudio a pacientes que son sujetos del consumo de una droga, se quiere saber si aquellos pacientes en los cuales se espera que la varianza de efectividad de la droga en los pacientes sea de 7. Se consigue entonces una muestra aleatoria de 32 pacientes, y tras calcular la varianza de la muestra, se obtiene que esta es 5.4. (Fuente)
# Datos
sigma2 = 7
n = 32
s2 = 5.4
# Normalización
chi = (n-1)*s2/(sigma2)
# Confianza
alfa = 0.05
confianza = 1 - alfa
chi_alfa = qchisq(alfa/2, df = n - 1)
chi
## [1] 23.91429
chi_alfa
## [1] 17.53874
El valor de chi es de 23.91429, mientras que \(chi_{\alpha}\) es [17.53874]. Esto implica que chi NO está dentro del intervalo de confianza, por lo que se rechaza la hipótesis nula.
Utilizando la librería EnvStats se tiene lo siguiente
set.seed(653)
datos = rnorm(32, sqrt(s2), n = n)
# Aplicación
chi = varTest(datos, sigma.squared = sigma2, alternative = "two.sided")
print(chi)
##
## Results of Hypothesis Test
## --------------------------
##
## Null Hypothesis: variance = 7
##
## Alternative Hypothesis: True variance is not equal to 7
##
## Test Name: Chi-Squared Test on Variance
##
## Estimated Parameter(s): variance = 5.575379
##
## Data: datos
##
## Test Statistic: Chi-Squared = 24.69097
##
## Test Statistic Parameter: df = 31
##
## P-value: 0.4372642
##
## 95% Confidence Interval: LCL = 3.583454
## UCL = 9.854572
Se puede observar de los resultados del test que el p-value es mayor a 0.05, por ende se acepta la hipótesis alternativa, también se puede observar de los resultados que se estima un parámetro de varianza distinto al esperado.
Utilizando la información del dataset iris, supondremos que las proporciones esperadas corresponden a 2/5, 3/10 y 3/10
data("iris")
set.seed(241)
# Función que calcula las ocurrencias de distintos elementos
calculateOcurrences <- function(data){
tabulate(match(data, unique(data)))
}
# Se obtienen las frecuencias de una muestra aleatoria
frecuencias = calculateOcurrences(sample(iris$Species, 90))
# Deben sumar 1
proporciones_esperadas = c(2/5, 3/10, 3/10)
test = chisq.test(frecuencias, proporciones_esperadas)
## Warning in chisq.test(frecuencias, proporciones_esperadas): Chi-squared
## approximation may be incorrect
print(test)
##
## Pearson's Chi-squared test
##
## data: frecuencias and proporciones_esperadas
## X-squared = 3, df = 2, p-value = 0.2231
Con un p-value mayor a 0.05, podemos aceptar la hipótesis nula la cúal nos indica que las proporciones son correctas.
Un jugador de cartas A ganó 17 juegos de 25 mientras un jugador B ganó 8 de 20 ¿Existe una diferencia significativa entre ambas proporciones?
victorias = c(17, 8)
juegostotales = c(25, 20)
test = prop.test(victorias, juegostotales, correct = FALSE, conf.level = 0.95)
print(test)
##
## 2-sample test for equality of proportions without continuity
## correction
##
## data: victorias out of juegostotales
## X-squared = 3.528, df = 1, p-value = 0.06034
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## -0.002016956 0.562016956
## sample estimates:
## prop 1 prop 2
## 0.68 0.40
Dado que el p-value es mayor a 0.05, podemos decir que aceptamos la hipótesis nula, pero se debe tener en cuenta que el p-value también nos indica que esta diferencia no es significativa.
Se tiene un nuevo chocolate el cuál se desea comparar con el producto actual, para esto, se hace reune a un grupo de personas que probarán ambos productos y dirán su veredicto al respeto. En esta prueba 6 de los participantes afirman preferir el nuevo chocolate y el resto prefiere el antiguo ¿Son los dos productos igualmente populares?. Se debe considerar que la cantidad de participantes fue de 20. (Fuente)
test = binom.test(5, 18)
print(test)
##
## Exact binomial test
##
## data: 5 and 18
## number of successes = 5, number of trials = 18, p-value = 0.09625
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.09694921 0.53480197
## sample estimates:
## probability of success
## 0.2777778
Con un nivel de significancia del 95%, podemos rechazar la hipótesis nula, la cuál indica de que ambos productos son igualmente populares.
Se tiene la medición de peso para 10 especies animales, se desea saber si la media del peso de estos animales difiere de 25g. (Fuente)
set.seed(964)
# Se crean los datos
datos = data.frame(id = c(1:10), peso = round(rnorm(10, 20, 2), 1))
test = wilcox.test(datos$peso, mu = 25)
## Warning in wilcox.test.default(datos$peso, mu = 25): cannot compute exact p-
## value with ties
print(test)
##
## Wilcoxon signed rank test with continuity correction
##
## data: datos$peso
## V = 0, p-value = 0.005889
## alternative hypothesis: true location is not equal to 25
Con un nivel de significancia del 95%, podemos rechazar la hipótesis nula y aceptar la hipótesis alternativa, dándonos a entender que la media de los pesos difiere de 25.