19
Jean – Paul Kimbambu, Tsasa Vangu Laboratoire d’Analyse – Recherche en Économie Quantitative 1 LABORATOIRE D’ANALYSE – RECHERCHE EN ÉCONOMIE QUANTITATIVE * http://www.lareq.com * Décembre 2012 Par Jean – Paul Kimbambu, Tsasa Vangu (Ph.D. Candidate, Université de Montréal) INTRODUCTION A LA PROGRAMMATION A L’AIDE DU LOGICIEL EVIEWS Avec : 11 Programmes ex é cutables sur Eviews : Illustrations + Commentaires

Programmation Sur Eviews

Embed Size (px)

DESCRIPTION

Programmation Sur Eviews

Citation preview

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    1

    LABORATOIRE DANALYSE RECHERCHE EN CONOMIE QUANTITATIVE

    * http://www.lareq.com * Dcembre 2012

    Par Jean Paul Kimbambu, Tsasa Vangu

    (Ph.D. Candidate, Universit de Montral)

    INTRODUCTION A LA PROGRAMMATION A LAIDE DU LOGICIEL EVIEWS

    Avec : 11 Programmes excutables sur Eviews : Illustrations + Commentaires

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    2

    Introduction Gnralement, la pratique telle que constate au sein de nos universits locales, notamment

    dans la manipulation du logiciel Eviews, consiste borner la vision des apprenants aux

    techniques destimation et lexcution de leurs commandes. Cela les empche, de ce fait, de

    se familiariser aux pratiques de la modlisation et au langage de programmation Eviews. Ainsi,

    nous nous proposons, travers ce contenu, doffrir aux intresss une recette pouvant soutenir

    leurs premiers pas dans lapprentissage du langage de programmation Eviews.

    Pour rendre ce processus dapprentissage plus ais, lapproche adopte consiste procder

    une prsentation, en considrant les exemples et illustrations tels que fournis et proposs par

    EViews User Forum et dont les dtails peuvent tre obtenus en se dirigeant vers le contenu du

    site http://www.eviews.com, qui est galement post sur la Page Facebook du Larq

    (http://www.facebook.com/Laboratoire.LAREQ). Lavantage de ce choix est que les diffrents

    programmes sont facilement comprhensibles et surtout manipulables. Par ailleurs, nous avons

    repris galement dans ce manuel quelques commentaires tirs de diffrentes discussions et

    sances de travail auxquelles nous avons pris part dans le cadre de lAtelier Eviews,

    conomtrie, Modlisation, Prvision et Analyse de politique conomique du Projet 9 ACP

    SAD014 financ par le 9ime Fonds Europen de Dveloppement, et organis conjointement par

    le SADC et la Banque Centrale du Congo en avril 2012. En dernier lieu, il convient de prciser

    que ce manuel apparat galement comme un extrait de diffrents changes qui ont eu lieu

    pendant les Ateliers Larq organiss aux mois de mai et de juin 2012. Et donc, il vient que les

    interventions de diffrents participants, pendant ces sances, ont galement permis damliorer

    la prsentation que nous proposons en ce moment.

    Le package des programmes retenus pour ce manuel dinitiation, sera prsent en trois sections

    distinctes. En effet : (i) la premire section prsente le premier sousensemble de programmes,

    portant sur quelques applications sur la boucle for et sur la dclaration if ; (ii) la deuxime

    section introduit lusage de linterface dutilisateur de la bote de dialogue, notamment

    lestimation par la mthode des moindres carrs et le calcul de la matrice des covariances -

    variances ; la troisime section propose un exemple de manipulation de la chane dans lespace

    de travail Eviews.

    Afin de faciliter lapprhension de chaque exemple retenu, nous nous sommes propos de

    prsenter une brve description la fin de chaque programme. Remarquons que les diffrents

    programmes tels que prsents sont autonomes, cest dire peuvent tre excuts

    indpendamment les un des autres. Toutefois, une bonne apprhension de chacun des

    programmes ncessite une lecture, en chane, de diffrentes illustrations suivant lordre

    considr.

    Pour accder la page o seront crits les programmes, il suffit de suivre la marche suivante,

    aprs avoir lanc Eviews :

    Cliquer successivement sur : (i) File (ii) New (iii) Program

    * Le format lectronique de ce manuel est tlchargeable sur http://www.lareq.com.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    3

    SECTION 1 : Boucles FOR et Dclaration SI

    PROGRAMME 1.

    Le programme suivant consiste crer les donnes sur Eviews et excuter un

    modle de rgression. Pour ce faire, nous considrons une priode allant de 1990

    2012, une variable Y et 15 variables X, puis rgressons la dpendante Y sur une

    constante et chaque indpendante X dans des quations distinctes. Le code du

    programme se prsente comme suit.

    Code : 'Cration dun espace de travail wfcreate q 1990 2012 'Cration de la variable Y series Y=nrnd 'Cration de 15 variables X laide de la boucle FOR for !i=1 to 15 series X{!i}=nrnd next 'Excution des rgressions par paire entre Y et chaque X for !i=1 to 15 equation eq{!i}.ls y c x{!i} next

    La premire tape du programme 1 consiste crer un fichier de travail. La commande

    wfcreate est utilise pour crer un fichier de travail trimestriel qui va de 1990 2012. La lettre

    q indique le trimestre (quarterly).

    Ensuite pour crer la variable Y, on considre lexemple dune variable alatoire normalement

    distribue. Ainsi, on utilise la fonction nrnd.

    Paralllement, pour crer les variables X, nous procdons de la mme manire, soit :

    series x1=nrnd

    series x2=nrnd

    series x3=nrnd

    series x15=nrnd

    Cependant, au lieu de reprendre la mme commande 15 fois de suite, il est plus facile d'utiliser

    la boucle FOR. Une fois la boucle termine (NEXT), il y aura 15 variables X cres.

    Enfin, nous pouvons rgresser la dpendante Y sur chaque indpendante X. Pour ce faire, nous

    utilisons encore la boucle FOR pour estimer les 15 quations et la commande LS. Une fois que

    la boucle est termine, il y aura donc 15 quations cres, et estim dans le fichier de travail.

    Chaque quation rgresse est nomme eq{!i}.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    4

    PROGRAMME 2.

    Le deuxime programme est plus ou moins semblable au premier. Dans ce cas,

    lestimation ne consiste pas rgresser Y sur chaque variable X, mais plutt

    rgresser, en une fois, chaque X-1 sur chaque autre X.

    Code : 'Cration dun espace de travail wfcreate q 1990 2012 Cration de 5 variables X for !i=1 to 5 series x{!i}=nrnd next Excution des rgressions par paire entre chaque X et chaque autre X for !i=1 to 4 for !j=!i+1 to 5 equation eq{!i}_{!j}.ls x{!i} c x{!j} next next

    Les deux premires parties du programme possdent une structure similaire au Programme 1 :

    (i) cration dun espace de travail ; (ii) cration de 5 variables X, avec la commande FOR. La dernire partie du programme consiste crer, puis estimer les quations. Pour ce faire, la

    boucle FOR a t utilise deux fois. En effet, la boucle externe va de !i = 1 4 (nombre de X

    moins 1). Et, la deuxime boucle va de !j = !i+1 5 (nombre de X). Chaque quation rgresse

    est nomme eq{!i}_{!j}.

    Ainsi, la premire fois, avec la boucle extrieure, on compte 4 quations : eq1_2, eq1_3,

    eq1_4 et eq_5. Celles ci est une rgression de X1 sur une constante et X2, X3, X4 et X5,

    respectivement. De mme, la deuxime fois, toujours avec la boucle extrieure. Cette fois

    ci, on compte 3 quations : eq2_3, eq2_4, eq2_5. Celles ci correspondent la rgression de

    X2 sur une constante et X3, X4 et X5, respectivement. Et ainsi de suite.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    5

    PROGRAMME 3.

    Ce programme est presque identique au Programme 2. Cependant, plutt que de crer

    des sries via des variables de programme numrique, une variable chane est

    utilise.

    Code :

    'Cration dun espace de travail wfcreate q 1990 2012 'Cration dun groupe qui contiendra les Xs group Xs 'Cration de 5 variables for %i PIB CHOM INFL IPC M1 series {%i}=nrnd Xs.add {%i} next 'Excution des rgressions par paire entre chaque variable for !i=1 to xs.@count-1 %iname = xs.@seriesname(!i) for !j=!i+1 to xs.@count %jname = xs.@seriesname(!j) equation eq_{%iname}_{%jname}.ls {%iname} c {%jname} next next

    Ainsi, aprs la cration de lespace de travail, nous crons un groupe vide qui sera ensuite

    utilis pour contenir toutes les variables X. Nous nommons ce groupe Xs.

    Dans la troisime partie du programme, on applique la boucle FOR qui cre les boucles de la

    srie travers la %i chane de variable prenant les valeurs de PIB , CHOM , INFL ,

    IPC et enfin M1 . Ainsi, chaque itration de la boucle cre une srie avec un nom

    correspondant la valeur actuelle de %i. La srie nouvellement cre est ensuite ajoute au

    groupe Xs. Il vient donc que pour la premire fois, avec la boucle, une srie appele PIB est

    cre. Et elle est ensuite ajout au groupe Xs. De mme, la deuxime fois dans la boucle, une

    variable appele CHOM sera cre et ajoute au groupe XS. Et ainsi, de suite.

    La seconde boucle FOR est un peu plus compliqu. La premire chose remarquer est

    l'utilisation de @count groupe de donnes composantes dans les boucles. Le composante

    @count renvoie le nombre de sries dans un groupe.

    Ainsi, pour 5 sries dans le groupe Xs, Xs.@Count sera gal 5, et que par ailleurs, Xs.@

    Count1 sera gal 4.

    Un autre element noer dans la seconde boucle est l'utilisation de @seriesname(i)

    composantes de donnes. Cette composante de donnes renvoie le nom de la srie i dans le

    groupe. Ainsi, par exemple, @seriesname(1) va renvoyer la variable PIB .

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    6

    Il suit donc que dans la premire excution de la boucle externe, %iname sera gal PIB

    (o !i = 1, Xs.@seriesname(!i) renvoie le nom de la premire srie en Xs). Paralllement, la

    premire excution dans la boucle intrieure, %jname sera gal CHOM (o !j=!i+1 = 2, et

    Xs.@seriesname(!j) renvoie le nom de la deuxime srie). Et, pour la deuxime excution, la

    boucle interne, %jname sera gal "INFL", et ainsi de suite.

    A la fin de la boucle for extrieure, nous aurons un certain nombre d'quations cres.

    Valeur de !i(boucle ext) Valeur !j(boucle int) Nom de lquation 1 2 EQ_GDP_UNEMP 1 3 EQ_GDP_INFL 1 4 EQ_GDP_CPI 1 5 EQ_GDP_M1 2 3 EQ_UNEMP_INFL 2 4 EQ_UNEMP_CPI 2 5 EQ_UNEMP_M1 3 4 EQ_INFL_CPI 3 5 EQ_INFL_M1 4 5 EQ_CPI_M1 PROGRAMME 4.

    En gnral, au lieu d'exiger la sortie de chaque quation, on sintresse

    uniquement au sommaire des statistiques jugs ncessaires pour lanalyse. Ainsi,

    dans ce cas, il y a lieu de stocker seulement le sommaire des statistiques, plutt

    que de stocker chaque quation.

    Le programme 4 stocke le R-carr de chaque rgression dans un vecteur appel r2s. Le

    programme cre le vecteur avant la boucle, et il lajuste au nombre d'quations qui seront

    excutes. Aussi, le programme cre une quation vide avant de la boucle FOR, afin de la

    rutiliser l'intrieur de la boucle. Nous avons galement dclarer un compteur, !rowcounter,

    qui permet de prciser le nombre d'quations que nous avons estim, et ainsi de quelle ligne de

    r2s correspondante.

    La boucle FOR est presque identique celui de Programme 3. Toutefois, plutt que de crer une

    nouvelle quation nomme, nous nous proposons juste de restimer l'quation prcdemment

    dclar, eq, simplement en changeant la spcification de l'quation chaque passage dans la

    boucle. Ensuite, nous stockons le R-carr de chaque quation dans le vecteur r2s la ligne

    !rowcounter. Remarquez que nous utilisons la @r2 composante de donnes de l'quation pour

    rcuprer le R-carr.

    Il vient qu la premire excution des boucles extrieures et intrieures, !rowcounter sera

    gal 1, %iname sera gal PIB, %jname sera gal CHOM, de sorte que l'quation sera

    spcifi comme suit :

    PIB C CHOM,

    et le R-carr rsultant de cette quation sera stock dans la premire ligne du vecteur r2s.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    7

    Code : 'cration dun espace de travail wfcreate q 1990 2012 'Cration dun groupe qui contiendra les Xs group Xs 'Cration de 5 variables for %i PIB CHOM INFL IPC M1 series {%i}=nrnd xs.add {%i} next 'Cration dun vecteur pour stocker les R-carrs vector(10) r2s 'Cration dune equation vide pour son utilisation lintrieur de la boucle equation eq 'Compteur de nombre dquations excuter !rowcounter=1 'Excution des rgressions par paire entre chaque variable for !i=1 to Xs.@count-1 %iname = Xs.@seriesname(!i) for !j=!i+1 to Xs.@count %jname = Xs.@seriesname(!j) eq.ls {%iname} c {%jname} r2s(!rowcounter) = eq.@r2 !rowcounter = !rowcounter+1 next next

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    8

    PROGRAMME 5.

    Admettons, prsent, que nous voulons stocker les coefficients de chaque quation,

    plutt que d'une statistique sommaire unique. Pour ce faire, au lieu de construire

    un vecteur, nous pouvons utiliser une matrice afin de stocker les diffrents

    coefficients.

    Code : 'cration dun espace de travail wfcreate q 1990 2012 'Cration dune variable Y series Y=nrnd 'Cration de 5 variables X for !i=1 to 15 series X{!i}=nrnd next 'Cration dune matrice pour stocker les coefficients. Nous excuterons 15 rgressions (soit 15 colonnes) avec deux coefficients dans chacune delles, soit deux lignes matrix(2,15) coefs 'Cration dune equation vide pour son utilisation lintrieur de la boucle equation eq 'Excution des rgressions par paire entre Y et chaque X for !i=1 to 15 'Estimation de lquation eq.ls Y c X{!i} 'stockage des coefficients dans la matrice colplace(coefs, eq.@coefs, !i) next

    La description de ce programme est identique au Programme 1, o nous avons rgress Y sur

    chacune de 15 variables X, en une fois. Sauf que dans ce cas, les coefficients de chacune des 15

    rgressions sont stocks dans une matrice, nomme coefs. Remarquez que la commande le

    colplace a t utilise pour stocker la colonne des estimations des coefficients dans la matrice

    en suivant le numro de colonne appropri (!i).

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    9

    PROGRAMME 6.

    Ce programme est semblable au programme 4. Cependant, plutt que d'enregistrer le

    R-carr de chaque quation, il enregistre les rsultats d'un test de Wald, testant

    du test (peut-tre un non-sens) le fait que le coefficient du terme constant est

    gal celui de la variable explicative (rgresseur) unique:

    Code :

    'Cration dun espace de travail wfcreate q 1990 2012 'Cration dune groupe qui contiendra les Xs group Xs 'Cration de 5 variables for %i PIB CHOM INFL IPC M1 series {%i}=nrnd xs.add {%i} next 'Cration dune matrice pour stocker la staistique de Wald et les pvalues matrix(10,2) Walds 'Cration dune equation vide pour tre utilise dans la boucle intrieure equation eq 'Compteur du nombre dquations excuter !rowcounter=1 'Excution des regressions par paire entre chaque variable for !i=1 to xs.@count-1 %iname = xs.@seriesname(!i) for !j=!i+1 to xs.@count %jname = xs.@seriesname(!j) eq.ls {%iname} c {%jname} freeze(waldtable) eq.wald c(1)=c(2) ' perform wald test and freeze it into a table called WaldTable walds(!rowcounter,1) = @val(waldtable(6,2)) ' store wald statistic (which is in cell 6,2 of the table) walds(!rowcounter,2) = @val(waldtable(6,4)) ' store wald p-value (which is in cell 6,4 of the table) !rowcounter=!rowcounter+1 ' increment row counter d waldtable ' delete the table next next

    Plutt que de dclarer un vecteur avant la boucle, ce programme dclare une matrice,

    walds, avec deux colonnes, une pour la statistique de Wald, et l'autre pour la p-value

    associe. La matrice compte, par ailleurs, 10 lignes puisque nous serons conduits

    estimer 10 quations.

    Malheureusement, il n'existe aucune composante des donnes pour les rsultats du test de

    Wald. Il n'existe pas une manire directe pour rcuprer la statistique de Wald et la p-value

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    10

    associe audit test. Cependant, les rsultats du test de Wald peuvent tre gards dans une

    table (objet Eviews), avant de les reprendre plus tard.

    Nous utilisons la commande wald pour effectuer le test de Wald, mais on le fait prcder d'une

    commande freeze, qui permet de geler les rsultats du test de Wald dans une table. Nous

    nommons cette table waldtable. Aprs avoir cr l'objet table, waldtable, contenant les

    rsultats, nous pouvons accder n'importe quelle partie de ces rsultats en se rfrant la

    cellule du tableau contenant l'information que nous voulons.

    Puisque tous les nombres sont stocks sous forme de chane dans les tableaux, nous ne

    pouvons pas stocker directement la valeur de la statistique de Wald dans la matrice de

    stockage. Au lieu de cela, nous devons utiliser la fonction @val afin de convertir la

    reprsentation de chane du nombre en un nombre rel qui peut tre stock dans la matrice.

    Enfin, aprs avoir stock les valeurs provenant de l'objet table dans la matrice, nous

    supprimons la table, l'aide de la commande d. C'est pour viter une erreur de doublon la

    prochaine fois que nous parcourons la boucle et crons la table.

    PROGRAMME 7.

    Ce programme est une estimation de diffrentes quations : (i) chacune avec la mme

    variable dpendante ; (ii) mais avec de nombres diffrents de retards au niveau de

    rgresseurs. Ensuite, il sera question de slectionner le nombre de retards qui

    fournit le plus grand Critre d'information d'Akaike (AIC). Par ailleurs, un aspect

    important de ce programme est la capacit du logiciel EViews de spcifier des

    dcalages multiples la fois l'aide de la forme X(-i to -j), permettant ainsi

    EViews dinclure tous les retards de X du dcalage ime la jme. Remarquons, aussi, que pendant la comparaison des modles ayant un nombre diffrent

    de retards, il est important de s'assurer que l'chantillon (nombre d'observations)

    utilis dans chaque modle est le mme. Ainsi, le programme fixe le workfile sample

    (chantillon) pour ne pas manquer les premires !maxlags observations, o !maxlags

    indique le nombre maximum de dcalages qui seront inclus dans les modles.

    Le programme utilise une variable du programme, !aic, pour garder une trace de la plus faible

    valeur AIC. Cette valeur est initialise un grand nombre (de sorte que la premire quation

    aura certainement un AIC infrieure la valeur initiale). La variable !maxlags est utilise pour

    spcifier le nombre maximum de dcalages qui seront compars. La variable !bestlag est

    utilise pour garder la trace du dcalage associ la plus faible valeur AIC.

    La commande smpl est utilise pour changer workfile sample. L'chantillon est spcifi par

    une paire de dates spares par un espace, ou par le nombre d'observations. Le mot-cl @first

    spcifie la premire observation de lchantillon, et le mot cl @first en spcifie la dernire.

    Ainsi, la ligne smpl @first+!maxlags @last fixe l'chantillon la !maxlagsme plus une

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    11

    observation de la dernire observation de lchantillon. C'est dire si !maxlags I fixe 12,

    l'chantillon sera le 13me partir de l'observation prcdente.

    La boucle FOR va de 1 !maxlags, et se droulera ainsi 12 fois (puisque !maxlags a t fix

    12). Chaque itration, chaque fois, l'quation eq pour inclure des retards allant jusqu' !i. A

    chaque nouvelle spcification et estimation dune quation, une condition IF est utilise pour

    tester si la valeur de l'AIC provenant de l'quation en cause (rfrence avec la composante de

    donnes @aic) est plus petit que la meilleure valeur courante de lAIC stockes dans !aic.

    Si la valeur actuelle est infrieure, alors le dcalage actuel est enregistr comme !bestlag, et la

    meilleure valeur de lAIC est remis l'AIC en cours.

    Enfin, aprs que lexcution de la boucle ait termine, l'quation est r-estime en utilisant un

    nombre de retards gal !bestlag.

    Code : 'Cration dun espace de travail wfcreate q 1990 2012

    'cration dune variable series y = nrnd

    'crer quation vide pour tre utilis l'intrieur de la boucle equation eq

    'variable pour stocker l'AIC minimum. L'initialiser un grand nombre !aic = 99999999

    'variable prcisant jusqu combien le retard peut aller !maxlags = 12

    'Variable pour stocker le meilleur nombre de retards !bestlag = 0

    'initialisation de lchantillon partir de la !maxlag'me valeur smpl @first+!maxlags @last for !i=1 to !maxlags eq.ls y c y(-1 to -!i) 'run regression of Y on a constant and lagged values of itself up to the iTH lag. if eq.@aic < !aic then !bestlag = !i 'if this lag specification has the best AIC, then store this lag as !bestlag. !aic = eq.@aic endif next show eq.ls y c y(-1 to -!bestlag) 'reinitialisaiton de lchantillon smpl @all

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    12

    SECTION 2 : Interface dutilisateur et Bote de dialogue

    PROGRAMME 8.

    Ce programme : (i) cre un espace de travail et quelques ; (ii) puis met en place

    des botes de dialogue demandant l'utilisateur de spcifier la variable

    dpendante et les variables explicatives qui seront utilises dans une quation des

    moindres carrs. Notez que la partie du programme qui gnre les donnes pourrait

    tre remplace par une commande pour ouvrir un fichier de travail existant.

    Code : 'Cration dun espace de travail et des variables create u 100 series y=nrnd series x=nrnd series w=nrnd

    '-------------------------------------

    %dep = "" ' variable pour stocker le nom de la variable dpendante. %regs = "c " ' variable pour stocker la liste de rgresseurs. Par dfaut, cest "c" pour une constante. !result = 0 ' Variable qui permettra de suivre le rsultat des botes de dialogue. -1 Indique que lutilisateur a cliqu sur Cancel. 0 indique que l'utilisateur a cliqu sur OK. !result = @uiedit(%dep,"Enter the dependent variable") ' mise en place dun Edit dialog de demande pour les variables dpendantes. if !result=-1 then 'si lutilisateur a ignor, stopper le programme par la suite. stop endif

    !result = @uiedit(%regs,"Enter the list of regressors") ' mise en place dun Edit dialog de demande pour la liste de rgresseurs. if !result=-1 then 'si lutilisateur a ignor, stopper le programme par la suite. stop endif equation eq1.ls {%dep} {%regs} 'estimate equation.

    Trois variables du programme sont utilises dans ce programme : %dep, %regs and !result.

    %dep est la variable de chane qui permet lutilisateur dintroduire la variable dpendante.

    Pour commencer, nous lavons gal une chane vide (). %regs est une variable utilise

    par lutilisateur pour stocker la liste des variables explicatives. De mme, pour commencer,

    nous lavons gal "c". Cette restriction signifie que le paramtre par dfaut pour la liste de

    rgresseurs sera une constante. !result est une variable qui sera utilise pour animer la botes

    de dialogue. Chaque bote de dialogue renvoie une valeur entire selon que l'utilisateur a cliqu

    sur "OK" ou "Cancel" (ou, dans certains cas Yes ou No). Pour dbuter, nous avons pos

    cette valeur 0.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    13

    Aprs la dclaration des variables, la premire bote de dialogue est mis en place l'aide de la

    commande @uiedit. Il s'agit d'une bote de dialogue de type Edit qui demande l'utilisateur de

    Introduire la variable dpendante . La rponse de l'utilisateur sera stocke dans %dep. A la

    suite de la commande de dialogue, nous vrifions si la valeur de !result est gal -1. La valeur

    de -1 indique que l'utilisateur a appuy sur Cancel dans la bote de dialogue. Si c'est le cas, on

    quitte le programme en utilisant la commande stop.

    La deuxime commande de la bote de dialogue est similaire la premire. Cependant, plutt

    que de demander lutilisateur la variable dpendante, il demande de Introduire la liste des

    rgresseurs , et la stocke dans %regs. Remarquez quau dpart, la variable du programme

    %regs a pralablement t fixe "c" dans la bote de dialogue en cause. Ainsi, la bote de

    dialogue sera prremplie avec le terme constant. Lutilisateur peut toujours supprimer la

    constante ou ajouter des rgresseurs supplmentaires.

    Enfin, aprs avoir ralis les entres pour %dep et %regs, l'quation eq1 peut, ds lors, tre

    estime par les moindres carrs avec les variables spcifies.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    14

    PROGRAMME 9.

    Le Programme 9 s'appuie sur le Programme 8. Et partant, il ajoute une option pour

    dfinir l'chantillon qui sera utilis pour l'quation estimer, tout en

    fusionnant les botes de dialogue dans une seule bote de dialogue:

    Code : 'Cration dun espace de travail et des variables create u 100 series y=nrnd series x=nrnd series w=nrnd '------------------------------------- %dep = "" ' variable pour stocker le nom de la variable dpendante. %regs = "c " ' variable pour stocker la liste de rgresseurs. Par dfaut, cest "c" pour une constante. %sample = "@all" ' variable utilise pour stocker lchantillon. Par dfaut, cest "@all" pour lespace de travail tout entier. !result = 0 ' Variable qui permettra de suivre le rsultat des botes de dialogue. -1 Indique que lutilisateur a cliqu sur Cancel. 0 indique que l'utilisateur a cliqu sur OK. !result = @uidialog("edit",%dep,"Enter the dependent variable", "edit", %regs, "Enter the list of regressors", "edit", %sample, "Enter the equation sample") ' mise en place du dialogue. if !result=-1 then 'si lutilisateur a ignor, stopper le programme par la suite. stop endif smpl {%sample} ' initialisation de lchantillon. equation eq1.ls {%dep} {%regs} 'estimation de lquation. smpl @all ' rinitialisation de lchantillon.

    La nouvelle variable, %sample, est utilise pour stocker les entres effectues par l'utilisateur

    pour l'chantillon. Par dfaut, elle correspond @all, afin de spcifier lespace de travail tout

    entier.

    La commande @dialog est utilise pour crer la bote de dialogue. Cette commande peut tre

    utilise pour construire des dialogues avec control/field. Nous l'avons utilise pour crer une

    bote de dialogue avec trois botes d'dition. Notez que le mot cl "edit" est utilis pour

    spcifier qu'une bote d'dition est ncessaire, et chaque mot est suivi par la variable de

    caractre chane est utilis pour enregistrer l'entre, puis le texte d'invite.

    Aprs la bote de dialogue, le programme vrifie si l'utilisateur avait choisi "Cancel". Si cest le

    cas, le programme s'arrte, sinon il fixe l'chantillon celui slectionn par l'utilisateur, l'aide

    de la commande smpl. In fine, l'quation peut tre estime et l'chantillon, renvoy

    l'ensemble du fichier de travail.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    15

    PROGRAMME 10.

    Le Programme 10 s'appuie sur le prcdent en ajoutant, cette fois ci, des options

    pour le calcul de matrice de covariance utilise dans l'estimation.

    Code : 'Cration dun espace de travail et des variables create u 100 series y=nrnd series x=nrnd series w=nrnd

    '-------------------------------------

    %dep = "" ' variable pour stocker le nom de la variable dpendante. %regs = "c " ' variable pour stocker la liste de rgresseurs. Par dfaut, cest "c" pour une constante. %sample = "@all" ' variable utilise pour stocker lchantillon. Par dfaut, cest "@all" pour lespace de travail tout entier. !doCovs = 0 ' variable utilise pour stocker le choix concernant loption de visualiser la covariance. !CovChoice = 0 ' variable spcifiant le choix sur la matrice de covariance. !result = 0 ' Variable qui permettra de suivre le rsultat des botes de dialogue. -1 Indique que lutilisateur a cliqu sur Cancel. 0 indique que l'utilisateur a cliqu sur OK.

    %CovList = "Default White HAC" ' liste des types de covariance pour une utilisation dans le dialogue de covariance. %CovOpt = "" ' chane doption du calcul de covariance

    !result = @uidialog("edit",%dep,"Enter the dependent variable", "edit", %regs, "Enter the list of regressors", "edit", %sample, "Enter the equation sample","check",!doCovs, "View covariance options?") ' mise en place du dialogue. if !result=-1 then 'si lutilisateur a ignor, stopper le programme par la suite. stop endif

    if !doCovs =1 then !result = @uilist(!CovChoice, "Covariance options", %covlist) ' mise en place du dialogue cov. if !result=-1 then 'si lutilisateur a ignor, stopper le programme par la suite. stop endif if !CovChoice = 2 then %CovOpt = "cov=white" else if !CovChoice = 3 then %CovOpt = "cov=hac" endif endif

    endif

    smpl {%sample} ' initialisation de lchantillon.

    equation eq1.ls({%CovOpt}) {%dep} {%regs} 'estimation de lquation.

    smpl @all ' rinitialisation de lchantillon.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    16

    Une case cocher est ajoute la premire bote de dialogue demandant si

    l'utilisateur souhaite modifier la mthode de calcul de la covariance. Si la case

    est coche, une seconde bote de dialogue sera mise en place, o l'utilisateur peut

    choisir une mthode de calcul spcifique dans la liste des mthodes de covariance.

    Quatre nouvelles variables du programmes ont t mises en place : !doCovs, !CovChoice,

    %CovList and %CovOpt. La premire est utilise comme une variable binaire indiquant si

    l'utilisateur souhaite regarder le dialogue sur la covariance ou non. Une valeur de 0 indique, que

    la rponse est non, et 1 indique, oui. La variable !CovChoice est utilise pour stocker la

    mthode de calcul de covariance choisie par l'utilisateur. %CovList est utilise pour dfinir la

    liste des choix possibles de la matrice de covariance. Noter que cette variable peut ou ne pas

    tre modifie par l'utilisateur durant le droulement du programme. %CovOpt est utilise aussi

    bien comme reprsentation de chane du choix de lutilisateur concernant le calcul la matrice de

    covariance, que comme une commande EViews.

    Le premier dialogue a chang partir du Programme 9, afin d'inclure une Check box. Notez que

    le mot-cl Check est utilis pour dsigner l'ajout de la checkbox. !CovChoice est la

    variable utilise pour stocker la valeur de la case cocher, et l'invite est donn comme View

    covariance options?.

    Une fois que le premier dialogue a t mis en place, le programme vrifie si la valeur de

    !doCovs est gal 1 ou non. Un 1 indique que l'utilisateur a coch la case View covariance

    options?. Si c'est le cas, alors le programme met en place une deuxime bote de dialogue,

    cette fois une zone de liste, en utilisant la commande @uilist. !CovChoice est utilis pour

    stocker les lments dans la liste slectionne par l'utilisateur. %CovList est utilis pour

    remplir la zone de liste avec les choix.

    Aprs la deuxime bote de dialogue, le programme vrifie la valeur de !CovChoice. Si

    !CovChoice est gal 2, ce qui indique que l'utilisateur a choisi le deuxime lment de

    %CovList, White, puis %CovOpt est gal cov=white. Si !CovChoice est gal 3,

    cela correspond "HAC", et donc, %CovOpt est gal "cov = hac".

    Aprs le rglage de %CovOpt, l'chantillon est trait, puis l'quation est estime. Remarquez

    que l'quation est estime avec les options dfinies dans %CovOpt. Si la bote de dialogue des

    Options du calcul de covariance n'a jamais t affiche (cela signifie que l'utilisateur n'a pas

    coch la case correspondant !doCovs) ou si l'utilisateur a slectionn Default dans la bote

    de dialogue du deuxime dialogue, %CovOpt sera une chane vide, et donc, aucune option sera

    applique l'quation. Par ailleurs, si un choix a t fait du calcul de covariance, %CovOpt

    contiendra une option valable du calcul de covariance pour l'quation en cause.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    17

    SECTION 3 : Manipulation de chaines dans un Programme Eviews

    PROGRAMME 11.

    Le programme 11 : (i) cre des donnes et des quations ; (ii) puis utilise

    certains outils de manipulation de chanes pour calculer une liste de toutes les

    variables explicatives dans les diffrentes quations. Notez que la partie du

    programme qui cre les donnes et les quations peut tre remplace par une

    commande pour lancer un espace de travail existant, dans lequel on trouve un

    scnario plus raliste.

    Code : 'Cration dun espace de travail et des variables create u 100 series y=nrnd series x=nrnd series w=nrnd 'Cration des equations equation yx.ls y c x equation yw.ls y c w equation wx.ls w c x '----------------------------------------- %eqnames = "*" ' variable to store name of equations to parse. Wildcards (*) accepted. 'Etablissement dun dialogue demandant la liste de noms des quations !result = @uidialog("edit",%eqnames,"Enter a space delimited list of equation names", "text"," (or use * as a wildcard)") if !result=-1 then stop endif 'Vrification si une wild card a t inscrit dans la liste des eqnames, et le traiter si cest le cas if @instr(%eqnames,"*")>0 then %eqnames = @wlookup(%eqnames,"equation") endif string allregs = "" for !i = 1 to @wcount(%eqnames) %eqname = @word(%eqnames,!i) 'get ith equation name %vars = {%eqname}.@wregressors %vars = @wmid(%vars,2) 'drop dependent variable allregs = allregs + " " + %vars next 'suppression de doublons provenant de la liste de rgresseurs allregs = @wunique(allregs)

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    18

    La variable %eqnames est utilise pour identifier quelles sont les quations qui doivent tre

    soumises aux rgresseurs. Elle est initialement fixe "*", une indication qui est utilise pour

    dsigner toutes les quations dans lespace de travail. Une bote de dialogue est utilise pour

    permettre l'utilisateur de modifier la spcification de %eqnames. Le type de dialogue est

    @uidialog plutt que @uiedit, car un contrle de texte supplmentaire est utilis, ce qui donne

    des instructions pour l'utilisateur afin d'utiliser * comme une wilcard.

    Aprs le dialogue, la wilcard doit tre traite. D'abord la commande @instr est utilise pour

    vrifier l'existence de "*" dans %eqnames. Ensuite, @instr renvoie un indication spcifiant

    l'emplacement de "*". Si aucun "*" existe, alors a sera renvoy zro.

    Si un "*" existe, nous pouvons alors utiliser la commande @wlookup pour rechercher dans

    lespace de travail, toutes les quations (fait avec mot-cl equation) dont le nom correspond

    au modle donn par "*" dans %eqnames, et attribuer les noms de ces quations en rentrant

    dans %eqnames (par ordre alphabtique).

    Aprs le traitement de la wildcard, nous crons un espace de travail variables de chane,

    allregs contient la liste de toutes les variables explicatives utilises dans les quations figurant

    dans %eqnames. Ensuite, une boucle FOR est utilise pour parcouir toutes les quations et

    trouver les variables explicatives dans chacune delles. Notez que la commande @wcount est

    utilise pour calculer combien de noms figurent dans l'quation %eqnames (cette fonction

    permet uniquement de compter le nombre d'lments que comprend une liste dlimite dans un

    espace).

    Chaque itration de la boucle prend un nom de la liste des quations dans %eqnames et le

    stocke dans une nouvelle variable, %eqname. Ceci se fait en utilisant la commande @word,

    qui renvoie le ime mot dans une liste. Ainsi, la premire fois dans la boucle (si %eqnames

    contient juste "*"), %eqname sera gal "WX", et la deuxime fois, elle sera gale "YW".

    Une fois que le nom de l'quation a t captur, on obtient une liste des variables utilises dans

    cette quation, en utilisant la composante des donnes de l'quation @wregresors. Ds lors,

    elle retourne la fois les variables dpendante et indpendantes. Ensuite, nous utilisons la

    commande %wmid afin de laisser tomber le premier mot de la liste des variables (o le

    premier mot est toujours la variable dpendante). Le rsultat est ensuite ajout allregs.

    la fin de la boucle, allregs contient les variables explicatives (rgresseurs) de chaque

    quation spcifie dans %eqnames. Toutefois, si plus d'une quation contient le mme

    rgresseur, celuici sera inscrit dans allregs deux fois. La commande @wunique est utilise

    pour liminer les doublons.

  • Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative

    19

    Rfrences bibliographiques

    AGUNR Gusti Ngurah I., Time Series Data Analysis Using Eviews (Statistics in Pratice),

    John Wiley & Sons (Asia) Pte Ltd, Singapore, 609p.

    GRIFFITHS William E., R. Carter HILL and Guay C. LIM, 2011, Using Eviews for Principles of

    Econometrics, 4th revised edition, John Wiley & Sons Inc, New York, 363p.

    VOGELVANG Ben, 2005, Econometrics : Theory and Applications with E views, Pearson

    Eduaction Limited, Financiel Times Prentice Hall, Harlow384p.

    Autres sources

    (*) Forum Eviews (http://www.eviews.com).

    (*) Atelier SADCBanque centrale (http://www.sadc.int http://www.bcc.com ; avril 2012).

    (*) Ateliers Larq (http://www.lareq.com ; mai juin 2012).