본문 바로가기
정보글

회귀 분석 개념과 r 언어 활용법

by 노트컴히어 2023. 6. 29.

1. 회귀 분석의 개념

 

 

 

회귀 분석은 독립 변수와 종속 변수 사이의 관계를 모델링하는 통계적 기법이다. 이 때, 독립 변수는 종속 변수에 영향을 미치는 요인, 종속 변수는 독립 변수에 의해 결정되는 결과값을 의미한다.

 

회귀 분석은 주로 두 변수의 선형적 관계일 때 사용되며, 머신러닝에서도 일반적으로 사용된다. 예를 들어, 전통적인 회귀 분석에서는 상관 관계 분석을 통해 독립 변수와 종속 변수 간의 관계를 검증하게 된다.

 

데이터 분석에서 회귀 분석은 데이터의 적합성 검사와 예측 모델 구축에 매우 유용하게 사용된다. 회귀 분석은 많은 방법으로 수행될 수 있지만, 가장 일반적인 방법은 최소 제곱법을 이용한 선형 회귀 분석이다.

 

회귀 분석은 R 프로그래밍 언어를 통해 수행할 수 있다. R은 무료로 사용 가능하며, 데이터 분석 및 시각화에 매우 탁월한 라이브러리와 함수를 제공한다.

 

 

 

2. 회귀 분석의 종류

 

 

 

2.1 단순 회귀 분석

 

단순 회귀 분석은 한 개의 독립 변수와 한 개의 종속 변수 사이의 선형 관계를 분석하는 방법이다. 예를 들어, 광고 지출액과 판매량 간의 관계를 분석하거나, 학업 성취도와 공부시간 간의 관계를 분석하는 경우 등이 있다.

 

2.2 다중 회귀 분석

 

다중 회귀 분석은 두 개 이상의 독립 변수와 한 개의 종속 변수 사이의 선형 관계를 분석하는 방법이다. 단순 회귀 분석보다 더 다양한 현실세계에서 복잡한 관계를 분석할 수 있다. 예를 들어, 집값에 영향을 미치는 요인이 많은데, 이 중에서 지역, 연식, 주변 교통 상황, 층수 등의 독립 변수들이 집값에 미치는 영향을 분석하는 경우이다.

 

2.3 로지스틱 회귀 분석

 

로지스틱 회귀 분석은 단순하고 간단한 구조의 독립 변수들과 이진 혹은 범주형 종속 변수 사이의 관계를 모형화하는 데 사용된다. 로지스틱 회귀 분석은 일반적인 회귀 분석과 달리 로짓 함수를 사용하여 종속 변수가 0 또는 1의 값을 갖는 이진 상황에 대해 분류분석 수행이 가능하다. 이를 예로 들면, 의료 분야에서 암 환자 후 체력회복 여부, 대출 승인 여부 등을 예측하는 경우가 있다.

 

2.4 다항 회귀 분석

 

다항 회귀 분석은 종속 변수와 하나 이상의 독립 변수 간의 비선형 관계를 모델링하는 데 사용된다. 예를 들어, 기상 데이터를 분석해 온도와 강수량 등의 모수들이 관측한 데이터와 비선형적인 관계를 형성하는 경우, 다항 회귀 분석을 수행하여 이를 모델링하고 예측하는 방법이 있다.

 

2.5 비선형 회귀 분석

 

비선형 회귀 분석은 종속 변수와 하나 이상의 독립 변수 간의 비선형 관계를 모델링하는 데 사용된다. 비선형 회귀 분석은 매우 다양한 현상들을 모선할 수 있어 의료, 환경, 생물학, 경제 등 많은 분야에서 활용되고 있다. 예를 들어, 경제학에서는 실업률과 물가 수준 사이의 관계, 환경학에서는 대기 오염 농도와 인구 건강 상태의 관계 등이 있다.

 

 

 

3. 회귀 분석에서 사용되는 용어들

 

 

 

- 독립 변수 (Independent variable) : 결과 값에 영향을 주는 원인 변수. 또는 설명 변수라고도 불림. x로 표기.

 

- 종속 변수 (Dependent variable) : 독립 변수에 의해 영향을 받는 값. 결과 변수라고도 불림. y로 표기.

 

- 회귀 분석 (Regression analysis) : 독립 변수와 종속 변수 간의 상관 관계를 분석하는 방법 중 하나로, 대부분 연속형 변수를 대상으로 함.

 

- 단순 회귀 분석 (Simple regression analysis) : 하나의 독립 변수와 하나의 종속 변수 간의 관계를 분석하는 방법.

 

- 다중 회귀 분석 (Multiple regression analysis) : 여러 개의 독립 변수들과 한 개의 종속 변수 간의 관계를 분석하는 방법.

 

