MutualInfo - funzione per grafici
MutualInfo calcola le informazioni reciproche (MI, Mutual Information) tra due campi o tra valori aggregati in Aggr().
MutualInfo restituisce le informazioni reciproche aggregate per due set di dati. Ciò consente un'analisi dei driver chiave tra un campo e un driver potenziale. Le informazioni reciproche misurano il rapporto tra i set di dati e vengono aggregate per i valori di coppia (x,y) ripetuti sulle dimensioni del grafico. Le informazioni reciproche vengono misurate tra 0 e 1 e possono essere formattate come valore percentile. MutualInfo viene definito mediante selezioni o un'espressione set.
MutualInfo consente tipi diversi di analisi MI:
-
MI pairwise: Calcola il valore MI tra un campo driver e un campo target.
-
Scomposizione driver per valore: il valore MI viene calcolato tra i singoli valori di campo nei campi driver e target.
-
Selezione funzionalità: Utilizzare MutualInfo in un grafico a griglia per creare una matrice in cui tutti i campi vengono confrontati l'uno con l'altro in base alle informazioni reciproche (MI).
MutualInfo non indica necessariamente casualità tra i campi che condividono informazioni reciproche. Due campi possono condividere informazioni reciproche, ma potrebbero non essere driver reciprocamente uguali. Ad esempio, al momento di confrontare le vendite di gelati e la temperatura esterna, MutualInfo mostrerà le informazioni reciproche tra i due. Non indicherà se è la temperatura esterna a spingere le vendite di gelati, che rappresenta una motivazione probabile, o se sono le vendite dei gelati a spingere la temperatura esterna, ovvero una motivazione piuttosto improbabile.
Quando si calcolano le informazioni reciproche, le associazioni influiscono sulla corrispondenza tra e la frequenza dei valori dai campi che provengono da tabelle diverse.
I valori restituiti per gli stessi campi o selezioni possono variare leggermente. Ciò è dovuto al fatto che ciascun richiamo MutualInfo opera in base a un campione selezionato in modo casuale e alla casualità intrinseca dell'algoritmo MutualInfo.
MutualInfo può essere applicato alla funzione Aggr().
Sintassi:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])
Tipo di dati restituiti: numerico
Argomenti:
Argomento | Descrizione |
---|---|
field1, field2 | Le espressioni o i campi contenenti i due set di campioni per i quali vengono misurate le informazioni mutue. |
datatype |
I tipi di dati contenuti nel target e nel driver, 1 o 'dd' per discrete:discrete 2 o 'cc' per continuous:continuous 3 o 'cd' per continuous:discrete 4 o 'dc' per discrete:continuous I tipi di dati non fanno distinzioni 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. La scomposizione per 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 di campionamento minima di 80. Per impostazione predefinita, MutualInfo campiona solo fino a 10.000 coppie di dati, dato che MutualInfo può presentare un grosso impatto sulle risorse. È possibile specificare un numero maggiore di coppie dati nelle dimensioni del campione. In caso di esaurimento del tempo a disposizione per MutualInfo, 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 correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Utilizzando TOTAL [<fld {.fld}>], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili. |
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. Per visualizzare il risultato, aggiungere i campi elencati nella colonna risultati a un foglio nell'app dell'utente.
Esempio | Risultato |
---|---|
mutualinfo(Age, Salary, 1) |
Per un tabella che include la dimensione |
mutualinfo(TOTAL Age, Salary, 1, null(), 81) |
Se si crea una casella di filtro con la dimensione Gender e si eseguono selezioni da questa, si otterrà il risultato 0.99805677 quando viene selezionato il valore Female e 0.99847373 quando viene selezionato il valore 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 porterà il risultato a 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 '|');