11.07.2015 Views

Démarrer en R - Cours d'économétrie et d'analyse des données

Démarrer en R - Cours d'économétrie et d'analyse des données

Démarrer en R - Cours d'économétrie et d'analyse des données

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6Répertoires : par défaut, les fichiers de scripts, de sorties, ou <strong>en</strong>core de <strong>données</strong>,sont supposés dans le répertoire « Mes docum<strong>en</strong>ts » de l'utilisateur, mais il estpossible voire conseillé de leur consacrer un répertoire propre qu’on spécifiepar la commande « Changer le répertoire courant... » du m<strong>en</strong>u « Fichier ».Données, régression linéaire, un exempleOn prés<strong>en</strong>te maint<strong>en</strong>ant un exemple simple de lecture de <strong>données</strong> <strong>et</strong>d’estimation d’une relation linéaire par les moindres carrés ordinaires.La commande « read.table » : souv<strong>en</strong>t, les <strong>données</strong> se prés<strong>en</strong>t<strong>en</strong>t sous la formede tableaux rectangulaires portant les séries <strong>en</strong> colonnes, tel celui <strong>des</strong> sérieséconomiques utilisées dans le célèbre modèle de Klein (Lawr<strong>en</strong>ce R. Klein,1920-…) :year cons p plag wtot wpri wpub inv klag x g t ylag1921 41.9 12.4 12.7 28.2 25.5 2.7 -0.2 182.8 45.6 3.9 7.7 44.91922 45.0 16.9 12.4 32.2 29.3 2.9 1.9 182.6 50.1 3.2 3.9 45.6...1941 69.7 23.5 21.1 61.8 53.3 8.5 4.9 204.5 88.4 13.8 11.6 75.7On suppose le tableau dans un fichier texte, il est lu <strong>et</strong> rangé dans un obj<strong>et</strong> R d<strong>et</strong>ype liste de <strong>données</strong> par la commande « read.table("fichier", options) », ainsi sile fichier se nomme « data.txt » :> # on copie <strong>et</strong> stocke les <strong>données</strong> de data.txt dans l’obj<strong>et</strong> « klein »> klein = read.table("data.txt", header=TRUE)> klein # pour voir…year cons p plag wtot wpri wpub inv klag x g t xlag1 1921 41.9 12.4 12.7 28.2 25.5 2.7 -0.2 182.8 45.6 3.9 7.7 44.92 1922 45.0 16.9 12.4 32.2 29.3 2.9 1.9 182.6 50.1 3.2 3.9 45.6...21 1941 69.7 23.5 21.1 61.8 53.3 8.5 4.9 204.5 88.4 13.8 11.6 75.7> summary(klein)...L’option « header=TRUE », « header=T », ou simplem<strong>en</strong>t « h=T », indique quela première ligne donne les noms <strong>des</strong> colonnes.On peut <strong>en</strong>core indiquer que l'une <strong>des</strong> colonnes, désignée par son nom, servirad'id<strong>en</strong>tifiant :> klein = read.table("data.txt", header=TRUE, row.names="year")> klein # vérification...C<strong>et</strong>te commande est égalem<strong>en</strong>t adaptée au classique format texte universel :« csv », utilisé par les tableurs :> klein = read.table("data.csv", h=T, sep=";", dec=",")


