1

からの出力に関数を適合させたいecdf:

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

通常の分布ではなく、一般的な関数に適合させたいことに注意してください。私の最初のアプローチは使用することでしたが、フィットを実行するためにlm個々の値を取得することはできません.z

4

1 に答える 1

0

組み込み関数でこれを行う方法もわかりませんでしたが、独自の関数を作成してフィッティングを行うのにecdf使用するのは簡単です。nlsECDF関数は次のとおりです。

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 になるはずです。

于 2015-02-12T16:28:18.460 に答える