Python 코드로 구현해보는 기초 통계 2. Variation, Standard Deviation

2022. 2. 21.공부/Python

728x90

 집합 평균 같으면 각 집합이 가진 원소의 값도 같을까? 아니다. 아래와 같이 각기 다른 원소를 가진 아래의 벡터 A와 B는 mean과 median이 5로 동일하다. 이렇게 평균과 중위수는 집합을 대표할 순 있지만 이 숫자만으로 집합의 다양성을 설명할 수는 없으므로 이를 보완하기 위해 분산(variation)이라는 개념이 존재한다.

 

(좌) A = {5,5,5,5,5} (우) B = {1,3,5,7,9} 

 

분산은 흩어진 정도, 즉 다양성의 정도를 나타내는데, 이 분산이라는 것을 파악하기 위하여 범위, 편차, 분산, 표준편차 개념이 있다.. :) 더 깊게 들어가면 공분산, 백분위수 등등..이 있지만 오늘은 일단 범위, 편차, 분산, 표준 편차를 보는 것으로.

 

  • Range : 범위, 데이터 가장 값과 가장 작은 값의 차이 (but 분산도를 표현하는데에는 한계를 가짐)
  • Deviation : 편차, 각 원소값이 평균에서 떨어진 정도. 편차의 절대값이 크면 값은 평균에서 멀리 떨어져있음을 의미한다.

 

* 분산 (Variation) 

The variance of a sample measures the average difference between each value in a sample and the mean of that sample.

 

분산은 수식 계산을 할 때 편하게 하려고 도입된 개념이다. 값으로부터 평균을  편차를 제곱한 수를 모두 더하여 사례 수로 나눈 값 -> 곧, 편차의 제곱합을 평균낸 값으로(+- 관계없이 숫자간 거리만 취한 계산을 하기 위해서) 다시 평균적으로 어느 정도의 편차가 있는 것인지 알기 위하여 여기에 제곱근을 취해야하는데, 이 값이 바로 다음에 설명할 표준편차다.

 

import statistics as stat
def print_value(str, name, num):
print str % (name, num)

height = [150, 163, 145, 140, 157, 151, 140, 149]

str = "The %s of the list is %.2f"
print_value(str, "variance", stat.variance(height))

 

 

* 표준 편차 (Standard deviation) 

The standard deviation, sd, of a sample is calculated by taking the square root of the variance of the sample
import statistics as stat
def print_value(str, name, num):
print str % (name, num)

height = [150, 163, 145, 140, 157, 151, 140, 149]

str = "The %s of the list is %.2f"
print_value(str, "Standard Deviation", stat.stdev(height))

 

표준편차는 분산의 단위를 원래 자료의 단위에 맞게 전환해서 평균적으로 어느 정도의 편차가 있는 것인지 알기 위하여 구하는 값이다. 편차의 평균이 아니라 표준! 사실 제대로된 평균 편차를 구한다면 개별 자료의 편차값들을 절대값으로 바꾸고 모두 더해 평균을 내는 방법이 있으나 수식 계산을 적은 비용으로 빠르게 하기 위하여 분산과 표준 편차 값을 구하여 '평균적으로 어느정도의 편차가 있는가?'를 알아낸다.