是否有简单的方法来绘制两个概率密度函数之间的差异?两个密度图之间的差异
我可以在同一个图上绘制我的数据集(都是具有大约11000个值的一维向量)的pdf,以获得重叠/差异的想法,但如果我可以对它更有用看到一个差异的阴谋。
沿东西线以下的(尽管这显然是不工作):
> plot(density(data1)-density(data2))
我是比较新的R和一直无法找到我寻找任何的论坛。
在此先感谢
是否有简单的方法来绘制两个概率密度函数之间的差异?两个密度图之间的差异
我可以在同一个图上绘制我的数据集(都是具有大约11000个值的一维向量)的pdf,以获得重叠/差异的想法,但如果我可以对它更有用看到一个差异的阴谋。
沿东西线以下的(尽管这显然是不工作):
> plot(density(data1)-density(data2))
我是比较新的R和一直无法找到我寻找任何的论坛。
在此先感谢
这应该工作:
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时没有采取这一步骤的错误。太糟糕了,我不记得正确的论点。
它看起来像你需要花一点时间来学习如何使用R(或任何其他语言,对于这个问题)。帮助文件是你的朋友。 从输出?density
:
值[即由该函数返回的数据]
如果give.Rkern为真,则数R(K),以其他方式与类 ,其基本结构是一个包含 以下组分的列表中的“密度”的对象。
x估计密度点的n个坐标。
y估计的密度值。这些都将是不可否定的,但可以 为零
所以[ “价值” 为简洁起见删除的剩余部分],做:
foo<- density(data1)
bar<- density(data2)
plot(foo$y-bar$y)
@Joran - 感谢您的清理。而DWin提供了一个很好的观点:默认情况下,'density'使用512点,但是如果你使用网格或者data1和data2的范围不同,你需要确保foo $ x和bar $ x是“对齐“。 – 2012-01-10 19:18:49
我编辑你的答案(非常),以帮助你避免被标记。我也对初学者感到沮丧,但这个缩写词可能会以错误的方式揉搓人,并且通常在这里受到折磨。 – joran 2012-01-10 19:19:02
感谢您的洞察力。我读过密度,但我想我对R语法不够熟悉,无法正确使用它告诉我的内容。学习过程的所有部分! – 2012-01-10 19:21:14
感谢您的帮助 – 2012-01-10 19:26:15