Radiant

Simulate

daisy9 2022. 6. 15. 10:28

이번 포스팅에서는 Radiant 에서 시뮬레이션을 돌리는 것에 대해 알아보도록 하겠다.

시뮬레이션이라고 하면 모호한 느낌이 많이 드는데, 서로 다른 분포를 따르는 변수를 가지고 어떤 결과가 궁금할 때 사용할 수 있다.

이 기능은 Model -> Simulate 에 있다.

1. Simulate

먼저 아래와 같은 창이 보인다.

 

- Select types 에서는 어떤 분포를 사용할 것인지 모두 선택해주면 된다.

 

분포를 선택하면 각 분포별로 매개변수를 입력하면 된다.

Name 은 변수의 이름을 말한다.

마지막에 '+' 를 클릭하여 아래의 칸에 넣어주는 것을 잊지 않도록 하자!

 

 

 

 

 

한꺼번에 여러 값을 입력해도 되고

 

 

 

 

 

Constant 도 입력할 수 있으니 참고하자.

 

 

 

 

변수를 모두 입력한 후에는 시뮬레이션 돌리는 것과 관련된 것을 결정해주면 된다.

- Set random seed: 다른 코딩 프로그램과 마찬가지로, 같은 시드에서는 같은 데이터를 사용하여 랜덤이더라도 매번 동일한 결과를 낼 수 있다.

- #sims : 시뮬레이션 횟수

- simulated data: 시뮬레이션을 돌린 데이터 이름

- Decimals: 소수 몇째자리까지 계산할 것인지

 

 

모두 결정했으면 오른쪽 창에 내가 계산하고 싶은 formula 를 적어주면 된다.

단, 이 formula 에 들어가는 변수는 내가 정의한 변수이어야 하며, 변수명에는 빈칸이나 기타 심볼이 들어가면 안 된다.

 

Show plot 으로 그래프도 확인할 수 있다.

 

단순 계산식 뿐만 아니라 로직함수로 확률계산도 가능하다.

 

아래의 예시를 보면, 변수명에 띄어쓰기가 불가능하므로 '_' 으로 대신한 것을 볼 수 있다.

또 '#' 은 계산식에 포함되지 않으므로 기타 설명을 쓰고 싶을 때 쓰면 된다. Rstudio 와 같은 문법이다. 

 

로직함수로 많이 사용하는 것은 등호나 부등호 이외에 ifelse 도 있다.

사용방법은 아래를 참고하자.

 

ifelse 안에 ifelse 를 또 넣을 수 있어 복잡한 논리식을 전개할 때 유용하다.

 

마지막으로 식을 알맞게 세웠는지 검토하기 위해 직접 값을 넣어보고 확인할 수 있다.

 

 

이렇게 Simulate 에서 만든 새 변수는 데이터로 따로 저장되므로 Manage 와 View 에서 확인할 수 있다.

 

2. Repeat

위와 같은 시뮬레이션을 여러 번 반복하고 싶을 때 Repeat 탭을 활용할 수 있다.  

예를 들어, 월별 수익을 계산하고 모두 더해서 일 년의 수익을 알고 싶다면, 해당 시뮬레이션을 12번 반복하면 될 것이다.

 

- Variables to re-simulate: 시뮬레이션을 돌리면서 바뀌는 변수, 즉 매번 값이 변하는 변수이다. 예를 들어, '월별' 수익을 계산할 때 달라지는 변수를 여기에 넣어주면 된다. ex. 고객 수.   cf. 직원 월급이나 메뉴 가격은 매달 바뀌지 않을 것이므로 포함하면 안 된다.

- Output variables: 반응변수를 말하며, 월별 수익을 모두 더하고 싶다면 '수익'을 여기에 넣어주면 된다.

- Group by: 시뮬레이션을 여러 번 돌릴 때 관측값을 어떻게 묶을 지 선택해야 한다.

Simulation: 각 관측치를 모든 시뮬레이션에 대해 처리한다

Repeat: 각 시뮬레이션에 대해 모든 관측치를 처리한다 (주로 무언가를 최대화할 때의 최적값을 구할 때 사용)

이 경우, 월별 수익을 모두 더해야 하므로, Group by Simulation 을 선택해야 한다.

 

 

 

 

그 다음 Apply function 은 내가 시뮬레이션 데이터를 어떻게 처리할 지 골라주면 되는데, 월별 수익을 합한 일년 총 수익이 궁금하다면 'sum'을 선택하면 된다.

 

 

 

 

 

 

마지막으로 #reps 만 주의해서 넣어주면 된다.

월별 수익을 모두 합해서 총 '1년'의 수익이 궁금하다면

월이 12개가 있으니 12번 반복하면 된다.

 

 

 

 

이제 formula 를 넣을 차례이다.

'E' 가 Simulate 에서 계산한 월별 수익이라고 할 때, 우리는 이 것의 합이 궁금하기 때문에 'E_sum' 을 해주어야 한다.

 

주의해야 할 점은, 이런 식으로 합/평균 등을 해주는 것은 왼쪽의 'Apply function' 에서 선택한 것만 가능하며, 형태는 항상 '변수명_함수' 형태로 만들어주어야 한다.

 

 

Repeat 에서도 로직함수를 아래와 같이 적용할 수 있다.

 

이 때, 여기서 쓰인 변수는 Simulate 에서 만든 변수들이다.