経験分布関数
観測データの分布の具合を知るのに、分位点を求めることがある。この関数はquantile関数。
今、valuesが観測データの値のリストとし、知りたい分位点のリストをlist={0,25,0.5,0.75}のようにすれば、
quantile(values,list)
のようにして、分位点にある観測データが得られる。
他方、ある値(興味ある値)が、観測データの中でどのくらいの位置にあるかを知りたいこともあり、それは、「観測データ全体のうち、興味ある値以下のものの比率」として捉える。
それは、Rの標準ライブラリの一つであるstepfun ライブラリのecdf(empirical cumulative distribution function)によって求められる→こちらを参照
こんな風にしてもよい。もう少し、なにか、便利な書き方がありそうな気もするが、みつからない・・・
valuesは観測データの値のリスト
levelsは、値のリスト、cumulprob関数は、levelsの要素ごとに、その値以下の割合を返す。
cumulprob<-function(values,levels){ ret<-rep(1,length(levels)); sortedv<-sort(values); counter<-1; for(i in 1:length(sortedv)){ if(sortedv[i]>levels[counter]){ret[counter]<-i/length(sortedv);counter<-counter+1} if(counter>length(levels))break } return(ret) }