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