# naver search confirm # markdown number and equation R 회귀분석 //google adsense
본문 바로가기
R_데이터 분석 기술

R 회귀분석

by 노마드분석가 2022. 4. 13.

 

관련글

 

선형회귀분석 밑바닥부터 이해하기

관련글 상관관계와 상관계수 1. 들어가며 두 연속형 변수 X, Y에서 X가 변함에 따라 Y가 어떻게 변하는지 분석한다면 Y는 결과변수(반응변수)로 부르고 X는 설명변수(독립변수)로 부른다. 회귀 분

diseny.tistory.com

1. 들어가며

R 프로그래밍을 통해 실제로 회귀분석을 해보자. SPSS나 SAS를 주로 사용했던 사회과학 계열 출신들은 코딩 방식이 처음에는 헷갈리고 시간이 많이 걸릴 수 있지만 일단 익숙해지면 GUI 방식의 통계 소프트웨어보다 훨씬 더 편리하게 사용할 수 있을 것이다. 

 

2. 예제 데이터 : airquality

회귀분석 실습 데이터는 R 내장 데이터인 airquality를 사용한다.  "?airquality"라고 입력하고 엔터를 치면 해당 데이터에 대한 정보가 나타난다. 1973년 5월 ~ 9월 사이의 뉴욕시 공기 질에 관한 데이터이다. 먼저 데이터의 구조를 살펴보자.

 

str(airquality)

 

결과를 보면 153개의 데이터 수와 6개의 변수로 구성된 데이터프레임이다. Ozone, Solar.R 변수의 경우에는 NA(결측)값도 보인다. 

 

이 데이터의 변수간의 상관관계를 살펴보자. 

 

 

R을 이용해 상관계수 구하기

관련글 상관관계와 상관계수 1. 들어가며 상관계수의 개념에 대해서는 관련글을 참고하기 바란다. 이제 R을 이용해 상관계수를 구하고 간단하게 시각화하는 방법을 정리해보자. 피어슨 상관계

diseny.tistory.com

library(GGally) 
ggpairs(airquality)

 

Day, Month는 정수형 데이터(int)이지만 실제적으로 특정 범주(1~30일, 1~12월)를 의미하므로 기타 변수와의 상관관계는 당연히 없을 것이다. 반면  "Ozone" , "Solar.R" "Wind",  "Temp" 사이에는 다소 높은 상관관계가 보인다. 

 

3. 회귀모델 구축 기본 문법  

회귀모델을 만들려면 lm( ) 함수를 이용하는데 linear Model의 줄임말이다. 기본 문법은 다음과 같다. 

 

lm(반응변수 ~ 설명변수, 데이터프레임)

 

예를 들어 Temp가 반응변수 Ozone이 설명변수라면 다음과 같이 코딩한다. 

 

lm(Temp ~ Ozone, airquality)

 

문제는 설명변수가 2개 이상일 경우다. 이때는 몇 가지 연산자를 이용해야 한다. 

 

연산자 문법 설명
+ lm(Temp ~ Ozone + Solar.R + Wind, airquality) 설명변수를 + 연산자로 계속 붙인다. 
. lm(Temp ~ . , airquality) Temp를 제외한 모든 설명변수를 포함시킨다. 
- lm(Temp ~ . , -Wind, airquality) 설명변수에서 Wind를 제외 시킨다. 

 

설명변수가 2개 이상일 경우 변수간의 상호작용을 고려할 수도 있다. 이때는 다음과 같은 연산자를 이용한다. 

 

연산자 문법 설명
 :  lm(Temp ~ Ozone + Solar.R + Ozone : Wind, airquality) Ozone과 Wind의 상호작용 항을 포함시킨다
* lm(Temp ~ Ozone*Solar.R*Wind, airquality) 세 변수 Ozone, Solar.R, Wind간의 모든 상호작용 관계를 포함시킨다. 

 

위의 표에서 * 연산자는 아래와 같은 의미다. 

 

lm(Temp ~ Ozone*Solar.R*Wind, airquality) 
=lm(Temp ~ Ozone + Solar.R + Wind + Ozone : Solar.R + Solar.R : Wind + Ozone : Wind + Ozone : Solar.R : Wind,  airquality)

 

가장 기본적인 형태로 회귀모델을 구축해보자.

 

