1 Manipulation de données

Transcription

1 Manipulation de données
1
Manipulation de données
1.1
Manipulation de données
On va utiliser le jeu de données wine du package FactoMineR.
– Sélectionner les vins qui ont reçu une note d’appréciation (variable ”Overall.quality”)
supérieure à 3.5. Calculer la moyenne de la variable ”Alcohol” pour les vins
appréciés et pour les vins moins appréciés.
– Créer une nouvelle variable de typicité : arrondir la variable ”Typical” à l’entier
(on pourra utiliser la fonction round) ; transformer cette variable en facteur ; renommer les modalités en ”peu typique”, ”typique” et ”très typique” ; regrouper
les deux premières modalités ; ajouter cette nouvelle variable au jeu de données.
– Créer une base de données, que l’on appelle Env2, qui ne contient que les vins
produits à partir de vignes issues du type de sol Env2 (variable ”Soil”).
– Supprimer dans cette base la variable correspondant au type de sol.
– Regarder les niveaux de la variable ”Label”. Transformer cette variable pour ne
plus avoir de modalités d’effectif nul.
– Exporter cette base de données en lui attribuant le nom ”Envi2.txt”.
– Reprendre le jeu de données initial. En utilisant la fonction cut découper en classe
la variable ”Spice” en 3 classes (< 2 ; entre 2 et 2.5 ; > 3). En utilisant la fonction
quantile, découper la variable ”Spice” en 3 classes d’effectif identique.
– Créer une nouvelle variable combinaison des deux variables qualitatives ”Label”
et ”Soil”. On pourra utiliser la fonction paste.
1.2
Fusion de bases de données
– Importer les jeux de données vins, nomvins et nomjuges.
– On souhaite avoir dans la base de données vins le nom des vins à la place de leur
numéro ainsi que leur cépage. On pourra utiliser la fonction merge.
– Rajouter au jeu de données crée le nom des juges et leur sexe.
1
2
Programmation
2.1
Test sur les pourcentage d’inertie en ACP
On s’intéresse au pourcentage d’inertie du premier plan factoriel dans le cas où les
variables sont indépendantes.
– Créer une matrice avec 50 individus et 8 variables indépendantes. Pour cela, on
peut simuler uniquement des lois normales indépendantes : on pourra utiliser la
fonction rnorm ou bien rmvnorm. Transformer la matrice en dataframe (on
réalise cette opération car beaucoup de fonctions en R prennent en entrée un data
frame, il faut toujours vérifier l’aide des fonctions).
– Réaliser l’ACP de ce tableau de données et conserver le pourcentage d’inertie du
premier plan factoriel.
– Réaliser cette opération 1000 fois et conserver le quantile 0.95 (fonction quantile)
de la distribution des pourcentages d’inertie. Commenter.
– Construire un tableau avec en ligne des nombres d’individus n et en colonnes
des nombres de variables p et à l’intersection de chaque ligne et de chaque colonne le quantile 0.95 de la distribution des pourcentages d’inertie obtenu comme
précédemment (pour n individus, p variables indépendantes). On fera varier le
nombre d’individus de 10 à 300 et le nombre de variables de 5 à 500 (choisir des
valeurs raisonnables). Commenter.
2.2
Retrouver les résultats de la fonction dimdesc de FactoMineR
data(decathlon)
res.pca <- PCA(decathlon, quanti.sup = 11:12, quali.sup=13, graph=FALSE)
dimdesc(res.pca, axes = 1:2,proba=0.2)
– Réaliser l’ACP sur le jeu de données décathlon et récupérer les deux premières composantes principales - ce sont les coordonnées des individus sur les deux premières
dimensions qui peuvent être vues comme deux nouvelles variables qui résument
au mieux l’ensemble des variables.
– Calculer les coefficients de corrélations entre les variables quantitatives et les composantes principales.
– Réaliser un test de significativité du coefficient de corrélation (Attention, ce test
n’est qu’indicatif ! En effet, les variables ont servis à construire les composantes
principales). On pourra utiliser la fonction cor.test.
– Trier les coefficients de corrélation par ordre croissant.
– Ne conserver que les coefficients significatifs au seuil donné.
– Réaliser l’analyse de variance des composantes principales en fonction de la variable qualitative. On pourra utiliser la fonction lm.
– Récupérer le R2 et la probabilité critique associée.
– Utiliser la fonction aov.sum du package agrocampus pour récupérer les coefficients.
– Stocker et trier les résultats à la manière de la fonction dimdesc.
2
2.3
Manipulation de données
– Importer les jeux de données don_expert.xls et hedo_biscuit.txt disponibles
dans le fichier biscuit.zip depuis la page internet de F.Husson. Dans le premier
jeu de données, 12 experts ont évalués 8 biscuits (4 Français et 4 Pakistanais) lors
de deux séances sur plusieurs descripteurs. Dans le deuxième jeu de données, 313
juges ont attribué des notes d’appréciation pour ses 8 produits.
– Créer un tableau avec en ligne les produits, en colonne les descripteurs et à l’intersection d’une ligne et d’une colonne la moyenne des notes (tout juge et toute
séance confondu). On pourra utiliser la fonction aggregate. Vous pouvez aussi
utiliser l’argument na.rm=T.
– Concaténer le tableau de moyennes sensorielles (précédemment obtenu) et le tableau des notes hédoniques.
– On reprend le jeu de données expert. On veut caractériser un ensemble de produits.
On veut voir s’il y a par exemple des différences entre les produits selon le premier
descripteur. Réaliser une analyse de variance (avec effet produit et effet juge) avec
la fonction aov.sum du package agrocampus. Récupérer la probabilité critique
associée au test de l’effet produit. Récupérer les probabilités critiques des tests sur
les coefficients associés aux produits ainsi que les statistiques de tests associées
(valeur observée de la statistique de Student).
– Réaliser l’analyse de variance pour chaque descripteur. Pour écrire la formule dans
la fonction aov.sum, on pourra utiliser les fonctions as.formula et paste (dans
la question précédente, on aurait pu écrire le modèle avec
aov.sum(as.formula(paste(colnames(don)[4],"~ juge+produit")), data=don))
– Stocker les probabilités critiques des tests de l’effet produit dans un vecteur de
longueur le nombre de descripteurs. Stocker les statistiques de tests associées aux
coefficients dans une matrice avec en lignes les produits et en colonnes les descripteurs.
– Trier les probabilités critiques des tests de Fisher par ordre croissant. Représenter
graphiquement les probabilités critiques à l’aide d’un diagramme en barres.
– Représenter sur une même fenêtre graphique un diagramme en barres par produit ; chaque barre représente la valeur observée de la statistique de test pour un
descripteur donné.
3
3
Mise en évidence de propriétés statistiques
Soit X une variable aléatoire désignant la taille d’un individu d’une population. Cette
variable aléatoire suit une loi normale N (µ, σ 2 ) avec µ = 175 et σ = 10. Le statisticien
n’a en général pas connaissance de la nature de la loi de la variable X, ni des paramètres
de cette loi, il les estime à partir d’un échantillon.
3.1
Distribution de X̄
– Générer un échantillon aléatoire de taille n = 50 issu de la loi normale (N (175, 100)).
On utilisera rnorm. Calculer sa moyenne empirique.
– Générer 100 échantillons de taille n = 50. Pour chaque échantillon, calculer sa
moyenne empirique. Stocker les résultats dans un vecteur de longueur 100. Représenter
graphiquement la distribution empirique des moyennes. Pour cela, on pourra utiliser hist ou encore plot et density.
– Créer une fonction qui prend en entrée un entier n et qui réalise l’opération
précédente.
– Représenter sur un même graphique les résultats obtenus pour un échantillon de
taille n = 5, n = 10, n = 30, n = 100, n = 1000. Ajouter un titre aux graphiques
(option main). Rajouter aux graphiques une droite verticale rouge en µ = 175
(on pourra utiliser la fonction abline). Commenter. Redonner la formule de la
distribution de X̄ (dans vos cours de statistiques générales !).
3.2
Intervalle de confiance de µ
– Générer un échantillon aléatoire de taille n = 50 issu de la loi normale (N (175, 100)).
Calculer un intervalle de confiance pour µ. On utilisera t.test. Redonnez la formule
de l’intervalle de confiance de µ (dans vos cours de statistiques générales !).
– Générer 1000 échantillons de taille n = 50. Pour chaque échantillon, calculer un
intervalle de confiance pour µ et l’étendu de l’intervalle de confiance. Sur les 1000
échantillons, comptez le nombre de fois où la vraie valeur µ est dans l’intervalle
de confiance. Calculer aussi l’étendue moyenne de l’intervalle de confiance.
– Créer une fonction qui prend en entier un entier n et qui réalise l’opération
précédente. Pour des tailles d’échantillon variant de 10 à 500 (de 10 en 10), stocker
les résultats dans un tableau à 2 colonnes. Commenter.
3.3
Théorème central limite
– Redonner le TCL.
– Générer 1 échantillon aléatoire de taille n = 20 issu d’une loi uniforme sur [0,1] (on
pourra utiliser runif ). Représenter sa distribution. Calculer sa moyenne empirique.
– Générer 1000 échantillons aléatoires de taille n = 20 issus d’une loi d’une loi uniforme sur [0,1]. Sur chaque échantillon calculer la moyenne empirique. Representer
graphiquement la distribution des moyennes empiriques.
4
– Créer une fonction qui prend en entrée un entier n et qui réalise l’opération
précédentes.
– Représenter sur une même fenêtre graphique la population mère (la distribution
de X), ainsi que la distribution de X̄ en fonction de n (on pourra prendre n = 2,
n = 5, n = 10, n = 30, n = 100). Commenter.
– Réaliser la même opération pour un échantillon issu d’une loi normale (N (175, 100))
et d’une loi du Chi 2 à 1 degrés de liberté (on pourra utiliser rchisq). Commenter.
3.4
Estimateur du maximum de vraisemblance
Cet exemple est issu du livre de Wonnacott et Wonnacott. Dans les exercices précédents,
on a utilisé l’estimation par les moments. On estime la moyenne d’une population par la
moyenne de l’échantillon. Ensuite, en faisant des hypothèses sur la distribution de la population mère, on a calculé des intervalles de confiance et effectué des tests. On est donc
dans le schéma classique estimation ponctuelle - estimation par intervalle. R Fisher
en 1920 proposa une autre méthode d’estimation ponctuelle : l’estimation par maximum de vraisemblance (qui peut ou non coincider avec l’estimation par les moments).
Considérons un cas simple d’EMV. On a un échantillon de 5 pièces d’une machine et
sur ces 5 pièces, 3 sont défectueuses. L’objectif est d’estimer la proportion de pièces
défectueuses π.
– Si π = 0.1, quelle est la probabilité de tirer 3 pièces défectueuses dans un échantillon
de n = 5 observations ? On pourra utiliser la fonction dbinom.
– Répéter cette opération pour π variant de 0 à 1 par pas de 0.1. Stocker les
résultats dans une matrice à 2 colonnes (avec la proportion théorique et la vraisemblance). En effet, on calcule bien la vraisemblance pour qu’une proportion π
génère l’échantillon observé.
– Représenter graphiquement la vraisemblance en fonction de π.
– Que vaut l’estimation du maximum de vraisemblance ? On trouve bien la valeur
du paramètre qui est la plus vraisemblable. Que vaut l’estimation par la méthode
des moments ?
3.5
Bootstrap
Cette procédure statistique de rééchantillonage a de nombreuses applications en statistique. Pour calculer un intervalle de confiance de la moyenne, nous avons fait l’hypothèse que la distribution de X̄ était normale. Cette hypothèse est réaliste si on suppose
que la distribution de la population est normale (ou bien que la taille de l’échantillon
est assez grande ce qui nous permet d’utiliser le TCL). Supposons à présent que nous
ne connaissons pas la forme de la distribution de la population. Comment peut on faire
pour calculer un intervalle de confiance de µ ? Nous pouvons essayer d’estimer cette
distribution, tout comme on estime des paramètres inconnus.
– Créer un échantillon de taille 20 issu d’une (N (175, 100))
– Créer 1 échantillon (sample) bootstrap de taille 20, appelés ”resample”, en effectuant un tirage avec remise dans l’échantillon de départ. On utilisera la fonction
5
sample.
– Créer B échantillon bootstrap de taille 20. On pourra utiliser la fonction replicate
avec l’option simplify=FALSE.
– Sur chaque échantillon, calculer la moyenne de l’échantillon. On pourra utiliser la
fonction sapply. La distribution des moyennes ainsi obtenue est appelée distribution bootstrap. Représenter graphiquement cette distribution.
– La distribution bootstrap donne une idée de la distribution de X̄. Proposer un
intervalle de confiance pour µ.
6