2012-02-03 10 views
12

आर का उपयोग करना, यह एक नमूना वितरण में दी गई संभावनाओं के लिए quantiles गणना करने के लिए मामूली बात है:मैं आर में दी गई मात्रा के लिए संभावना की गणना कैसे करूं?

x <- rnorm(1000, mean=4, sd=2) 
quantile(x, .9) # results in 6.705755 

हालांकि, मैं किसी दिए गए quantile के लिए संभावना उलटा-गणना करने के लिए एक आसान तरीका नहीं मिल सकता है नमूना x। क्योंकि इस पूर्ण सामान्य वितरण से संभावना की गणना है,

pnorm(5, mean=4, sd=2) # results in 0.6914625 

हालांकि, और नहीं नमूना x: निकटतम मैं आए हैं एक ही माध्य और मानक विचलन मैं जब नमूना बनाने के लिए इस्तेमाल किया साथ pnorm() उपयोग करने के लिए है , यह पूरी तरह सटीक नहीं है।

क्या कोई ऐसा कार्य है जो अनिवार्य रूप से quantile() के विपरीत करता है? कुछ ऐसा जो मुझे अनिवार्य रूप से pnorm() जैसा नमूना देता है लेकिन नमूना के साथ? कुछ इस तरह:

backwards_quantile(x, 5) 

मैं ecdf() समारोह मिल गया है, लेकिन यह बजाय एक भी संभावना एक पूर्ण समीकरण वस्तु में परिणाम बनाने के लिए एक तरह से समझ नहीं कर सकते हैं।

उत्तर

14

ecdf कोई फ़ंक्शन देता है: आपको इसे लागू करने की आवश्यकता है।

f <- ecdf(x) 
f(quantile(x,.91)) 
# Equivalently: 
ecdf(x)(quantile(x,.91)) 
+0

बिल्कुल सही! धन्यवाद! – Andrew

+3

मूल पोस्ट में दिखाए गए उदाहरण में, आपको वास्तव में 5 दिए गए 'x' (लगभग 0.697 दिए गए बीज 123) की मात्रा को खोजने के लिए' ecdf (x) (5) 'चलाने के लिए होगा। –

0

बस सुविधा के लिए, इस समारोह में मदद करता है:

quantInv <- function(distr, value) ecdf(distr)(value) 
set.seed(1) 
x <- rnorm(1000, mean=4, sd=2) 
quantInv(x, c(4, 5, 6.705755)) 
[1] 0.518 0.685 0.904 
संबंधित मुद्दे