Estoy escribiendo un código (JavaScript) para comparar los resultados de las pruebas de referencia. Estoy usando el Prueba T de Welch porque lo más probable es que la varianza y/o el tamaño de la muestra entre los puntos de referencia sea diferente. El valor crítico se extrae de una tabla de distribución T con un 95% de confianza (dos caras) .
La fórmula de Welch es bastante sencilla, pero no sé interpretar un resultado significativo. No estoy seguro de si el valor crítico debe ser dividido por 2 o no. Se agradece la ayuda para aclararlo. También debo ser redondeo los grados de libertad, df
para buscar el valor crítico o Math.ceil
o Math.floor
¿es más apropiado?
/**
* Determines if the benchmark's hertz is higher than another.
* @member Benchmark
* @param {Object} other The benchmark to compare.
* @returns {Number} Returns `1` if higher, `-1` if lower, and `0` if indeterminate.
*/
function compare(other) {
// use welch t-test
// http://frank.mtsu.edu/~dkfuller/notes302/welcht.pdf
// http://www.public.iastate.edu/~alicia/stat328/Regression%20inference-part2.pdf
var a = this.stats,
b = other.stats,
pow = Math.pow,
bitA = a.variance / a.size,
bitB = b.variance / b.size,
df = pow(bitA + bitB, 2) / ((pow(bitA, 2) / a.size - 1) + (pow(bitB, 2) / b.size - 1)),
t = (a.mean - b.mean) / Math.sqrt(bitA + bitB),
c = getCriticalValue(Math.round(df));
// check if t-statistic is significant
return Math.abs(t) > c / 2 ? (t > 0 ? 1 : -1) : 0;
}
Actualización: Gracias por todas las respuestas hasta ahora. Mi colega publicó algo más de información aquí por si eso afecta a los consejos.