MutualInfo - função de gráfico
MutualInfo calcula as informações mútuas (MI) entre dois campos ou entre valores agregados em Aggr().
MutualInfo retorna as informações mútuas agregadas para dois conjuntos de dados. Isso permite a análise do determinante principal entre um campo e um determinante potencial. Informações mútuas medem o relacionamento entre os conjuntos de dados e é agregada para valores de pares (x, y) iterados nas dimensões do gráfico. Informações mútuas são medidas entre 0 e 1 e podem ser formatadas como um valor de percentil. MutualInfo é definido por seleções ou por uma expressão de conjunto.
MutualInfo permite diferentes tipos de análise de MI:
-
MI em pares: Calcule a MI entre um campo de determinante e um campo de meta.
-
Discriminação de determinantes por valor: A MI é calculada entre valores de campo individuais nos campos de determinante e de meta.
-
Seleção de recursos: Use MutualInfo em um gráfico de grade para criar uma matriz na qual todos os campos são comparados entre si com base na MI.
MutualInfo não indica necessariamente causalidade entre campos que compartilham informações mútuas. Dois campos podem compartilhar informações mútuas, mas podem não ser determinantes iguais um para o outro. Por exemplo, ao comparar as vendas de sorvetes e a temperatura externa, MutualInfo mostrará informações mútuas entre os dois. Porém, não indicará se é a temperatura externa que impulsiona as vendas de sorvetes, o que é provável, ou se são as vendas de sorvete que impulsionam a temperatura externa, o que é improvável.
Ao calcular informações mútuas, as associações afetam a correspondência entre e a frequência de valores de campos que são de tabelas diferentes.
Os valores retornados para os mesmos campos ou seleções podem variar um pouco. Isso acontece porque cada chamada MutualInfo opera em uma amostra selecionada aleatoriamente e devido à aleatoriedade inerente do algoritmo MutualInfo.
MutualInfo pode ser aplicado à função Aggr().
Sintaxe:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])
Tipo de dados de retorno: numérico
Argumentos:
Argumento | Descrição |
---|---|
field1, field2 | As expressões ou campos que contêm os dois conjuntos de amostras para os quais as informações mútuas devem ser medidas. |
datatype |
Os tipos de dados contidos na meta e no determinante, 1 ou 'dd' para discretos:discretos 2 ou 'cc' para contínuos:contínuos 3 ou 'cd' para contínuos:discretos 4 ou 'dc' para discretos:contínuos Tipos de dados não diferenciam maiúsculas de minúsculas. |
breakdownbyvalue |
Um valor estático correspondente a um valor no determinante. Se fornecido, o cálculo será aplicado à contribuição de MI para esse valor. Você pode usar ValueList() ou ValueLoop(). Se Null() for adicionado, o cálculo será aplicado à MI em geral para todos os valores no determinante. A divisão por valor requer que o determinante contenha dados discretos. |
samplesize |
O número de valores para obtenção de amostras na meta e no determinante. A amostragem é aleatória. MutualInfo requer um tamanho mínimo de amostra de 80. Por padrão, MutualInfo apenas define amostras de até 10.000 pares de dados, já que MutualInfo pode consumir muitos recursos. Você pode especificar um número maior de pares de dados no tamanho da amostra. Se MutualInfo atingir o tempo limite, reduza o tamanho da amostra. |
SetExpression | Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise. |
DISTINCT | Se a palavra DISTINCT aparecer antes dos argumentos de função, as duplicatas resultantes da avaliação dos argumentos de função serão ignoradas. |
TOTAL |
Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico. Usando TOTAL [<fld {.fld}>], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais. |
Limitações:
Valores de texto, valores NULLe valores ausentes em qualquer uma das duas partes de um par de dados fazem com que o par de dados inteiro seja ignorado.
Exemplos e resultados:
Adicione o script de exemplo ao seu aplicativo e execute-o. Para ver o resultado, adicione os campos listados na coluna de resultados a uma pasta no seu aplicativo.
Exemplo | Resultado |
---|---|
mutualinfo(Age, Salary, 1) |
Para uma tabela incluindo a dimensão |
mutualinfo(TOTAL Age, Salary, 1, null(), 81) |
Se você criar um painel de filtro com a dimensão Gender e fizer seleções nele, verá o resultado 0,99805677 quando Female for selecionado e 0,99847373 se Male for selecionado. Isso ocorre porque a seleção exclui todos os resultados que não pertencem a outro valor de Gender. |
mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35)) |
0.68196996. Selecionar qualquer valor de Gender mudará isso para 0. |
mutualinfo({1} TOTAL Age, Salary, 1, null()) |
0.99820986. Isso é independente das seleções. A expressão de conjunto {1} ignora todas as seleções e dimensões. |
Dados usados nos exemplos:
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 '|');