La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

VIM Amelia missForest missMDA 0. Console graphique: vmGuimenu() I. Prévisualisation des NA (aggr, barMiss,histMiss, marginmatrix, marginplot, matrixplot)

Présentations similaires


Présentation au sujet: "VIM Amelia missForest missMDA 0. Console graphique: vmGuimenu() I. Prévisualisation des NA (aggr, barMiss,histMiss, marginmatrix, marginplot, matrixplot)"— Transcription de la présentation:

1

2 VIM Amelia missForest missMDA

3 0. Console graphique: vmGuimenu() I. Prévisualisation des NA (aggr, barMiss,histMiss, marginmatrix, marginplot, matrixplot) II. Imputation (irmi, hotdeck, kNN) III. Visualisation des imputations

4 Jdd = jeu de données

5 Visualisation Imputation Diagnostic

6

7 aggr(x, delimiter, numbers, prop, sortVars) Les arguments: -x = jdd -delimiter= extension indiquant les variables imputées dan le jdd - numbers et prop = T ou F, sort le nombre ou la proportion de chaque combinaison dans le jdd - sortVars = T ou F, indique si les variables doivent être triées par le nombre de NA/imputations

8 -combinations = vecteur donnant la combinaison complète (aucun NA) et les combinaisons de variables pour lesquelles il y a des NA -count = fréquence de chaque combinaison -percent = pourcentage de chaque combinaison -missings= dataframe donnant le nombre de NA/dimputations pour chaque variable

9 Représentent la proportion de NA (dune ou plusieurs variables) pour une variable

10 marginplot(x,delimiter) - x=matrice ayant deux colonnes (2 variables du jdd) Plot les données observées dune variable en fonction de lautre et ajoute des informations sur les NA marginmatrix(x, delimiter) - x =jdd => Idem mais pour plusieurs variables (tous les graphes sur une fenêtre)

11

12

13 matrixplot(x, delimiter, sortby, col) - x = jdd - sortby = variable par laquelle il faut trier les données - col = 1,2,3 ou 4; choix des couleurs pour NA, données imputées, données observées. Matrice de même taille que le jdd où un rectangle = 1 cellule, colorée selon la nature de cette donnée

14

15 Régression de la variable ayant NA (Y) en fonction des autres variables (X1, X2...) Change de Y, prend la variable suivante ayant NA Recommence sur tout jdd jusquà ce que les valeurs imputées ne bougent plus.

16 But: imputation simple ou multiple irmi(x, eps, noise,mi) Les arguments: -x=jdd -eps = seuil de convergence (laissé par défaut) -noise= rajoute du bruit à la valeur imputée (le fait par défaut, mettre FALSE sinon) -mi= nombre dimputations que lon veut

17 hotdeck(x, variable, imp_var) Les arguments: - x = jdd - variable = sélection des variables à imputer - imp_var=T ou F, par défaut T => rajoute pour chaque variable imputée une colonne nommée « nomvariable_imp » où les données imputées sont indiquées par un « TRUE » Sortie = le jdd imputée avec la position des données imputées (si imp_var=T)

18

19 Individu n°i avec NA pour Y et profil x (X1, X2…) Prend les individus avec profil x le plus proche de i = ses « voisins » Estime la valeur Y pour i selon celles des voisins Estimation par moyenne, médiane…

20 kNN(x, variable, metric, k, dist_var, weights, numFun, catFun, imp_var) Les arguments -variable= variables à imputer -metric= métrique pour calculer les distances - k= nombre de voisins - dist_var = nom des variables pour calculer les distances - weights = poids des variables utilisées pour calculer les distances - numFun = fonction utilisée pour imputer la donnée (variable quantitative: moyenne, médiane…) -catFun = fonction utilisée pour imputer la donnée (variable qualitative: modalité la plus fréquente par exemple)

21 Pbox scattMiss scattJitt ScattmatrixMiss colormapMiss pairsVIM parcoordMiss

