library(samplingbook)
library(BSDA)
library(EnvStats)Ejercicios resueltos: Intervalos de confianza y pruebas de hipótesis
Librerías
Aquí se enlistan todas las librerías que se van a utilizar durante la resolución de estos ejercicios.
Recuerde que, de no tenerlos instalado, debe hacerlo.
Pruebas de hipótesis e intervalos de confianza
Para medias
Ejemplo 01
ej01 <- c(263.159, 309.995, 237.145, 270.551, 306.858, 279.408, 295.008,
326.719, 305.023, 295.736, 292.73, 243.248, 303.176, 294.263,
290.109, 279.716, 239.869, 282.608, 315.649, 259.649, 223.975,
333.141, 261.072, 312.211, 296.722)
BSDA::z.test(x = ej01,
mu = 275, #Ho
conf.level = 0.95,
alternative = "two.sided", # bilateral
sigma.x = 30) # var conocida
One-sample z-Test
data: ej01
z = 1.6183, p-value = 0.1056
alternative hypothesis: true mean is not equal to 275
95 percent confidence interval:
272.9498 296.4694
sample estimates:
mean of x
284.7096
Ejemplo 02
t.test(x = ej01,
mu = 275,
conf.level = 0.95,
alternative = "two.sided")
One Sample t-test
data: ej01
t = 1.6879, df = 24, p-value = 0.1044
alternative hypothesis: true mean is not equal to 275
95 percent confidence interval:
272.8372 296.5820
sample estimates:
mean of x
284.7096
Ejemplo 03
ej03 <- c(43047.902, 43003.054, 44033.682, 44617.979, 40341.941,
39706.334, 41643.008, 41265.756, 43216.151, 39004.942,
41384.962, 41210.716, 40236.298, 40703.158, 39773.312,
41100.646)
t.test(x = ej03,
mu = 45000,
conf.level = 0.95,
alternative = "greater") # greater = inferior, less = superior
One Sample t-test
data: ej03
t = -8.5219, df = 15, p-value = 1
alternative hypothesis: true mean is greater than 45000
95 percent confidence interval:
40801.85 Inf
sample estimates:
mean of x
41518.12
Ejemplo 04
ej04_M1 <- c(103.371, 110.136, 102.679, 102.387, 107.033,
100.321, 109.539, 105.526, 102.164, 102.284)
ej04_M2 <- c(98.358, 103.286, 101.273, 97.24, 102.727,
102.3, 100.342, 100.88, 104.718, 106.056)
t.test(x = ej04_M1,
y = ej04_M2,
mu = 0,
var.equal = TRUE, # Varianzas iguales
conf.level = 0.95,
alternative = "two.sided")
Two Sample t-test
data: ej04_M1 and ej04_M2
t = 2.073, df = 18, p-value = 0.05281
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.03809325 5.69009325
sample estimates:
mean of x mean of y
104.544 101.718
Ejemplo 05
ej05_G1 <- c(5.139, 2.445, 6.3, 5.946, 6.057,
6.016, 4.95, 9.761, 3.041, 2.881)
ej05_G2 <- c(5.067, 4.51, 5.457, 4.373, 5.723,
5.535, 5.091, 4.958, 5.651, 5.256,
5.449, 5.416, 5.654)
t.test(x = ej05_G1,
y = ej05_G2,
mu = 0,
var.equal = FALSE, # Varianzas diferentes
conf.level = 0.90,
alternative = "two.sided")
Welch Two Sample t-test
data: ej05_G1 and ej05_G2
t = 0.017469, df = 9.5501, p-value = 0.9864
alternative hypothesis: true difference in means is not equal to 0
90 percent confidence interval:
-1.245357 1.269480
sample estimates:
mean of x mean of y
5.253600 5.241538
Ejemplo 06
ej06_A <- c(6.869, 4.569, 5.281, 6.927, 8.349, 7.352, 5.265,
4.654, 5.506, 5.844, 6.809, 7.659, 4.268, 7.573,
5.241, 7.849, 8.276, 6.2, 5.782, 6.616, 6.919,
7.508, 4.994, 5.68, 7.922)
ej06_B <- c(4.431, 3.722, 3.127, 1.176, 1.525, 3.004, 3.864,
4.336, 3.293, 3.193, 4.277, 1.476, 1.8, 3.409,
3.916, 2.709, 0.97, 3.649, 4.113, 4.548, 1.28,
1.211, 2.189, 0.778, 4.42)
ej06_dif <- ej06_A - ej06_B
# Usando pruebas pareadas
t.test(x = ej06_A,
y = ej06_B,
mu = 0,
conf.level = 0.99,
paired = TRUE)
Paired t-test
data: ej06_A and ej06_B
t = 8.7306, df = 24, p-value = 6.495e-09
alternative hypothesis: true mean difference is not equal to 0
99 percent confidence interval:
2.378623 4.621057
sample estimates:
mean difference
3.49984
# Usando la diferencia entre muestras
t.test(x = ej06_dif,
mu = 0,
conf.level = 0.99)
One Sample t-test
data: ej06_dif
t = 8.7306, df = 24, p-value = 6.495e-09
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
2.378623 4.621057
sample estimates:
mean of x
3.49984
Para proporciones
Ejemplo 07
ej07 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1,
0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
intentos <- sum(ej07)
intentos[1] 13
prop.test(x = 13, # success / éxitos
n = 75, # trials / intentos
p = 0.10, # probabilidad de éxito
conf.level = 0.95,
alternative = "two.sided")
1-sample proportions test with continuity correction
data: 13 out of 75, null probability 0.1
X-squared = 3.7037, df = 1, p-value = 0.05429
alternative hypothesis: true p is not equal to 0.1
95 percent confidence interval:
0.09905701 0.28181656
sample estimates:
p
0.1733333
Ejemplo 08
prop.test(x = c(82, 47), # éxitos para cada par 1, 2
n = c(120, 90), # intentos para cada par 1,2
p = NULL, # es null, porque lo que interesa es contrastar si son ='s
conf.level = 0.95,
alternative = "two.sided",
correct = FALSE)
2-sample test for equality of proportions without continuity correction
data: c(82, 47) out of c(120, 90)
X-squared = 5.634, df = 1, p-value = 0.01762
alternative hypothesis: two.sided
95 percent confidence interval:
0.0285339 0.2936883
sample estimates:
prop 1 prop 2
0.6833333 0.5222222
Para varianzas
Ejemplo 09
ej09 <- c(355.622, 355.238, 355.438, 355.09, 355.303, 354.455,
354.641, 355.370, 354.932, 354.616, 354.05, 354.762,
354.112, 356.055, 354.849, 355.657, 354.778, 355.054,
354.789, 355.528)
EnvStats::varTest(x = ej09,
conf.level = 0.95,
sigma.squared = 0.5,
alternative = "less")$statistic
Chi-Squared
10.27018
$parameters
df
19
$p.value
[1] 0.05403688
$estimate
variance
0.2702678
$null.value
variance
0.5
$alternative
[1] "less"
$method
[1] "Chi-Squared Test on Variance"
$data.name
[1] "ej09"
$conf.int
LCL UCL
0.0000000 0.5075697
attr(,"conf.level")
[1] 0.95
attr(,"class")
[1] "htestEnvStats"
Ejemplo 10
var.test(x = ej04_M1,
y = ej04_M2,
ratio = 1, #Ho
conf.level = 0.95,
alternative = "two.sided")
F test to compare two variances
data: ej04_M1 and ej04_M2
F = 1.5432, num df = 9, denom df = 9, p-value = 0.5283
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.3832982 6.2127382
sample estimates:
ratio of variances
1.543156
Ejemplo 11
var.test(x = ej05_G1,
y = ej05_G2,
ratio = 1, #Ho
conf.level = 0.95,
alternative = "two.sided")
F test to compare two variances
data: ej05_G1 and ej05_G2
F = 25.247, num df = 9, denom df = 12, p-value = 3.698e-06
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
7.348192 97.661935
sample estimates:
ratio of variances
25.24725
Tamaño de muestra para estimación por intervalos
Ejemplo 12
- Para población infinita
samplingbook::sample.size.mean(e = 3, # precisión
S = 5.6, # desviación de la población
N = Inf, # población infinita
level = 0.95)
sample.size.mean object: Sample size for mean estimate
Without finite population correction: N=Inf, precision e=3 and standard deviation S=5.6
Sample size needed: 14
- Para población finita
samplingbook::sample.size.mean(e = 3, # precisión
S = 5.6, # desviación de la población
N = 50, # población finita
level = 0.95)
sample.size.mean object: Sample size for mean estimate
With finite population correction: N=50, precision e=3 and standard deviation S=5.6
Sample size needed: 11
Ejemplo 13
- Para población infinita
samplingbook::sample.size.prop(e = 0.08,
P = 0.5, # proporción esperada
N = Inf,
level = 0.95)
sample.size.prop object: Sample size for proportion estimate
Without finite population correction: N=Inf, precision e=0.08 and expected proportion P=0.5
Sample size needed: 151
- Para población finita
samplingbook::sample.size.prop(e = 0.08,
P = 0.5, # proporción esperada
N = 350,
level = 0.95)
sample.size.prop object: Sample size for proportion estimate
With finite population correction: N=350, precision e=0.08 and expected proportion P=0.5
Sample size needed: 106
Potencia estadística
Para el primer ejemplo desarrollado en clase sobre este tema, se puede obtener de esta manera, con R Base.
Recuerde redondear hacia arriba
power.t.test(n = NULL, # ausente, se va a estimar
delta = 0.01, # tamaño del efecto
sd = 0.0035,
power = 0.85, # potencia
sig.level = 0.01, # alpha
type = "two.sample", # tipo de t.test
alternative = "two.sided") # tipo de H1
Two-sample t test power calculation
n = 5.105705
delta = 0.01
sd = 0.0035
sig.level = 0.01
power = 0.85
alternative = two.sided
NOTE: n is number in *each* group
Se requieren 6 muestras para cada instrumento de medición, es decir, 12 en total.
A continuación se muestra un forma de obtener el tamaño de muestra vía potencia estadística para cada una de las pruebas de hipótesis que se estudian en el curso.
Todos los casos desarrollados son hipotéticos, no están ligados a un ejemplo o contexto.
Para una media
power.t.test(n = NULL, # ausente, se va a estimar
delta = 0.01, # tamaño del efecto
sd = 0.0035,
power = 0.85, # potencia
sig.level = 0.01, # alpha
type = "one.sample", # tipo de t.test
alternative = "two.sided") # tipo de H1
One-sample t test power calculation
n = 4.931848
delta = 0.01
sd = 0.0035
sig.level = 0.01
power = 0.85
alternative = two.sided
Para dos medias
power.t.test(n = NULL, # ausente, se va a estimar
delta = 0.01, # tamaño del efecto
sd = 0.0035,
power = 0.85, # potencia
sig.level = 0.01, # alpha
type = "two.sample", # tipo de t.test
alternative = "two.sided") # tipo de H1
Two-sample t test power calculation
n = 5.105705
delta = 0.01
sd = 0.0035
sig.level = 0.01
power = 0.85
alternative = two.sided
NOTE: n is number in *each* group
Para una proporción
power.prop.test(n = NULL,
p1 = 0.6, # Expected proportion
p2 = 0.5, # Null hypothesis proportion
power = 0.8, # Desired power
sig.level = 0.05, # Significance level
alternative = "two.sided")
Two-sample comparison of proportions power calculation
n = 387.3385
p1 = 0.6
p2 = 0.5
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number in *each* group
Aunque power.prop.test() se diseñó principalmente para comparar dos proporciones, puedes simular una prueba de una proporción comparando una proporción esperada (p1) contra una proporción de referencia (p2) como si fueran dos “grupos”, donde uno representa la hipótesis nula.
Tome en cuenta que el resultado obtenido es para UNA proporción. Solo hay un grupo.
Para dos proporciones
power.prop.test(n = NULL,
p1 = 0.4, # Proportion in group 1
p2 = 0.6, # Proportion in group 2
power = 0.8, # Desired power
sig.level = 0.05, # Alpha level
alternative = "two.sided")
Two-sample comparison of proportions power calculation
n = 96.92364
p1 = 0.4
p2 = 0.6
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is number in *each* group