- 犯行は現場に居ないと犯せない
- 現場に居て、動機があっても犯すとは限らない
- 現場に居ると、動機があってもなくても、何かの拍子に犯すかも
- 確率的に考えても、「最後の犯行実行者は1人(とわかっているときは)」なら、「可能性のある複数人から選ぶ」必要が出る
- "values=c(0.1,0.99,0.05,0.005,0.0001,0.9999,0,1,0,1,0,1)"の末尾の6つの数字が0,1,0,1,0,1なのは、動機の強弱に寄らず、居あわせなければ犯人じゃない、ということを表す
- 強い動機と弱い動機と動機なしの3通りにおいて、犯行に及ぶ確率を0.1,0.05,0.0001としてある
- この数字はもっとよく考えるべき(犯行の内容(殺人と、ごみのポイ捨て)ではずいぶん違う)
- また、壁に噛み跡を残した犯人、とかだとすると、Xが犬なのか、人なのかで、「動機」と犯行に及ぶ確率との関係を変える方が妥当である、など、も考慮事項
- 2人とも、「犯行に及んだだろう」と推定されたら、「本当はどっちがやった?」を0.5:0.5で割り振る。(どちらも犯行に及ばなかった、と言う場合も0.5:0.5にする。ただし、犯行が起きてしまったというエビデンスがあれば、その項はネットワークの計算で吸収されるから関係ない)
Cs <- list()
Cs[[1]] <- cptable(~C1|M1:L1,values=c(0.1,0.99,0.05,0.005,0.0001,0.9999,0,1,0,1,0,1),levels=c("1","0"))
Cs[[2]] <- cptable(~C2|M2:L2,values=c(0.1,0.99,0.05,0.005,0.0001,0.9999,0,1,0,1,0,1),levels=c("1","0"))
Cr <- cptable(~Cr|C1:C2,values=c(1,0,1,0,1,0,0,1),levels=c("1","0"))
E <- cptable(~E|C1:C2,values=c(0.5,0.5,1,0,0,1,0.5,0.5),levels=c("p1","p2"))
plist <- compileCPT(list(ps[[1]],ps[[2]],Ls[[1]],Ls[[2]],Ms[[1]],Ms[[2]],Cs[[1]],Cs[[2]],Cr,E))
net4 <- grain(plist)
net5 <- setEvidence(net4,nodes=c("Cr"),states=c("1"))
querygrain(net5,nodes=c("E"))
- 犯行があった、という事実を入れると、動機付けだけで容疑者Xが犯行に及んだという確率が相当高くなっている
> querygrain(net5,nodes=c("E"))
$E
E
p1 p2
0.98540052 0.01459948