R 기초 2 데이터 시각화 한국어 정보의 전산 처리 2017. 4. 12..

Slides:



Advertisements
Similar presentations
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Advertisements

1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
Ⅱ 세포의 주기와 생명의 연속성 Ⅱ 세포의 주기와 생명의 연속성 - 1. 세포주기와 세포분열.
경영통계 제 1 장 통계란 무엇인가 도수분포표. 도수분포 도수분포 상대도수분포 상대도수분포 누적 도수 누적 도수 분석 도구 - 히스토그램 분석 도구 - 히스토그램.
컴퓨터와 인터넷.
재료수치해석 HW # 박재혁.
Cary UV 분석 매뉴얼 1. 바탕화면의 Cary WinUV 클릭 정량분석 다 파장 동시분석 단 파장 분석
제 7 장 함수 사용을 통해 엑셀 정복하기.
공차 및 끼워맞춤.
연결리스트(linked list).
수치해석 6장 예제문제 환경공학과 천대길.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Chapter 13 Wired LANs: Ethernet.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
23장. 구조체와 사용자 정의 자료형 2.
상관함수 correlation function
Chapter 07. 기본 함수 익히기.
CH 4. 확률변수와 확률분포 4.1 확률 확률실험 (Random Experiment, 시행, Trial) : 결과를 확률적으로 예측 가능, 똑 같은 조건에서 반복 근원사상 (Elementary Event, e) : 시행 때 마다 나타날 수 있는 결과 표본공간.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
상관분석 (p , p ).
3차원 객체 모델링.
제4장 제어 시스템의 성능.
제1장 통계학이란 무엇인가 제2장 자료와 수집 제3장 자료 분석 방법
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
소프트웨어시스템실습 4강: 데이터 시각화 (그래프)
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
엑셀 피벗 테이블로 분석하고 차트로 시각화하기
마인드 맵.
데이터의 시각화 대전과학고등학교 김종헌.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Metal Forming CAE Lab., Gyeongsang National University
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
Clipping 이진학.
8장. spss statistics 20의 데이터 변환
Frequency distributions and Graphic presentation of data
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
논문작성을 위한 연구모형 설정 양동훈.
Fucntion 요약.
미분방정식.
Excel 일차 강사 : 박영민.
수학10-나 1학년 2학기 Ⅱ.부등식의 영역 1. 부등식의 영역(2/5) 부등식 영역 수업계획 수업활동.
이차방정식과 이차함수의 관계 이차함수의 그래프와 축의 위치 관계 이차방정식 의 그래프와 축이 만나는 점의 좌표는 이차방정식
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
ITQ 정보기술자격 국가공인 Excel 2007 Ⅱ 함수- 15회차 강사 : 박영민.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
제 15 강 문자와 코드 shcho.pe.kr.
2. 누화와 케이블링 1. 서론 2. 용량성 누화 3. 유도성 누화 4. 복합적인 누화(누화의 일반적인 이해)
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Chapter 1 단위, 물리량, 벡터.
원의 방정식 원의 방정식 x축, y축에 접하는 원의 방정식 두 원의 위치 관계 공통접선 원과 직선의 위치 관계
Chapter 1 단위, 물리량, 벡터.
신문에서의 그래프 사용 이상미 김정석 김종찬 임성규.
ITQ 정보기술자격 국가공인 Excel 2007 Ⅱ 함수- 12회차 강사 : 박영민.
상관계수.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
통계학 R을 이용한 분석 제 2 장 자료의 정리.
Ⅳ. 제도의 기초 1. 물체를 나타내는 방법 3) 물체의 표현 방법 (2) 입체도법 지도학급 : 태화중학교 1학년 4반
CH3. 데이터의 기초적 정리방법 모집단과 표본 모집단 (Population) , 표본 (Sample, 시료) 그림 3.1
CH3. 데이터의 기초적 정리방법 모집단과 표본 모집단 (Population) , 표본 (Sample, 시료) 그림 3.1
R 기초 2 데이터 시각화 한국어 정보의 전산 처리
9장. spss statistics 20의 데이터 변수계산
 6장. SQL 쿼리.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
7 생성자 함수.
6 객체.
BoardGame 보드게임 따라가기.
Presentation transcript:

R 기초 2 데이터 시각화 한국어 정보의 전산 처리 2017. 4. 12.

