R에 내장된 Anscombe 4개의 data sets을 살펴보고 plot(산점도) graph를 그리는 과제를 받았다.
Anscombe는 Anscombe's quartet로 알려진 자료로
Francis Anscombe라는 통계학자가 그래프는 중요하지 않다는 다른 사람의 의견에 반발하며 임의의 데이타셋 값이지만 같은 회귀분석선을 그리는 자료를 만들어냈다.
이걸 비교함으로써 숫자 상으로 보는 것도 중요하지만 그래프를 그려보면 보이지 않는 다른 면도 볼 수 있다는 것을 알 수 있다.
이것을 비교하기 위해서 아래의 코드를 R에서 실행해서 plot graph(산점도)를 그릴 수 있다.
- 목 차 -
1. anscombe dataset에서 최솟값과 최댓값을 찾아내기 → 목적: x축과 y축의 그래프 값 설정하기
2. 4개의 dataset에서 회귀분석선(lm) 구하기
4. plot(산점도)과 abline(회귀분석선) 그리기
1. anscombe dataset에서 최솟값과 최댓값을 찾아내기 → 목적: x축과 y축의 그래프 값 설정하기
min(anscombe$x1,anscombe$x4)
max(anscombe$x1,anscombe$x4)
min(anscombe$y1,anscombe$y4)
max(anscombe$y1,anscombe$y4)
- min : 최솟값을 구한다는 명령어
- max : 최댓값을 구한다는 명령어
- anscombe는 자료의 이름
- $ : 변수를 지정한다는 명령어
- x1, x4: 독립변수 또는 설명변수
- y1, y4: 종속변수 또는 결과변수
의문: 위의 식으로 범위를 지정하면 x1~x4 모든 데이터셋에서 추출한 것인가?
아니면 x1과 x4 두 개의 데이터셋에서만 추출한 것인가?
2. 4개의 dataset에서 회귀분석선(lm) 구하기
data1<-lm(y1~x1,data=anscombe)
data2<-lm(y2~x2,data=anscombe)
data3<-lm(y3~x3,data=anscombe)
data4<-lm(y4~x4,data=anscombe)
- <- : 이 모양 기준 오른쪽의 내용(lm(y1~x1, data=anscombe)을 왼쪽의 이름(data1)으로 넣겠다는 기호
- lm : linear model의 약자로 회귀분석선(선형모델)을 구하는 명령어
- y1~x1 : x1은 x축의 독립변수(설명변수), y1은 y축의 종속변수(결과변수)로 변수를 지정
- data= : 사용할 자료명을 나타내는 명령어
- data1 : 내가 알아보기 쉽게 지은 이름을 가진 변수로 여기서는 x1~y1의 회귀분석선 값을 가지고 있다
3. 그래프 네 개를 한꺼번에 볼 수 있도록 세팅하기
par(mfrow=c(2,2))
- par : parameters의 약자로 그래프의 모습을 설정할 수 있는 명령어
- mfrow : multiple figure row의 약자로 여러 개의 도표를 행(row, 왼쪽에서 오른쪽 방향)으로 개수를 먼저 지정하는 명령어
(Example) par(mfrow=c(2,1)
cf. mfcol : multiple figure column의 약자로 여러 개의 도표를 열(column, 위에서 아래 방향)으로 개수를 먼저 정하는 명령어
(Example) par(mfcol=c(2,1)
- c : combind의 약자로 결합이라는 의미를 가진다. 내가 생각하는 이 명령어의 역할은 괄호 안의 숫자들을 한 뭉치로 여기라고 얘기해 주는 역할이라고 생각한다. 즉 여기서는 (2,1)을 하나로 묶어서 왼쪽에 넣으라는 뜻이다.-이건 주관적인 생각이니 참고만 바란다.-
4. plot(산점도)과 abline(회귀분석선) 그리기
plot(y1~x1,xaxt="none",data=anscombe,xlab="X1",ylab="Y1",xlim=c(4,19),ylim=c(4,13),pch=16,col="blue")
axis(1,seq(4,19,2))
abline(data1,col="red")
- plot : 산점도 즉, 데이터를 점으로 찍어서 표시하는 명령어
- y1~x1 : x1은 x축의 독립변수(설명변수), y1은 y축의 종속변수(결과변수)로 변수를 지정
- xaxt="none" : x축 값을 표현하지 말라는 명령어 -이 명령어 아래에 다른 속성을 지정할 수 있는지는 모르겠다.-
cf. yaxt="none" : y축 값을 표현하지 말라는 명령어
- xlab="X1" : x축 이름을 X1으로 표시하라는 명령어
- ylab="Y1" : y축 이름을 Y1으로 표시하라는 명령어
- xlim=c(4,19) : x축의 limits(정도) 즉 범위를 4~19(최솟값:4, 최댓값:19)까지 표시하라는 명령어
- ylim=c(4,13) : y축의 범위를 4~13(최솟값:4, 최댓값:13)까지 표시하라는 명령어
- pch=16 : point character의 약자로 산점도 그릴 때 찍는 점의 모양을 지정하는 명령어. 기본값은 빈 동그라미 원, 현재 16은 채워진 동그라미 원
cf. cex=2 : pch 뒤에 쓰일 경우 점의 크기를 조절할 수 있는 명령어로 숫자의 배수만큼 커진다.
2의 경우 2배 커지고 0.5의 경우 2배 작아진다.
- col="blue" : 산점도에 찍히는 점의 색깔을 지정할 수 있는 명령어로 색깔의 이름을 큰따옴표 안에 넣어주면 된다.
cf. col=4 : 정해진 8개의 인덱스 즉 색깔표에서 색깔(파랑)을 지정.
col=RGB(0,0,255) : Red, Green, Blue 세 가지 색의 배합 정도를 지정해서 색깔(파랑)을 지정
col=#0000FF : 색상표의 코드를 찾아서 색깔(파랑)을 지정
- axis(1, seq(4,19,2)) : 그래프의 축에 대한 간격을 임의로 지정할 수 있는 명령어. 1은 x축, 2는 y축이며 sequence는 순서를 지정하는 것으로 4(최솟값), 19(최댓값), 2(간격)이다. x축 값이 4,6,8,10,12,14,16,18로 표시된다.
cf. axis(2, seq(4,13,2)) : y축의 범위를 4~13으로 표시하되 간격은 2로 표시하라는 명령어로 y축 값이 4,6,8,10,12로 표시된다.
* 주의점
xlim 또는 ylim과 axis 설정은 별개로 본다. xlim는 그래프의 실제 범위를 지정해 주는 것이고 axis는 현재 데이터에서 seq에서 지정한 19가 없고 마지막 데이터 값이 15면 14가 x축의 마지막으로 표시된다. 그래서 두 개를 모두 지정해야 없는 데이터의 값도 표시가 되어 4개의 그래프 비교가 가능하다.
- abline : 일직선으로 선을 그리라는 명령어로 여기서는 위에서 구한 lm이 들어간 변수를 넣어주면 된다.
<주의점>
dev.off() :
그래프 모드를 종료할 때 쓰는 명령어로 이 명령어를 입력하지 않으면 데이터가 중첩되어서 정확한 그래프가 그려지지 않으므로 새로운 자료의 그래프를 그릴 시에는 꼭 실행하도록 한다.
'글쓰기 > 생각정리' 카테고리의 다른 글
[배틀그라운드 모바일 탐험기] 그들의 이야기를 엿듣다! 제2탄 (1) | 2023.02.21 |
---|---|
[배틀그라운드 모바일 탐험기] 그들의 이야기를 엿듣다! 제1탄 (0) | 2023.02.16 |
[PEL official version - BATTLE GROUND MOBILE] HOW TO WATCH HUYA LIVE STREAMING 후야에서 화평정영 보는법 (0) | 2023.02.15 |
[배틀그라운드 모바일 탐험기] 팀킬을 당하다! (0) | 2023.02.12 |
[R ] 패키지 설치시 디렉토리를 설정을 변경하라는 메시지_Would you like to use a personal library instead? (1) | 2023.02.08 |
[데이터라벨링 탐험]데이터라벨링 알바로 돈을 벌 수 있을까? (0) | 2023.02.06 |
성공일기쓰기-2023.02.05. (0) | 2023.02.05 |
[챗GPT 탐험기] 코딩이 가능하다고? (0) | 2023.02.02 |
댓글