适合从ecdf输出的功能

时间:2013-11-03 06:00:22

标签: r ecdf

我想将函数拟合到ecdf的输出:

x<-rnorm(100)
z<-ecdf(x)

请注意,我不想使用常规发行版,而是通用函数。我最初的方法是使用lm,但我无法检索z的单个值来执行适合。

1 个答案:

答案 0 :(得分:0)

我无法弄清楚如何使用内置的ecdf函数执行此操作,但是编写自己的函数非常简单,然后使用nls进行拟合。这是ECDF功能:

ecdf2<-function(data) {
  sorted.data<-data[order(data)]
  return(data.frame('x'=sorted.data, 'y'=index(sorted.data)/length(sorted.data)))
}

这是使用它然后进行拟合:

require("pracma")  #needed for erf()
e2<-ecdf2(x)
y<-e2$y
x<-e2$x
fit<-nls(y ~ 0.5 * (1 + erf((x - mu) / (sigma * sqrt(2)))))

如果你看fit,mu应该是〜0,sigma应该是〜1,正如预期的那样。