É válido comparar várias abordagens, mas não com o objetivo de escolher aquela que favorece nossos desejos / crenças.
Minha resposta para sua pergunta é: É possível que duas distribuições se sobreponham enquanto elas têm meios diferentes, o que parece ser o seu caso (mas precisaríamos ver seus dados e contexto para fornecer uma resposta mais precisa).
Vou ilustrar isso usando algumas abordagens para comparar meios normais .
1. teste t
Considere duas amostras simuladas do tamanho de um N ( 10 , 1 ) e N ( 12 , 1 ) ; o valor t é aproximadamente 10, como no seu caso (consulte o código R abaixo).70N(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)
No entanto, as densidades mostram uma considerável sobreposição. Mas lembre-se de que você está testando uma hipótese sobre as médias, que neste caso são claramente diferentes, mas, devido ao valor de , há uma sobreposição das densidades.σ
2. Probabilidade de perfil de μ
Para uma definição da probabilidade e probabilidade do perfil, consulte 1 e 2 .
μnx¯Rp(μ)=exp[−n(x¯−μ)2]
Para os dados simulados, estes podem ser calculados em R da seguinte maneira
# 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")
μ1μ2
μ
(μ,σ)
π(μ,σ)∝1σ2
O posterior de μ para cada conjunto de dados pode ser calculado da seguinte forma
# 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")
Novamente, os intervalos de credibilidade para os meios não se sobrepõem em nenhum nível razoável.
Em conclusão, você pode ver como todas essas abordagens indicam uma diferença significativa de médias (que é o principal interesse), apesar da sobreposição das distribuições.
⋆ Uma abordagem de comparação diferente
A julgar pelas suas preocupações sobre a sobreposição das densidades, outra quantidade de interesse pode ser P (X< Y), a probabilidade de a primeira variável aleatória ser menor que a segunda variável. Essa quantidade pode ser estimada não parametricamente, como nesta resposta . Observe que não há premissas distributivas aqui. Para os dados simulados, esse estimador é0.8823825, mostrando alguma sobreposição nesse sentido, enquanto os meios são significativamente diferentes. Por favor, dê uma olhada no código R mostrado abaixo.
# 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)
Eu espero que isso ajude.