張欣《可計算一般均衡模型的基本原理與編程》(第二版)練習(xí)程序

第14章練習(xí):

1. 注意1,2,3題使用的數(shù)據(jù)是第13章的

出口由活動變?yōu)樯唐?/div>

2、3.

$title 張欣-chapter14-練習(xí)1
*生產(chǎn)模塊第一層為列昂惕夫函數(shù);第二層增值為CES函數(shù),第二層中間投入為列昂惕夫函數(shù);居民效用函數(shù)為LES函數(shù)
*新古典主義閉合:投資外生,政府開支總額固定,外匯市場固定匯率,F(xiàn)SAV內(nèi)生

*定義所有賬戶ac和生產(chǎn)活動a
set
ac /sec1,sec2,sec3,com1,com2,com3,lab,cap,hh,ent,gov,vatl,vatk,tariff,invsav,row,total/
a(ac) /sec1,sec2,sec3/
c(ac)/com1,com2,com3/
f(ac) /lab,cap/
vat(ac)/vatl,vatk/
;
set acnt(ac)  除了總數(shù)之外的所有賬戶;
acnt(ac)=YES;
acnt('total')=NO;

alias(ac,acp),(a,ap),(c,cp),(f,fp),(vat,vatp);
alias(acnt,acntp);

*從excel導(dǎo)入數(shù)據(jù)-----------張欣第13章244頁表格數(shù)據(jù)錯誤!--------------
$CALL GDXXRW.EXE  output=sam14-1.gdx input=sam14-1.xlsx par=sam rng=a1:r18
parameter sam(ac,acp);
$GDXIN sam14-1.gdx
$LOAD sam
$GDXIN

parameter
*samchk(acnt)是錯誤的聲明;
samchk(ac);
samchk(acnt)=sum(acntp,sam(acntp,acnt))-sum(acntp,sam(acnt,acntp));

display samchk;

parameter  rhoQA(a)    /sec1=0.2,   sec2= 0.3,  sec3= 0.1/
           rhoQVA(a)   /sec1=0.3,   sec2=0.2,  sec3=0.5/
           rhoQQ(c)   /com1=0.4,   com2=0.6,  com3=0.4/
           rhoCET(c)  /com1=1.4,   com2=1.4,  com3=2.0/
           LESelas(c) /com1=0.4,   com2=1.2,  com3=1.5/
           Frisch    /-2/;
parameters

scaleQVA(a)      QVA的CES函數(shù)規(guī)模參數(shù)
deltaQVA(a)      QVA的CES函數(shù)份額參數(shù)
iVA(a)           QA的要素投入系數(shù)
iINTA(a)         QA的中間投入投入系數(shù)
scaleCET(c)      CET函數(shù)規(guī)模參數(shù)
deltaCET(c)      CET函數(shù)份額參數(shù)
scaleQQ(c)       QQ的arminton函數(shù)參數(shù)
deltaQQ(c)       QQ的arminton函數(shù)份額參數(shù)
ica(c,a)         中間投入的投入產(chǎn)出系數(shù)
sax(a,c)         活動a和商品c之間的分配比例(QA->QX)
bgtshr(c)        LES函數(shù)中消費預(yù)算商品c的份額
bgtshrchk        LES函數(shù)中消費預(yù)算商品c的份額參數(shù)檢驗
LESbeta(c)       LES邊際消費額
LESbetachk       LES邊際消費額參數(shù)檢驗
LESsub(c)        LES消費函數(shù)生存消費量

WL0              勞動價格
WK0              資本價格
QLD0(a)          勞動需求
QKD0(a)          資本需求
PVA0(a)          要素增值部分匯總價格
QVA0(a)          要素增值部分匯總量
PINTA0(a)        中間投入總價格
QINTA0(a)        中間投入總量
QINT0(c,a)       中間投入個量
PA0(a)           生產(chǎn)活動a的價格
QA0(a)           生產(chǎn)活動a的數(shù)量
PX0(c)           國內(nèi)生產(chǎn)活動生產(chǎn)的商品c的價格
QX0(c)           國內(nèi)生產(chǎn)活動生產(chǎn)的商品c的數(shù)量
PD0(c)           國內(nèi)生產(chǎn)國內(nèi)使用商品c的價格
QD0(c)           國內(nèi)生產(chǎn)國內(nèi)使用商品c的數(shù)量
PE0(c)           國內(nèi)生產(chǎn)商品c出口的價格
QE0(c)           國內(nèi)生產(chǎn)商品c出口的數(shù)量
PQ0(c)           國內(nèi)銷售商品C的價格
QQ0(c)           國內(nèi)銷售商品C的數(shù)量
PM0(c)           進口商品c的價格
QM0(c)           進口商品c的數(shù)量
EXR0             匯率
pwm(c)           進口商品c的國際價格
pwe(c)           出口活動c的國際價格

tih               居民所得稅稅率
tient             企業(yè)所得稅率
tval(a)           對勞動投入的增值稅率
tvak(a)           對資本投入的增值稅率
tbus(a)           對生產(chǎn)活動a的營業(yè)稅率,間接稅
transfr_HGov0     政府對居民的轉(zhuǎn)移支付
transfr_EntGov0   政府對企業(yè)的轉(zhuǎn)移支付
transfr_HEnt0     企業(yè)對居民的轉(zhuǎn)移支付(私人保險支付保險金等)
transfr_HRow0     國外對居民的轉(zhuǎn)移支付(勞務(wù)輸出、外匯匯款等)
transfr_EntRow0   國外對企業(yè)的轉(zhuǎn)移支付
transfr_GovRow0   國外對政府的轉(zhuǎn)移支付
shifhk           資本收入對居民的分配份額
shifentk         資本收入對企業(yè)分配份額
mpc              居民邊際消費傾向
tm(c)            進口稅率
te(c)            出口稅率

QLS0         居民的勞動供應(yīng)量
QKS0         居民的資本供應(yīng)量
YH0          居民收入
EH0          居民消費總額
QH0(c)       居民對商品c的需求
shrh(c)      居民收入對商品c的消費比例
YENT0        企業(yè)收入
EINV0        投資總額
QINV0(c)     對商品c的投資最終需求
ENTSAV0      企業(yè)儲蓄
shrg(c)      政府消費中對商品c的消費比例
YG0          政府收入
EG0          政府支出
QG0(c)       政府對商品c的需求
GSAV0        政府儲蓄
PGDP0        國民生產(chǎn)總值的價格指數(shù)
GDP0       國民生產(chǎn)總值
FSAV0        國外儲蓄

