未知累积函数的反函数

Mic*_*lle 6 statistics kernel r quantile

我正在使用数据文件,里面的观察是随机值.在这种情况下,我不知道x的分布(我的观察).我正在使用函数密度来估计密度,因为我必须应用核估计.

T=density(datafile[,1],bw=sj,kernel="epanechnikov")
Run Code Online (Sandbox Code Playgroud)

在此之后我必须整合它,因为我正在寻找分位数(类似于VaR,95%).为此,我有两个选择:

ecdf()
quantile()
Run Code Online (Sandbox Code Playgroud)

现在我有分位数95的值,但这是内核估计的数据.

是否有一个函数可以用来知道原始数据的分位数95的值?

我注意到这是一个未知的分布,为此我想象一个非参数方法如牛顿,就像SAS中的那个 solve()

NPE*_*NPE 6

你可以用quantile()它.以下是使用随机数据的示例:

> data<-runif(1000)

> q<-quantile(data, .95)
> q
      95% 
0.9450324 
Run Code Online (Sandbox Code Playgroud)

这里,数据均匀分布在0和1之间,因此第95百分位数接近0.95.

要执行逆变换:

> ecdf(data)(q)
[1] 0.95
Run Code Online (Sandbox Code Playgroud)

  • `quantile`是`ecdf`的反转. (2认同)