R中的分布和密度

时间:2016-03-30 17:31:51

标签: r probability-density

我正在对截断的分布进行一些研究,特别是关于截断的Pareto分布。这具有已知的密度函数和概率函数,因此可以设计分位数函数并且具有“随机生成数字”函数。

但是现在我有了这些功能,让我们说dtp(x,lower,upper,alpha)是我的密度函数,我如何绘制实际密度?我知道存在像density()这样使用内核估计的命令,但是应该能够借助密度函数本身和随后的分布函数绘制密度函数?

1 个答案:

答案 0 :(得分:1)

绘制标准的标准方法是获得x值和y值,然后绘制它们。你有一个将x值转换为y值的函数,这意味着您需要做的就是选择要绘制的x值并将它们赋予您的函数,例如:

x = seq(0, 10, length.out = 100)
y = dtp(x = x)
plot(x, y, type = "l")

请注意,如果您有lowerupperalpha的合适默认值,或者您需要指定它们,我不知道这是否是您的密度的合理域等等。

或者,像curve这样的基本绘图函数只需要一个函数和一个域,你可以通过其他参数。

curve(dtp, from = 0, to = 10, n = 101)
curve(dtp, from = 0, to = 10, n = 101, alpha = 0.2) # specifying alpha

如果您更喜欢ggplot,那么stat_function就是您的功能。

library(ggplot2)
ggplot(data.frame(x = c(0, 10), aes(x = x)) +
  stat_function(fun = dtp)

ggplot(data.frame(x = c(0, 10), aes(x = x)) +
  stat_function(fun = dtp, args = list(alpha = 0.2))
  # passing alpha to dtp via args