跳到主要內容

MutualInfo - 圖表函數

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