8> reg = lm(cons~p+plag+wtot)> reg # reproduit l’affichage minimal <strong>des</strong> résultats...> summary(reg) # affiche les résultats détaillésCall:lm(formula = cons ~ p + plag + wtot)Residuals:Min 1Q Median 3Q Max-2.17345 -0.43597 -0.03466 0.78508 1.61650Coeffici<strong>en</strong>ts:Estimate Std. Error t value Pr(>|t|)(Intercept) 16.23660 1.30270 12.464 5.62e-10 ***p 0.19293 0.09121 2.115 0.0495 *plag 0.08988 0.09065 0.992 0.3353wtot 0.79622 0.03994 19.933 3.16e-13 ***---Signif. co<strong>des</strong>: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1Residual standard error: 1.026 on 17 degrees of freedomMultiple R-Squared: 0.981, Adjusted R-squared: 0.9777F-statistic: 292.7 on 3 and 17 DF, p-value: 7.938e-15Complém<strong>en</strong>ts : d’autres quantités sont <strong>en</strong>core calculées <strong>et</strong> stockées dans l’obj<strong>et</strong>auquel sont affectés les résultats de la commande « lm » : les résidus, les valeursajustées, <strong>et</strong>c. :> reg$residuals # les résidus> reg$fitted # la série ajustée> plot(reg$residuals) # on figure les résidus> lines(reg$residuals) # idem avec la ligne qui les joint> plot(wtot, reg$residuals) # un graphique croiséOn peut aussi demander la stepwise regression :> step(reg)Start: AIC= 4.62cons ~ p + plag + wtotDf Sum of Sq RSS AIC- plag 1 1.03 18.91 3.80 17.88 4.62- p 1 4.71 22.59 7.53- wtot 1 417.90 435.78 69.68Step: AIC= 3.8cons ~ p + wtotDf Sum of Sq RSS AIC 18.91 3.80- p 1 13.37 32.29 13.03


9- wtot 1 440.78 459.69 68.81Call:lm(formula = cons ~ p + wtot)Coeffici<strong>en</strong>ts:(Intercept) p wtot16.4303 0.2506 0.8036Autres procédures, packages complém<strong>en</strong>taires, métho<strong>des</strong> avancéesR offre un très grand nombre de modules ou packages complém<strong>en</strong>taires,perm<strong>et</strong>tant de m<strong>et</strong>tre <strong>en</strong> œuvre <strong>des</strong> métho<strong>des</strong> avancées ou propres à un domaineparticulier. Beaucoup sont disponibles sur les sites d’archives du proj<strong>et</strong> <strong>et</strong>installables sur l'ordinateur directem<strong>en</strong>t depuis le logiciel ; une liste partielle <strong>en</strong>est donnée via l' « Aide HTML » du logiciel.Installation d’un package : on suppose qu’on dispose d’une connexion intern<strong>et</strong>.Ayant id<strong>en</strong>tifié un package complém<strong>en</strong>taire intéressant, par exemple« survival » pour le traitem<strong>en</strong>t <strong>des</strong> séries démographiques de survie, on utilise lem<strong>en</strong>u « Packages », puis « Choisir le site miroir de CRAN... » pour choisir unsite de téléchargem<strong>en</strong>t, <strong>et</strong> « Installer le(s) package(s)... » pour l’installer.Chargem<strong>en</strong>t d'un package : pour pouvoir être utilisé, un package installé doit <strong>en</strong>outre être chargé par la commande « Charger le package... » qui r<strong>en</strong>d égalem<strong>en</strong>tdisponible l'aide associée. Contrairem<strong>en</strong>t à la précéd<strong>en</strong>te, c<strong>et</strong>te opération doitêtre répétée à chaque nouveau lancem<strong>en</strong>t de R, <strong>et</strong> elle peut être ordonnée parligne de commande ou dans un script par l'instruction « library » :> library(survival) # par exempleLes packages de base, notamm<strong>en</strong>t « stats », sont installés <strong>et</strong> chargés par défautavec le logiciel, il est donc inutile de t<strong>en</strong>ter de les installer ou les charger ànouveau… Les comman<strong>des</strong> :> library()> search()perm<strong>et</strong>t<strong>en</strong>t par ailleurs de savoir quels sont les packages installés <strong>et</strong> lespackages chargés.Package « stats » : outre la régression linéaire multiple <strong>et</strong> la méthode stepwisedéjà signalées, ce package conti<strong>en</strong>t de nombreuses procédures, incluantl’analyse <strong>en</strong> composantes principales (procédure princomp) <strong>et</strong> les métho<strong>des</strong> debase de traitem<strong>en</strong>t <strong>des</strong> séries chronologiques (métho<strong>des</strong> ar <strong>et</strong> arima par exemple,<strong>et</strong> procédures de mêmes noms).


