다중변수 자료 탐색에는 산점도와 상관분석이있다.
산점도(scatter plot)는 2개의 변수로 구성된 자료의 분포를 알아보는 그래프, 관측단위별 값들의 분포를 통해서 2개의 변수 사이의 관계를 파악하는 것이다.
산점도 그리는법
print(mtcars)
wt <- mtcars$wt
mpg <- mtcars$mpg
plot(wt, mpg)
data(mtcars)
wt <- mtcars$wt
mpg <- mtcars$mpg
plot(wt, mpg,
# R 제공 mtcars 데이터셋
# 중량 자료
# 연비 자료
# 2개 변수 (x축, y축)
main = "중량-연비 산점도", # 제목
xlab = "중량(wt)",
ylab = "연비(mpg)",
col = "red",
pch = 19)
# x축 레이블
# y축 레이블
# point 컬러
# point 종류
산점도로 3개 이상의 변수사이의 관계도 파악 가능
다중산점도 그리는법
vars <- c("mpg", "disp", "drat", "wt") # 대상 변수
target <- mtcars[,vars] # 데이터프레임에서 위의 변수명을 가진 열 선택
head(target) # 데이터프레임 확인
pairs(target, main = "Multi Plots”) # 다중 산점도 생성
상관분석은 두 변수간의 관계를 분석하기 위해 사용됨
변수는 연속형 자료만 가능함(저번에 배운 구간척도, 비율척도)
ex) 키의 변화는 몸무게의 변화와 관계가 있는가? 가설: 키가 커지면 몸무게가 늘어난다
상관계수 r은 x와 y사 함께 변하는 정도/x와 y가 각각변하는 정도
두 변수간 X와 Y가 완전히 동일하면 상관계수 r은 +1 (양의상관관계)
두 변수간 X와 Y가 반대방향으로 완전히 동일하면 상관계수 r은 -1 (음의 상관관계)
두 변수간 X와 Y가 상관성이 없으면 상관계수 r은 0
상관분석
plot() 함수
plot() 함수는 x와 y의 2개 축을 기준으로 좌표를 찍듯이 그리는 컨셉을
가지는 함수
예시. plot(2,1)
plot() 함수는 산점도(scatter plot)를 그리는 함수
plot(벡터2(Y)~ 벡터1(X), data=데이터프레임)
데이터프레임을 생성하고 산점도
음주정도(beers)에 따라 혈중알코올농도(bal)가 변하는 정도
beers <- c(5, 2, 9, 8, 3, 7, 3, 5, 3, 5)
bal <- c(0.1, 0.03, 0.19, 0.12, 0.04, 0.095, 0.07, 0.06, 0.02, 0.05)
ca <- data.frame(beers, bal)
print(ca)
plot(bal~beers, data=ca) # 산점도
lm()함수는 리니어 모델의 약자로 선형모델을 맞추는데 사용
lm()함수는 y=ax+b형태의 1차식이며 두변수의 선형 관계를 가장 잘 나타낼수있는 선의 식을 자동으로 찾는역할을함
adline()함수- 그래프위에 선을 추가하고싶은경우 사용
lm(벡터2~벡터1, data=데이터프레임) # 회귀식 도출
abline(회귀식) # 회귀선 그리기
camodel <- lm(bal~beers, data=ca)
abline(camodel)
이런식으로 사용하면 됨,
cor()함수 = 상관계수를 구하는 함수
cor(beers,bal)
이런식으로 상관계수를 구함
기본값은 피어슨 상관계수임
상관계수 상관관계
± 0.9 이상 상관관계가 아주 높다
± 0.7 ~ 0.9 상관관계가 높다
± 0.4 ~ 0.7 상관관계가 있다
± 0.2 ~ 0.4 상관관계가 있으나 낮다
± 0.2 미만 상관관계가 거의 없다
선그래프
두개의 변수중 하나가 시간을 나타내는 값일때 사용함.
시계열 자료- 시간의 변화에 따라 자료의 증감추이를 확인
선그래프를 작성하는 함수는 산점도를 작성할때 사용한 plot()함수인데 여기서 매개변수 type의 값을 l로 하면 선그래프가 작성됨.
month <- 1:12
cold <- c(5,8,7,9,4,6,12,13,8,6,6,4)
plot(month, # x data
cold, # y data
main=“감기 환자 통계”, # 제목
type=“l”, # 그래프의 종류 선택(알파벳) Line
lty=1, # 선의 종류(Line Type) 선택
lwd=1, # 선의 굵기 선택
xlab=“month”, # x축 레이블
ylab=“cold patients”) # y축 레이블
복수 선그래프를 나타낼때
lines()함수를 이용하면됨
lines()함수는 좌표의 점들을 이어서 선을 그리는 함수임 plot()함수로 작성한 그래프 위에 선을 겹쳐서 그리는 역할
month <- 1:12
cold1 <- c(5,8,7,9,4,6,12,13,8,6,6,4)
cold2 <- c(4,6,5,8,7,8,10,11,6,5,7,3)
plot(month, # x data
cold1, # y data
main=“감기 환자 통계”, # 제목
type=“b”, # 그래프의 종류 선택(알파벳) Line
lty=1, # 선의 종류(Line Type) 선택
lwd=1, # 선의 굵기 선택
col=“red”, # 선의 색 선택(빨강)
xlab=“month”, # x축 레이블
ylab=“cold patients” # y축 레이블
ylim=c(1,15))# y축 값의 (하한, 상한)
lines(month, # x data
cold2, # y data
type=“b”, # 선의 종류 선택
col=“blue”) # 선의 색 선택(파랑)
요약 정리
산점도
-plot(x축,y축)
-main/xlab/ylab/col/pch
다중산점도
-pairs(target, main = "Multi Plots”)
-target <- 데이터프레임[,vars]
상관분석
-연속형 자료로만 가능
-plot()함수 #산점도
-lm(벡터2~벡터1, data=데이터프레임) # 회귀식 도출
-abline(회귀식)#회귀선 그리기
상관계수
– r = X와 Y가 함께 변하는 정도
– cor(벡터1,벡터2) # 상관계수 계산
– r은 +1 (양의상관관계) / R은 -1 (음의 상관관계) / R은 0
선그래프
– plot() 함수 # 산점도
– lines() 함수 # plot() 함수로 작성한 그래프 위에 선을 겹쳐서 그리는 역할