2016-11-29 8 views
1

일부 위험 요소에 대해 Monte Carlo 연산을 수행하면 시스템은 올바르게 작동하지만 표준 편차는 완전히 해제됩니다. 이 값을 시뮬레이션 할 때 시스템은 100 % 정확합니다.Monte Carlo 표준 편차 방정식

내가 가진 위험의 입력 변수는 최상의 경우 비용 값, 최악의 비용 값, 가장 가능성있는 비용 값, 위험 발생 확률 및 예상 값 (평균 * 확률)입니다.

내 현재 구현은이 (자바/아펙스 내)

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가되어야하지만). 이 값을 어떻게 얻을 수 있습니까?

더 정확한 방정식에 대한 도움을 주시면 매우 감사하겠습니다! :)

+0

여기서 어떤 모델링을 배포하고 계십니까? 원래 삼각형 분포를 설명한다고 생각했지만 표준 편차를 계산하기 위해서는 min, max 및 mode 만 필요합니다. – andand

+0

삼각형을 사용하고 확률을 적용하고 있습니다. 이 확률을 테스트로 적용 했으므로 여기에 적용해서는 안된다고 생각한다면 prob를 무시하십시오. –

+0

당신이했던 방정식을 어디에서 생각해 냈는지 확실하지 않지만 아래에 내가 도움이 될만한 답변을 게시했습니다. 삼각형 분포의 표준 편차를 계산할 다른 출처가 있다면 그것을 제공하십시오. 그렇지 않으면, 나는 당신의 코드가 stdev를 계산하는 데 필요한 것과 같은 것이 아닌지 즉시 알 수 없다. – andand

답변

1

min, maxmode와 삼각형 분포를 감안하면, 평균은으로 주어진다

mean = (min + max + mode)/3 

및 분산은 [source] 주어진다 :

var = (min^2 + max^2 + mode^2 - min*max - min*mode - max*mode)/18 

따라서 표준 편차 [source] :

stdev = sqrt(var) 
     = sqrt((min^2 + max^2 + mode^2 - min*max - min*mode - max*mode)/18) 
+0

감사합니다, 이것은 제가 찾고 있던 것입니다. EV와 비교하여 값이 더 가깝습니다. –