2
私は4つの列からなるデータフレームを持ち、最初の2つはユーザーと製品を識別するために使用され、最後の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には複数の異なる値を設定できます。私は
p(id2 = x | id2 = y) = sum_id1 (p(id2 = x | id1) * p(id1 | id2 = y))
を見つけることに興味がありますし、すべてのxとyのためのマトリックスとして、それを構成する、すなわち、ユーザがすでにいくつかのID2を持っていることを考えると、一定のID2を得る確率を見つけたいです。このケースでは、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 ...
ようになっているはずですので、私たちは、要素について
p(id2=1 | id2 = 2) = p(id2 = 1 | id1 = 1) * p(id1 = 1 | id2 = 2)
= 0.1111111*8.286866e-03 = 0.0009207628.
(1,3)我々としての要素(1,2)を取得します私は私が達成したいものを明確にあると思います
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でこの行列を構築することができます考えている?事前