데이터의 대푯값은 데이터를 하나의 특정수로 표현할 수 있다는 점에서 유용합니다.
다만 대푯값만으로 데이터를 접근하기에는 부족합니다.
예를 들어 데이터가 평균 주위에 몰려있는 경우라면,
평균을 대푯값으로 정하여 데이터를 파악할 수 있습니다.
그러나 데이터 평균 주위에는 데이터가 없고,
단순히 최댓값과 최솟값 주위에 데이터가 몰려있고,
이 값들을 단순 평균하여 나온 평균은 그 데이터를 대표한다고 보기 어렵습니다.
그래서 산포도를 활용합니다.
산포도란 개별 관측값들이 대푯값으로부터 흩어진 정도를 보여주며,
대푯값만으로는 부족한 데이터를 보다 잘 이해할 수 있도록 돕습니다.
산포도에는 범위, 사분위범위, 평균편차, 사분편차, 분산, 표준편차 등이 있습니다.
산포도를 통해 서로 다른 데이터들을 비교하는 경우,
단위나 기준이 다르면 비교하기 어렵습니다.
이때 상대적인 산포도인 사분위편차계수, 평균편차계수, 변동계수 등을 활용합니다.
상대적 산포도는 모두 중앙값이나 평균으로 나누어 계수를 구하며,
이를 통해 단위나 기준을 상쇄하므로, 비교가 용이합니다.
변동계수(CV ; Coefficient of Variation)
변동계수는 표준편차를 평균으로 나누어 구합니다.
표준편차는 분산으로부터 나옵니다.
편차는 각각의 데이터에서 평균을 뺀 것을 뜻합니다.
이 편차들을 모두 더하면 합이 0이 되므로, 산포도를 파악하는데 도움이 되지 않습니다.
그래서 각각의 편차를 제곱하여 합한 후 평균을 구하여 분산을 구합니다.
분산은 편차를 제곱한 값이므로, 데이터의 퍼진 정도가 제곱이 되어 있습니다.
이를 원래의 수준으로 되돌리기 위해, 루트를 씌워서 제곱근을 구합니다.
이렇게 구해진 값을 표준편차라고 합니다.
numpy의 std를 활용하여 구합니다.
std는 standard deviation의 약자로 표준편차를 의미합니다.
평균은 모든 값을 더한 후 총 개수로 나누어서 구합니다.
numpy의 mean을 활용하여 구할 수 있습니다.
변동계수는 표준편차를 평균으로 나누어 계산하므로, 다음과 같이 구합니다.
변동계수는 두 개 이상의 데이터들의 상대적인 산포도를 비교하기 위해 사용합니다.
이를 위해 위의 data와 평균이 동일한 데이터를 생성한 후,
변동계수를 구하면 다음과 같습니다.
data에 비해 산포도가 적은 data2의 변동계수를 비교하면,
data의 변동계수는 약 0.45이며, data2의 변동계수는 0.14이므로,
data2의 산포도 정도를 수치로서 명확하게 비교할 수 있습니다.
참고로 별개의 데이터가 아니라 하나의 데이터 안에서 항목 간 비교하는 경우는 다음과 같습니다.
변동계수를 구하기 위해 numpy의 std와 mean을 활용하여 표준편차와 평균을 구합니다.
이를 수식으로 표현하기 위해 lambda를 활용합니다.
lambda 뒤의 x는 x를 변수로 사용하겠다는 뜻이며,
변수를 지정한 후 콜론( : ) 뒤에 수식을 정의합니다.
cv라는 수식이 정의된 후에,
df의 모든 데이터를 cv라는 수식을 적용하여 계산하기 위해 df.apply(cv)를 입력합니다.
입력결과는 위와 동일하며, 두 컬럼간 산포도 수치를 명확하게 비교할 수 있습니다.
'기초통계 > 산포도' 카테고리의 다른 글
[python/파이썬] 산포도로서 평균편차계수 (0) | 2023.01.01 |
---|---|
[python/파이썬] 산포도로서 사분위편차계수 (0) | 2023.01.01 |
[python/파이썬] 산포도로서 분산과 표준편차 (0) | 2023.01.01 |
[python/파이썬] 산포도로서 사분편차 (0) | 2022.12.31 |
[python/파이썬] 산포도로서 평균편차 (0) | 2022.12.30 |
[python/파이썬] 산포도로서 범위 및 사분위범위 (0) | 2022.12.30 |