Les données prévisionnelles de cubes OLAP avec R - Tableau - Blog ClearPeaks
Déchaînez la puissance de R pour prévoir des données de vos cubes OLAP avec Tableau
R est un environnement langage de programmation et de logiciels pour le calcul statistique, l'outil leader parmi les statisticiens, les mineurs de données et scientifiques de données pour effectuer une analyse statistique sophistiquée, la découverte des données et l'analyse prédictive sur un ensemble de données, telles que la modélisation linéaire / non-linéaire, classification , le regroupement, l'analyse des séries chronologiques et ainsi de suite.
R offre une multitude de fonctions et, en tant que projet open source, ses capacités sont constamment améliorées et étendues grâce à des forfaits créés par l'utilisateur; c'est pourquoi il est si populaire et ne cesse de grandir.
Dans cet article, nous verrons comment R peut être connecté à effectuer des prévisions pour Tableau hautement personnalisable de vos données à partir de cubes OLAP. Vos utilisateurs bénéficieront sans la nécessité d'un arrière-plan de codage avancé, et de visualiser les résultats dans les tableaux de Tableau qu'ils aiment le plus, avec l'aide de quelques astuces intéressantes.
1. Prévision avec Tableau
Tableau vient déjà avec une fonction de prévision; il utilise une technique appelée lissage exponentiel qui tente de trouver un motif régulier dans les mesures qui peuvent être poursuivies dans l'avenir.
Pour accéder à cette fonction, il suffit de faire glisser une date et une mesure à votre feuille et faites un clic droit sur la toile. Dans cet exemple, nous utilisons l'échantillon de données Superstore Tableau.

Figure 1: Tableau de l'échantillon de données Superstore.
Sélectionnez Afficher des prévisions météo. et la ligne estimée apparaîtra. Comme vous pouvez le voir dans l'image ci-dessous, il est très simple. Ce que fait était essentiellement Tableau d'une régression linéaire à une ligne droite; il montre aussi l'intervalle de confiance. Faites un clic droit sur la toile à nouveau pour accéder aux options de prévision, et un volet d'options s'affiche.

Dans le volet Options (ci-dessous, 1), vous pouvez définir quelques paramètres, tels que la longueur de prévision, le type d'agrégation, et vous pouvez modifier ou supprimer les intervalles de confiance (appelés intervalles de prévision) et ajuster le modèle de prévision: il peut être automatique, automatique sans caractère saisonnier, ou sur mesure. Si vous choisissez Personnalisé, vous pourrez choisir le type de tendance et Saison: Aucun, additif ou multiplicatif.

