Vous êtes sur la page 1sur 19

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 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


3
SECTION 1 : Boucles FOR et Dclaration SI

PROGRAMME 1.

3& 4'56'7,,& )%#+7-. *5-)#).& 8 *'9&' "&) :5--9&) )%' ;+#&<) &. 8 &=9*%.&' %-
,5:>"& :& '96'&))#5-? @5%' *& A7#'&B -5%) *5-)#:9'5-) %-& 49'#5:& 7""7-. :& CDDE 8
FECFB %-& +7'#7G"& D &. CH +7'#7G"&) EB 4%#) '96'&))5-) "7 :94&-:7-.& D )%' %-&
*5-).7-.& &. *I7$%& #-:94&-:7-.& E :7-) :&) 9$%7.#5-) :#).#-*.&)? 3& *5:& :%
4'56'7,,& )& 4'9)&-.& *5,,& )%#.?

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.

3& :&%=#>,& 4'56'7,,& &). 4"%) 5% ,5#-) )&,G"7G"& 7% 4'&,#&'? J7-) *& *7)B
"K&).#,7.#5- -& *5-)#).& 47) 8 '96'&))&' D )%' *I7$%& +7'#7G"& EB ,7#) 4"%.L. 8
'96'&))&'B &- %-& A5#)B *I7$%& E
FG
)%' *I7$%& 7%.'& E?

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.

!& 4'56'7,,& &). 4'&)$%& #:&-.#$%& 7% @'56'7,,& F? !&4&-:7-.B 4"%.L. $%& :& *'9&'
:&) )9'#&) +#7 :&) +7'#7G"&) :& 4'56'7,,& -%,9'#$%&B %-& +7'#7G"& *I7M-& &).
%.#"#)9&?

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.

;- 69-9'7"B 7% "#&% :N&=#6&' "7 )5'.#& :& *I7$%& 9$%7.#5-B 5- )K#-.9'&))&
%-#$%&,&-. 7% )5,,7#'& :&) ).7.#).#$%&) O%69) -9*&))7#'&) 45%' "K7-7"P)&? Q#-)#B
:7-) *& *7)B #" P 7 "#&% :& ).5*R&' )&%"&,&-. "& )5,,7#'& :&) ).7.#).#$%&)B 4"%.L.
$%& :& ).5*R&' *I7$%& 9$%7.#5-?

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.

Q:,&..5-)B 8 4'9)&-.B $%& -5%) +5%"5-) ).5*R&' "&) *5&AA#*#&-.) :& *I7$%& 9$%7.#5-B
4"%.L. $%& :N%-& ).7.#).#$%& )5,,7#'& %-#$%&? @5%' *& A7#'&B 7% "#&% :& *5-).'%#'&
%- +&*.&%'B -5%) 45%+5-) %.#"#)&' %-& ,7.'#*& 7A#- :& ).5*R&' "&) :#AA9'&-.)
*5&AA#*#&-.)?

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.

!& 4'56'7,,& &). )&,G"7G"& 7% 4'56'7,,& S? !&4&-:7-.B 4"%.L. $%& :N&-'&6#).'&' "&
TU*7''9 :& *I7$%& 9$%7.#5-B #" &-'&6#).'& "&) '9)%".7.) :N%- .&). :& V7":B .&).7-.
:% .&). 04&%.UW.'& %- -5-U)&-)1 "& A7#. $%& "& *5&AA#*#&-. :% .&',& *5-).7-. &).
967" 8 *&"%# :& "7 +7'#7G"& &=4"#*7.#+& 0'96'&))&%'1 %-#$%&/

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.

!& 4'56'7,,& &). %-& &).#,7.#5- :& :#AA9'&-.&) 9$%7.#5-) / 0#1 *I7*%-& 7+&* "7 ,W,&
+7'#7G"& :94&-:7-.& X 0##1 ,7#) 7+&* :& -5,G'&) :#AA9'&-.) :& '&.7':) 7% -#+&7% :&
'96'&))&%')? ;-)%#.&B #" )&'7 $%&).#5- :& )9"&*.#5--&' "& -5,G'& :& '&.7':) $%#
A5%'-#. "& 4"%) 6'7-: !'#.>'& :N#-A5',7.#5- :NQR7#R& 0QY!1? @7' 7#""&%')B %- 7)4&*.
#,45'.7-. :& *& 4'56'7,,& &). "7 *747*#.9 :% "56#*#&" ;Z#&<) :& )49*#A#&' :&)
:9*7"76&) ,%".#4"&) 8 "7 A5#) 8 "N7#:& :& "7 A5',& EHF# ;+ FIJB 4&',&..7-. 7#-)# 8
;Z#&<) :K#-*"%'& .5%) "&) '&.7':) :& [ :% :9*7"76& #>,& 8 "7 O>,&?

