introduction à l’analyse statistique et spatiale avec r...2017/09/01  · • manipulation des...

25
Introduction à l’analyse statistique et spatiale avec R M1 - Tronc Commun 2017 - 2018 Sarah Duché ([email protected])

Upload: others

Post on 26-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Introduction à l’analyse statistique et spatiale avec R

M1 - Tronc Commun 2017 - 2018

Sarah Duché ([email protected])

Page 2: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Déroulement du TD• Prise en main de R

• Manipulation des données

• Graphiques

• Manipulation de tableaux de données

• Analyses statistiques sur R

Le TD et les scripts R ont été pensés et réalisés par Mélanie Bertrand et Sarah Duché, grâce à la communauté R et à 2 tutoriels spécifiques (Barnier, 2013 et Commenges et al., 2014)

Page 3: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

• Prise en main de R et R

Studio

Page 4: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Logiciel R

‣Ouvrir le logiciel R

console pour exécuter les lignes de codes

1 21

2

Ouverture de script R

Affiche les résultats graphiques

M. B

ertra

nd e

t S. D

uché

Page 5: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Utilisation de RStudio‣Ouvrir RStudio RStudio n’est qu’une interface de R.

Il est nécessaire d’avoir installé R avant.

Éditeur Script R

Espace de travail

DossiersVisualisation

PackagesAide

Console

M. B

ertra

nd e

t S. D

uché

Page 6: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

1. Éditeur Script R

2. Console

Pour écrire et exécuter des lignes de codes :

Code « pérenne »

Code « non pérenne »

Ouvrir un nouveau script R

Ouvrir un script R

Exécuter la ligne de code

Possibilité aussi d’utiliser Ctrl + Entrée

Utilisation de RStudio

M. B

ertra

nd e

t S. D

uché

Page 7: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Pour visualiser et importer les données, l’historique et les projets :

Liste des objets créés (données)

Importer des données en .txt ou .CsvPermet de sauvegarder un projet qui enregistre ce qui

est fait (script, historique et environnement)

Historique de la console

Utilisation de RStudio

M. B

ertra

nd e

t S. D

uché

Page 8: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Utilisation de RStudioGestion de package :

Visualisation et exportation des graphiques :

Aide :

Un package est une bibliothèque de fonctions implémentée par les utilisateurs. Les packages permettent de nombreuses applications en statistiques, cartographie, géomatique (…). Ils sont disponibles par l’intermédiaires de dépôts regroupés dans le Comprehensive R Archive Network (CRAN).

M. B

ertra

nd e

t S. D

uché

Page 9: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Utilisation de RStudio

Ouvrir le script PriseEnMain.RDans M1 tronc commun > R > Script R

‣Comment est organisé le script ?

‣A quoi servent les # ?

‣Le script est organisé avec des informations et des parties aidant à la lecture du programme.‣À respecter pour s’y retrouver et

pour aider d’autres utilisateurs à s’y retrouver !‣Les # servent à annoter.

M. B

ertra

nd e

t S. D

uché

Page 10: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Utilisation de RStudio‣À partir du script, exécutez une à une les lignes de la

première partie calculatrice : # ===================================# 1. Le mode calculatrice# ===================================

# Tester une simple operation

1 + 1 #1 + 1 # les espaces n’ont pas d’importance dans les commandes66.5*4.98 # ceci est une multiplication62/49.3 # ceci est une division2.33^2 # ceci est l'operateur puissance

Ctrl+Enter (windows/linux) Cmd+Enter (mac) pour exécuter une ligne ou

Pour tous les raccourcis : https://support.rstudio.com/hc/en-us/articles/200711853-Keyboard-Shortcuts

M. B

ertra

nd e

t S. D

uché

Page 11: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Manipulation des données

Page 12: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Déclarer des objetsPour créer et nommer un objet, on utilise les opérateurs d’assignation <- ou =

‣À partir du script, exécutez une à une les lignes de la seconde partie :

# =================================== # 2. Declarer un objet # ===================================

# Assigner un nom a l'operation a l'aide du signe <- ou = a = 66.5*4.98 # a est declare et s'affiche dans la liste des objets utilises (a droite) b <- 62/49.3

# Pour afficher ce que contient un objet, taper son nom dans la console ou executer juste son nom a b

# Quand l'objet est declare, on peut le reutiliser pour d'autres operations par exemple c <- a + b

# Si l'objet existe deja, sa valeur precedente est effacee (la modification n'affecte que les objets en memoire vive, # pas les donnees sur le disque) c <- 12

M. B

ertra

nd e

t S. D

uché

Page 13: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Déclarer des objets

Le signe = peut être remplacé par a <- 66.5*4.98ou 66.5*4.98 -> a

