Mod ve Medyan
Malum, bu aralar YGS’deki hadise nedeniyle ülkenin gündemine iki kavram girdi: mod ve medyan. Ancak “seçenekleri kaydırarak doğru eşleşmeyi bulmaya yarayan yöntem mod-medyan” şeklinde lanse edilen mod ve medyanın seçenek kaydırmayla pek ilgisi yok. Mod ve medyan, istatistik biliminde sıklıkla kullanılan kavramlardan ikisidir…
Peki nedir bu mod ve medyan denen şeyler?
Bir veri dizisi içinde en sık tekrar eden değere “mod” adı verilir. ”Medyan” ise bir veri dizisinin en ortasında yer alan veridir…
Örneğin elimizde şöyle bir veri dizisi olduğunu düşünün:
7, 13, 18, 24, 9, 3, 18
Bu veri dizisinin modu 18′dir. Peki bu değeri nasıl buluyoruz?
Öncelikle yukarıdaki sayıları küçükten büyüğe doğru sıralıyoruz:
3, 7, 9, 13, 18, 18, 24
Gördüğünüz gibi, bu dizide en sık tekrar eden değer 18. Dolayısıyla bu dizinin modu 18′dir diyoruz.
Bir de şu diziye bakalım:
24, 15, 18, 20, 18, 22, 24, 26, 18, 26, 24
Bu dizinin modunu bulmak için öncelikle dizideki sayıları küçükten büyüğe doğru sıralıyoruz:
15, 18, 18, 18, 20, 22, 24, 24, 24, 26, 26
Gördüğünüz gibi, bu dizide en sık tekrar eden iki sayı var. Bunlar 18 ve 24. Bu iki sayı da, dizi içinde 3′er kez geçiyor. Dolayısıyla yukarıdaki dizinin modu 18 ve 24′tür diyoruz. İstatistikte bu duruma çift modlu dağılım adı verilir.
Bir de şu veri dizisine bir göz atalım:
2.7, 8.3, 3.5, 5.1, 4.9
Bunları küçükten büyüğe doğru sıralayalım:
2.7, 3.5, 4.9, 5.1, 8.3
Burada tekrar eden herhangi bir sayı yok. Dolayısıyla bu dizinin bir modu yoktur…
Gelelim medyana…
En başta dediğimiz gibi, medyan bir veri dizisinin en ortasında yer alan veridir…
Örneğin:
12, 3, 5
Bu veri dizisinin medyanı 5′tir. Peki bu değeri nasıl buluyoruz?
Tıpkı mod hesaplamasında olduğu gibi önce sayıları küçükten büyüğe doğru sıralıyoruz:
3, 5, 12
Gördüğünüz gibi, en ortada yer alan sayı 5. Dolayısıyla bu dizinin medyanı 5′tir diyoruz.
Yukarıdaki örnekte 3 adet sayı var. Yani veri dizisinin uzunluğu bir tek sayı. Veri tipinin uzunluğunun tek sayı olduğu durumlarda medyanı bulmak kolaydır. Mesela:
3, 13, 7, 5, 21, 23, 39, 23, 40, 23, 14, 12, 56, 23, 29
Burada toplam 15 sayı var. Bu dizinin en ortasındaki sayıyı bulmak kolay: 23. Demek ki bu veri dizisinin medyanı 23′müş…
Peki ya veri uzunluğunun çift sayı olduğu durumlar?
Bakalım:
3, 13, 7, 5, 21, 23, 23, 40, 23, 14, 12, 56, 23, 29
Burada toplam 14 sayı var. Yani veri tipimizin uzunluğu bir çift sayı. Bu yüzden bu dizinin medyanını bulmak tek sayıdaki kadar kolay değil. Ama aslında tabii zor da değil.
Uzunluğu bir çift sayı olan veri tiplerinde medyanı bulmak için yine öncelikle sayıları küçükten büyüğe doğru sıralıyoruz:
3, 5, 7, 12, 13, 14, 21, 23, 23, 23, 23, 29, 40, 56
Daha sonra, dizinin en ortasında yer alan iki sayıya bakıyoruz. Bu sayılar 21 ve 23.
Ardından, bu iki sayıyı birbiriyle toplayıp, çıkan sayıyı 2′ye bölüyoruz:
(21 + 23) / 2 = 22
Elde ettiğimiz sayı bize dizinin medyanını veriyor. Yani yukarıdaki dizinin medyanı 22′dir diyoruz…
Mod ve medyanı öğrendiğimize göre size şöyle bir soru sormama izin verin:
Bir Python programcısı olarak, mod ve medyanı kol kuvvetiyle bulmaya çalışmak size oldukça verimsiz ve anlamsız bir yol olarak görünmüş olmalı. Peki Python programlama dilini kullanarak mod ve medyanı nasıl hesaplayabiliriz?
Ben kendi yöntemimi yazayım. Siz daha verimli algoritmalar uygulayabilirsiniz. (Bu arada aşağıdaki kodları Python 3 kullanarak yazdım. Yani bu kodlar Python 2 ile çalışmaz):
import collections def mode(lst): sayaç = collections.Counter(lst) değer = sayaç.values() sıklık = sayaç.most_common() mod = [] if not max(değer) == 1: for i in range(list(değer).count(max(değer))): mod.append(sıklık[i][0]) mod = ", ".join(map(str, mod)) return mod if mod else "mod yok!" def median(lst): uzunluk = len(lst) sıralı = sorted(lst) orta = int(uzunluk/2) if uzunluk % 2 == 1: med = sıralı[orta] else: med = (sıralı[orta] + sıralı[orta-1]) / 2 return med if __name__ == "__main__": test1 = [48, 44, 48, 45, 42, 49, 48] test2 = [9, 3, 3, 44, 17 , 17, 44, 15, 15, 15, 27, 40, 8] test3 = [34, 43, 81, 106, 106, 115] test4 = [13, 18, 13, 14, 13, 16, 14, 21, 13] test5 = [1, 2, 4, 7] test6 = [8, 9, 10, 10, 10, 11, 11, 11, 12, 13] t = [test1, test2, test3, test4, test5, test6] a = 0 while a < len(t): for i in t: a += 1 print("\nTEST%s"%a) print("dizi : ", i) print("mod : ", mode(i), "\n" "medyan: ", median(i))
Bilginizi ve yukarıdaki betiği sınamak için bunlarla ilgili biraz alıştırma yapmak isteyebilirsiniz. Bunun için şu iki adresi ziyaret edebilirsiniz:
1) http://www.mathgoodies.com/lessons/vol8/mode.html
2) http://www.mathopolis.com/questions/quiz.php
Benim verdiğim ya da kendi yazdığınız mod-medyan hesaplama betiğini yukarıdaki adreslerde yer alan alıştırmalara uygulayın. Bakın bakalım betiğiniz mod-medyanı düzgün hesaplayabiliyor mu?
[NOT]: Yukarıdaki örneklerde yer alan veri dizileri aşağıdaki adreslerden alınmıştır
http://www.mathgoodies.com/lessons/vol8/mode.html
Son Yorumlar