En un clic droit sur à nouveau et en sélectionnant Décrivez prévisions, vous verrez apparaître une fenêtre qui vous donne des informations supplémentaires de prévisions. Vous pouvez le voir en 2 et 3.
2. Pourquoi utiliser R à la place?
Ce que nous avons décrit jusqu'à présent est fondamentalement tout ce que peut offrir Tableau en matière de prévisions. Il fonctionne très bien, mais ce n'est pas vraiment personnalisable et, surtout, il ne fonctionne pas avec des cubes OLAP!
Les cubes OLAP présentent de nombreux avantages, mais malheureusement, Tableau ne nous permet pas de faire toutes les choses que nous pouvons faire avec une source de données « traditionnelles », et la prévision est l'un d'entre eux (vous pouvez trouver une liste d'autres limites liées OLAP ici .
Heureusement pour nous, est un Tableau grand outil qui, en dépit de ne pas être en mesure d'effectuer des prévisions sur des cubes, il nous offre une alternative encore plus puissante: une intégration en douceur avec R.
3. L'intégration de R dans le Tableau
Il y a 4 fonctions qui permettent de communiquer avec Tableau R: SCRIPT_REAL, SCRIPT_STR, SCRIPT_INT, SCRIPT_BOOL. Ils ne diffèrent que par le type de retour, comme le suggère leur nom.
R prendra ces valeurs, les interpréter comme des vecteurs (R essentiellement fonctionne uniquement avec des vecteurs et leurs dérivés), et retourner un vecteur de données peut utiliser Tableau comme tout autre champ calculé.
4. Connexion à R Tableau
Pour communiquer, R et Tableau doivent être connectés, ce qui est vraiment facile à faire:
1. Téléchargez R d'ici ou R Studio à partir de là. et l'installer
2. A partir de la console R, télécharger le package Rserve et l'exécuter:
3. Tableau, sélectionnez Aide ➜ Réglage et performance ➜ Gérer le service externe Connexions
4. Entrez un nom de serveur ou une adresse IP (dans la même machine, utilisez localhost ou 127.0.0.1) et sélectionnez le port 6311
5. Testez la connexion en cliquant sur le bouton « Test de connexion », puis appuyez sur OK si vous obtenez un message positif
Vous pouvez également automatiser le début de Rserve en créant un RSCRIPT avec le code mentionné au point 2 (sans répéter l'installation), enregistrez-le sous forme de fichier .R, et l'appeler à partir d'un fichier .bat avec « start RSCRIPT myRserveScript.R » . Vous le trouverez très utile, en particulier dans un environnement de serveur, parce que vous pouvez planifier son exécution lorsque la machine commence par le Planificateur de tâches, ou en copiant un raccourci vers% AppData% \ Microsoft \ Windows \ Menu Démarrer \ Programmes \ Démarrage ( sous Windows).
Après Rserve a démarré et est connecté avec succès Tableau, vous pouvez commencer à utiliser les 4 Script_ * fonctions pour exploiter la puissance de R.
5. La prévision dans R
Pour effectuer des prévisions en R, vous devez télécharger un paquet fait par l'utilisateur appelé « prévisions ».
Pour ce faire, il suffit d'écrire install.packages ( « prévision ») dans votre console R, et l'appeler par écrit bibliothèque (prévisions) chaque fois que vous en avez besoin.
Pour plus de détails sur le paquet, vérifier les diapositives de l'auteur. le paquet d'aide pdf. ou la page d'aide de chaque fonction en écrivant? func_name dans la console (ex. FSTL).
6. Cas d'utilisation
Dans notre cas d'utilisation, nous prendrons une série de mesures mensuelles des 3 dernières années et les prévisions avec différentes combinaisons de fréquence / période. Nous allons utiliser la fonction appelée FSTL. qui, sans se perdre dans les détails, nous donne une plus grande liberté lors de la lecture avec des périodes et des fréquences tout en fournissant un solide résultat.

Nous avons traîné notre dimension de la date (Année Nombre Nombre Mois) au champ de la colonne, et de mettre notre mesure souhaitée dans le champ de ligne. La tendance est pas régulière, mais nous pouvons voir comment la ligne a quelques pics et tend généralement à se développer.
7. Rédaction des scripts R
Voyons comment écrire les scripts R qui exécutent les prévisions.
Tout d'abord, nous devons savoir quelles valeurs nous adopterions: nous avons notre mesure (R l'accepter, elle doit être agrégée, mais provenant du cube, il est déjà, et sinon, la fonction ATTR peut être appelée à aide) et les deux paramètres entiers (les créer dans le Tableau) pour le nombre de périodes à PREVU et la fréquence de la saison.
Utilisons-les dans cet ordre, les appelant ForecastMeasure, ForecastPeriods et Freq. Le champ calculé doit chercher d'abord quelque chose comme ceci:
Dans le premier argument, nous avons déjà mis en place les variables R qui recueillent les valeurs à transmettre au script (ce n'est pas obligatoire, mais juste pour garder le nettoyeur de code). Rappelez-vous que R fonctionne avec des vecteurs: remarquez comment la première (données) prend toute .arg1, parce que nous voulons en fait l'ensemble de mesures, tandis que les paramètres (nombres entiers simples) doivent prendre de la première valeur d'un 1 taille tableau. Nous filtrons ensuite ce vecteur pour éliminer les valeurs nulles éventuels, et nous enregistrons le nombre de ceux dans une variable appelée nulls (nous en aurons besoin plus tard).
Nous effectuons maintenant les prévisions. Ajoutez les lignes suivantes au script:
La première ligne appelle simplement la bibliothèque de prévisions; nous créons alors un objet de séries temporelles, en passant la mesure et le paramètre de fréquence (pour plus de détails plus personnalisable, vérifiez les ressources déjà mentionnées). Enfin, nous produisons nos résultats de prévision, en alimentant la fonction FSTL avec l'objet de séries temporelles et le paramètre périodes.
Prévisions Out est prêt. Si nous utilisons les mêmes données et nous exécutons le script dans R, la console ressemblera à ceci:

Les colonnes intéressantes sont prévues, Lo80, Hi80, Lo95, Hi95. Le premier contient la valeur prévue réelle. Il y a 12 parce que nous avons utilisé le paramètre = 12 (fréq = 12 aussi). Les autres sont l'intervalle de confiance (les limites peuvent être modifiées lors de l'appel de la fonction).
Maintenant, nous allons terminer notre script. Il y a une chose que nous devons nous rappeler: Tableau attend de recevoir le même nombre de mesures qu'il a envoyé, de sorte que nous ajoutons à notre gamme prévue à l'original, bien décalé, avec représentant (NaN, nulls), un tableau de valeurs nulles ( nous savons combien il y a parce que nous les avons sauvés). Ajoutez ces lignes au script:
Le résultat que nous voulons est fcast moyenne de $. qui correspond à la colonne intitulée « prévision » dans la matrice de R que nous avons vu. Nous joignons le long avec des valeurs nulles éventuelles au segment des données d'origine qui commence à partir du numéro de position période + 1, afin d'obtenir un tableau de la taille d'origine (note: en faisant cela, nous ne visualiser les premiers éléments d'époque ).
C'est tout! Votre nouveau champ calculé devrait ressembler à celui ci-dessous. Faites-le glisser dans le champ de la ligne, et vous obtenez vos prévisions.

