Vous êtes sur la page 1sur 16

Guide d'utilisation de STATA

Dalila Chenaf-Nicet - Université de Bordeaux - LAREFI

Juin 2017
Résumé

Ce guide a pour objet de faciliter les manipulations de données sous STATA. En règle générale les manipulations
sont illustrées à l'aide de capture d'écran qui proviennent de STATA 14 mais elles restent valables pour les autres
versions de STATA.
Les données des exemples sont téléchargeable dans ma page perso Researgate :
https ://www.researchgate.net/prole/Dalila_Chenaf
La version dta.
https ://www.researchgate.net/publication/318351252_Fichier_de_donnees_pour_les_exemples_du_chapitre_3_-
_guide_d'utilisation_de_Stata_format_dta

La version Excel.
https ://www.researchgate.net/publication/318340892_Fichier_de_donnees_du_chapitre_3_du_guide_stata_xls

Vous apprendrez dans ce chapitre 3 à faire de la statistique élémentaire sur des bases de données : construction
de table de fréquence, moyenne, variance, écart-type, matrice de corrélation, etc. Mais également de l'économétrie
de base (régression simple et multiple).
Chapitre 3 - Statistiques et économétrie
élémentaires sous Stata

Dans le chapitre 1, il vous a été expliqué comment télécharger une base de données au format Excel sous STATA.
Ici, il sera donc supposé que ce téléchargement a été eectué et que vous voulez à présent manipuler les variables
de cette base.
Les exemples seront fait à partir de la base de données téléchargeable au format Excel au lien suivant de ma
page perso Researchgate (DATA/ projetc : Guide d'utilisation de Stata) :
Vous pouvez également si vous voulez télécharger directement le chier au format stata (.dta) avec le lien suivant
de ma page perso Researchgate :
Le chier de données propose une série temporelle sur 14 périodes de temps. Les données de panel seront traitées
dans le chapitre suivant.

3.1 - Les statistiques usuelles sur base de données en série chronologique

La première commande qui permet d'avoir un regard rapide sur les caractéristiques des données est summarize
(ou selon le raccourci admit par Stata sum). La commande est simple puisque dans le chier proposé il y a 4 variables
y,x1,x2,x3. Les statistiques élémentaires (moyenne, écart type, valeurs min, valeurs max, nombre d'observations)
s'obtiennent en faisant
summarize y x1 x2 x3
. summarize y x1 x2 x2

Variable Obs Mean Std. Dev. Min Max

y 14 142.5714 20.16743 100 167


x1 14 105.8571 17.13232 80 130
x2 14 1.932857 .8501894 1 3.25
x2 14 1.932857 .8501894 1 3.25

pouvez obtenir d'autres statistiques par variable comme la moyenne, l'écart type, la somme en utilisant une com-
mande déjà vue dans le chapitre 1 et 2 qui est egen :

egen moyenney=mean(y)

display moyenney

egen ecarttypey=sd(y)

display ecarttypey

egen sumy=sum(y)

display sumy

1
La commande display vous permet d'acher la valeur à l'écran.
Vous pouvez calculer le coecient de corrélation  r  entre deux ou plusieurs variables. avec si r= 0 il n'y a pas
de corrélation, si r=-1, la corrélation est négative, si r=1, la corrélation est positive.
Vous avez ici plusieurs options. La première commande ne donne que la valeur des coecient (correlate ou en
raccourci cor) :

correlate y x1 x2 x3

. correlate y x1 x2 x3
(obs=14)

y x1 x2 x3

y 1.0000
x1 0.9680 1.0000
x2 -0.9233 -0.9410 1.0000
x3 0.7520 0.7505 -0.7790 1.0000
Dans cet exemple on voit par exemple qu'il y a une forte corrélation positive entre y et x1 et une forte corrélation
négative entre y et x2.
On peut avec cette commande obtenir la matrice des variances et covariance de y et x1 par exemple

correlate y x1 , cov

. correlate y x1 , cov
(obs=14)

y x1

y 406.725
x1 334.473 293.516

Avec :
y x1

y variancey cov(x,y)
x1 cov(y,x) variancex1
La matrice étant symétrique puisque cov(x,y)=cov(y,x), Stata ne donne qu'une des deux valeurs.
La commande correlate y x , cov mean donne en plus les statistiques descriptives pour y et x1

correlate y x1 , mean cov

Par contre on ne sait pas si le coecient est signicatif (même si on a pas trop de doute dans l'exemple donnée).
Pour avoir la signicativité (codé sig) on peut la demander avec le seuil désiré de 1%, 5%.....Il sut d'indiquer
star(valeur du seuil) et une étoile apparaitra derrière les coecients signicatifs au seuil de x%. Par exemple avec
un seuil de 5%, la commande est pour les variables y x1 :

pwcorr y x1, sig star(5)

2
. pwcorr y x1, sig star(5)

y x1

y 1.0000

x1 0.9680* 1.0000
0.0000

Si vous voulez que soit en plus indiqué le nombre d'observations la commande est :

pwcorr y x1, obs sig star(5)

Avec cette commande pwcorr vous pouvez calculer le coecient de y par rapport à x1 (avec x2 constant) puis
y par rapport x2 (avec x1 constat). Il faut écrire pcorr dans ce cas et non pwcorr.
. pcorr y x1 x2
(obs=14)

Partial and semipartial correlations of y with

Partial Semipartial Partial Semipartial Significance


Variable Corr. Corr. Corr.^2 Corr.^2 Value

x1 0.7633 0.2932 0.5827 0.0860 0.0024


x2 -0.1457 -0.0365 0.0212 0.0013 0.6349

Vous avez donc les corrélations partielles.


Toutes les commandes ci-avant peuvent être combinées avec if, by, in

correlate y x1 if x3>12

Calcul de la corrélation de y et x1 si x3 est supérieure à 12.

correlate y x1 in 2/14

Calcul de la corrélation de y et x1 de la 2ème à la 14ème ligne du chier.


On réservera la commande by dans le cas de données de panel .
Il est au nal parfois utile dans le cas des données chronologiques de faire un graphique pour voir la représentation
de la distribution de la variable mais aussi l'évolution de la variable dans le temps. On peut utiliser les commandes
simples de graphique :
histogram y
On obtient l'histogramme de la variable y.
Si on veut représenter l'évolution de y en fonction du temps on a le choix d'un graphique qui relie l'ensemble
des points ou juste le nuage de point (scatter)

Twoway (line y temps)

twoway (scatter y temps)

Si on veut mettre les titres des axes la syntaxe est :

twoway (line y temps) ytitle(variable y) xtitle(temps)

3
Si on veut modier le graphique il sut de cliquer sur l'histogramme avec le crayon dans la barre de menu de
la capture d'image précédente et une boite de dialogue s'ouvre pour modier les couleur des lignes, l'épaisseur, les
titres, etc.
Il est possible de reprendre l'ensemble des statistiques dans un tableau que l'on voudra construire. Vous pouvez
vous exercer avec le programme suivant. Il nécessite d'utiliser une syntaxe propre aux matrices. Nous verrons cela
dans un chapitre ultérieur. Cependant rien ne vous empêche de vous exercer avec le programme suivant :
*/créer les valeurs du tableau, à savoir les moyennes, écart-type, ....
egen sumy=sum(y) .
egen sumx1=sum(x1)
egen sumx2=sum(x2)
egen sumx3=sum(x3)
egen meany=sum(y)
egen meanx1=sum(x1)
egen meanx2=sum(x2)
egen meanx3=sum(x3)
egen sdty=sd(y)
egen sdtx1=sd(x1)
egen sdtx2=sd(x2)
egen sdtx3=sd(x3)
gen OBSy=_N

*/Les créer pour chacun des résultats des matrices en vecteur colonne
*/La commande mkma permet de créer à partir de données existante une matrice mat(" ").
mkmat sumy,mat(Totaly)
mkmat sumx1,mat(Totalx1)
mkmat sumx2,mat(Totalx2)
mkmat sumx3,mat(Totalx3)

mkmat meany,mat(Moyenney)
mkmat meanx1,mat(Moyennex1)
mkmat meanx2,mat(Moyennex2)
mkmat meanx3,mat(Moyennex3)

mkmat sdty, mat(sigmay)


mkmat sdtx1,mat(sigmax1)
mkmat sdtx2, mat(sigmax2)
mkmat sdtx3,mat(sigmax3)

*/Vous pouvez maintenant récupérer les premières valeurs (les premier "éléments" =el) de chacune des matrices
*Comme on récupère la (1,1) première ligne et 1ere colonne de chaque vecteur on récupéré donc scalaire qui sera
intégré dans le tableau de données.
matrix TOTALY=el(Totaly,1,1)
svmat double TOTALY

4
matrix TOTALx1=el(Totalx1,1,1)
svmat double TOTALx1
matrix TOTALx2=el(Totalx2,1,1)
svmat double TOTALx2
matrix TOTALx3=el(Totalx3,1,1)
svmat double TOTALx3
matrix MOYENNEy=el(Moyenney,1,1)
svmat double MOYENNEy
matrix MOYENNEx1=el(Moyennex1,1,1)
svmat double MOYENNEx1
matrix MOYENNEx2=el(Moyennex2,1,1)
svmat double MOYENNEx2
matrix MOYENNEx3=el(Moyennex3,1,1)
svmat double MOYENNEx3
matrix SIGMAy=el(sigmay,1,1)
svmat double SIGMAy
matrix SIGMAx1=el(sigmax1,1,1)
svmat double SIGMAx1
matrix SIGMAx2=el(sigmax2,1,1)
svmat double SIGMAx2
matrix SIGMAx3=el(sigmax3,1,1)
svmat double SIGMAx3
*Récupérer ces éléments dans un seul vecteur ligne que l'on transpose pour avoir un vecteur colonne
mkmat TOTALY TOTALx1 TOTALx2 TOTALx3 MOYENNEy MOYENNEx1 MOYENNEx2 MOYENNEx3 SIGMAy SIGMAx1 SIGMAx2
SIGMAx3, mat(tableau)
matrix Tableaustat=(tableau)'
mat list Tableaustat

Avec le chier de données proposé en téléchargement le résultat doit être le suivant :

On peut naturellement améliorer le nom des colonnes, etc.. Mais à vous de jouer.

3.2. L'économétrie sur série chronologique : régression simple et multiple.

Il ne s'agit pas pour l'instant de traiter le thème de la stationnarité des séries chronologiques. Ce point sera
abordé ultérieurement. Ne seront traitées ici que la régression simple et multiple

3.2.1. Déclarer le chier de données comme comprenant des séries temporelles


Dans les chiers qui comportent des séries temporelles il est nécessaire dans un premier temps d'indiquer à Stata
quelle est la variable temporelle (année, jours, mois, trimestres,...).
Dans le chier proposé en téléchargement la variable qui indique le temps ne nomme tout simplement temps. Il
faut donc démarrer tout programme par les commandes ts : tsset ; tsll et tsreport

5
tsset temps

Avec cette commande vous indiquez que la variable nommée temps est celle du temps. Vous verrez à l'écran
les phrases :
. tsset temps
time variable: temps, 1 to 14
delta: 1 unit
La variable du temps se nomme 'temps' et elle s'étend de 1 à 14 périodes. Le pas de la progression des données
est 1.

Si vous tapez la commande tssetll, dans la barre de commande, Stata remplace toutes les données manquantes
du chier

Si vous tapez dans la barre de commande tsreport

. tsreport

Time variable: temps

Starting period = 1
Ending period = 14
Observations = 14
Number of gaps = 0

Vous avez une synthèse de la structure de vos données temporelles.

3.2.1. La régression simple et les tests usuels


Dans un premier temps il peut être recommandé de faire le nuages des points y, x1, pour avoir une idée de
l'ajustement.
Dans l'exemple de données proposé vous pouvez faire deux graphiques entre y et x1. Le premier avec juste le
nuage de points :

twoway (scatter y x1)


180
160
140
Y
120
100

80 90 100 110 120 130


X1

Mais vous pouvez aussi faire le graphe avec la droite d'ajustement :

twoway (scatter y x1) (lt y x1)

6
180
160
140
120
100

80 90 100 110 120 130


X1

Y Fitted values

Pour faire une régression de y par rapport à x1, la syntaxe et simple avec une commande qui s'écrit simplement
regress (ou en raccourci reg). Vous devez par exemple écrire :

reg y x1

Vous obtenez le résultat suivant :

Source SS df MS Number of obs = 14


F(1, 12) = 178.79
Model 4954.86425 1 4954.86425 Prob > F = 0.0000
Residual 332.56432 12 27.7136934 R-squared = 0.9371
Adj R-squared = 0.9319
Total 5287.42857 13 406.725275 Root MSE = 5.2644

y Coef. Std. Err. t P>|t| [95% Conf. Interval]

x1 1.139536 .0852235 13.37 0.000 .9538497 1.325222


_cons 21.94343 9.130568 2.40 0.033 2.049631 41.83723

En haut a droite de cette capture d'écran vous avez un premier tableau de résultat qui indique :
- Le nombre d'observations (toujours noté _N dans les programmes stata) est =14
- Le Fisher global et sa probabilité (qui dans le cas d'un modèle à 1 variable explicative correspond au t de
student). Il nous indique que les coecients du modèle sont globalement signicativement diérent de zéro et que
le modèle fait mieux qu'une constante
- Le coecient de détermination R2 et le R2 ajusté
En haut à gauche du tableau vous avez le tableau d'analyse de la variance, avec SCE (qui se dit mss sous
Stata), SCR (qui se dit rss). Vous pouvez en déduire SCT. Dans l'exemple, la Somme des carrés des résidus est
332,54, la Somme des carrés expliqués est 4954,86 et la Somme des carrés Total est 5287,42. Vous avez également
les degrés de liberté.
Le Tableau central reprend les éléments de la régression.
- Dans ce tableau la première colonne est celle des variables, la constante est notée (_cons) alors que dans
d'autres logiciels elle se nomme intercept.
- La deuxième colonne du tableau est celle de la valeur des coecients estimées (a1 chapeau=1,13 et a0 chapeau
pour la constante=21,94)
- La Troisième colonne est celle des écart-type estimés des coecients et naturellement le rapport du coecient
sur l'écart type nous donne la valeur du t de student qui est nal donné dans la quatrième colonne. La dernière
colonne nous donne la probabilité de rejeter à tort l'hypothèse selon laquelle a0=0 ou a1=1.
- Pour nir on trouve l'intervalle de conance.
On peut améliore la régression en ajoutant des options. Il faudra pour indiquer les options mettre une virgule
après le programme précédant. Par exemple

7
reg y x1, noconstant

Si on veut faire la régression sans constante

reg y x1, robust

Si on veut corriger l'hétéroscédasticité.

Si on veut utiliser if et in il faut les écrire avant la virgule. Par exemple

reg y x1 in 1/13

Si on veut faire la régression que de la 1ere à la 13ème ligne (Utilisation de if )

reg y x1 if x1>0

Si on veut faire la régression que si la variable x est positive (Utilisation de in)

reg y x1 in 1/13, noconstant

On utilisera l'expression by plutôt dans le cas des données de panel.


Par contre si vous ajoutez une option alors la virgule réapparaitra.

Une fois la régression faite il est possible de récupérer en ensemble de données et de statistiques. Pour connaitre
tout ce que Stata peut stocker en mémoire après une régression simple ou multiple il sut d'écrire la commande :

ereturn list

. ereturn list

scalars:
e(N) = 14
e(df_m) = 1
e(df_r) = 12
e(F) = 178.7875828823532
e(r2) = .937102824939086
e(rmse) = 5.264379676017719
e(mss) = 4954.86425094935
e(rss) = 332.5643204792211
e(r2_a) = .9318613936840099
e(ll) = -42.03957116262542
e(ll_0) = -61.40334935775386
e(rank) = 2
Vous obtenez la liste précédente dans le cas de la régression. Attention selon le type de travaux réalisés (régression
robuste ou non, données de panel, données qualitatives), la liste de données disponibles peut varier.
Dans le cas de notre exemple vous avez le nombre d'observations (14), les degrés de liberté (ddlk=1 et ddl(k-
2=12)), le Fisher global, le R2 et le R2 ajusté, la somme des carrés des résidus (rss) et la somme des carrés ..etc.
Vous pouvez récupérer ces données pour réaliser un calcul en utilisant  scalar  comme dans l'exemple suivant
où est récupéré la somme des carrées des résidus stocké sous le nom du scalaire SCR. Ceci est utile pour calculer
soi-même certains tests (notamment les Fisher du test de Chow) que Stata ne calcule par forcément . :