22 Source : I.Imputation multiple (amelia, write.amelia II.Visualisation et qualité de limputation (missmap, plot, overimpute, mi.meld) This package is named after this famous missing person Amelia E.

23

24 missmap(obj=matrice, data.frame ou objet amelia, csvar=colonne où individus)

25 But: imputation multiple (algorithme de maximisation de la vraisemblance) amelia(x, m, p2s, cs, logs, sqrts, noms, empri, priors, bounds) Les arguments: - x = jeu de données - m= nombre de matrices créées (nombre dimputations) - p2s = 0,1 ou 2 en fonction des sorties voulues - cs = « cross section » indiquant la colonnes où sont les individus - logs, sqrts = pour transformer des variables -noms = indiquer les variables qualitatives -empri = valeur de départ (pourcentage) permettant à lalgorithme de trouver plus rapidement le maximum de vraisemblance -priors (prior1 <- c(ligne, colonne, minimum, maximum, IC). Ou prior <- c(colonne, ligne, moyenne, écart-type)) =indiquer une valeur de départ pour le NA sur telle ligne et telle colonne, matrice à 4 ou 5 colonnes, autant de lignes quon souhaite -bounds= indique pour une variable lintervalle dans lequel les données manquantes doivent se situer

26 -sortie donnée quand on fait tourner la fonction = nombre de fois que lalgorithme a tourné pour chaque imputation -imputations = les m matrices imputées -missMatrix = matrice booléenne de la même taille que le jdd où TRUE signifie que la donnée est manquante

27 Enregistrement des jeux de données imputés write.amelia(obj, file.stem, format, separate, orig.data) Les arguments: - obj = lobjet amelia - file.stem= nom donné à lobjet enregistré (ex: amelia_jdd) - format= csv, txt… -separate= TRUE si on veut séparer avoir les jdd séparés, FALSE si on les concatène tous par ligne -orig.data= TRUE si on concatène au jdd original On peut ouvrir chacun des m jdd imputés: read.table(« localisation/amelia_jdd1 ») pour avoir le 1 er, remplacer 1 par 2 pour avoir le second etc… Faire un graphique de chaque jdd pour vérifier que limputation na pas « trop » changé les données

28 Pour comparer la moyenne des NA sur les m imputations pour chaque variable, et les densités des variables sans NA plot(objet amélia, which.vars) => un graphique pour chaque variable Courbe rouge = densité de la moyenne des imputations (sur les m jdd imputés) Courbe noire= distribution des données observées Courbe bleu = distribution des données observées, et aucun NA pour cette variable

29 Pour vérifier que limputation est bonne pour telle variable: overimpute(objet amélia, var) 1 Point= la moyenne des m imputations (sur une donnée observée quon a transformé en NA), intervalle de confiance construit autour Qualité imputation: regarder combien dIC couvrent la droite y=x Si la chaîne ditération est « trop longue », il faut peut- être réaliser une transformation sur certaines variables

30 Pour avoir la moyenne et la variance dune quantité nous intéressant (la moyenne, des coefficients, ou des paramètres) Ex: je fais une régression sur chaque jdd imputé, je stocke les coefficients de régression de chaque variable, ainsi que leur variance mi.meld(q, se) - q = matrice de dim p*m où il y a ce quon veut analyser - se = matrice de dim p*m avec les écarts types des quantités précédentes Sorties: -q=valeur moyenne de la quantité dintérêt sur les m jdd -se= écart-type de chaque quantité dintérêt

31 Imputation simple et obtention des erreurs dimputation (missForest, mixError)

32 Imputation dans le cas de données mixtes, dont les relations ne sont pas forcément linéaires Exemple: Y et x1, x2 1) met des 0 où il y a des NA 2) fait un arbre pour prévoir Y en fonction de x1 et x2 => valeur estimée pour Y 3) fait un arbre pour prévoir x1 en fonction de Y et x2 => valeur estimée pour x1 4)Idem avec x2 5)Recommence jusquà convergence Similaire à irmi, mais on na pas une combinaison linéaires des prédicteurs

33 missForest(xmis, maxiter, ntree, variablewise) Les arguments: - xmis=jdd - maxiter= nombre ditération maximum à faire - ntree = nombre darbres dans chaque forêt - variablewise= pour avoir les erreurs pour chaque variable séparée (=TRUE), sinon sort une erreur pour tout le jdd Les sorties: - ximp= jdd imputé - OOBerror= erreur dimputation estimée pour chaque variable (NRMSE pour les variables quantitatives, proportion de mal classés pour les qualitatives) - error = « vraie » erreur dimputation

34 But: calculer lerreur dimputation pour des données mixtes. mixError(ximp,xmis,xtrue) Les arguments: -ximp=jdd imputé -xmiss=jdd avec NA -xtrue=jdd complet (sans NA, ni imputation) Les sorties: -une erreur dimputation pour les variables qualitatives (proportion de mauvais classement), une autre pour les variables quantitatives (nrmse)

35 Imputation simple ou multiple via les composantes principales

36 ouest.fr/infoglueDeliverLive/developpement/m issMDA ouest.fr/infoglueDeliverLive/developpement/m issMDA Cours Julie Josse (hier si vous vous souvenez bien)

37 Site R cran s/MissingValueImputation_JDS_Nov2010.pdf AMELIAII_Handout.pdf


Télécharger ppt "VIM Amelia missForest missMDA 0. Console graphique: vmGuimenu() I. Prévisualisation des NA (aggr, barMiss,histMiss, marginmatrix, marginplot, matrixplot)"

Présentations similaires


Annonces Google