단순 선형 회귀와 OLS 추정: 해석 가능한 예측 모델의 조건

단순 선형 회귀의 OLS 추정식, 가정 검증, 잔차 진단, 예측구간과 운영 관리 방법을 정리한다.

2026-08-14 · 최초 발행 2024-04-29

하나의 변수로 관계를 설명할 때의 출발점

단순 선형 회귀는 독립변수 하나로 종속변수를 설명하는 기본 예측 모형이다. 모델은 Y = β0 + β1 X + ε로 표현하며, 오차항 ε에는 iid(0, σ²)를 가정한다. 최소제곱 추정(Ordinary Least Squares, OLS)은 관측값과 모형이 예측한 값의 차이인 잔차 제곱합을 가장 작게 만드는 계수를 찾는다.

SSE = Σ(yᵢ − β0 − β1 xᵢ)²

닫힌형 해를 사용할 수 있다는 점이 단순 회귀의 장점이다.

  • β1_hat = Cov(X, Y) / Var(X) = Σ(xᵢ − x̄)(yᵢ − ȳ) / Σ(xᵢ − x̄)²
  • β0_hat = ȳ − β1_hat x̄
  • σ̂² = SSE / (n − 2)

계수의 의미가 직접적으로 드러나므로, 복잡한 모형에 앞서 관계를 확인하거나 설명 가능한 베이스라인을 만들 때 적합하다. 계수 검정에는 β1 ≠ 0에 대한 t-검정, 모형 유의성의 F-검정, 설명력 평가를 위한 Adj-R²를 사용한다.

추정이 성립하는 데이터 조건

기울기 β1을 구하려면 X의 분산이 0이 아니어야 한다. 모든 X 값이 같다면 분모가 되는 변동성이 사라지므로 기울기를 식별할 수 없다. 데이터 범위와 스케일이 충분한지도 함께 확인할 대상이다.

선형 관계라는 가정이 맞지 않으면 잔차에 일정한 패턴이 남는다. 이 경우 로그 변환이나 다항항을 검토하거나, 비선형 모형을 선택할 수 있다. 계수 추론을 목적으로 할 때는 선형성 외에도 독립성, 등분산성, 오차 정규성 가정을 확인한다.

단순 회귀의 OLS는 O(n) 수준의 연산 복잡도를 가져 대규모 데이터에서도 매우 효율적이다. 다만 수치 안정성을 위해 평균 중심화나 표준화를 적용할 수 있으며, 극단값이 있으면 Huber 같은 강건 추정을 고려한다.

잔차가 알려주는 모형의 한계

적합 후에는 잔차와 적합값의 산점도부터 확인한다. 특정한 모양이 보이면 모형 가정이 깨졌을 가능성이 있다. Q-Q plot으로 정규성을 보고, Breusch–Pagan으로 등분산성을, Durbin–Watson으로 자기상관을 점검한다.

이상치 자체보다 중요한 경우도 있다. DFBETAS와 Cook’s distance는 특정 관측치가 계수에 미치는 영향을 확인하는 데 사용한다. 영향점이 있으면 계수가 왜곡될 수 있으므로 처리 기준을 문서화하고 관리해야 한다.

평균반응의 신뢰구간과 개별 관측값을 위한 예측구간도 구분한다. 예측구간은 평균반응 신뢰구간보다 더 넓게 산출된다. 등분산성 위반이 발견되면 HC0~HC3 이분산-강건 표준오차로 신뢰구간을 보정할 수 있다.

단일 변수 관계를 빠르게 검토하는 장면

광고 지출 X와 매출 Y의 관계를 두면 지출 대비 매출 탄력성을 추정하고, 예산 증액에 따른 기대 매출 증가량을 산정할 수 있다. 사용자 수 X와 응답시간 Y를 연결하면 임계점 근방의 경향을 파악해 알림 기준을 설정하는 데 활용할 수 있다.

센서 원시값 X와 실제 값 Y 사이에서는 보정 계수를 구해 간단하고 해석 가능한 보정선을 만들 수 있다. 다변량 분석에 앞서 실험·관측 데이터에서 단일 변수의 영향력을 빠르게 점검하고, 유의성 판단을 변수 후보 선별에 사용할 수도 있다.

