MutualInfo - 圖表函數
MutualInfo 計算兩個欄位之間或 Aggr() 中的彙總值之間的相互資訊 (MI)。
MutualInfo 啟用各種不同的 MI 分析:
-
逐對 MI:計算驅動因素欄位和目標欄位之間的 MI。
-
依值進行的驅動因素解析:會在驅動因素和目標欄位的個別欄位值之間計算 MI。
-
功能選項:在格線圖中使用 MutualInfo 以建立矩陣,其中所有欄位會根據 MI 互相比較。
MutualInfo 會傳回兩個資料集的彙總的相互資訊。相互資訊是資料集之間關係的量值,並針對圖表維度上反覆運算的 (x,y) 成對值彙總。會在 0 和 1 之間衡量相互資訊。MutualInfo 透過選項或集合運算式定義。
計算相互資訊時,關聯會影響來自不同表格的欄位中值頻率之間的對應。
對於相同目標和驅動因素傳回的值可能稍有不同。這是因為每個 MutualInfo 呼叫以隨機選取的樣本和 MutualInfo 演算法的固有隨機性來操作。
MutualInfo 可套用至 Aggr() 函數。
語法:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] target, driver , datatype [, breakdownbyvalue [, samplesize ]])
傳回的資料類型: 數值
引數:
引數 | 描述 |
---|---|
target, driver | 含有兩個待測量相互資訊之樣本集合的運算式或欄位。 |
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> 括住的一或多個欄位名稱。這些欄位名稱應該是圖表維度變數的子集。 |
限制:
若資料組中有任一資料是 (或兩個都是) 文字值、NULL 值及遺漏失值,會導致整個資料組被忽略。
範例與結果:
新增範例指令碼到您的應用程式中並加以執行。然後將結果資料行中所列的欄位新增至您應用程式中的工作表,以查看結果。
範例 | 結果 |
---|---|
mutualinfo(Age, Salary, 1) |
對於包含維度 |
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 '|');