EG0chk       用來檢驗和EG0是不是一致
vadded0      總增值
GDP0chk      增值法和支出法兩個方法是不是一致
EINV0chk     儲蓄平衡檢驗值
;

*參數(shù)(包括外生變量)賦值與校準
*-------------------------------------------------------------------------------
*-------------------------------1.生產(chǎn)模塊--------------------------------------
*-------------------------------------------------------------------------------

*1.1要素增值QVA函數(shù)參數(shù)校準
WL0=1;
WK0=1;
QLD0(a)=sam('lab',a)/WL0;
QKD0(a)=sam('cap',a)/WK0;
tval(a)=sam('vatl',a)/sam('lab',a);
tvak(a)=sam('vatk',a)/sam('cap',a);
PVA0(a)=1;
*活動a的增值量(公式14.5.6) 注意包含要素增值稅
QVA0(a)=(sum(f,sam(f,a))+sam('vatl',a)+sam('vatk',a))/PVA0(a);
deltaQVA(a)=WL0*(1+tval(a))*QLD0(a)**(1-rhoQVA(a))/(WL0*(1+tval(a))*QLD0(a)**(1-rhoQVA(a))+WK0*(1+tvak(a))*QKD0(a)**(1-rhoQVA(a)));
scaleQVA(a)=QVA0(a)/(deltaQVA(a)*QLD0(a)**rhoQVA(a)+(1-deltaQVA(a))*QKD0(a)**rhoQVA(a))**(1/rhoQVA(a));

*1.2中間投入QINT函數(shù)參數(shù)校準
PQ0(c)=1;
QINT0(c,a)=sam(c,a)/PQ0(c);
QINTA0(a)=sum(c,QINT0(c,a));
ica(c,a)=QINT0(c,a)/QINTA0(a);

PINTA0(a)=sum(c,ica(c,a)*PQ0(c));

*1.3國內(nèi)生產(chǎn)活動總產(chǎn)出QA的列昂惕夫函數(shù)參數(shù)校準
PA0(a)=1;
*PA*QA=國內(nèi)生產(chǎn)活動總產(chǎn)出
QA0(a)=sam('total',a)/PA0(a);
iVa(a)=QVA0(a)/QA0(a);
iINTA(a)=QINTA0(a)/QA0(a);

*1.4 QA->QX
*課本上sax(a,c)=sam(a,c)/QX0(c)是錯的吧?
sax(a,c)=sam(a,c)/sum(ap,sam(ap,c));
*PX0(c)=sum(a,sax(a,c)*PA0(a));

*-------------------------------------------------------------------------------
*-------------------------------2.貿(mào)易模塊--------------------------------------
*-------------------------------------------------------------------------------

*2.1國內(nèi)銷售商品與出口商品的替代關(guān)系的CET函數(shù)參數(shù)校準
PD0(c)=1;
PE0(c)=1;
PM0(c)=1;
PX0(c)=1;
*13章207頁,PQ0(c)=1, 但14章236頁用公式計算??
PQ0(c)=1;
QX0(c)=sum(a,sam(a,c))/PX0(c);
QE0(c)=sam(c,'row')/PE0(c);
QD0(c)=(PX0(c)*QX0(c)-PE0(c)*QE0(c))/PD0(c);
QM0(c)=(sam('tariff',c)+sam('row',c))/PM0(c);
**書上QD0,QQ的公式不對??
QQ0(c)=(PD0(c)*QD0(c)+PM0(c)*QM0(c))/PQ0(c);
deltaCET(c)=PD0(c)*QD0(c)**(1-rhoCET(c))/(PD0(c)*QD0(c)**(1-rhoCET(c))+PE0(c)*QE0(c)**(1-rhoCET(c)));
scaleCET(c)=QX0(c)/(deltaCET(c)*QD0(c)**rhoCET(c)+(1-deltaCET(c))*QE0(c)**rhoCET(c))**(1/rhoCET(c));

te(c)=0;
EXR0=1;
pwe(c)=PE0(c)/((1-te(c))*EXR0);

*2.2國內(nèi)銷售商品QQ的CES函數(shù)參數(shù)校準
deltaQQ(c)=PD0(c)*QD0(c)**(1-rhoQQ(c))/(PD0(c)*QD0(c)**(1-rhoQQ(c))+PM0(c)*QM0(c)**(1-rhoQQ(c)));
scaleQQ(c)=QQ0(c)/(deltaQQ(c)*QD0(c)**rhoQQ(c)+(1-deltaQQ(c))*QM0(c)**rhoQQ(c))**(1/rhoQQ(c));
*注意商品若沒有進口,分母為0
tm(c)$sam('row',c)=sam('tariff',c)/sam('row',c);
pwm(c)=PM0(c)/((1+tm(c))*EXR0);


*-------------------------------------------------------------------------------
*-------------------------------3.消費模塊--------------------------------------
*-------------------------------------------------------------------------------

*3.1居民LES效用函數(shù)參數(shù)校準
EH0=sum(c,sam(c,'hh'));
*課本上的Y其實是EH0吧,122頁??
bgtshr(c)=sam(c,'hh')/EH0;
bgtshrchk=sum(c,bgtshr(c));
*將beta按規(guī)模調(diào)整
LESbeta(c)=LESelas(c)*bgtshr(c)/sum(cp,LESelas(cp)*bgtshr(cp));
LESbetachk=sum(c,LESbeta(c));
LESsub(c)=sam(c,'hh')/PQ0(c)+(LESbeta(c)/PQ0(c))*(EH0/Frisch);

QLS0=sam('total','lab')/WL0;
QKS0=sam('total','cap')/WK0;
shifhk=sam('hh','cap')/WK0/QKS0;
transfr_HGov0=sam('hh','gov');
transfr_HEnt0=sam('hh','ent');
transfr_HRow0=sam('hh','row');
YH0=WL0*QLS0+WK0*shifhk*QKS0+transfr_HGov0+transfr_HEnt0+transfr_HRow0*EXR0;
tih=sam('gov','hh')/YH0;
mpc=EH0/((1-tih)*YH0);
QH0(c)=sam(c,'hh');