scalar SCR=e(rss)

Si vous voulez récupérer les coecients estimés (de x1 dans l'exemple) pour, par exemple, calculer le t de student
à partir de l'écart-type estimé ((se) vous pouvez écrire :

scalar coefa1= _b[x1]

8
display coefa1

scalar ecarttype= _se[x1]

display ecarttype

scalar student=_b[x1]/_se[x1]

display student

Vous retrouvez la valeur du t de Student qui était déjà donné dans le tableau de la régression.
Si vous voulez récupérer le coecient de la constant il faut remplacer le nom de la variable par _cons.

Vous pouvez également récupérer et stocker les valeurs estimées, comme celle de y estimé (Linear prediction) et
les résidus (Résidual). Il faut après la régression demander via le programme suivant ces valeurs :

predict yestimé, xb

predict res, re

3.2.3 L'utilisation des opérateurs dans une régression simple (ou multiple)
Dans certaines régression il est parfois nécessaire de créer des décalage temporels sur certaines variables. Par
exemple faire la régression de yt par rapport à x1t-1 et non pas par rapport à x1t. De même on peut vouloir faire
par exemple la régression de yt+1 par rapport à x1t. Il n'est pas nécessaire de créer ces variables retard (t-1) ou
forward (t+1). Il existe une syntaxe permettant d'utiliser ces variables :

L.xt = permet d'induire un retard de 1 période sur la variable


L2.xt = permet d'introduire un retard de 2 période sur la variable
Li.xt = permet d'introduire un retard de i périodes.
Fi.xt = permet d'induire un pas de 1 période sur la variable
F2.xt = permet d'introduire un pas de 2 période sur la variable
Fi.xt = permet d'introduire un pas de i périodes.
Mais on peut aussi utiliser un opérateur diérence qui calcule (xt-xt-1) et qui est noté D
D.xt = permet de calculer (xt-xt-1)
D2.xt = perler de calculer (xt-xt-1) - (xt-1-xt-2)
Il existe également S.xt qui calcule la diérence saisonnière (S.xt) sur la variable xt.
Des exemples de programmes avec les opérateurs précédents sont
regress y L.x1
regres F.t x1
regres y D.x1

3.2.4 Les tests d'hypothèse dans une régression simple (ou multiple)
Le premier test que l'on peut faire, après avoir vérier le R2, le F et le Student est celui de la normalité des
résidus de la régression. Les étapes du test sont les suivantes :
 On faire la régression
 0n récupère les résidus
 on fait le test sur les résidus( sktest). Le test c'est H0 = les résidus sont normaux contre H1 = ils ne le sont
pas.
Dans le cas de notre exemple le programme est le suivant :

regress y x1

predict residu, re

sktest residu

9
. sktest residu

Skewness/Kurtosis tests for Normality


joint
Variable Obs Pr(Skewness) Pr(Kurtosis) adj chi2(2) Prob>chi2

residu 14 0.0133 0.0649 7.96 0.0187

Vous obtenez le résultat précédant : la valeur du Skewness (assymétrie de la courbe), du Kurtosis (aplatissement),
du test joint (Jarque-Bera) et la probabilité de rejeter à tort H0. Ici vous avez 1,87% de chance de rejeter à tort
H0. Donc très peu de chance de rejeter et de vous tromper : donc les résidus ne sont pas normaux. Un graphique
des résidus montrent qu'eectivement il ne sont pas distribués selon une loi normale( faire histogram residu).
Le deuxième test est celui de l'hétéroscédasticité version Breusch-Pagan / Cook-Weisberg (qui est un
test du Khi2). La syntaxe du test est après avoir fait la régression : hettest.

