Matplotlib ile İki Değişkenli Normal Dağılımların Gösterimi

Olasılıksal süreçlerde, iş olasılık dağılımlarının gösterimine geldiğinde iki yöntem kullanabiliriz;

  • Sampling, yani dağılımdan veri üretilmesi.
  • Contour ya da heatmap denilen, örnekleme yapmadan gösterim.

Sampling yaklaşımının gösterilmesi diğer yönteme göre daha basittir. Hesaplamaları yaptığımız ortamlarda (scipy, MATLAB vs.) Gauss dağılımına göre rastgele sayı üretme fonksiyonu bulunduğundan, tek yapılacak iş belirli bir örnek sayısı kadar rastgele sayıyı bu dağılımdan üretmek olacaktır.

Elimizde

\[\mu = (4, 4)^T\]


ve

\[\sum = \begin{pmatrix}3 & 0.4 \\ 0.4 & 0.15\end{pmatrix}\]

parametrelerine sahip bir Gauss dağılımı olsun. Örnek sayısı 200 olmak üzere, Sampling yöntemini kullanırsak grafik aşağıdaki gibi olacaktır (kırmızı nokta ortalama noktasını göstermektedir).

sampled

Örnek sayısı arttıkça üstteki grafik gerçek dağılıma daha çok benzeyecektir.

Sampling yöntemi varyansla ilgili bir fikir verse de, grafiği daha anlaşılır yapmak için contour yöntemi kullanılır. Bu yöntem, 3 boyutlu ortamda Gaussian dağılıma tepeden bakmak olarak da tanımlanabilir. Grafiğin renkleri olasılığın değerine göre değişecektir.

direct

Bu grafikte büyük olasılık değerleri siyah renge yakın olarak gösterilmektedir.

Matplotlib'de bu tip grafikleri oluşturmak için, pyplot  içindeki  pcolormesh fonksiyonu kullanılır. Bu fonksiyon, grafik üzerindeki bir dikdörtgenin içerisinde bu işlemi yapar ve yapabilmek için bu dikdörtgenin her bir hücresine denk gelen \(x\), \(y\) ve \(p(x, y)\) değerlerini birer matrix olarak alır. Yukarıdaki grafiği çizen kod parçası aşağıdaki gibidir.

 

Grafiğe verilecek diğer colormap değerleri http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps adresinden görülebilir.