*3.2企業(yè)投資與儲蓄參數(shù)校準
shifentk=(sam('ent','cap')/WK0)/QKS0;
transfr_EntGov0=sam('ent','gov');
transfr_EntRow0=sam('ent','row');
YENT0=shifentk*WK0*QKS0+transfr_EntGov0+transfr_EntRow0*EXR0;
tiEnt=sam('gov','ent')/YENT0;
QINV0(c)=sam(c,'invsav');
ENTSAV0=(1-tient)*YENT0-transfr_HEnt0;
EINV0=sum(c,PQ0(c)*QINV0(c));

*3.3政府收入與支出參數(shù)校準--------------------------
transfr_GovRow0=sam('gov','row');
shrg(c)=sam(c,'gov')/sum(cp,sam(cp,'gov'));
YG0=sum(a,tval(a)*WL0*QLD0(a)+tvak(a)*WK0*QKD0(a))+tih*YH0+tiEnt*YENT0+sum(c,tm(c)*pwm(c)*QM0(c)*EXR0)
+sum(c,te(c)*pwe(c)*QE0(c)*EXR0)+transfr_GovRow0*EXR0;
QG0(c)=sam(c,'gov')/PQ0(c);
GSAV0=sam('invsav','gov');
EG0=YG0-GSAV0;
shrg(c)=PQ0(c)*QG0(c)/(EG0-transfr_HGov0-transfr_EntGov0-transfr_GovRow0*EXR0);

*3.4GDP參數(shù)
GDP0=sum(c,QH0(c)+QG0(c)+QINV0(c)+QE0(c)-QM0(c));
PGDP0=(sum(c,PQ0(c)*(QH0(c)+QINV0(c)+QG0(c)))+sum(c,PE0(c)*QE0(c))-sum(c,PM0(c)*QM0(c))+sum(c,tm(c)*pwm(c)*EXR0*QM0(c)))/GDP0;

*-------------------------------------------------------------------------------
*-------------------------------檢查校驗值--------------------------------------
*-------------------------------------------------------------------------------
FSAV0=sam('invsav','row');
EG0chk=sum(c,sam(c,'gov'))+transfr_HGov0+transfr_EntGov0-EG0;
vadded0=sum(a,(1+tval(a)*WL0)*QLD0(a)+(1+tvak(a)*WK0)*QKD0(a))+sum(c,tm(c)*pwm(c)*QM0(c)*EXR0);
GDP0chk=vadded0-PGDP0*GDP0

display ica,sax,QVA0,QX0,QE0,QD0,QM0,QQ0,EH0,bgtshrchk,LESbetachk,LESbeta,LESsub,
YH0,YENT0,EINV0,YG0,EG0,GSAV0,GDP0,PGDP0,EG0chk,GDP0chk;

display transfr_EntRow0,transfr_EntGov0,transfr_HGov0;

variable
WL,QLD(a),WK,QKD(a),PVA(a),QVA(a),PINTA(a),QINTA(a),QINT(c,a),PA(a),QA(a),PX(c),QX(c),
PD(c),QD(c),PE(c),QE(c),PM(c),QM(c),EXR,PQ(c),QQ(c),QLS,QKS,
YH,EH,QH(c),YENT,ENTSAV,EINV,YG,EG,QG(c),QINV(c),GSAV,FSAV,
PGDP,GDP,WALRAS;

equation
QVAfn(a),QVAFOC(a),PVAeq(a),QINTfn(c,a),PINTAeq(a),QAfn1(a),QAfn2(a),PAeq(a),QAfn(a),PXfn(c),
CETfn(c),CETFOC(c),PXCETeq(c),PEeq(c),QQfn(c),QQFOC(c),PQeq(c),PMeq(c),
YHeq,EHeq,QHeq(c),YENTeq,ENTSAVeq,EINVeq,YGeq,QGeq(c),GSAVeq,ComEqui(c),Leq,Keq,FEXeq,ISeq,
GDPeq,PGDPeq;
*Iseq

*下面對等式定義
*-------------------------------------------------------------------------------
*-------------------------------1.生產(chǎn)模塊--------------------------------------
*-------------------------------------------------------------------------------

*1.1要素增值QVA函數(shù)
QVAfn(a)..
QVA(a)=e=scaleQVA(a)*(deltaQVA(a)*QLD(a)**rhoQVA(a)+(1-deltaQVA(a))*QKD(a)**rhoQVA(a))**(1/rhoQVA(a));
QVAFOC(a)..
((1+tval(a))*WL)/((1+tvak(a))*WK)=e=(deltaQVA(a)/(1-deltaQVA(a)))*(QKD(a)/QLD(a))**(1-rhoQVA(a));
PVAeq(a)..
PVA(a)*QVA(a)=e=(1+tval(a))*WL*QLD(a)+(1+tvak(a))*WK*QKD(a);

*1.2中間投入QINT
QINTfn(c,a)..
QINT(c,a)=e=ica(c,a)*QINTA(a);
PINTAeq(a)..
PINTA(a)=e=sum(c,ica(c,a)*PQ(c));

*1.3國內(nèi)生產(chǎn)活動總產(chǎn)出QA的列昂惕夫函數(shù)
QAfn1(a)..
QVA(a)=e=iVA(a)*QA(a);
QAfn2(a)..
QINTA(a)=e=iINTA(a)*QA(a);
PAeq(a)..
PA(a)=e=iVA(a)*PVA(a)+iINTA(a)*PINTA(a);

*1.4國內(nèi)生產(chǎn)活動QA->國內(nèi)商品QX
QAfn(a)..
QA(a)=e=sum(c,sax(a,c)*QX(c));
PXfn(c)..
PX(c)=e=sum(a,sax(a,c)*PA(a));

*-------------------------------------------------------------------------------
*-------------------------------2.貿(mào)易模塊--------------------------------------
*-------------------------------------------------------------------------------

*2.1國內(nèi)消費商品與出口商品替代關(guān)系的CET函數(shù)
CETfn(c)..
QX(c)=e=scaleCET(c)*(deltaCET(c)*QD(c)**rhoCET(c)+(1-deltaCET(c))*QE(c)**rhoCET(c))**(1/rhoCET(c));
CETFOC(c)..
PD(c)/PE(c)=e=(deltaCET(c)/(1-deltaCET(c)))*(QE(c)/QD(c))**(1-rhoCET(c));
PXCETeq(c)..
PX(c)*QX(c)=e=PD(c)*QD(c)+PE(c)*QE(c);
PEeq(c)..
PE(c)=e=pwe(c)*(1-te(c))*EXR;