regress y x1

estat hettest

. estat hettest

Breusch-Pagan / Cook-Weisberg test for heteroskedasticity


Ho: Constant variance
Variables: fitted values of y

chi2(1) = 5.62
Prob > chi2 = 0.0178
L'hypothèse H0 est la variance est constante (homoscédasticité). Ici il y a 1,78% de chance rejeter à tort H0. Il
y a donc de neuroplasticité. Vous devez donc faire une régression robust (regres y x1, robust).
Vous pouvez faire un test de variable omise, qui est le test de Ramsey Reset. La syntaxe est la suivante :
regres y x1
ovtest
. ovtest

Ramsey RESET test using powers of the fitted values of y


Ho: model has no omitted variables
F(3, 9) = 9.73
Prob > F = 0.0035
L'hypothèse H0 étant il n'y a pas de variable omise alors on peut conclure dans le cas précédant qu'il y a des
variables omises dont l'intégration améliorerait l'estimation. Dans la mesure où vous avez omis des variables vous
pouvez tenter d'intégrer par exemple la variable x2 dans l'estimation, mais pour savoir si le fait d'inclure cette
variable améliore l'estimation vous pouvez utiliser les critères d'information que sont les critères d'Akaiké ou
schwarz ou le critère d'information bayesien. Le meilleur modèle est celui qui minimise le critère. Voici les étapes
du programme
 faire la regression : regress y x1
 demander la valeur des critères : estat ic
 faire la deuxième régression : regress y x1 x2
 demande la valeur des critères : estat ic
 comparer : le meilleur modèle est celui qui minimise les critères.