ggplot2 기초: 함수 호출의 기초적 방법 Grammar of Graphics를 구현. Hadley Wickam이 만들었음. ggplot이라는 기본 함수와 geom(geometry) function이라는 layer를 결합 하여 plot을 그림. 함수 호출의 기본 개요 ggplot(data=<data>) + geom_<...>(mapping=aes(x=…, y=…)) geometry function의 mapping argument에 aes(aesthetics) 함수를 연결함. aes 함수에서는 x, y 좌표축에 연결할 변수를 제시하고 그 외의 변수도 추가로 지정할 수 있음. mapping은 ggplot 함수의 argument로 제시할 수도 있음. 붉은색 부분은 고정된 것이므로, 생략해도 됨. ggplot(mpg) + geom_point( aes(displ, hwy) ) mpg(자동차 모델별 정보)라는 데이터(테이블)에서 displ 변수(엔진 크기: 리터 수)를 x축으로, hwy(고속도로 연비)를 y축으로 하여, 각 모델을 이 좌표축 위에 점으로 나 타냄.

aes 함수의 mapping, attribute aes 함수에 x, y 좌표뿐 아니라, 기타 변수의 값에 따른 구분을 색깔(color), 모양(shape. 6개까지), 농도(alpha), 크기(size) 등으로 나타낼 수 있음. ggplot(mpg) + geom_point( aes(displ, hwy, color=class) ) class 구분(SUV, 2-seat, compact 등)을 색깔로 구분 ggplot(mpg) + geom_point( aes(displ, hwy, shape=drv) ) drv 구분(4륜구동, 전륜구동, 후륜구동)을 모양으로 구분 ggplot(mpg) + geom_point( aes(displ, hwy, alpha=cyl) ) cyl(실린더 수)을 농도로 구분 ggplot(mpg) + geom_point( aes(displ, hwy, size=year) ) year(출시 연도)를 크기로 구분 ggplot(mpg) + geom_point( aes(displ, hwy, color=class, shape=drv)) class를 색깔로, drv를 모양으로 구분 ggplot(stu) + geom_point(aes(kor,math, color=job, shape=gender, size=class)) 국어(x축), 수학(y축), 직업(색), 성별(모양), 계층(크기)

Facet을 이용한 多패널 plot aes 함수 내에서 x, y 좌표 외에 제3의 변수를 색깔 등으로 나타내는 방법 외에, 제3의 변수가 범주형 변수인 경우, 이 변수의 값에 따라 facet을 나누어 그래프를 따로 그릴 수도 있음. ggplot(mpg) + geom_point(aes(displ, hwy)) + facet_wrap(~class, nrow=2) x축=displ, y축=hwy로 하되, class의 값에 따라 7개의 facet으로 나누어 제시 ggplot(stu) + geom_point(aes(kor,math)) + facet_wrap(~job, nrow=2) x축=kor, y축=math로 하되, job의 값에 따라 7개의 facet으로 나누어 제시 제3 변수, 제4 변수를 조합하여 grid 형태로 제시할 수도 있음. ggplot(mpg) + geom_point(aes(displ, hwy)) + facet_grid(drv~cyl) drv(3가지 값)×cyl(4가지 값)=12가지 facet으로 나누어 제시 ggplot(stu) + geom_point(aes(kor,math)) + facet_grid(party~class) party(2가지 값)×class(3가지 값)=6가지 facet으로 나누어 제시

geom function들 scatterplot을 그려 주는 geom_point 함수 외에도 여러 geom 함수들이 있음. 함수의 이름은 plot의 종류와 대개 일치. geom_smooth: 두 수치 변수의 관계를 보여 주는 추이선(smooth) 및 표 준오차범위(standard error)를 보여줌 geom_boxplot: 관측치들의 분포를, 범주형 변수의 값 별로 boxplot으로 보여줌 geom_histogram geom_freqpoly geom_bar: 범주형 변수의 분포를 보여줌. geom_path, geom_line: 관측치들의 시간에 따른 변화 추이 양상을 선으 로 나타냄. 후자는 좌→우만 가능. 전자는 어느 방향이든 가능.

