いくつかのリスクについてモンテカルロ演算を行っていますが、システムは正しく動作しますが、標準偏差は完全にオフです。この値をシミュレートすると、システムは100%正確です。モンテカルロ標準偏差方程式
リスクの入力変数は、最良のケースコスト値、最悪のコスト値、最も高いコスト値、リスク発生確率、推定値(平均*確率)です。
私の現在の実装では、この(ジャワ/ Apexで):
public static Double calculateStandardDeviation(Decimal max, Decimal min, Decimal mostLikely, Decimal eV, Decimal prob){
Double sum = 0,
probability = prob;
//uses standard SD calculation
sum += (min - eV) * (min - eV);
sum += (max - eV) * (max - eV);
sum += (mostLikely - eV) * (mostLikely - eV);
//if the probability is not 100%, apply it to the calculation
if(prob != 0){
sum *= prob;
}
return Math.sqrt(sum);
}
更なる例:
Iが値を有するリスクがある場合:(最大= 300、最小= 100、mostLikely = 200、eV = 150、Prob = 75%)。私のシステムを通じてこのリスクを実行すると、標準偏差は26.2です。私が知っている値は正しいです94(これは正しく機能するには/ 2にする必要がありますが)。この価値はどうやって得られるでしょうか?
より正確な方程式の助けがあれば幸いです。 :)
あなたはここでどのような分布をしていますか?もともと、三角分布を記述していると思っていましたが、標準偏差を計算するには最小、最大、およびモードが必要です。 – andand
私は三角形を使って、確率を適用しています。私はここでこの確率をテストとして適用していますので、ここでは適用しないと思うならばprobを無視してください。 –
あなたがやった方程式を思いついたのはまだ分かりませんが、私が助けてくれることを希望する答えを投稿しました。三角分布の標準偏差を計算するためのソースが異なる場合は、それを入力してください。さもなければ、私はあなたのコードがstdevを計算するのに必要なものであるかどうか直ちにはわかりません。 – andand