MutualInfo - grafik fonksiyonu
MutualInfo, iki alan arasındaki veya Aggr() içindeki toplu değerler arasındaki karşılıklı bilgileri (MI) hesaplar.
MutualInfo, iki veri kümesi için toplanmış karşılıklı bilgileri döndürür. Bu, bir alan ile potansiyel bir sürücü arasında temel sürücü analizine olanak tanır. Karşılıklı bilgi, veri kümeleri arasındaki ilişkiyi hesaplar ve grafik boyutları üzerinde yinelenen (x,y) çift değerleri için toplanır. Karşılıklı bilgiler 0 ile 1 arasında hesaplanır ve yüzdebirlik değer olarak biçimlendirilebilir. MutualInfo ya seçimlerle ya da bir küme ifadesi ile tanımlanır.
MutualInfo farklı türden MI analizlerine izin verir:
-
İkili MI: Sürücü alanı ile hedef alan arasındaki MI'yı hesaplayın.
-
Değere göre sürücü kırılımı: MI, sürücü ve hedef alanlarındaki bireysel alan değerleri arasında hesaplanır.
-
Özellik seçimi: Tüm alanların MI'ye göre birbiriyle karşılaştırıldığı bir matris oluşturmak için ızgara grafikte MutualInfo kullanın.
MutualInfo mutlaka karşılıklı bilgi paylaşan alanlar arasında nedensellik göstermez. İki alan karşılıklı bilgi paylaşabilir, ancak birbirleri için eşit sürücü olmayabilir. Örneğin, dondurma satışları ile dışarıdaki hava sıcaklığını karşılaştırırken, MutualInfo ikisi arasında karşılıklı bilgi gösterecektir. Dondurma satışlarını artıranın dış hava sıcaklığı mı olduğunu (bu mümkündür), dış hava sıcaklığını artıranın dondurma satışları mı olduğunu (bu mümkün değildir) göstermez.
Karşılıklı bilgi hesaplanırken, ilişkilendirmeler, farklı tablolardan gelen alanlardaki değerlerin sıklığını ve aralarındaki ilişkiyi etkiler.
Aynı alanlar veya seçimler için döndürülen değerler biraz farklılık gösterebilir. Bunun nedeni, her MutualInfo çağrısının rastgele seçilmiş bir örnek üzerinde çalışması ve MutualInfo algoritmasının doğal rastgeleliğidir.
MutualInfo, Aggr() fonksiyonuna uygulanabilir.
Söz Dizimi:
MutualInfo({SetExpression}] [DISTINCT] [TOTAL] field1, field2 , datatype [, breakdownbyvalue [, samplesize ]])
Dönüş verileri türü: sayısal
Bağımsız Değişkenler:
Bağımsız Değişken | Açıklama |
---|---|
field1, field2 | Karşılıklı bilgilerin hesaplanacağı iki örnek kümeyi içeren ifadeler veya alanlar. |
datatype |
Hedef ve sürücüdeki veri türleri, 1 veya discrete:discrete için 'dd' 2 veya continuous:continuous için 'cc' 3 veya continuous:discrete için 'cd' 4 veya discrete:continuous için 'dc' Veri türleri küçük/büyük harfe duyarlı değildir. |
breakdownbyvalue |
Sürücüdeki bir değere karşılık gelen statik değer. Sağlanmışsa, hesaplama bu değer için MI katkısını hesaplayacaktır. ValueList() veya ValueLoop() kullanabilirsiniz. Null() eklenirse, hesaplama sürücüdeki tüm değerler için genel MI değerini hesaplayacaktır. Değere göre döküm, sürücünün ayrık veriler içermesini gerektirir. |
samplesize |
Hedef ve sürücüden örnek oluşturulacak değerlerin sayısı. Örnek oluşturma rastgeledir. MutualInfo örnek boyutunun en az 80 olmasını gerektirir. MutualInfo kaynakları yoğun şekilde kullanabileceği için MutualInfo varsayılan olarak sadece 10.000 diziye kadar örnekleme yapar. Örnek boyutunda, daha fazla sayıda veri çifti belirtebilirsiniz. MutualInfo zaman aşımına uğrarsa örnek boyutunu azaltın. |
SetExpression | Toplama işlevi, varsayılan olarak, seçim tarafından tanımlanmış olası kayıtlar kümesi üzerinden toplanır. Bir set analizi ifadesi ile alternatif bir kayıt kümesi tanımlanabilir. |
DISTINCT | Fonksiyon bağımsız değişkenlerinden önce DISTINCT sözcüğü varsa fonksiyon bağımsız değişkenlerinin değerlendirilmesinden kaynaklanan çoğaltmalar göz ardı edilir. |
TOTAL |
TOTAL sözcüğü, fonksiyon bağımsız değişkenlerinden önce gelirse, hesaplama yalnızca geçerli boyutsal değere ait olanlar için değil, geçerli seçimlerde verilen tüm olası değerler üzerinden yapılır; yani grafik boyutlarını göz ardı eder. TOTAL niteleyicisinden sonra grafik boyut değişkenlerinin bir alt kümesi olarak bir veya daha çok alan adının geldiği TOTAL [<fld {.fld}>] niteleyicisini kullanarak toplam olası değerlerin bir alt kümesini oluşturursunuz. |
Sınırlamalar:
Bir veri çiftinin herhangi bir veya her iki parçasındaki metin değerleri, NULL değerler ve eksik değerler, veri çiftinin tamamının göz ardı edilmesine neden olur.
Örnekler ve sonuçlar:
Örnek kodu uygulamanıza ekleyin ve çalıştırın. Sonucu görmek için, sonuçlar sütununda listelenen alanları uygulamanızda bir sayfaya ekleyin.
Örnek | Sonuç |
---|---|
mutualinfo(Age, Salary, 1) |
|
mutualinfo(TOTAL Age, Salary, 1, null(), 81) |
Gender boyutuyla bir filtre bölmesi oluşturursanız ve bundan seçimler yaparsanız, Female seçildiğinde 0,99805677, Male seçildiğinde 0,99847373 sonucunu görürsünüz. Bunun nedeni, seçimin diğer Gender değerine ait olmayan tüm sonuçları hariç tutmasıdır. |
mutualinfo(TOTAL Age, Gender, 1, ValueLoop(25,35)) |
0.68196996. Gender üzerinde herhangi bir değer seçmek, bunu 0 olarak değiştirecektir. |
mutualinfo({1} TOTAL Age, Salary, 1, null()) |
0.99820986. Bu, seçimlerden bağımsızdır. Bunun nedeni, {1} küme ifadesinin tüm seçimleri ve boyutları göz ardı etmesidir. |
Örneklerde kullanılan veriler:
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 '|');