高校数学の質問スレ(医者・東大卒専用) Part438 (991レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

736
(3): 02/22(土)07:37 ID:C9pebjv4(1) AAS
(* 感度と特異度のリスト *)
sen = {30, 5, 5, 97}/100;
spc = {68, 95, 95, 60}/100;

(* すべての組み合わせを生成 *)
result = Tuples[{0, 1}, Length[sen]];

(* 事前確率 *)
prior = 1/2;

(* 尤度比の計算 *)
LikelihoodRatioPositive[s_, sp_] := s / (1 - sp);
LikelihoodRatioNegative[s_, sp_] := (1 - s) / sp;

(* 事後確率を求める関数 *)
fposterior[obs_, prior_, sen_, spc_] := Module[
{odds, lr},
odds = prior / (1 - prior); (* 事前オッズ *)
lr = Times @@ Table[
If[obs[[i]] == 1,
LikelihoodRatioPositive[sen[[i]], spc[[i]]],
LikelihoodRatioNegative[sen[[i]], spc[[i]]]
],
{i, Length[sen]}
];
odds = odds * lr; (* 事後オッズ *)
odds / (1 + odds) (* 事後確率 *)
];

(* すべての組み合わせに対して計算 *)
res = fposterior[#, prior, sen, spc] & /@ result;

(* 事後確率のリストを表示 *)
res

(* 事後確率をソート *)
sortedRes = Sort[res]

(* すべて陽性のときの事後確率 *)
fposterior[{1, 1, 1, 1}, prior, sen, spc]
% // N

(* すべて陰性のときの事後確率 *)
fposterior[{0, 0, 0, 0}, prior, sen, spc]
% // N

(* 最大の事後確率 *)
maxRes = Max[res]
% // N

(* 最大の事後確率を持つ組み合わせ *)
Extract[result, Position[res, maxRes]]

(* 最小の事後確率 *)
minRes = Min[res]
% // N

(* 最小の事後確率を持つ組み合わせ *)
Extract[result, Position[res, minRes]]
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.041s