1절. 데이터 변경 및 요약2
데이터 마트
데이터 웨어하우스와 사용자 사이의 중간층에 위치한 것
데이터 마스 내 대부분의 데이터는 데이터 웨어하우스로부터 복제되지만, 자체적으로 수집될 수도 있다.
요약변수와 파생변수
요약변수 | 파생변수 | |
정의 | 수집된 정보를 분석에 맞게 종합한 변수로 데이터 마트에서 가장 기본적인 변수 많은 모델이 공통으로 사용할 수 있어 재활용성이 높음 |
사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수 매우 주관적일 수 있어서 논리적 타당성을 갖출 필요가 있다. |
예시 | 기간별 구매 금액, 횟수/ 단어 빈도/ 상품별 구매 순서 등 | 주 구매 매장/ 주 활동지역/ 시즌 선호 고객/ 라이프 스타일/ 선호하는 가격대 등 |
1절. 데이터 변경 및 요약2
reshape 패키지
melt(data, id= . . .) : id에 정한 변수를 기준으로 데이터 구조를 변경함
cast(data, fomula= . . . , [func= . . . ]) : 데이터를 fomula에 있는 형태로 변환하고 func 적용
fomula의 형태 : 행변수(고정) ~ 열변수(변경) , 여러개 변수는 +로 묶음
1절. 데이터 변경 및 요약3
sqldf 패키지
R에서 sql명령어를 사용하게 해주는 패키지
사용법 : sqldf('sqld 문자열')
사용예시 : head([df]) > sqldf("select * from [df] limit 6")
subset([df], [col] %in% c("BF","HF")) > sqld("select * from [df] where [col] in ('BF','HF')")
merge([df1],[df2]) > sqld("select * from [df1],[df2]")
plyr 패키지
"어쩌구ply"형태의 함수들을 제공하는 패키지
앞의 알파벳이 입력, 뒤의 알파벳이 출력을 의미
array | data frame | list | nothing | |
array | aaply | adply | alply | a_ply |
data frame | daply | ddply | dlply | d_ply |
list | laply | ldply | llply | l_ply |
n replicates | raply | rdply | rlply | r_ply |
function arguments |
maply | mdply | mlply | m_ply |
data.table
기존의 data.frame 보다 월등히 빠른 속도
특정 column을 key 값으로 색인을 지정한 후 데이터를 처리
2~3절
변수의 구간화
신용평가모형, 고객 세분화 등의 시스템으로 모형을 적용하기 위해서 각 변수를 구간화 하여 점수를 적용하는 방식이 필요
보통 10진수 단위로 구간화하고, 구간을 5개로 나누는 것이 보통이며, 7개 이상의 구간은 잘 만들지 않는다.
변수 구간화의 방법
binning | 연속형 변수를 범주형 범수로 변환하기 위해 50개 이하의 구간에 동일한 수의 데이터를 할당하여 의미를 파악하면서 구간을 축소 하는 방법 |
의사결정나무 | 모형을 통해 연속형 변수를 범주형 변수로 변환하는 방법 |
결측값 처리
결측값? 데이터가 존재하지 않음!
표현방식 : NA, . , 9999999999, Unknown, Not Answer 등으로 표현
결측값을 처리하는 방법
1) 단순 대치법
- completes analysis : 결측값이 있는 레코드 삭제
- 평균 대치법 : 데이터의 평균으로 대치
비조건부 평균 대치법 : 관측 데이터의 평균으로 대치
조건부 평균 대치법 : 회귀분석을 통해 데이터를 대치
-단순확률 대치법 : 평균대치법에서 추정량 표준 오차의 과소 추정 문제를 보완한 방법으로 Hot-deck방법, nearest Neighbor 방법 등이 있다
2) 다중 대치법 : 단순 대치법을 m번 실시하여, m개의 가상적 자료를 만들어 대치하는 방법
3절. 기초 분석 및 데이터 관리
R의 결측값 처리 관련 함수
complet.cases() | 데이터내 레코드에 결측값이 있으면 False, 없으면 True 반환 |
is.na() | 결측값이 NA인지의 여부를 T/F로 반환 |
DMwR패키지 : centrallmputation() |
NA의 값을 가운데 값으로 대치 |
DMwR패키지 : knnlmputation() |
NA의 값을 k최근 이웃 분류 알고리즘을 사용하여 대치 |
Amelia 패키지 : amelia() |
여러 국가에서 매년 측정된자료 활용 |
이상값 처리
이상값? 의도하지 않은 현상으로 입력된 값 or 의도된 극단값 -> 이용 가능
잘못입력한 값 or 의도하지 않은 현상으로 입력되었으나 분석목적에 맞지않음 -> 제거
어떤게 이상값인가?
ESD : 평균으로부터 3표준편차 떨어진 값
이상값을 처리하는 방법
절단(trimming) : 이상값이 포함된 레코드 삭제
조정(winsorizing) : 이상값을 상한 또는 하한 값으로 조정
References
2021 ADsP 데이터 분석 준전문가, 윤종식 저
https://www.youtube.com/c/EduAtoZPython/videos
EduAtoZ - Programming
An extreme programming education channel
www.youtube.com
'Data analysis > ADsP' 카테고리의 다른 글
[ADsP][3과목] 4장. 기초 통계 분석 (0) | 2021.08.21 |
---|---|
[ADsP][3과목] 4장. 통계분석의 이해 (0) | 2021.08.21 |
[ADsP][3과목] 1,2장. 데이터 분석 개요, R프로그래밍 기초 (0) | 2021.08.20 |
[ADsP][2과목] 2장. 분석 마스터 플랜 (0) | 2021.08.20 |
[ADsP][2과목] 1장. 데이터 분석 기획의 이해(2) (0) | 2021.08.20 |