평균모형 대비 RMSE 10~30% 개선 사례가 다수 있으며, 이는 데이터 품질에 의존한다. Var(β1_hat) ≈ σ² / [n·Var(X)] 관계에서 보듯 데이터 수 n과 X의 변동성이 커질수록 추정 안정성은 높아진다. 해석이 쉬워 의사결정 커뮤니케이션 비용을 줄일 수 있고, 구현과 운영이 단순해 재현성과 감사 가능성도 높일 수 있다.

진단부터 모니터링까지의 흐름

아니오아니오입력: X, Y 원천 데이터전처리: 결측/이상치 처리,스케일링X 분산 0?에러 처리: 상수열 또는 데이터수집 확대OLS 추정: β1=Cov/Var,β0=ȳ−β1x진단: 잔차 패턴, Q-Q, BP,DW, 영향점가정 위반?대응:변환/강건SE/가중회귀/데이터정제평가: R², RMSE, 교차검증배포: 계수 고정, 아티팩트 버전관리모니터링: 추세/드리프트/성능저하 알림

데이터 결측 처리는 완전사례 분석, 단순 대치, 다중 대치 가운데 선택한 방식을 표준화한다. 배포 이후에는 모델 버전과 데이터 스키마를 관리하고 RMSE, MAPE, Drift를 모니터링 지표로 체계화한다.

관점 내용
성능 O(n) 추정, 메모리 상수항 수준, 수 ms~수백 ms 단위 처리 가능(수십만 행 기준 환경 의존)
확장성 단일 피처 기준 선형 확장, 스트리밍 집계(평균·분산·공분산)로 온라인 추정 가능
일관성 가정 만족 시 불편·최소분산 선형추정량(Gauss–Markov) 보장
안정성 이상치에 민감. 영향점 존재 시 계수 왜곡 가능. 강건 기법 또는 가중치로 완화
운영 편의 계수·신뢰구간 해석 용이. 배포·모니터링 단순. 데이터 품질 관리가 성능 좌우

Python으로 닫힌형 해와 OLS 결과 확인하기

전제조건은 Python 3.10+, numpy 1.26+, pandas 2.0+, statsmodels 0.14+이다.

# 환경: Python 3.10+, numpy 1.26+, statsmodels 0.14+
import numpy as np
import statsmodels.api as sm
rng = np.random.default_rng(42)

# 1) 데이터 생성
n = 200
X = rng.uniform(0, 10, n)
beta0, beta1, sigma = 2.0, 1.5, 1.0
eps = rng.normal(0, sigma, n)
Y = beta0 + beta1 * X + eps

# 2) OLS 닫힌형 추정 (단순 회귀)
xbar, ybar = X.mean(), Y.mean()
beta1_hat = np.sum((X - xbar) * (Y - ybar)) / np.sum((X - xbar)**2)
beta0_hat = ybar - beta1_hat * xbar
print(f"Closed-form: beta0={beta0_hat:.3f}, beta1={beta1_hat:.3f}")

# 3) Statsmodels로 추정 및 진단
X_with_const = sm.add_constant(X)  # 절편 추가
model = sm.OLS(Y, X_with_const).fit(cov_type="HC3")  # 이분산 강건 SE 예시
print(model.summary())

# 4) 예측 및 예측구간
X_new = np.array([0.0, 5.0, 10.0])
pred = model.get_prediction(sm.add_constant(X_new))
print(pred.summary_frame(alpha=0.05))  # 평균반응 CI와 예측 PI 포함

닫힌형 추정 결과와 OLS 결과가 일치하는지 확인한다. cov_type="HC3"는 등분산성 위반 시 신뢰구간을 보정하는 예시이며, summary_frame에서는 mean_ciobs_ci를 구분해 사용한다.

단순함을 유지하면서 한계를 관리하는 방법

산점도, 상관계수, 이상치를 먼저 확인한 뒤 중심화나 표준화와 파이프라인화를 적용하면 수치 안정성과 재현성을 확보할 수 있다. 이분산성에는 강건 표준오차 또는 가중회귀를 검토하고, 영향점의 보고 및 처리 기준을 남긴다.

단순성은 빠른 구축과 해석을 제공하지만 비선형 관계에서는 설명력의 한계가 있다. 변환이나 다항항을 추가하거나 다른 모형이 필요할 수 있다. 이상치를 제거하거나 완화할 때는 해석의 일관성도 관리해야 하며, 실시간 운영에서 완전한 가정 검정이 어렵다면 모니터링으로 보완한다.

단순 선형 회귀최소제곱법OLS잔차 진단회귀분석