lm ls max mean median min mosaicplot * names ncol nrow par(new=t) paste pie plot predict * print * q range * read.csv read.csv2



Documents pareils
Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Introduction aux Statistiques et à l utilisation du logiciel R

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

Lire ; Compter ; Tester... avec R

SEMIN. Données sous R : stockage et échange. Julio PEDRAZA ACOSTA

Introduction à MATLAB R

Logiciel XLSTAT version rue Damrémont PARIS

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

INTRODUCTION AU LOGICIEL R

Analyse exploratoire des données

1 Introduction - Qu est-ce que le logiciel R?

Gestion des données avec R

Séance 0 : Linux + Octave : le compromis idéal

Programmation Web. Madalina Croitoru IUT Montpellier

données en connaissance et en actions?

Annexe commune aux séries ES, L et S : boîtes et quantiles

R01 Import de données

Exemples d Analyses de Variance avec R

EXCEL PERFECTIONNEMENT CALCULS AVANCES

Tests statistiques et régressions logistiques sous R, avec prise en compte des plans d échantillonnage complexes

Utilisation du Logiciel de statistique SPSS 8.0

Statistique : Résumé de cours et méthodes

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Aide-mémoire de statistique appliquée à la biologie

Première session de travail

Formation. Module WEB 4.1. Support de cours

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Comment créer un diagramme de Gantt avec OpenOffice.org

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Raisonnement par récurrence Suites numériques

LES TYPES DE DONNÉES DU LANGAGE PASCAL

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

NOTATIONS PRÉLIMINAIRES

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Traitement des données avec Microsoft EXCEL 2010

Initiation à l analyse en composantes principales

SharePoint (Toute la Gamme)... 1 Office 2010 (Toute la Gamme)... 2 OLAP (Toute la Gamme)... 2 STATISTICA Connecteur PI (Produit Complémentaire)...

INTRODUCTION AU DATA MINING

Fête de la science Initiation au traitement des images

La structure de la base de données et l utilisation de PAST. Musée Royal de l Afrique Centrale (MRAC Tervuren)

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Programmation par les Objets en Java

TP1 : LOGICIEL R ET PRÉDICTION DE L EFFLORESCENCE ALGALE

DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran

SAP BusinessObjects Web Intelligence (WebI) BI 4

Initiation à LabView : Les exemples d applications :

Séries Statistiques Simples

Analyse des durées de vie avec le logiciel R

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

TP de Statistiques: Utilisation du logiciel R

I- Définitions des signaux.

Guide Utilisateur - Guide général d'utilisation du service via Zdesktop ou Webmail v.8. Powered by. - media-2001.communication &.

Introduction : présentation de la Business Intelligence

Infolettre #18 : Les graphiques avec Excel 2010

La place de SAS dans l'informatique décisionnelle

Université de Bangui. Modélisons en UML

Chapitre 3. Les distributions à deux variables

Copropriété: 31, rue des Abondances Boulogne-Billancourt

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Aide - mémoire gnuplot 4.0

Du bon usage de gnuplot

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Note de cours. Introduction à Excel 2007

Business Intelligence

TP 1. Prise en main du langage Python

Installation et prise en main

BIRT (Business Intelligence and Reporting Tools)

3.2. Matlab/Simulink Généralités

ENDPOINT SECURITY FOR MAC BY BITDEFENDER

Circuits RL et RC. Chapitre Inductance

La fonction exponentielle

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Extraction d information des bases de séquences biologiques avec R

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Le suivi de la qualité. Méthode MSP : généralités

Cours 7 : Utilisation de modules sous python

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

Extraction d informations stratégiques par Analyse en Composantes Principales

Tutoriel - flux de facturation

Principe d un test statistique

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

TUTORIEL SIMPLIFIE de QuizFaber Un éditeur de Quiz et autres exercices simple, complet, original et en freeware!

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Jérôme Mathieu janvier Débuter avec R. Ce document est disponible sur le site web :

KeePass - Mise en œuvre et utilisation

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

1 Importer et modifier des données avec R Commander

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Utilisation du logiciel ModellingSpace

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Transcription:

