ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Data Visualization using R (R을 이용한 데이터 시각화)
    Programming/R Programming 2020. 6. 23. 00:06

    title: "Data Visualization using R 13-1"
    author: "Haeseong Oh"
    date: '2020 6 22 '
    output: html_document


    Data Visualization(데이터 시각화)

    메세지를 전달을 주 목적으로 하는 시각화 기법

    데이터 시각화의 목적

    • 분석 목적의 데이터 탐색(Exploratory data analysis, EDA) 및 데이터 분석 모델의 이해
    • 분석 결과의 공유를 위한 보고서 작성의 시각화
      • 정보 전달의 용이성과 미적인 측면이 고려됨.

    데이터 시각화의 기능

    • 커뮤니케이션

      • 데이터에 있는 정보(메세지)를 쉽고 빠르게 전달하는 기능
      • ex) Facebook의 소셜네트워크 그래프프
    • 디스커버리 (Discovery)

      • 새로운 사실 관계를 파악하기 위하여 정보를 표현하는 것.
      • 데이터에 있는 정보(메세지)를 쉽고 빠르게 전달하는 기능
      • ex) 미네소타 주의 보리 수확량 데이터
    미네소타 주의 보리 수확량 데이터 분석
    • 수율(yield): bushels/acre
    • variety: 품종
    • site: 실험장
    • 부셸(bushel): 건량 단위, 약 35리터
    • 에이커(acre): 4046.8m^2
    • 트렐리스 디스플레이(trellis display)
      • 여러 독립적인 그래프 패널을 한 화면에 표시하여 다변량 데이터 분석에 유용
      • Morris 실험장에서만 1931년과 1932년의 수율이 다른패턴을 나타내는 것을 확인할 수 있음.
    library(lattice)
    #lattice패키지에서 barley라는 DataSet을 제공한다.
    #?barley #Yield data from a Minnesota barley trial
    trellis.par.set(theme = col.whitebg()) #흰색백그라운드 색상을 테마로 사용.
    dotplot(variety ~ yield | site, data = barley, groups = year,
            key = simpleKey(levels(barley$year), space = 'bottom', columns = 2), 
            xlab = "Barley Yield (bushels/acre) ", ylab = 'variety',
            aspect=0.5, layout = c(2,3), 
            scales = list(alternation = FALSE,                                               y = list(abbreviate = TRUE, minlength =5),
                font=4, 
                col = "blue"),
            main = 'dotplot(varitey ~ yield | site, data = barley, groups = year)',
            sub = list("arguments = key, aspect, scales, etc", col = "gray")
            )
    • 인사이트(insight)
      • 정보가 숨겨져 있어 미처 파악 못한 시실이나 이미 알고 있는 사실 보다 좀 더 나은 통찰력을 얻을 수 있도록 정보를 표한하는 것.
      • ex) anscombe 데이터
        • 통계량 및 회귀 분석의 통게량이 유사하나 패턴의 차이가 존재하는 데이터
    library(lattice)
    # cal_corr = c(cor(x1,y1), cor(x2,y2), cor(x3,y3), cor(x4,y4))
    apply(anscombe, 2, mean)
    apply(anscombe,2, sd)
    # res[[1]] = lm(y1~x1) #lm(반응변수~설명변수)
    # res[[2]] = lm(y2~x2)
    # res[[3]] = lm(y3~x3)
    # res[[4]] = lm(y4~x4)
    
    summ = matrix(0,4,4)
    cname = paste(paste('x', 1:4, sep=''), paste('y', 1:4, sep=''), sep=' vs. ')
    colnames(summ) = cname
    rownames(summ) = c('estimated beta0', 'estamted beta1', 'estimagted error varience', 'R-square' )
    
    # for(i in 1:4){
    #   temp = summary(res[[i]])
    #   summ[1:2, i] = temp[[4]][1:2,1]
    #   summ[3,i] = temp[[6]]
    #   summ[4,i] = temp[[8]]
    # }
    
    #pch : point of character. 색칠된 동그라미
    #col : color
    #main : figure의 title
    #xlab : x의 lable
    #lwd : line width
    par(mfrow=c(2,2)) #multi figure by row
    for (i in 1:4){
      plot(anscombe[,i], anscombe[,i+4], pch=16, col=2, #x, y, 색동그라미, 색
           main=cname[i], xlab=paste('x', i, sep=''),
           ylab=paste('y',i,sep=''),
           xlim=c(4,20),ylim=c(3,13)) 
          abline(summ[1:2, i], col=4, lwd=2) #일차함수 그래프 그리기
    }
    
    • x1 vs. y1 : 적합
    • x2 vs. y2 : 설명변수 x를 변환을 해야 한다.
    • x3 vs. y3 : 이상점을 확인할 필요가 있다.
    • x4 vs. y4 : 부적합. x값이 다른 특이점을 살펴봐야 함.

    R 그래픽스

    • R의 중요한 기능 중의 하나로 다양한 시각화 도구를 제공
    • R 그래픽스 아키텍처
      • R에서의 시각화 기능을 위한 구조
        • 고수준 그래픽 : plot, barplot, boxplot, pie, ggplot2, lattice, rgl, sna 등
        • 저수준 그래픽 : points, lines, rect, polygon, text, title, legend, axis 등
        • R 그래픽 장치 : windows, x11, jpeg, png, tiff, pdf svg 등
        • 외부 애플리케이션 인터페이스 연동 : Google Earth와 R연동
        • 외부 그래픽 장치 연동 : R에서 제공하는 기본적인 그래픽 장치에서 제공하지 않는 시각화 구현을 위해서 외부 그래픽 장치를 접목하는 방법
          • ex) 3차원 렌더링이 가능한 OpenGL을 이용하여 구현된 rgl 패키지

    일반적인 그래픽 작업 순서

    1. 그래프장치
    2. 고수준 그래픽
    3. 저수준 그래픽
    4. 저장
    • SVG(Scalable Vector Graphics) 그래픽 파일 장치

    • 2차원 벡더 그래픽을 표현하기 위한 xml 기반의 파일 형식

    • 벡터 그래픽이므로 확대해도 계단현상(깨짐)이 발생하지 않으나 해당 포맷과 호환되는 브라우저가 많지 않다.

    • gglpot 패캐지로 대부분 그래프 커버 가능

    • lattice 패키지

      • 다변량 데이터의 시각화에 유용하게 사용가능
    • ggplot2 패키지

      • 그래픽 문법적인 요소를 가미하여 그래프와 사용자간에 어느정도 상호작용을 제공하는 시각화 도구
      • 시각화 과정에서의 코드 재사용성이 뛰어나며 데이터 분석을 위한 시각화에 적합
    • ggmap 패키지

      • GIS 데이터를 지도 위에 표현하는 주제도를 위한 ggplot2 기반의 시각화 도구
      • R 기반의 지리 시각화 도구는 Google Maps 등과 같은 지도 정보를 가져와 표현한다.
Designed by Tistory.