nxlognx∑xi+nylogny∑yj−(nx+ny)lognx+ny∑xi+∑yj
nxlog(nxny+1r)+nylog(nynx+r)+nxlognynx+ny+nylognxnx+ny
r=x¯y¯r=1
rELRrobsPr(R>rELR)rELR=1.3272Pr(R>rELR)=0.21420.43520.4315
Pero duplicar el valor p de una cola es quizás la forma más común de obtener un valor p de dos colas: es equivalente a encontrar el valor de la razón de la muestra significa para el cual la probabilidad de cola es igual a , y luego encuentra . Explicado así, puede parecer que está poniendo el carro delante del caballo al permitir que las probabilidades de cola definan la extrema de un estadístico de prueba, pero puede justificarse como que en efecto son dos pruebas de una cola (cada una el LRT) con múltiples comparaciones corrección— y las personas generalmente están interesadas en afirmar que o querETPPr(R>rETP)Pr(R<robs)Pr(R>rETP)μx>μyμx<μyμx>μy o . También es menos problemático, e incluso para tamaños de muestra bastante pequeños, da la misma respuesta que el LRT de dos colas propiamente dicho.μx<μy
El código R sigue:
x <- c(12.173, 3.148, 33.873, 0.160, 3.054, 11.579, 13.491, 7.048, 48.836,
16.478, 3.323, 3.520, 7.113, 5.358)
y <- c(7.635, 1.508, 29.987, 13.636, 8.709, 13.132, 12.141, 5.280, 23.447,
18.687, 13.055, 47.747, 0.334,7.745, 26.287, 34.390, 9.596)
# observed ratio of sample means
r.obs <- mean(x)/mean(y)
# sample sizes
n.x <- length(x)
n.y <- length(y)
# define log likelihood ratio function
calc.llr <- function(r,n.x,n.y){
n.x * log(n.x/n.y + 1/r) + n.y*log(n.y/n.x + r) + n.x*log(n.y/(n.x+n.y)) + n.y*log(n.x/(n.x+n.y))
}
# observed log likelihood ratio
calc.llr(r.obs,n.x, n.y) -> llr.obs
# p-value in lower tail
pf(r.obs,2*n.x,2*n.y) -> p.lo
# find the other ratio of sample means giving an LLR equal to that observed
uniroot(function(x) calc.llr(x,n.x,n.y)-llr.obs, lower=1.2, upper=1.4, tol=1e-6)$root -> r.hi
#p.value in upper tail
p.hi <- 1-pf(r.hi,2*n.x,2*n.y)
# overall p.value
p.value <- p.lo + p.hi
#approximate p.value
1-pchisq(2*llr.obs, 1)