project:eve
R을 이용한 데이터 분석 : 회귀분석 본문
저번 시간에 소개했던 상관분석에 이어 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 안에는 많은 데이터가 있는데 몇 가지만 알아볼게요.
맨 위에 있는 coefficients가 회귀계수(기울기)로 함수값을 출력하면 기본적으로 표시되는 데이터이구요.
residuals는 잔차로 실제 y값에서 분석 추정값 y값을 뺀 값을 의미합니다.
fitted.values는 분석 추정값을 의미합니다.
이 값들은 별개 함수를 사용해서도 가져올 수 있습니다. 또 분석값에 anova() 함수를 사용하면 분산분석표를 구할 수 있어요.
fitted(fit) # 분석 추정값
residuals(fit) # 잔차
confint(fit) # 독립변수의 신뢰구간별 값
anova(fit)
p-value를 보았을 때 유의수준 0.05에서 quarter가 제일 인과관계가 강하고 muscle이 가장 약한 것을 알 수 있습니다.
이 값들은 이전에 했었던 상관분석하고도 연관이 있는데요. 아래 이미지처럼 quarter와 time은 강한 양의 상관관계를 가지고 있고 muscle과 time은 약한 양의 상관관계를 가지고 있는 것을 알 수 있습니다.
하지만 상관관계는 어디까지나 인과관계를 검증할 수는 없다는 것, 회귀분석을 통해 각 변수의 인과관계를 검증할 수 있다는 점을 숙지하면 좋을 것 같아요!
'R' 카테고리의 다른 글
R을 이용한 데이터 분석 : 상관분석 (0) | 2022.12.30 |
---|---|
R을 이용한 통계자료 분석 : 분산분석 (0) | 2022.12.24 |