On dit qu’on assigne une valeur à un nom (ou à une variable)On a ainsi créé les objets a et b qui sont réutilisables

Lorsque vous exécutez les commandes en assignant un objet (ex : a <- 66.5*4.98) le résultat ne s’affiche pas dans la console.

Les objets a et b font désormais partie de votre environnement de travail (zone “Workspace”)

M. B

ertra

nd e

t S. D

uché

Page 14: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Informations contenues dans les objets

‣À partir du script, exécutez une à une les lignes de la partie 3 :

# =================================== # 3. Les types d'information contenue dans les objets # ===================================

# Numerique A <- 13.67 # Chaine de caracteres B <- "super" # Logique C <- TRUE # Complexe D <- 2i

# Attributs des objets : le mode de donnees stockees dans les objets mode(A) mode(B)

# 2e attribut utile des objets : la longueur length(B)

M. B

ertra

nd e

t S. D

uché

Page 15: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Types d’objetsVecteurs : une séquence de valeurs (une série)

source : Commenges et al., 2014

M. B

ertra

nd e

t S. D

uché

Page 16: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Types d’objetsVecteurs : une séquence de valeurs (une série)

v2 <-c("Paris","Lyon","Marseille","Rennes","Montpellier")

Qui peuvent être de mode :• numérique comme le vecteur 1• caractère comme vecteur 2• ou logique, c’est à dire que les valeurs qu’ils contiennent sont de type vrai/faux (TRUE/FALSE ou T/F)

Les valeurs d’un vecteur sont toutes d’un même mode

On peut les combiner en utilisant c()

v1 <-c(2.3,3.6,1.1,2.4,2.5,10.2,5.1,2.0)Vecteur 1 : 2,3 3,6 1,1 2,4 2,5 10,2 5,1 2,0

Vecteur 2 : Paris Lyon Marseille Rennes Montpellier

Écriture sous R : Exemple

M. B

ertra

nd e

t S. D

uché

Page 17: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Types d’objetsFacteurs : vecteurs de caractères qui prennent leurs valeurs dans un ensemble défini de modalités.

Elles correspondent en général aux questions fermées d’un questionnaire.

Exemple le sexe : « F » ou « M » 

M. B

ertra

nd e

t S. D

uché

Page 18: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Types d’objetsMatrices : une grille de valeurs (un vecteur à deux dimensions). Les données stockées dans une matrice sont

nécessairement d’un seul et même type (différent d’un tableau de donnée).

En R, ces matrices s’écrivent : M1 <- matrix(c(1,2,3,8,7,0),nrow=2,ncol=3)ou M1 <- matrix(c(1,3,7,2,8,0), nrow=2, ncol=3, byrow=T) L'option byrow indique si les valeurs données par doivent remplir successivement les colonnes (par défaut) ou les lignes (si TRUE). M2 <- matrix(c(0,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0),nrow=4)

1 3 7

2 8 0

0 0 1 0 0

1 1 1 0 0

0 0 1 0 0

0 0 1 1 0

Matrice 1

Matrice 2On peut également considérer qu’une matrice résulte de l’accolement de plusieurs lignes ou de plusieurs colonnes. Par exemple on peut écrire M1 : M1<-cbind(c(1,2),c(3,8),c(7,0))M1<-rbind(c(1,3,7),c(2,8,0)) Bind signifie lier / attacher

c signifie column (colonne)

r signifie row (ligne)

M. B

ertra

nd e

t S. D

uché

Page 19: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Autres types d’objetsListe (list) : liste ordonnée d’objets.

Une liste permet de regrouper un ensemble d’objets de tailles différentes et de natures diverses : vecteurs, matrices ou tout type d’objet existant dans R.

Tableau (data.frame) : tableau de données. Les tableaux de données seront détaillés dans la partie Manipulation des tableaux de données

Autres objets : Il existe une grande diversité de types d’objets du fait que certaines fonctions créent des objets sur mesure. La fonction lm() (linear model) créé par exemple un objet de type lm qui est une liste d’objets (fitted.values, p.value, etc.). Les données spatiales sont aussi stockées dans des objets particuliers.

Fonction : Deux caractéristiques importantes des fonctions doivent être soulignées, d’une part les fonctions sont des objets au même titre que les vecteurs ou les matrices, d’autre part les fonctions peuvent prendre d’autres fonctions comme argument .

source : Commenges et al., 2014

M. B

ertra

nd e

t S. D

uché

Page 20: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Types d’objetsValeurs manquantes

# =================================== # 4. Valeurs manquantes dans les donnees # ===================================

# l'absence de donnee est codee NaN, mais les resultats de calculs "impossibles" # prennent une valeur particuliere x <- 5 / 0 x x <- log(0) x

