是否有简单的方法来绘制两个概率密度函数之间的差异?
我可以在同一个绘图上绘制我的数据集的pdf(两者都是一维向量,大约11000个值),以便了解重叠/差异,但如果我能看到它对我来说会更有用一个差异的情节。
以下内容(虽然这显然不起作用):
> plot(density(data1)-density(data2))
我对R比较陌生,无法在任何论坛上找到我想要的内容。
提前致谢
答案 0 :(得分:5)
这应该有效:
plot(x =density(data1, from= range(c(data1, data2))[1],
to=range(c(data1, data2))[2] )$x,
y= density(data1, from= range(c(data1, data2))[1],
to=range(c(data1, data2))[2] )$y-
density(data2, from= range(c(data1, data2))[1],
to=range(c(data1, data2))[2] )$y )
诀窍是确保密度具有相同的限制。然后你可以在相同的位置绘制他们的差异。我对相同限制的需要的理解来自于在回答similar question on Rhelp several years ago时没有采取这一步骤的错误。太糟糕了,我记不起正确的论点。
答案 1 :(得分:1)
看起来您需要花一点时间学习如何使用R(或任何其他语言)。帮助文件是你的朋友。
从?density
的输出:
价值[即函数返回的数据]
如果give.Rkern为真,则为数字R(K),否则为具有类的对象 “密度”,其底层结构是一个包含该列表的列表 以下组件。
x估计密度的点的n个坐标。
y估计的密度值。这些都是非负面的,但可以 为零[为了简洁而删除“值”的剩余部分]
所以,做:
foo<- density(data1)
bar<- density(data2)
plot(foo$y-bar$y)