📈 선형 회귀 계산기
x, y 데이터로 최소제곱 추세선 식과 상관계수 r, 결정계수 R², 원하는 x의 예측값을 구해요.
사용법
- 입력칸에 한 줄에 한 쌍씩 "x, y"를 적으세요. 쉼표, 공백, 탭으로 구분할 수 있어서 엑셀이나 구글 시트에서 두 열을 복사해 붙여 넣어도 돼요.
- 숫자가 아닌 줄(제목 줄 등)은 자동으로 건너뛰어요. 최소 2쌍이 필요하고, 의미 있는 분석에는 보통 더 많은 데이터가 필요해요.
- 예측할 x를 넣으면 추세선으로 계산한 y 예측값을 보여 줘요.
- 추세선 식, 기울기, 절편, 상관계수 r, 결정계수 R², 평균과 편차 제곱합이 나와요.
선형 회귀(최소제곱법)란
두 변수의 관계를 직선 하나로 요약하는 방법이에요. 점들과 직선 사이의 세로 거리(잔차)를 제곱해서 모두 더한 값이 가장 작아지는 직선을 고르기 때문에 최소제곱법이라고 해요. 직선의 식은 y = a + bx이고 b는 기울기, a는 절편이에요.
- 평균: x̄ = Σx / n, ȳ = Σy / n
- 편차 제곱합: Sxx = Σ(x − x̄)², Syy = Σ(y − ȳ)², Sxy = Σ(x − x̄)(y − ȳ)
- 기울기 b = Sxy / Sxx, 절편 a = ȳ − b·x̄
- 상관계수 r = Sxy / √(Sxx · Syy), 결정계수 R² = r²
계산 예시
데이터 (1, 2), (2, 4), (3, 5), (4, 4), (5, 5)로 직접 계산해 볼게요.
| 항목 | 계산 | 값 |
|---|---|---|
| 평균 x̄, ȳ | 15/5, 20/5 | 3, 4 |
| Sxx | 4 + 1 + 0 + 1 + 4 | 10 |
| Syy | 4 + 0 + 1 + 0 + 1 | 6 |
| Sxy | 4 + 0 + 0 + 0 + 2 | 6 |
| 기울기 b | 6 / 10 | 0.6 |
| 절편 a | 4 − 0.6 × 3 | 2.2 |
| 상관계수 r | 6 / √(10 × 6) | 0.775 |
| 결정계수 R² | r² | 0.6 |
추세선은 y = 2.2 + 0.6x예요. x = 6일 때 예측값은 2.2 + 3.6 = 5.8이에요.
결과 읽는 법
기울기와 절편
기울기는 x가 1 늘 때 y가 평균적으로 얼마나 변하는지를 나타내요. 위 예시에서는 x가 1 늘면 y가 평균 0.6 늘어요. 절편은 x가 0일 때의 y 값인데, x = 0이 데이터 범위 밖이면 현실적인 의미가 없을 수도 있어요.
상관계수 r
−1에서 1 사이의 값이에요. 1에 가까우면 강한 양의 직선 관계, −1에 가까우면 강한 음의 직선 관계, 0에 가까우면 직선 관계가 거의 없다는 뜻이에요. 몇 이상이면 "강하다"라고 하는 절대 기준은 분야마다 달라서, 대략 0.7 이상을 강하다고 보는 경우가 많지만 어디까지나 관례예요.
결정계수 R²
y의 변동 중 직선(x)으로 설명되는 비율이에요. R² = 0.6이면 변동의 60%를 x로 설명한다는 뜻이에요. 변수를 더해 가도 값이 커지기 때문에 단순 회귀에서 한 변수만 쓸 때 해석하는 용도로 보세요.
주의할 점
- 상관이 곧 인과는 아니에요 — 아이스크림 판매량과 물놀이 사고는 함께 늘지만, 아이스크림이 사고를 일으키는 건 아니에요. 둘 다 더운 날씨의 영향을 받아요.
- 이상치에 약해요 — 동떨어진 점 하나가 직선을 크게 끌고 가요. 결과가 이상하면 이상치를 확인해 보세요.
- 데이터 범위 밖 예측(외삽)은 조심 — 직선 관계는 관측한 범위 안에서만 믿을 만해요. 범위를 크게 벗어난 x는 신뢰하기 어려워요.
- 표본 수가 적으면 불안정해요 — 2~3쌍으로는 우연히 높은 r이 나오기 쉬워요. 점이 두 개면 항상 r이 ±1이 돼요.
- 곡선 관계는 직선으로 설명이 안 돼요 — r이 낮다고 관계가 없는 게 아니라, 곡선 형태일 수 있어요. 산점도를 꼭 확인하세요.
- x 값이 모두 같으면 기울기를 구할 수 없어요(Sxx = 0). y 값이 모두 같으면 기울기가 0이고 r은 정의되지 않아요.
어디에 쓰나요
학교 수학·통계 과제와 실험 보고서에서 측정값의 경향선을 구할 때, 광고비와 매출·공부 시간과 점수처럼 두 지표의 관계를 가늠할 때, 월별 지출이나 체중 기록의 추세를 간단히 볼 때 많이 써요. 엑셀의 SLOPE, INTERCEPT, RSQ 함수나 추세선 기능과 같은 계산이에요. 데이터의 평균과 표준편차가 필요하면 평균·표준편차 계산기를, 변화율은 퍼센트 계산기를 이용하세요.
두 번째 예시: 공부 시간과 점수
공부 시간(x, 시간)과 점수(y)를 6명에게 물어서 (1, 52), (2, 55), (3, 61), (4, 64), (5, 70), (6, 72)를 얻었다고 해 볼게요. x̄ = 3.5, ȳ ≈ 62.33이고 Sxx = 17.5, Syy ≈ 317.33, Sxy = 74예요. 기울기는 74 ÷ 17.5 ≈ 4.229, 절편은 62.33 − 4.229 × 3.5 ≈ 47.53이라 추세선은 y ≈ 47.53 + 4.229x예요. 상관계수 r ≈ 0.993, R² ≈ 0.986으로 직선에 매우 가까워요. 공부 시간이 1시간 늘 때마다 점수가 평균 4.2점 정도 오르는 관계로 읽을 수 있고, 7시간이면 약 77.1점으로 예측돼요. 다만 이 예시는 설명용 숫자이고, 실제 시험에서는 시간이 늘수록 효과가 줄어드는 곡선 관계가 흔해서 먼 구간까지 직선으로 예측하면 틀릴 수 있어요.
| x | 실제 y | 직선 예측 | 잔차 (실제 − 예측) |
|---|---|---|---|
| 1 | 52 | 51.76 | +0.24 |
| 2 | 55 | 55.99 | −0.99 |
| 3 | 61 | 60.22 | +0.78 |
| 4 | 64 | 64.45 | −0.45 |
| 5 | 70 | 68.68 | +1.32 |
| 6 | 72 | 72.90 | −0.90 |
잔차는 실제 값에서 직선 예측을 뺀 값이에요. 잔차의 합은 항상 0이고, 이 제곱합이 가장 작아지는 직선이 최소제곱 직선이에요. 잔차가 한쪽으로 몰리거나 곡선 모양을 그리면 직선이 맞지 않는다는 뜻이에요.
엑셀·구글 시트 함수와 대응
스프레드시트에서는 =SLOPE(y범위, x범위)가 기울기, =INTERCEPT(y범위, x범위)가 절편, =CORREL(x범위, y범위)가 상관계수 r, =RSQ(y범위, x범위)가 R²예요. 함수에서는 y 범위가 먼저 오는 점을 헷갈리기 쉬워요. 이 계산기와 값을 비교해 보면 입력이 제대로 됐는지 확인할 수 있어요.
데이터 입력 요령
x는 설명하는 값(원인으로 생각하는 값), y는 설명되는 값(결과)이에요. 둘을 바꾸면 기울기와 절편은 달라지지만 상관계수 r은 같아요. 소수점은 마침표로 쓰고 천 단위 쉼표는 넣지 마세요. 쉼표가 구분 기호로 쓰이기 때문이에요. 예를 들어 "1,000, 25"는 세 개의 숫자로 읽혀서 앞의 두 개(1과 0)만 쓰이므로 "1000 25"처럼 공백으로 구분하는 것이 안전해요. 날짜 데이터는 먼저 숫자(1월=1, 2월=2…)로 바꿔서 넣으세요.
변수 변환으로 곡선 관계 다루기
데이터가 직선이 아니라 곡선 모양이라면 값을 변환해서 직선에 가깝게 만들 수 있어요. 예를 들어 지수적으로 늘어나는 데이터는 y에 로그를 취해서 넣으면 직선에 가까워지고, 면적과 길이처럼 제곱 관계가 있다면 x를 제곱한 값을 넣어 볼 수 있어요. 로그 계산이 필요하면 공학용 계산기를 이용하세요. 변환한 뒤의 기울기는 원래 단위가 아니라 변환된 값 기준이라는 점을 기억해 해석해야 해요.
한눈에 정리
기울기 b는 x가 1 늘 때 y의 평균 변화, 절편 a는 x=0일 때의 y, r은 직선 관계의 방향과 강도, R²는 설명되는 변동의 비율이에요. 결과를 믿기 전에 산점도를 그려 직선이 맞는지, 이상치가 없는지, 표본이 충분한지를 확인하세요. 상관관계는 인과관계를 증명하지 않고, 데이터 범위를 크게 벗어난 예측은 조심해야 해요. 이 도구는 변수 하나의 단순 회귀만 다루므로 여러 변수를 동시에 쓰는 분석은 통계 프로그램을 쓰세요.
입력한 데이터는 브라우저 안에서만 계산하고 서버로 보내지 않아요. 이 도구는 단순(변수 하나) 선형 회귀만 다뤄요. 유의성 검정이나 신뢰구간은 계산하지 않아요.