Birkaç yaklaşımı karşılaştırmak geçerlidir, ancak arzularımızı / inançlarımızı destekleyecek olanı seçmek amacıyla değil.
Sorunuza cevabım şudur: İki dağıtım, farklı araçlara sahipken üst üste gelebilir, bu da sizin durumunuz gibi görünmektedir (ancak daha kesin bir cevap sağlamak için verilerinizi ve bağlamınızı görmemiz gerekir).
Bunu normal yöntemleri karşılaştırmak için birkaç yaklaşım kullanarak açıklayacağım .
1. testit
Bir ve den boyutunda iki simüle edilmiş örneği düşünün , o zaman değeri sizin durumunuzda olduğu gibi yaklaşık (Aşağıdaki R koduna bakın).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)
Ancak yoğunluklar önemli ölçüde örtüşüyor. Ama unutmayın ki, bu durumda açıkça farklı olan araçlar hakkında bir hipotez test ediyorsunuz, değeri nedeniyle , yoğunlukların çakışması var.σ
2. Profil olasılığıμ
Profil olasılığı ve olasılığının bir tanımı için lütfen 1 ve 2'ye bakın .
Bu durumda, boyutlu bir örneğin ortalama örneğinin profil olasılığı basitçe .μnx¯Rp(μ)=exp[−n(x¯−μ)2]
Simüle edilen veriler için, bunlar R'de aşağıdaki gibi hesaplanabilir.
# 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")
Gördüğünüz gibi, ve olasılık aralıkları makul bir düzeyde örtüşmüyor.μ1μ2
3. önce Jeffreys kullanarak posteriorμ
Göz önünde önce Jeffreys arasında(μ,σ)
π(μ,σ)∝1σ2
Her veri kümesi için posterioru aşağıdaki gibi hesaplanabilirμ
# 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")
Yine, araçlar için güvenilirlik aralıkları makul bir seviyede örtüşmemektedir.
Sonuç olarak, tüm bu yaklaşımların, dağılımların çakışmasına rağmen, önemli bir araç farkını (ana ilgi alanı) nasıl gösterdiğini görebilirsiniz.
⋆ Farklı bir karşılaştırma yaklaşımı
Yoğunlukların çakışmasıyla ilgili endişelerinizden yola çıkarak, bir diğer ilgi miktarı ; bu, ilk rastgele değişkenin ikinci değişkenden daha küçük olma olasılığıdır. Bu miktar, bu cevaptaki gibi parametrik olmayan bir şekilde tahmin edilebilir . Burada herhangi bir dağıtım varsayımı olmadığını unutmayın. Simüle edilen veriler için, bu tahminci , bu anlamda bazı çakışmalar gösterirken, araçlar önemli ölçüde farklıdır. Lütfen, aşağıda gösterilen R koduna bir göz atı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)
Umarım bu yardımcı olur.