2 votos

¿Por qué se desplaza ligeramente el intervalo de confianza de la prueba t de R con respecto a la hipótesis alternativa?

Así que he notado algo extremadamente confuso sobre t.test, que es que el intervalo de confianza que proporciona con respecto a una hipótesis alternativa de dos lados parece ser inconsistente con lo que proporciona para una prueba unilateral, mi propia función CI & CONFIDENCE() de Excel (que son consistentes entre sí). Además, parece ser inconsistente con mi propia función de prueba z de dos colas, ¡y todas estas inconsistencias son bastante pequeñas (pero mayores que el error de punto flotante)!

Aquí está mi ejemplo: t.test---

sample = c(38, 30, 41, 28, 31)
t.test(sample) # CI = 26.65334, 40.54666

t.test(sample, alternative = 'less') # CI = -Inf, 38.93388
t.test(sample, alternative = 'greater') # CI = 28.26612,  Inf`

Mi propio CI---

# testeado 10/5/19
# xbar = media de la muestra, s = sigma de la muestra, n = tamaño de la muestra
mean_conf_interval <- function(xbar, s, n, conf_lvl=0.95) {
  z_a2 <- qnorm((1-conf_lvl)/2, lower.tail=F)
  err_margin <- z_a2*s/sqrt(n)
  return(c(xbar-err_margin, xbar+err_margin))
}

mean_conf_interval(mean(sample),sd(sample),length(sample))
# CI = 28.26612,  38.93388

Excel--- (traducción aproximada a seudocódigo)

E276:E280 = 38, 30, 41, 28, 31 # misma muestra que antes
B277 = CONFIDENCE(0.05,  STDEV(E276:E280), COUNT(E276:E280)) # margen de error
B278=AVERAGE(E276:E280) # xbar
# CI = B278-B277, B278+B277 = 28.69617167,  38.50382833

Por razones de brevedad, no entraré en comparación con mi propia función de prueba z de dos colas a menos que sea necesario. ¿Pero qué está pasando? Esto es tan extraño que realmente parece ser un error...

4voto

Dave Puntos 76

Estás utilizando la distribución normal estándar para calcular el cuantil 0.975 como 1.96. Deberías estar utilizando la distribución $t_{n-1}$, la cual dará un valor algo más grande que 1.96.

Prueba z_a2 <- qt((1-conf_lvl)/2,n-1,lower.tail=F) en tu función y mira qué obtienes.

Editar: He ejecutado el siguiente código, obteniendo el mismo intervalo de confianza que tengo en mi comentario.

mean_conf_interval <- function(xbar, s, n, conf_lvl=0.95) {
  z_a2 <- qnorm((1-conf_lvl)/2, lower.tail=F)
  err_margin <- z_a2*s/sqrt(n)
  return(c(xbar-err_margin, xbar+err_margin))
}

sample <- c(38, 30, 41, 28, 31)
xbar <- mean(sample)
s <- sd(sample)
n <- length(sample)
mean_conf_interval(xbar,s,n)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X