Estoy intentando reproducir cómo funciona una prueba t utilizando el ejemplo de la página 211 de The Art Of Computer System Performance Analysis de Raj Jain.
El cálculo es el siguiente:
# system A sample and statistics
a <- c(5.36, 16.57, 0.62, 1.41, 0.64, 7.26)
x_a <- mean(a)
s2_a <- var(a)
n_a <- length(a)
# system B sample and statistics
b <- c(19.12, 3.52, 3.38, 2.5, 3.6, 1.74)
x_b <- mean(b)
s2_b <- var(b)
n_b <- length(b)
# computation of t-test
s <- (s2_a/n_a + s2_b/n_b)^(1/2)
v <- ((s2_a/n_a + s2_b/n_b)^2)/((1/(n_a - 1))*((s2_a/n_a)^2) + (1/(n_b - 1))*((s2_b/n_b)^2)) - 2
# 90% confidence interval
(x_a - x_b) + c(1, -1) * qt(c(0.95), v) * s
El resultado del último cálculo es (6,55, -7,22), que coincide con el resultado dado en el libro (ver erratas aquí: https://www.cse.wustl.edu/~jain/libros/ftp/errores_todos.pdf ).
Sin embargo, la prueba t incorporada da un resultado diferente:
> t.test(a, b, conf.level = 0.9)
Welch Two Sample t-test
data: a and b
t = -0.09015, df = 9.9434, p-value = 0.93
alternative hypothesis: true difference in means is not equal to 0
90 percent confidence interval:
-7.038828 6.372161
sample estimates:
mean of x mean of y
5.310000 5.643333
La función incorporada da un intervalo de confianza de (-7,04, 6,37). No consigo reproducir este intervalo. ¿Cuál es la causa de la diferencia? ¿Mi cálculo es erróneo?
Actualización : El resultado diferente se debe a un valor distinto de $v$ que indica los grados de libertad. Como señala Ben Bolker, R utiliza 9,94 mientras que el cálculo manual del libro utiliza $9.94 - 2 = 7.94$ de él. El libro no dice por qué resta 2. Sólo asume que las observaciones son independientes y no apareadas, pero no dice nada sobre la varianza.
La respuesta de Neeraj reproduce el cálculo de los grados de libertad que se da en el artículo de Wikipedia al Prueba t de Welch .
1 votos
No he profundizado en los cálculos, pero R da df=9,94 mientras que tu cálculo manual da df=7,94.
deparse(body(stats:::t.test.default))[73:77]
le mostrará los cálculos df internos de R ...