설명
이 프로그램은 솔루션에 대한 명시적인 문서를 구성합니다.
경제의 일반 균형 모델을 해결하는 데 사용되는 알고리즘
Goskomstat의 보고서에 따른 러시아의 WTO 가입 효과
소비자 지출 조사. 해당 모델에는 55094가구가 있습니다. 에 대한
자세한 내용은 작업 문서를 참조하세요.
러시아의 WTO 가입이 빈곤에 미치는 영향: "실제" 가구 모델링
그리고 내생적 생산성 효과.
콜로라도 대학교 토마스 러더퍼드
데이비드 타르(세계은행)
메릴랜드 대학교 올렉산드르 셰포틸로(Oleksandr Shepotylo)
2004년 9월
연락처: dtarr@worldbank.org
이것은 간단한 교환 모델을 공식화하는 작은 슬롯 커뮤니티 프로그램입니다.
여러 가구를 대상으로 하며 모델이 어떻게 해결될 수 있는지 보여줍니다.
"상향식" 모드(소비자의 명시적인 표현 포함)
모델의 수요) 또는 연속적인 계산을 통해
"하향식" 모델.
이 모델의 기본 구성은 1000가구입니다. 는
프로그램 출력은 보고 매개변수 itrlog입니다.
다음과 같이 표시됩니다:
---- 459 매개변수 itrlog 균형 가격 수준
상향식 iter0 iter1 iter2 iter3 iter4 iter5
i1 0.96239 0.95735 0.96309 0.96230 0.96241 0.96239 0.96239
i2 0.99602 0.99546 0.99607 0.99601 0.99602 0.99602 0.99602
i3 1.00449 1.00511 1.00439 1.00451 1.00449 1.00450 1.00449
i4 1.05347 1.05983 1.05275 1.05355 1.05346 1.05347 1.05347
i5 0.98992 0.98869 0.99005 0.98990 0.98992 0.98992 0.98992
i6 1.01483 1.01677 1.01456 1.01487 1.01483 1.01483 1.01483
i7 1.00364 1.00420 1.00353 1.00365 1.00363 1.00364 1.00364
i8 0.93811 0.93088 0.93903 0.93800 0.93813 0.93811 0.93812
i9 1.02511 1.02800 1.02476 1.02515 1.02510 1.02511 1.02511
i10 1.01202 1.01371 1.01176 1.01206 1.01201 1.01202 1.01202
CPU 0.36100 0.03000 0.04000 0.03000 0.03000 0.03000 0.02000
델타 0.25639 0.03186 0.00407 0.00052 0.00007 8.740106E-6
대형 슬롯 커뮤니티 유형 :MPSGE
카테고리 : 슬롯 커뮤니티 모델 라이브러리
메인 파일 : decomphh.gms
$title 다수 가구의 GE 모델에 대한 연속 재보정 알고리즘 (DECOMPHH,SEQ=304)
$onText
이 프로그램은 솔루션에 대한 명시적인 문서를 구성합니다.
경제의 일반 균형 모델을 해결하는 데 사용되는 알고리즘
Goskomstat의 보고서에 따른 러시아의 WTO 가입 효과
소비자 지출 조사. 해당 모델에는 55094가구가 있습니다. 에 대한
자세한 내용은 작업 문서를 참조하세요.
러시아의 WTO 가입이 빈곤에 미치는 영향: "실제" 가구 모델링
그리고 내생적 생산성 효과.
콜로라도 대학교 토마스 러더퍼드
데이비드 타르(세계은행)
메릴랜드 대학교 올렉산드르 셰포틸로(Oleksandr Shepotylo)
2004년 9월
연락처: dtarr@worldbank.org
이것은 간단한 교환 모델을 공식화하는 작은 슬롯 커뮤니티 프로그램입니다.
여러 가구를 대상으로 하며 모델이 어떻게 해결될 수 있는지 보여줍니다.
"상향식" 모드(소비자의 명시적인 표현 포함)
모델의 수요) 또는 연속적인 계산을 통해
"하향식" 모델.
이 모델의 기본 구성은 1000가구입니다. 는
프로그램 출력은 보고 매개변수 itrlog입니다.
다음과 같이 표시됩니다:
---- 459 매개변수 itrlog 균형 가격 수준
상향식 iter0 iter1 iter2 iter3 iter4 iter5
i1 0.96239 0.95735 0.96309 0.96230 0.96241 0.96239 0.96239
i2 0.99602 0.99546 0.99607 0.99601 0.99602 0.99602 0.99602
i3 1.00449 1.00511 1.00439 1.00451 1.00449 1.00450 1.00449
i4 1.05347 1.05983 1.05275 1.05355 1.05346 1.05347 1.05347
i5 0.98992 0.98869 0.99005 0.98990 0.98992 0.98992 0.98992
i6 1.01483 1.01677 1.01456 1.01487 1.01483 1.01483 1.01483
i7 1.00364 1.00420 1.00353 1.00365 1.00363 1.00364 1.00364
i8 0.93811 0.93088 0.93903 0.93800 0.93813 0.93811 0.93812
i9 1.02511 1.02800 1.02476 1.02515 1.02510 1.02511 1.02511
i10 1.01202 1.01371 1.01176 1.01206 1.01201 1.01202 1.01202
CPU 0.36100 0.03000 0.04000 0.03000 0.03000 0.03000 0.02000
델타 0.25639 0.03186 0.00407 0.00052 0.00007 8.740106E-6
i1부터 i10까지 표시된 행은 다양한 모델의 균형 가격을 보고합니다.
"bottomup"은 통합 모형의 균형 가격을 제시합니다.
각 가구가 명시적으로 모델링되었습니다. 기둥
"iter0", "iter1" 등으로 라벨이 붙은 균형 가격을 보고합니다.
근사 절차의 연속 단계. 주의할 점은
상향식 모델은 마지막 세 번의 반복에서 소수점 다섯 자리에 동의합니다.
분해 절차.
'CPU'라고 표시된 행은 경과 시간(슬롯 커뮤니티를 사용하여 계산됨)을 보고합니다.
내부 함수 "system.timeexec")를 처리하는 데 필요합니다.
모델. (단, 1000가구 미만의 경우에도
분해 절차는 통합 상향식보다 훨씬 빠릅니다.
모델.)
"델타"라고 표시된 행은 각 단계에서 계산된 편차를 보고합니다.
분해 과정에서. 이 편차는 의 1-노름입니다.
한 반복에서 다음 반복까지 계산된 균형 가격의 변화.
델타가 1e-5 아래로 떨어지면 분해 알고리즘이 종료됩니다.
키워드: 혼합 상보성 문제, 일반 평형 모형, 상수
규모에 따른 수확, 소비, 무역 정책, 세계 무역 기구,
소득 그룹, 생산성
$offText
* 여기에서 모델의 치수를 정의합니다.
$설정되지 않은 경우 nhh $set nhh 1000
세트
h '가구' / h1*h%nhh% /
i '상품' / i1*i10 /;
별칭(i,j);
* 무작위로 생성된 입력 데이터 사용:
매개변수
c0(i,h) '기준 소비 수준'
e0(i,h) '상품 기부금'
timestart '런타임'
sigma(h) '수요의 대체 탄력성';
c0(i,h) = 균일(0,1);
e0(i,h) = 균일(0,1);
시그마(h) = 균일(0.25, 2);
* Cobb-Douglas와 CES 수요 함수를 모두 코딩하는 지루함을 피하세요.
시그마(h)$(abs(시그마(h) - 1) < 0.01) = 0.99;
c0, e0, 시그마를 표시합니다.
* 완전히 분리된 가구 세트를 사용하여 모델을 선언하고 해결합니다.
$onText
$MODEL:상향식
$상품:
피(i)
$소비자:
ㅎ(h)
$DEMAND:hh(h) s:시그마(h)
e:p(i) q:e0(i,h)
d:p(i) q:c0(i,h)
$offText
$sysInclude mpsgeset 상향식
* MPSGE 모델을 고차원적으로 공식화하면
* 할당된 작업 공간을 수동으로 늘리는 데 필요한 경우가 많습니다. 여기
* 작업 공간 배열에 50MB를 할당합니다.
* 10,000 가구 이상에 적합합니다.
Bottomup.workSpace = 50;
* 상향식 모델을 한 번에 해결:
타임스타트 = system.timeExec;
$include BOTTOMUP.GEN
mcp를 사용하여 상향식 해결;
매개변수 itrlog(*,*) '균형 가격 수준';
itrlog("CPU","bottomup") = system.timeExec - timestart;
itrlog(i,"bottomup") = p.l(i)*card(i)/sum(j, p.l(j));
* 다음으로, 다음을 사용하여 동일한 모델을 재귀적으로 해결합니다.
* 연속 재보정 알고리즘:
* 하향식 모델은 단일 대표자를 기반으로 함
* 선호도가 연속적으로 조정되는 에이전트
* 지역적으로 나타나는 '공동체 무차별 곡선'
* 기본 가구 기부금 및 선호도를 설명합니다.
매개변수
theta(i,h) '가계 벤치마크 예산 비중'
pc(h) '가계소비물가지수'
u(h) '가계 효용 지수(c0에 상대적)'
pref(i) '기준 가격'
cref(i) '기준 수요량';
* 벤치마크 예산 지분을 계산합니다.
세타(i,h) = c0(i,h)/sum(j, c0(j,h));
* 초기에 공동체 무차별곡선을 보정한다
* 심플렉스 중심 가격대 기준:
u(h) = 합계(i, e0(i,h))/sum(i, c0(i,h));
cref(i) = sum(h, c0(i,h)*u(h));
pref(i) = 1;
* Top-down 모델은 다음과 같습니다. 이 모델에는 h 세트가 나타나지 않습니다.
$onText
$MODEL:하향식
$상품:
피(나) ! 상품 가격
$소비자:
라! 대표 대리인 :
* 기본 설정은 Cobb-Douglas입니다.
$DEMAND:ra s:1
e:p(i) q:(합(h, e0(i,h)))
d:p(i) q:cref(i) p:pref(i)
$offText
$sysInclude mpsgeset topdown
* 가격 시스템을 정상화하기 위해 총소득 수정:
ra.fx = sum(h, hh.l(h));
iter '투영 알고리즘의 반복' 설정 / iter0*iter10 /;
매개변수 델타 '수렴 측정항목' / 1 /;
* 절대 가격 변화의 합이 작은 수준으로 줄어들 때까지 반복합니다.
루프(iter$(delta > 1e-5),
* 각 반복 내에서 하향식 모델을 해결합니다. 참고하세요
* 모델이 작고 크기가 작기 때문에 각 솔루션은 매우 저렴합니다.
* 이전 반복의 솔루션이 이미 마련되어 있습니다.
타임스타트 = system.timeexec;
$에는 TOPDOWN.GEN이 포함됩니다.
mcp를 사용하여 하향식을 해결합니다.
itrlog("CPU",iter) = system.timeExec - timestart;
* 현재 편차를 기록하십시오:
delta = sum(i, abs(p.l(i) - pref(i)));
itrlog("델타",iter) = 델타;
* 반복 로그 업데이트:
itrlog(i,iter) = p.l(i)*card(i)/sum(j, p.l(j));
* 대표 대리인의 선호도를 재조정합니다.
* 개별 가구의 요구사항:
pc(h) = sum(i, theta(i,h)*p.l(i)**(1 - 시그마(h)))**(1/(1 - 시그마(h)));
* 가구 h에 대한 효용 지수(c0 대비):
u(h) = sum(i, e0(i,h)*p.l(i))/(pc(h)*sum(i, c0(i,h)));
* 대표제 기준 소비량 :
cref(i) = sum(h, c0(i,h)*u(h)*(pc(h)/p.l(i))**sigma(h));
pref(i) = p.l(i);
);
옵션 itrlog:5;
itrlog를 표시합니다;