geom_smooth ggplot(stu) + geom_smooth(aes(math,phy)) x축=수학점수, y축=물리점수, 청색 선=smooth, 회색 띠=smooth를 중심으로 한 오차범위. 두 변수가 대체로 비례 ggplot(mpg) + geom_smooth(aes(displ,hwy)) x축=엔진크기, y축=고속도로연비, 이 둘이 대체로 반비례 geom_point와 geom_smooth를 함께 쓸 수도 있음. ggplot(stu) + geom_point(aes(math,phy)) + geom_smooth(aes(math,phy)) 수학점수와 물리점수의 관측치들에 대한 scatterplot과 smooth를 함께 제시 aes 함수의 mapping 내용이 두 geom 함수에 공통되므로, 공통 부분을 ggplot 함수의 argument로 몰아서 제시할 수도 있음. ggplot( stu, aes(math,phy) ) + geom_point() + geom_smooth() ggplot( mpg, aes(displ,hwy) ) + geom_point() + geom_smooth()

geom_smooth의 attribute geom_point 함수에서 색깔, 모양, 농도, 크기 등의 attribute를 사용할 수 있듯이, geom_smooth에서도 linetype 등의 attribute를 사용할 수 있음. ggplot( stu, aes( math, phy ) ) + geom_point() + geom_smooth( aes( linetype=gender ) ) 수학, 물리 smooth 곡선을 그리되, 성별에 따라 선 모양을 구분하여 그림 linetype 대신 group을 사용하면, 선 모양은 같되, smooth 곡선을 따로 그림 ggplot( stu, aes( math, phy, color=gender ) ) + geom_point() + geom_smooth( aes( linetype=gender ) ) color=gender가 ggplot 함수의 argument 속에 들어 있으므로, geom_point와 geom_smooth 양쪽에 다 적용됨. ggplot( stu, aes( math, phy ) ) + geom_point() + geom_smooth() + facet_wrap( ~gender, nrow=2 ) 수학, 물리 사이의 관계 그래프를 성별에 따라 두 facet으로 나누어 따로 그림

geom_smooth의 method geom_smooth 함수의 method parameter: smooth 곡선을 fitting할 때 사용할 통계모델과 방법을 지정함. default argument: loess n(관측치의 개수)이 작을 때 적당. local regression(최소제곱법)을 사용 곡선의 구불구불한 정도(wiggliness)를 span parameter로 지정. 0(매우 구불구 불)~1(구불구불하지 않고 매끈함) ggplot(stu,aes(math,phy)) + geom_point() + geom_smooth(span=0.7) ggplot(stu,aes(math,phy)) + geom_point() + geom_smooth(span=0.2) lm(linear model) method: 두 변수 사이의 관계가 선형 관계라고 전제 ggplot(stu,aes(math,phy)) + geom_point() + geom_smooth(method=lm) gam(generalized additive model) method: mgcv 패키지 load 필요 ggplot(stu,aes(math,phy)) + geom_point() + geom_smooth(method=gam, formula = y~s(x))

geom_boxplot 범주형 변수를 x축에, 수치형 변수를 y축에 표시. ggplot( stu, aes( job, avg ) ) + geom_boxplot() job별로 avg의 boxplot을 그림 ggplot( stu, aes( job, avg ) ) + geom_boxplot() + coord_flip() 90도 돌려서 제시함. x축 각 범주의 이름이 길어서 겹칠 때 유용. ggplot( stu, aes( job, avg ) ) + geom_violin() box 모양 대신 violin 모양으로 보여줌 어느 수치대에 관측치들이 몰려 있는지를 알아보고 싶을 때 유용 ggplot( stu, aes( gender, avg ) ) + geom_boxplot() ggplot( stu, aes( party, avg ) ) + geom_boxplot() ggplot( stu, aes( class, avg ) ) + geom_boxplot()

geom_bar 범주형 변수의 빈도를 barplot으로 보여줌. ggplot( stu, aes( job ) ) + geom_bar() 모든 geom_*** 함수는 stat_*** 함수를 자동 호출하며 default로 연결된 stat_*** 함수가 있음. geom_bar와 default로 연결된 것은 stat_count stat_count 함수는 범주형 변수의 빈도를 계산해 줌. stat_*** 함수를 호출해도, 마찬가지로 이와 default로 연결된 geom_*** 함수가 함께 자동 호출됨. geom_***와 stat_*** 사이의 이러한 default 연결을 바꿔 줄 수도 있음. ggplot( stu, aes( name, avg ) ) + geom_bar( stat="identity" ) + coord_flip() name의 값의 빈도를 보여주는 게 아니라, y축을 avg로 명시했음. ggplot(stu) + geom_bar(aes(x=job, y=..prop.., group=1)) job의 값의 빈도 대신 비율을 보여줌.

