rank03.gms : libinclude 순위를 사용하여 다중 부문 Monte Carlo 결과 보고

설명

슬롯 머신를 이용한 경제 모델링에서 가장 난해한 과제 중 하나는
다부문 결과를 쉽게 해석할 수 있는 형식으로 제시합니다. 간단한 아이디어 하나
부문별 결과를 정렬된 순서로 제시하여 보다 쉽게 확인할 수 있도록 하는 것입니다.
가장 심각한 영향을 받는 부문을 식별합니다. 결과 발표
다부문 모델은 모델 결과가 다음과 같을 때 더욱 어려워집니다.
무작위 시나리오 세트에 대해 생성되었습니다. 몬테카를로 결과 요약
평균 결과와 민감도를 모두 보고하는 작업이 포함됩니다. 한 가지 수단
모델 결과의 민감도를 특성화하는 것은 다음의 기능을 보고하는 것입니다.
상위 및 하위 사분위수와 같은 표본 분포.

이 예에서는 $libInclude 순위를 사용하여 결과를 보고하는 데 도움이 되는 방법을 보여줍니다.
다부문 모델의 몬테카를로 분석.

키워드: 순위, 몬테카를로, 사분위수

카테고리 : 슬롯 머신 데이터 유틸리티 라이브러리


메인 파일 : rank03.gms 포함: rank03.gms ex3.gdx

$title libinclude 순위를 사용하여 다중 부문 Monte Carlo 결과 보고(rank03,SEQ=137)

$onText
슬롯 머신를 이용한 경제 모델링에서 가장 난해한 과제 중 하나는
다부문 결과를 쉽게 해석할 수 있는 형식으로 제시합니다. 간단한 아이디어 하나
부문별 결과를 정렬된 순서로 제시하여 보다 쉽게 확인할 수 있도록 하는 것입니다.
가장 심각한 영향을 받는 부문을 식별합니다. 결과 발표
다부문 모델은 모델 결과가 다음과 같을 때 더욱 어려워집니다.
무작위 시나리오 세트에 대해 생성되었습니다. 몬테카를로 결과 요약
평균 결과와 민감도를 모두 보고하는 작업이 포함됩니다. 한 가지 수단
모델 결과의 민감도를 특성화하는 것은 다음의 기능을 보고하는 것입니다.
상위 및 하위 사분위수와 같은 표본 분포.

이 예에서는 $libInclude 순위를 사용하여 결과를 보고하는 데 도움이 되는 방법을 보여줍니다.
다부문 모델의 몬테카를로 분석.

키워드: 순위, 몬테카를로, 사분위수
$offText

세트
   '샘플(잠재적으로 모두 해결되지는 않음)' 실행' / 1*1000 /
   i '결과를 비교할 부문'
       /ELE,OLE,OLP,가스,COA,OFU,FME,NFM,CHM,MWO,TPP
        CNM, CLO, FOO, OTH, CON, AGF, RLW, TRK, PIP, MAR, AIR
        TRO,TMS,PST,TRD,CAT,OIN,PSM,SSM,ECM,SCS,GEO,FIN,ADM /;

매개변수 v(run,i) '모든 부문에 대한 몬테카를로 결과';

* 민감도 분석의 부문별 결과를 로드합니다.
* GDX 파일:
$gdxIn 'ex3.gdx'
$로드 v

세트
   s(run) '해결된 사례'
   k '사분위수에 사용되는 개수' / 1*1000 /
   ki '섹터에 사용되는 개수' / 1*100 /
   qtl '사분위수(세트)' / q25, q50, q75 /
   imap(ki,i) '순서화된 목록에서 섹터 레이블로 매핑';

매개변수
   qvalue(i,*) '사분위수 값'
   평균(i) '부문 i에 대한 평균 영향'
   meanrank(i) '섹터 i의 평균 순위'
   x(run) '정렬에 사용되는 벡터'
   r(run) '반환된 순위 값'
   quartile(qtl) '사분위수(평가됨)'
   qv(qtl) '사분위수(값)' / q25 25, q50 50, q75 75 /;

* 해결된 시나리오 식별(일부 실행)
* 실패했을 수 있음):
s(실행) = yes$(smax(i,abs(v(run,i))) <> 0);

* 결과에 대한 수단과 지원을 평가합니다.
qvalue(i,"평균") = 합계(s, v(s,i))/카드(들);
qvalue(i,"min") = smin(s, v(s,i));
qvalue(i,"max") = smax(s, v(s,i));
q값 표시;

* 평균 영향을 기준으로 부문 순위를 결정합니다.
평균(i) = qvalue(i,"평균");
$libInclude 순위는 순위를 의미합니다.

* 다음 명령문은 주문된 것과 일치하는 튜플을 생성합니다.
* 세트, ki, 섹터 세트, i.  이 튜플에서 다음의 순서는
* 할당은 평균 영향 증가에 해당합니다.
imap(ki+(meanrank(i)-ord(ki)),i) = 예;

* 각 부문에 대한 부문별 영향의 사분위수를 평가합니다.
루프(나,
   x(s) = v(s,i);

* 백분위수와 함께 사분위수를 로드합니다.
* 평가(25위, 50위, 75위):
   사분위수(qtl) = qv(qtl);

$ libInclude 순위 x s r 사분위수

* 사분위수 값을 저장합니다.
   q값(i,qtl) = 사분위수(qtl);
);
q값 표시;

매개변수 결과(ki,i,*) '영향 요약(정렬)';
results(ki,i,"평균")$imap(ki,i) = 평균(i);
결과(ki,i,qtl)$imap(ki,i) = qvalue(i,qtl);
결과 표시;

* 설치된 gnuplot에 대한 표시기로 슬롯 머신 시스템 디렉토리의 inclib에 있는plot.gms 존재를 사용합니다.
$존재하지 않는 경우 "%슬롯 머신sysdir%inclib/plot.gms" $exit

* GNUPLOT 파일을 작성하여 결과 차트를 생성합니다.

파일 kplt / ex3.gnu /;
kplt를 넣어;
kplt.lw = 0;

"재설정"을 입력하세요/;
'제목 설정 "사분위수에 따른 부문별 영향"'/;
"선 스타일 설정 1 lt 8 lw 1 pt 8 ps 0.5"/;
"격자 설정"을 입력하세요/;
'set ylabel "% 변경"'을 입력하세요/;
"xzeroaxis 설정"을 입력하세요/;
"bmargin 4 설정"을 입력하세요/;
"xlabel '섹터' 설정"을 입력하세요/;
put 'set xrange [1:',card(i),']'/;
put 'xtics 회전 설정(';
loop(ki, loop(i$imap(ki,i), put '\'/' "',i.tl,'" ', ord(ki):0,',';));
넣어 @(file.cc-1) ')'/;
"오류 막대가 있는 'ex3.dat' 플롯 ls 1"/;
넣어닫다;

파일 kpltdata / ex3.dat /;
kpltdata를 넣어;
kpltdata.nr = 2;
kpltdata.nw = 14;
kpltdata.nd = 6;
loop(ki, loop(i$imap(ki,i), put ord(ki):0,qvalue(i,"평균"), qvalue(i,"q25"), qvalue(i,"q75")/;));
넣어닫다;
'wgnupl32 ex3.gnu -';를 실행합니다.