*2.2國內(nèi)銷售商品QQ的CES函數(shù)
QQfn(c)..
QQ(c)=e=scaleQQ(c)*(deltaQQ(c)*QD(c)**rhoQQ(c)+(1-deltaQQ(c))*QM(c)**rhoQQ(c))**(1/rhoQQ(c));
QQFoc(c)..
PD(c)/PM(c)=e=(deltaQQ(c)/(1-deltaQQ(c)))*(QM(c)/QD(c))**(1-rhoQQ(c));
PQeq(c)..
PQ(c)*QQ(c)=e=PD(c)*QD(c)+PM(c)*QM(c);
PMeq(c)..
PM(c)=e=pwm(c)*(1+tm(c))*EXR;

*-------------------------------------------------------------------------------
*-------------------------------3.消費模塊--------------------------------------
*-------------------------------------------------------------------------------

*3.1居民行為
YHeq..
YH=e=WL*QLS+shifhk*WK*QKS+transfr_HGov0+transfr_HEnt0+transfr_HRow0*EXR;
EHeq..
EH=e=mpc*(1-tih)*YH;
QHeq(c)..
PQ(c)*QH(c)=e=PQ(c)*LESsub(c)+LESbeta(c)*(EH-sum(cp,PQ(cp)*LESsub(cp)));

*3.2企業(yè)行為
YENTeq..
YENT=e=shifentk*WK*QKS+transfr_EntGov0+transfr_EntRow0*EXR;
ENTSAVeq..
ENTSAV=e=(1-tiEnt)*YENT-transfr_HEnt0;
EINVeq..
EINV=e=sum(c,PQ(c)*QINV(c));

*3.3政府行為
YGeq..
YG=e=sum(a,tval(a)*WL*QLD(a)+tvak(a)*WK*QKD(a))+tih*YH+tiEnt*YENT+sum(c,tm(c)*pwm(c)*QM(c)*EXR)+sum(c,te(c)*pwe(c)*QE(c)*EXR)+transfr_GovRow0*EXR;
QGeq(c)..
PQ(c)*QG(c)=e=shrg(c)*(EG-transfr_HGov0-transfr_EntGov0);
GSAVeq..
GSAV=e=YG-EG;

*-------------------------------------------------------------------------------
*-------------------------------4.平衡模塊--------------------------------------
*-------------------------------------------------------------------------------

*4.1商品市場均衡:總供應(yīng)=總需求(居民消費+政府消費+固定投資+中間投入)
ComEqui(c)..
QQ(c)=e=sum(a,QINT(c,a))+QH(c)+QINV(c)+QG(c);

*4.2要素市場均衡:總供應(yīng)=總需求
Leq..
sum(a,QLD(a))=e=QLS;
Keq..
sum(a,QKD(a))=e=QKS;

*4.3國際市場外匯收支平衡:進口=出口+國外儲蓄
FEXeq..
sum(c,pwm(c)*QM(c))=e=sum(c,pwe(c)*QE(c))+FSAV+(transfr_HRow0+transfr_EntRow0+transfr_GovRow0)*EXR;

*4.4投資儲蓄平衡:投資總額=儲蓄總額
ISeq..
EINV=e=(1-mpc)*(1-tih)*YH+ENTSAV+GSAV+EXR*FSAV+WALRAS;

*4.5GDP等式
GDPeq..
GDP=e=sum(c,QH(c)+QG(c)+QINV(c)+QE(c)-QM(c));
PGDPeq..
PGDP*GDP=e=sum(c,PQ(c)*(QH(c)+QINV(c)+QG(c)))
+sum(c,PE(c)*QE(c))-sum(c,PM(c)*QM(c))+sum(c,tm(c)*pwm(c)*QM(c)*EXR);

*賦予變量的初始值
WL.l=1;
WK.l=1;
QLD.l(a)=QLD0(a);
QKD.l(a)=QKD0(a);
PVA.l(a)=PVA0(a);
QVA.l(a)=QVA0(a);
PINTA.l(a)=PINTA0(a);
QINTA.l(a)=QINTA0(a);
QINT.l(c,a)=QINT0(c,a);
PA.l(a)=PA0(a);
QA.l(a)=QA0(a);
PX.l(c)=QX0(c);
QX.l(c)=QX0(c);
PE.l(c)=PE0(c);
QE.l(c)=QE0(c);
PD.l(c)=PD0(c);
QD.l(c)=QD0(c);
PM.l(c)=PM0(c);
QM.l(c)=QM0(c);
PQ.l(c)=PQ0(c);
QQ.l(c)=QQ0(c);
EXR.l=1;
YH.l=YH0;
QLS.l=QLS0;
QKS.l=QKS0;
QH.l(c)=QH0(c);
EH.l=EH0;
YENT.l=YENT0;
ENTSAV.l=ENTSAV0;
EINV.l=EINV0;
QINV.l(c)=QINV0(c);
YG.l=YG0;
QG.l(c)=QG0(c);
GSAV.l=GSAV0;
EG.l=EG0;
FSAV.l=FSAV0;
GDP.l=GDP0;
PGDP.l=PGDP0;
WALRAS.l=0;

*---------------------------閉合條件-----------------------------
*新古典主義閉合
QLS.fx=QLS0;
QKS.fx=QKS0;
QINV.fx(c)=QINV0(c);
EG.fx=EG0;
*固定匯率算一個基準價格,不需要再固定勞動價格
EXR.fx=1;
*固定國外儲蓄才能保證貨幣中性,固定政府支出不符合貨幣中性
*FSAV.fx=FSAV0;

*復(fù)制初始均衡狀態(tài)
model cge/all/;
solve cge using mcp;
display PQ.l,PM.l,QM.l,EXR.l,gdp0,gdp.l,pgdp.l,WALRAS.l;

問題:

  • 為什么固定國外儲蓄才能保證貨幣中性,固定政府支出不符合貨幣中性?

4. 注意第4題,題目說第一層生產(chǎn)函數(shù)是CES,而1-3題的第一層生產(chǎn)函數(shù)是列昂惕夫生產(chǎn)函數(shù),所以這里用例14.7.2的數(shù)據(jù)。

