# MutualInfo - fonction de graphique

MutualInfo calcule les informations mutuelles (MI) entre deux champs ou entre des valeurs agrégées dans Aggr().

MutualInfo renvoie les informations mutuelles agrégées pour deux jeux de données. Cela permet l'analyse de pilote clé entre un champ et un pilote potentiel. La fonction Informations mutuelles mesure la relation établie entre les jeux de données ; elle est agrégée pour les paires de valeurs (x,y) itérées sur les dimensions du graphique. La fonction Informations mutuelles est mesurée entre 0 et 1 et peut être formatée comme une valeur de centile. MutualInfo est défini par des sélections ou une expression d'ensemble.

MutualInfo permet différents types d'analyse MI :

* Pair-wise MI : calcule la valeur MI entre un champ pilote et un champ cible.

* Driver breakdown by value : la valeur MI est calculée entre des valeurs de champ individuelles des champs pilote et cible.

* Feature selection : utilisez MutualInfo dans des bulles pour générer une matrice dans laquelle tous les champs sont comparés les uns aux autres en fonction de la valeur MI.

MutualInfo n'indique pas forcément la causalité entre les champs partageant des informations mutuelles. Deux champs peuvent partager des informations mutuelles sans être des pilotes égaux l'un pour l'autre. Par exemple, lors de la comparaison entre les ventes de crème glacée et la température extérieure, MutualInfo affichera les informations mutuelles entre les deux. Cela n'indiquera pas si c'est la température extérieure qui dirige les ventes de crème glacée, ce qui est probable, ou si ce sont les ventes de crème glacée qui dirigent la température extérieure, ce qui est peu probable.

Lors du calcul des informations mutuelles, les associations affectent la correspondance entre les valeurs des champs provenant de différentes tables et leur fréquence.

Les valeurs renvoyées pour les mêmes champs ou sélections peuvent légèrement varier. Cela est dû au fait que chaque appel MutualInfo agit sur un échantillon sélectionné de manière aléatoire et à la nature aléatoire inhérente de l'algorithme MutualInfo.

MutualInfo peut être appliqué à la fonction Aggr().

Syntaxe :

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])

Type de données renvoyé : numérique

Arguments :

Arguments

| Argument | Description |
| --- | --- |
| field1, field2 | Expressions ou champs contenant les deux ensembles d'échantillons pour lesquels les informations mutuelles doivent être mesurées. |
| datatype | Types de données contenus dans la cible et le pilote,<br><br>1 ou 'dd' pour discret:discret<br><br>2 ou 'cc' pour continu:continu<br><br>3 ou 'cd' pour continu:discret<br><br>4 ou 'dc' pour discret:continu<br><br>Les types de données ne sont pas sensibles à la casse. |
| breakdownbyvalue | Valeur statique correspondant à une valeur du pilote. Si cette valeur est fournie, le calcul calcule la contribution MI pour cette valeur. Vous pouvez utiliser ValueList() ou ValueLoop(). Si Null() est ajouté, le calcul calcule la valeur MI globale pour toutes les valeurs du pilote.<br><br>Pour la répartition par valeur, le pilote doit contenir des données discrètes. |
| samplesize | Nombre de valeurs à échantillonner de la cible et du pilote. L'échantillonnage est aléatoire. MutualInfo nécessite une taille d'échantillon minimale de 80. Par défaut, les échantillons exclusivement MutualInfo contenant jusqu'à 10 000 paires de données tels que MutualInfo peuvent consommer beaucoup de ressources. Vous pouvez spécifier des nombres de paires de données supérieurs dans la taille d'échantillon. En cas d'expiration de MutualInfo, réduisez la taille de l'échantillon. |
| SetExpression | Par défaut, la fonction d'agrégation couvre l'ensemble des enregistrements possibles définis par la sélection. Il est possible de définir un ensemble d'enregistrements alternatif à l'aide d'une expression d'analyse d'ensembles. |
| DISTINCT | Si le terme DISTINCT précède les arguments de la fonction, les doublons résultant de l'évaluation des arguments de la fonction sont ignorés. |
| TOTAL | Si le terme TOTAL précède les arguments de la fonction, le calcul est effectué à partir de toutes les valeurs possibles au vu des sélections actives, et pas seulement à partir de celles qui sont associées à la valeur dimensionnelle active. Autrement dit, les dimensions du graphique ne sont pas prises en compte.<br><br>En utilisant TOTAL [&lt;fld {.fld}&gt;], où le qualificateur TOTAL est suivi d'un ou de plusieurs noms constituant un sous-ensemble des variables de dimension du graphique, vous créez un sous-ensemble du nombre total de valeurs possibles.<br><br>[Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Limitations :

Les valeurs textuelles, les valeurs NULL et les valeurs manquantes dans une ou les deux paires de données sont ignorées.

Exemples et résultats :

