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中構建這個矩陣?
在此先感謝