2016-06-14 12 views
0

残念ながら、この問題は簡単ではありませんが解決策はありません:私はdensity()関数を頻繁に使用していましたが、いつも問題はありませんでしたが、多くの)比較的小さな値と突然density(tab)は絶対的な周波数のような何かを与える - 私が間違っていたアイデア?R密度()関数

(注意:またhist(tab, freq = FALSE)タブの奇妙な何かを与える)

備考:summary(tab)が得られます。

Min./ 1st Qu./ Median / Mean/ 3rd Qu./ Max. 

-0.0042810 /0.0002679/0.0011750/0.0071690/0.0049510 /0.5839000 

を私もノーを与えるdensity()ている状況下で任意の一般的なヒント、のために非常に感謝するだろうy値としての相対頻度。

+0

[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)と[再現可能な例を与える方法](http://stackoverflow.com)の情報をお読みください。/questions/5963269)。これは他の人があなたを助けることをはるかに容易にします。 – zx8754

+0

相対的に小さな値とは何ですか?何に対して? '-1e100'? '1e-100'? :) – Therkel

+0

こんにちは!あなたの答えをどうもありがとう - 私が現象を再現/一般化することができれば、私は満足しています。上記のように、density()は通常、この奇妙なデータセットを除いて正常に動作します。誰かが間違っていた可能性のある手がかりを持っている可能性があります。 – chris17

答えて

1

私はあなたの例を正確に再現することはできませんが、あなたのデータセットには大きな外れ値があるように見えます。つまり、第3四分位数は0.005ですが、最大値は0.584です。実際の軸では、3分位から最小値までの距離は0.01です。第3四分位点から最大値までの距離は0.583を超えています。それはさらに58倍です!私の理解によれば、densityは、すべての値でうまく動作する帯域幅を選択しようとします。この場合、ほとんどの値が0の近くに集まっているため、帯域幅は非常に小さくなる可能性があります。その場合、2つの垂直線を持つ非常に縮退した密度プロットが得られます。右。

plot(density(c(rnorm(100, 0, 0.001), 100))) 

を私はすべてがこの分布に、0.001のSDで、正規分布からサンプルを採取し、外れ値を追加し、100である:私は使用してそのようなプロットを生成することができました。密度は次のようになります。 密度の値は周波数に対して混乱する可能性がありますが、そうではありません。もちろん、私は外れ値を削除した場合、推定密度関数がうまく釣鐘型の取得:

だから、

regular density plot

、あなたがあなたのデータから外れ値を削除する必要があると思われます。

+0

感謝BogdataとTherkel、あなたは私の日を作った:) – chris17

関連する問題