2
我有一个由四列组成的数据框,前两个用于识别用户和产品,后两个是条件概率。我的最终数据框如下所示:R - 构造条件概率矩阵
id1 id2 p(id2|id1) p(id1|id2)
1 1 1 0.1111111 4.290376e-04
2 1 2 0.22222222 8.286866e-03
3 1 3 0.22222222 2.639876e-04
4 1 4 0.44444444 2.850284e-03
5 2 1 0.09090909 1.644470e-03
6 2 5 0.2727273 3.286420e-04
7 2 6 0.4545455 1.002740e-03
8 2 3 0.1818182 1.738019e-05
并且有更多的用户来了。正如你所看到的,我们可以为属于同一个id1的id2拥有多个不同的值。我想找到获得一定的ID2的可能性,因为用户已经有一些ID2,即我感兴趣的是找到
p(id2 = x | id2 = y) = sum_id1 (p(id2 = x | id1) * p(id1 | id2 = y))
,并构建它为所有的X和Y的矩阵。在这种情况下,我们有6种不同的ID2,因此所得到的矩阵应该是这个样子
1 2 3 4 5 6
1 NA 0.0009207628 3.091197e-05 .... .... ....
2 9.534169e-05 NA ...
3 0.0003943363 ...
4 ...
5 ...
6 ...
我们拿到的元素(1,2)为
p(id2=1 | id2 = 2) = p(id2 = 1 | id1 = 1) * p(id1 = 1 | id2 = 2)
= 0.1111111*8.286866e-03 = 0.0009207628.
对于元素(1,3),我们得到
p(id2 = 1 | id2 = 3) = p(id2 = 1 | id1 = 1) * p(id1 = 1 | id2 = 3)
+ p(id2 = 1 | id1 = 2) * p(id1 = 2 | id2 = 3)
= 0.1111111 * 2.639876e-04 + 0.09090909 * 1.738019e-05 = 3.091197e-05
我希望很清楚我想完成什么。有没有人有任何想法如何在R中构建这个矩阵?
在此先感谢