Ir para conteúdo principal

MutualInfo - função de gráfico

MutualInfo calculates the mutual information (MI) between two fields or between aggregated values in 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().

Syntax:  

MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])

Return data type: numérico

Arguments:  

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.

Definindo o escopo de agregação

Limitations:  

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.

Examples and results:  

Adicione o script de exemplo ao seu aplicativo e execute-o. Em seguida, adicione os campos listados na coluna de resultados a uma pasta para ver o resultado.

Exemplos de funções
Exemplo Resultado
mutualinfo(Age, Salary, 1)

Para uma tabela incluindo a dimensão Employee name e a medida mutualinfo(Age, Salary, 1), o resultado é 0,99820986. O resultado é exibido apenas para a célula de totais.

mutualinfo(TOTAL Age, Salary, 1, null(), 81)

0.99823109.

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|50Beat 5|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 '|');