목차
- 다중변수 자료 중 이변량 자료
- 저수준 차트 함수
- 산점도
- 상관분석
- 선 그래프
- BostonHousing 탐색적 데이터 분석
1. 다중변수 자료 중 이변량 자료
다중변수 자료는 두 개 이상의 변수로 구성된 자료로 다변량 자료라고도 한다.
2개의 변수로 구성된 자료는 이변량 자료라고 한다.
다중변수 자료는 매트릭스나 데이터프레임으로 저장된다.
하나의 열(column)이 하나의 변수이고, 열의 개수가 변수의 개수가 된다.
이변량 자료의 시각화를 하기 위해 데이터를 불러온다.
plot() 함수 안에 수치형 데이터와 수치형 데이터를 넣으면, 자동으로 산점도가 그려진다.
plot() 함수 안에 팩터형 데이터와 수치형 데이터를 넣으면, 팩터의 레벨별로 상자 그림이 그려진다.
plot() 함수 안에 수치형 데이터와 팩터형 데이터를 넣으면, 수치형 데이터와 수치형 데이터를 넣었을 때처럼 산점도가 그려진다.
plot() 함수 안에 팩터형 데이터와 팩터형 데이터를 넣으면, 모자이크플롯이 그려진다.
제일 처음 plot() 함수에 age 변수와 height 변수를 넣은 결과와 height 변수와 age 변수를 넣은 결과가 동일하게 나타나는 것을 확인할 수 있다.
plot() 함수에 변수를 넣는 방법은 크게 2가지가 있는데, 독립변수, 종속변수 형태로 지정하는 방법과 종속변수~독립변수 형태로 지정하는 방법이 있다.
2. 저수준 차트 함수
그래프를 그리면서 여러 세부 사항을 나타내는 방법을 살펴보면, 우선 plot() 함수에서 ann 매개변수를 F로 지정해 주었을 경우 축 레이블이 생략되는 결과를 얻을 수 있다.
그래프를 생성한 뒤에 title() 함수를 통해 그래프의 제목과 각 x축, y축 제목을 지정할 수 있다.
title() 함수 안에 main 매개변수는 그래프의 제목을 지정하는 매개변수이다.
xlab 매개변수와 ylab 매개변수는 각 x축 레이블과 y축 레이블을 지정하는 매개변수이다.
grid() 함수는 그래프에 눈금선을 추가하는 함수이다.
abline() 함수는 그래프 안에 선을 추가하는 함수이다.
v 매개변수에 추가할 선에 대한 값을 지정해 주면 된다.
col 매개변수에는 추가할 선의 색상을 지정할 수 있다.
3. 산점도
x축 변수를 수치형 데이터로 할 경우 산점도 그래프가 그려진다.
두 변수 사의의 산점도는 plot() 함수로 쉽게 나타낼 수 있다.
plot() 함수 안에 각 x축 변수, y축 변수만 지정해도 산점도를 그릴 수 있다.
추가로 main 매개변수, xlab 매개변수, ylab 매개변수, col 매개변수, pch 매개변수 등을 그래프 그림과 동시에 지정해 줄 수도 있다.
두 변수가 아니라 여러 변수들 간의 산점도를 한 번에 알아보고 싶을 때는 pairs() 함수를 사용하면 된다.
pairs() 함수 안에 데이터셋을 입력하면 가능한 모든 변수의 조합에 대해 산점도를 그려준다.
pairs() 함수 안에서도 main 매개변수나 col 매개변수 등을 동시에 설정할 수 있다.
plot() 함수를 통해 산점도를 그릴 때, 데이터의 종류별(그룹별) 정보가 있을 경우 값마다 색상을 다르게 지정할 수도 있다.
iris 데이터에서 Species(종) 변수의 그룹별 값을 숫자형으로 바꿔 저장한다.
plot() 함수 안에 산점도를 그릴 데이터를 넣고, col 매개변수에 색상을 지정해 주면 그룹별 값에 따라 각 점이 다른 색상으로 나타나는 것을 확인할 수 있다.
pch 매개변수를 통해 각 점의 모양 또한 다르게 설정할 수도 있다.
4. 상관분석
상관분석은 얼마나 선형성을 보이는지 수치상으로 나타낼 수 있는 방법이다.
상관분석은 피어슨 상관계수로 상관성을 나타낼 수 있다.
피어슨 상관계수는 -1부터 1 사이의 값을 가지며, 양의 값을 갖는 경우 양의 상관관계를 의미하고 음의 값을 갖는 경우 음의 상관관계를 의미한다.
값이 0일 경우 상관관계가 없음을 의미한다.
상관계수의 절댓값이 1에 가까울수록 상관성이 높다고 할 수 있다.
R에서 상관관계를 알아보기 위해 우선 데이터에 대한 산점도를 그린다.
산점도를 나타낸 후, 그래프 위에 회귀식을 도출하여 추가한다.
회귀식은 lm() 함수를 사용해 구할 수 있다.
lm() 함수 안에 데이터셋과 각 독립변수, 종속변수를 지정해 주면 된다.
구한 회귀식은 abline() 함수를 사용해 그래프에 추가해 준다.
각 변수 간의 상관계수를 알고 싶을 때는 cor() 함수를 사용하면 된다.
cor() 함수 안에 상관계수를 알고 싶은 변수들을 지정해 주면 된다.
cor() 함수 안에는 2개의 변수만이 아니라 여러 변수도 넣을 수 있는데, 여러 개의 변수를 넣으면 각 변수의 가능한 모든 조합의 상관계수를 나타내어준다.
이를 통해 여러 변수 간 상관성을 한눈에 분석할 수 있다.
5. 선 그래프
plot() 함수를 사용해 선 그래프를 그릴 때는 선 그래프의 종류를 지정해 주면 된다.
데이터 말고 type 매개변수에 그래프의 종류를 지정하면 된다.
type 매개변수에 지정 가능한 그래프의 종류는 'l', 'b', 's', 'o' 등이 있다.
선 그래프를 그릴 때 x축에 지정하는 변수가 시간을 나타내는 값을 갖는 경우 시간 축을 나타낸다.
이를 통해 시간의 변화에 따른 자료의 증감 추이를 쉽게 확인할 수 있다.
해당 자료를 시계열 자료라고 하는데, 시계열 자료는 시간의 변화에 따라 자료를 수집한 경우를 의미한다.선 그래프는 시계열 자료의 내용을 파악하는 가장 기본적인 방법이다.
선 그래프를 그릴 때 만약 여러 개의 선들을 한 그래프에 나타내고 싶다면 plot() 함수로 선 그래프를 우선 그리고, lines() 함수를 통해 이미 그린 선 그래프 위에 선을 추가한다.
그러면 한 그래프 안에 선이 여러 개 나타나는 것을 확인할 수 있다.
6. BostonHousing 탐색적 데이터 분석
BostonHousing 데이터를 가지고 탐색적 데이터 분석을 수행하기 위해 mlbench 패키지를 설치한다.
mlbench 패키지를 설치하고 해당 스크립트에 불러온다.
불러온 mlbench 패키지 안의 BostonHousing 데이터를 불러와 데이터를 간단하게 살펴본다.
분석에 사용할 변수만을 따로 추출해 둔다.
추출한 데이터에서 숫자 형태로 저장되어 있는 특정 변수의 값을 반복문과 조건문을 활용해 문자 형태로 구별하고, 이를 팩터 형태로 변경하여 변수를 추가한다.
해당 과정을 여러 줄의 반복문과 조건문으로 작성할 수도 있지만 factor() 함수와 ifelse() 함수를 사용해 한 문장으로 쉽게 구현할 수도 있다.
팩터 형태로 구성된 변수를 추가한 후, table() 함수를 사용해 해당 변수의 도수분포표를 구할 수도 있다.
도수분포표를 확인하면 해당 주택 가격의 그룹별 분포를 쉽게 파악할 수 있다.
데이터를 가지고 히스토그램을 그려본다.
여기서 par() 함수는 여러 그래프를 한 화면에 분할하여 나타낼 수 있도록 해주는 함수이다.
par() 함수 안에 mfrow 매개변수에 벡터 형태로 분할할 행과 열의 개수를 지정해 주면, 지정해 준 행과 열의 개수로 화면이 분할된다.
분할된 화면에 반복문을 사용해 변수별 히스토그램을 그려줄 수 있다.
히스토그램 말고 상자 그림도 그려줄 수 있다.
그리고 분할한 화면을 해제할 때는 par() 함수에서 mfrow 매개변수 값을 c(1, 1)로 지정해 주면 된다.
c(1, 1)로 지정하면 화면이 1행 1열로 분할되는데, 즉 1개의 화면으로 분할되는 것을 의미한다.
다음으로는 이전에 그룹으로 나누어 추가했던 변수를 독립변수로 고정하고 종속변수를 계속 바꿔가며 상자 그림을 그려본다.
독립변수가 팩터 형태의 변수이므로 각 그룹별로 상자 그림이 각각 그려지는 것을 확인할 수 있다.
pairs() 함수로 모든 변수의 조합에 따른 산점도 그래프를 확인해 본다.
그룹을 나누었던 변수를 값별 정수 형태로 바꾸어 산점도의 각 점의 모양을 지정하고 각 색을 지정하여 그룹별 점의 모양과 색을 다르게 지정하여 산점도를 나타낸다.
마지막으로 cor() 함수를 활용해 모든 변수별 조합의 상관계수를 나타낼 수 있다.
나타낸 상관계수를 통해 각 변수의 상관성을 한눈에 파악할 수 있다.
'Data Science > R' 카테고리의 다른 글
[R 공부하기] 8. 데이터 전처리 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.07.12 |
---|---|
[R 공부하기] 6. 단일변수 자료 탐색 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.04.23 |
[R 공부하기] 5. 조건문, 반복문, 함수 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.04.12 |
[R 공부하기] 4. 데이터프레임 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.04.10 |
[R 공부하기] 3. 매트릭스 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.03.29 |
[R 공부하기] 2. 변수와 벡터 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.03.24 |
[R 공부하기] 1. R, R Studio 설치 및 사용 - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.03.15 |