Méthodes statistiques appliquées aux questions internationales Cours de Mayeul Kauffmann IEP de Grenoble, Master OIG-ONG - 2008-2009 La notation de l examen devrait à peu près suivre le barème suivant : Thèmes abordés en cours magistral Interprétation de graphiques et de résultats statistiques Compétence en écriture et débogage du langage de script R 8 à 11 points 6 à 9 points environ 4 points Pour le cours magistral, la référence écrite est constituée par les chapitres 1 à 3 du manuel (Kauffmann, Mayeul, Méthodes statistiques appliquées aux questions internationales, L Harmattan, 2009), en excluant les encadrés intitulés «Pour aller plus loin» et les exercices. On y trouvera aussi des exemples d interprétation de graphiques et de résultats statistiques. En ce qui concerne le programme pour la compétence en écriture du langage de script R, il s agit d une partie des exercices faits en cours (ce qui est reproduit ci-après) et d extraits du manuel de Julien Barnier. Extraits du manuel de Julien Barnier, version du 6 mars 2009 en ligne ici: http://otan.ecoledelapaix.org/spip.php?article105 Pour le groupe intermédiaire : pages 1 à 37 du manuel de Julien Barnier. Pour le groupe avancé : pages 1 à 53 (ne pas faire les sections «Valeurs manquantes dans les conditions» page 50 ni «tapply» page 53). Sauf erreur, les symboles et fonctions vus dans ces pages et dans les exercices faits en cours sont les suivants : Symboles: - + * / ^ ( ) ;,. " : [ ] $ # <- -> ==!= < > <= >= & (et) (ou) ~ (condition) T TRUE F FALSE NA NULL * Fonctions: abline as.factor * attach axis barplot boxplot bwplot c class * coplot cor data dim * dotchart download.file dput * for * fix getwd help hist histogram ifelse * image * length library log lm ls max mean median min mosaicplot * names ncol nrow par(new=t) paste pie plot predict * print * q range * read.csv read.csv2 read.delim2 read.table rnorm sd segments seq * setwd sort sqrt str subset * sum summary sunflowerplot table tabulate unique var which xyplot * les fonctions marquées d un astérisque sont surtout destinées aux étudiants du groupe avancé. Une courte description de la plupart de ces fonctions est disponible en annexe du manuel (Méthodes statistiques appliquées...) et reproduite ici: http://otan.ecoledelapaix.org/spip.php?article107 Si ce n est déjà fait, vous êtes invités à lire au moins une fois l aide de chacune de ces fonctions. Rappel: l aide de toutes les fonctions est accessible par le moteur de recherche de l aide html ; pour l aide des fonctions contenues dans des paquets additionnels, ceux-ci doivent être chargés avant que cette aide ne soit accessible page 1

avec la fonction help(). Par exemple, faites «library(lattice)» avant de faire «help(histogram)». Pour la compétence en écriture du langage de script R, l aide nécessaire sur les fonctions (mais pas sur les symboles) sera fournie lors de l examen (elle sera généralement tirée de l aide de R ou d un des documents cités ci-dessus). Le sujet ne devrait pas nécessiter d utiliser une fonction autre qu une fonction citée ci-dessus ; dans le cas contraire (exceptionnel), la fonction concernée sera introduite avec une explication claire en français et un exemple simple. ## EXERCICE 1 ## ## Question 1. Télécharger le fichier "Intra-State Wars (V 3-0).csv" du jeu de données de Sarkees sur le site http://www.correlatesofwar.org/, les lire dans R. Définir le nom des colonnes, en utilisant les noms trouvés dans la documentation des données. # Créons un objet pour contenir le chemin du fichier # A l'ecole de la paix: # fichier <- "/home/commun/ecole/rec/unesco/grenoblestats/livre_upmf/exercices/intra-statewars_v 3-0.csv" # Par exemple pour Windows: fichier <- "G:/Intra-StateWars_V 3-0.csv" # Par exemple pour MacOSX et GNU/Linux: #fichier<-"~/intra-statewars_v 3-0.csv" # Le code internet utilisé pour les espaces est "%20" (ceci est aussi le cas dans les navigateurs internet): download.file(url="http://www.correlatesofwar.org/cow2%20data/wardata/intrastat e/intra-state%20wars%20(v%203-0).csv", destfile=fichier) GuerCiv<-read.csv( file=fichier) # lire les données # équivaut à la ligne suivante: # GuerCiv<-read.csv( file="g:/intra-statewars_v 3-0.csv") # lire les données GuerCiv[1,] # On regarde la première ligne names(guerciv) # il y a probleme GuerCiv<-read.csv( file=fichier, header=false) # lire les données names(guerciv) # c'est mieux GuerCiv[1:5,] # les lignes 1 à 5 # Pour définir le nom des colonnes, utiliser les noms trouvés sur la page: # http://www.correlatesofwar.org/cow2%20data/wardata/intrastate/intra-state War Format (V 3-0).htm # un vecteur: c("warno", "WarName", "WarType", "YrBeg1", "MonBeg1", "DayBeg1", "YrEnd1", "MonEnd1", "DayEnd1", "YrBeg2", "MonBeg2", "DayBeg2", "YrEnd2", "MonEnd2", "DayEnd2", "Insurgnt", "Winner", "Interven", "MinDur", "MaxDur", "StDeaths", "ToDeaths", "InCenSub", "InMajor", "WestHem", "Europe", "Africa", "MidEast", "Asia", "Oceania", "Version") names(guerciv) <- c("warno", "WarName", "WarType", "YrBeg1", "MonBeg1", "DayBeg1", "YrEnd1", "MonEnd1", "DayEnd1", "YrBeg2", "MonBeg2", "DayBeg2", "YrEnd2", "MonEnd2", "DayEnd2", "Insurgnt", "Winner", "Interven", "MinDur", "MaxDur", "StDeaths", "ToDeaths", "InCenSub", "InMajor", "WestHem", "Europe", "Africa", "MidEast", "Asia", "Oceania", "Version") names(guerciv) GuerCiv[1,] # ce n'est pas mal page 2