- 회귀 계수 (Regression coefficient) : 독립 변수가 1 증가할 때 종속 변수가 변하는 크기를 나타내는 값. 회귀 직선의 기울기에 해당함.

 

- 상관 계수 (Correlation coefficient) : 두 변수 간의 상관 관계를 나타내는 값. -1과 1 사이의 값으로 표시됨.

 

- t-value : 변수의 회귀 계수가 0과 유의하게 다른지를 검증하는데 사용되는 값. 그 값이 클수록 해당 변수가 유의미한 역할을 한다는 것을 의미함.

 

- F-value : 회귀 분석의 전체적인 성능을 측정하는 지표. 회귀 모델이 얼마나 나쁘지 않은지를 나타냄.

 

- 잔차 (Residual) : 회귀 분석에서 예측한 값(y_hat)과 실제 값(y) 사이의 차이.

 

- 결정 계수 (R-squared) : 독립 변수들이 종속 변수의 변동을 얼마나 설명하는지를 나타내는 값. 0과 1 사이의 값으로 표현되며, 높을수록 모델의 예측 능력이 높다는 것을 의미함.

 

 

 

4. R 언어를 활용한 단순 회귀 분석 예제

 

 

이번 섹션에서는 R 언어를 사용하여 단순 회귀 분석을 실시하는 예제를 살펴보겠습니다. 사용할 데이터는 cars 데이터셋입니다. 이 데이터셋은 자동차의 속도에 따른 제동거리를 측정한 데이터입니다.

 

우선 R Studio를 실행하고, cars 데이터셋을 불러옵니다.

 

``` r

 

data(cars)

 

```

 

다음으로 데이터를 시각화해 보겠습니다. 속도에 따른 제동거리의 산포도를 그리기 위해 ggplot2 패키지를 사용하겠습니다.

 

``` r

 

library(ggplot2)

 

ggplot(cars, aes(x = speed, y = dist)) +

 

geom_point() +

 

labs(title = "Speed vs Distance", x = "Speed (mph)", y = "Distance (ft)")

 

```

 

그래프를 그려보면 속도가 높아질수록 제동거리가 증가하는 경향이 있음을 확인할 수 있습니다.

 

이제 선형 회귀 모델을 적합시켜보겠습니다. lm() 함수를 사용하여 모델을 생성할 수 있습니다.

 

``` r

 

model <- lm(dist ~ speed, data = cars)

 

summary(model)

 

```

 

모델을 적합한 후 summary() 함수로 결과를 살펴봅니다. 결과를 살펴보면 다음과 같습니다.

 

```

 

Call:

 

lm(formula = dist ~ speed, data = cars)

 

Residuals:

 

Min 1Q Median 3Q Max

 

-29.069 -9.525 -2.272 9.215 43.201

 

Coefficients:

 

Estimate Std. Error t value Pr(>|t|)

 

(Intercept) -17.5791 6.7584 -2.601 0.01230 *

 

speed 3.9324 0.4155 9.464 1.49e-12 ***

 

---

 

Residual standard error: 15.38 on 48 degrees of freedom

 

Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438

 

F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

 

```

 

모델의 계수를 확인하기 위해 coef() 함수를 사용할 수도 있습니다.

 

``` r

 

coef(model)

 

```

 

결과는 다음과 같습니다.

 

```

 

(Intercept) speed

 

-17.57909489 3.93240876

 

```

 

즉, 속도가 1 증가할 때마다 제동거리는 약 3.93 ft 증가한다는 것을 알 수 있습니다.

 

마지막으로 적합된 모델을 그래프로 그려보겠습니다. ggplot2 패키지의 geom_smooth() 함수를 사용하여 회귀선을 추가하였습니다.

 

``` r

 

ggplot(cars, aes(x = speed, y = dist)) +

 

geom_point() +

 

geom_smooth(method = "lm", se = FALSE, color = "red") +

 

labs(title = "Speed vs Distance (with fitted regression line)", x = "Speed (mph)", y = "Distance (ft)")

 

```

 

그래프를 보면 회귀선이 데이터에 잘 맞는 것을 확인할 수 있습니다.

 

 

 

5. R 언어를 활용한 다중 회귀 분석 예제

 

 

 

R 언어는 회귀 분석을 수행하는 다양한 함수들을 제공하기 때문에 회귀 분석을 수행하는 데에 유용하게 활용됩니다. 다중 회귀 분석을 하는 예제를 통해 R 언어의 활용법을 알아보겠습니다.

 

다중 회귀 분석이란 종속 변수와 여러 개의 독립 변수들 간의 관계를 분석하는 방법입니다. 예제를 위해 R 언어 내장 데이터셋인 mtcars를 사용할 예정입니다.

 

