들어가기 전
앞서 머신러닝의 개념과 머신러닝의 분류에 대해서 알아보았습니다. 이번에 다룰 내용인 선형회귀는 지도학습 중 하나입니다. 선형회귀는 입력 데이터와 출력 데이터 간의 선형적인 관계를 찾는 알고리즘입니다. 즉, 입력데이터가 주어졌을 때, 해당 데이터에 대한 출력을 예측할 수 있습니다.
1. 선형회귀(Linear Regression)
선형 회귀는 통계학에서 사용되는 예측 분석 방법 중 하나입니다. 이는 종속 변수 y와 하나 이상의 독립 변수 x와의 선형 상관관계를 모델링하는 기법으로, 데이터 간의 추세를 파악하고 새로운 데이터에 대한 예측을 수행할 때 유용합니다. 선형 회귀 모델을 구축하기 위해 최소제곱법을 사용합니다. 최소제곱법은 독립 변수와 종속 변수 사이의 가중치와 상수항을 추정하여 모델을 구성하는 방법입니다. 이러한 가중치와 상수항은 모델의 성능을 나타내는 지표인 R-squared 값에 영향을 미치며, 이 값을 통해 모델의 적합성을 판단할 수 있습니다.
독립 변수가 하나인 경우 단순 선형 회귀라고 하며, 독립 변수가 둘 이상인 경우 다중 선형 회귀라고 합니다. 다중 선형 회귀 모델에서는 각 독립 변수의 가중치와 상수항을 추정하여 종속 변수와의 관계를 모델링합니다. 또한, 선형회귀의 학습 과정에서는 최적의 선형 함수를 찾기 위해 경사 하강법이나 정규 방정식 등의 방법을 사용합니다.
즉, 선형 회귀는 데이터 분석 및 예측 모델링에 필수적이며, 경제학 분야에서 많은 연구가 이루어지고 있습니다. 이를 통해 데이터 분석 및 예측에 대한 정확도와 신뢰성을 향상시키는 데에 기여하고 있습니다.
선형 회귀 모델링의 가정
- 선형성 (Linearity): 독립 변수와 종속 변수 간의 관계가 선형이어야 합니다. 비선형적인 관계를 모델링해야 한다면 다른 방법을 사용해야 합니다.
- 독립성 (Independence): 각각의 관측치는 서로 독립적이어야 하며, 이는 독립 변수 간의 상관 관계도 포함됩니다. 독립 변수 간의 상관 관계가 높은 경우 모델이 올바른 계수 값을 추정하기 어려워질 수 있습니다.
- 등분산성 (Homoscedasticity): 오차 항의 분산이 독립 변수와 관련 없이 일정해야 합니다. 오차 항의 분산이 크게 다르다면 모델이 일부 데이터에 과도하게 적합되거나 (과대적합, Overfitting), 일부 데이터에는 적합하지 않은 모델이 될 수 있습니다.
- 정규성 (Normality): 오차 항은 정규 분포를 따라야 합니다. 오차 항이 정규 분포를 따르지 않는다면 모델의 예측 성능이 떨어질 수 있습니다.
선형 회귀 모델링의 한계점
- 과대적합 (Overfitting): 모델이 학습 데이터에 대해 과도하게 학습되어 새로운 데이터에 대한 예측 성능이 떨어지는 현상입니다. 이를 해결하기 위해서는 규제 (Regularization) 기법을 사용할 수 있습니다.
- 다중공선성 (Multicollinearity): 독립 변수들 간의 상관 관계가 높아 모델의 분산이 커지고 계수 추정치의 정확도가 떨어지는 현상입니다. 이를 해결하기 위해서는 변수 선택 (Variable Selection)이나 차원 축소 (Dimensionality Reduction) 기법을 사용할 수 있습니다.
- 이상치 (Outliers): 이상치가 포함된 데이터는 모델의 성능을 떨어뜨릴 수 있습니다. 이를 해결하기 위해서는 이상치를 탐지하고 처리하는 방법이 필요합니다.
- 비선형성 (Nonlinearity): 독립 변수와 종속 변수 간의 관계가 비선형적이라면 선형 회귀 모델은 적합하지 않을 수 있습니다. 이를 해결하기 위해서는 다른 모델링 기법을 사용해야 합니다.
- 자기상관성 (Autocorrelation): 시계열 데이터의 경우, 자기상관성이 존재할 수 있습니다. 이러한 경우에는 시계열 분석 기법을 사용해야 합니다.
- 정규성 가정 위반: 오차 항이 정규 분포를 따르지 않는 경우, 모델의 성능이 떨어질 수 있습니다. 이를 해결하기 위해서는 변환 (Transform) 기법을 사용하거나 비모수적 (Nonparametric) 모델을 사용해야 합니다.
2. 단순 선형 회귀(Simple Linear Regression)
단순 선형 회귀는 종속 변수 y와 독립 변수 x 사이의 선형적인 관계를 모델링하는 머신러닝 기법입니다. 이를 위해 y=Wx+b의 식을 사용하며, W는 독립 변수 x에 곱해지는 가중치를, b는 상수항에 해당하는 편향을 나타냅니다. 이 모델을 학습하기 위해서는 적절한 W와 b값을 찾아야 합니다. 과적합을 방지하기 위해, 데이터를 학습용과 검증용으로 나누어서 모델을 평가합니다.
데이터의 경향성을 파악하기 위해 그래프를 그리면, 직선의 기울기와 y절편을 이용하여 데이터의 경향성을 파악할 수 있습니다. 그러나 데이터의 분포와 상관 관계, 이상치 등을 고려해야 하며, 보다 정확한 예측 모델을 구축하기 위해서는 다양한 특성 공학 기법을 사용하여 변수를 조합하고 변형할 필요가 있습니다.
단순 선형 회귀는 머신러닝에서 중요한 개념 중 하나이지만, 머신러닝 모델 개발에만 필수적인 것은 아닙니다. 다양한 머신러닝 알고리즘이 존재하며, 문제의 특성과 데이터의 특징에 따라 적합한 알고리즘을 선택하고 활용해야 합니다.
최소 제곱법(Least Squares Method)
선형 회귀 모델은 예측값과 실제값 사이의 차이, 즉 오차를 최소화하는 것이 목표입니다. 이를 위해 일반적으로 사용되는 방법 중 하나가 최소 제곱법(Least Squares Method)입니다.
최소 제곱법은 예측값과 실제 값 사이의 차이를 제곱한 것을 모두 더한 뒤, 이 값을 최소화하는 방식으로 모델의 파라미터를 조정하는 방법입니다. 이렇게 하면 예측값과 실제 값 사이의 차이가 가장 작아지는 모델 파라미터를 찾을 수 있습니다. 선형 회귀 모델에서 최소 제곱법을 사용하는 것은 비교적 간단하지만, 이를 통해 매우 효과적인 모델을 구축할 수 있습니다. 이 방법은 데이터가 선형적인 구조를 가지고 있을 때 특히 잘 작동합니다.
수식으로 나타내면 최소 제곱법에서는 다음과 같은 오차 함수를 최소화합니다.
$$ {오차함수 =\sum_{i=1}^{n}{(y_i-\hat{y_i})^2}} $$
여기서 y_i는 실제 값, hat{y_i}는 모델이 예측한 값입니다. 이 오차함수를 최소화하기 위해 모델 파라미터를 조정하면, 즉 기울기와 y절편을 조정하면 됩니다.
따라서 선형 회귀 모델에서는 최소 제곱법을 사용하여 데이터를 가장 잘 설명하는 모델 파라미터를 찾을 수 있습니다. 최소 제곱법은 데이터가 선형적인 구조를 가지고 있을 때 가장 잘 작동하며, 일반적으로 선형 회귀 모델에서 잘 작동하는 방법 중 하나가 최소 제곱법입니다.
경사 하강법(Gradient Descent)
경사하강법(Gradient Descent)은 머신러닝에서 가장 기본적으로 사용되는 알고리즘 중 하나입니다. 이 알고리즘은 단순 선형 회귀 등의 문제에서 최적의 모델 파라미터 값을 찾기 위해 사용됩니다. 경사하강법은 모델 파라미터 값을 조금씩 조정하면서, 손실 함수의 값이 최소화되도록 하는 방식으로 최적의 값을 찾습니다. 이 과정을 손실 함수의 값이 최소화될 때까지 반복합니다.
경사하강법에는 Batch gradient descent, Stochastic gradient descent, Mini-batch gradient descent 등의 종류가 있습니다. Batch gradient descent은 전체 데이터셋을 사용하여 파라미터 값을 업데이트하는 방식입니다. 이 방식은 대용량 데이터셋에서는 계산 시간이 매우 오래 걸리는 단점이 있습니다. 반면, Stochastic gradient descent은 전체 데이터셋이 아닌, 랜덤하게 선택된 하나의 데이터만 사용하여 파라미터 값을 업데이트하는 방식입니다. 작은 데이터셋에서는 빠른 수렴 속도를 보이지만, 전체 데이터셋을 사용할 때보다 파라미터 값이 더 불안정하게 업데이트됩니다. Mini-batch gradient descent은 전체 데이터셋을 일정한 배치 단위로 나누어 사용하여 파라미터 값을 업데이트하는 방식입니다. 전체 데이터셋을 사용하는 것보다 계산 시간이 짧고, 랜덤하게 선택되는 데이터보다 파라미터 값의 업데이트가 더 안정적입니다.
경사하강법의 문제점으로는 손실 함수가 복잡한 경우, 최적의 파라미터 값을 찾을 때 국소 최솟값(local minimum)에 빠질 수 있다는 것이 있습니다. 이는 손실 함수가 고원(plateau)에 도달했을 때 더 이상 손실 함수의 값이 줄어들지 않는 지점을 의미합니다. 또한, 손실 함수가 복잡한 경우, 최적의 파라미터 값을 찾을 때 안장점(saddle point)에 빠질 수 있습니다. 이는 기울기가 0이지만 지역 최솟값이 아닌 지점을 의미합니다. 이러한 문제를 해결하기 위해서는 학습률(learning rate)을 조정하거나, 다른 경사하강법 알고리즘을 사용할 수 있습니다.
3. 다중 선형 회귀(Simple Linear Regression)
다중선형회귀는 둘 이상의 독립 변수와 하나의 종속 변수 간의 선형적 관계를 분석하는 회귀 분석 기법입니다. 이 기법은 회귀 분석의 기초인 단순선형회귀분석을 보완한 방법입니다. 단순선형회귀분석은 하나의 독립 변수와 하나의 종속 변수 간의 선형적 관계를 분석하지만, 다중선형회귀분석은 여러 독립 변수와 하나의 종속 변수 간의 관계를 분석합니다. 이러한 특징으로 인해 다중선형회귀분석은 회귀 분석 기법 중 가장 일반적인 기법 중 하나이며, 데이터 분석에서 가장 많이 사용됩니다.
예를 들어, 주택 가격을 예측하는 모델에서 다중선형회귀 분석을 사용하여 주택의 크기, 지역, 시설 등 여러 독립 변수와 가격 간의 관계를 분석할 수 있습니다. 이때, 다중선형회귀분석을 활용하여 보다 정확한 예측 모델을 구축할 수 있습니다. 또한, 이러한 분석 결과를 바탕으로 주택 가격에 영향을 미치는 요인들을 파악하고, 적절한 대책을 수립할 수 있습니다
범주형 데이터 전처리(One-hot Encoding)
범주형 데이터는 수치형 데이터와 달리 문자열 형태로 표현되기 때문에 분석을 위해서는 전처리 과정이 필요합니다. 이때 가장 많이 사용되는 방법은 원-핫 인코딩(One-hot Encoding)입니다. 원-핫 인코딩은 범주형 데이터를 0과 1로 이루어진 벡터로 변환하는 방법입니다. 각 카테고리마다 새로운 열을 생성하고 해당 카테고리에 속하는 경우 1을, 속하지 않는 경우 0을 입력합니다.
예를 들어, 주택 가격을 예측하는 모델에서 지역이라는 범주형 변수가 있다면, 원-핫 인코딩을 통해 서울, 경기, 부산, 대구 등 지역별로 새로운 열을 생성하고 해당 지역에 속하는 경우 1을, 속하지 않는 경우 0을 입력합니다. 이렇게 변환된 데이터는 수치형 데이터로 변환되어 모델에 사용됩니다.
또한, 다중선형회귀 분석에서 범주형 변수는 더미 변수(dummy variable)로 변환되어야 합니다. 더미 변수는 범주형 변수를 원-핫 인코딩으로 변환한 결과물입니다. 즉, 해당 범주에 속하는 경우 1을, 아닌 경우 0을 가지는 변수입니다. 이렇게 변환된 더미 변수들은 독립 변수와 함께 모델링되어 분석에 사용됩니다. 결론적으로, 범주형 데이터의 전처리 과정에서 원-핫 인코딩을 통해 수치형 데이터로 변환하는 것이 필요합니다. 이를 통해 범주형 변수를 모델링에 사용할 수 있으며, 더미 변수를 생성하여 다중선형회귀 분석에 활용할 수 있습니다.
다중 공선성(Multicollinearity)
다중 공선성(Multicollinearity)은 회귀 분석에서 독립 변수 간에 높은 상관관계가 있을 때 발생하는 문제입니다. 즉, 하나의 독립 변수가 다른 독립 변수의 변화와 매우 관련성이 높은 경우를 의미합니다. 다중 공선성이 발생하면, 회귀 분석 결과의 정확성이 떨어지거나 모델의 설명력이 약화될 수 있습니다. 다중 공선성이 발생하는 이유는 주로 다음과 같습니다.
- 독립 변수들이 서로 상관관계가 높은 경우
- 변수가 많은 데이터에서 독립 변수 간의 관계가 복잡한 경우
이러한 경우에는 변수 선택, 차원 축소 기법 등을 활용하여 다중 공선성 문제를 해결할 수 있습니다. 변수 선택 기법은 모델에서 중요한 변수만 선택하여 사용하는 방법으로, 주성분 분석(PCA)과 같은 차원 축소 기법은 데이터의 정보를 최대한 유지하면서 변수의 수를 줄이는 방법입니다.
또한, 다중 공선성을 확인하기 위해 VIF(Variance Inflation Factor)와 같은 지표를 활용할 수 있습니다. VIF는 각 독립 변수의 설명력을 측정하는 지표로, 일반적으로 10 이상인 경우 다중 공선성이 발생할 가능성이 높다고 판단됩니다. 따라서, 회귀 분석을 수행할 때 다중 공선성 문제를 고려하여 변수 선택이나 차원 축소 기법 등을 활용하고, VIF와 같은 지표를 활용하여 다중 공선성을 확인하는 것이 중요합니다.
회귀 모델 평가지수(MAE, MSE, RMSE, R square)
회귀 모델 평가지수는 모델이 얼마나 잘 예측하는지를 평가하는 지표입니다. 회귀 모델의 예측값과 실제값 사이의 차이를 측정하여 모델의 성능을 평가합니다. 다음은 일반적으로 사용되는 회귀 모델 평가 지수에 대한 설명입니다.
- MAE (Mean Absolute Error : 평균 절대 오차): 실제값과 예측값의 차이를 절댓값으로 변환하여 평균을 구한 값입니다. 모든 오차를 더하여 평균을 구하는 것이므로, 이상치(outlier) 등의 영향을 받지 않습니다. MAE가 작을수록 모델의 예측이 정확합니다.
$${MAE = \frac{1}{N}\sum_{i=1}^{N}\left|y_{i}-\hat{y}_{i} \right|}$$
- MSE (Mean Squared Error : 평균 제곱 오차): 실제값과 예측값의 차이를 제곱한 값의 평균입니다. MSE는 오차의 제곱을 더하여 평균을 구하는 것이므로, 오차가 큰 값일수록 더 큰 영향을 미칩니다. MSE가 작을수록 모델의 예측이 정확합니다.
$${MSE = \frac{1}{N}\sum_{i=1}^{N}(y_{i}-\hat{y}_{i} )^2}$$
- RMSE (Root Mean Squared Error : 평균 제곱근 오차): MSE의 제곱근 값입니다. MSE와 마찬가지로 오차가 큰 값일수록 더 큰 영향을 미치며, RMSE가 작을수록 모델의 예측이 정확합니다. RMSE는 MSE와 달리 오차의 단위와 크기가 실제값과 동일합니다.
$${RMSE = \sqrt{\sum_{i=1}^{n}\frac{(y_{i}-\hat{y}_{i} )^2}{n}}}$$
- R square (Coefficient of Determination : 결정계수 (데이터의 분산을 기반으로 한 평가 지표)): 모델이 데이터를 얼마나 잘 설명하는지를 나타내는 지표입니다. R square 값은 0과 1 사이의 값을 가지며, 1에 가까울수록 모델이 데이터를 잘 설명합니다. R square 값은 모델이 설명하는 데이터의 분산 비율을 나타내므로, 변수의 수가 많아지면 R square 값이 증가합니다.
R-squared은 다음과 같은 수식을 통해 계산합니다.
- SST (Total Sum of Squares): 총제곱합
(관측값 - 평균)의 제곱합 - SSE (Explained Sum of Squares): 회귀제곱합
(예측값 - 평균)의 제곱합, 설명된 분산 - SSR (Residual Sum of Squares): 잔차제곱합
이러한 회귀 모델 평가 지수는 각각의 특성을 가지고 있으며, 모델의 예측 성능을 평가하고 비교하는 데 유용합니다. 예를 들어, MAE는 예측 값의 크기에 대한 평균 오차를 나타내므로, 예측 값의 범위가 크지 않은 경우에 더 적합합니다. 반면에, RMSE는 예측 오차의 크기에 대한 직관적인 해석이 가능하기 때문에, 예측 값의 범위가 큰 경우에 유용합니다. R square는 모델이 설명하는 종속 변수의 변동성의 비율을 나타내므로, 모델의 설명력을 평가하는 데 유용합니다. 즉, 회귀 모델 평가지수를 사용하여 모델의 예측 성능을 평가하고, 모델을 개선하는 방법을 찾아내는 것이 중요합니다. 이를 통해 데이터 분석의 정확도를 높일 수 있습니다.