# MutualInfo - diagramfunctie

MutualInfo berekent de wederzijdse informatie tussen twee velden of tussen geaggregeerde waarden in Aggr().

MutualInfo retourneert de geaggregeerde wederzijde informatie voor twee gegevensverzamelingen. Hierdoor is een analyse van de sleutelfactor tussen een veld een mogelijke driver mogelijk. Wederzijde informatie is een maat voor de relatie tussen de gegevensverzamelingen en is geaggregeerd voor (x,y)-waardeparen, herhaald op de dimensies van het diagram. Wederzijdse informatie wordt gemeten tussen 0 en 1 en kan worden weergegeven als een percentielwaarde. MutualInfo wordt gedefinieerd door selecties of door een set-uitdrukking.

MutualInfo maakt verschillende soorten van MI-analyse mogelijk:

* Paarsgewijze MI: bereken de MI tussen een driverveld en een doelveld.

* Driveranalyse op waarde: de MI wordt berekend tussen individuele veldwaarden in de driver- en veldwaarden.

* Functieselectie: gebruik MutualInfo in een rasterdiagram zodat een matrix ontstaat waarin alle velden met elkaar worden vergeleken op basis van de MI.

MutualInfo geeft niet noodzakelijk een causaliteit aan tussen velden die wederzijde informatie bevatten. Twee velden kunnen wederzijdse informatie bevatten, maar zijn mogelijk geen gelijkwaardige drivers. Bij het vergelijken van de verkoop van ijs en de buitentemperatuur toont MutualInfo bijvoorbeeld dat er wederzijdse informatie aanwezig is. Het geeft niet aan of de buitentemperatuur invloed heeft op de verkoop van ijs, wat aannemelijk is, of dat de verkoop van ijs invloed heeft op de buitentemperatuur, wat onwaarschijnlijk is.

Bij het berekenen van wederzijde informatie hebben koppelingen invloed op de overeenkomst tussen de frequentie van waarden van velden die afkomstig zijn uit verschillende tabellen.

De geretourneerde waarden voor dezelfde velden of selecties kunnen licht van elkaar afwijken. Dit komt doordat de oproep van MutualInfo wordt uitgevoerd voor willekeurig geselecteerde voorbeeldgegevens en de inherente willekeur van het MutualInfo-algoritme.

MutualInfo kan worden toegepast op de functie Aggr().

Syntaxis:

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

Retourgegevenstypen: numeriek

Argumenten:

Argumenten

| Argument | Beschrijving |
| --- | --- |
| field1, field2 | De uitdrukkingen of velden die de twee voorbeeldsets bevatten waarvoor de wederzijde informatie moet worden gemeten. |
| datatype | De gegevenstypen in het doel en de driver,<br><br>1 of 'dd' voor discreet:discreet<br><br>2 of 'cc' voor doorlopend:doorlopend<br><br>3 of 'cd' voor doorlopend:discreet<br><br>4 of 'dc' voor discreet:doorlopend<br><br>Gegevenstypen zijn niet hoofdlettergevoelig. |
| breakdownbyvalue | Een statische waarde die overeenkomt met de waarde in de driver. Indien opgegeven, wordt met de berekening de MI-bijdrage voor die waarde berekend. U kunt ValueList() of ValueLoop() gebruiken. Als Null() is toegevoegd, wordt met de berekening de totale MI berekend voor alle waarden in de driver.<br><br>Uitsplitsing naar waarde vereist dat de driver discrete gegevens bevat. |
| samplesize | Het aantal waarden van het doel en de driver in de steekproef. De steekproef vindt willekeurig plaats. MutualInfo vereist een minimale steekproefgrootte van 80. Standaard bemonstert MutualInfo tot 10.000 gegevensparen, aangezien MutualInfo zwaar en tijdrovend kan zijn. U kunt een groter aantal gegevensparen in de steekproef specificeren. Als er bij MutualInfo een time-out optreedt, maak dan de grootte van de steekproef kleiner. |
| SetExpression | De aggregatiefunctie aggregeert standaard over de set mogelijke records die wordt gedefinieerd door de selectie. Met de uitdrukking Set-analyse kunt u een alternatieve set records definiëren. |
| DISTINCT | Als het woord DISTINCT voor de argumenten van de functie wordt geplaatst, worden duplicaten die het resultaat zijn van de evaluatie van de argumenten van de functie genegeerd. |
| TOTAL | Als het woord TOTAL voor de functieargumenten staat, wordt de berekening gemaakt op basis van alle mogelijke waarden bij de huidige selecties, en niet alleen de selecties die betrekking hebben op de huidige dimensiewaarde. Dit betekent dat de dimensies van het diagram worden genegeerd.<br><br>Wanneer u TOTAL [&lt;fld {.fld}&gt;] gebruikt en de TOTAL-kwalificatie wordt gevolgd door een lijst van één of meer veldnamen als subset van de dimensievariabelen van het diagram, maakt u een subset van de totale mogelijke waarden.<br><br>[Het aggregatiebereik definiëren](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Beperkingen:

Als een of beide delen van een gegevenspaar tekstwaarden, NULL-waarden of ontbrekende waarden bevatten, wordt het hele gegevenspaar genegeerd.

Voorbeelden en resultaten:

Voeg het voorbeeldscript toe aan uw applicatie en voer het uit. Om het resultaat te zien, voegt u de velden die in de resultatenkolom staan toe aan een werkblad in uw applicatie.

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Voor een tabel die de dimensie `Employee name` en de meting `mutualinfo(Age, Salary, 1)` bevat, is 0.99820986 het resultaat. Het resultaat wordt alleen weergegeven voor de cel met totalen. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Als u een filtervak maakt met de dimensie Gender en van hieruit selecties uitvoert, ziet u het resultaat 0.99805677 als Female is geselecteerd en 0.99847373 als Male is geselecteerd. Dit komt doordat bij de selectie alle resultaten die niet tot de andere waarde van Gender behoren worden uitgesloten. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Als u een willekeurige waarde in Gender kiest, verandert deze in 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Dit vindt onafhankelijk van selecties plaats. De set-uitdrukking {1} negeert alle selecties en dimensies. |

Gegevens die worden gebruikt in voorbeelden:

`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 '|');`

Gerelateerde leermiddelen:

* [Hoe evalueer ik relaties met behulp van wederzijdse informatie?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)

## Meer informatie

* [Hoe evalueer ik relaties met behulp van wederzijdse informatie?](https://help.qlik.com/lnk/How_evaluate_relationships_using_Mutual_information)