# MutualInfo - diagramfunctie

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

MutualInfo maakt verschillende soorten MI-analyse mogelijk:

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

* Uitsplitsing van driver op waarde: De MI wordt berekend tussen individuele veldwaarden in de driver- en doelvelden.

* Functies selecteren: Gebruik MutualInfo in een rasterdiagram om een matrix te maken waarin alle velden met elkaar worden vergeleken op basis van een MI.

MutualInfo retourneert de geaggregeerde wederzijdse informatie voor twee gegevensverzamelingen. Wederzijdse 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. MutualInfo wordt gedefinieerd door de selectie of de set-uitdrukking.

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

Geretourneerde waarden voor hetzelfde doel en dezelfde driver kunnen licht verschillen. Dit komt doordat elke oproep voor MutualInfo wordt uitgevoerd voor een willekeurig geselecteerd voorbeeld en door de inherente willekeur van het algoritme MutualInfo.

MutualInfo kan worden toegepast op de Aggr()-functie.

Syntaxis:

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])

Retourgegevenstypen: numeriek

Argumenten:

Argumenten

| Argument | Beschrijving |
| --- | --- |
| target, driver | De uitdrukkingen of velden die de twee voorbeeldsets bevatten waarvoor de wederzijdse informatie moet worden gemeten. |
| datatype | De gegevenstypen die zich in het doel en de driver bevinden,<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 overeenkomst met een waarde in de driver. Indien opgegeven, zal de berekening de MI-bijdrage voor die waarde berekenen. U kunt ValueList() of ValueLoop() gebruiken. Als Null() is toegevoegd, zal de berekening de algemene MI voor alle waarden in de driver berekenen.<br><br>Voor het uitsplitsen van waarden moet de driver discrete gegevens bevatten. |
| samplesize | Het aantal waarden van het doel en de driver waaruit een steekproef wordt genomen. Het nemen van de steekproef vindt willekeurig plaats. Voor MutualInfo is een minimale steekproefgrootte van 80 vereist. Standaard neemt MutualInfo een steekproef van maximaal 10.000 gegevensparen aangezien MutualInfo bronintensief kan zijn. U kunt grotere aantallen gegevensparen in de steekproefgrootte opgeven. Als voor MutualInfo een time-out optreedt, moet u de steekproefgrootte verkleinen. |
| 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 vóór 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 de grafiek worden genegeerd. Na de kwalificatie TOTAL kan een lijst met een of meer veldnamen tussen punthaken &lt;fld&gt; worden opgegeven. Deze veldnamen moeten een subset zijn van de dimensievariabelen van de grafiek.<br><br>[Het aggregatiebereik definiëren](https://help.qlik.com/nl-NL/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/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 app en voer het uit. Voeg vervolgens de velden die in de resultatenkolom staan aan een werkblad in uw app toe om het resultaat te bekijken.

Functievoorbeelden

| Voorbeeld | Resultaat |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Voor een tabel met de dimensie `Employee name` en de meting `mutualinfo(Age, Salary, 1)` is het resultaat 0.99820986. 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 daarin selecties maakt, ziet u het resultaat 0.99805677 als Female is geselecteerd en 0.99847373 als Male is geselecteerd. Dit komt doordat de selectie alle resultaten uitsluit die niet behoren tot de andere waarde van Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. Als u een waarde van Gender selecteert, wijzigt deze in 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Dit is onafhankelijk van selecties. 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 '|');`