데이터 마트(R 심화)
■ 데이터 마트
- 데이터 웨어하우스와 사용자 사이의 중간층에 위치
- CRM 관련 업무 중에서 핵심
■ 변수 : 데이터 웨어하우스로부터 받아오는 데이터를 분석에 적절하게 처리
1) 요약변수
- 수집된 정보를 분석에 맞게 종합한 변수
- 많은 모델이 공통으로 사용될 수 있어 재활용성이 높음
2) 파생변수
- 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수
- 주관적일 수 있으므로 논리적 타당성을 갖추어 개발
- 세분화, 고객행동 예측, 캠페인 반응 예측에 매우 잘 활용됨
■ 패키지
- 패키지 설치 : install.packages(‘패키지이름’)
- 패키지 로드 : library(‘패키지이름’)/library(패키지이름)
1) reshape 패키지
- melt는 철을 녹이는 과정, cast는 모양을 만드는 과정을 의미
① melt(data, id=...) : 원데이터(Raw Data) 형태로 만드는 함수. id에 정한 변수를 고정으로 하여 데이터 구조를 변경함
② cast(data, formula=..., [func=...]) : 요약 형태로 만드는 함수. formula=행 변수(고정) ~ 열 변수(변경)
- reshape2 : cast 대신 acast, dcast 사용
2) sqldf 패키지 : R에서 sql 명령어를 사용 가능하게 해주는 패키지
- sqldf('select * from [data frame]') : data frame의 모든 행을 가져옴
- sqldf('select * from [data frame] limit 10') : data frame의 처음 10개 행을 가져옴.
- sqldf('select * from [data frame] where species like "ve%"') : data frame의 species가 ‘ve'로 시작하는 것에 대한 개수를 가져옴.
3) plyr 패키지 : apply 함수에 기반해 데이터와 출력변수를 동시에 배열로 치환
- (입력데이터)(출력데이터)ply로 총 5글자의 함수명으로 이름이 결정
- apply 함수처럼 split – apply – combine 처리
■ 형변환
1) 자료형
- as.integer(), as.numeric(), as.logical(), as.character(), as.complex(), asDate()
2) 구조
- as.data.frame(), as.list(), as.matrix(), as.vector()
■ 유용한 함수
- nchar() : 문자열의 길이 반환
- paste() : 입력받은 객체들의 같은 위치 요소를 하나의 문자열로 합침
- substr(데이터, 시작위치, 끝위치) : 주어진 문자열에서 특정 문자열 추출
- split(데이터, 분리조건) : 데이터를 분리할 때 사용
- subset(데이터, 분리조건) : 특정 부분만 추출
- merge(데이터프레임, 데이터프레임, by=공통 열 이름) : 공통변수로 데이터 병합
- select() : 특정 열 선택/제외
- length() : 객체의 원소 개수 반환
- nrow() : 행 개수 반환(벡터, 스칼라에서 사용 x)
- NROW() : 행 개수 반환(벡터, 스칼라에서 사용 가능)
- head() : 시작 6개 레코드 데이터 조회
- tail() : 마지막 6개 레코드 데이터 조회
- str() : 데이터의 구성을 표시
- summary()
수치형 변수 : 최대값, 최소값, 평균, 1사분위수, 2사분위수(중위값), 3사분위수
명목형 변수 : 명목값, 데이터 개수
- is 함수
is.numeric(), is.logical(), is.character(), is.integer(), is.double(), is.factor(), is.null(), is.na(), ...
■ 그래프
- 산점도 : plot(x,y). 2개의 수치형 변수의 상관관계
- 산점도 행렬 : pairs(). 여러 개의 변수 관계
- 상자그림 : boxplot(). 이상치 존재 확인, IQR 길이, 최소, 최대, 1사분위, 3사분위, 중위값 확인. NA 제거.
IQR(Inter Quartile Range) : 사분위수 범위. 데이터의 중간 50%를 나타내며, 3Q – 1Q이다.
수염 : 데이터 값의 하위 25%와 상위 25%의 범위를 나타내며, 벗어나면 이상치이다.
상한값 = 3Q + 1.5*IQR
하한값 = 1Q – 1.5*IQR
- 히스토그램 : hist(). 연속형 자료에 적합.
- 막대그래프 : barplot(). 범주형 자료에 적합.
■ 결측값 처리 방법
1. 단순 대치법
1) Completes Analysis : 결측값이 존재하는 불완전 자료는 모두 삭제.
2) 평균대치법 : 관측 또는 실험을 통해 얻어진 데이터의 평균으로 대치.
- 비조건부 평균 대치법 : 관측데이터의 평균응로 대치
- 조건부 평균 대치법 : 회귀분석을 활용한 대치법
3) 단순확률 대치법 : 평균대치법의 추정량 표준 오차 과소 추정 문제 보완. Hot-deck, nearest neighbor 방법
2. 다중 대치법 : 단순 대치법을 m번 수행하여 m개의 가상적 완전 자료를 만드는 방법. 대치 -> 분석 -> 결합
3. R에서의 결측치
- is.na() : 결측값이 있으면 TRUE, 없으면 FALSE 반환.
- complete.cases() : 행별로 결측치가 없으면 TRUE, 있으면 FALSE 반환
- na.omit() : 결측치가 있는 행 전체 삭제
■ 이상값(Outlier)
- 의도하지 않게 잘못 입력한 경우(Bad Data)
- 분석 목적에 맞지 않은 경우
- 이상값을 꼭 제거해야 하는 것은 아니므로 적절한 판단이 필요. 함부로 제거하면 안 됨.
■ 이상값 인식 방법
1. ESD(Extreme Studentized Deviation)
- 평균으로부터 3*표준편차 밖의 값
2. 기하평균 – 2.5*표준편차 < data < 기하평균 + 2.5*표준편차 밖의 값
3. 사분위수 활용
- Q1 – 1.5(Q3-Q1) < data < Q3 + 1.5(Q3-Q1) 밖의 값
'Certificate > ADsP' 카테고리의 다른 글
[ADsP] 3.5 상관분석 (0) | 2023.02.23 |
---|---|
[ADsP] 3.4 통계분석의 이해 (0) | 2023.02.23 |
[ADsP] 3.2 R 프로그래밍 (1) | 2023.02.16 |
[ADsP] 3.1 데이터 분석 기법의 이해 (2) | 2023.02.13 |
[ADsP] 2.6 분석 거버넌스 체계 수립 (0) | 2023.02.12 |
댓글