$title  練習(xí)4 全要素生產(chǎn)率提高對經(jīng)濟的影響

*定義集合所有賬戶 ac和生產(chǎn)活動a
set ac   /sec1,sec2soe,sec2pri,sec2fdi,sec3,com1,com2,com3,lab,cap,hhr,hhu,ent,gov,vatl,vatk,bustax,tariff,invsav,row,total/;
set a(ac)  /sec1,sec2soe,sec2pri,sec2fdi,sec3/;
set c(ac)  /com1,com2,com3/;
set f(ac)  /lab,cap/;
set h(ac)  /hhr,hhu/;
set vat(ac) /vatl,vatk/;
set acnt(ac)  除了總數(shù)之外的所有賬戶;
acnt(ac)=YES; acnt('total')=NO;

alias (ac,acp),(a,ap),(c,cp),(f,fp),(h,hp),(vat,vatp);
alias (acnt,acntp);

*從excel導(dǎo)入數(shù)據(jù)
$CALL GDXXRW.EXE output=sam14.gdx input=sam14.xlsx par=sam rng=a1:v22
parameter sam(ac,acp);
$GDXIN sam14.gdx
$LOAD sam
$GDXIN

*先檢查SAM表數(shù)值是否有誤。方法:行列總和是否相等。
parameters
samchk(ac);

*行列總和誤差,應(yīng)該等于零;
samCHK(acnt)=sum(acntp,SAM(acntp,acnt))-sum(acntp,SAM(acnt,acntp));
display samchk,sam;

*生產(chǎn)函數(shù)參數(shù)
parameter  rhoAa(a)   /sec1 =   0.2,   sec2soe = 0.5,  sec2pri = 0.5, sec2fdi = 0.5, sec3 = 0.1/
           rhoVA(a)   /sec1     0.3,   sec2soe = 0.6,  sec2pri = 0.6, sec2fdi = 0.6, sec3   0.5/
           rhoQq(c)   /com1     0.4,   com2   0.7,  com3   0.2/
           rhoCET(c)  /com1     1.4,   com2   1.4,  com3   2.0/;

*定義參數(shù)
parameters
sax(a,c)         活動a和商品c之間的分配比例
scaleAa(a)       QA的CES函數(shù)參數(shù)
deltaAa(a)       QA的CES函數(shù)份額參數(shù)
scaleQq(c)       QQ的Arminton函數(shù)參數(shù)
deltaQq(c)       QQ的Arminton函數(shù)份額參數(shù)
scaleCET(c)      CET函數(shù)參數(shù)
deltaCET(c)      CET函數(shù)份額參數(shù)
scaleAVA(a)      VA的CES函數(shù)參數(shù)
deltaVA(a)       VA的CES函數(shù)勞動份額參數(shù)
ica(c,a)         中間投入的投入產(chǎn)出系數(shù)
shrh(c,h)        居民群h收入對商品c的消費支出份額
shrg(c)          政府收入中對商品c的消費支出份額
tih(h)           居民群h的所得稅稅率
tiEnt            企業(yè)所得稅稅率
tval(a)          對勞動投入的增值稅率
tvak(a)          對資本投入的增值稅率
tbus(a)          對生產(chǎn)活動a的營業(yè)稅率,間接稅率
transfrHG0(h)    政府對居民群h的轉(zhuǎn)移收入
transfrEntG0     政府對企業(yè)的轉(zhuǎn)移收入
transfrhent0(h)  企業(yè)對居民群h的轉(zhuǎn)移收入(私人保險公司支付保險金等)
transfrhrow0(h)  國外對居民群h的轉(zhuǎn)移支付(勞務(wù)輸出,外匯匯款等)
transfrEntRow0   國外對企業(yè)的轉(zhuǎn)移支付
transfrgRow0     國外對政府的轉(zhuǎn)移支付
shifhl(h)        勞動要素稟賦中居民群h的份額
shifhk(h)        資本收入分配給居民群h的份額
shifentk         資本收入分配給企業(yè)的份額
mpc(h)           居民群h的邊際消費傾向(這里也是平均消費傾向)
tm(c)            進口稅率
te(c)            出口稅率
PA0(a)           生產(chǎn)活動a的價格
QA0(a)           生產(chǎn)活動a的數(shù)量
PVA0(a)          增值部分(含增值稅)匯總價格
QVA0(a)          增值部分匯總量
PINTA0(a)        中間投入總價格
QINTA0(a)        中間投入總量
QINT0(c,a)       中間投入個量
QLD0(a)          勞動需求
QKD0(a)          資本需求
WL0              勞動價格
WK0              資本價格
PX0(c)           生產(chǎn)活動產(chǎn)出的QX商品c的價格
QX0(c)           生產(chǎn)活動產(chǎn)出的QX商品的數(shù)量
PQ0(c)           國內(nèi)市場商品c的價格
QQ0(c)           國內(nèi)市場商品c的數(shù)量
PM0(c)           進口商品c的價格
QM0(c)           進口商品c的數(shù)量
PE0(c)           國內(nèi)生產(chǎn)商品c出口的價格
QE0(c)           生產(chǎn)商品c出口的數(shù)量
PD0(c)           國內(nèi)生產(chǎn)國內(nèi)使用商品c的價格
QD0(c)           國內(nèi)生產(chǎn)國內(nèi)使用商品c的數(shù)量
EXR0             匯率
pwm(c)           進口商品c的國際價格
pwe(c)           出口生產(chǎn)活動c商品的國際價格
QLSAGG0          勞動量總供應(yīng)
QKSAGG0          資本量總供應(yīng)
QLS0(h)          居民群h的勞動量供應(yīng)
QKS0(h)          居民群h的資本量供應(yīng)
YH0(h)           居民群h收入
EH0(h)           居民h消費總額
QH0(c,h)         居民h對商品c的需求
YENT0            企業(yè)收入
EINV0            投資總額
QINV0(c)         對商品c的投資的最終需求
ENTSAV0          企業(yè)儲蓄
YG0              政府收入
EG0              政府支出
QG0(c)           政府對商品c的需求
GSAV0            政府儲蓄
PGDP0            國民生產(chǎn)總值價格指數(shù)
GDP0             實際國民生產(chǎn)總值
FSAV0            國外儲蓄
EG0chk           用來檢查和EG0是不是一致
vadded0          總增值,用它和支出法兩個方法來檢查是不是一致
GDP0chk          增值法和支出法兩個方法是不是一致
YHAGG0           所有居民的名義收入總量
;

