선형회귀(Linear Regression)는 통계학과 머신러닝에서 가장 기본적이고 중요한 예측 모델 중 하나로, 두 변수 간의 관계를 선형적으로 모델링하는 기법입니다. 이 글에서는 선형회귀 식과 분석 알고리즘에 대하여 쉬운예를들어 계산해보겠습니다.
선형회귀는 주어진 독립 변수(또는 설명 변수, feature)와 종속 변수(또는 반응 변수, target) 사이의 관계를 선형 방정식의 형태로 표현하며, 이 방정식을 기반으로 종속 변수를 예측하는 데 사용됩니다.
1. 선형회귀란 무엇인가 Linear Regression?
선형회귀는 하나 또는 여러 개의 독립 변수와 하나의 종속 변수 간의 선형 관계를 찾는 통계적 방법입니다. 예를 들어, 특정 제품의 가격(종속 변수)이 제품의 크기, 무게, 브랜드 등의 독립 변수에 따라 어떻게 변화하는지를 분석하고자 할 때 선형회귀를 사용할 수 있습니다. 선형회귀의 기본 가정은 독립 변수와 종속 변수 간의 관계가 직선으로 표현될 수 있다는 것입니다.
단순 선형회귀(Simple Linear Regression)는 하나의 독립 변수와 하나의 종속 변수 간의 관계를 모델링하는 경우를 말합니다. 다중 선형회귀(Multiple Linear Regression)는 두 개 이상의 독립 변수를 사용하는 경우를 의미합니다. 단순 선형회귀에서는 독립 변수 X와 종속 변수 Y 간의 관계를 다음과 같은 직선 방정식으로 표현합니다.
여기서
- β0: 절편(intercept)
- β1: 기울기(slope)
- ϵ: 오차항(error term)
을 각각 의미합니다.
파란 점은 실제 데이터 포인트를 나타내며, 빨간 선은 단순 선형회귀를 통해 얻은 회귀선을 나타냅니다. 이 직선의 방정식은 Y=0.70X+2.10로 표현되며, X 값이 증가할 때 Y 값이 어떻게 변화하는지를 설명합니다.
1.1. 간단한 단순 선형회귀의 예시
문제 설정
어느 카페에서 판매하는 커피의 가격이 그 크기에 따라 어떻게 변화하는지를 분석하려고 합니다. 우리가 가진 데이터는 다음과 같습니다:
- 커피 크기(온스): [8, 12, 16, 20]
- 가격(달러): [2, 3, 4, 5]
목표는 주어진 커피 크기에 대해 가격을 예측하는 선형 방정식을 찾는 것입니다.
1.1.1 데이터 시각화
먼저, 이 데이터를 그래프로 그려보면 다음과 같이 나타날 것입니다:
- x축: 커피 크기 (온스)
- y축: 가격 (달러)
데이터 점들을 찍어보면, 이들이 대략적으로 직선의 형태를 따르고 있음을 알 수 있습니다. 이제, 이 데이터에 가장 잘 맞는 직선을 찾는 것이 선형회귀의 목표입니다.
1.1.2. 선형회귀 방정식
선형회귀의 일반적인 형태는 다음과 같습니다:
Y = β0 + β1X
여기서:
- Y는 예측하려는 값, 즉 커피의 가격입니다.
- X는 설명 변수, 즉 커피 크기입니다.
- β0는 절편(intercept)으로, 커피 크기가 0일 때의 가격입니다.
- β1은 기울기(slope)로, 커피 크기가 1 온스 증가할 때마다 가격이 얼마나 증가하는지를 나타냅니다.
1.1.3. 기울기와 절편 계산
이제, 우리가 해야 할 일은 데이터를 이용해 β0와 β1을 계산하는 것입니다.
- 기울기(β1) 계산: 기울기는 각 데이터 점이 평균으로부터 얼마나 떨어져 있는지를 나타내는 지표입니다. 기울기는 다음과 같이 계산할 수 있습니다:
β1 = [ Σ (X_i – X̄)(Y_i – Ȳ) ] / [ Σ (X_i – X̄)^2 ]
여기서 X̄와 Ȳ는 각각 커피 크기와 가격의 평균입니다.
우리 예시의 경우:
- X = [8, 12, 16, 20], 그래서 X̄ = (8 + 12 + 16 + 20) / 4 = 14
- Y = [2, 3, 4, 5], 그래서 Ȳ = (2 + 3 + 4 + 5) / 4 = 3.5
기울기 계산:
β1 = [(-6)(-1.5) + (-2)(-0.5) + (2)(0.5) + (6)(1.5)] / [(-6)^2 + (-2)^2 + (2)^2 + (6)^2]
β1 = [9 + 1 + 1 + 9] / [36 + 4 + 4 + 36] = 20 / 80 = 0.25
따라서 기울기 β1은 0.25입니다. 이는 커피 크기가 1 온스 증가할 때마다 가격이 0.25달러 증가함을 의미합니다.
- 절편(β0) 계산: 절편은 다음과 같이 계산됩니다:
β0 = Ȳ – β1X̄
계산해보면:
β0 = 3.5 – 0.25 * 14 = 3.5 – 3.5 = 0
따라서, 절편 β0는 0입니다.
1.1.4. 최종 선형 방정식
위의 계산을 통해 구한 선형 방정식은 다음과 같습니다.
Y = 0.25X
이 방정식은 커피 크기 X가 주어졌을 때, 가격 Y를 예측할 수 있게 해줍니다.
1.1.5. 예측 예시
이제 이 방정식을 이용해 예측을 해볼 수 있습니다. 예를 들어, 커피 크기가 10 온스일 때 가격을 예측해보겠습니다:
Y = 0.25 * 10 = 2.5 달러
즉, 이 모델에 따르면 10온스 커피의 예상 가격은 2.5달러입니다.
2. 선형회귀 식 (Linear Regression equation)
선형회귀 모델은 다음과 같은 형태의 수학적 방정식으로 표현됩니다.
이 방정식에서:
- Y는 종속 변수(예측하고자 하는 값)입니다.
- X1,X2,…,Xn 은 독립 변수들(설명 변수들)입니다.
- β0는 절편(intercept)으로, 모든 독립 변수가 0일 때의 종속 변수 Y의 값을 나타냅니다.
- β1,β2,…,βn은 독립 변수들의 계수(coefficient)로, 각 독립 변수가 종속 변수에 미치는 영향을 나타냅니다.
- ϵ은 오차항으로, 실제 값과 예측 값 간의 차이를 나타내며, 이는 모델이 설명하지 못하는 부분입니다.
이 방정식에서 중요한 점은 계수 β들이 독립 변수들과 종속 변수 간의 관계를 나타낸다는 것입니다. 예를 들어, β1이 2라면, X1이 1 단위 증가할 때마다 Y는 평균적으로 2 단위 증가합니다. 계수들의 값을 추정하는 과정이 선형회귀 분석의 핵심입니다.
3. 선형회귀 분석 및 알고리즘
선형회귀 분석의 목표는 주어진 데이터에 가장 잘 맞는 직선을 찾는 것입니다. 이 직선을 찾기 위해서는 데이터 포인트들로부터 직선의 계수 β0, β1 등을 추정해야 합니다. 이를 위해 가장 일반적으로 사용하는 방법은 최소제곱법(Ordinary Least Squares, OLS)입니다.
3.1 최소제곱법(OLS)
최소제곱법은 실제 데이터 포인트들과 회귀선이 예측하는 값들 간의 차이(잔차, residual)의 제곱합을 최소화하는 계수 β들을 찾는 방법입니다. 잔차는 실제 값과 예측 값의 차이인 ϵ으로 표현되며, 제곱합을 최소화한다는 것은 다음 식을 최소화하는 것입니다.
여기서 m은 데이터 포인트의 수입니다. 이 식을 최소화하면 계수 β0,β1,…,βn의 최적 값을 구할 수 있습니다. 최소제곱법은 이러한 최적 계수들을 선형 대수학을 이용해 계산합니다.
3.2 최소제곱법 예시 그래프
위 그래프는 최소제곱법(OLS)을 사용하여 선형회귀선을 구한 예시입니다. 파란 점은 실제 데이터 포인트를 나타내며, 빨간 선은 OLS를 통해 구한 회귀선을 나타냅니다. 초록색 점선은 각 데이터 포인트와 회귀선 사이의 차이(잔차, residual)를 시각적으로 보여줍니다. OLS는 이 잔차들의 제곱합을 최소화하여 최적의 회귀선을 찾는 방법입니다.
3.2 경사하강법(Gradient Descent)
경사하강법은 또 다른 방법으로, 최소제곱법과는 다르게 반복적인 접근을 통해 계수들을 업데이트하여 최적의 회귀선을 찾습니다. 이 방법은 특히 데이터가 많고, 변수의 수가 많을 때 유용합니다.
경사하강법은 다음과 같은 절차를 따릅니다:
- 임의의 초기 값으로 계수 β들을 설정합니다.
- 전체 데이터에 대해 비용 함수(손실 함수)를 계산합니다. 비용 함수는 예측 값과 실제 값 간의 차이의 제곱합입니다.
- 각 계수 β에 대해 비용 함수의 기울기를 계산합니다.
- 기울기의 방향과 반대 방향으로 계수 β들을 조금씩 업데이트합니다. 이 때 학습률(learning rate)이라는 값이 사용됩니다.
- 이 과정을 반복하여 비용 함수가 최소화될 때까지, 즉 더 이상 계수들이 크게 변화하지 않을 때까지 계속합니다.
경사하강법은 전역 최적해(global optimum)를 보장하지 않지만, 학습률을 잘 설정하면 매우 효과적인 방법이 될 수 있습니다.
3.3 선형회귀 분석의 가정
선형회귀 분석은 몇 가지 기본 가정에 기초하고 있습니다:
- 선형성(Linearity): 독립 변수와 종속 변수 간의 관계가 선형적이어야 합니다.
- 독립성(Independence): 관측치들은 서로 독립적이어야 합니다.
- 등분산성(Homoscedasticity): 오차항의 분산이 일정해야 합니다.
- 정규성(Normality): 오차항이 정규 분포를 따라야 합니다.
이 가정들이 충족되지 않으면, 선형회귀 모델의 신뢰성이 낮아질 수 있습니다. 따라서, 선형회귀를 수행하기 전에 이 가정들을 검토하고, 필요한 경우 대체 모델이나 변환을 고려해야 합니다.
4. 결론
선형회귀 (Linear Regression)는 간단하면서도 강력한 예측 도구로, 통계학과 머신러닝에서 널리 사용되고 있습니다. 이를 통해 두 변수 간의 관계를 이해하고, 미래의 데이터를 예측할 수 있습니다. 선형회귀 모델을 구축하는 과정에서는 데이터의 선형성, 가정의 충족 여부, 모델의 적합성 등을 신중히 고려해야 합니다. 이러한 과정을 통해 얻어진 모델은 다양한 분야에서 유용하게 활용될 수 있으며, 특히 경제학, 사회과학, 공학 등에서 데이터 기반 의사결정의 중요한 도구로 사용되고 있습니다.