```R

 

# 데이터셋 불러오기

 

data(mtcars)

 

# 데이터셋 구조 확인

 

str(mtcars)

 

```

 

mtcars 데이터셋은 32개의 자동차 모델마다 11개의 변수값을 가지고 있는 데이터셋입니다. 이 중에서 다중 회귀 분석을 위해 몇 개의 변수를 선택하여 사용할 것입니다. 다음과 같이 선택한 변수들의 상관 관계를 확인할 수 있습니다.

 

```R

 

# 선택한 변수들만 subsetting

 

mtcars_2 <- subset(mtcars, select = c("mpg", "cyl", "disp", "hp", "drat"))

 

# 상관 행렬 확인

 

cor(mtcars_2)

 

```

 

이렇게 선택한 변수들 간에는 양의 상관 관계와 음의 상관 관계가 혼재해있습니다. 이를 기반으로 회귀 모델을 만들어보겠습니다.

 

```R

 

# 회귀 모델 구축

 

multiple_lm <- lm(mpg~., data = mtcars_2)

 

summary(multiple_lm)

 

```

 

위 코드는 선택한 변수들을 종속 변수(mpg)과 독립 변수들(cyl, disp, hp, drat)으로 구분하여 회귀 모델을 만드는 코드입니다. summary 함수를 이용하여 회귀 모델의 성능 지표를 확인할 수 있습니다. 이를 통해 Adjusted R-squared 값이 0.8179, F-statistic 값이 34.7, p-value 값이 0.0002651 등의 값을 확인할 수 있습니다.

 

이렇게 R언어를 활용하여 다중 회귀 분석을 수행하는 방법을 알아보았습니다. 데이터셋과 모델 코드를 변경하여 다양한 분석을 수행할 수 있습니다.

 

 

 

6. 회귀 분석 결과의 해석 방법

 

 

 

회귀 분석을 진행한 후에는 결과를 해석해야 합니다. 이를 통해 독립 변수가 종속 변수에 미치는 영향력을 파악할 수 있습니다.

 

1) 회귀 계수

 

회귀 계수는 독립 변수의 변화량에 따른 종속 변수의 변화량을 나타내는 값입니다. 따라서 회귀 계수가 양수일 경우, 독립 변수와 종속 변수는 양의 상관 관계가 있으며, 음수일 경우는 음의 상관 관계가 있다고 해석할 수 있습니다.

 

또한, 회귀 계수의 크기가 클수록 독립 변수의 영향력이 크다고 해석할 수 있습니다. 하지만, 이 때문에 반드시 회귀 계수의 크기가 큰 변수가 가장 중요한 변수라고 해석할 수는 없습니다.

 

2) 결정 계수 (R-squared)

 

결정 계수는 회귀 모델이 종속 변수의 변동량을 얼마나 설명하는가를 나타내는 값입니다. 일반적으로 0과 1 사이의 값을 가지며, 1에 가까울수록 모델이 데이터를 잘 설명한다는 것을 의미합니다.

 

하지만, 결정 계수가 1이라고 해서 모델이 완벽한 것은 아닙니다. 결정 계수가 1이더라도, 모델이 설명하지 못하는 다른 이유로 발생하는 변동이 존재할 수 있습니다.

 

3) 잔차 분석

 

잔차란, 회귀 모델에서 종속 변수와 회귀식 사이의 차이를 의미합니다. 따라서 잔차 분석을 통해 회귀 모델이 잘 맞는지, 즉 잔차가 일정 범위 내에 분포하는지 확인할 수 있습니다.

 

잔차가 정규 분포를 따르는 경우, 모델이 잘 맞는 것으로 해석할 수 있습니다. 또한, 잔차의 평균이 0에 가까울수록 선형성의 가정도 만족한다고 볼 수 있습니다.

 

4) 변수 선택 방법

 

변수 선택 방법은 회귀 분석에서 가장 중요한 단계 중 하나입니다. 가장 많이 사용되는 변수 선택 방법은 전진 선택법, 후진 제거법, 단계적 선택법 등이 있습니다.

 

전진 선택법은 변수를 하나씩 추가하면서 모델의 성능을 비교해 가는 방법입니다. 후진 제거법은 모든 변수를 포함한 모델에서 하나씩 제거하면서 성능을 비교해 가는 방법입니다.

 

단계적 선택법은 전진 선택법과 후진 제거법의 결합입니다. 변수를 추가해나가면서 필요 없는 변수는 제거하는 방법입니다.

 

하지만, 변수 선택 방법을 이용해 선택된 모델은 선택되지 않은 다른 모델보다 반드시 좋은 모델이라는 보장은 없습니다. 따라서 변수 선택 방법을 사용할 때는 여러 방법을 비교하고 주의해서 사용해야 합니다.

 

 

 

댓글