*參數(shù)(包括外生變量)賦值與校調(diào)
PX0(c)=1;
QX0(c)=sum(a,sam(a,c))/PX0(c);
*注意這里書上漏掉了PX0
sax(a,c)=sam(a,c)/(QX0(c)*PX0(c));
PA0(a)=1;
PVA0(a)=1;
PD0(c)=1;
PE0(c)=1;
PM0(c)=1;
PQ0(c)=1;
*PQ0(國內(nèi)市場商品合成價格)由于有交易成本,起始值不一定等于1,要后面被估算求出來。
EXR0=1;
PINTA0(a)=1;
WK0=1;
WL0=1;
tval(a)=sam('vatl',a)/sam('lab',a);
tvak(a)=sam('vatk',a)/sam('cap',a);
tbus(a)=sam('bustax',a)/(sum(c,sam(c,a))+sum(f,sam(f,a)));
QLD0(a)=sam('lab',a)/WL0;
QKD0(a)=sam('cap',a)/WK0;
QVA0(a)=(SUM(f,sam(f,a))+sam('vatl',a)+sam('vatk',a))/PVA0(a);
QA0(a)=sam('total',a)/PA0(a);
QLS0(h)=sam(h,'lab')/WL0;
QKS0(h)=sam(h,'cap')/WK0;
QLSAGG0=sum(h,QLS0(h));
QKSAGG0=sum(h,QKS0(h))+sam('ent','cap')/WK0;

*下面為國外部分
*在tm(c)前加條件$sam('row',c),表示必須有進口數(shù)額方才可以執(zhí)行。這是因為要避免分母為零的情況。
tm(c)$sam('row',c)=sam('tariff',c)/sam('row',c);
pwm(c)=PM0(c)/((1+tm(c))*EXR0);
QM0(C)=(sam('row',c)+sam('tariff',c))/PM0(c);
te(c)=0;
pwe(c)=PE0(c)/((1-te(c))*EXR0);
QE0(c)=sam(c,'row')/PE0(c);
*這兩個式子有點問題,應(yīng)該是QX的總值分為QD,QE;QD,QM的總值與QQ價值相同
*QD0(c)=QX0(c)-QE0(c);
*QQ0(c)=QD0(c)+QM0(c);
QD0(c)=(PX0(c)*QX0(c)-PE0(c)*QE0(c))/PD0(c);
QQ0(c)=(PD0(c)*QD0(c)+PM0(c)*QM0(c))/PQ0(c);

*生產(chǎn)模塊的參數(shù)校調(diào)估算,因為要先獲取PQ數(shù)值,因此移到國外部分的后面
QINT0(c,a)=sam(c,a)/PQ0(c);
QINTA0(a)=SUM(c,QINT0(c,a));
ica(c,a)=QINT0(c,a)/QINTA0(a);
deltaAa(a)=PVA0(a)*QVA0(a)**(1-rhoAa(a))/(PVA0(a)*QVA0(a)**(1-rhoAa(a))+PINTA0(a)*QINTA0(a)**(1-rhoAa(a)));
scaleAa(a)=QA0(a)/(deltaAa(a)*QVA0(a)**rhoAa(a)+(1-deltaAa(a))*QINTA0(a)**rhoAa(a))**(1/rhoAa(a));
deltaVA(a)=((1+tval(a))*WL0)*QLD0(a)**(1-rhoVA(a))/(((1+tval(a))*WL0)*QLD0(a)**(1-rhoVA(a))+((1+tvak(a))*WK0)*QKD0(a)**(1-rhoVA(a)));
scaleAVA(a)=QVA0(a)/(deltaVA(a)*QLD0(a)**rhoVA(a)+(1-deltaVA(a))*QKD0(a)**rhoVA(a))**(1/rhoVA(a));
*CET function calibration
deltaCET(c)=PD0(c)*QD0(c)**(1-rhoCET(c))/(PD0(c)*QD0(c)**(1-rhoCET(c))+PE0(c)*QE0(c)**(1-rhoCET(c)));
scaleCET(c)=QX0(c)/(deltaCET(c)*QD0(c)**rhoCET(c)+(1-deltaCET(c))*QE0(c)**rhoCET(c))**(1/rhoCET(c));
*Arminton Condition 在國內(nèi)生產(chǎn)和進口商品之間的關(guān)系
deltaQQ(c)=PD0(c)*QD0(c)**(1-rhoQQ(c))/(PD0(c)*QD0(c)**(1-rhoQq(c))+PM0(c)*QM0(c)**(1-rhoQq(c)));
scaleQQ(c)=QQ0(c)/(deltaQQ(c)*QD0(c)**rhoQq(c)+(1-deltaQq(c))*QM0(c)**rhoQq(c))**(1/rhoQq(c));
transfrhg0(h)=sam(h,'gov');
transfrhent0(h)=sam(h,'ent');
transfrhrow0(h)=sam(h,'row');
transfrEntG0=sam('ent','gov');
transfrEntRow0=0;
transfrgRow0=sam('gov','row');
shifhl(h)=(sam(h,'lab')/WL0)/QLSAGG0;
shifhk(h)=(sam(h,'cap')/WK0)/QKSAGG0;
shifentk=(sam('ent','cap')/WK0)/QKSAGG0;
YH0(h)=shifhl(h)*WL0*QLSAGG0+shifhk(h)*WK0*QKSAGG0+transfrhent0(h)+transfrhg0(h)+transfrhrow0(h)*EXR0;
tih(h)=sam('gov',h)/YH0(h);
mpc(h)=sum(c,sam(c,h))/((1-tih(h))*YH0(h));
EH0(h)=mpc(h)*(1-tih(h))*YH0(h);
QH0(c,h)=SAM(c,h)/PQ0(c);
shrh(c,h)=(PQ0(c)*QH0(c,h))/EH0(h);
YENT0=shifentk*WK0*QKSAGG0+transfrEntG0;
QINV0(c)=sam(c,'invsav')/PQ0(c);
EINV0=sum(c,PQ0(c)*QINV0(c));
tiEnt=sam('gov','ent')/YEnt0;
ENTSAV0=(1-tiEnt)*YENT0-sum(h,transfrhEnt0(h));
YHAGG0=sum(h,YH0(h));
YG0=sum(h,tih(h)*YH0(h))+tiEnt*YENT0+sum(a,tval(a)*WL0*QLD0(a)+tvak(a)*WK0*QKD0(a))
    +sum(a,sam('bustax',a))+sam('gov','tariff')+sam('gov','row');