‣À partir du script, exécutez une à une les lignes de la partie 4 :

M. B

ertra

nd e

t S. D

uché

Page 21: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Créer des objets

‣À partir du script, exécutez une à une les lignes de la partie 5 :

# =================================== # 5. Creation de donnees : saisie manuelle des valeurs # ===================================

# Generer une sequence de valeurs (moyenne mensuelle des temperatures a Grenoble et mois)

Temperature <- c(2.2,3.9,6.7,9.2,13.9,17.1,19.9,19.8,16.1,11.7,6.1,3.5) Mois <- c("jan","fev","mars","avril","mai","juin","jui","aout","sep","oct","nov","dec")

# on a bien deux vecteurs qui contiennent des donnees de differents types mode(Temperature) mode(Mois)

# de longueur identique length(Temperature) length(Mois)

# On peut aussi verifier si les variables sont de type numerique # Ce qui est utile quand on utilise un jeu de donnees existant pour verifier qu'il a ete bien charge is.numeric(Temperature)

M. B

ertra

nd e

t S. D

uché

Page 22: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Créer des objets

‣À partir du script, exécutez une à une les lignes de la partie 6 :

# =================================== # 6. Creation de donnees : en utilisant des fonctions # ===================================

# La fonction seq peut generer des sequences de nombres reels, # elle prend comme argument le 1er nombre de la sequence, le dernier, et le pas ou increment utilise dans la sequence sequence1 <- seq(1,5, 0.5)

# elle peut aussi etre utilisee de la maniere suivante avec les mots cles length, from, to sequence2 <- seq(length=9, from=1, to=5)

# La fonction rep sequence3 <- rep(1,30)

# on peut combiner des vecteurs pour former un nouveau vecteur avec c() MoisPartie1 <- c("jan","fev","mars","avril","mai","juin") MoisPartie2 <- c("jui","aout","sep","oct","nov","dec") MoisTous <- c(MoisPartie1, MoisPartie2)

M. B

ertra

nd e

t S. D

uché

Page 23: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Opérateurs logiques, comparaison de données

‣À partir du script, exécutez une à une les lignes de la partie 7 :

# =================================== # 7. Operateurs logiques, comparaison de donnees # ===================================

# On peut comparer des donnees avec des operateurs logiques ou des fonctions Mois == MoisTous identical(Mois,MoisTous) Mois != MoisTous

x <- 1:3 y <- 5:7 x == y identical(x,y) x != y x < y x*10 < y

M. B

ertra

nd e

t S. D

uché

Page 24: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

Indexation et valeur d’un objet

‣À partir du script, exécutez une à une les lignes de la partie 8 et 9 :

# =================================== # 8. Systeme d'indexation pour acceder aux valeurs d'un objet # =================================== MoisTous[4] # on peut changer la valeur d'un element indexe MoisTous[4] <- "AV" MoisTous Mois == MoisTous

# de la m?me maniere pour des nombres : x <- 1:5 x x[3] x[3] <- 20 x

# =================================== # 9. Utiliser which pour acceder aux valeurs d'un objet # =================================== # identifier les mois o? la temperature moyenne n'excedait pas 10?C indFroid = which(Temperature < 10) # La fonction which ne renvoie pas les valeurs que prend la variable pour les individus # qui remplissent la condition entre parenthese, mais elle renvoie leur position, # ou leur rang, dans la serie indFroid # cela permet ensuite de recuperer les valeurs que prend la variable Temperature pour ces individus Temperature[indFroid]

# la variable des mois etant de m?me longueur que Temperature, on peut acceder aux valeurs de cette variable # par les positions ou rangs des individus qui remplissent la condition Mois[indFroid]

M. B

ertra

nd e

t S. D

uché

Page 25: Introduction à l’analyse statistique et spatiale avec R...2017/09/01  · • Manipulation des données • Graphiques • Manipulation de tableaux de données • Analyses statistiques

A vous de tester !

# =================================== # Exercices de mise en pratique 1 # =================================== # Creer cette sequence seq4 : 10 18 26 34 42 50 58 66 74 82 90 98

# Creer cette sequence seq5 : 10 15 20 25 30 35 40 45 50 57 57 57 57 57 57 57 57 57 60 65 70 75 80 85 90 95 100

# Creer cette sequence seq6 : "Ok" "Ok" "Ok" # "Super" "Super" "Super" "Super" "Super" "Super" "Super" "Super" "Super" "Super" "Super" "Super" # "Top" "Top" "Top" "Top" "Top" "Top" # "Yeah" "Yeah" "Yeah" "Yeah" "Yeah" "Yeah"

M. B

ertra

nd e

t S. D

uché