2017-09-12 70 views
3

大家好。所以我知道这一定是非常基本的,但是什么是适当的,准确的方式来绘制一些示例数据的pdf,你知道来自一些流行。分发,就像你使用rnorm()rexp()生成它一样?绘制数据样本PDF的正确方法?

我之所以这样问是因为我知道有很多人使用density(),然后输入到这plot(),但density()功能似乎太武断是准确的;例如,当它接近来自指数分布(不具有负值)的数据的负值时,它是不准确的。值。

那么有人可以推荐我一个更精细的方法来完成绘制示例pdf的?

+1

类似的问题(或者至少相关的),有人问[stats.se] - 我[answer](https://stats.stackexchange.com/a/71291/1390)涵盖了关于变量的不合理负值的一点。 –

回答

1

函数density执行内核密度估计(KDE)。要为您的数据集找到最好的KDE,您应该调整带宽(参数bw)。下面是讨论KDE和带宽选择纸:http://www.stat.washington.edu/courses/stat527/s13/readings/Sheather_StatSci_2004.pdf

或者一个简单的方法,你可以尝试不同带宽的方法来传递给bwhttps://stat.ethz.ch/R-manual/R-devel/library/stats/html/bandwidth.html

当前默认的,“nrd0”,是有历史原因。我发现“ucv”和“bcv”对我的数据集工作得更好。

+1

如果您的数据值接近于0,这些仍然会将密度泄漏到负值,除非您确实具有非常小的带宽。 –

0

ggplot确实有助于在不合适的时候处理负值。它可以通过以下方式使用:

ggplot(df, 
     aes(x=contVar, fill = "green")) + 
    geom_density(alpha=.3) 

我还要看看这个帖子在cross validated

+0

虽然我认为上述答案以更技术更全面的方式解决了我的问题,但您的链接是一个很好的资源,并且非常感谢您。 – Coolio2654