1. 평균
평균은 이론적으로 무게 중심을 이야기 하며, 데이터들을 가장잘 설명할 수 있는 값이라고 생각한다.
우리가 잘 알고있듯이 데이터들(값들)이 있을때, 모든 값을 더한 다음 데이터 양(n)을 나누어 계산한다.
평균의 영어표기법 mean을 따라 m의 그리스문자 $\mu$(모집단에서 주로사용) 혹은 $\bar{x}$(표본)로 표기한다.
$$\bar{x} = \frac{1}{n}\sum_{i=1}^{n}{i}$$
평균을 파이썬으로 구현
x = [1,2,3,4,5,6,7,8,9,10]
x_bar1 = sum(x) / len(x)
summ = 0
for i in range(len(x)):
summ += x[i]
x_bar2 = summ / len(x)
print(x_bar1, x_bar2)
2. 표준편차
표준편차는 편차(기준에서 벗어난 정도)의 표준(기준)이다.
다시말해 데이터들은 일정한 기준(대표적으로 평균)이 있고, 모두 같은 값이 아니라면 기준으로부터 일정 수준 떨어져 있게된다.(편차)
이때, 각 데이터들의 편차를 대표하는 값이 표준편차이다.
보통 표준편차의 영문표기 Standard Deviation을 따서
$std$ 혹은 $s$(표본-sample일때 주로 사용) $\sigma$(모집단-population일때 주로 사용)로 표현한다.
$$std = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}({x_{i}-\bar{x}})}$$
혹은
$$std = \sqrt{\frac{1}{n}\sum_{i=1}^{n}({x_{i}-\bar{x}})}$$
이렇게 두가지로 표현된다. n이 커졌을때, n-1과 n의 차이는 무의미 해지지만, 일반적으로 n-1이 많이 사용된다.
표준편차도 파이썬으로 구현해보자
import numpy as np
X = [1,2,3,4,5,6,7,8,9,10]
xbar = sum(X)/ len(X)
std1 = np.std(X,ddof = 1)
summ = 0
for i in range(len(X)):
summ += (X[i] - xbar) * (X[i] - xbar)
std2 = np.sqrt(summ/(len(X)-1))
print(std1,std2)
numpy.std를 통해 한문장으로 구현한것과, for루프를 통해 sum을 수행하여 구현할 수 있다.
이때, numpy.std의 ddof 는 n에서 몇을 뺀 값으로 나눌 것인가를 의미한다
(기본값 = 0, ddof =1은 (n-1)로 나눌 것을 의미함
또한, 각 값에서 평균값의 차를 제곱할때, **를 사용하지 않은 이유는 **도 결국 함수사용이기 때문에 단순 곱셈으로 묶어주는것이 연산속도가 빠르다고 배웠기 때문이다. 타자 칠 시간 많은 댛핟생
$$ \sum_{i=1}^{n}{x} = n\bar{x},\ \ \ n\bar{x} = \frac{1}{n}\sum_{i=1}^{n}{x}$$
또한, 위 성질을 이용해서 sum식을 풀어내면,
$$ \sum_{i=1}^{n}({x_{i}-\bar{x}}^{2}) = \sum_{i=1}^{n}(x_{i}^{2} -2\cdot \bar{x}x_{i} + \bar{x}^{2})$$
$$ = \sum({x_{i}}^{2}) - 2\bar{x}\cdot n\bar{x} + n\bar{x}^{2}$$
$$ = \sum({x_{i}}^{2}) - n\bar{x}^{2}$$
가 되고 이는 다시
$$std = \sqrt{\frac{1}{n-1}[\sum({x_{i}^{2}}) - n \bar{x}^{2}]}$$
으로 표현된다
'Study > 수학과통계' 카테고리의 다른 글
시계열 데이터 Time Series Data (0) | 2020.11.01 |
---|---|
선형회귀분석 Linear Regression , SSE, OLS (0) | 2020.10.23 |
Two sample t - test (0) | 2020.10.21 |
p-value와 t분포 (0) | 2020.10.19 |
통계적추론 ~ 귀무가설 (0) | 2020.10.16 |