SW/R

R : 데이터 마이닝과 단순 선형 회귀 (개념 및 예제)

얇은생각 2019. 3. 10. 12:30
반응형

데이터 마이닝

지금까지는 주로 전통적인 통계 분석 도구를 이용하여 데이터를 분석하는 방법을 배웠습니다. 데이티 마이닝 도구를 학습하면 데이터로 부터 다양한 정보를 얻을 수 있습니다. 데이터 마이닝은 데이터 안에서 의미 있는 패턴, 추세 등을 발견해나가는 과정을 의미합니다.  앞으로 회귀분석, 분류, 군집화 등에 대해 알아보겠습니다.



단순 선형 회귀

종속 변수(y) 와 독립변수(x) 사이의 선형 관계를 파악하고 이를 예측에 활용하는 방법을 뜻합니다.  (x)와 (y) 사이의 관계식을 모델(model) 이라 한다. 보통 회귀 모델, 예측 모델이라 합니다.


단순 선형 회귀식은 다음과 같은 형태를 나타냅니다.


y = Wx + b


즉, 상수인 W와 b 를 찾는 것이 모델을 만드는 과정이다. 현실세계에서는 두 변수가 선형 관계에 있는 경우가 많아서 선형회귀 분석이 유용합니다. 두변수가 선형 관계에 있는지 알아보는 방법은 두가지가 있습니다. 바로 산점도와 상관계수입니다.



회귀식에서 W 와 b 를 찾는 방법


다음과 같이 산점도를 통해 상관계수를 유추합니다. 유추하는 과정에서 아래와 같이 예측값, 실제값, 오차가 발생합니다.




R 을 이용하여 회귀 모델 구하기

head(cars)
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
# 4 7 22
# 5 8 16
# 6 9 10
plot(dist~speed, data=cars)
model <- lm(dist~speed, cars)
model

# Call:
# lm(formula = dist ~ speed, data = cars)

# Coefficients:
# (Intercept) speed
# -17.579 3.932

coef(model)[1] # b
# (Intercept)
# -17.57909
coef(model)[2] # W
# speed
# 3.932409


주행속도(speed) 와 제동 거리(dist) 사이의 회귀식을 구해보았습니다. 종속, 독립 변수를 모델에 입력하여 b와 w를 구하였습니다. 완성된 모델은 아래와 같습니다.


dist = 3.932 * speed - 17.579


구한 값을 회귀식에 대입하면 됩니다. 이 모델을 통해 각 속도마다 예상 제공 거리를 구할 수 있겠죠?


모델의 예측값과 실제값 사이에 어느정도 차이가 나는지 알수있습니다. 아래 예제를 참조하세요.

speed <- cars[,1]
pred <- 3.932 * speed - 17.579
pred
# [1] -1.851 -1.851 9.945 9.945 13.877 17.809 21.741
# [8] 21.741 21.741 25.673 25.673 29.605 29.605 29.605
# [15] 29.605 33.537 33.537 33.537 33.537 37.469 37.469
# [22] 37.469 37.469 41.401 41.401 41.401 45.333 45.333
# [29] 49.265 49.265 49.265 53.197 53.197 53.197 53.197
# [36] 57.129 57.129 57.129 61.061 61.061 61.061 61.061
# [43] 61.061 68.925 72.857 76.789 76.789 76.789 76.789
# [50] 80.721
compare <- cbind(pred,cars[,2],abs(pred-cars[,2]))
compare
# pred
# [1,] -1.851 2 3.851
# [2,] -1.851 10 11.851
# [3,] 9.945 4 5.945
# [4,] 9.945 22 12.055
# [5,] 13.877 16 2.123
# [6,] 17.809 10 7.809

plot(dist~speed, data=cars)
abline(coef(model))



회귀식을 산점도에 표현할 수 있습니다. 위 예제에 있는 plot 함수와 abline을 통해 데이터를 가시화하여 얼마나 차이나는지 눈으로 확인할 수 있습니다.

반응형