大家好。所以我知道这一定是非常基本的,但是什么是适当的,准确的方式来绘制一些示例数据的pdf,你知道来自一些流行。分发,就像你使用rnorm()
或rexp()
生成它一样?绘制数据样本PDF的正确方法?
我之所以这样问是因为我知道有很多人使用density()
,然后输入到这plot()
,但density()
功能似乎太武断是准确的;例如,当它接近来自指数分布(不具有负值)的数据的负值时,它是不准确的。值。
那么有人可以推荐我一个更精细的方法来完成绘制示例pdf的?
大家好。所以我知道这一定是非常基本的,但是什么是适当的,准确的方式来绘制一些示例数据的pdf,你知道来自一些流行。分发,就像你使用rnorm()
或rexp()
生成它一样?绘制数据样本PDF的正确方法?
我之所以这样问是因为我知道有很多人使用density()
,然后输入到这plot()
,但density()
功能似乎太武断是准确的;例如,当它接近来自指数分布(不具有负值)的数据的负值时,它是不准确的。值。
那么有人可以推荐我一个更精细的方法来完成绘制示例pdf的?
函数density
执行内核密度估计(KDE)。要为您的数据集找到最好的KDE,您应该调整带宽(参数bw
)。下面是讨论KDE和带宽选择纸:http://www.stat.washington.edu/courses/stat527/s13/readings/Sheather_StatSci_2004.pdf
或者一个简单的方法,你可以尝试不同带宽的方法来传递给bw
: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/bandwidth.html
当前默认的,“nrd0”,是有历史原因。我发现“ucv”和“bcv”对我的数据集工作得更好。
如果您的数据值接近于0,这些仍然会将密度泄漏到负值,除非您确实具有非常小的带宽。 –
ggplot
确实有助于在不合适的时候处理负值。它可以通过以下方式使用:
ggplot(df,
aes(x=contVar, fill = "green")) +
geom_density(alpha=.3)
我还要看看这个帖子在cross validated
虽然我认为上述答案以更技术更全面的方式解决了我的问题,但您的链接是一个很好的资源,并且非常感谢您。 – Coolio2654
类似的问题(或者至少相关的),有人问[stats.se] - 我[answer](https://stats.stackexchange.com/a/71291/1390)涵盖了关于变量的不合理负值的一点。 –