【问题标题】:Joint probability of pairs in RR中对的联合概率
【发布时间】:2022-01-10 23:17:00
【问题描述】:

我有一个矩阵,其中包含来自序列的连续值对。

例如,在像[1,1,3,3,3,4,4,2,4,2,2] 这样的序列中,我会将以下对存储在一个矩阵中。

1, 1
1, 3
3, 3
3, 3
3, 4
4, 4
4, 2
2, 4
4, 2
2, 2

而且,我想获取每个唯一对的出现概率。

例如,对于像(a,b) 这样的一对,joint_prob(a,b) = cond_prob(b|a)/prob(a)

(1,1) 0.5
(1,3) 0.5
(3,3) 0.6
and so on..

有没有我可以在 R 中做到这一点而不必使用许多循环?通过使用内置库?有人可以帮助我以有效的方式做到这一点吗?

【问题讨论】:

  • 我并不完全清楚第二列是如何从序列中生成的。似乎第一列是减去最后一个元素的序列,第二列是减去第一个元素的序列。对吗?
  • 是的。没错

标签: r statistics probability data-transform


【解决方案1】:

这个怎么样?

d <- c(1,1,3,3,3,4,4,2,4,2,2)
tr <- NULL
for (i in 1:(length(d)-1)) {  # all bigrams
  tr <- rbind(tr, data.frame(x=d[i], y=d[i+1]))
}
tbl <- table(tr)
joint_prob <- tbl / rowSums(tbl) # joint probability table
joint_prob[1,1]
# 0.5
joint_prob[1,3]
# 0.5
joint_prob[3,3]
# 0.6666667

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    相关资源
    最近更新 更多