1

エッジケースでの Rdensity() 関数の動作に少し困惑しています...

シミュレートされたデータ セットに x=0 のポイントをどんどん追加するとします。私が期待しているのは、密度の推定値が x=0 でのデルタ関数に非常に迅速に収束することです (それが何を意味するかについては意図的に曖昧にしています...)。実際には、次の一連のプロットが示すように、適合は確かに狭くなりますが、非常にゆっくりとなります。

plot(density(c(0,0)), xlim=c(-2,2))
plot(density(c(0,0,0,0)), xlim=c(-2,2))
plot(density(c(rep(0,10000))), xlim=c(-2,2))
plot(density(c(rep(0,10000000))), xlim=c(-2,2))

しかし、シミュレートされたデータにわずかなノイズを追加すると、動作が大幅に改善されます。

plot(density(0.0000001*rnorm(10000000) + c(rep(0,10000000))), xlim=c(-2,2))

眠っている犬を寝かせるだけですか?または、density() の使用法について何か不足していますか?

4

2 に答える 2

0

実は (...足の間のしっぽ...) 私の質問全体が見当違いだったことに今気づきました。R にかなり慣れていないので、density() がさまざまな幅のガウス分布をデータ ポイントに合わせて、ガウス分布の数とそれぞれの幅の両方を最適化しようとしているとすぐに思いました。しかし、実際にはもっと単純なことをしています。各データポイントを塗りつぶし、塗りつぶしを合計して、データの平滑化された推定値を提供するだけです。density() は単純な平滑化アルゴリズムです。そう、確かに、RTFM :)

于 2013-07-08T17:17:27.107 に答える