Blog


La plupart des modèles de données contiennent plusieurs tables en relation les unes avec les autres.   Nous allons étudier l’impact de ces relations sur les deux contextes.   Contexte de ligne et relations.   C’est le plus simple à comprendre : il n’y a pas d’interactions.   Supposons une table des Ventes en relation avec une table Articles.   Si l’on crée une colonne visant à calculer la différence entre le prix  unitaire réellement appliqué et le prix de vente standard, prévu dans la table articles :   Différence= Ventes[PU Vente]-Articles[PU Vente]   Retournera une erreur.   En effet, la colonne calculée crée une itération sur la table Ventes et elle seule !   Pour accéder à la valeur en relation dans la table Articles il faudra utiliser la fonction RELATED.   Différence= Ventes[PU Vente]-RELATED(Articles[PU Vente])   Dans le sens inverse (colonne calculée dans la table Articles), il faudra utiliser RELATEDTABLE imbriquée dans une fonction d’aggrégation :   AVERAGE(RELATEDTABLE(Ventes[PU Vente]))   Ce mécanisme fonctionne, quel que soit le nombre de niveaux de la relation (Par exemple Famille->Sous-Famille->Articles->Ventes), sous réserve que les relations soient du même type et de même direction.   Par exemple, dans le cas ci-dessous, il n’est […]

DAX Contexte d’évaluation (Partie 2)



3
Toute mesure est évaluée dans un contexte.   Le contexte, c’est-à-dire l’ensemble des filtres du rapport (lignes et colonnes d’un TCD, slicers..) pour le contexte de filtres, ou la ligne de la table, pour un contexte de ligne , détermine l’environnement dans lequel s’applique la formule de calcul.   Un élément clé à retenir : « Il y a toujours deux contextes qui coexistent : Le contexte de filtres et le contexte de ligne. »   Contexte de filtre. Prenons une mesure simple comme : Sum(Ventes[Total Ventes HT]) Elle retourne la somme des quantités de toute la table Ventes, en l’absence de filtres:   Elle retourne une valeur différente si l’on ajoute un filtre sur l’année dans le rapport :     Comment cela se produit-il ?   Il faut considérer chaque cellule : Pour déterminer sa valeur, la table Ventes est filtrée comme dans un tableur Excel, pour ne retenir que les lignes concernant l’année 2017 (première ligne du rapport.) Ensuite, l’expression s’applique sur les valeurs contenues dans la colonne Total Ventes HT (filtrées.)   Nous pouvons rajouter autant de filtres que nécessaire, la logique sera toujours la même : la table est filtrée en fonction du contexte d’évaluation de chaque cellule, avant […]

DAX – Contexte d’évaluation (Partie 1)



