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 ex!cutabl es sur Eviews : Il l ustrations + 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 !"#$%& (&$) *+),- 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 ./0$ */1$2++3 4, 5/)67 (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 89:;$8#$) !<#$%&= >1+?+-6;)#$= @+468#&/;#+?= .)6<#&#+? $; :?/8A&$ 4$ B+8#;#7,$ 61+?+-#7,$ 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 :;$8#$)& 5/)67 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 :
!"#$%&' )%**&))#+&,&-. )%' / 0#1 *#8$ 2 0##1 C$% 2 0###1 .)+0)/- * Le format lectronique de ce manuel est tlchargeable sur http://www.lareq.com.
Jean Paul Kimbambu, Tsasa Vangu Laboratoire dAnalyse Recherche en conomie Quantitative
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
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
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
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
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
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.
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
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
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
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
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
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
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).