🔢 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.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/; 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 ; * Reproduction de référence : M1_3S.ITERLIM = 0 ; $INCLUDE M1_3S.GEN SOLVE M1_3S USING MCP ; M1_3S.ITERLIM = 2000 ; * Contrefactuel : taxe de 10% de la taxe sur les importations des produits : TAUM(ae,i) = 1.10*TAUM(ae,i) ; $INCLUDE M1_3S.GEN SOLVE M1_3S USING MCP ; * Contrefactuel : augmentation 10% de la taxe sur la production des secteurs : TAUP(s) = 1.10*Taup(s) ; $INCLUDE M1_3S.GEN SOLVE M1_3S USING MCP ;
▶️ Lancer
📊 Résultats
Console
LST
Lancez un modèle...
Pas de LST...