Comme nous l’avons vu dans les articles précédents, Power Query permet, depuis son interface utilisateur de réaliser très facilement la plupart des taches de chargement et de transformation de vos données. Néanmoins, si vous souhaitez aller plus loin, il vous faudra étudier le langage qui tourne en arrière plan de cette interface utilisateur, le langage M. Si ce n’est déjà fait, vous pouvez télécharger les fichiers sources sur le site de l’excellent  livre M is for (Data) Monkey écrit par Ken Puls et Miguel Escobar  dont nous nous sommes inspiré Télécharger les fichiers pour écrire ce post. Pour commencer, le plus simple est d’ajouter une nouvelle colonne : Après avoir renommé la colonne, vous pouvez écrire une formule en langage M, par exemple : Pour vous faciliter la tache, vous n’avez pas à écrire le nom de chaque colonne, puisque l’éditeur vous présente les colonnes disponibles, sur lesquelles vous n’avez qu’à double cliquer. La langage M est très différent des formules Excel auxquelles nous sommes habitués : Les formules sont sensibles à la casse (Majuscules et minuscules sont considérées comme différentes.) Le comptage se fait à partir de zéro (à partir de un dans Excel. Il n’y a pas de conversion […]

Power query – M – Conversions de type



Power Query et son interface permettent de réaliser facilement des transformations simples.   En programmant en langage M, nous pouvons réaliser des transformations plus complexes, mais il faut bien reconnaître que la difficulté dans la programmation devient vite prohibitive. Microsoft l’a semble-t-il bien compris, en intégrant le langage R à Power Bi. Ce langage, utilisé par les data scientists du monde entier, permet de réaliser ces opérations bien plus facilement. Pour utiliser R dans Power Query, vous devrez tout d’abord mettre en place l’environnement sur votre ordinateur. Une fois l’environnement installé, nous allons devoir installer un package R nommé ‘dplyr’ Ouvrez R studio Tapez Fermez Rstudio Voila c’est fait ! Maintenant nous pouvons créer une nouvelle requête dans Power BI : Obtenir les données Web Entrez cette Url : https://raw.githubusercontent.com/genomicsclass/dagdata/master/inst/extdata/msleep_ggplot2.csv Modifier. Transformer –> Utiliser la première ligne pour les entêtes. Sélectionnez les colonnes contenant des chiffres et transformez leur type en Décimal. Normalement vous devriez obtenir ceci :   Maintenant nous allons pouvoir créer une nouvelle étape de transformation en créant un script R.     Copiez-collez ce script : Cliquez sur Ok   Ce script permet d’afficher les six premières lignes du Dataset et de l’affecter à la variable […]

Power Query & R – Transformation avec Dplyr



Il peut être utile (pour documenter une base de données ou visualiser la structure d’un nouveau dataset) d’obtenir un descriptif d’un table. Si vous êtes familiers de R vous connaissez la fonction str(dataset). Avec M et powerquery, nous pouvons obtenir un résultat voisin, en utilisant la fonction Table.Schema(). Dans cet exemple, nous avons référencé la requête iris comme source de données de la seconde requête. Cette dernière nous donne un descriptif de la structure du dataset iris. Pour aller plus loin, nous pouvons utiliser la fonction Table.Profile() qui nous fournira un ensemble de statistiques descriptives sommaires pour chaque critère (similaire à la fonction summary() dans R.) Cette fonction est très utile pour identifier la distribution des données, la volumétrie, les normalisations à réaliser etc…

PowerQuery – Decrire facilement des tables



1
Si l’analyse des indicateur classiques (Chiffre d’affaires, marge, évolution des stocks etc…) nous permet d’évaluer la performance, ils peuvent être incapables de nous expliquer le pourquoi de la performance. Une solution peut être d’analyser la corrélation entre les différentes variables. Pour ce faire, une matrice de corrélation est l’outil idéal : elle permet de visualiser, comme ci-dessous, l’impact de l’évolution d’une variable sur une autre. L’échelle de droite montre la corrélation positive (en bleu), lorsque l’évolution des deux variables s’éffectue dans le même sens et la corrélation négative (en rouge) pour l’inverse. Les grands cercles foncés à l’intersection de deux variables montrent une forte corrélation de ces dernières. La lecture de la valeur de corrélation s’effectue en diagonale. Dans l’exemple ci-dessus, on voit bien que l’augmentation des remises a un impact fort sur le prix de vente, ce qui est évident.   Moins évidente, la corrélation négative entre le stock et le prix de vente des articles, qui semble indiquer que lorsque le niveau de stock est élevé on cherche à l’ajuster en baissant le prix, au détriment de la marge..   Ce graphique peut être généré en utilisant un graphique R. Le plus simple est de générer une table […]

R Visuals – Corrélations avec Corr



Si vous souhaitez accéder à une source de données en utilisant un ordinateur hors domaine (workgroup), il va falloir lancer Power BI en émulant une session sur domaine.   Cela peut se faire à partir de la console ou de powershell, il sera ensuite possible de créer un raccourci reprenant cette commande (en mettant évidemment votre domaine et utilisateur réel.) Runas /netonly /user:DOMAINE\Utilisateur « C:\Program Files\Microsoft Power BI Desktop\bin\PBIDesktop.exe »   Vous serez alors prompté d’entrer votre mot de passe et PowerBi se lancera comme si  votre ordinateur était reconnu par l’AD.   Par la suite vous pouvez créer un raccourci sur votre bureau et coller la commande. Cette astuce est vraiment pratique lorsque vous avez des sources situées sur de nombreux domaines et que vous développez vos modèle en local et non en accès à distance.

PowerQuery – Se connecter sans appartenir au domaine



Il existe deux types de variables : les variables continues, que l’on ne peut dénombrer (par exemple l’ensemble des valeurs décimales comprises entre 1 et dix) et les variables catégorielles. Dans R, un facteur représente l’ensemble des valeurs que peut prendre une variable catégorielle, par exemple, pour une marque de véhicule : Peugeot, Citroen etc.. Cette notion de variable est importante en statistique, car vous ne développerez pas les mêmes modèles selon que la variable est continue ou catégorielle. Pour créer un facteur à partir d’un vecteur, il suffit d’utiliser la fonction factor(). Cette fonction associe des niveaux (levels) au vecteur. Ces niveaux sont les valeurs uniques du vecteur. Pour afficher ces valeurs uniques vous devrez utiliser la fonction levels() Vous voudrez parfois affecter un ordre aux valeurs de votre facteur, par exemple (grand, petit,moyen –> petit, moyen, grand). Ceci est possible avec R en utilisant la fonction order() : Cette technique permet de trier des valeurs non numériques. En utilisant la fonction summary(), vous pouvez obtenir le nombre d’occurence de chaque catégorie, dans le vecteur : Lorsque le vecteur est ordonné,vous pouvez opérer des comparaisons : Retournera TRUE. Les facteurs sont très important pour le bon fonctionnement des algorithmes […]

Power Query – Script R – Les facteurs



KNN – Le concept Littéralement K nearest neighbors, ce qui peut se traduire en Français les K(un nombre) plus proches voisins. Il s’agit d’un algorithme simple mais très efficace pour classifier des données labellisées.   Afin de comprendre le concept, le plus simple est d’imaginer de sélectionner un ensemble de critères pour classifier des objets dans deux ou plusieurs catégories. Par exemple classer des aliments dans une catégorie (fruit, légume, céréale  etc…) en appliquant une note à des critères comme la sucrosité, la salinité, le degré de croquant etc..   On peut alors introduire un nouvel élément et tenter de le classer en fonction de sa proximité avec les éléments existant du tableau.     KNN calcule la distance Euclidienne entre chaque critère du raisin et leur homologue pour chaque observation dans le tableau. La distance Euclidienne est égale à la racine carrée de la somme des carrés des distances. Quelle est la distance Rasin-Pomme ? La même opération est réalisée pour chaque enregistrement de la table.   Il est alors possible d’identifier quels sont les aliments les plus proches du raisin.   Si on affecte 1 au paramètre K, le raisin sera classifié en fonction du type de son […]

Machine Learning – KNN



Power Query met à notre disposition plusieurs objets que vous devez apprendre  à manipuler pour pouvoir programmer correctement. L’objet Table Si ce n’est déjà fait, vous pouvez télécharger les fichiers sources sur le site de l’excellent  livre M is for (Data) Monkey écrit par Ken Puls et Miguel Escobar  dont nous nous sommes inspiré Télécharger les fichiers pour écrire ce post. Obtenir les données –> Excel –> Ch19 ExamplesPower Query Objects.xlsx Selectionnez Sales Cliquez sur Modifier Dans l’écran Etapes appliquées, cliquez sur source Nous pouvons voir que la colonne [Data] est de type Table. Nous pouvons avoir le détail de chacune en cliquant à coté du mot Table. En aperçu nous pouvons voir que l’objet est composé de colonnes et de lignes. Nous pouvons générer la table en cliquant sur le mot Table ou développer toutes les tables par fusion, en cliquant sur la flèche double de l’entête de  la colonne [Data]. Listes Une liste est une colonne de données qui peuvent être de type différents. Commençons par créer une liste simple : Obtenir les données –> Requête simple ={1,2,3} Nous pouvons voir que Power query a bien créé une liste et non une table, en identifiant le symbole de liste […]

Power Query – M – Objets