বেশ কয়েকটি পদ্ধতির তুলনা করা বৈধ, তবে আমাদের ইচ্ছার / বিশ্বাসের পক্ষে এমন একটি নির্বাচন করার লক্ষ্য নিয়ে নয়।
আপনার প্রশ্নের আমার উত্তর: এটি সম্ভব যে দুটি বিতরণ পৃথক উপায়ে থাকার সময় ওভারল্যাপ হয়ে যায়, যা আপনার ক্ষেত্রে বলে মনে হয় (তবে আরও সুনির্দিষ্ট উত্তর দেওয়ার জন্য আমাদের আপনার ডেটা এবং প্রসঙ্গটি দেখতে হবে)।
আমি সাধারণ উপায়ে তুলনা করার জন্য কয়েকটি পদ্ধতির সাহায্যে এটি চিত্রিত করছি ।
1. -testt
একটি এবং থেকে আকারের দুটি সিমুলেটেড নমুনাগুলি বিবেচনা করুন , তারপরে ভ্যালুটি আপনার ক্ষেত্রে যেমন হয় (নীচের আর কোডটি দেখুন)।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)
তবে ঘনত্বগুলি যথেষ্ট ওভারল্যাপিং দেখায়। তবে মনে রাখবেন যে আপনি উপায়গুলি সম্পর্কে একটি অনুমান পরীক্ষা করছেন, যা এই ক্ষেত্রে স্পষ্টভাবে আলাদা তবে মানের কারণে , ঘনত্বগুলির একটি ওভারল্যাপ রয়েছে।σ
২. এর প্রোফাইল সম্ভাবনাμ
প্রোফাইল সম্ভাবনা এবং সম্ভাবনার সংজ্ঞা জন্য দয়া করে 1 এবং 2 দেখুন ।
এই ক্ষেত্রে, প্রোফাইলে সম্ভাবনা আকারের একটি নমুনা এবং নমুনা গড় সহজভাবে হয় ।μnx¯Rp(μ)=exp[−n(x¯−μ)2]
সিমুলেটেড ডেটাগুলির জন্য, এগুলি নিম্নলিখিত হিসাবে আর এ গণনা করা যেতে পারে
# 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
প্রতিটি ডেটা সেটের জন্য পোস্টারিয়রটি নিম্নরূপে গণনা করা যায়μ
# 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")
আবার, উপায়গুলির জন্য বিশ্বাসযোগ্যতা অন্তরগুলি কোনও যুক্তিসঙ্গত স্তরে ওভারল্যাপ হয় না।
উপসংহারে, আপনি দেখতে পারেন যে কীভাবে এই সমস্ত পদ্ধতিগুলি বিতরণগুলির ওভারল্যাপিং সত্ত্বেও, এর অর্থের একটি গুরুত্বপূর্ণ পার্থক্য (যা মূল আগ্রহ) নির্দেশ করে।
⋆ একটি ভিন্ন তুলনা পদ্ধতির
ঘনত্বগুলির ওভারল্যাপিং সম্পর্কে আপনার উদ্বেগের বিচার করে, আর একটি পরিমাণ আগ্রহ হতে পারে , সম্ভবত প্রথম র্যান্ডম ভেরিয়েবল দ্বিতীয় ভেরিয়েবলের চেয়ে ছোট হয়। এই পরিমাণটি এই উত্তর হিসাবে অপরিকল্পিতভাবে অনুমান করা যায় । মনে রাখবেন যে এখানে কোনও বিতরণ অনুমান নেই। সিমুলেটেড ডেটার জন্য, এই , এই অর্থে কিছুটা ওভারল্যাপ দেখায়, অন্যদিকে উল্লেখযোগ্যভাবে পৃথক। দয়া করে নীচে প্রদর্শিত আর কোডটি দেখুন।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)
আশা করি এটা কাজে লাগবে.