T&,7'$%5-)B 7%))#B $%& 4&-:7-. "7 *5,47'7#)5- :&) ,5:>"&) 7P7-. %- -5,G'& :#AA9'&-.
:& '&.7':)B #" &). #,45'.7-. :& )N7))%'&' $%& "N9*I7-.#""5- 0-5,G'& :N5G)&'+7.#5-)1
%.#"#)9 :7-) *I7$%& ,5:>"& &). "& ,W,&? Q#-)#B "& 4'56'7,,& A#=& "& %+)3K#8$ &/-B8$
09*I7-.#""5-1 45%' -& 47) ,7-$%&' "&) 4'&,#>'&) L-/M8/0& 5G)&'+7.#5-)B 5\ L-/M8/0&
#-:#$%& "& -5,G'& ,7=#,%, :& :9*7"76&) $%# )&'5-. #-*"%) :7-) "&) ,5:>"&)?

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.

!& 4'56'7,,& / 0#1 *'9& %- &)47*& :& .'7+7#" &. $%&"$%&) X 0##1 4%#) ,&. &- 4"7*&
:&) G5M.&) :& :#7"56%& :&,7-:7-. 8 "N%.#"#)7.&%' :& )49*#A#&' "7 +7'#7G"&
:94&-:7-.& &. "&) +7'#7G"&) &=4"#*7.#+&) $%# )&'5-. %.#"#)9&) :7-) %-& 9$%7.#5- :&)
,5#-:'&) *7''9)? ]5.&^ $%& "7 47'.#& :% 4'56'7,,& $%# 69->'& "&) :5--9&) 45%''7#.
W.'& '&,4"7*9& 47' %-& *5,,7-:& 45%' 5%+'#' %- A#*I#&' :& .'7+7#" &=#).7-.?

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.

3& @'56'7,,& D )N744%#& )%' "& @'56'7,,& _? ;. 47'.7-.B #" 7O5%.& %-& 54.#5- 45%'
:9A#-#' "N9*I7-.#""5- $%# )&'7 %.#"#)9 45%' "N9$%7.#5- 8 &).#,&'B .5%. &-
A%)#5--7-. "&) G5M.&) :& :#7"56%& :7-) %-& )&%"& G5M.& :& :#7"56%&/

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.

3& @'56'7,,& CE )N744%#& )%' "& 4'9*9:&-. &- 7O5%.7-.B *&..& A5#) 2 *#B :&) 54.#5-)
45%' "& *7"*%" :& ,7.'#*& :& *5+7'#7-*& %.#"#)9& :7-) "N&).#,7.#5-?

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
`-& *7)& 8 *5*I&' &). 7O5%.9& 8 "7 4'&,#>'& G5M.& :& :#7"56%& :&,7-:7-. )#
"N%.#"#)7.&%' )5%I7#.& ,5:#A#&' "7 ,9.I5:& :& *7"*%" :& "7 *5+7'#7-*&? a# "7 *7)&
&). *5*I9&B %-& )&*5-:& G5M.& :& :#7"56%& )&'7 ,#)& &- 4"7*&B 5\ "N%.#"#)7.&%' 4&%.
*I5#)#' %-& ,9.I5:& :& *7"*%" )49*#A#$%& :7-) "7 "#).& :&) ,9.I5:&) :& *5+7'#7-*&?

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.

3& 4'56'7,,& CC / 0#1 *'9& :&) :5--9&) &. :&) 9$%7.#5-) X 0##1 4%#) %.#"#)&
*&'.7#-) 5%.#") :& ,7-#4%"7.#5- :& *I7M-&) 45%' *7"*%"&' %-& "#).& :& .5%.&) "&)
+7'#7G"&) &=4"#*7.#+&) :7-) "&) :#AA9'&-.&) 9$%7.#5-)? ]5.&^ $%& "7 47'.#& :%
4'56'7,,& $%# *'9& "&) :5--9&) &. "&) 9$%7.#5-) 4&%. W.'& '&,4"7*9& 47' %-&
*5,,7-:& 45%' "7-*&' %- &)47*& :& .'7+7#" &=#).7-.B :7-) "&$%&" 5- .'5%+& %-
)*9-7'#5 4"%) '97"#).&?

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).