Figure 5: script complet R et le résultat
8. Déplacement des mesures de temps
Maintenant, nous commençons à obtenir les premiers numéros. Tableau reçu un vecteur de R de la même taille que celui que nous l'avons adopté, de sorte que chaque valeur de mesure date est pour le nouveau substitué une, venant du champ calculé. Le problème est que la date n'a pas changé!
Normalement, cela pourrait être fixé en créant une nouvelle date calculée à l'aide de la fonction DATEADD, mais comme nous ne pouvons pas ajouter une dimension en cubes, nous devons surmonter ce problème en obtenant la valeur de dimension en tant que mesure avec une formule MDX, puis appliquer DATEADD à elle.
Créer un nouveau membre calculé, et le définir comme:
Ensuite, créez un champ de calcul comme ceci:
Où [YearNumberMonthNumber] est (par exemple) le nom de votre nouveau membre calculé. Cela vous obtenir une mesure avec la date décalée en conséquence à la période prévue que vous avez sélectionné.

Faites glisser ce nouveau champ au-dessus de la colonne date originale et ... votre carte se bloque!
Pourquoi? Vous venez de créer une nouvelle décalé date pour chaque valeur de la date d'origine, et essentiellement vos données sont maintenant « split » en « colonnes » de 1 valeur, 1 pour chaque décalé mois, et R les accueillerez 1 par 1 au lieu d'obtenir un vecteur entier à traiter. Ceci explique l'erreur qui dit « série n'est pas périodique ou a moins de deux périodes », parce que ce que R voit en réalité est une série de vecteurs indipendent 1 taille.
Pour résoudre ce problème, il y a une astuce simple mais soignée: ajoutez votre champ de données original « Détail », de sorte qu'il est disponible dans la feuille, et modifier votre champ de prévision calculée comme celui-ci.
Cela rendra processus de Tableau le champ calculé au niveau correct, et aider à R voir les données reçues de la manière correcte, produisant ainsi le résultat souhaité.
C'est tout! Vous venez de votre PREVU cube OLAP!

Figure 8: cube OLAP prévu
9. Ajout d'intervalles de confiance
Vous pouvez également ajouter des intervalles de confiance pour améliorer votre visualisation: il suffit de créer deux mesures, copier celui que vous avez créé pour les prévisions, et changer fcast $ signifie pour fcast inférieure $ [1], fcast inférieure $ [2], fcast $ supérieur [1], ou fcast $ supérieure [2]. en fonction de la limite que vous voulez montrer (rappelez-vous que les valeurs par défaut sont 80 et 95, mais ceux-ci sont modifiables dans la fonction R).
Dans l'image ci-dessous vous pouvez voir les prévisions avec les limites de 95% (fcast $ supérieure [2] et fcast inférieure $ [2]). et la ligne de tendance (calculé par Tableau).

Figure 9: Visualisation finale Prévision
10. Conclusions
Dans ce guide, nous avons montré comment R peut vous aider à construire de grands tableaux de prévisions pour vos données de cube OLAP, mais ce n'est pas le seul avantage: nous avons obtenu un degré beaucoup plus élevé de personnalisation, et a surmonté les limites du Tableau en matière de définition les paramètres, les méthodes et algorithmes entiers.
Une fois Tableau peut se connecter à R, son potentiel est pratiquement illimité, et il peut améliorer vos cartes dans une infinité de manières: à partir d'une source (pas nécessairement des cubes OLAP), ou avec un but, il suffit d'envoyer les données à la R et le laisser faire le travail, quoi que ce soit! Prévision, regroupement, classification, ou toute autre chose avec un paquet R écrit pour elle - vous pouvez même écrire vous-même! Ensuite, visualisez le résultat dans le Tableau, et d'ajuster l'apparence de votre tableau de bord avec les puissantes fonctionnalités que vous aimez.
Cliquez ici si vous souhaitez recevoir plus d'informations sur le sujet!