R中的联合概率
Posted
技术标签:
【中文标题】R中的联合概率【英文标题】:Joint probability in R 【发布时间】:2022-01-05 16:48:47 【问题描述】:我有一个离散值 X = x1, x2, x3...xn 的有限序列,我想计算序列中每对元素的联合概率。即 P(x1, x2), P(x2, x3) 等。我应该如何在 R 中实现它?我没有太多在 R 中进行此类分析的经验。是否有任何内置函数可以做同样的事情?
【问题讨论】:
【参考方案1】:如果你假设独立,那么联合概率是微不足道的,你有 $P(a,b)=P(a)P(b)$。否则,您需要单独估计每一对的概率。
为此,您可以使用mapply
获取相同形式的对的列表,然后您可以使用每对的相对丰度来估计概率。这里我只是说明一点,我没有运行这段代码。
L <- length(X)
X.pairs <- mapply(
function(x1, x2) paste(x1, x2, sep=','),
X[1:(L-1)],
X[2:L]
)
table(X.pairs)
编辑:这是离散值。
【讨论】:
【参考方案2】:你需要使用
library(MASS)
den2d <- kde2d(x,y)
image(den2d)
persp(den2d,phi=30,theta=20)
这在 MASS 书籍第 5.6 节密度估计的二维数据小节中有描述。有例子和进一步的参考。由于版权原因,我无法在此处发布他们的示例。
【讨论】:
谢谢。但是,这不只适用于连续有价值的数据吗?那么离散呢? 它会正常工作。当您提供实际数字的有限向量时,它们始终是离散的。如果你想让它变得不那么平滑,那么就使用内核参数。专家写了密度估计方面的书,所以如果你读了这些书,你会比我知道的更多。以上是关于R中的联合概率的主要内容,如果未能解决你的问题,请参考以下文章