Ajoutez l'exemple de script à votre application et exécutez-le. Pour afficher le résultat, ajoutez les champs répertoriés dans la colonne de résultats à une feuille de votre application.

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Pour une table dotée de la dimension `Employee name` et de la mesure `mutualinfo(Age, Salary, 1)`, le résultat correspond à 0.99820986. Le résultat s'affiche uniquement pour la cellule des totaux. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Si vous créez un volet de filtre comportant la dimension Gender et que vous effectuez ensuite des sélections à partir de ce volet, vous obtenez le résultat 0.99805677 lorsque vous sélectionnez Female et le résultat 0.99847373 lorsque vous sélectionnez Male. Ceci s'explique par le fait que la sélection exclut tous les résultats qui ne font pas partie de l'autre valeur de Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. La sélection de n'importe quelle valeur de Gender remplace cela par 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Cela est indépendant des sélections effectuées. L'expression d'ensemble {1} ignore toutes les sélections et toutes les dimensions. |

Données utilisées dans les exemples :

`Salary:` `LOAD  * inline [` `"Employee name"|Age|Gender|Salary` `Aiden Charles|20|Male|25000` `Ann Lindquist|69|Female|58000` `Anna Johansen|37|Female|36000` `Anna Karlsson|42|Female|23000` `Antonio Garcia|20|Male|61000` `Benjamin Smith|42|Male|27000` `Bill Yang|49|Male|50000` `Binh Protzmann|69|Male|21000` `Bob Park|51|Male|54000` `Brenda Davies|25|Male|32000` `Celine Gagnon|48|Female|38000` `Cezar Sandu|50|Male|46000` `Charles Ingvar Jönsson|27|Male|58000` `Charlotte Edberg|45|Female|56000` `Cindy Lynn|69|Female|28000` `Clark Wayne|63|Male|31000` `Daroush Ferrara|31|Male|29000` `David Cooper|37|Male|64000` `David Leg|58|Male|57000` `Eunice Goldblum|31|Female|32000` `Freddy Halvorsen|25|Male|26000` `Gauri Indu|36|Female|46000` `George van Zaant|59|Male|47000` `Glenn Brown|58|Male|40000` `Harry Jones|38|Male|40000` `Helen Brolin|52|Female|66000` `Hiroshi Ito|24|Male|42000` `Ian Underwood|40|Male|45000` `Ingrid Hendrix|63|Female|27000` `Ira Baumel|39|Female|39000` `Jackie Kingsley|23|Female|28000` `Jennica Williams|36|Female|48000` `Jerry Tessel|31|Male|57000` `Jim Bond|50|Male|58000` `Joan Callins|60|Female|65000` `Joan Cleaves|25|Female|61000` `Joe Cheng|61|Male|41000` `John Doe|36|Male|59000` `John Lemon|43|Male|21000` `Karen Helmkey|54|Female|25000` `Karl Berger|38|Male|68000` `Karl Straubaum|30|Male|40000` `Kaya Alpan|32|Female|60000` `Kenneth Finley|21|Male|25000` `Leif Shine|63|Male|70000` `Lennart Skoglund|63|Male|24000` `Leona Korhonen|46|Female|50000` `Lina André|50|Female|65000` `Louis Presley|29|Male|36000` `Luke Langston|50|Male|63000` `Marcus Salvatori|31|Male|46000` `Marie Simon|57|Female|23000` `Mario Rossi|39|Male|62000` `Markus Danzig|26|Male|48000` `Michael Carlen|21|Male|45000` `Michelle Tyson|44|Female|69000` `Mike Ashkenaz|45|Male|68000` `Miro Ito|40|Male|39000` `Nina Mihn|62|Female|57000` `Olivia Nguyen|35|Female|51000` `Olivier Simenon|44|Male|31000` `Östen Ärlig|68|Male|57000` `Pamala Garcia|69|Female|29000` `Paolo Romano|34|Male|45000` `Pat Taylor|67|Female|69000` `Paul Dupont|34|Male|38000` `Peter Smith|56|Male|53000` `Pierre Clouseau|21|Male|37000` `Preben Jørgensen|35|Male|38000` `Rey Jones|65|Female|20000` `Ricardo Gucci|55|Male|65000` `Richard Ranieri|30|Male|64000` `Rob Carsson|46|Male|54000` `Rolf Wesenlund|25|Male|51000` `Ronaldo Costa|64|Male|39000` `Sabrina Richards|57|Female|40000` `Sato Hiromu|35|Male|21000` `Sehoon Daw|57|Male|24000` `Stefan Lind|67|Male|35000` `Steve Cioazzi|58|Male|23000` `Sunil Gupta|45|Male|40000` `Sven Svensson|45|Male|55000` `Tom Lindwall|46|Male|24000` `Tomas Nilsson|27|Male|22000` `Trinity Rizzo|52|Female|48000` `Vanessa Lambert|54|Female|27000` `] (delimiter is '|');`

Contenu d’apprentissage associé :

* [Comment évaluer des relations via Informations mutuelles ?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## En savoir plus

* [Comment évaluer des relations via Informations mutuelles ?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)