2. 데이터 마트
데이터의 한 부분으로서 특정 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스
-
재구조화 ( reshape )
-
melt( data, id.vars , na.rm = FALSE )
-
id,variable,value 형태로 재구성
-
id.vars : 식별컬럼
-
na.rm = FALSE : NA인 행을 결과에 포함시킬지 여부
-
-
cast() - melt() 된 데이터를 다시 여러 칼럼으로 변환
-
통계 분석에 필요한 데이터 구조로 딱 맞아떨어지지않는 경우에 재구조화 시킬때 사용
-
# melt() 예시
melt(airquality, id=c("month","day"), na.rm = TRUE)
>
month day variable value
1 5 1 ozone 41.0
2 5 2 ozone 36.0
3 5 3 ozone 12.0
# cast() 예시
cast(T,day~month~variable) # 행을 day, 열을 month로 각 변수들을 새롭게 배열
>
Ozone
5 6 7 8 9
1 41 NA 135 39 96
2 36 NA 49 9 78
3 12 NA 32 16 73
...
cast(T,month~variable,mean,margin=c("grand_now","grand_col"))
# margin 관련 옵션으로, 행과 열에 대하 합계를 산출하는 기능
cast(T,day~month,mean,subset=variable == "ozone")
# subset 기능을 이용해 특정 변수(ozone)만을 처리
cast(T,month~variable,range)
# range 기능은 min은 "X1"이라는 변수를, max는 "X2"라는 변수를 끝에 붙여줌
-
sqldf
-
sql문처럼 사용 가능
-
-
plyr
-
데이터를 분리(split) , 분할된 데이터에 특정함수를 적용(apply) , 결과를 재결합(combine) 처리하는 함수 제공
-
adply() - 행 또는 컬럼 단위로 함수를 적용
-
ddply() - variables에 나열한 컬럼에 따라 데이터를 나눈 뒤 함수를 적용
-
summarise() - 데이터의 요약 정보를 새로운 변수에 만드는 함수
-
transform() - 연산 결과를 데이터 프레임의 새로운 칼럼에 저장하는 함수
-
-
데이터 테이블
-
빠른 그룹화, 순서화, 짧은 문장 지원 측면 및 데이터 분석 속도에서 데이터 프레임 보다 연산속도 빠름
-
DT <- data.table(x=c("b","b","b","a","a"),v=rnorm(5))
-
tables() - 모든 데이터 테이블 객체의 목록을 저장한 데이터 테이블 반환
-
Saaply(x,class) - x : 벡터,리스트,DF 형식으로 각 컬럼의 데이터 타입을 구하는 함수
-
setkey() - key를 이용해 빠른 데이터 접근
-
-
결측값 처리와 이상값 검색
-
효율성문제 , 자료처리 및 분석의 복잡성 문제 , 관측된 자료와 결측된 자료간의 차이에서 기인하는 편이 를 고려
-
결측값의 대치법
-
완전히 응답한 개체 분석
-
불완전 자료는 모두 무시하고 완전하게 관측된 자료만으로 분석
-
-
평균대치법
-
얻어진 자료의 적절한 평균값으로 결측 값을 대치해서 불완전한 자료를 완전한 자료로 만든 후, 완전한 자료를 마치 관측 또는 실험되어 얻어진 자료라 생각하고 분석하는 방법
-
-
단순확률 대치법
-
평균대치법에서 추정량 표준오차의 과소추정문제를 보완
-
Hot-deck2 방법, NearestNeighbour 2 방법
-
평균대치법에서 관측된 자료를 토대로 추정된 통계량으로 결측값을 대치할 때 어떤 적절한 확률값을 부여한 후 대치하는 방법
-
-
다중 대치법
-
결측치를 가진 자료 분석에 사용하기가 용이, 통계적 추론에 사용된 통계량의 효율성 및 일치성 등의 문제를 부분적으로 보완
-
추정량 표준오차의 과소추정 , 계산의 난해성 문제가 있음
-
-
-
결측값 처리
-
Amelia2 , Mice , mistools 패키지
-
결측값 확인
-
결측값 : NA / 불가능한 값 : NaN
-
is.na() - 결측값 여부를 확인
-
Complete.cases() - 해당 행의 모든 값이 NA가 아닌 경우 TRUE / 하나라도 있다면 FALSE
-
ex) french_fries[!complete.cases(french_fries),] => NA가 있는 값들을 반환
-
-
-
결측값 처리 방식은 해당 레코드를 모두 삭제하는 것 그러나 많은 레코드가 결측값이 있다면 변수들 간의 관계를 이용해 imputation 한다
- ex) a.out <- amelia(freetrade,m=5,ts='year',cs='country') #m=imputations 데이터 셋 수
-
-
이상값 검색
-
전처리를 어떻게 할지 결정 / 부정사용방지 시스템에서 규칙을 발견하는데 사용
-
이상값은 의도하지 않게 잘못된 경우 (Bad Data)
-
의도하지 않게 입력됐으나 분석 목적에 부합되지 않아 제거해야 하는 경우 (Bad Data)
-
의도되지 않은 현상이지만 분석에 포함해야 하는 경우 ( 이상값 )
-
의도된 이상값
-
-
알고리즘 : ESD, MADM
-
함수 : boxplot, summary
-
summary 로 평균,중간값,Q1,Q3 값을 보면서 1차 판단 -> 시간적 여유가 있다면 주요 변수별로 plot 하여 특성 파악
-
-
'ADSP > 3강) 데이터 분석' 카테고리의 다른 글
[6] 시계열 예측 (0) | 2020.02.13 |
---|---|
[5] 기초 통계분석(2) (0) | 2020.02.12 |
[4] 기초 통계분석 (0) | 2020.02.08 |
[3] 통계분석 (0) | 2020.02.07 |
[1] R 기초 (0) | 2020.02.06 |