본문 바로가기
Data·AI/R 데이터분석

R. 연속형 변수 특성 요약과 시각화(비율형)

by hyun-am 2020. 8. 24.

비율형 척도 변수컬럼 특성 파악하기

 

비율형 척도 (ratio) 중에서 지출경비(expense)변수를 선정하여 지출경비 수치들이 가진 중심성, 변동성, 정규성 분포 특성을 파악합니다.

 

먼저 expense 컬럼을 뽑아내서 어떤 데이터인지 파악하겠습니다.

library(Hmisc)
Hmisc::describe(cnt$expense)

이제 산술평균, 중앙값, 최빈값을 파악하겠습니다.

 

1. 산술평균

mean(cnt$expense)
mean(cnt$expense, na.rm = TRUE)
mean(cnt$expense, na.rm = TRUE, trim = 0.3)

여기서 trim = 0.3을 적용한 mean을 보면 다른 값들에 비해서 현저히 낮은 것을 확인할 수가 있습니다. 이것은 평균에 비해서 극값이 있다는 사실을 파악할 수 있습니다.

 

2. 중앙값 확인하기

median(cnt$expense)

값은 1015.68이 출력됩니다.

 

3. 최빈값 출력하기

 

먼저 최빈값을 구하기 위해 expense컬럼으로 된 값을 테이블로 볼 수 있는 변수로 만들겠습니다.

expense_freq <- table(cnt$expense)
expense_freq

그러면 다음과 같이 값들이 오름 차순으로 된 것을 확인할 수 있습니다.

 

이제 sort함수를 통해 이것을 내림차순으로 변경하겠습니다.

sort(expense_freq, decreasing = TRUE)

그러면 이런식으로 내림차순으로 변경된 것을 확인할 수 있습니다. 그러면 어떤 값이 최빈값인지 확인할 수 있습니다.

아니면 which.max함수를 통해 어느값이 최빈값인지 확인할 수 있습니다.

names(which.max(expense_freq))

값은 1000이 나오는 것을 확인할 수 있습니다.

 

4. 분산, 표준편차, 범위, (최대,최소) 확인하기

 

분산

var(cnt$expense)
var(cnt$expense, na.rm = TRUE)

분산 값이 엄청 크게 나타난 것을 확인할 수 있습니다. 이말은 데이터가 엄청 다양하게 분포되어 있음을 확인할 수 있습니다.

 

표준편차

sd(cnt$expense)
sd(cnt$expense, na.rm = TRUE)

마찬가지로 표준편차 값이 크므로 데이터가 다양하게 분포되어 있음을 확인할 수 있습니다.

 

범위

range(cnt$expense)
range(cnt$expense, na.rm = TRUE)

최대/최소

max(cnt$expense)
min(cnt$expense)

5. 왜도와 첨도

 

왜도

skewness(cnt$expense)
skewness(cnt$expense, na.rm = TRUE)

값들이 양수로 되어 있으므로 중앙값을 기준으로 좌측으로 밀집됨을 확인할 수 있습니다.

 

첨도

kurtosis(cnt$expense)
kurtosis(cnt$expense, na.rm = TRUE)

첨도값이 큰값으로 되어 있으므로 중앙 값으로 엄청 뾰족할수도 있다는 것을 예상할 수 있습니다.

 

이제 시각화를 통해 예상한 것들이 맞는지 확인하겠습니다.

 

⭐️ 비율형 척도 변수컬럼 시각화하기

 

먼저 간단한 플로팅 후 가이드 라인과 같이 표현하겠습니다.

plot(cnt$expense, type = "p", 
     pch = 21, bg = "green")

# abline()을 이용한 가이드라인(안내선)을 그리기
abline(h = seq(from = 1, 
               to = 13000000, 
               by = 1000000), 
       col = "gray", lty = 2)
abline(v = seq(from = 1000, 
               to = 14000, 
               by = 1000), 
       col = "gray", lty = 2)

값이 다음과 같이 나온것을 확인할 수 있습니다.

 

다음은 히스토그램을 그려서 파악해보겠습니다.

par(mfrow=c(2, 2))

hist(cnt$expense, main="hist(), Frequency 옵션")
hist(cnt$expense, probability=TRUE,
     main="hist(), Probabilty 옵션")
plot(density(cnt$expense), main="density() 확률밀도 옵션")

hist(cnt$expense, probability=TRUE,
     main="hist() 히스토그램과 density() 확률밀도함수 통합")
lines(density(cnt$expense))

 


이 자료는 https://www.youtube.com/channel/UChPuesN49tcqQqYRQHrLCuw를 참조하여 작성하였습니다.

 

 

K-ICT 빅데이터센터

판교 K-ICT 빅데이터센터 공식 유튜브 채널입니다.

www.youtube.com

 

댓글