선형 회귀 시뮬레이션

Linear Regression Visualization & Simulation

선형 회귀는 데이터 속의 패턴을 직선으로 표현하는 방법이에요.

예를 들어, 날씨가 더울수록 아이스크림 판매량이 증가한다는 관계가 있다고 해볼게요.
과거의 온도와 판매량 데이터를 분석해 보면, 대체로 판매량이 온도에 따라 일정하게 올라가는 걸 볼 수 있겠죠.

이때 “온도와 판매량의 관계”를 수식으로 나타내는 것이 바로 선형 회귀 (Linear Regression)입니다.
만약 과거의 (온도, 아이크림 판매량)을 점으로 찍은 그래프가 있다면 사람은 직관적으로 패턴을 인지하고 특정 기온에서 판매량이 대략 어떻게 될지 쉽게 예측을 할 수 있을 거에요, 컴퓨터가 이걸 하려면 이 점들의 방향성에 가장 알 맞은 수학적인 선을 그어야 합니다.

이렇게 찾은 직선을 이용하면, 올해 날씨가 30도일 때 판매량이 얼마나 될지 예측할 수 있어요. 하지만 점들이 일직선상에 있는 게 아니라 이렇게 오차를 가지면서 분포되어 있죠? 어떻게 하나의 직선으로 이 패턴을 표현할 수 있을까요?

선형 회귀에서 “직선”을 찾는 방법에는 여러 가지가 있어요:
  • OLS (최소제곱법) — 데이터를 가장 잘 통과하는 직선을 수학적으로 한 번에 계산합니다.
    계산이 빠르지만, 이상한 데이터(이상치)가 있을 때는 영향을 크게 받아요.
  • GD (경사하강법) — 처음엔 아무 직선이나 잡고, 조금씩 방향을 조정하면서 오차를 줄여나갑니다.
  • SGD (확률적 경사하강법) — 데이터를 한꺼번에 쓰지 않고, 조금씩 랜덤하게 학습해서 더 빠르게 근사합니다.
즉, OLS는 “정확하고 빠른 공식 계산”, GD/SGD는 “조금 느리지만 점진적으로 학습”하는 방식이에요.

각 회귀 분석 방법을 클릭하면 자세한 동작 방법을 학습하실 수 있어요.

이 시뮬레이터에서는 선형 회귀의 원리를 직접 눈으로 확인할 수 있어요 👇
  • 캔버스를 클릭하면 점(데이터)이 추가됩니다. 예: 온도(가로축) vs 판매량(세로축)
  • 길게 클릭으로 원하지 않는 점을 삭제할 수 있습니다.
  • “OLS / GD / SGD” 중 원하는 방식을 선택해 학습시키면, 프로그램이 직선을 스스로 찾아갑니다.
  • “검사하기” 모드에서는 새로운 점을 찍어 예측 결과를 확인할 수 있어요.
즉, 복잡한 수식을 몰라도 데이터가 어떻게 직선으로 근사되는지를 직접 체험할 수 있는 도구입니다 🎯
캔버스 클릭: 점 추가. 길게 클릭 → 가장 가까운 점 삭제.
"검사하기"에서 클릭 시 예측값을 보여드립니다.

Loss (MSE)
Model
Points: 0
Slope (a): -
Intercept (b): -
R²: -
Last Loss: -
알고리즘 설명
OLS (최소제곱법)

모든 데이터 점과 직선 사이의 거리(오차)를 제곱해 더한 값을 최소로 만드는 직선을 찾습니다. 즉, "잔차 제곱합(Sum of Squared Errors)"을 가장 작게 하는 직선을 구하는 방법이에요.

평균제곱오차(MSE)는 다음과 같이 정의됩니다:

$$ MSE(a,b) = \frac{1}{n} \sum_{i=1}^{n} (y_i - (a x_i + b))^2 $$

이를 미분하여 최솟값을 찾으면 아래의 해(닫힌형식, Closed-form)를 얻습니다:

$$ a^{*} = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} $$
$$ b^{*} = \bar{y} - a^{*}\bar{x} $$

  • 장점: 빠르고 수학적으로 정확한 해 (전역해 보장)
  • 단점: 이상치(outlier)에 민감함