@ শুভ যেমন উল্লেখ করেছেন, পরিসংখ্যানগত পদ্ধতিগুলি এখানে ঠিক কাজ করে না। আপনার অন্যান্য উত্স থেকে বিতরণ অনুমান করা প্রয়োজন। আপনি যখন বিতরণটি জানেন তখন আপনার একটি অ-রৈখিক সমীকরণ সমাধানের অনুশীলন থাকে। দ্বারা চিহ্নিত প্যারামিটার ভেক্টর দিয়ে আপনার নির্বাচিত সম্ভাব্যতা বিতরণের সমাংশক ফাংশন θ । আপনার কাছে যা আছে তা নীচের সমীকরণের অলৈখিক সিস্টেম:fθ
q0.05q0.5q0.95=f(0.05,θ)=f(0.5,θ)=f(0.95,θ)
qθ
(q0.05−f(0.05,θ))2+(q0.5−f(0.5,θ))2+(q0.95−f(0.95,θ))2
এখানে আমি চতুর্ভুজ ফাংশনটি বেছে নিয়েছি, তবে আপনি যা চান তা চয়ন করতে পারেন। @ শুভ মন্তব্য অনুসারে আপনি ওজন নির্ধারণ করতে পারেন, যাতে আরও গুরুত্বপূর্ণ কোয়ান্টাইলগুলি আরও সঠিকভাবে লাগানো যায়।
চার এবং আরও বেশি পরামিতিগুলির জন্য সিস্টেমটি নির্ধারিত হয়, সুতরাং অসীম সংখ্যক সমাধান বিদ্যমান।
এই পদ্ধতির চিত্রিত করে এখানে কিছু নমুনা আর কোড দেওয়া আছে। বিক্ষোভের উদ্দেশ্যে, আমি ভিজিএএম প্যাকেজ থেকে সিং-মাদডালা বিতরণ থেকে কোয়ান্টাইলগুলি উত্পন্ন করি । এই বিতরণে 3 টি প্যারামিটার রয়েছে এবং এটি আয় বিতরণ মডেলিংয়ে ব্যবহৃত হয়।
q <- qsinmad(c(0.05,0.5,0.95),2,1,4)
plot(x<-seq(0,2,by=0.01), dsinmad(x, 2, 1, 4),type="l")
points(p<-c(0.05, 0.5, 0.95), dsinmad(p, 2, 1, 4))
এখন এমন ফাংশনটি গঠন করুন যা সমীকরণের অ-রৈখিক সিস্টেমটিকে মূল্যায়ন করে:
fn <- function(x,q) q-qsinmad(c(0.05, 0.5, 0.95), x[1], x[2], x[3])
সত্য মানগুলি সমীকরণটি পূরণ করে কিনা তা পরীক্ষা করুন:
> fn(c(2,1,4),q)
[1] 0 0 0
অ-লিনিয়ার সমীকরণ সিস্টেমটি সমাধানের জন্য আমি nleqslv
প্যাকেজ nlqeslv থেকে ফাংশনটি ব্যবহার করি ।
> sol <- nleqslv(c(2.4,1.5,4.3),fn,q=q)
> sol$x
[1] 2.000000 1.000000 4.000001
যেমনটি আমরা দেখি আমরা সঠিক সমাধান পেয়েছি। এখন আসুন আমরা এই কোয়ান্টাইলগুলিতে লগ-সাধারণ বিতরণে ফিট করার চেষ্টা করি। এর জন্য আমরা optim
ফাংশনটি ব্যবহার করব ।
> ofn <- function(x,q)sum(abs(q-qlnorm(c(0.05,0.5,0.95),x[1],x[2]))^2)
> osol <- optim(c(1,1),ofn)
> osol$par
[1] -0.905049 0.586334
এখন ফলাফল প্লট করুন
plot(x,dlnorm(x,osol$par[1],osol$par[2]),type="l",col=2)
lines(x,dsinmad(x,2,1,4))
points(p,dsinmad(p,2,1,4))
এ থেকে আমরা তাত্ক্ষণিকভাবে দেখতে পাচ্ছি যে চতুর্ভুজ ফাংশনটি এতটা ভাল নয়।
আশাকরি এটা সাহায্য করবে.