QG0(c)=sam(c,'gov')/PQ0(c);
GSAV0=sam('invsav','gov');
EG0=YG0-GSAV0;
shrg(c)=PQ0(c)*QG0(c)/(EG0-sum(h,transfrhg0(h))-transfrEntG0);
GDP0=sum(c,sum(h,QH0(c,h))+QINV0(c)+QG0(c)+QE0(c)-QM0(c));
PGDP0=(sum(c,PQ0(c)*(sum(h,QH0(c,h))+QINV0(c)+QG0(c))+PE0(c)*QE0(c)-PM0(c)*QM0(c)
       +tm(c)*pwm(c)*QM0(c)*EXR0))/GDP0;
FSAV0=sam('invsav','row');
EG0chk=sum(c,sam(c,'gov'))+transfrhg0('hhr')+transfrhg0('hhu')+transfrEntG0-EG0;
vadded0=sum(a,(1+tval(a))*WL0*QLD0(a)+(1+tvak(a))*WK0*QKD0(a))
+sum(a,tbus(a)*(PINTA0(a)*QINTA0(a)+PVA0(a)*QVA0(a)))+sum(c,tm(c)*pwm(c)*QM0(c)*EXR0);
GDP0chk=vadded0-PGDP0*GDP0;

display sax,ica,PQ0,EG0,EG0chk,PGDP0,GDP0,vadded0,GDP0chk;

variable
PA(a),PVA(a),PINTA(a),WL,WK,QA(a),QVA(a),QINTA(a),QINT(c,a),QLD(a),QKD(a),QX(c),QD(c),QE(c),PX(c),PD(c),
PE(c),PQ(c),QQ(c),PM(c),QM(c),YH(h),QH(c,h),QINV(c),QG(c),YENT,ENTSAV,EINV,YG,EG,GSAV,QLSAGG,QKSAGG,FSAV,
GDP,PGDP,EXR,walras
;

*下面對等式定義
equation

QAfn(a),QAFOCeq(a),PAeq(a),QVAfn(a),QVAFOC(a),PVAeq(a),QINTfn(c,a),PINTAeq(a),QAQXeq(a),PXeq(c),CETfn(c),CETFOC(c),PXCET(c),PEeq(c),QQfn(c),QQfnNoImport(c),QQFOC(c),PQPDCNoImportfn(c),PQeq(c),
PMeq(c),YHeq(h),QHeq(c,h),YENTeq,ENTSAVeq,EINVeq,Ygeq,QGeq(c),GSAVeq,ComEqui(c),Leq,Keq,FEXeq,ISeq,GDPeq,PGDPeq
;

QAfn(a)..
QA(a)=e=scaleAa(a)*(deltaAa(a)*QVA(a)**rhoAa(a)+(1-deltaAa(a))*QINTA(a)**rhoAa(a))**(1/rhoAa(a));

QAFOCeq(a)..
PVA(a)/PINTA(a)=e=(deltaAa(a)/(1-deltaAa(a)))*(QINTA(a)/QVA(a))**(1-rhoAa(a));

PAeq(a)..
PA(a)*QA(a)=e=(1+tbus(a))*(PVA(a)*QVA(a)+PINTA(a)*QINTA(a));

QVAfn(a)..
QVA(a)=e=scaleAVA(a)*(deltaVA(a)*QLD(a)**rhoVA(a)+(1-deltaVA(a))*QKD(a)**rhoVA(a))**(1/rhoVA(a));

QVAFOC(a)..
((1+tval(a))*WL)/((1+tvak(a))*WK)=e=(deltaVA(a)/(1-deltaVA(a)))*(QKD(a)/QLD(a))**(1-rhoVA(a));

PVAeq(a)..
PVA(a)*QVA(a)=e=(1+tval(a))*WL*QLD(a)+(1+tvak(a))*WK*QKD(a);

QINTfn(c,a)..
QINT(c,a)=e=ica(c,a)*QINTA(a);

PINTAeq(a)..
PINTA(a)=e=SUM(c,ica(c,a)*PQ(c));

QAQXeq(a)..
QA(a)=e=sum(c,sax(a,c)*QX(c));

PXeq(c)..
*PX(c)*QX(c)=e=sum(a,PA(a)*sax(a,c)*QA(a));
PX(c)=e=sum(a,PA(a)*sax(a,c));

CETfn(c)..
QX(c)=e=scaleCET(c)*(deltaCET(c)*QD(c)**rhoCET(c)+(1-deltaCET(c))*QE(c)**rhoCET(c))**(1/rhoCET(c));

CETFOC(c)..
PD(c)/PE(c)=e=(deltaCET(c)/(1-deltaCET(c)))*(QE(c)/QD(c))**(1-rhoCET(c));

PXCET(c)..
PX(c)*QX(c)=e=(PD(c)*QD(c)+PE(c)*QE(c));

PEeq(c)..
PE(c)=e=pwe(c)*(1-te(c))*EXR;

QQfn(c)$sam('row',c)..
QQ(c)=e=scaleQq(c)*(deltaQq(c)*QD(c)**rhoQq(c)+(1-deltaQq(c))*QM(c)**rhoQq(c))**(1/rhoQq(c));

QQfnNoImport(c)$(sam('row',c)=0)..
QQ(c)=e=QD(c);

QQFOC(c)$sam('row',c)..
PD(c)/PM(c)=e=(deltaQq(c)/(1-deltaQq(c)))*(QM(c)/QD(c))**(1-rhoQq(c));

PQPDCNoImportfn(c)$(sam('row',c)=0)..
PQ(c)=e=PD(c);

PQeq(c)..
PQ(c)*QQ(c)=e=PD(c)*QD(c)+PM(c)*QM(c);

PMeq(c)..
PM(c)=e=pwm(c)*(1+tm(c))*EXR;

