본문 바로가기
데이터 분석/데이터 전처리

분포 계산

by BLOSSOMED_IN 2021. 2. 8.

분산값과 표준편찻값은 데이터의 분포 정도를 나타냅니다. 대푯값과 함께 이용하면 수치 데이터의 전체적인 경향을 더욱 잘 표현할 수 있습니다.

분산값을 이용할 때는 한 가지 주의할 점이 있습니다. 분산값과 표준편찻값의 계산식에는 '데이터수 - 1'값을 이용해 나누는 부분이 있는데, 이때 데이터의 수가 1이면 0으로 나누어 잘못 괸 값이 나옵니다. 따라서 데이터 수가 1일 때는 다르게 처리해야 합니다. 보통 데이터 수가 1일 때는 데이터의 분포가 전혀 없다는 의미이므로 분산값과 표준편찻값 모두 0으로 처리합시다. 분산값과 표준편찻값은 데이터 분포를 알 수 있는 기본적인 지표지만 데이터 분석의 기초 집계 작업에서 전혀 확인하지 않는 경우가 간혹 있습니다. 항상 분산값과 표준편찻값을 생각하는 습관을 들여야 합니다.

 

R에서 분산값을 구하려면 var() 함수를 표준편차를 구하려면 sd() 함수를 이용합니다. 집약 처리 중 조건에 따라 값을 바꾸기는 어렵습니다. 따라서 오류가 발생한 후 수정하는 방식을 사용해 데이터 수가 한 건일 때의 분산값과 표준편찻값을 0으로 변환합니다.

 

reserve_tb %>%

   group_by(hotel_id) %>%

 

  • var() 함수에 total_price를 지정하여 분산값을 계산한다.
  • sd() 함수에 total_price를 지정하여 표준편찻값을 계산한다.
  • 데이터 수가 한 건이면 NA이므로, coalesce() 함수를 이용하여 NA이면 0으로 치한 한다.

summarise(price_var = coalesce(var(total_price), 0),

               price_std = coalesce(sd(total_price), 0))

 

var() 함수로 분산을 sd() 함수로 표준편차를 계산합니다. 데이터 수가 한 건이면 분산값과 표준편챃값이 NA가 되는데 이것을 피하고자 coalesce() 함수를 이용하여 0으로 변환합니다. coalesce() 함수는 SQL과 마찬가지로 매개변수에 지정된 값 중 NULL이 아닌 값을 반환하는 함수로, 매개변수에 지정된 순서가 앞일수록 우선순위가 높습니다. 또한 replace_na() 함수를 이용하여 분산값과 표준편찻값을 계산한 후 replace_na(list(price_var = 0, price_std = 0)와 같은 형식으로 작성할 수 있습니다.

replace_na() 함수는 NA를 변경할 열 이름과 변경할 값을 조합한 리스트를 매개변수로 전달하여 NA를 지정한 값으로 변환할 수 있습니다. 이외에도 result[is.na(result)] <- 0과 같은 작성 방법도 있습니다. 이 코드는 NA인 값을 모두 호출하여 0으로 변환하는 코드입니다. 단, 상관없는 NA값도 0으로 변환할 수 있기 때문에 주의해야 합니다.

'데이터 분석 > 데이터 전처리' 카테고리의 다른 글

R전처리 - 순위계산  (0) 2021.02.11
R전처리 - 최빈값 계산  (0) 2021.02.09
최댓갓, 최솟값, 데푯값 산출  (0) 2021.02.05
합곗값 계산  (0) 2021.02.04
R, 데이터와 종류의 개수 산출  (0) 2021.02.03

댓글