MutualInfo - 图表函数 | Windows 版 Qlik Sense帮助
跳到主要内容 跳到补充内容

MutualInfo - 图表函数

上次更新日期:2026/7/21

MutualInfo 计算 Aggr() 中两个字段之间或聚合值之间的互信息(MI)。

MutualInfo 返回两个数据集的聚合互信息。这允许在字段和潜在驱动因素之间进行关键驱动因素分析。互信息是数据集之间关系的一种度量,并为在图表维度上迭代的 (x,y) 对值进行聚合。互信息在 0 和 1 之间测量,可以格式化为百分位值。MutualInfo 由选择或集合表达式定义。

MutualInfo 允许不同种类的 MI 分析:

  • 对范围 MI:计算驱动程序字段和目标字段之间的 MI。

  • 驱动因素按值分解:MI 是在驱动因素字段和目标字段中的单个字段值之间计算的。

  • 特性选择:使用网格图中 MutualInfo 的生成一个矩阵,其中所有字段基于 MI 相互比较。

MutualInfo 不一定表示共享互信息的字段之间的因果关系。两个字段可以共享相互的信息,但对彼此来说可能不相等。例如,当比较冰淇淋销量和室外温度时,MutualInfo 会显示两者之间的互信息。它不会指出是室外温度推动冰淇淋销售(这是可能的),还是冰淇淋销售推动室外温度(这是不可能的)。

在计算互信息时,关联会影响来自不同表的字段的值之间的对应关系和频率。

相同字段或选择的返回值可能略有不同。这是由于每次 MutualInfo 调用都是对随机选择的样本进行操作,并且 MutualInfo 算法本身具有随机性。

MutualInfo 可应用于 Aggr() 函数。

语法:  

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

返回数据类型: 数字

参数:  

参数
参数 描述
field1, field2 表达式或字段,其中包含两个要度量交互信息的样本集合。
datatype

数据类型包含在目标和驱动因素中,

1 或 'dd' 用于 discrete:discrete

2 或 'cc' 用于 continuous:continuous

3 或 'cd' 用于 continuous:discrete

4 或 'dc' 用于 discrete:continuous

数据类型不区分大小写。

breakdownbyvalue

与驱动因素中的值相对应的静态值。如果提供,计算将计算该值的 MI 贡献。您可使用 ValueList() 或 ValueLoop()。如果添加了 Null(),则计算将为驱动因素中的所有值计算整个 MI。

按值细分要求驱动因素包含离散数据。

samplesize

要从目标和驱动程序中采样的值的数目。采样是随机的。MutualInfo 需要 80 的最小样本大小。默认设置下,MutualInfo 最多仅可采样 10,000 个数据对,因为 MutualInfo 可以为资源密集型。您可在样本大小中指定更大数目的数据对。如果 MutualInfo 超时,请减小样本大小。

SetExpression 聚合函数会默认聚合选择项定义的可能记录集合。可选记录集合可由集合分析表达式定义。
DISTINCT 如果在函数参数前出现单词 DISTINCT,则将忽略计算该函数参数生成的副本。
TOTAL

如果在函数参数前面出现单词 TOTAL,则计算给出当前选择项的所有可能值,而不只是属于当前维度值的那些值,即它会忽略图表维度。

通过使用 TOTAL [<fld {.fld}>](其中 TOTAL 限定符后跟一个或多个字段名称作为图表维度变量的子集的列表),您可以创建总可能值的子集。

定义聚合范围

限制:  

数据对任意部分或两部分中的文本值,NULL 值和缺失值在整个数据对中忽略不计。

示例和结果:  

将示例脚本添加到您的应用程序并运行它。要查看结果,请将结果列中列出的字段添加到应用程序中的工作表。

函数示例
示例 结果
mutualinfo(Age, Salary, 1)

对于包含维度 Employee name 和度量 mutualinfo(Age, Salary, 1) 的表格,结果为 0.99820986。仅显示合计单元格的结果。

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

如果创建具有维度 Gender 的筛选器窗格,并在其中做出选择,则在选择 Female 时,您将看到结果 0.99805677;在选择 Male 时,您将看到结果 0.99847373。这是因为此选择项排除了不属于 Gender 的其他值的所有结果。

mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35))

0.68196996. 从 Gender 选择任何值将把此更改为 0。

mutualinfo({1} TOTAL Age, Salary, 1, null())

0.99820986. 这与选择项无关。集合表达式 {1} 忽略了所有选择项和维度。

示例中所使用的数据:

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

了解详情

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!