[비정형 데이터] 03. 어떤 특징을 추출할 수 있을까? - 통계적 특징

2020. 4. 29. 03:08데이터 분석/비정형데이터분석

비정형 데이터의 신호를 분석할 때는 통계적 특징(특질)을 이용하여 변수로 사용하라 수 있습니다. 신호를 처리할 때는 통계 특질, 피크 특질, 주파수 특질 등을 통해 특질을 추출하여 tidy data형태로 만들 수 있는데 이번 포스팅에서는 통계적 특질을 다뤄보고자 합니다.

 

 

기술통계량은 수집된 자료의 대표값이나 변동의 크기 등을 요약하여 특정한 수치로 나타낸 것으로 중심화 경향, 퍼짐 정도, 분포형태와 대칭정도로 나눌 수 있습니다. 

 

중심화 경향은 관찰된 자료가 어느 위치에 집중되어 있는가를 나타내는 것으로 산술평균, 중앙값, 최빈값, 기하평균, 조화평균, 가중평균이 있습니다.

x=c(1,2,3,3,4,5,6)

# 산술평균
mean(x)

# 중앙값
median(x)

# 최빈값
which.max(table(x)) 

# 조화평균
1/mean(1/x) 

# 기하평균
prod(x)^(1/length(x))
  • 산술평균: 변수들의 총합을 변수의 개수 n으로 나눈 값
  • 중앙값: 자료를 크게 순으로 정렬했을 때 가장 중앙에 있는 값으로 이상치에 영향을 받지 않는다는 장점이 있음.
  • 최빈값: 자료에서 가장 빈번하게 나타나는 값
  • 기하평균: n개의 양수가 있을 때 이들 수의 곱의 n제곱근 
  • 조화평균: n개의 양수에 대하여 역수를 취해서 값이 차이를 줄이고 산술평균을 구한 후 다시 역수를 취하여 실제 분포했던 관측치 값들이 중앙에 위치하도록 만든 값. 
  • 가중평균: 갖고 있는 데이터의 중요도가 다를 때 데이터에 중요도를 부여하여 산술평균을 계산한 값.

퍼짐 정도에는 분산, 표준편차, 변이계수, 범위, IQR, 최소값, 최대값, 백분위수가 있습니다

# 분산
var(x)

# 표준편차
sd(x)

# 변이계수
100*sd(x)/mean(x)

# 범위
diff(range(x))

# IQR
IQR(x)

# 최소값
min(x)

# 최대값
max(x)

# 백분위수
quantile(x, probs = c(0.05,0.1,0.9,0.95)) 
 # probs를 설정하지 않으면 최대, 최소, 제1사분위수, 제2사분위수, 제3사분위수가 기본값으로 추출됨.   
  • 분산: 변수의 흩어진 정도를 계산하는 지표 
  • 표준편차: 자료가 평균을 중심으로 얼마나 퍼져있는가?
  • 변이계수: 표준편차를 평균으로 나눈 수치로 측정 단위가 다른 두 값을 비교할 수 있도록 해줌. 계수가 작을수록 평균치 가까이에 분포
  • 범위: 최대값에서 최소값을 뺀 값으로 이상치가 있을 경우 값이 편향될 수 있음. 
  • IQR: 3분위수에서 1분위수를 뺀 값으로 이상치에 민감하지 않음.
  • 최소값: 자료들 중 가장 작은 값
  • 최대값: 자료들 중 가장 큰 값
  • 백분위수

분포형태와 대칭정도는 왜도와 첨도, 분위수가 있습니다. 

# 왜도
skewness(x)

# 첨도
kurtosis(x)

# 분위수 
# 수집된 데이터를 정규분포 분위수와 비교하여 그래프로 나타남.
qqnorm(x) # 정규분포의 QQ-plot을 그리는 함수 
qqline(x) # QQ plot에서 1Q와 3Q를 지나는 선
  • 왜도: 정규분포 대비 분포가 얼마나 치우쳐져 있는가?
    • 좌우대칭형태를 띄는 왜도 점수= 0
    • 오른쪽으로 꼬리가 긴 분포의 왜도 점수> 0 (분포가 왼쪽으로 치우쳐져 있음.)
    • 왼쪽으로 꼬리가 긴 분포의 왜도 점수 < 0   (분포가 오른쪽으로 치우쳐져 있음.)
  • 첨도: 분포가 뾰족한 정도
    • 정규분포의 높이 = 0
    • 정규분포의 높이보다 높음 > 0 
    • 정규분포의 높이보다 낮음 < 0
  • 분위수

위 3가지 특성들은 모두 다른 것을 나타내기 때문에 모두 고려하여 특질을 추출해내는 것이 좋습니다. 특질 추출 전 summary와 그래프를 통해 탐색하는 것도 방법입니다.

 

추가적으로 신호데이터를 다룰 때는 신호의 크기를 나타내는 통계량인 RMS(평균제곱근)와 데이터의 수까지 고려한 신호의 크기인 RSS(평균합제곱근)도 사용합니다.

 

RMS 수식
RSS 수식

# 신호를 다룰 때 사용하는 패키지 
library(seewave) 

t = seq(0,1,0.1)

x= cos(2*pi*t)
plot(t,x,'l')

y = rms(x)

# RMS에 데이터의 수까지 고려한 것 = RSS
rss = function(x) rms(x)*length(x)

지금까지 기술통계량을 이용하여 신호의 특질을 뽑아내는 방법을 알아보았습니다. 다음 포스팅에서는 급격하게 변하는 시점에 대한 특징을 이용하여 분석하는 방법을 알아보겠습니다.

 

해당 글은 순천향대학교 빅데이터공학과 우지영 교수님의 강의를 바탕으로 정리된 내용으로 모든 자료의 출처는 우지영 교수님의 수업자료에 있음을 알려드립니다.

 

 

728x90