[0,1] এ প্রদত্ত রেটিংয়ের একটি সেট জন্য বিটা বিতরণ বিবেচনা করুন। গড় গণনা করার পরে:
এর অর্থের চারদিকে কোনও আস্থা অন্তর দেওয়ার কোনও উপায় আছে কি?
[0,1] এ প্রদত্ত রেটিংয়ের একটি সেট জন্য বিটা বিতরণ বিবেচনা করুন। গড় গণনা করার পরে:
এর অর্থের চারদিকে কোনও আস্থা অন্তর দেওয়ার কোনও উপায় আছে কি?
উত্তর:
বিটা বিতরণে প্যারামিটারগুলির জন্য আস্থা অন্তর গণনা করার জন্য নির্দিষ্ট পদ্ধতি রয়েছে, আমি কয়েকটি সাধারণ পদ্ধতি বর্ণনা করব , যা বিটা বিতরণ সহ (প্রায়) সমস্ত ধরণের বিতরণের জন্য ব্যবহার করা যেতে পারে এবং সহজেই আর তে প্রয়োগ করা হয় ।
আসুন সংশ্লিষ্ট প্রোফাইল সম্ভাবনা আত্মবিশ্বাসের অন্তরগুলির সাথে সর্বাধিক সম্ভাবনা অনুমানের সাথে শুরু করা যাক। প্রথমে আমাদের কিছু নমুনা ডেটা প্রয়োজন:
# Sample size
n = 10
# Parameters of the beta distribution
alpha = 10
beta = 1.4
# Simulate some data
set.seed(1)
x = rbeta(n, alpha, beta)
# Note that the distribution is not symmetrical
curve(dbeta(x,alpha,beta))
আসল / তাত্ত্বিক মানে হয়
> alpha/(alpha+beta)
0.877193
এখন আমাদের বিটা বিতরণ থেকে একটি নমুনার জন্য নেতিবাচক লগ সম্ভাবনা ফাংশন গণনা করার জন্য একটি ফাংশন তৈরি করতে হবে, যার সাথে প্যারামিটারগুলির মধ্যে একটি হিসাবে গড় আছে। আমরা dbeta()
ফাংশনটি ব্যবহার করতে পারি , তবে এটি যেহেতু গড় যুক্ত কোনও প্যারামিটারাইজেশন ব্যবহার করে না, তাই আমাদের এর পরামিতিগুলি ( α এবং β ) গড়ের ফাংশন এবং কিছু অন্যান্য প্যারামিটার হিসাবে প্রকাশ করতে হবে (মানক বিচ্যুতির মতো):
# Negative log likelihood for the beta distribution
nloglikbeta = function(mu, sig) {
alpha = mu^2*(1-mu)/sig^2-mu
beta = alpha*(1/mu-1)
-sum(dbeta(x, alpha, beta, log=TRUE))
}
সর্বাধিক সম্ভাবনার অনুমানের জন্য, আমরা লাইব্রেরিতে mle()
ফাংশনটি ব্যবহার করতে পারি stats4
:
library(stats4)
est = mle(nloglikbeta, start=list(mu=mean(x), sig=sd(x)))
আপাতত সতর্কতাগুলি উপেক্ষা করুন। তারা পরামিতি জন্য অবৈধ মান চেষ্টা অপ্টিমাইজেশান আলগোরিদিম দ্বারা সৃষ্ট করছি, জন্য নেতিবাচক মান দান α এবং / অথবা β । (সতর্কতা এড়াতে, আপনি একটি lower
যুক্তি যুক্ত করতে এবং method
ব্যবহৃত অপ্টিমাইজেশন পরিবর্তন করতে পারেন ))
আমাদের দুটি পরামিতিগুলির জন্য এখন আমাদের উভয় অনুমান এবং আস্থা অন্তর রয়েছে:
> est
Call:
mle(minuslogl = nloglikbeta, start = list(mu = mean(x), sig = sd(x)))
Coefficients:
mu sig
0.87304148 0.07129112
> confint(est)
Profiling...
2.5 % 97.5 %
mu 0.81336555 0.9120350
sig 0.04679421 0.1276783
মনে রাখবেন, প্রত্যাশার মতো আত্মবিশ্বাসের ব্যবধানগুলি প্রতিসম নয় met
par(mfrow=c(1,2))
plot(profile(est)) # Profile likelihood plot
(দ্বিতীয় বাইরের ম্যাজেন্টা রেখাগুলি 95% আত্মবিশ্বাসের ব্যবধান দেখায়।)
এছাড়াও মনে রাখবেন যে মাত্র 10 টি পর্যবেক্ষণের পরেও আমরা খুব ভাল অনুমান (একটি সংকীর্ণ আত্মবিশ্বাসের ব্যবধান) পাই।
এর বিকল্প হিসাবে mle()
, আপনি প্যাকেজ fitdistr()
থেকে ফাংশনটি ব্যবহার করতে পারেন MASS
। এটিও সর্বাধিক সম্ভাবনা অনুমানকারী গণনা করে এবং এর সুবিধা রয়েছে যে আপনার কেবল ঘনত্ব সরবরাহ করতে হবে, নেতিবাচক লগ সম্ভাবনা নয়, তবে আপনাকে প্রোফাইল সম্ভাবনার আত্মবিশ্বাসের বিরতি দেয় না, কেবল অ্যাসিম্পটোটিক (প্রতিসম) আত্মবিশ্বাসের অন্তর অন্তর্ভুক্ত করে।
প্যাকেজ mle2()
থেকে একটি আরও ভাল বিকল্প (এবং সম্পর্কিত ফাংশন) bbmle
যা কিছুটা নমনীয় এবং শক্তিশালী mle()
এবং কিছুটা সুন্দর প্লট দেয়।
আরেকটি বিকল্প হ'ল বুটস্ট্র্যাপ ব্যবহার করা। এটি আর-তে ব্যবহার করা অত্যন্ত সহজ এবং আপনার ঘনত্বের ক্রিয়াকলাপ সরবরাহ করতে হবে না:
> library(simpleboot)
> x.boot = one.boot(x, mean, R=10^4)
> hist(x.boot) # Looks good
> boot.ci(x.boot, type="bca") # Confidence interval
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 10000 bootstrap replicates
CALL :
boot.ci(boot.out = x.boot, type = "bca")
Intervals :
Level BCa
95% ( 0.8246, 0.9132 )
Calculations and Intervals on Original Scale
বুটস্ট্র্যাপের অতিরিক্ত সুবিধা রয়েছে যা এটি আপনার ডেটা বিটা বিতরণ থেকে না আসলেও এটি কাজ করে।
আত্মবিশ্বাসের ব্যবধানের জন্য, আসুন কেন্দ্রীয় সীমাবদ্ধতা উপপাদ্যের (এবং টি- বিতরণ) এর উপর ভিত্তি করে ভাল পুরাতন অ্যাসিম্পোটিক আত্মবিশ্বাসের বিরতিগুলি ভুলে যাওয়া উচিত না । যতদিন আমরা আছে যেমন হয় একটি বৃহৎ নমুনা আকার (তাই CLT প্রযোজ্য এবং নমুনা গড় বিতরণের প্রায় স্বাভাবিক) অথবা উভয় বৃহৎ মান α এবং β (যাতে বিটা বিতরণ নিজেই প্রায় স্বাভাবিক), এটা ভাল কাজ করে। এখানে আমাদের দুটিও নেই, তবে আত্মবিশ্বাসের ব্যবধানটি এখনও খুব খারাপ নয়:
> t.test(x)$conf.int
[1] 0.8190565 0.9268349
এন এর সামান্য লার্জ মানগুলির জন্য (এবং দুটি পরামিতিগুলির খুব চরম মান নয়), অ্যাসিম্পটোটিক আত্মবিশ্বাস অন্তর খুব ভালভাবে কাজ করে।
বিটা রিগ্রেশন পরীক্ষা করে দেখুন। আর এর সাহায্যে এটি কীভাবে করা যায় তার একটি ভাল ভূমিকা এখানে পাওয়া যাবে:
http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf
আত্মবিশ্বাসের ব্যবধান তৈরির আর একটি (সত্যই সহজ) উপায় হ'ল নন-প্যারাম্যাট্রিক বোস্ট্র্যাপ পদ্ধতির ব্যবহার। উইকিপিডিয়ায় ভাল তথ্য রয়েছে:
http://en.wikipedia.org/wiki/Bootstrapping_%28statistics%29
এখানেও দুর্দান্ত ভিডিও: