Varyans, Standart Sapma & Python Uygulaması

Asli Cerman
Machine Learning Turkiye
3 min readAug 8, 2021

Birbiriyle yakından ilişkili bu iki istatistiksel ölçüm, verilerimizin yayılımı veya dağılımı hakkında bir fikir edinmemizi sağlamaktadır.

Standart sapma, veri değerlerinin ortalamadan ne kadar uzak olduğunun ölçüsüdür. Bir anakütle için standart sapma σ ile ifade edilir; örneklem verileri için standart sapma için ise s veya s’ ile gösterilir.

Standart sapma bize dağılımın yaygınlığı hakkında bilgi verir. Buna göre standart sapma değeri küçük olduğunda veriler ortalamaya yakındır; büyüdükçe veriler ortalamadan uzaklaşır.

Standart sapmanın büyüklüğü verilerimizin yüksek düzeyde değişkenliğe sahip olduğunu gösterir. Dolayısıyla dağılım homojen değildir ve veri setindeki gözlemler arasındaki fark yüksektir.

Standart sapmanın sıfır olması ise tüm verilerin eşit olduğu anlamına gelir.

Varyans ise standart sapmanın karesidir ve σ² notasyonu ile gösterilir. Buna göre standart sapma varyansın kareköküdür. Kare alma işlemi ile birlikte varyans hesaplanırken ortalamaya uzak olan değerlere daha fazla ağırlık vermiş oluyoruz. Ancak varyans hesabı ile elde edilen değer, veri setindeki birim ile karşılaştırılabilir olmaktan çıkar. Örneğin veri birimi kg ise çıkan sonuç kg² olacaktır. Dolayısıyla varyansın karekökü alınarak ortalamadan sapma birimi tekrar veri setine ait birime çevrilmiş olur.

Varyans ve standart sapma veri setinde ortalama üzerinden karar veremeyeceğimiz durumlarda bize yardımcı olur. Örneğin aşağıdaki iki histogramda 1000 kişilik 2 farklı öğrenci grubuna yapılan aynı testin sonuçlarına ait puan dağılımları gösterilmektedir. Frequency ile herbir puanı kaç öğrencinin aldığı gösterilmektedir. İki grubun ortalaması da 10 olmasına rağmen dağılımlar birbirinden çok farklıdır.

Birinci grafikte puanların normal dağıldığını görüyoruz. İkinci grafkte ise puanların yoğun olarak belli bir aralıkta kümelendiğini görüyoruz. Bu şekilde tepeli simetrik dağılımların yaygınlığını tanımlamakta varyans ve standart sapma büyük önem taşır.

Standart sapması 3 olan ilk gruba ait grafikte artı /eksi 2 standart sapma uzaklıkta öğrencilerin, yaklaşık olarak %95'inin 4 ile 16 arasında puan almış olduğunu görüyoruz. İkinci grafikte ise standart sapma 1.5 değerindedir. Bu durumda artı/eksi 2 standart sapma uzaklıkta puan almış öğrencilerin yaklaşık olarak %95'inin 7 ile 13 arasında puan almış olduğunu görüyoruz.

Bu iki grup ile ilgili yorum yapmak ya da bir karar vermek istediğimizde ortalama değer, bize öğrencilerin puanlarının bu ortalama etrafında nasıl dağıldığına dair bir fikir vermeyecektir. Ancak standart sapma değeri bize ortalama değeri 10 olan bu iki grup için yorum yapma ve karar almada kolaylık sağlar. Standart sapma değeri daha küçük olan için ikinci grup puanları birbirine daha yakındır. Bu durumda şöyle bir yorumda bulunabiliriz: ikinci grubun başarısı grupta yer alan kişileri büyük oranda yansıtmaktadır. Dolayısıyla herkes ortalamaya yakın notlar almıştır ve ortalama değer grubun başarısını yansıtmaktadır.

İlk grubun ise standart sapması daha büyüktür. Gruptaki kişilerden bazıları ortalamayı yükseltirken diğerleri düşürmektedir. Bu sebeple grubun puan ortalaması gruptaki kişilerin tamanının başarılı olduğunu göstermez.

Standart Sapma ve Varyansın hesaplanması

Bu formüle göre varyans, ortalamaya göre düzeltilmiş değerlerin karelerinin toplamının (Kareler Toplamı/ Sum of Squares)gözlem sayısına bölünmesi ile hesaplanır.

Aşağıdaki gibi bir datasetimiz olduğunu varsayalım. Varyansı bulmak için öncelikle ortalamayı bulmamız gerekiyor.

x = [4, 8, 9, 6, 5, 2]

(4+8+9+6+5+2) / 6 = 5.6

Ardından kareler toplamını (Sum of Squares) hesaplamamız gerekiyor.

(4−5.6)²+(8−5.6)²+(9−5.6)²+(6−5.6)²+(5−5.6)²+(2−5.6)² = 33.6

Varyansı bulmak için, bu sonucu aşağıdaki gibi gözlemlerin sayısına bölmemiz yeterlidir:

33.6 / 6 = 5.5

Python üzerinde aşağıdaki gibi bir fonksiyon ile aynı sonuca ulaşabiliriz. Ya da halihazıda numpy ile de çok basit bir şekilde aynı sonuca ulaşabiliriz.

from functools import reducedef variance(data):
# Mean of the data
mean = reduce(lambda a, b: a + b, x) / len(x)
ss = 0
for i in data:
#sum of square
ss += (i - mean)**2
return ss / (len(data))
print(variance(x))

Standart sapma ise varyans değerinin karekök alınmış halidir.

Umarım faydalı olur.

Kaynaklar

  • Çok Değişkenli İstatistiksel Yöntemler — Prof. Dr. Reha Alpar

--

--

Asli Cerman
Machine Learning Turkiye

Data Scientist at Tanı Pazarlama ve İletişim Hizmetleri A.Ş.