Lovetoken

저는 개발 취향을 가진 데이터 분석가 Jr. 입니다.

Navigation
 » Home
 » About Me
 » Github

변동계수의 개념과 R에서의 실습

14 Jan 2018 » R



변동계수(coefficient of variation, C.V)는 평균이 크게 다른 두개 이상의 집단이 있을때
각 집단의 상대적 동질성을 감안한 산포도의 척도이다.

변동계수에 대한설명을 위하여 아래 예시를 준비했다.

3개의 샘플에 대한 물 용량을 측정한 예시가 있다.
이 3개의 샘플을 두 사람이 측정해 보고했다고 치자.
그런데 측정 단위에 대한 언급이 따로 없어 한사람은 리터 단위로, 한사람은 밀리리터 단위로 조사를 했다.

l <- c(54, 50, 52) # 물 리터단위(L)측정
ml <- c(54017, 49980, 52003) # 물 밀리리터단위(mL)측정
mean(l)
## [1] 52
mean(ml)
## [1] 52000
sd(l)
## [1] 2
sd(ml)
## [1] 2018.502

분명 같은 집단을 두 조사자는 조사했지만 측정단위의 차이로 인해 평균과 표준편차가 확연히 다르므로
이 내막을 모르는 사람에게는, 그리고 샘플의 개수가 인지하기 힘들정도로 많았을 때
두 집단이 다른것으로 대강 판단할 위험이 있다.

리터단위로 측정시 표준편차는 2, 평균은 52로 계산되고
밀리리터단위로 측정시 표준편차와 평균은 리터단위로 계산한 표준편차보다 1000배 정도 높히 계산된다.

여기서 단위의 차이로 생겨버린 이 1000배를 보정하는것이 변동계수의 기능이라고 볼 수 있는데
변동계수는 표준편차를 평균으로 나누는것으로 간단히 계산된다.
결과적으로 단위와 무관하게 계산되어 다른단위로 측정된 자료들의 산포를 비교할때 표준편차보다 유용한 지표가 된다.
이러한 점에서 변동계수를 상대표준편차(relative standard deviation, RSD)라고도 부른다.

sd(l) / mean(l) # 리터단위 측정 샘플에 대한 변동계수
## [1] 0.03846154
sd(ml) / mean(ml) # 밀리리터단위 측정 샘플에 대한 변동계수
## [1] 0.03881734

직접 계산해 보면 거의 비슷한 값으로 계산된다.



other example

어떠한 백분율 값을 측정한 것으로 보이는 두 그룹이 있다.

group1 <- c(86,   85,   92,   89,   83,   90,   88,   91,   79,   83)
group2 <- c(0.88, 0.91, 0.94, 0.84, 0.97, 0.89, 0.99, 0.88, 0.89, 0.96)

group1 은 100을 곱한 백분율의 상태 group2 는 0~1 범위의 백분율 상태이다.
실제로 위와 같은 예는 조사자의 취향에 따라 단위가 통일되지 못하는 사례로 많다.

당연히 이 둘의 데이터 산포도를 측정하고자
표준편차를 구하게 될 때 group1 의 표준편차가 작을것이다.

sd(group1)
## [1] 4.141927
sd(group2)
## [1] 0.04790036

산포도의 공평한 비교가 될 수 없기에
group2 자료에 100을 곱한 후 표준편차를 다시 구하거나
반대로 group1 자료에 100을 나누어 표준편차를 구하게 될 것이다.
하지만 이는 급한마음에 거치는 긁어 부스럼 같은 절차이며
원 데이터를 보존하지 못하는 방법이므로 상황에 따라 위험성이 있을 것이다.
이때 변동계수를 이용하는것이 좋을것이다.

sd(group1) / mean(group1)
## [1] 0.04782825
sd(group2) / mean(group2)
## [1] 0.05235012

변동계수를 구한결과 group2group1 보다 변동계수가 더 컸다.
즉 상대적으로 group2 의 퍼짐정도가 group1 보다 크다는 결론을 낼 수 있다.