Vai al contenuto principale

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 dei grafici. 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:  

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.

Definizione dell'ambito di aggregazione

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.

Esempi di funzioni
Esempio Risultato
mutualinfo(Age, Salary, 1)

Per un 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 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 '|');