Es válido comparar varios enfoques, pero no con el objetivo de elegir el que favorezca nuestros deseos / creencias.
Mi respuesta a su pregunta es: es posible que dos distribuciones se superpongan mientras tienen medios diferentes, lo que parece ser su caso (pero necesitaríamos ver sus datos y contexto para proporcionar una respuesta más precisa).
Voy a ilustrar esto usando un par de enfoques para comparar medios normales .
1. pruebat
Considere dos muestras simuladas de tamaño de un y , entonces el valor es aproximadamente como en su caso (vea el código R a continuación).N ( 10 , 1 ) N ( 12 , 1 ) t 1070N(10,1)N(12,1)t10
rm(list=ls())
# Simulated data
dat1 = rnorm(70,10,1)
dat2 = rnorm(70,12,1)
set.seed(77)
# Smoothed densities
plot(density(dat1),ylim=c(0,0.5),xlim=c(6,16))
points(density(dat2),type="l",col="red")
# Normality tests
shapiro.test(dat1)
shapiro.test(dat2)
# t test
t.test(dat1,dat2)
Sin embargo, las densidades muestran una superposición considerable. Pero recuerde que está probando una hipótesis sobre las medias, que en este caso son claramente diferentes pero, debido al valor de , hay una superposición de las densidades.σ
2. Probabilidad de perfil deμ
Para obtener una definición de la probabilidad y probabilidad del perfil, consulte 1 y 2 .
En este caso, la probabilidad de perfil de de una muestra de tamaño media de muestra es simplemente .n ˉ x R p ( μ ) = exp [ - n ( ˉ x - μ ) 2 ]μnx¯Rp(μ)=exp[−n(x¯−μ)2]
Para los datos simulados, estos pueden calcularse en R de la siguiente manera
# Profile likelihood of mu
Rp1 = function(mu){
n = length(dat1)
md = mean(dat1)
return( exp(-n*(md-mu)^2) )
}
Rp2 = function(mu){
n = length(dat2)
md = mean(dat2)
return( exp(-n*(md-mu)^2) )
}
vec=seq(9.5,12.5,0.001)
rvec1 = lapply(vec,Rp1)
rvec2 = lapply(vec,Rp2)
# Plot of the profile likelihood of mu1 and mu2
plot(vec,rvec1,type="l")
points(vec,rvec2,type="l",col="red")
Como puede ver, los intervalos de probabilidad de y no se superponen en ningún nivel razonable.μ 2μ1μ2
3. Posterior de usando Jeffreys antesμ
Considere los Jeffreys anteriores de(μ,σ)
π(μ,σ)∝1σ2
La parte posterior de para cada conjunto de datos se puede calcular de la siguiente maneraμ
# Posterior of mu
library(mcmc)
lp1 = function(par){
n=length(dat1)
if(par[2]>0) return(sum(log(dnorm((dat1-par[1])/par[2])))- (n+2)*log(par[2]))
else return(-Inf)
}
lp2 = function(par){
n=length(dat2)
if(par[2]>0) return(sum(log(dnorm((dat2-par[1])/par[2])))- (n+2)*log(par[2]))
else return(-Inf)
}
NMH = 35000
mup1 = metrop(lp1, scale = 0.25, initial = c(10,1), nbatch = NMH)$batch[,1][seq(5000,NMH,25)]
mup2 = metrop(lp2, scale = 0.25, initial = c(12,1), nbatch = NMH)$batch[,1][seq(5000,NMH,25)]
# Smoothed posterior densities
plot(density(mup1),ylim=c(0,4),xlim=c(9,13))
points(density(mup2),type="l",col="red")
Una vez más, los intervalos de credibilidad de los medios no se superponen a ningún nivel razonable.
En conclusión, puede ver cómo todos estos enfoques indican una diferencia significativa de medias (que es el interés principal), a pesar de la superposición de las distribuciones.
⋆ Un enfoque de comparación diferente
A juzgar por sus preocupaciones sobre la superposición de las densidades, otra cantidad de interés podría ser , la probabilidad de que la primera variable aleatoria sea más pequeña que la segunda variable. Esta cantidad puede estimarse de forma no paramétrica como en esta respuesta . Tenga en cuenta que no hay supuestos de distribución aquí. Para los datos simulados, este estimador es , mostrando cierta superposición en este sentido, mientras que las medias son significativamente diferentes. Por favor, eche un vistazo al código R que se muestra a continuación.0.8823825P(X<Y)0.8823825
# Optimal bandwidth
h = function(x){
n = length(x)
return((4*sqrt(var(x))^5/(3*n))^(1/5))
}
# Kernel estimators of the density and the distribution
kg = function(x,data){
hb = h(data)
k = r = length(x)
for(i in 1:k) r[i] = mean(dnorm((x[i]-data)/hb))/hb
return(r )
}
KG = function(x,data){
hb = h(data)
k = r = length(x)
for(i in 1:k) r[i] = mean(pnorm((x[i]-data)/hb))
return(r )
}
# Baklizi and Eidous (2006) estimator
nonpest = function(dat1B,dat2B){
return( as.numeric(integrate(function(x) KG(x,dat1B)*kg(x,dat2B),-Inf,Inf)$value))
}
nonpest(dat1,dat2)
Espero que esto ayude.