🔢 Simulateur de Modèles GAMS
Modèles d'Équilibre Général Calculable
🏠 Accueil
📊 Modèles
📁 Modèles
BOP
Balance of Payments Model
EMPLOI
Modèle d'Emploi
INPUT
Modèle Input-Output
JOINT
Modèle de Production Jointe
KEYN
Modèle Keynésien
OPEN-VEC-2
Modèle CGE
OPEN-VEC
Économie Ouverte (Vecteur)
OPEN-VEC_T
Économie Ouverte (Temporel)
OPEN-VEC_T2
Économie Ouverte (Temporel v2)
OPEN
Modèle d'Économie Ouverte
Pure exchange
Modèle d'Échange Pur
SIMP
Modèle CGE Simple
TARIFF
Analyse Tarifaire
TAXENDO
Modèle de Taxe Endogène
TAXIN
Incidence Fiscale
TAXOUT
Taxe sur la Production
📝 Code
OPEN-VEC-2.gms
$TITLE Mod�le M1_4S : �conomie ferm�e 2x2 avec production conjointe et consommation interm�diaire Set as /Lab, Cap, Tax_Prod, Tax_Rev, TVA, Tax_Imp, Tax_Aut, Men, SF, SNF, ISBL, Gov, UEMOA, UE, RDM,S1*S3, P1*P3, acc, Total/ f(as) /Lab, Cap/ s(as) /S1*S3/ i(as) /P1*P3/ ag(as) /Men, SF, SNF, ISBL, Gov, UEMOA, UE, RDM/ af(ag) /Men, SF, SNF, ISBL, Gov/ mn(af) /Men/ ai(ag) /Men, SF, SNF, ISBL / ae(ag) /UEMOA, UE, RDM/ sc /base, var/; alias(as,as1), (s,s1), (ag,ag1),(ae,ae1) ; TABLE SAM(as,as1) Lab Cap Tax_Rev Tax_Prod TVA Tax_Imp Tax_Aut Men SF SNF ISBL Gov UEMOA UE RDM S1 S2 S3 P1 P2 P3 Acc Total Lab 50 40 40 130 Cap 33 5 5 43 Tax_Rev 6 4 1 0 11 Tax_Prod 7 6 6 19 TVA 10 8 8 26 Tax_Imp 6 9 9 24 Tax_Aut 3 5 5 13 Men 117 33 2 2 3 50 2 9 218 SF 2 3 6 9 20 SNF 1 5 6 9 21 ISBL 8 1 9 Gov 2 1 11 19 26 24 13 10 6 112 UEMOA 12 4 8 25 20 20 89 UE 7 18 12 18 55 RDM 8 8 3 8 8 5 18 18 76 S1 56 35 5 96 S2 40 15 8 63 S3 16 37 3 56 P1 50 2 23 8 60 5 2 8 1 20 179 P2 30 1 18 2 35 6 1 2 2 62 159 P3 35 1 25 2 10 6 3 2 2 8 94 Acc 85 6 10 2 -23 67 -68 11 90 Total 130 43 11 19 26 24 13 218 20 21 9 112 89 55 76 96 63 56 179 159 94 90 ; * Lecture des donn�es � partir d'un fichier Excel (option alternative) *PARAMETER SAM(as,as1) ; *$libinclude xlimport SAM Data_SAM_ExterTax3.xlsx SAM-Tax7D!A1:DE180 ; *$if not exist SAM.gdx $call 'gdxxrw i=Data_SAM_ExterTax.xlsx o=SAM.gdx par=SAM rdim=1 cdim=1 rng=SAM_7'; *$gdxin SAM.gdx *$load SAM display SAM; SCALAR TA Taux d'imposition ad valorem pour les intrants du secteur A /0/ ; PARAMETER BC0(ae,i) Balance commerciale pour le produit i CG0(i) Niveau initial de consommation en bien i du gouvernement CH0(mn,i) Niveau initial de consommation en bien i du consommateur CI0(s,i) Niveau initial de consommation interm�diaire du secteur s en bien i CTG0 Niveau initial du total de la consommation du gouvernement CTH0 Niveau initial du total de la consommation des consommateurs CISBL0(i) Niveau initial de consommation en bien i des ISBL CTISBL0 Niveau initial du total de la consommation des ISBL DI0(i) Niveau initial de la demande interm�diaire en bien i E0(ae,i) Niveau initial d'exportations du produit i vers l'agent ae ET0(i) Niveau initial total d'exportations du produit i I0(i) Investissements en produits i IT0 Total des investissements K0(af,s) Demande de capital pour le secteur s KT0(af) Demande totale de capital L0(af,s) Demande de travail pour le secteur s LT0(af) Demande totale de travail M0(ae,i) Niveau initial d'importations du produit i en provenance de l'agent ae *MT0(i) Niveau initial total d'importations du produit i P0(s) Indice des prix de production du secteur s Pm0(ae,i) Indices de prix des importations de produits i provenant des partenaires commerciaux Pq0(i) Indices de prix composite des produits i PVA0(i) Prix � la valeur ajout�e du produit i Q0(i) Niveau initial de la demande composite en bien i Rev0(ai) Revenus des agents imposables RTax0(ai) Imp�ts sur les revenus et les capitaux des agents imposables RTaxTot0 Total des imp�ts sur les revenus et les capitaux S0(ag) �pargne de l'agent ag TauAut(i) Taux de taxation sur les produits i taud(ai) taux de taxation sur les revenus et les capitaux taum(ae,i) Taux de taxation sur les importations de produits i provenant des partenaires commerciaux taup(s) Taux de taxation sur la production pour le secteu TaxAut(i) Autres taxes sur les produits i TAXM(ae,i) Taxes sur les importations de produits i provenant des partenaires commerciaux TaxP(s) Taxes sur la production pour le secteur s TRN0(ag,ag1) Transferts nets entre les agents Trn0(ag,ag1) Transferts entre les agents TauVA(i) Taux de taxation sur la valeur ajout�e TVA(i) Taxe sur la valeur ajout�e pour le secteur VA0(i) Valeur ajout�e initiale sur le produit i W0 Niveau d'utilit� initial X0(s,i) Niveau initial de production du produit i par le secteur s Y0(s) Niveau initial de production du secteur s *YT0 Niveau initial du total de la production *YT0(i) Niveau initial de production du produit i ; L0(af,s) = SAM('Lab',s)*SAM(af,'Lab')/SUM(s1,SAM('Lab',s1)) ; K0(af,s) = SAM('Cap',s)*SAM(af,'Cap')/SUM(s1,SAM('Cap',s1)) ; LT0(af) = SUM(s,L0(af,s)) ; KT0(af) = SUM(s,K0(af,s)) ; CI0(s,i) = SAM(i,s) ; X0(s,i) = SAM(s,i) ; Y0(s) = SUM(af,L0(af,s)+K0(af,s))+SUM(i,CI0(s,i)); M0(ae,i) = SAM(ae,i); E0(ae,i) = SAM(i,ae); * MT0(i) = SUM(ae,M0(ae,i)); ET0(i) = SUM(ae,E0(ae,i)); CH0(mn,i) = SAM(i,mn) ; CISBL0(i) = SAM(i,'ISBL') ; CG0(i) = SAM(i,'Gov') ; I0(i) = SAM(i,'Acc') ; IT0 = SUM(i,I0(i)) ; S0(ag) = SAM('Acc',ag) ; Q0(i) = (SUM(s,CI0(s,i))+I0(i)+SUM(mn,CH0(mn,i))+CISBL0(i)+CG0(i)); CTH0(mn) = SUM(i,CH0(mn,i)) ; CTISBL0 = SUM(i,CISBL0(i)) ; CTG0 = SUM(i,CG0(i)) ; Trn0(ag,ag1) = SAM(ag1,ag) ; BC0(ae,i) = E0(ae,i)-M0(ae,i) ; Rev0(ai) = SUM(as,SAM(ai,as)) ; * Taxes ** Taxes sur la production TaxP(s) = SAM('Tax_Prod',s); taup(s)$SUM(i,X0(s,i)) = TaxP(s)/SUM(i,X0(s,i)) ; ; P0(s) = 1-taup(s) ; ** Taxes sur le revenu et le capital RTax0(ai) = SAM('Tax_Rev',ai) ; taud(ai)$Rev0(ai) = RTax0(ai)/Rev0(ai) ; RTaxTot0 = SUM(ai,RTax0(ai)) ; ** Taxe sur la valeur ajout�e TVA(i) = SAM('TVA',i); VA0(i) = SUM(s,(X0(s,i)-CI0(s,i)))+TVA(i) ; TauVA(i)$VA0(i) = TVA(i)/VA0(i) ; PVA0(i) = 1-TauVA(i); ** Taxes sur les importations TAXM(ae,i) = M0(ae,i)/SUM(ae1,M0(ae1,i))*SAM('TAX_Imp',i) ; taum(ae,i)$M0(ae,i) = TAXM(ae,i)/M0(ae,i) ; Pm0(ae,i) = 1+taum(ae,i) ; ** Autres taxes TaxAut(i) = SAM('Tax_Aut',i) ; TauAut(i)$Q0(i) = TaxAut(i)/Q0(i) ; Pq0(i) = 1-TauAut(i) ; * Check DI0(i) = Q0(i)*Pq0(i)-SUM(ae,M0(ae,i)*Pm0(ae,i)); display DI0 ; DI0(i)= (SUM(s,CI0(s,i)))+VA0(i)-ET0(i) ; Display DI0, Q0, VA0, CISBL0, L0, K0, I0, IT0 ; $ONTEXT $MODEL: M1_3S $SECTORS: XT(s) ! Niveau de production du secteur s ZT(i) ! Niveau de production du produit i VA(i) ! Niveau de valeur ajout�e du produit i E(ae,i) ! Exportations du produit i vers l'agent ae M(ae,i) ! Importations du produit i en provenance de l'agent ae MT(i) ! Importations du produit i ET(i) ! Exportations du produit i IT ! Total des investissements Q(i) ! Niveau de la demande composite du bien i CTH(mn) ! Niveau d'activit� du consommateur (indice de bien-�tre de Hicksian) CTISBL ! Niveau de consommation totale des ISBL CTG ! Niveau d'activit� du gouvernement (indice de bien-�tre de Hicksian) $COMMODITIES: PX(s,i) ! Indice des prix de production du bien i par le secteur s PVA(i) ! Indice des prix � la valeur ajout�e du bien i PD(i) ! Indice des prix domestiques du bien i PQ(i) ! Indice des prix composites du produit i PM(ae,i) ! Indice des prix des importations du produit i provenant de l'agent ae PE(ae,i) ! Indice des prix des exportations du produit i provenant vers l'agent ae PMT(i) ! Indice des prix des importations du produit i PET(i) ! Indice des prix des exportations du produit i PFX ! Taux de change PL(af) ! Indice des prix du facteur primaire L RK(af) ! Indice des prix du facteur primaire K PC ! Indice des prix du bien-�tre (fonction de d�pense) PS ! Indice des prix du total de la consommation des entreprises PG ! Indice des prix du bien-�tre du gouvernement (fonction de d�pense) PI ! Indice des prix de l'investissement $CONSUMERS: MEN(mn) ! Solde des revenus des consommateurs SF ! Solde des revenus de l'agent repr�sentatif SF SNF ! Solde des revenus de l'agent repr�sentatif SFN ISBL ! Solde des revenus de l'agent repr�sentatif ISBL GOV ! Solde des revenus du gouvernement ROW ! Solde des revenus des agents ext�rieurs $AUXILIARY: RTAX(ai) ! Imp�ts sur le revenu RTAXTOT ! Total des imp�ts sur le revenu * Sur la premi�re ligne de la d�claration de production, le champ S: sp�cifie l'�lasticit� de substitution entre les facteurs de production * le champ t: sp�cifie l'�lasticit� de transformation entre les produits. $PROD:XT(s) s:1 O:PX(s,i) Q:X0(s,i) A:Gov T:taup(s) I:PL(af) Q:L0(af,s) I:RK(af) Q:K0(af,s) I:PQ(i) Q:CI0(s,i) $PROD:VA(i)$VA0(i) t:1 O:PVA(i) Q:VA0(i) P:PVA0(i) A:Gov T:tauVA(i) O:PQ(i) Q:(SUM(s,CI0(s,i))) I:PX(s,i) Q:X0(s,i) $PROD:ZT(i) t:1 O:PET(i) Q:ET0(i) O:PD(i) Q:DI0(i) I:PQ(i) Q:(SUM(s,CI0(s,i))) I:PVA(i) Q:VA0(i) $PROD:Q(i) s:1 O:PQ(i) Q:Q0(i) A:GOV t:TauAut(i) I:PD(i) Q:DI0(i) I:PMT(i) Q:(SUM(ae,M0(ae,i)*Pm0(ae,i))) $PROD:E(ae,i) s:1 O:PFX Q:E0(ae,i) I:PE(ae,i) Q:E0(ae,i) $PROD:M(ae,i) t:1 O:PM(ae,i) Q:(M0(ae,i)*Pm0(ae,i)) I:PFX Q:(M0(ae,i)) A:Gov T:taum(ae,i) $PROD:MT(i) s:0 O:PMT(i) Q:(SUM(ae,M0(ae,i)*Pm0(ae,i))) I:PM(ae,i) Q:(M0(ae,i)*Pm0(ae,i)) $PROD:ET(i) t:2 O:PE(ae,i) Q:E0(ae,i) I:PET(i) Q:(SUM(ae,E0(ae,i))) $PROD:IT s:1 O:PI Q:IT0 I:PQ(i) Q:I0(i) $PROD:CTH(mn) s:1 O:PC Q:CTH0(mn) I:PQ(i) Q:CH0(mn,i) $PROD:CTISBL s:1 O:PS Q:(SUM(i,CISBL0(i))) I:PQ(i) Q:CISBL0(i) $PROD:CTG s:1 O:PG Q:CTG0 I:PQ(i) Q:CG0(i) $DEMAND:MEN(mn) D:PC Q:CTH0(mn) E:PI Q:(-S0(mn)) E:PL(mn) Q:LT0(mn) E:RK(mn) Q:KT0(mn) E:PC Q:(SUM(ag,(Trn0(ag,mn)-Trn0(mn,ag)))) E:PC Q:(-1) R:RTAX(mn) $DEMAND:SF s:1 D:PI Q:S0("SF") E:PL("SF") Q:LT0("SF") E:RK("SF") Q:KT0("SF") E:PC Q:(-1) R:RTAX("SF") E:PC Q:(SUM(ag,(Trn0(ag,"SF")-Trn0("SF",ag)))) $DEMAND:SNF s:1 D:PI Q:S0("SNF") E:PL("SNF") Q:LT0("SNF") E:RK("SNF") Q:KT0("SNF") E:PC Q:(-1) R:RTAX("SNF") E:PC Q:(SUM(ag,(Trn0(ag,"SNF")-Trn0("SNF",ag)))) $DEMAND:ISBL s:1 D:PS Q:CTISBL0 D:PI Q:S0("ISBL") E:PL("ISBL") Q:LT0("ISBL") E:RK("ISBL") Q:KT0("ISBL") E:PC Q:(SUM(ag,(Trn0(ag,"ISBL")-Trn0("ISBL",ag)))) E:PC Q:(-1) R:RTAX("ISBL") $DEMAND:GOV D:PG Q:CTG0 E:PI Q:(-S0('GOV')) E:PL("GOV") Q:LT0("GOV") E:RK("GOV") Q:KT0("GOV") E:PC Q:(SUM(ag,(Trn0(ag,'Gov')-Trn0('Gov',ag)))) E:PC Q:(1) R:RTAXTOT $DEMAND:ROW D:PI E:PFX Q:(-SUM((ae,i),BC0(ae,i))) E:PC Q:(SUM((ag,ae),(Trn0(ag,ae)-Trn0(ae,ag)))) $CONSTRAINT:RTAX(ai) RTAX(ai) =E= taud(ai)*(SUM(as,SAM(ai,as)))*CTG ; $CONSTRAINT:RTAXTOT RTAXTOT =E= SUM(ai,RTAX(ai)) ; $OFFTEXT $SYSINCLUDE mpsgeset M1_3S * Fixer un num�raire pour �viter le travail de mise � l'�chelle PL.FX(mn) = 1 ; RTAX.l(ai) = RTax0(ai) ; RTAXTot.l = RTaxTot0 ; PARAMETER Iter Nombre d'iterations Scenario Results Resultats pr�sentation variables ; * Contrefactuel : taxe de 10% de la taxe sur les importations des produits : Scenario("TAUM",'base',ae,i) = TAUM(ae,i) ; Scenario("TAUM",'var',ae,i) = 1.10*TAUM(ae,i) ; * Contrefactuel : augmentation 10% de la taxe sur la production des secteurs : *TAUP(s) = 1.10*Taup(s) ; ITER(sc) = 200000 ; ITER("base") = 0 ; PARAMETER Results Resultats pr�sentation variables ; loop(sc, TAUM(ae,i) = Scenario("TAUM",sc,ae,i) ; M1_3S.iterlim= iter(sc); M1_3S.optfile= 1 ; $INCLUDE M1_3S.GEN SOLVE M1_3S USING MCP ; * Synthese * Results('SYNT','Volume','Investissement Public','','',sc) = S0("APU")*Mip*Qref; * Results('SYNT','Volume','consommation globale','','',sc) = SUM(i,ConsH.l(i)+ConsG.l(i)); * Results('SYNT','Volume','PIB aux co�ts des facteurs','','',sc) = SUM(j,LabDem.l(j) + CapDem.l(j)); * Comptes Nationaux * Results('NAT','Volume','Multiplicateur Investissement Public ','','',sc) = Mip; * Results('NAT','Volume','Cons. Intermediaire', i,j,sc) = CIJ.l(i,j); * Results('NAT','Volume','Investissement',ae,i,sc) = Inv.l(i); * Results('NAT','Volume','Valeur ajout�e','',j,sc) = LabDem.l(j) + CapDem.l(j); * Results('NAT','Volume','PIB au co�t des facteurs','','',sc) = SUM(j,LabDem.l(j) + CapDem.l(j)); * Results('NAT','Volume','Exports',ae,i,sc) = Exp.l(ae,i); * Results('NAT','Volume','Imports',ae,i,sc) = Imp.l(ae,i); * Results('NAT','Volume','Demande de travail',ae,i,sc) = LabDem.l(i); * Results('NAT','Volume','Demande de capital',ae,i,sc) = CapDem.l(i); * Results('NAT','Volume','Cons. finale des m�nages',ae,i,sc) = ConsH.l(i); * Results('NAT','Volume','Production domestique',ae,i,sc) = Dprod.l(i); * Results('NAT','Valeur','Cons. Intermediaire', i,j,sc) = CIJ.l(i,j)*Pq.l(i); * Results('NAT','Valeur','Investissement',ae,i,sc) = Inv.l(i)*Pq.l(i); * Results('NAT','Valeur','PIB au co�t des facteurs','','',sc) = SUM(j,LabDem.l(j)*Pl.l + CapDem.l(j)*RK.l); * Results('NAT','Valeur','Exports',ae,i,sc) = Exp.l(ae,i)*PFX.l(ae); * Results('NAT','Valeur','Imports',ae,i,sc) = Imp.l(ae,i)*Pm.l(ae,i); * Results('NAT','Valeur','Demande de travail',ae,i,sc) = LabDem.l(i)*Pl.l; * Results('NAT','Valeur','Demande de capital',ae,i,sc) = CapDem.l(i)*RK.l; * Results('NAT','Valeur','Cons. finale des m�nages',ae,i,sc) = ConsH.l(i)*Pq.l(i); * Results('NAT','Valeur','Production domestique',ae,i,sc) = Dprod.l(i)*Pd.l(i); * Results('NAT','Valeur','Valeur ajout�e','',j,sc) = LabDem.l(j)*Pl.l+CapDem.l(j)*RK.l; Results('NAT','Prices','Prix domestiques',ae,i,sc) = Pd.l(i); * Results('NAT','Prices','Taux de change',ae,i,sc) = PFX.l(ae); Results('NAT','Prices','Prix des imports',ae,i,sc) = Pm.l(ae,i); Results('NAT','Prices','Prix des biens composites',ae,i,sc) = Pq.l(i); * Results('NAT','Prices','Prix du travail','','',sc) = Pl.l; * Results('NAT','Prices','R�mun�ration du capital',ae,'',sc) = RK.l; * Finances Publiques * Results('TOFE','Valeur','Revenus des taxes',ae,i,sc) = tauq(i)*PQ.l(i)*Q0(i)*Q.l(i); * Results('TOFE','Valeur','D�penses du Gouv.',ae,i,sc) = ConsG.l(i)*Pq.l(i); * Results('TOFE','Valeur','Investissement public','','',sc) = S0("APU")*Mip*Qref*Pkt.l; * Results('TOFE','Valeur','D�ficit public','','',sc) = SUM(i,SUM(ae,Results('TOFE','Valeur','Revenus des taxes',ae,i,sc))) * - SUM(i,SUM(ae,Results('TOFE','Valeur','D�penses du Gouv.',ae,i,sc))) - Results('TOFE','Valeur','Investissement public','','',sc); * Balance des paiements * Results('BC','Valeur','Exports',ae,i,sc) = Exp.l(ae,i)*Pm.l(ae,i) ; * Results('BC','Valeur','Imports',ae,i,sc) = Imp.l(ae,i)*Pm.l(ae,i); * Results('BC','Valeur','Balance commerciale',ae,i,sc) =(Exp.l(ae,i)*Pm.l(ae,i)-Imp.l(ae,i)*Pm.l(ae,i)); * Results('BC','Valeur','Transferts en capital',ae,'',sc) = RDM.l(ae) ; * Results('BC','Valeur','Balance des paiements',ae,'',sc) = SUM(i,Results('BC','Valeur','Balance commerciale',ae,i,sc))+RDM.l(ae) ; DISPLAY RESULTS ; ) ; Execute_unload "Model.gdx" RESULTS *Execute "GDX2ACCESS.EXE Model.gdx" *Execute 'gdxxrw i=Model.gdx o=Model.xlsx par=RESULTS rdim=5 cdim=1 rng=A1:ZA15000'; Execute 'gdxdump Model.gdx output=results.csv symb=results format=csv header="Dim1,Dim2,Dim3,Dim4,Dim5,Dim6,Value"'; *Execute 'gdxdump Model.gdx output=results.csv symb=RESULTS format=csv';
▶️ Lancer
📊 Résultats
Console
LST
Lancez un modèle...
Pas de LST...