## Question 2. Afficher un aperçu des données. # Trois aperçus utiles summary(guerciv) # résumé # on voit qu'il y a un problème avec les NA, il faut réimporter les données: GuerCiv<-read.csv( file=fichier, header=false,na.strings=c("-999","-888")) # lire les données names(guerciv)<-c("warno", "WarName", "WarType", "YrBeg1", "MonBeg1", "DayBeg1", "YrEnd1", "MonEnd1", "DayEnd1", "YrBeg2", "MonBeg2", "DayBeg2", "YrEnd2", "MonEnd2", "DayEnd2", "Insurgnt", "Winner", "Interven", "MinDur", "MaxDur", "StDeaths", "ToDeaths", "InCenSub", "InMajor", "WestHem", "Europe", "Africa", "MidEast", "Asia", "Oceania", "Version") summary(guerciv) # C'est bon: les NA sont correctement interprétés str(guerciv) # structure GuerCiv[1:5,] # les 5 premières lignes. ## Question 3. Nombre de guerres civiles dans le jeu de données complet nrow(guerciv) ## Question 4. Permettre l'accès aux données sans avoir à mentionner le nom du tableau. #attach(guerciv)# Permettre l'accès aux données sans avoir à mentionner le nom du tableau ## Question 5. Quel est le nombre de débuts de guerres civiles pour chaque année? Faites en un diagramme en bâtons. table(guerciv$yrbeg1) table(yrbeg1) plot(table(yrbeg1)) # Diagramme en bâtons (l'objet transmis à plot() est une table, donc par défaut plot() suppose le paramètre graphique: type = "h" ## Question 6. Faites une courbe du nombre de débuts de guerres civiles par an # Attention, la fonction table() ne garde pas les années pour lesquelles il n'y a pas de guerre. La commande suivante relie donc par des traits horizontaux les années non-consécutives séparées par des années en guerre, ce qui est faux! plot(table(yrbeg1), type="l") # Mauvais! # On peut superposer les deux graphes pour s'en rendre mieux compte: plot(table(yrbeg1)) par(new=t);plot(table(yrbeg1), type="l", col="red") # Mauvais! # Réponse pour le groupe intermédiaire: plot(tabulate(yrbeg1), type="l", xlim=c(1820,1997), xlab="année", ylab="nombre de débuts de guerres civiles") # Réponse pour le groupe avancé: # La commande suivante fait le bon calcul, mais donne le résultat pour chaque année de l'an 1 à 1997. tabulate(yrbeg1) # Il faut donc extraire une partie puis refaire l'axe des abscisses (car l'origine de l'axe est 1 et non pas 1820)... plot(tabulate(yrbeg1)[1820:1997], type="l",xaxt="n") page 3