geom_bar의 attribute들 color: 막대의 윤곽선에 색깔이 추가됨. fill: 막대 내부에 색깔이 채워짐. ggplot(stu) + geom_bar( aes(job, color=job) ) fill: 막대 내부에 색깔이 채워짐. ggplot(stu) + geom_bar( aes(job, fill=job) ) x축 변수와 attribute에 연결하는 변수를 달리하면, 막대 내부에서 구분을 보여줌. ggplot(stu) + geom_bar( aes(job, fill=gender) ) position이라는 parameter는 “dodge”, “fill”, “identity” 값을 가질 수 있음. position parameter의 default는 “stack” 주의: color, fill은 aes 내부에 제시하는 반면에, position은 aes 바깥에 제시. identity: 막대들이 겹치게 됨. 2D geom에 적당. fill: 각 막대의 길이를 동일하게 함. 비율 비교에 적당. ggplot(stu) + geom_bar(aes(job, fill=gender), position="fill" ) dodge: x축 범주형 변수의 각 값마다, fill 범주형 변수의 각 값에 해당하는 막대들을 (stack식이 아니라) 옆에 나란히 보여줌. ggplot(stu) + geom_bar(aes(job, fill=gender), position=“dodge" )

jitter scatterplot을 그릴 때, 동일한 관측치가 있으면 둘 이상의 관측 치가 하나의 점으로 표시됨. 이 경우, 어느 부분에 관측치가 많이 몰려 있는지를 보려 할 때, 실제 자료의 빈도를 그래프가 제대로 반영하지 못하게 됨. 점의 위치에 약간의 오차를 도입하면 점들이 겹치지 않게 됨. ggplot(mpg, aes(displ, hwy)) + geom_point( position="jitter" ) ggplot(mpg, aes(displ, hwy)) + geom_jitter() 특히 x축 변수가 범주형 변수일 때는 관측치가 동일 위치에 몰 리는 현상이 두드러지므로, jitter가 유용함. ggplot(mpg, aes(drv, hwy)) + geom_point() ggplot(mpg, aes(drv, hwy)) + geom_jitter()

geom_histogram, geom_freqpoly histogram: 수치형 변수 1개를 x축에 일정한 범위(bin)로 묶어서 각 bin 에 속하는 관측치의 빈도를 보여줌. ggplot( stu, aes(avg) ) + geom_histogram() default bin의 개수는 30개 ggplot( stu, aes(avg) ) + geom_histogram( binwidth=5 ) bin의 폭을 5로 설정 freqpoly: histogram과 비슷한 것을 꺾은선 그래프로 보여줌 ggplot( stu, aes(avg) ) + geom_freqpoly( binwidth=1 ) ggplot( stu, aes(avg) ) + geom_freqpoly( binwidth=5 ) 범주형 변수를 attribute로 추가할 수 있음. ggplot( stu, aes(avg, color=gender) ) + geom_freqpoly( binwidth=5 )

시계열과 geom_line, geom_path geom_line과 geom_path는 시계열(time series) 자료, 즉 시간의 흐름에 따른 데이터의 변화 추이를 보여주는 데 적합. geom_line은 좌→우의 방향만 가능 geom_path는 어느 방향이든지 가능 연도별 실업률 추이 ggplot(economics, aes(date, unemploy / pop)) + geom_line() 연도별 실업 주수 중앙값 추이 ggplot(economics, aes(date, uempmed)) + geom_line() x=실업률, y=실업주수중앙값 ggplot(economics, aes(unemploy/pop, uempmed)) + geom_point() + geom_path() 추이선=회색, 관측치 농도를 연도별로 다르게 함. year <- function(x) as.POSIXlt(x)$year + 1900 ggplot(economics, aes(unemploy/pop, uempmed)) + geom_point(aes(color=year(date))) + geom_path(color="grey50")

ggplot의 geom_*** 총괄 cheatsheet : https://www.rstudio.com/wp- content/uploads/2015/03/ggplot2-cheatsheet.pdf 1변수 plot: y축은 빈도 범주형(이산형) 변수: geom_bar 수치형(연속형) 변수: geom_histogram, geom_freqpoly 2변수 plot x축 변수, y축 변수 둘 다 수치형(연속형) 변수: geom_point, geom_smooth x축 변수는 범주형(이산형)이고 y축 변수는 수치형: geom_bar, geom_boxplot, geom_violin