Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding quantile numerically in R

I'm looking for an R code that would help me find the quantile when the pdf is given numerically. That is, say my data is

x = c(0.00,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00)

and the corresponding pdf values are

pdf = c(0.000000000,1.221759375,1.968300000,2.349028125,2.457600000,2.373046875,2.160900000,1.874315625,1.555200000,1.235334375,0.937500000,0.676603125,0.460800000,0.292621875,0.170100000,0.087890625,0.038400000,0.012909375,0.002700000,0.000178125,0.000000000)

I'd like to find the 95th quantile. I found an example here, however, the pdf is considered to be a function in this example, which is not my case. Thank you ahead for any help.

like image 318
EM823823 Avatar asked Oct 27 '25 06:10

EM823823


1 Answers

You can calculate an approximate 95%-quantile according to the definition of quantile, e.g.,

> max(x[cumsum(pdf) <= 0.95 * sum(pdf)])
[1] 0.55

Or, you can try approxfun like below

> y <- cumsum(pdf) / sum(pdf)

> k <- !duplicated(y)

> approxfun(y[k],x[k])(0.95)
[1] 0.5577952

Below is the visualization

plot(x[k], y[k], type = "b")
abline(v = q)
grid(nx = 19, ny = 19, lwd = 2)

enter image description here

like image 163
ThomasIsCoding Avatar answered Oct 28 '25 19:10

ThomasIsCoding



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!