axis(side=1, at=seq(1820,1990, by=10)-1819, lab=seq(1820,1990, by=10)) # Plus simple: n'afficher qu'une partie du résultat, avec le paramètre xlim (): plot(tabulate(yrbeg1), type="l", xlim=c(1820,1997), xlab="année", ylab="nombre de débuts de guerres civiles") ##Question 7 (groupe avancé seulement: essayez de comprendre la réponse). Calculez puis superposez au graphique précédant une moyenne mobile du nombre de débuts de guerres sur 3 ans. NbDebGuer<-tabulate(YrBeg1)[1820:1997] # Pour chaque année, on fera la moyenne de trois valeurs: l'année en cours, l'année d'avant et l'année d'après. Ceci est impossible pour les extrémités (on n'a pas de moyenne mobile pour 1820 ni pour 1997). An<-NbDebGuer[-(c(1,178))] # La liste des valeurs pour les années restantes (on enlève la première et la dernière année) AnMoinsUn<-NbDebGuer[-(177:178)] # la liste des valeurs pour "l'année en cours moins un": on enlève donc les deux dernières valeurs AnPlusUn<-NbDebGuer[-(1:2)] # la liste des valeurs pour "l'année en cours plus un": on enlève donc les 2 premières valeurs NbDebGuerMoyMob3<-(AnMoinsUn + An + AnPlusUn)/3 # on fait la somme des 3 vecteurs: la valeur de chaque année se trouve additionnée à celle de l'année précédente (AnMoinsUn) et celle de l'année suivante (AnPlusUn) lines(1821:1996, NbDebGuerMoyMob3, col="blue") ## Les questions 8 à 12 (du manuel) ne sont pas à réviser pour l'examen ## Question 13. Faites deux diagrammes en boite à moustache comparant la distribution des valeurs de MinDur et MaxDur, d'une part, et StDeaths et ToDeaths, d'autre part. boxplot(mindur,maxdur,stdeaths,todeaths) boxplot(stdeaths,todeaths) ## Question 14. Comparez avec les histogrammes de chacune de ces 4 variables. hist(stdeaths) hist(todeaths) hist(mindur) hist(maxdur) ## Question 15. Faites un diagramme en barre et un diagramme circulaire de chacune des deux variables Europe et Winner barplot(table(europe)) barplot(table(winner)) pie(table(europe)) pie(table(winner)) ## Question 16. Calculez le tableau croisé (table de contingence) des variables Winner et Europe (effectifs des combinaisons de valeurs). Faites en deux graphiques de types différents. table(europe, Winner) mosaicplot(table(europe, Winner)) image(table(europe, Winner)) sunflowerplot(europe, Winner) #nombre de pétales des "fleurs" = nombre de points superposés ## Question 17. Faites un diagramme de la variable Winner en abscisses et StDeaths en ordonnées, pour chacune des valeurs de Europe, en une seule commande graphique. page 4

library(lattice) # chargement du package lattice xyplot(stdeaths~winner Europe) ## Question 18. Faites un diagramme de la variable MinDur en abscisses et StDeaths en ordonnées plot(mindur,stdeaths ) # ou: library(lattice) #facultatif si on l'a déjà fait. Ne sera pas répété pour la suite. xyplot(stdeaths ~ MinDur) ## Question 19. Même chose, mais faire deux graphiques, selon la valeur de Africa, en une seule commande graphique. xyplot(stdeaths ~ MinDur Africa) # Africa=0: à gauche, Africa=1: à droite, cf. le petit trait plus foncé dans la barre coloré "Africa" ## Question 20. Même chose en logarithme pour les variables StDeaths et MinDur xyplot(log(stdeaths)~log(mindur) Africa) # tendance bien plus lisible ## Question 21. Même chose en faisant un graphique pour chaque combinaison des variables Africa et Winner xyplot(log(stdeaths)~log(mindur) Winner*Africa) # Africa=1 en bas, Africa=0 en haut; Winner augmente de gauche à droite ## Question 22. En groupant la variable YrBeg1 en intervalles de temps se recoupant, faire 6 histogrammes de MinDur en abscisses et StDeaths en ordonnées, en une seule commande graphique. coplot(stdeaths ~ MinDur YrBeg1) # de gauche à droite et de bas en haut, chacun des 6 graphiques du bas correspond à un intervalle de YrBeg1 (indiqué de gauche à droite par une bande gris dans la fenêtre du haut). ## Question 23. Faites l'équivalent de hist(mindur) pour chaque valeur de Winner histogram(~mindur Winner) ## Question 25. Faites des boîtes à moustache montrant la distribution de MinDur selon les combinaisons de valeurs de Europe et Winner # comparez ces 3 solutions: bwplot(europe~mindur Winner) bwplot(winner~mindur Europe) # proche bwplot(~mindur Europe*Winner)# presque identique ## Question 26. Comparez ces graphiques à des histogrammes histogram(~mindur Europe*Winner) # par exemple ## EXERCICE 2 ## # Question 1. Chargez les données de Anscombe, les afficher. data(anscombe) # ce jeu de données est fourni avec le logiciel R anscombe page 5

