いくつかのアプローチを比較することは有効ですが、私たちの欲望/信念を支持するアプローチを選択する目的ではありません。
あなたの質問に対する私の答えは次のとおりです:2つの分布が異なる手段を持っている間に重複する可能性があり、それはあなたの場合のようです(しかし、より正確な答えを提供するためにデータとコンテキストを見る必要があります)。
通常の平均を比較するためのいくつかのアプローチを使用してこれを説明します。
1. テストt
サイズの2つのシミュレートされたサンプル検討からN (10 、1 )及びN (12 、1 )、その後のT -値はおよそ10(以下Rコードを参照)あなたの場合のように。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)
ただし、密度にはかなりの重なりがあります。ただし、平均に関する仮説をテストしていることを思い出してください。この場合、これは明らかに異なりますが、の値のために密度の重複があります。σ
2.プロフィール可能性μ
プロファイルの尤度と尤度の定義については、1および2を参照してください。
μnx¯Rp(μ)=exp[−n(x¯−μ)2]
シミュレートされたデータの場合、これらは次のようにRで計算できます。
# 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
3.後方μ
(μ,σ)
π(μ,σ)∝1σ2
μ
# 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")
繰り返しますが、手段の信頼区間は、妥当なレベルで重複しません。
結論として、分布が重複しているにもかかわらず、これらすべてのアプローチがどのように平均の有意差を示しているかを見ることができます(これが主な関心事です)。
⋆
P(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)
これがお役に立てば幸いです。