我正在对截断的分布进行一些研究,特别是关于截断的Pareto分布。这具有已知的密度函数和概率函数,因此可以设计分位数函数并且具有“随机生成数字”函数。
但是现在我有了这些功能,让我们说dtp(x,lower,upper,alpha)
是我的密度函数,我如何绘制实际密度?我知道存在像density()
这样使用内核估计的命令,但是应该能够借助密度函数本身和随后的分布函数绘制密度函数?
答案 0 :(得分:1)
绘制标准的标准方法是获得x
值和y
值,然后绘制它们。你有一个将x值转换为y值的函数,这意味着您需要做的就是选择要绘制的x
值并将它们赋予您的函数,例如:
x = seq(0, 10, length.out = 100)
y = dtp(x = x)
plot(x, y, type = "l")
请注意,如果您有lower
,upper
,alpha
的合适默认值,或者您需要指定它们,我不知道这是否是您的密度的合理域等等。
或者,像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