আমি আর এর মধ্যে ইম্পোর্টেন্স স্যাম্পলিং পদ্ধতির সাথে ইন্টিগ্রাল মূল্যায়ন প্রশ্নের উত্তর দেওয়ার চেষ্টা করছিলাম । মূলত, ব্যবহারকারীর গণনা করা দরকার
তাত্পর্যপূর্ণ বিতরণকে গুরুত্ব বিতরণ হিসাবে ব্যবহার করে
এবং এর মান সন্ধান করুন যা ইন্টিগ্রালের (এটি ) আরও ভাল দেয় । আমি ওভার এর গড় মান এর মূল্যায়ন হিসাবে সমস্যাটি পুনরায় পুনঃস্থাপন করলাম : অবিচ্ছেদ্য তখন কেবল । self-study
সুতরাং, কে এর পিডিএফ হতে দিন, এবং : এখন লক্ষ্যটি অনুমান করা
গুরুত্ব নমুনা ব্যবহার। আমি আর তে একটি সিমুলেশন সম্পাদন করেছি:
# clear the environment and set the seed for reproducibility
rm(list=ls())
gc()
graphics.off()
set.seed(1)
# function to be integrated
f <- function(x){
1 / (cos(x)^2+x^2)
}
# importance sampling
importance.sampling <- function(lambda, f, B){
x <- rexp(B, lambda)
f(x) / dexp(x, lambda)*dunif(x, 0, pi)
}
# mean value of f
mu.num <- integrate(f,0,pi)$value/pi
# initialize code
means <- 0
sigmas <- 0
error <- 0
CI.min <- 0
CI.max <- 0
CI.covers.parameter <- FALSE
# set a value for lambda: we will repeat importance sampling N times to verify
# coverage
N <- 100
lambda <- rep(20,N)
# set the sample size for importance sampling
B <- 10^4
# - estimate the mean value of f using importance sampling, N times
# - compute a confidence interval for the mean each time
# - CI.covers.parameter is set to TRUE if the estimated confidence
# interval contains the mean value computed by integrate, otherwise
# is set to FALSE
j <- 0
for(i in lambda){
I <- importance.sampling(i, f, B)
j <- j + 1
mu <- mean(I)
std <- sd(I)
lower.CB <- mu - 1.96*std/sqrt(B)
upper.CB <- mu + 1.96*std/sqrt(B)
means[j] <- mu
sigmas[j] <- std
error[j] <- abs(mu-mu.num)
CI.min[j] <- lower.CB
CI.max[j] <- upper.CB
CI.covers.parameter[j] <- lower.CB < mu.num & mu.num < upper.CB
}
# build a dataframe in case you want to have a look at the results for each run
df <- data.frame(lambda, means, sigmas, error, CI.min, CI.max, CI.covers.parameter)
# so, what's the coverage?
mean(CI.covers.parameter)
# [1] 0.19
কোড মূলত গুরুত্ব স্যাম্পলিং একটি সহজবোধ্য বাস্তবায়ন ব্যবহার স্বরলিপি অনুসরণ করছে এখানে । গুরুত্ব স্যাম্পলিং তারপর পুনরাবৃত্তি করা হয় একাধিক অনুমান পেতে বার \ মিউ , এবং প্রতিটি সময় একটি চেক তৈরি করা হয় কিনা 95% ব্যবধান কভার প্রকৃত গড় বা না।
আপনি দেখতে পাচ্ছেন, জন্য প্রকৃত কভারেজটি মাত্র 0.19। এবং মতো মানগুলিতে বাড়ানো সাহায্য করে না (কভারেজটি আরও ছোট, 0.15)। ইহা কি জন্য ঘটিতেছে?