# Question 2. Reproduire la Figure 1 (page 48 du manuel) représentant le nuage de points ajusté par un modèle linéaire attach(anscombe) model1 <- lm(y1 ~ x1) model1 plot(y1 ~ x1) abline(3.001, 0.5001) # ajoute une droite # mieux: abline(model1) segments(x1, y1, x1, model1$fitted.values) # résidus représentés par des segments # NB: la description des sous-objets du modèle (tel le sous-objet "fitted.values") est faite dans la section "Value" de l'aide de la fonction "lm" (faites "help(lm)") # Question 3. Affichez les résultats pour le modèle 1 summary(model1) # Question 4. Refaites la même chose avec les autres jeux de données de Anscombe # Réponse: il suffit de remplacer x1 par x2 et y1 par y2 par exemple. Le début de la réponse à la question 2 devient alors: model2 <- lm(y2 ~ x2) # élément de réponse pour le groupe avancé: for (i in 1:4) { print(paste("i =", i)) print(names(anscombe[,c(i,i+4)])) print(summary(lm(anscombe[,i+4]~anscombe[,i]))) } ########## ## EXERCICE 3 (groupe avancé seulement) ## ########## ## Question 1. Téléchargez et lisez dans R le jeu de données du Correlates of War mesurant la puissance des Etats. # Par exemple pour Windows: dossier <- "C:/Mes Documents/" # Par exemple pour MacOSX et GNU/Linux: fichier<-"~/" fichier<-paste(dossier, "NMC_3.02.csv", sep="") download.file("http://www.correlatesofwar.org/cow2%20data/capabilities/nmc_3.02.csv", destfile=fichier) # un espace dans une adresse s'écrit %20 dans un navigateur # NMC<-read.csv(fichier) # Mauvais, les NA ne sont pas traités # l'auteur des données mentionne: "Missing values are indicated by the value - 9. Users must ensure that their statistical analysis software takes this coding into account." NMC<-read.table(fichier, header=t, sep=",",na.strings = "-9") ## Question 2. Faire un tableau ne contenant que les données pour 2001 NMC2001<-NMC[NMC$year == 2001,] ## Question 3. Faites un modèle linéaire essayant d'expliquer les dépenses militaires en 2001 par le niveau de développement économique de chaque pays (mesuré par un indicateur de dépenses énergétiques). Interprétez lez page 6

résultats. summary(lm(milex ~ energy,data=nmc2001)) ## Question 4. Idem en rajoutant la population totale. Comparez les deux modèles. summary(lm(milex ~ energy + tpop, data=nmc2001)) # notez que les coefficients de energy changent, car il y a une corrélation entre energy et tpop, bien que faible en apparence, cf.: cor(nmc2001$milex, NMC2001$tpop, use="complete") ## Question 5. Même chose pour l'ensemble des années, en ajoutant une variable indicatrice (0 ou 1) pour chaque année (mesurant l'effet spécifique à chaque année et non pris en compte par tpop ni energy). Vous ferez un graphique des paramètres estimés pour ces variables indicatrice lm2 <- (lm(milex ~ tpop + energy + as.factor(year),data=nmc)) summary(lm2) plot(1817:2001, lm2$coefficients[-(1:3)], type="b") ## Question 6. Les dépenses militaires sont mesurées en livre sterling jusqu'en 1913, en dollars à partir de 1914. Vous corrigerez la réponse à la question précédente en multipliant les livres sterling par 4,5 lm3 <- lm( ifelse(year>=1914, milex, milex*4.5) ~ tpop + energy + as.factor(year), data=nmc) summary(lm3) plot(1817:2001, predict(lm3, data.frame(year=1817:2001, tpop=1000, energy=1000)), type="b") ## Question 7. Faites un graphique montrant pour 2001 le log de energy et celui de milex plot(log(nmc2001$energy), log(nmc2001$milex+1)) # milex peut être nul, et log(0) n'existe pas: on rajoute 1 # Pour aller plus loin, vous pouvez modifier certains des modèles en introduisant le log de certaines variables, puis comparer les résultats. page 7