reg_model = lm(Temp ~ Ozone + Solar.R + Wind, airquality)

 

4. 회귀모델 결과 해석

구축된 회귀모델에 대한 결과는 아래와 같다. 

 

 

결과를 구성하는 정보 덩어리를 1~3까지 살펴보자. 

 

① : 회귀모델의 잔차에 대한 정보이다. 회귀모델은 잔차에 대한 중요한 가정을 설정하는데 이는 따로 살펴보겠다. 이 잔차는 평균이 0에 가까워야 한다.  

 

② : 회귀모델을 구성하는 변수들의 회귀계수와 그 변수가 모델에서 통계적으로 유의한가를 설명한다. 검은점선이 회귀모델을 구성하는 변수와 회귀계수다. 저 결과를 바탕으로 회귀모델을 다음과 같이 서술할 수 있다. 

 

Temp = 0.171*Ozone + 0.007*Solar.R - 0.329Wind + 72.418

 

회귀모델에서 Ozone 변수만이 통계적으로 유의하다는 결과를 얻었다. 회귀계소의 통계적 유의성은 귀무가설(회귀계수 = 0)이 사실이라면 해당 t value를 얻을 확률 값 Pr(>|t|)이 0.05보다 작을 경우 귀무가설을 기각하므로, 즉 회귀계수의 기울기가 0인지 아닌지를 따진다. 결과에서는 Ozone 만이 Pr(>|t|) < 0.05 이므로 통계적으로 유의하다. 

 

③ 두 가지 정보를 나타내 준다. 결정계수(R-Squared)와 F값에 대한 통계적 유의성이다. 이 모델은 다중회귀모델이므로 수정된 결정계수 (Adjusted R- suared)값을 보아야 하는데 0.485 이므로 높지도 낮지도 않은 모델 적합도이다. 또한 F값은 귀무가설(모든 회귀계수=0)이 사실이라라면 해당 F값을 얻을 확률을 보고 귀무가설 기각 여부를 결정하는데 F = 36.65이고 이 값을 얻을 확률이 4.729e-16, 즉 0.05보다 작으므로 귀무가설을 기각한다. 따라서 회귀계수 중 적어도 하나는 0이 아닌 것이다. 위의 회귀계수 검정 결과와 일치한다. 

 

관련글

 

결정계수(R^2)의 이해

1. 들어가며 선형회귀분석에서 모델의 적합도를 판단할 때, 결정계수(R^2)값이 중요한 판단 근거가 된다. 결정계수(R squared)의 의미에 대해 살펴보자. 2. 모델의 의미 예를 들어 <그림 1>과 같이 A ~ G

diseny.tistory.com

 

다중공선성(Multicollinearity)의 의미와 판별법

1. 기본개념 다중회귀분석은 점검해야 할 가정들이 꽤 많다. 그 중 하나가 다중공선성이다. 처음 학습하는 사람들은 모형에 투입되는 설명 변수간에 큰 상관 관계가 존재하면 회귀 모형 추정이

diseny.tistory.com

 

R 다중공선성 VIF 값 계산

관련글 다중공선성(Multicollinearity)의 의미와 판별법 1. 들어가며 관련글에서 다중공선성에 대한 이론적인 내용을 소개했으므로 이제 R을 이용해 VIF(분산팽창지수)를 계산하는 방법을 살펴보자. 2.

diseny.tistory.com

 

회귀진단

관련글 선형회귀분석 밑바닥부터 이해하기 선형회귀분석 밑바닥부터 이해하기 관련글 상관관계와 상관계수 1. 들어가며 두 연속형 변수 X, Y에서 X가 변함에 따라 Y가 어떻게 변하는지 분석한다

diseny.tistory.com

 

반응형

'R_데이터 분석 기술' 카테고리의 다른 글

R을 이용한 t-test와 효과 크기 계산  (0) 2022.05.04
R 랜덤포레스트(randomforest)  (0) 2022.05.03
R_의사결정나무 분석(rpart)  (0) 2022.05.02
R 교차표 작성  (0) 2022.04.08
R 주성분 분석  (0) 2022.04.07
R 다중공선성 VIF 값 계산  (0) 2022.04.04
wide & long 데이터 형태 전환  (0) 2022.04.04

댓글