Dans notre exemple, on obtient les valeurs suivantes des critères sont données par le modèle 1

10
. estat ic

Akaike's information criterion and Bayesian information criterion

Model Obs ll(null) ll(model) df AIC BIC

. 14 -61.40335 -42.03957 2 88.07914 89.35726

Note: N=Obs used in calculating BIC; see [R] BIC note.


Pour le modèle a deux variables les résultats sont les suivants :
. estat ic

Akaike's information criterion and Bayesian information criterion

Model Obs ll(null) ll(model) df AIC BIC

. 14 -61.40335 -41.88943 3 89.77887 91.69604

Note: N=Obs used in calculating BIC; see [R] BIC note.


On peut voir que les critères sont minimisés avec le premier modèle. Introduire la variable x2 n'améliore pas
l'information proposée par le modèle.
On peut aussi faire un test de chow. Stata ne le calcule pas directement, il faut faire les étapes du calcul soi même,
en récupérant les diérentes SCR nécessaires à la construction du test de chow. Cela suppose que vous avez une
idée de la période où il y a un break. Dans le cas où vous ne savez pas quelle est la date du break, stata propose
un test pour éventuellement le déterminer. Cependant, les étapes du calcul du test de Chow sont assez fastidieuses
avec une hypothèse H0 les coecients ne sont pas stables dans le temps :
 faire la régression sur la période totale (dans l'exemple propose de 1-14ème période) : regress y x1
 récupérer la SCR du modèle : scalar SCR=e(rss)
 faire éventuellement un test pour déterminer la date du break par rapport à la variable du temps (l'hypothèse
H0 est il y a un break) : tsset temps estat sbsingle
 faire la régression pour la première sous période : regress y x1 if temps <5
 (si le break est à la 4ème période)
 récupérer la SCR1 du modèle de première la sous - période : scalar SCR1=e(rss)
 faire la régression pour la deuxième sous période : regress y x1 if temps >4 (si le break est à la 4ème période)
 récupérer la SCR2 du modèle de la deuxième sous - période : scalar SCR2=e(rss)
 construire la statistique F avec _N le nombre d'observations et k le nombre de variable explicative (toujours
faire attention au ddl) F=[SCR - (SCR1+SCR2)]/([SCR1+SCR2]*[(_N-2-k)/(k)]
 scalar F=[SCR - (SCR1+SCR2)]/([SCR1+SCR2]*[(_N-2-k)/(k)]
 Voir la valeur de la stat calculée : display F
 comparer le test calculé F au F de la table. Si la stat calculée est inférieure au F de la table on accepte H1
(les coecients ne sont pas stables).
Au nal cela donne :
regress y x1
scalar SCR =e(rss)
regress y x1 if x1<5
scalar SCR1=e(ress)
regrss y x1 if x1>4
scalar SCR2=e(rss)
scalar F=[SCR - (SCR1+SCR2)]/([SCR1+SCR2]*[(_N-2-k)/(k)]
display F
Mais il y a plus simple, vous pouvez utiliser la syntaxe (estat sbknown, break(4)) qui vous propose un test de

11
break structurel avec un date connue (c'est un test de Khi2). Les étapes du programme sont les suivantes :
 on cherche le break

tsset temps

estat sbsingle

.
. estat sbsingle
1 2 3 4 5
........

Test for a structural break: Unknown break date

Number of obs = 14

Full sample: 1 - 14
Trimmed sample: 4 - 12
Estimated break date: 4
Ho: No structural break

Test Statistic p-value

swald 26.9120 0.0000

Exogenous variables: x1
Coefficients included in test: x1 _cons
Dans le cas de l'exemple proposé on obtient les résultats précédents où le break est après la 4ème période.
 Ensuite on fait le test tout simplement :
estat sbknown, break(5)
Les résultats indiquent qu'il y a bien un break structurel à cette date. Mais cela n'exonère par du test de Chow.

On peut vouloir mettre en place un test de cusum ou cusum carré. Attention il faut télécharger le package
cusum6 qui n'est pas disponible dans toutes les versions de stata (taper cusum6 dans l'aide et laisse vous guider
pour eectuer le téléchargement en un click.
Le cusum permet d'étudier la stabilité du modèle estimé au cours du temps. Stata calculera la valeur du cusum
et vous fera les graphes. Si les coecients sont stables au cours du temps alors les résidus doivent rester dans les
intervalles dénis.
La syntaxe est :

cusum6 y x1 , cs(cusum) lw(lower) uw(upper)

On obtient le graphe du cusum :


CUSUM lower
upper
CUSUM

0 0

4 14
temps

12
Ensuite en cliquent sur 'more' on obtient le graphe du cusum carré.
CUSUM squared

1
CUSUM squared

4 14
temps

On voit qu'il y a une instabilité autour de la 4ème période.

On peut pour nir calculer le Durbin et Watson. Comme précédemment il faut faire la régression puis demander
la statististque qui s'obtient facilement en faisant estat dwatson

regress y x1

estat dwatson

Dans notre exemple on obtient la valeur suivante :

. estat dwatson

Durbin-Watson d-statistic( 2, 14) = 1.368804


Ensuite il faut aller sur la table récupérer les valeurs des diérentes bornes permettant de construire le test avec
ddl1=2 (k+1) et ddl2=14 (_N), les degrés de liberté.

3.2.5. La régression multiple


Tout ce qui vient d'être dit ou proposé comme syntaxe reste vrais avec la régression multiple. Dans le cadre
de l'exemple proposé on peut par exemple faire la régression avec les 3 variables explicatives x1,x2 et x3 avec la
synatxe

regress y x1 x2 X3

. regress y x1 x2 x3

Source SS df MS Number of obs = 14


F(3, 10) = 51.52
Model 4966.1022 3 1655.3674 Prob > F = 0.0000
Residual 321.326373 10 32.1326373 R-squared = 0.9392
Adj R-squared = 0.9210
Total 5287.42857 13 406.725275 Root MSE = 5.6686

y Coef. Std. Err. t P>|t| [95% Conf. Interval]

x1 1.011868 .2721167 3.72 0.004 .4055546 1.618182


x2 -1.882522 5.779563 -0.33 0.751 -14.76019 10.99515
x3 .1466773 .406626 0.36 0.726 -.7593419 1.052697
_cons 36.28875 39.88264 0.91 0.384 -52.57531 125.1528

13
On note la qualité de qualité de l'ajustement avec un R2 de 0,93, un modèle avec des coecients globalement
signicatifs, et une seule variable qui a un coecient signicatif (x2).
Les tests qui peuvent être eectué restent les mêmes cependant on doit se poser la question de la colinéarité
entre les variables. On peut avoir une idée de celle-ci avec la matrice des corrélations mais le mieux reste de faire
un VIF test.
La matrice des corrélation donne le résultat suivant :
. pwcorr y x1 x2, sig star(5)

y x1 x2

y 1.0000

x1 0.9680* 1.0000
0.0000

x2 -0.9233* -0.9410* 1.0000


0.0000 0.0000
Il y a une forte corrélation positive entre y et x1 ce qui est parfait mais ce qui est gênant et la forte corrélation
négative et signicative entre x1 et x2. Il y a donc une très forte suspicion de colinéarité.
Il faut également faire un VIF test et l'interpréter. Après la régression la syntaxe du VIF est simple :

regress y x1 x2 x3

estat VIF

. estat vif

Variable VIF 1/VIF

x2 9.77 0.102372
x1 8.79 0.113726
x3 2.56 0.390459

Mean VIF 7.04

Dans le cas de notre exemple il a bien un problème de colinéarité entre x1 et x2 pisuque le VIF est supérieur à
3.

14

Vous aimerez peut-être aussi