데이터 기초 통계
head(df)
# 데이터에서 앞 6줄만 보도록 함
head(df, 10)
# 숫자를 넣어주면 원하는 개수만큼 볼 수 있음
str(df)
# 데이터의 구조를 파악할 수 있도록 보여줌
summary(df)
# 데이터의 기초 통계량을 볼 수 있음
cov(df[, 1:4])
# 컬럼 1~4의 공분산을 구해줌
cor(df[, 1:4])
# 컬럼 1~4의 상관계수를 구해줌
결측값 처리
- R에서 결측값 처리 관련 패키지는 Amelia 2, Mice, mistools 등이 있으며, Amelia가 대표적임
- R에서 결측값은 NA(Not available)로 처리함
- 불가능한 값(예를 들면 dividing by zero)는 NaN(Not a Number)으로 처리됨
- is.na(y) : 결측값인지 여부를 보여줌
- 특정값을 결측값으로 입력한 경우, 변환해서 처리할 수 있음
df[df$v1 == 99, "v1"] <= NA
- 평균 산출 등 데이터 처리에서 결측값으로 인한 문제를 해결하는 방법으로는 해당값을 제외하는 방법이 있음
mean(x, na.rm=T)
- 결측값이 포함된 관측치를 complete.cases()함수를 이용해 삭제할 수 있는데, 결측값이 너무 넓게 분포되면 주의해야 함
df[!complete.cases(df)]
- Amelia를 사용하여 결측값을 처리
install.packages("Amelia")
library(Amelia)
amelia(df, m=5, ts="year", cs="country")
# imputation 방식의 결측값 대체
# m은 5개의 imputation 데이터 세트,
# ts는 시계열 정보,
# cs는 cross-sectional 분석에 포함될 정보임
이상값 탐색
- 분석에서 전처리를 어떻게 할지를 결정할 때와 부정사용방지 시스템(Fraud Detection System, FDS)에서 규칙을 발견하는 데 사용할 수 있음
1) 의도하기 않게 잘못 입력한 경우 - Bad Data
2) 의도하지 않게 입력됐으나 분석 목적에 부합되지 않아 제거해야 하는 경우 - Bad Data
3) 의도되지 않은 현상이지만 분석에 포함해야 하는 경우 - 이상값(Outlier)
4) 의도된 이상값 - 이상값(Outlier) & 사기(Fraud)
- 이상값 탐색 관련 알고리즘 : ESD(Extreme Studentized Deviation), MADM
- ESD : 평균으로부터 k*표준편차만큼 떨어져 있는 값들을 이상값으로 판단하고, 일반적으로 k는 3으로 함
- outlier 패키지를 사용하여 이상값일 가능성이 큰 값을 찾아내어 주는 방법도 있음
- outlier(y) : 평균과 가장 차이가 많이 나는 값을 출력
- outlier(y, opposite=TRUE) : 반대편으로 평균과 가장 큰 차이가 있는 값을 알려줌
댓글