Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

project:eve

R을 이용한 데이터 분석 : 회귀분석 본문

R

R을 이용한 데이터 분석 : 회귀분석

eveee 2022. 12. 31. 11:11

저번 시간에 소개했던 상관분석에 이어 R을 이용해 회귀분석을 하는 과정을 소개해드리려고 해요.

상관분석은 회귀분석과 연관이 있는 부분이기 때문에 궁금하신 분들은 아래 링크를 참고해 주세요~!

2022.12.30 - [R] - R을 이용한 데이터 분석 : 상관분석

 

회귀분석이란? 종속변수의 변화 상태를 다른 독립변수로 설명하는 방법입니다.

즉 종속변수와 독립변수간의 인과 관계에 주목하며 독립변수가 종속변수의 변화에 얼마나 영향을 미치는지 알아낼 수 있습니다. 또 상관분석과 달리 분석한 결과로 수식을 세울 수 있습니다.


회귀분석을 진행하기 위해 먼저 자료를 가져올게요. 이전에 상관분석에서 사용했던 health.csv 자료를 동일하게 사용하겠습니다. 

**혹 데이터를 직접 받아 실습해보고 싶다면 위의 상관분석 페이지에서 다운로드 받으세요!

health<-read.csv('/Users/eve/Downloads/rpy/health.csv')
head(health)

 

이 자료는 헬스클럽에서 사용자들의 신체 정보와 운동 시간을 기록한 것인데요.

우리가 분석을 하는 목적은 "사용자의 각 신체 정보들이 운동 시간에 얼마나 영향을 미치는가?" 입니다.

따라서 분석의 가설을 이렇게 세울 수 있습니다.

 

귀무가설 : 신체 정보가 운동 시간에 영향을 미치지 않는다 = 신체 정보와 운동 시간은 인과관계가 없다.

대립가설 : 신체 정보가 운동 시간에 영향을 미친다 = 신체 정보와 운동 시간이 인과관계에 있다.

 

그러면 이제 분석 함수를 사용해 분석해 보겠습니다.

lm(종속변수 ~ 독립변수, data=데이터프레임)의 형태로 작성하되 독립변수가 종속변수를 제외한 데이터프레임의 모든 컬럼이라면 온점 기호로 대신할 수 있어요.

health2 <- health[, -1]

fit <- lm(time ~., data=health2)

fit

함수값을 그대로 출력했을 때는 이런 식으로 절편과 각 독립변수의 회귀계수(기울기)가 표시됩니다. 이것으로 회귀 그래프를 그릴 때 사용할 수 있습니다. 또 fit 안에는 많은 데이터가 있는데 몇 가지만 알아볼게요.

fit에 들어있는 회귀 데이터 목록

맨 위에 있는 coefficients가 회귀계수(기울기)로 함수값을 출력하면 기본적으로 표시되는 데이터이구요.

residuals는 잔차로 실제 y값에서 분석 추정값 y값을 뺀 값을 의미합니다.

fitted.values는 분석 추정값을 의미합니다.

 

이 값들은 별개 함수를 사용해서도 가져올 수 있습니다. 또 분석값에 anova() 함수를 사용하면 분산분석표를 구할 수 있어요.

fitted(fit)    # 분석 추정값
residuals(fit) # 잔차
confint(fit)   # 독립변수의 신뢰구간별 값
anova(fit)

fit에 없는 데이터여서 표시했어요.

 

p-value를 보았을 때 유의수준 0.05에서 quarter가 제일 인과관계가 강하고 muscle이 가장 약한 것을 알 수 있습니다.

이 값들은 이전에 했었던 상관분석하고도 연관이 있는데요. 아래 이미지처럼 quarter와 time은 강한 양의 상관관계를 가지고 있고 muscle과 time은 약한 양의 상관관계를 가지고 있는 것을 알 수 있습니다. 

하지만 상관관계는 어디까지나 인과관계를 검증할 수는 없다는 것, 회귀분석을 통해 각 변수의 인과관계를 검증할 수 있다는 점을 숙지하면 좋을 것 같아요!

'R' 카테고리의 다른 글

R을 이용한 데이터 분석 : 상관분석  (0) 2022.12.30
R을 이용한 통계자료 분석 : 분산분석  (0) 2022.12.24