Saltar al contenido principal

MutualInfo - función de gráfico

MutualInfo calcula la información mutua (IM) entre dos campos o entre los valores agregados en Aggr().

MutualInfo devuelve la información mutua agregada de dos conjuntos de datos. Esto permite el análisis de controladores clave entre un campo y un controlador potencial. La información mutua mide la relación entre los 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 y se puede formatear como un valor de percentil. MutualInfo se define mediante selecciones o mediante una expresión de conjunto.

MutualInfo permite diferentes tipos de análisis de IM:

  • IM pareada: Calcula la IM entre un campo controlador y un campo destino.

  • Desglose del controlador por valor: La información mutua IM se calcula entre los valores individuales de los campos en el controlador y los campos de destino.

  • Selección de características: Use MutualInfo en un gráfico de cuadrícula para crear una matriz en la que todos los campos se comparen entre sí en función de la IM.

MutualInfo no necesariamente indica causalidad entre campos que comparten información mutua. Dos campos pueden compartir información mutua, pero pueden no ser iguales entre sí. Por ejemplo, al comparar las ventas de helados y la temperatura exterior, MutualInfo mostrará información mutua entre los dos. No indicará si es la temperatura exterior lo que impulsa las ventas de helados, lo cual es probable, o si es la venta de helados lo que impulsa la temperatura exterior, lo cual es poco probable.

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 los mismos campos o selecciones 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] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])

Tipo de datos que devuelve: numérico

Argumentos:  

Argumentos
Argumento Descripción
field1, field2 Las expresiones o campos que contienen los dos conjuntos de muestra para los que se ha de medir el coeficiente de información mutua.
datatype

Los tipos de datos que contienen el campo destino y el campo 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 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 calculará la contribución de IM para ese valor. Puede usar ValueList() o ValueLoop(). Si se añade Null(), el cálculo computará el IM general para todos los valores del controlador.

El desglose por valor requiere que el controlador contenga datos discretos.

samplesize

El número de valores para extraer muestras desde el destino y el controlador. Las muestras son aleatorias. MutualInfo requiere un tamaño de muestra mínimo de 80. De forma predeterminada, MutualInfo muestrea hasta 10.000 pares de datos ya que MutualInfo puede consumir demasiados 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 De forma predeterminada, 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 de los argumentos de la función, los duplicados resultantes de evaluar los argumentos de la función se descartan.
TOTAL

Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza sobre todos los valores posibles dadas las selecciones actuales y no solo aquellas que pertenecen al valor dimensional actual, es decir, no tiene en cuenta las dimensiones del gráfico.

Usar TOTAL [<fld {.fld}>], donde al cualificador TOTAL le sigue una lista de uno o más nombres de campo como un subconjunto de las variables de dimensión del gráfico, crea un subconjunto de los valores totales posibles.

Definir el ámbito de agregación

Limitaciones:  

Los valores de texto, valores NULL y los valores perdidos en cualquiera o ambas partes de un par de datos dan como resultado que el par de datos completo no se tenga en cuenta.

Ejemplos y resultados:  

Agregue el script de ejemplo en su app y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja de su app.

Ejemplos de funciones
Ejemplo Resultado
mutualinfo(Age, Salary, 1)

Para una tabla que incluya la dimensión Employee name y la medida mutualinfo(Age, Salary, 1), el resultado es 0.99820986. El resultado solo se muestra para la celda de totales.

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 Female esté seleccionado y 0.99847373 si Male está seleccionado. 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 de 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 '|');