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를 이용해 빠른 데이터 접근

  • 결측값 처리와 이상값 검색

    • 효율성문제 , 자료처리 및 분석의 복잡성 문제 , 관측된 자료와 결측된 자료간의 차이에서 기인하는 편이 를 고려 

    • 결측값의 대치법

      1. 완전히 응답한 개체 분석

        • 불완전 자료는 모두 무시하고 완전하게 관측된 자료만으로 분석

      2. 평균대치법

        • 얻어진 자료의 적절한 평균값으로 결측 값을 대치해서 불완전한 자료를 완전한 자료로 만든 후, 완전한 자료를 마치 관측 또는 실험되어 얻어진 자료라 생각하고 분석하는 방법

      3. 단순확률 대치법

        • 평균대치법에서 추정량 표준오차의 과소추정문제를 보완

        • Hot-deck2 방법, NearestNeighbour 2 방법

        • 평균대치법에서 관측된 자료를 토대로 추정된 통계량으로 결측값을 대치할 때 어떤 적절한 확률값을 부여한 후 대치하는 방법

      4. 다중 대치법

        • 결측치를 가진 자료 분석에 사용하기가 용이, 통계적 추론에 사용된 통계량의 효율성 및  일치성 등의 문제를 부분적으로 보완

        • 추정량 표준오차의 과소추정 , 계산의 난해성 문제가 있음

    • 결측값 처리

      • 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 데이터 셋 수
    • 이상값 검색

      • 전처리를 어떻게 할지 결정 / 부정사용방지 시스템에서 규칙을 발견하는데 사용 

        1. 이상값은 의도하지 않게 잘못된 경우 (Bad Data)

        2. 의도하지 않게 입력됐으나 분석 목적에 부합되지 않아 제거해야 하는 경우 (Bad Data)

        3. 의도되지 않은 현상이지만 분석에 포함해야 하는 경우 ( 이상값 )

        4. 의도된 이상값

      • 알고리즘 : 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

+ Recent posts