10Parmi de nombreuses options, la procédure « glm » (pour g<strong>en</strong>eralized linearmodel) perm<strong>et</strong> l'estimation du modèle logit :> # lecture de <strong>données</strong> d'abonnem<strong>en</strong>t> abonnem<strong>en</strong>t = read.table("abon.dat", header=T)> attach(abonnem<strong>en</strong>t)> # on estime le modèle logit expliquant l'abonnem<strong>en</strong>t à une> # certaine revue (abo=1) par l'âge <strong>et</strong> le sexe> mlogit = glm(abo~age+sexe, family=binomial(link="logit"))> summary(mlogit)Call:glm(formula = abo ~ age + sexe, family = binomial(link = "logit"))Deviance Residuals:Min 1Q Median 3Q Max-2.55961 -0.74655 0.06624 0.88512 1.84192Coeffici<strong>en</strong>ts:Estimate Std. Error z value Pr(>|z|)(Intercept) 8.18443 3.09644 2.643 0.00821 **age -0.16491 0.06519 -2.530 0.01142 *sexe -2.42241 0.95590 -2.534 0.01127 *---Signif. co<strong>des</strong>: 0 `***' 0.001 `**' 0.01 `*' 0.05 `.' 0.1 ` ' 1(Dispersion param<strong>et</strong>er for binomial family tak<strong>en</strong> to be 1)Null deviance: 55.452 on 39 degrees of freedomResidual deviance: 38.981 on 37 degrees of freedomAIC: 44.981Number of Fisher Scoring iterations: 5Package « tseries » : au-delà de celles de base, <strong>des</strong> métho<strong>des</strong> plus avancéesd'étude <strong>des</strong> séries chronologiques sont disponibles dans le package « tseries »,tels les tests de stationnarité de Dickey-Fuller ou KPSS (procédures adf.test <strong>et</strong>kpss.test), l’estimation <strong>des</strong> modèles GARCH (procédure garch), <strong>et</strong>c.Package « systemfit » : ce package perm<strong>et</strong> l’estimation <strong>des</strong> modèles à équationssimultanées, la procédure du même nom effectue notamm<strong>en</strong>t l’estimationglobale par les doubles ou <strong>en</strong>core les triples moindres carrés. À titre d'exempleon donne un programme d'estimations du modèle à équations simultanées deKlein par diverses métho<strong>des</strong> :# lecture <strong>des</strong> <strong>données</strong> puis estimations du modèle de Kleinklein = read.table("data.txt", header=TRUE)attach(klein)


11# equationsconso = cons ~ p + plag + wtotwage = wpri ~ x + xlag + yearinvest = inv ~ p + plag + klagmodklein = list(consommation = conso, salaires = wage, investissem<strong>en</strong>t =invest)# chargem<strong>en</strong>t du package « systemfit » supposé installélibrary(systemfit)# estimations par les mcofitols = systemfit(modklein)summary(fitols)# estimations par la méthode "sur"fitsur = systemfit(modklein, "SUR")summary(fitsur)# estimations par les doubles moindres carrésinst = ~ klag + plag + xlag + wpub + g + tax + yearfitdmc = systemfit(modklein, "2SLS", inst=inst)summary(fitdmc)# estimations par les doubles moindres carrés# avec instrum<strong>en</strong>ts différ<strong>en</strong>tsinst1 = ~ klag + plag + xlag + tax + yearinst2 = ~ klag + plag + xlag + wpub + g + tax + yearinst3 = ~ klag + plag + xlag + wpub + g + taxinstlist = list(inst1, inst2, inst3)fitdmc2 = systemfit(modklein, "2SLS", inst=instlist)summary(fitdmc2)# estimations par les triples moindres carrésinst = ~ klag + plag + xlag + wpub + g + tax + yearfittmc = systemfit(modklein, "3SLS", inst=inst)summary(fittmc)Package « Rcmdr » : ce package offre à R une interface graphique, leR-Commander, ayant l'ambition de r<strong>en</strong>dre plus conviviales les comman<strong>des</strong> demanipulation de <strong>données</strong> <strong>et</strong> la mise <strong>en</strong> œuvre <strong>des</strong> métho<strong>des</strong> statistiques de base,incluant la régression linéaire <strong>et</strong> l'estimation <strong>des</strong> modèles dérivés.Pour un travail limité à ces métho<strong>des</strong>, l'utilisateur n'a donc pas à appr<strong>en</strong>dre lasyntaxe <strong>des</strong> comman<strong>des</strong> sous-jac<strong>en</strong>tes <strong>et</strong> le logiciel peut paraître aussi simple àutiliser que Excel ou Eviews.


