Variance and Standard Deviation:
Measure of Dispersion
Measure of Central Tendency, 즉 현재 sampel의 representation인 mean을 통해
해당 sample의 모든 cases를 하나의 값으로 표현하는 경우,
해당 representation이 sample의 각각의 cases를 얼마나 잘 기술하는지는
해당 sample이 얼마나 중앙에 몰려있는지에 따라 결정됨.
- 중앙에 몰려 있을수록 representation으로 mean의 의미가 커짐.
- 만약 각 cases가 퍼져있는(spread, dispersion) 경우엔, mean으로 각각의 case를 예측하는 것이 쉽지 않음.
때문에 sample에서 값의 분포(distribution)를 나타낼 때, 각각의 case가 중앙에서 얼마나 퍼져 있는지를 나타내는 metric이 필요함.
해당 metrics가 variance와 standard deviation임.
1. Population Variance (모분산) and Standard Deviation (표준편차)
1.1. Population Variance, $\sigma^2$ (전집분산, 전집변량)
Population Variance 는
population(모집합)에서 평균으로부터 모든 편차(deviation)의 제곱의 합(sum of square)을
모든 case의 수 $N$으로 나눈 것.
데이터가 평균값에서 얼마나 떨어져있는지를 나타내는 지표.
단위가 sample point와 다름 (squared 처리가 된 터라…)
정의를 그대로 식으로 나타내면 다음과 같음.
$$V(X)=\sigma^2_X=\frac{\sum_{i=1}^N(x_i-\mu)^2}{N}$$
의미를 식으로 나타내면 다음과 같음: $E(~)$는 estimation을 의미.
$$\sigma^2(X)=E\left[\left(X-E[X]\right)^2\right]$$
- 위의 식으로 보통 계산에 사용되는 공식을 다음과 같이 유도할 수 있음.
$$\begin{aligned}V(X)&=E[(X-E[X])^2]\\&=E[X^2-2XE[X]+E[X]^2]\\&=E[X^2]-2E[X]E[X]+E[X]^2\\&=E[X^2]-E[X]^2\end{aligned}$$
다음은 Python으로 variance를 구하는 코드를 보여줌.
import numpy as np
a = np.random.randint(100, size=10)
print('X:',a)
print('V[X]=', np.round(np.var(a),6))
print('E[X^2]-E[X]^2=',np.round(np.mean(a**2)-(np.mean(a))**2,6))
1.2. Population standard deviation, $\sigma$ (전집표준편차)
variance가 제곱을 기반으로 계산되어 값의 크기가 커지는 부분을 수정한 것.
데이터가 평균값에서 실제 scale 의 관점에서 얼마나 떨어져 있는지를 나타냄.
단위가 sample point(or variable) 와 같음 ← 일상적으로 주로 쓰임.
수식은 다음과 같음.
$$
\sigma(x) = \sqrt{V(x)}
$$
이를 구하는 Python code는 다음과 같음.
import numpy as np
a = np.array([1,2,3,2,1])
var = np.var(a, ddof=0)
std = np.std(a, ddof=0)
2. Sample Variance and Standard Deviation
sample에서 variance ($s^2$)와 standard deviation( $s$)를 구할 때
일반적으로 population에서 구하는 위의 방식 그대로 사용할 경우,
underestimation이 발생하기 쉬움.
underestimation
: 보다 작은 값으로 예측하는 bias.
때문에 population에서는 모든 element의 수인 $N$으로 나누는 것과 달리,
$n$개의 samples로부터 variance와 standard deviation을 구할 경우 $(n-1)$로 나누어줌.
이같은 Sample variance를
불편분산 (unbiased variance)이라고도 함.
수식은 다음과 같음.
$$
s^2_X=\frac{\sum_{i=1}^n (X-\bar{X})^2}{n-1} \
s_X=\sqrt{s^2_X}=\sqrt{\frac{\sum_{i=1}^n (X-\bar{X})^2}{n-1}}
$$
sample variance 와 sample std를 구하는 Python code 는 다음과 같음.
import numpy as np
a = np.array([1,2,3,2,1,3,2])
s_var = np.var(a, ddof=1)
s_std = np.std(a, ddof=1)
variance 를 계산할 때에는 반드시 mean 을 먼저 계산하게 됨.
mean 을 알고 나면, 원래 data 중의 한 값을 잃어도 정보는 전혀 손실되지 않기 때문에
mean 을 알고 나면 data 중에 어느 한 값은 항상 redundancy 가 된다.
이 경우, Degree of Freedom (dof)는 'sample수-1' 이 되며
위의 Python code에서 ddof는 자유도의 감소된 양으로 1 로 지정한 이유임.
- mean 을 계산할 때에는 dof: number of samples
- variance 를 계산할 때 dof: number of samples - 1
sample의 수가 클 경우,
sample variance나 population variance의 차이는 거의 없음.
https://blog.naver.com/mykepzzang/220850395100
3. Coefficient of Variation (변동계수)
standard deviation를 mean으로 normalization한 척도로 단위가 %임.
다양한 평균 또는 scale의 데이터 간의 퍼진 정도(dispersion)을 비교하는데 사용됨.
$$\text{CV}=\frac{\sigma}{\mu} \times 100\%$$
4. Deviation (편차)
mean
을 원점으로 간주했을 때 각 관측값들의 상대적인 위치를 '편차(deviation)' 라고 함.
- '관측값-평균' 으로 정의.
5. Mean Absolute Deviation
아쉽게도 deviation의 합은 항상 '0' 이 되기 때문에 deviation 의 absolute를 취하거나 제곱을 한 후 더해야 함.
Deviation 에 absolute 를 취한 값들의 평균이 'mean absolute deviation' 임.
absolute (절대값) 을 사용하기 때문에,
계산이 쉽지않고 미분이 안되는 점 등의 이유로
실제 자료 분석에는 많이 쓰이지 않는 편임.
6. Mean Squared Deviation
Deviation을 제곱한 값들의 평균이 mean squared deviation
임.
Mean Squared Deviation도
Variance 에 비해서는 많이 사용되지는 않음.
7. Range (범위?)
sample이나 population에서 최대값과 최소값의 차이를 range라고 함.
- dispersion을 측정하는 가장 기본적인 statistics (통계치)이나,
앞의 variance나 standard deviation에 비해선 중요도가 낮다. - 알 수 있는 정보가 너무나 단편적임.
해당 sample이나 population에 속하는 variable이 가질 수 있는 값의 범위를 의미함.
python의
range
함수는
일종의 값의 범위를 주면
해당하는 수들의 집합을 반환한다.
def stat_range(sample):
return max(sample) - min(sample)
8. Display Variance(or dispersion)! : Boxplot and Violinplot
8.1. Boxplot
- Quartile location (4분위점):
- The location of the quartile(4분위수) in an ordered series.
- Inter-Quartile Range (IQR, 4분위 범위)
- 3rd quatile (75%) - 1st quatile (25%) 임.
- Whisker (수염) :
- 3rd quatile에서 IQR의 1.5배를 더한 범위 내에서 속하는 값들 중 가장 큰 값까지 Upper whisker를 그림.
- 1st quatile에서 ICQ의 1.5배를 뺀 범위 내에서 속하는 값들 중 가장 작은 값까지 Lower whisker를 그림.
8.2. Violin Plot
- boxplot의 box(27%, 75%위치)를 대신하여
- kernel density estimation을 대신 사용하여 그림.
- 보다 알기 쉬운 편이나 가장 근래에 사용되기 시작한 plot임.S$S
같이 읽어보면 좋은 자료들
2024.05.02 - [분류 전체보기] - [Math] Example: Measures of Dispersion
'... > Math' 카테고리의 다른 글
[Math] Dependent & Independent (확률에서) (0) | 2024.04.17 |
---|---|
[Math] Probability 란: Probability, Odds, Likelihood (0) | 2024.04.17 |
[Math] Continuous 와 Differentiable 의 관계 (0) | 2024.03.27 |
[Math] Derivatives of Exponential and Logarithmic Functions (0) | 2024.02.28 |
[Math] Limits of Log and Exponential Functions (0) | 2024.02.28 |