Ejercicios resueltos: Intervalos de confianza y pruebas de hipótesis

Fecha de publicación

28 de agosto de 2026

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.

library(samplingbook)
library(BSDA)
library(EnvStats)

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