12Pour la mise <strong>en</strong> œuvre de métho<strong>des</strong> plus complexes, telles celles liées auxéquations simultanées ou aux séries temporelles, la programmation par ligne decommande décrite dans le prés<strong>en</strong>t docum<strong>en</strong>t reste pour l'instant nécessaire.Package « FactoMineR » : ce package propose les métho<strong>des</strong> factoriellesclassiques <strong>d'analyse</strong> <strong>des</strong> <strong>données</strong>, telles l'ACP, l'AFC <strong>et</strong> AFCM, <strong>et</strong>c. « à lafrançaise ».En suivant les indications de ses auteurs (voir sur le site indiqué infra), on peutinstaller une version du R-Commander incluant l'appel de ces métho<strong>des</strong>.Textes <strong>et</strong> sitesSite du proj<strong>et</strong> Rwww.r-project.orgInitiation générale à Rwww.ceremade.dauphine.fr/~xian/Noise/R.pdfInitiation à l'économétrie <strong>en</strong> Rhttp://cran.r-project.org/doc/contrib/Farnsworth-Econom<strong>et</strong>ricsInR.pdfSite de FactoMineRhttp://factominer.free.fr/index_fr.htmlDes <strong>données</strong> <strong>et</strong> <strong>des</strong> scripts sur mon sitehttp://www.cabannes.orgDonnées pour Klein (fichier « data.txt »)year cons p plag wtot wpri wpub inv klag x g t xlag1921 41.9 12.4 12.7 28.2 25.5 2.7 -0.2 182.8 45.6 3.9 7.7 44.91922 45.0 16.9 12.4 32.2 29.3 2.9 1.9 182.6 50.1 3.2 3.9 45.61923 49.2 18.4 16.9 37.0 34.1 2.9 5.2 184.5 57.2 2.8 4.7 50.11924 50.6 19.4 18.4 37.0 33.9 3.1 3.0 189.7 57.1 3.5 3.8 57.21925 52.6 20.1 19.4 38.6 35.4 3.2 5.1 192.7 61.0 3.3 5.5 57.11926 55.1 19.6 20.1 40.7 37.4 3.3 5.6 197.8 64.0 3.3 7.0 61.01927 56.2 19.8 19.6 41.5 37.9 3.6 4.2 203.4 64.4 4.0 6.7 64.01928 57.3 21.1 19.8 42.9 39.2 3.7 3.0 207.6 64.5 4.2 4.2 64.41929 57.8 21.7 21.1 45.3 41.3 4.0 5.1 210.6 67.0 4.1 4.0 64.51930 55.0 15.6 21.7 42.1 37.9 4.2 1.0 215.7 61.2 5.2 7.7 67.01931 50.9 11.4 15.6 39.3 34.5 4.8 -3.4 216.7 53.4 5.9 7.5 61.21932 45.6 7.0 11.4 34.3 29.0 5.3 -6.2 213.3 44.3 4.9 8.3 53.41933 46.5 11.2 7.0 34.1 28.5 5.6 -5.1 207.1 45.1 3.7 5.4 44.31934 48.7 12.3 11.2 36.6 30.6 6.0 -3.0 202.0 49.7 4.0 6.8 45.11935 51.3 14.0 12.3 39.3 33.2 6.1 -1.3 199.8 54.4 4.4 7.2 49.71936 57.7 17.6 14.0 44.2 36.8 7.4 2.1 197.7 62.7 2.9 8.3 54.41937 58.7 17.3 17.6 47.7 41.0 7.7 2.0 199.8 65.0 4.3 6.7 62.71938 57.5 15.3 17.3 45.9 38.2 7.8 -1.9 201.8 60.9 5.3 7.4 65.01939 61.6 19.0 15.3 49.4 41.6 7.8 1.3 199.9 69.5 6.6 8.9 60.91940 65.0 21.1 19.0 53.0 45.0 8.0 3.3 201.2 75.7 7.4 9.6 69.51941 69.7 23.5 21.1 61.8 53.3 8.5 4.9 204.5 88.4 13.8 11.6 75.7


13-----==ooΩoo==-----(12 avril 2013)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!