[英]R density() function
抱歉,如果這個問題無關緊要,但我看不到任何解決方案:我一直在頻繁地使用density()
函數,總是沒有麻煩,但是現在我使用了一些數據集-稱其為tab-具有(許多)相對較小的值,並且突然density(tab)
給出了絕對頻率之類的東西-任何想法我做錯了嗎?
(注意: hist(tab, freq = FALSE)
也會給tab帶來一些怪異的東西。)
備注: 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.005,但最大值為0.584。 在實軸上,從第三個四分位數到最小值的距離為0.01。 從第三個四分位數到最大值的距離超過0.583。 更遠58倍! 根據我的理解, density
試圖選擇一種在所有值上均能正常工作的帶寬。 在這種情況下,帶寬可能很小,因為大多數值聚集在一起接近於0。在這種情況下,您可能會得到非常退化的密度圖,其中有兩條垂直線,一條在左邊,一條在上面。對。 我能夠使用以下方法生成一個這樣的圖:
plot(density(c(rnorm(100, 0, 0.001), 100)))
我要做的只是從正態分布中抽樣,SD為0.001,然后向該分布中添加一個離群值100。 密度看起來像這樣: 密度值肯定看起來像它們可能會混淆頻率,但事實並非如此。 當然,如果我刪除異常值,則估計的密度函數將呈鍾形:
因此,似乎您需要從數據中刪除異常值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.