728x90
반응형
R로 데이터 분석을 진행할 때는 기본적으로 데이터에 대한 진단을 진행해야 합니다.
데이터 진단의 방법은 아래와 같습니다.
1. 데이터 확인하기
데이터는 기본적으로 연속형 데이터거나 범주형 데이터입니다.
dlookr 패키지의 diagnose 계열 함수들을 활용하면, 데이터에 대한 진단값을 확인해볼 수 있습니다.
dlookr 패키지의 활용 방안은 아래와 같습니다.
1. 데이터 진단(EDA 차원)
2. 결측치 확인
3. 수치형 데이터에 대해 좀 더 명확히 파악하기
4. 범주형 데이터에 대해 좀 더 명확히 파악하기
5. 아웃라이어에 대해 명확히 파악하기
6. 기술통계량 확인하기
7. 상관관계표 생성하기
#패키지 불러오기
library(dlookr)
library(tidyverse)
# 데이터 진단하기
# 데이터에 포함된 모든 변수의 타입, 결측값, 고유값을 확인할 수 있는 함수
dlookr::diagnose(데이터)
#결측치가 적은 경우 : 직접 결측치 데이터 확인
which(is.na(데이터$컬럼))
# 수치형 데이터에 대해 좀 더 확실하게 파악하기
# zero/minus/이상치/Q1/Q3
dlookr::diagnose_numeric(데이터)
# 범주형 데이터에 대해 좀 더 확실하게 파악하기
# 각 집단별로, 전체 변수의 수/집단별 수/비율/순위
dlookr::diagnose_category(데이터)
# 이상치 데이터에 대해 좀 더 확실하게 파악하기
# 전체평균(with_mean)과 이상치 제외 평균(without_mean)의 차이가 큰 변수 확인하기
dlookr::diagnose_outier(데이터)
# 기술통계량 확인하기
dlookr::describe()
# 정규성 검정
dlookr::normality()
# 상관관계 확인
dlookr::correlate()
# 상관관계 표 생성하기
데이터 %>%
+ na.omit() %>%
+ purrr::keep(is.numeric) %>%
+ cor()
이러한 과정을 거치고 나면, 데이터에 대해 기본적인 사항을 확인할 수 있습니다.
그 이후에는 필요에 따라 데이터에 전처리를 해주어야 합니다.
NA를 대체해준다거나, 아웃라이어를 처리해준다거나 하는 등 데이터를 분석의 목적에 맞추어 처리해주어야 합니다.
# dlookr 패키지에도 impute_na 함수가 존재하나, 활용법 추가 공부 필요
# NA에 대해 처리하기
# NA 없애고 진행하기
df <- df[complete.cases(df), ]
# 연속형 변수 NA imputation
# 1) mean, median, mode로 대체하기
# 아래와 같이 진행하거나 단순 ifelse문을 활용하여 전처리 가능
데이터[which(is.na(데이터$컬럼)),]$컬럼 <- mean(데이터$컬럼 , na.rm = T)
# 2) 머신러닝 방법론 사용하기 (knn, rpart, mice으로 imputation이 가능하나, 우선 아래 예시는 knn)
# knn 방법론으로 대체
Imputed_data <- knnImputation(데이터,k=10) #KNN 대체법 실시
# 이외의 imputation 방법이 필요하면 mice 패키지 확인해보기
# 범주형 변수 NA imputation
# 1) mode로 대체하기 -> 연속형 변수와 동일하게 ifelse문 사용
# 2) 머신러닝 방법론 활용하기(rpart, mice)
# 시드 설정을 해주어야 함
데이터 <- imputate_na(데이터 , na 존재 컬럼 , 예측에 활용할 컬럼, method = "mice", seed = 999)
# 아웃라이어 대체하기
# 아웃라이어의 정의는 (1Q - 1.5 IQR) ~ (3Q + 1.5 IQR) 범위를 벗어나는 값들임
# 이때 IQR은 (3Q - 1Q)
# 이에 대해서는 아예 제거를 하고 가는 case와 아웃라이어를 대체하는 방법이 있음.
boxplot(데이터$컬럼)$stats # 아웃라이어 값 확인 가능
# 이후 ifelse()문을 통해 데이터 대체
이 정도를 진행하고 나면 데이터에 대한 기본적인 파악을 끝내고, 이제 개별적인 방법론에 맞추어 분석을 진행하면 됩니다.
728x90
반응형
'Business Analytics > R로 기본내용 공부하기' 카테고리의 다른 글
머신러닝 알고리즘 공부하기 (1) - R을 통한 knn(K nearest neighbor) (0) | 2021.01.05 |
---|---|
데이터를 얻을 수 있는 장소 (0) | 2020.12.28 |
R로 기본적인 데이터 분석하기(1) - 데이터 불러오기 (0) | 2020.12.27 |
R 시작하기: R 설치하기 (0) | 2020.12.26 |
우리는 왜 R을 배워야 할까? (0) | 2020.12.25 |
댓글