MutualInfo - función de gráfico
MutualInfo calcula la información mutua (IM) entre dos campos o entre los valores agregados en Aggr().
MutualInfo permite diferentes tipos de análisis de IM:
-
IM emparejado: Calcule el IM entre un campo de controlador y un campo de destino.
-
Desglose del controlador por valor: La IM se calcula entre los valores de los campos individuales en el controlador y los campos de destino.
-
Selección de funciones: Utilice MutualInfo en un gráfico de cuadrícula para crear una matriz donde todos los campos se comparen entre sí en función de la IM (Información Mutua).
MutualInfo devuelve la información mutua agregada de dos conjuntos de datos. La información mutua es una medida de la relación entre conjuntos de datos y se agrega para valores de pares (x, y) iterados sobre las dimensiones del gráfico. La información mutua se mide entre 0 y 1. MutualInfo viene definida por la selección o la expresión establecida.
Al calcular la información mutua, las asociaciones afectan a la correspondencia y la frecuencia de los valores de los campos que son de diferentes tablas.
Los valores devueltos para el mismo objetivo y controlador pueden variar ligeramente. Esto se debe a que cada llamada a MutualInfo opera en una muestra seleccionada al azar y a la aleatoriedad inherente del algoritmo MutualInfo.
MutualInfo se puede aplicar a la función Aggr().
Sintaxis:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])
Tipo de datos que devuelve: numérico
Argumentos:
Argumento | Descripción |
---|---|
target, driver | Las expresiones o campos que contienen los dos conjuntos de muestra para los que se ha de medir la información mutua. |
datatype |
Los tipos de datos contenidos en el objetivo y el controlador, 1 o 'dd' para discreto:discreto 2 o 'cc' para continuo:continuo 3 o 'cd' para continuo:discreto 4 o 'dc' para discreto:continuo Los tipos de datos no distinguen entre mayúsculas y minúsculas. |
breakdownbyvalue |
Un valor estático que corresponde a un valor en el controlador. Si se proporciona, el cálculo estimará la contribución de IM para ese valor. Puede usar ValueList() o ValueLoop(). Si se añade Null(), el cálculo calculará la IM general para todos los valores del controlador. El desglose por valores requiere que el controlador contenga datos discretos. |
samplesize |
El número de valores que se han de muestrear desde el objetivo y el controlador. El muestreo es aleatorio. MutualInfo requiere un tamaño de muestra mínimo de 80. De forma predeterminada, MutualInfo solo muestrea hasta 10.000 pares de datos como MutualInfo, ya que puede requerir muchos recursos. Puede especificar un número mayor de pares de datos en el tamaño de la muestra. Si se agota el tiempo de espera de MutualInfo reduzca el tamaño de la muestra. |
SetExpression | Por defecto, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. Se puede definir un conjunto alternativo de registros mediante una expresión de análisis de conjuntos. |
DISTINCT | Si la palabra DISTINCT aparece antes que los argumentos de la función, se descartarán los duplicados resultantes de evaluar los argumentos de la función. |
TOTAL |
Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza con todos los valores posibles dadas las selecciones actuales, y no solo con los que pertenecen al valor dimensional actual, es decir, ignora las dimensiones del gráfico. El cualificador TOTAL puede ir seguido de una lista con uno o más nombres de campo entre paréntesis angulares <fld>. Estos nombres de campo deberían ser un subgrupo de las variables de dimensión del gráfico. |
Limitaciones:
Los valores de texto, valores NULL y valores perdidos en una o ambas partes de un par de datos harán que se descarte el par de datos completo.
Ejemplos y resultados:
Añada el script de ejemplo a su app y ejecútelo. A continuación, añada como mínimo los campos de la columna de resultados a una hoja de su documento para ver el resultado.
Ejemplo | Resultado |
---|---|
mutualinfo(Age, Salary, 1) |
Para una tabla que incluya la dimensión |
mutualinfo(TOTAL Age, Salary, 1, null(), 81) |
Si crea un panel de filtrado con la dimensión Gender y realiza selecciones desde el mismo, verá el resultado 0,99805677 cuando se seleccione Female y 0,99847373 si se selecciona Male. Esto se debe a que la selección excluye todos los resultados que no pertenecen al otro valor de Gender. |
mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35)) |
0.68196996. Seleccionar cualquier valor desde Gender cambiará esto a 0. |
mutualinfo({1} TOTAL Age, Salary, 1, null()) |
0.99820986. Esto es independiente de las selecciones. La expresión de conjunto {1} ignora todas las selecciones y dimensiones. |
Datos utilizados en los ejemplos:
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 '|');