YHeq(h)..
YH(h)=e=shifhl(h)*WL*QLSAGG+shifhk(h)*WK*QKSAGG+transfrhent0(h)+transfrhg0(h)+transfrhrow0(h)*EXR;

QHeq(c,h)..
PQ(c)*QH(c,h)=e=shrh(c,h)*mpc(h)*(1-tih(h))*YH(h);

YENTeq..
YENT=e=shifentk*WK*QKSAGG+transfrentg0+transfrEntRow0*EXR;

ENTSAVeq..
ENTSAV=e=(1-tiEnt)*YENT-sum(h,transfrhEnt0(h));

EINVeq..
EINV=e=sum(c,PQ(c)*QINV(c));

YGeq..
YG=e=sum(a,tval(a)*WL*QLD(a)+tvak(a)*WK*QKD(a))+sum(a,tbus(a)*(PINTA(a)*QINTA(a)+PVA(a)*QVA(a)))+sum(h,tih(h)*YH(h))
         +tiEnt*YENT+sum(c,tm(c)*pwm(c)*QM(c)*EXR)+sum(c,te(c)*pwe(c)*QE(c)*EXR)+transfrgrow0*EXR;

QGeq(c)..
PQ(c)*QG(c)=e=shrg(c)*(EG-sum(h,transfrhg0(h))-transfrEntg0);

GSAVeq..
GSAV=e=YG-EG;

ComEqui(c)..
QQ(c)=e=sum(a,QINT(c,a))+sum(h,QH(c,h))+QINV(c)+QG(c);

Leq..
Sum(a,QLD(a))=e=QLSAGG;

Keq..
Sum(a,QKD(a))=e=QKSAGG;

FEXeq..
sum(c,pwm(c)*QM(c))=e=sum(c,pwe(c)*QE(c))+transfrgrow0+FSAV;

ISeq..
EINV=e=sum(h,(1-mpc(h))*(1-tih(h))*YH(h))+ENTSAV+GSAV+EXR*FSAV+walras;

GDPeq..
GDP=e=sum(c,sum(h,QH(c,h))+QINV(c)+QG(c)+QE(c)-QM(c));

PGDPeq..
PGDP*GDP=e=sum(c,PQ(c)*(sum(h,QH(c,h))+QINV(c)+QG(c)))+sum(c,PE(c)*QE(c))-sum(c,PM(c)*QM(c))+sum(c,tm(c)*pwm(c)*QM(c)*EXR);

*賦予變量的初始值

PA.l(a)=PA0(a);
PVA.l(a)=PVA0(a);
PINTA.l(a)=PINTA0(a);
QA.l(a)=QA0(a);
QVA.l(a)=QVA0(a);
QINTA.l(a)=QINTA0(a);
QINT.l(c,a)=QINT0(c,a);
QLD.l(a)=QLD0(a);
QKD.l(a)=QKD0(a);
PX.l(c)=1;
QX.l(c)=QX0(c);
PD.l(c)=1;
QD.l(c)=QD0(c);
PE.l(c)=1;
QE.l(c)=QE0(c);
PQ.l(c)=1;
QQ.l(c)=QQ0(c);
PM.l(c)=1;
QM.l(c)=QM0(c);
YH.l(h)=YH0(h);
QH.l(c,h)=QH0(c,h);
YENT.l=YENT0;
ENTSAV.l=ENTSAV0;
EINV.l=EINV0;
YG.l=YG0;
EG.l=EG0;
GSAV.l=GSAV0;
WK.l=1;
EXR.l=1;
GDP.l=GDP0;
PGDP.l=PGDP0;
walras.l=0;

*新古典主義宏觀閉合條件
QLSAGG.fx=QLSAGG0;
QKSAGG.fx=QKSAGG0;
WL.fx=1;
QINV.fx(c)=QINV0(c);
FSAV.fx=FSAV0;
*可以取消固定國外儲蓄,改為固定政府支出,均符合貨幣中性
*EG.fx=EG0;

*復(fù)制初始均衡
*執(zhí)行優(yōu)化程序
model cge  /all/;
solve cge using mcp;

display  WL.l,WK.l,PVA.l,PA.l,PX.l,PE.l,PM.l,scaleAa,QLSAGG.l,QLD.l,QKSAGG.l,QKD.l;

*模擬1:整個經(jīng)濟各個部門的全要素生產(chǎn)率提高15%,即QAa的CES參數(shù)scaleAa(a)增加15%
*模擬結(jié)果:GDP增加29.1%
scaleAa(a)=scaleAa(a)*1.15;

model sim1 /all/;
solve sim1 using mcp;

parameter
dYH(h)           居民收入變化
dYENT          企業(yè)收入變化
dYG               政府收入變化
dGDP             全要素生產(chǎn)率提高15%,GDP變化   
dPGDP           PGDP變化

dYH(h)=YH.l(h)-YH0(h);
dYENT=YENT.l-YENT0;
dYG=YG.l-YG0;
dGDP=(GDP.l-GDP0)/GDP0;
dPGDP=(PGDP.l-PGDP0)/PGDP0;

display
WALRAS.l,dYH,dYENT,dYG,dGDP,dPGDP;
*模擬2:只有活動2部門的全要素生產(chǎn)率提高20%,其他部門沒有變化
*先把全要素生產(chǎn)率恢復(fù)至初始值,再提高部門2的全要素生產(chǎn)率
*模擬結(jié)果:GDP增加1.4%
set sec2(a) /sec2soe,sec2pri,sec2fdi/;

scaleAa(a)=scaleAa(a)/1.15;
scaleAa(sec2)=scaleAa(sec2)*1.02;

model sim2 /all/;
solve sim2 using mcp;

parameter
dGDP2         部門2全要素生產(chǎn)率提高20%,GDP變化
dPGDP2        PGDP變化
;
dGDP2=(GDP.l-GDP0)/GDP0;
dPGDP2=(PGDP.l-PGDP0)/PGDP0;

display
WALRAS.l,dYH,dYENT,dYG,dGDP2,dPGDP2;

*end

問題:

  • 模擬1中,在新古典主義條件下,為什么全要素生產(chǎn)率\alpha^A_a提高,WK下降,WL不變?
  • 模擬1中,對于新古典主義,如果固定WL=1,GDP增長率為29.1%,YH,YENT,YG均減少。而固定PGDP=1,GDP增長率仍然為29.1%,但是YH,YENT,YG均增加?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容