TP II : méthodes statistiques élémentaires 1 Importation des

Transcription

TP II : méthodes statistiques élémentaires 1 Importation des
M2 IFMA et MPE
TP II : méthodes statistiques élémentaires
À la fin de la séance vous déposerez vos scripts R dans la boı̂te de dépôt de votre espace Sakai :
http://australe.upmc.fr/portal.
1
Importation des données pour le TP
Télécharger le fichier auto-mpg.csv. Ce fichier renseigne des caractéristiques techniques de 398
voitures des années 70-80. Les variables renseignées sont :
consommation (miles per gallon)
nombre de cylindres
cylindrée du moteur (cu. inches)
puissance
poids (lbs.)
temps d’acceleration (sec.) de 0 à 60 mph
année du modèle
origine du véhicule (1 : American, 2 : European, 3 : Japanese)
modèle du véhicule.
Importer les données sous la forme d’un tableau (dataframe) que vous nommerez Auto, en respectant les consignes suivantes :
— Donner les noms suivants aux variables du tableau : mpg, cylinders, displacement, horsepower, weight, acceleration, modelyear, origin, modele.
— Le fichier comporte des données manquantes symbolisées par des points d’interrogations.
Accéder à l’aide de la fonction read.table() et étudier le fonctionnement de l’option
na.strings pour importer correctement les données manquantes.
— La variable origin est importée automatiquement comme une variable numérique, faites en
une variable de facteurs et changer les niveaux pour indiquer directement la provenance
géographique.
Télécharger le fichier banque.csv. Ces données détaillent les profils des clients d’une banque. Toutes
les variables disponibles sont de type catégorielles, une description complète de ces variables est
disponible à cette adresse.
2
Statistiques univariées
Dans la première partie du TP, nous étudions les données du fichier auto-mpg.csv. Executer la
commande
> attach(Auto)
1
2.1
Analyse d’une variable quantitative
Un boxplot (boı̂te à moustache ou diagramme en boı̂te) est un résumé graphique de la distribution
d’une variable. La fonction R qui trace le boxplot est boxplot(). Pour obtenir, par exemple, le
boxplot de la variable consommation :
> boxplot(mpg)
On verra plus loin que les boxplots sont surtout utiles pour comparer plusieurs distributions de
données. Notez que les différentes caractéristiques affichées par le boxplot peuvent être obtenues
en demandant le “summary” de la variable
> summary(mpg)
La fonction hist() affiche l’histogramme d’une variable. Par défaut, hist() donne le nombre
d’observations par classe (frequencies). On obtient des proportions (des valeurs entre 0 et 1) avec
l’option freq=FALSE. Les options de la fonction hist() permettent de choisir :
— le nombre de classes, avec l’option breaks=n on obtient un histogramme avec n+1 classes.
— les intervalles sur lesquels l’histogramme est construit, avec breaks=vec on obtient un histogramme dont les limites des intervalles (les classes) sont données par les valeur du vecteur
vec.
— la couleur, par exemple col='blue'.
Représenter l’histogramme de la variable de consommation. Essayer différentes valeurs pour le
nombre de classes. Quel nombre de classes est préférable selon vous ?
L’instruction
> plot(density(mpg))
permet de représenter une estimation de la densité de la variable mpg. Calculer la moyenne empirique m et l’écart type sdt de la variable consommation. Représenter sur un même graphique un
histogramme de mpg, une estimation de la densité ainsi que la densité gaussienne estimée sur les
données par maximum de vraisemblance et ajouter une légende.
Représenter la fonction de répartition empirique des données à l’aide de l’instruction
> plot(ecdf(mpg))
Superposer sur ce graphique la fonction de répartition de la loi gaussienne de paramètres m et sdt.
Simuler dans un vecteur x un 1000-échantillon d’une loi gaussienne de paramètres m et sdt. Représenter le graphique quantile-quantile (qq-plot) des vecteurs mpg et x, commenter.
Quelques tests statistiques
Calculer la p-valeur du test de Student “moyenne(mpg) = 23” contre “moyenne(mpg) 6= 23” :
> t.test(mpg, mu = 23)
Donner un intervalle de confiance pour la moyenne à 86% (consulter l’aide de la fonction t.test()).
Exécuter ensuite les commandes
>
>
shapiro.test(mpg)
ks.test(mpg,x)
pour effectuer un test de normalité de la variable consommation. Faut-il pour autant remettre en
cause la validité du test de Student effectué auparavant ?
2
2.2
Analyse d’une variable catégorielle
La fonction table() renvoie le tableau des fréquences d’une variable catégorielle :
> table(origin)
Calculer les proportions de chacune des origines géographiques dans l’échantillon. Stocker le résultat
des proportions dans un vecteur appelé prop. Utiliser la fonction barplot() pour afficher un
diagramme en bâtons représentant les proportions des origines géographiques dans l’échantillon.
En utilisant l’aide de R, déterminer ce que renvoient les lignes de code ci-dessous :
> T = table(origin)
> prop.test(T[1]),n= sum(T),p=0.5)
3
3.1
Liens entre deux variables
Deux variables numériques
En utilisant la fonction plot(), représenter quelques nuages de points de paires de variables numériques du tableau Auto. Vous pourrez aussi représenter la matrice des nuages avec la fonction
pairs(). Calculer les corrélations linéaires correspondant à ces croisements : il est possible de
calculer la matrice des corrélation de toutes les variables numériques comme suit :
> cor(Auto[,1:7],use = "complete.obs")
Que se passe-t-il si l’on retire l’option use = "complete.obs" ? A quoi sert cette option ?
Représenter la consommation en fonction de l’ année du modèle. Calculer les moyennes de consommation par année. Superposer ces moyennes au nuage initial.
Choisir un croisement de deux variables numériques et faire un “test de corrélation nulle” à l’aide de
la fonction cor.test(). Si la p-value est très élevée, ceci signifie-t-il qu’il n’y a pas de correlation
linéaire entre les deux variables ? De façon générale, l’absence de correlation linéaire entre deux
variable numériques signifie-t-il l’absence de lien entre celles-ci ?
3.2
Une variable numérique et une variable catégorielle
On souhaite déterminer si la provenance géographique a une influence sur la consommation des
véhicules. Comparer les boxplots des trois distributions de consommation.
Superposer sur un même graphique les trois densités estimées de la consommation par origine
géographique, ajouter un titre et une légende.
Comparer les distributions deux à deux en utilisant des procédures var.test() et t.test() sur
deux groupes. En utilisant une méthode de Bonferroni, discuter l’égalité des moyennes des trois
distributions.
Créer une nouvelle variable group.year indiquant la période d’origine de la voiture : 70-73, 74-77
ou 78-82. Etudier le lien entre cette group.year et mpg.
3
4
Liaisons entre deux variables catégorielles
Dans cette partie du TP, nous allons étudier les données du fichier banque.csv. Executer les
commandes suivantes :
>
>
>
>
>
detach(Auto)
dim(Banque)
head(Banque)
summary(Banque)
attach(Banque)
Tracer et commenter quelques barplots des variables de la table Banque (notamment Csp).
Comparer les distributions de la variable Interdit (interdit de chéquier) pour les différentes classes
de Csp, puis pour les différentes classes d’âge (variable Age). Dresser le tableau de contingence
des variables Csp et Interdit à l’aide de la fonction table() :
> table(csp,interdit)
Pensez-vous que les deux variables Csp et Interdit soient indépendantes ? Pour répondre, vous
pourrez dresser des boxplots en utilisant l’option beside=TRUE. On représentera des barplots en
effectifs ou en proportion.
Même question pour Age et CSP.
Étudier l’indépendance entre Age et Interdit à l’aide de la fonction chisq.test(). Utiliser la
fonction mosaic() du package vcd pour préciser le lien.
4