Power Query


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



Le Dataframe est l’objet que vous manipulerez le plus avec R et certainement avec Power Query, car ce dernier ne reconnaît que l’objet Dataframe (les autres objets comme les vecteurs doivent être convertis en Dataframes pour être exploités par Power Query). Un Dataframe correspond à un table de données, chaque colonne représentant une variable avec un type de données homogène. Contrairement aux matrices, les colonnes des dataframes peuvent être de type différent les unes des autre (numériques, logiques, texte…) R contient un ensemble de dataframes pré-constitués, très faciles à utiliser. data(mtcars);df = mtcars Charge le dataframe mtcars. Pour rappel les instructions doivent être saisies dans l'éditeur de la source de données Script R. Dans l'éditeur avancé utiliser le schéma suivant : Let Source= R.Execute(« Votre Code R ») In Source Nous pouvons examiner les premières ou dernières lignes du dataframe en utilisant les fonctions head() ou tail(). df = head(mtcars) df= tail(mtcars) Il est possible aussi de créer ses propres dataframes à partir d’un ensemble de vecteurs et de la fonction data.frame(): nom <- c(« Mercure », « Venus », « Terre », « Mars », « Jupiter », « Saturne »,                       « Uranus », « Neptune »); type <- c(« Terrestre », « Terrestre », »Terrestre », « Terrestre », « Gazeuse          […]

Power Query – Script R – Dataframes



On peut se représenter un vecteur comme un tableau d’une seule colonne dont les valeurs sont toutes du même type (numérique, texte etc…) Ce qui est particulièrement intéressant c’est que chaque élément du vecteur est ordonnancé, ce qui permet d’y accéder directement en connaissant sa position dans le vecteur. Pour créer un vecteur il faut utiliser la notation c() : c(« jean », »paul », »raymond ») Chaque vecteur peut être affecté à une variable pour être stocké en mémoire et utilisé ultérieurement : a= c(1,2,3) b= c(« jean », »paul », »raymond ») c = c(TRUE,FALSE,TRUE) Nous pouvons affecter un nom à chaque  valeur d’un vecteur en utilisant la fonction names(), cela permet en quelque sorte d’avoir un nom d’entête de ligne. poker_vecteur <- c(140, -50, 20, -120, 240); roulette_vecteur <- c(-24, -50, 100, -350, 10); names(poker_vecteur) <- c(« Lundi », « Mardi », « Mercredi », « Jeudi », « Vendredi »); names(roulette_vecteur) <- c(« Lundi », « Mardi », « Mercredi », « Jeudi », « Vendredi »); df = data.frame(names(poker_vecteur),poker_vecteur) En utilisant la source de donnée Script R dans PowerBI et en écrivant le code précédent dans la fenêtre de l’éditeur, on obtient la table suivante : Sélections de lignes d’un vecteur La sélection des lignes d’un vecteur s’opère en utilisant les crochets et en encadrant le numéro de ligne, pour une sélection simple : poker_vecteur <- c(140, -50, […]

Power Query – Script R – Vecteurs



Dans cet article, nous allons voir comment réaliser des opérations simples en utilisant un script R dans power query. Pour générer une table de données nous allons devoir créer ce que se nomme un dataframe, dans le langage R. Un dataframe est utilisé pour stocker les tables de données, elles-mêmes constituées de colonnes (ou vecteurs en R), de même longueur. En R, la notation pour un vecteur est c(). c(1,2,3) représente donc une colonne de données dont les valeurs des lignes sont 1,2 et 3. Pour affecter un vecteur à une variable, nous pouvons utiliser le signe = ou la notation <-. x = c(1,2,3) x <- c(1,2,3) Pour afficher le résultat sous forme de table, dans Power query, nous devrons utiliser la fonction data.frame(). n = c(2, 3, 5) df = data.frame(n) Ce qui donne dans l’éditeur de powerquery, le code suivant : let Source = R.Execute(« df=c(2,3,5);dataset=data.frame(df) »), dataset = Source{[Name= »dataset »]}[Value] in dataset La constitution d’une table suit la même logique : a = c(3, 4, 5) b = c(« aa », « bb », « cc ») c = c(TRUE, FALSE, TRUE) df = data.frame(a, b, c) Une colonne du dataframe peut aussi être le fruit d’un calcul comme : a = c(3, 4, 5) […]

Power Query – Script R – Créer une table de ...



Lorsque vous utilisez l’interface de Power Query pour réaliser vos transformations, vous devez savoir, qu’en arrière plan, toutes vos actions sont traduite dans un langage informatique : le M, que nous allons étudier. 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. Créons une nouvelle requête : Obtenir les données–> Excel–> Ch20 ExamplesUnderstanding M.xlsx Cochez Sales. Cliquez sur modifier. Cliquez sur Editeur. avancé Ce bouton nous permet d’accéder au code M, un peu comme l’explorateur de Macro en visual basic. Décomposons ce bloc de code pour comprendre la structure du langage. let Source = Excel.Workbook(File.Contents(« C:UsersLe mennDesktopMCh20 ExamplesUnderstanding M.xlsx »), null, true), Sales_Sheet = Source{[Item= »Sales »,Kind= »Sheet »]}[Data], # »En-têtes promus » = Table.PromoteHeaders(Sales_Sheet, [PromoteAllScalars=true]), # »Type modifié » = Table.TransformColumnTypes(# »En-têtes promus »,{{« Date », type date}, {« Inventory Item », type text}, {« EmployeeID », Int64.Type}, {« Quantity », Int64.Type}, {« Price », Int64.Type}}) in # »Type modifié » Le code de chaque requête en M doit commencer par le mot clé let. La seconde ligne commence par identifier la première étape en lui affectant un nom, ici Source. Ce bloc de code se contente de récupérer l’ensemble des tables […]

Power Query – M – Structure du langage



Power Query nous permet d’acquérir des données sous forme de tables, à partir du Web. 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. Commençons tout d’abord par récupérer une Table Html : Obtenir les données –> Web –> https://www.cia.gov/library/publications/the-world-factbook/rankorder/2119rank.html Power Query nous retourne deux éléments : Document et Table 0. Document, retourne le Html de la page, ce qui ne nous intéresse pas, alors que table 0 reprend les données incluses entre les balises Html. Sélectionnons table 0 –> Modifier. Il ne reste plus qu’à faire les transformations d’usage et nous aurons récupéré des informations directement utilisables, depuis une Table Html. Nous pouvons aussi nous connecter directement à des fichiers hébergés sur un serveur Web, à condition de connaitre l’URL Obtenir les données –> Web –> https://www.cia.gov/library/publications/the-world-factbook/rankorder/rawdata_2119.txt L’aperçu nous permet de vérifier que Power Query a correctement déterminé les délimiteurs de colonnes, nous pouvons cliquer sur Modifier et réaliser les modifications d’usage.

Power query – Données Web