슬라이드 1

Download Report

Transcript 슬라이드 1

Best Expert Group for Analytics
LCBEx (Low Cost But Excellent)
분석 플랫폼으로의 R의 활용
2012. 6.
김준기
The leading expert in R
[email protected]
R 관련 기사
New York Times:
Data Analysts Captivated by R’s Power
6 Jan 2009
To some people R is just the 18th letter of the alphabet.
R is also the name of a popular programming language
used by a growing number of data analysts inside
corporations and academia.
Companies as diverse
as Google, Pfizer, Merck, Bank of America, the
InterContinental Hotels Group and Shell use it.
The popularity of R at universities could threaten
SAS Institute, the privately held business software
company that specializes in data analysis software.
2
R에 대한 관심의 증가
 폭발적인 사용자 증가와 개발자의 확산으로, 대학교육의 표준 툴로
자리 잡음
☞ Revolution Analytics 소개자료(소스 : http://r4stats.com/articles/popularity/)
3
기업체에서의 R의 활용
 빅 데이터 기업의 분석 플랫폼 엔진으로 사용 중이며, 유수기업에서
데이터 분석 tool로 사용 중임
4
기업체에서의 R의 활용
 특히, Google과 Facebook은 R을 자사의 주된 분석 플랫폼으로
활용하고 있음
Google's R Style Guide
Google uses R for data exploration
and model prototyping, it is not
typically used in production: in Bo’s
group, R is typically run in a desktop
environment.
- Bo Cowgill, Google
Itamar conveyed how Facebook’s
Data Team used R in 2007 to
answer two questions about new
users: (i) which data points predict
whether a user will stay? and (ii) if
they stay, which data points predict
how active they’ll be after three
months?
- Itamar Rosenn, Facebook
http://www.dataspora.com/2009/02/predictive-analytics-using-r/
5
소프트웨어 Vendor의 R 적용
 Oracle, IBM의 Netezza, SAP의 HANA, Teradata 등에서 in-memory
혹은 in-database 분석 엔진으로 R을 적용함
6
통계 소프트웨어 Vendor의 R 적용
 SAS나 SPSS 등의 통계 소프트웨어에서 R과의 연동을 통해 새로운
분석 방법을 제공
SAS/JMP
7
Big Data 분석을 위한 R의 활용
 빅 데이터 분석을 위한 아키텍처 전반에 걸쳐 공통적인 분석 플랫폼으로
자리잡음
Hadoop
File Based
Indatabase
8
R / Hadoop
 특히 국내외 Big Data 분석에 관심이 많은 기업체에서 Hadoop 기반의
R 분석 기능 구현을 위하여 기술 확보에 노력하고 있음
☞ Revolution Analytics 소개자료
9
R / Hadoop (Word Count Example)
☞ Revolution Analytics 소개자료
10
웹 분석시스템 구현
 엔터프라이즈 환경의 분석 플랫폼으로 이용
Data Sources
& Creation of Analytics
Consumption of
Analytics & Results
Data Analysis
DeployR
R / Statistical
Modeling Expert
Deployment
Expert
Business Intelligence
Interactive Web Apps
Cloud / SaaS
☞ Revolution Analytics 소개자료
11
History of R
☞ 유충현 (넥스알, 빅데이터 애널리틱스 인사이드 2011)
 R은 1993년 뉴질랜드 오클랜드대학의 통계학과 교수 2명(Ross Ihaka,
Robert Gentleman)에 의하여 개발
 1976년 Bell Lab의 John Chambers, Rick Becker, Allan Wilks에
의하여 개발된 S Language에 그 뿌리를 두고 있음
12
왜 이름이 R일까?
 두 명의 저자(Robert Gentleman과 Ross Ihaka) 이름 맨 앞 철자
 1976년 Bell Lab에서 개발된 ‘S’ 언어의 이름에서
13
R 이란
I
R is a language and environment for statistical computing and graphics.
 통계분석과 그래픽 작성을 위한 프로그래밍 언어
- 통계학자에 의한, 그리고 통계학자를 위한
 분석 소프트웨어
- 데이터 입출력, 데이터 처리, 데이터 분석, 그래프 작성 등을 위한
수많은 알고리즘 및 방법론 제공
14
R 이란
II
R is available as Free Software under the terms of the Free Software
Foundation's GNU General Public License in source code form.
 “GNU”라는 이름은 “GNU's Not Unix!”라는 문장의 재귀적 약어
 GNU는 자유 소프트웨어를 뜻함
- 프로그램을 어떠한 목적으로도 실행할 수 있는 자유
- 자신의 필요에 맞게 개작할 수 있는 자유
- 복제물을 재배포할 수 있는 자유
- 프로그램을 개선시킬 수 있는 자유와 개선된 이점을 공동체 전체가
누릴 수 있게 그것을 발표할 자유
15
R 이란
III
R is Free.
 사용자의 입장에서 Free 라는 것이 단지 무료임을 뜻하는 것은 아님
- 언제 어디서든 다운로드 및 설치가 가능
- Windows, Linux, Unix, Mac 등 다양한 운영체제에서 동작
- 누구나 패키지를 만들어 다른 사람과 공유 가능
- Java, Python, .Net, Visual Studio 등 다양한 개발 언어 및 플랫폼과
연동
16
R의 특징
 In-Memory Computing
- 빠른 처리 속도, H/W 메모리 크기에 영향을 받음
 Object-oriented programming
- 데이터, 함수가 object로 관리되어 짐
- 클래스(class) & 메소드(method)
 Package
- 최신의 알고리즘 및 방법론을 적용
- 다양한 함수 및 데이터 내장, Help의 Examples 바로 사용 가능
17
The R Foundation (http://www.r-project.org)
 R Development Core Team 멤버들에 의하여 설립된 비영리 단체
 R의 배포와 수정은 R Development Core Team과 많은 기여자들에
의하여 이루어 지고 있음
18
CRAN (The Comprehensive R Archive Network)
http://cran.r-project.org/
Korea :
http://cran.nexr.com/
 R은 CRAN Site를 통하여 자유롭게 다운로드 받아 설치할 수 있음
 현재 39개국 87개 Mirror 사이트 운영 중
19
R Package (http://cran.r-project.org/web/packages/)
R 패키지 수
 CRAN Site에 3,868개 등록됨
(2012년 6월 11일 기준)
 이러한 패키지들은 새로운
통계분석 알고리즘이나 새로운 IT
기술의 응용에 관한 것을 포함
 Software Vendor에 의하여
Version Up이 되지 않는다는 것이
다른 통계분석 소프트웨어와의
차이임
20
R Manual (http://cran.r-project.org/manuals.html)
 R과 관련된 매뉴얼을 HTML 및 PDF 파일로 지원 (An Introduction to
R, R Data Import/Export 등)
21
RGUI
 RGui 실행 기본 화면은 메뉴, 단축아이콘, 콘솔 창으로 구성
①
②
③
툴바
메뉴
R Console
22
RGUI (메뉴)
 메뉴는 파일, 편집, 보기, 기타, 패키지, 윈도우즈, 도움말로 구성
①
파일
편집
패키지
도움말
기타
23
RGui (R Console)
 입력된 명령(command)에 대한 결과가 interactive하게 화면에 출력
R Console에 입력된 R command
> getwd()
> search()
> searchpaths()
> ls
오브젝트 리스트를 문자열로 보여주는 함수
> ls()
ls 함수를 실행
> ls(pos=6)
pos argument 값으로 6을 입력하여 ls 함수를 실행
24
RGui (도움말)
 R Console에 help 명령어와 오브젝트 이름을 입력
R Console에 입력된 R command
> ls
ls 함수 코드
> args(ls)
ls 함수의 arguments 정보
> help(ls)
ls 함수의 도움말 정보(html 형식)
ls 함수의 도움말 정보가 웹 브라우저에 표시
25
R을 배워 업무에 적용하려면
Or is it?
26
R을 배우는데 도움이 될 만한 곳
 http://www.r-project.org
 http://www.r-project.kr (한국 R 사용자 모임 - KRUG)
 http://www.r-bloggers.com
 http://stackoverflow.com
 http://stats.stackexchange.com
 http://www.inside-r.org/
 http://www.r-statistics.com/
27
R GUI Projects
“The 95% of statistical software users
do not know how to write a script in
command-line.”
☞ 신종화(서울과학종합대학원대학교, Korea R User Conference 2011)
28
R Studio (http://www.rstudio.org/)
29
Red-R (http://www.red-r.org/)
30
Red-R
31
Rattle (http://rattle.togaware.com/), (install.packages("rattle"))
32
Rattle (library(rattle); rattle())
33
RExcel (http://rcom.univie.ac.at/)
34
RExcel
35
R Commander (install.packages("Rcmdr"))
36
R Commander (library(Rcmdr))
37
기업체에서 주로 사용하는 R Package
 RODBC
 sqldf
 ggplot2
 RgoogleMaps
 googleVis
 animation
38
RODBC 패키지
 DBMS와의 인터페이스를 위한 패키지
Oracle, DB2, SQL Server, MySQL 등
다양한 DBMS와 인터페이스가 가능
39
RODBC 패키지 내 오브젝트
 DBMS와의 인터페이스를 위한 패키지
RODBC 패키지 내 주요 오브젝트
오브젝트 명
설명
사용방법
odbcConnect
ODBC 접속
odbcConnect(dsn, uid = "",
pwd = "", ...)
odbcClose
ODBC 접속 해제
SQL을 이용하여 데
sqlQuery
이터를 R의 Object
로 생성
odbcClose(channel)
sqlQuery(channel,
paste("select State, Murder
from USArrests", "where
Rape > 30 order by
Murder"))
R의 data frame
sqlSaveUpdate
Object를 DB Table
sqlSave(channel, USArrest
s)
에 쓰기
40
sqldf 패키지
 R 데이터에 대하여 SQL 문을 사용하여 데이터 Manipulation이 가능
# SQL 사용 : Inner Join
# merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO"))
sqldf("select a.*, b.DNAME, LOC
from import_emp_tb_data a, import_dept_tb_data b
where a.DEPTNO = b.DEPTNO")
# SQL 사용 : Left Join
# merge(import_emp_tb_data, import_dept_tb_data, by = c("DEPTNO"),
all.x = T)
sqldf("select a.*, b.DNAME, LOC
from import_emp_tb_data a left join import_dept_tb_data b
using(DEPTNO)")
41
ggplot2 패키지
 보다 화려하고 유연하고 동적인 그래프 생성이 가능
42
ggplot2 패키지
qplot(x = hp, y = mpg, data = mtcars,
color = cyl, facets = .~ gear)
qplot(x = hp, y = mpg, data = mtcars, color = cyl,
facets = .~ gear, label = rownames(mtcars),
geom=c("text","point"), size = .1, hjust=-0.25)
43
RgoogleMaps 패키지
 구글 지도 상에 다양한 정보를 표출
고속도로 영업소 위치 표출
# 패키지 로딩...
library(RgoogleMaps)
# 데이터 읽어들이기
tollgate_info <- read.csv("영업소정보.csv")
# 지도 중심 위치 설정
map.center.loc <- c(36, 128)
# 지도 레벨
input.zoom <- 7
map_data <- tollgate_info
# 고속도로 영업소 표시
win.graph()
mymap <- GetMap(center = map.center.loc,
zoom = input.zoom, maptype = "road", format
= "roadmap", destfile = "mymap.png")
PlotOnStaticMap(mymap, lat =
map_data$Y좌표, lon = map_data$X좌표,
destfile = "mymap.point.png", cex = 1, pch
=20, col="blue“)
44
googleVis 패키지
 R에서 구글 데이터 시각화 API를 이용
http://code.google.com/p/google-motion-charts-with-r/
45
animation 패키지
 R Graph 결과를 animation으로 생성
# animation으로 생성
saveHTML({
for(map.i in 1:length(unique.name)) {
mymap <- GetMap(center =
map.center.loc, zoom = input.zoom, maptype
= "road", format = "roadmap", destfile =
"mymap.png")
PlotOnStaticMap(mymap, lat =
map_data[map_data$지역본부 ==
unique.name[map.i], ]$Y좌표, lon =
map_data[map_data$지역본부 ==
unique.name[map.i], ]$X좌표, destfile =
"mymap.point.png", cex = 1, pch =20,
col="blue")
}
}, img.name = "unif_plot", imgdir = "unif_dir",
htmlfile = "random.html",
autobrowse = FALSE, title = "고속도로
영영소",
description = c("RgoogleMaps 패키지를
활용한 데모.\n\n"))
46
기업체에서 주로 사용하는 R 유틸리티
 Rcmd
 Rtools
47
Rcmd 유틸리티
 Batch 작업을 위한 R Script
# ==============================================================================================
#
프로그램 시작
# ==============================================================================================
cat("Batch Program Start!!!", as.character(Sys.time()), "\n")
# ---------------------------------------------------------------------------------------------# 오늘 날짜
today.date <- as.character(Sys.Date())
# 데이터프레임 생성
sample.df <- data.frame(year = substr(today.date, 1, 4),
month = substr(today.date, 6, 7),
day = substr(today.date, 9, 10),
sample.norm = rnorm(1000000), stringsAsFactors = TRUE)
# 데이터프레임을 csv 파일로 저장
write.csv(sample.df, paste("C:\\RProject\\OUT\\", today.date, ".", "sample.df.csv", sep = ""), row.names = FALSE)
# ==============================================================================================
#
프로그램 종료
# ==============================================================================================
cat("Batch Program End!!!", as.character(Sys.time()), "\n")
# ----------------------------------------------------------------------------------------------
48
Rcmd 유틸리티
 Batch 작업을 위한 bat 파일
CD C:\Program Files\R\R-2.13.1\bin\x64
Rcmd BATCH C:\Rproject\RSC\RBatchSample.R C:\RProject\TXT\RBatchSample.txt
set filename=RBatchSample_%date:~2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log
copy C:\RProject\TXT\RBatchSample.txt C:\RProject\LOG\%filename%
• bat 파일
‒ bat 파일 내 명령어는 dos 명령어 임
• Rcmd
‒ R Batch를 수행하기 위해서는 Rcmd.exe 파일을 이용함
• Rcmd BATCH
‒ BATCH 명령어는 대문자 임
‒ Usage: Rcmd BATCH [options] infile [outfile]
‒ outfile을 지정하지 않으면 .Rout 파일로 outfile이 생성됨
49
Rtools 유틸리티
 기업체 내부의 분석 로직을 R 패키지로 생성
http://www.murdoch-sutherland.com/Rtools
50
Rtools 유틸리티
 package.skeleton 함수를 이용하여 Package를 작성
## two functions and two "data sets" :
f <- function(x,y) x+y
g <- function(x,y) x-y
d <- data.frame(a=1, b=2)
e <- rnorm(1000)
내 문서에 mypkg 디렉토리가 생성
package.skeleton(list=c("f","g","d","e"), name="mypkg")
R CMD build --binary mypkg
51
Rtools 유틸리티
 mypkg_1.0.zip 파일 생성 및 Package Install
R CMD INSTALL mypkg
52
 Large Data를 이용한 분석
 Rcmd 자동화
 Visualization Tool과의 연계
53
‘분석(Analytics)’ 정의
분석 (Analytics)이란 ?
I
의사결정과 action에 활용하기 위한 데이터의 광범위한 활용, 통계적이며 정량적 측면의 분석,
탐색적 분석 및 예측모델링, 사실에 근거한 경영을 의미함
mean the extensive use of data, statistical and quantitative analysis, explanatory and predictive
models, and fact-based management to drive decisions and action
II
의사결정 혹은 완전 자동화된 의사결정의 입력이 될 수 있음
may be input for human decisions or may drive fully automated decisions
☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press
54
Advanced Analytics
 요즘 화두가 되는 고급분석(Advanced Analytics)은 통계분석, 예측
(스코어) 모형, 시계열 분석과 최적화 등을 의미합니다
대부분의 기업들은 고급 분석이 가능한 분석 전문가들을 리포팅 작성에 활용하고 있습니다
Optimization
Competitive advantage
Predictive Modeling
Forecasting/extrapolation
Statistical Analysis
Alerts
What’s the best that can happen?
What will happen next?
What if these trends continue?
Analytics
Why is this happening?
What actions are needed?
Query/drill down
Where exactly is the problem?
Ad hoc Reports
How many, how often, where?
Standard Reports
What happened?
Access and
Reporting
Degree of Intelligence
☞ Davenport and Harris, “Competing on Analytics”, Harvard Business School Press (2007) 참조
55
LCBEx (Low Cost But Excellent) 분석 플랫폼
 바람직한 분석시스템의 구축은 분석엔진을 중심으로 마련된 저비용(Low
Cost)이지만 고성능이며 확장성이나 인터페이스가 뛰어난 (Excellent)
Analytic Platform(분석 플랫폼)을 중심으로 이루어져야 함
•Efficiency
분석 플랫폼
•Agility
• 저비용
− 오픈 소스 소프트웨어 기반으로 구축해 최대한 도입비용을 낮춰야 함
• 고성능
− 구현 사상을 고려하였을 때, 빠른 계산처리 및 새로운 알고리즘,
방법론이 제공되어야 함
•Scalability
• 확장 및 통합 용이성
− 독립된 형태의 분석 시스템 구축 없이 분산 처리를 통한 처리가
가능하여야 함
− Hadoop과 같은 오픈소스 기반의 솔루션을 활용할 수 있음
• 구현 신속성
− 분석 방법이나 결과 등을 오브젝트로 관리하여 공유,
재활용이 가능하여야 함
− 정형화된 분석 프로세스의 패키징이 용이하여 이관이나
재활용이 용이하여야 함
56
감사합니다
김준기
Tel : 010-7109-7291
email : [email protected]
57
58
기본 사용법 (시작 환경 설정)
 R 시작 환경을 ‘R설치경로\library\base\R\Rprofile’ 파일을 통하여
변경 가능
59
기본 사용법 (작업공간 / 이력)
 작업공간(workspace)는 R 오브젝트의 저장소
 작업공간은 .RData 이름으로 저장
- 저장 위치는 기본적으로 working directory
- R은 메모리를 이용하여 작업이 수행되기 때문에 변경된 오브젝트 정보를 (R
종료시 혹은 R 작업시) 작업공간에 저장하지 않으면, 메모리에 있는 모든
오브젝트 정보가 사라지게 됨
 rm(list=ls(all=TRUE)) 입력 혹은 RGui 메뉴-기타-모든 오브젝트 삭제를
통하여 현재 작업공간 내의 모든 오브젝트를 삭제할 수 있음
 R Console에 입력된 command는 .Rhistory 이름으로 저장된다
- 화살표 키 ↑와 ↓를 통하여 입력된 command를 다시 R console에 표시
60
기본 사용법 (명령어)
 R에서 사용되는 기본적인 명령어는 사용자에게 익숙한 이름으로 되어 있음
- help()
도움말을 보여줌
 그리고 programming language로서의 요소를 가지고 있음
- <-
<- 오른쪽에 위치한 정보를 왼쪽의 정보로 assign
예) temp.x <- 3
temp.x라는 이름의 변수에 3을 할당
 오브젝트 이름에 한글명 사용 가능
- 문자 a~z, A~Z와 숫자 0~9, ‘ . ’, ‘ _ ’의 조합으로 구성, 대소문자를 구분함
- 첫 문자로 숫자와 ‘_’는 사용 불가
- if, for와 같이 R에서 사용되는 이름은 사용 불가
61
기본 사용법 (스크립트)
 R Console은 기본적으로 한 줄만 처리
- R Console에서 명령어를 입력하고 실행 키를 누를 때 명령이 완료되지
않아 추가적인 입력이 필요하면 ‘+’ 표시가 나타나 추가적인 입력을 기다림
- 한 줄에 여러 명령이 있을 경우 ‘;’로 구분하여 처리
- 주석(comment)은 ‘#’으로 시작되며 이후의 명령은 처리되지 않음
 여러 줄을 한꺼번에 처리하고자 할 때 스크립트를 이용하게 됨
- R 편집기 창을 이용해 스크립트를 작성하게 되고, 줄 또는 선택영역
실행(Ctrl + R)을 통하여 스크립트가 R Console로 이동되어 처리가 됨
- 여러 작업을 한꺼번에 처리하거나, 사용자 함수처럼 여러 줄로 이루어진
하나의 개체를 생성하고자 할 때 유용하게 사용됨
62
기본 사용법 (사용자 함수)
 동일한 과정의 데이터 처리 및 분석을 수행할 때 사용자 함수를 작성하게 됨
 사용자 함수는 R package에서 제공되어지는 함수를 변경하여 나만의 함수로
작성해도 됨
 사용자 함수는 함수명, argument로 구성된다
 R 편집기 창을 이용하여 스크립트로 사용자 함수 작성 예
 사용자 함수 실행
- > ex.1.fn(1, 5, 9)
ex.1.fn(input1 = 1, input2 = 5, input3 = 9)
[1] 45
63
기본 사용법 (패키지)
 package란 R에서 사용가능한 object의 모음으로서 데이터, 함수 등이 포함
 기본적으로 제공되는 package 이외의 추가 package는 CRAN을 통하여 혹은
‘RGui 메뉴 - 패키지’를 통하여 다운로드 및 설치가 가능
 package는 R 설치경로 아래의 library 디렉토리에 디렉토리 형태로 위치
 R Console에서 package를 사용하기 위해서는 library(패키지이름)을 입력
 로딩된 package는 기본적으로 Search Path 2번에 위치하게 됨
 패키지 인스톨 : xlsReadWrite 패키지
- 메뉴 ‘패키지’ - 패키지 인스톨
- CRAN mirror : Korea 선택
- Packages :xlsReadWrite 선택
64
기본 사용법 (주요 데이터 객체)
 벡터(vector) : 하나 이상의 자료 값으로 구성된 1차원의 자료구조
 행렬(matrix) : 동일한 유형의 자료 값으로 구성된 행과 열의 2차원 자료구조
 데이터 프레임(data frame) : 변수와 관측치로 구성된 2차원의 자료구조
 배열(array) : 동일한 유형의 자료 값으로 구성된 2차원 이상의 자료구조
 리스트(list) : 서로 다른 자료 유형으로 구성이 가능
 시계열(time series) : 시간 등과 같이 일련의 시간 자료를 표현하는 자료구조
Tip : 데이터 객체 보기
sapply(ls(), function(x) class(get(x)))
65
기본 사용법 (함수)
 R 함수는 함수명(아규먼트) 입력을 통하여 수행
> cor
함수명을 R Console 창에 입력하면 R Code가 출력
function (x, y = NULL, use = "everything", method = c("pearson",
"kendall", "spearman"))
{
na.method <- pmatch(use, c("all.obs", "complete.obs", "pairwise.complete.obs",
"everything", "na.or.complete"))
…
}
<environment: namespace:stats>
> args(cor)
args 함수를 이용하여 cor 함수의 아규먼트를 알아봄
function (x, y = NULL, use = "everything", method = c("pearson", "kendall",
"spearman"))
66
기본 사용법 (함수)
> args(cor)
function (x, y = NULL, use = "everything", method = c("pearson", "kendall", "spearman"))
> cor(x = longley)
x 아규먼트로 longley 데이터 입력
GNP.deflator
GNP Unemployed Armed.Forces Population
Year Employed
GNP.deflator
1.0000000 0.9915892 0.6206334
0.4647442 0.9791634 0.9911492 0.9708985
GNP
0.9915892 1.0000000 0.6042609
0.4464368 0.9910901 0.9952735 0.9835516
Unemployed
0.6206334 0.6042609 1.0000000
-0.1774206 0.6865515 0.6682566 0.5024981
Armed.Forces
0.4647442 0.4464368 -0.1774206
1.0000000 0.3644163 0.4172451 0.4573074
Population
0.9791634 0.9910901 0.6865515
0.3644163 1.0000000 0.9939528 0.9603906
Year
0.9911492 0.9952735 0.6682566
0.4172451 0.9939528 1.0000000 0.9713295
Employed
0.9708985 0.9835516 0.5024981
0.4573074 0.9603906 0.9713295 1.0000000
> cor(longley)
첫번째 아규먼트는 x로 정의되어 있으므로 아규먼트 명 입력없이 수행해도 똑같은 결과를 얻음
GNP.deflator
GNP Unemployed Armed.Forces Population
Year Employed
GNP.deflator
1.0000000 0.9915892 0.6206334
0.4647442 0.9791634 0.9911492 0.9708985
GNP
0.9915892 1.0000000 0.6042609
0.4464368 0.9910901 0.9952735 0.9835516
Unemployed
0.6206334 0.6042609 1.0000000
-0.1774206 0.6865515 0.6682566 0.5024981
Armed.Forces
0.4647442 0.4464368 -0.1774206
1.0000000 0.3644163 0.4172451 0.4573074
Population
0.9791634 0.9910901 0.6865515
0.3644163 1.0000000 0.9939528 0.9603906
Year
0.9911492 0.9952735 0.6682566
0.4172451 0.9939528 1.0000000 0.9713295
Employed
0.9708985 0.9835516 0.5024981
0.4573074 0.9603906 0.9713295 1.0000000
67