# MutualInfo - funzione per grafici

MutualInfo calcola le informazioni reciproche (MI, Mutual Information) tra due campi o tra valori aggregati in Aggr().

MutualInfo abilita vari tipi di analisi MI:

* MI pair-wise: Calcola il valore MI tra un campo driver e un campo di destinazione.

* Scomposizione driver per valore: Il valore MI è calcolato tra i valori dei campi singoli nei campi driver e destinazione.

* Selezione delle funzionalità: Utilizzare MutualInfo in un grafico a griglia per creare una matrice in cui tutti i campi vengono confrontati l'un l'altro in base al valore MI.

MutualInfo restituisce le informazioni reciproche aggregate per le due serie di dati. Le informazioni reciproche rappresentano una misura della relazione tra le serie di dati e vengono aggregate per i valori di coppia (x,y) ripetuti sulle dimensioni dei grafici. Le informazioni reciproche vengono misurate tra 0 e 1. MutualInfo viene definito dalla selezione o dall'espressione set.

Al momento di calcolare le informazioni reciproche, le associazioni influiscono sulla corrispondenza tra e la frequenza di valori dai campi provenienti da tabelle diverse.

I valori restituiti per lo stesso target e il driver possono variare leggermente. Ciò è dovuto al fatto che ciascuna chiamata MutualInfo opera su un campione selezionato casualmente e sulla casualità inerente dell'algoritmo MutualInfo.

MutualInfo è applicabile alla funzione Aggr().

Sintassi:

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

Tipo di dati restituiti: numerico

Argomenti:

Argomenti:

| Argomento | Descrizione |
| --- | --- |
| target, driver | Le espressioni o i campi contenenti i due gruppi campione per i quali devono essere misurate le informazioni reciproche. |
| datatype | I tipi di dati contenuti nel target e nel driver,<br><br>1 o 'dd' per discrete:discrete<br><br>2 o 'cc' per continuous:continuous<br><br>3 o 'cd' per continuous:discrete<br><br>4 o 'dc' per discrete:continuous<br><br>I tipi di dati non fanno distinzione tra maiuscole e minuscole. |
| breakdownbyvalue | Un valore statico corrispondente a un valore nel driver. Se fornito, il calcolo calcolerà il contributo MI per tale valore. È possibile utilizzare ValueList() o ValueLoop(). Se viene aggiunto Null(), il calcolo calcolerà il valore MI complessivo per tutti i valori nel driver.<br><br>La scomposizione del valore richiede che il driver contenga dati discreti. |
| samplesize | Il numero di valori da campionare dal target e dal driver. Il campionamento è casuale. MutualInfo richiede una dimensione minima del campione di 80. Per impostazione predefinita, MutualInfo campiona solo fino a 10.000 coppie di dati, considerando che MutualInfo può avere un consumo intenso di risorse. È possibile specificare numeri superiori di coppie di dati nelle dimensioni del campione. Se MutualInfo dovesse scadere, ridurre le dimensioni del campione. |
| SetExpression | Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis. |
| DISTINCT | Se la parola DISTINCT è riportata prima degli argomenti della funzione, i duplicati risultanti dalla valutazione degli argomenti della funzione vengono ignorati. |
| TOTAL | Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni attuali, e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Il qualificatore TOTAL può essere seguito da un elenco di uno o più nomi di campo tra parentesi angolari &lt;fld&gt;. Questi nomi di campo devono essere un sottogruppo delle variabili di dimensione del grafico.<br><br>[Definizione dell'ambito di aggregazione](https://help.qlik.com/it-IT/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm) |

Limiti:

Se una o entrambe le parti di una coppia di dati includono valori di testo, valori NULL e valori mancanti, l'intera coppia di dati verrà ignorata.

Esempi e risultati:

Aggiungere lo script di esempio all'app ed eseguirlo. Aggiungere quindi i campi elencati nella colonna dei risultati a un foglio nella propria app per vedere il risultato.

Esempi di funzione

| Esempio | Risultato |
| --- | --- |
| `mutualinfo(Age, Salary, 1)` | Per una tabella che include la dimensione `Employee name` e la misura `mutualinfo(Age, Salary, 1)`, il risultato è 0.99820986. Il risultato viene visualizzato solo per la cella dei totali. |
| `mutualinfo(TOTAL Age, Salary, 1, null(), 81)` | Se si crea una casella di filtro con la dimensione Gender e si realizzano selezioni da essa, si visualizzerà il risultato 0.99805677 quando viene selezionato Female e 0.99847373 se viene selezionato Male. Ciò si verifica perché la selezione esclude tutti i risultati che non appartengono all'altro valore di Gender. |
| `mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))` | 0.68196996. La selezione di qualsiasi valore da Gender lo cambierà in 0. |
| `mutualinfo({1} TOTAL Age, Salary, 1, null())` | 0.99820986. Ciò risulta indipendente dalle selezioni. L'espressione set {1} ignora tutte le selezioni e le dimensioni. |

Dati utilizzati negli esempi:

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