Menu

지수회귀 계산기

증가나 감소 데이터에 맞는 곡선 y = a·bˣ와 한 단계당 변화율.

작성자 Nethanel Bar, 공동 창업자 겸 CEO

마지막 업데이트

계산기 없이 풀고 싶으신가요?

Coddy 수학 강의는 방법 자체를 가르칩니다. 대화형 보드에서 한 단계씩 직접 풀고, 어디서 어긋났는지 정확히 알려 줍니다.

지수회귀는 더하지 않고 곱해지는 증가를 맞춥니다

직선은 x가 한 단계 갈 때마다 같은 양을 더합니다. 그런데 많은 것은 같은 비율로 곱해집니다. 복리로 불어나는 돈, 세균 배양, 배터리에 남은 전하, 식어 가는 음료와 방 사이의 온도 차가 그렇습니다. 이 패턴이 y = a·bˣ이고, a는 x = 0일 때의 값, b는 한 단계마다 곱해지는 비율입니다. b가 1보다 크면 증가, 0과 1 사이면 감소이고, (b에서 1을 뺀 값)을 퍼센트로 나타낸 것이 한 단계당 변화율입니다.

표준적인 맞춤 방법은 모든 y의 자연로그를 취하는 것입니다. y = a·bˣ이면 ln y = ln a + x·ln b이고, 이것은 x에 대한 직선입니다. 그래서 점 (x, ln y)에 보통의 최소제곱 직선을 맞추고, 기울기에서 ln b를, 절편에서 ln a를 읽고, 로그를 되돌립니다. TI-84의 ExpReg 명령과 엑셀의 지수 추세선이 하는 일이 바로 이것이며, 이 페이지는 ln y 열, 맞춘 직선, a와 b를 되찾는 두 지수 계산까지 모든 단계를 보여 줍니다.

로그는 무리수이므로, 이 계산기 모음 중 답이 정확한 분수가 아니라 반올림한 소수인 것은 이것 하나뿐이며, 결과 옆에 그 사실을 적어 둡니다. 또한 0이나 음수의 로그는 존재하지 않으므로 모든 y가 0보다 커야 합니다. 표시되는 r²는 ln y에 맞춘 직선의 r²이고, 공학용 계산기가 알려 주는 값도 이것입니다.

곡선에서 눈여겨볼 점

  • b는 한 단계당 곱해지는 비율이고 (b에서 1을 뺀 값)이 변화율입니다. b ≈ 0.8195는 한 단계마다 이전 값의 약 81.95%가 남는다는 뜻이고, 한 단계당 약 18.05% 감소입니다.
  • a는 x = 0에서 맞춘 값이며, 반드시 첫 번째 데이터 점과 같지는 않습니다. x = 0부터 5에서 y = 100, 82, 67, 55, 45, 37이라면 맞춘 값은 a ≈ 99.9517입니다.
  • 같은 곡선을 k = ln b로 두고 y = a·eᵏˣ로 쓸 수 있습니다. k가 양수면 증가, 음수면 감소이고, ln 2 / |k|가 두 배가 되는 시간 또는 반감기입니다.
  • 맞춤은 y가 아니라 ln y에 대한 최소제곱입니다. y가 5든 5000이든 10%의 오차를 똑같이 다루므로, 퍼센트로 증가하는 데이터에 알맞습니다.
  • 로그 척도에서 r²가 높다고 증가가 지수적이라는 증거는 아닙니다. 직선 데이터 5, 4, 3, 2, 1도 지수 맞춤에서 r² ≈ 0.9473이 나옵니다.

지수회귀를 손으로 하는 방법

  1. 모든 y의 로그 취하기

    각 y를 ln y로 바꿉니다. x = 0, 1, 2, 3, 4와 y = 3, 6, 12, 24, 48이라면 새 열은 약 1.0986, 1.7918, 2.4849, 3.1781, 3.8712입니다.

  2. (x, ln y)에 직선 맞추기

    점 (x, ln y)에 보통의 최소제곱 공식을 써서 기울기와 절편을 구합니다. 여기서 기울기는 약 0.6931, 절편은 약 1.0986입니다.

  3. 로그 되돌리기

    기울기가 ln b, 절편이 ln a이므로 b는 e를 기울기만큼 거듭제곱한 값, a는 e를 절편만큼 거듭제곱한 값입니다. 여기서 b ≈ e^0.6931 = 2, a ≈ e^1.0986 = 3입니다.

  4. 곡선을 쓰고 변화율 읽기

    y ≈ 3·2ˣ, 밑을 e로 쓰면 y ≈ 3e^(0.6931x)입니다. b = 2는 한 단계마다 y가 2배가 된다는 뜻입니다. 한 단계당 100% 증가이고, 두 배가 되는 시간은 정확히 한 단계입니다.

작은 데이터의 지수 맞춤

각 행은 위 계산기에 입력한 데이터 하나입니다. 모든 값은 소수 넷째 자리까지 반올림했습니다.

x 값y 값지수회귀 곡선한 단계당 변화ln y의 r²
0, 1, 2, 3, 43, 6, 12, 24, 48y ≈ 3 · 2ˣ+100%1
0, 1, 2, 3, 4, 5100, 82, 67, 55, 45, 37y ≈ 99.9517 · 0.8195ˣ-18.05%1.0000
1, 2, 3, 4, 52.1, 4.3, 8.9, 17.5, 36y ≈ 1.0413 · 2.0313ˣ+103.13%0.9999
0, 1, 2, 3, 41000, 1050, 1102.5, 1157.625, 1215.50625y ≈ 1000 · 1.05ˣ+5%1
0, 1, 2, 3, 45, 4, 3, 2, 1y ≈ 5.6968 · 0.6762ˣ-32.38%0.9473

풀이 예제

한 단계마다 두 배

plain
x: 0, 1, 2, 3, 4; y: 3, 6, 12, 24, 48

각 y가 바로 앞 값의 두 배이므로 점들은 정확히 y = 3·2ˣ 위에 있고, 계산기는 a ≈ 3, b ≈ 2, 한 단계당 100% 증가, r² = 1을 돌려줍니다. 밑을 e로 쓰면 같은 곡선은 y ≈ 3e^(0.6931x)이고, 0.6931은 ln 2입니다. x = 6까지 이어 가면 3·2⁶ = 192를 예측합니다.

감소: 식어 가는 커피

plain
x: 0, 1, 2, 3, 4, 5; y: 100, 82, 67, 55, 45, 37

y를 5분마다 잰, 커피와 방의 온도 차로 읽으세요. 맞춘 곡선은 y ≈ 99.9517 · 0.8195ˣ, 또는 y ≈ 99.9517e^(-0.1991x)입니다. 한 단계마다 온도 차의 약 18.05%가 사라지고, 반감기는 ln 2 / 0.1991, 약 3.48단계입니다. 로그 맞춤은 거의 완벽합니다. r²는 소수 다섯째 자리까지 0.99999이고, 계산기는 이를 1로 반올림합니다.

잡음이 섞인 증가

plain
x: 1, 2, 3, 4, 5; y: 2.1, 4.3, 8.9, 17.5, 36

값이 한 단계마다 대략 두 배가 되지만 정확히 두 배는 아닙니다. 맞춘 곡선은 y ≈ 1.0413 · 2.0313ˣ, 한 단계당 약 103.13% 증가이고, 로그 척도의 r² ≈ 0.9999입니다. 밑을 e로 쓰면 k ≈ 0.7087이므로 두 배가 되는 시간은 ln 2 / 0.7087, 약 0.98단계입니다.

복리

plain
x: 0, 1, 2, 3, 4; y: 1000, 1050, 1102.5, 1157.625, 1215.50625

1000의 잔액에 연 5% 이자가 붙습니다. 계산기는 y ≈ 1000 · 1.05ˣ, 한 단계당 +5% 변화, r² = 1을 되찾아 냅니다. 잔액 목록에서 이자율을 거꾸로 읽어 내는 것이 바로 이 맞춤의 쓰임새입니다.

데이터가 지수적이지 않을 때

plain
x: 0, 1, 2, 3, 4; y: 5, 4, 3, 2, 1

이 점들은 한 단계마다 같은 양만큼 줄어들므로 직선 y = -x + 5 위에 있습니다. 지수 맞춤도 y ≈ 5.6968 · 0.6762ˣ와 로그 척도의 r² ≈ 0.9473을 돌려주고, 그럴듯해 보입니다. 곡선을 점들과 함께 그려 보면 양 끝에서 빗나갑니다. 여기서는 직선이 올바른 모형이고, 선형회귀가 정확히 맞춥니다.

자주 하는 실수

  • 0 이하인 y를 넣기. 거기서는 로그가 정의되지 않아 방법이 작동하지 않습니다. 데이터가 정말 0에 닿는다면 지수적이지 않은 것입니다.
  • b를 퍼센트로 읽기. b = 1.05는 한 단계당 5% 증가이고, b = 0.82는 82%가 아니라 한 단계당 18% 감소입니다.
  • a를 첫 번째 y 값과 혼동하기. a는 x = 0에서 맞춘 값이고, 맞춤이 정확하며 데이터가 x = 0에서 시작할 때만 첫 번째 데이터 점과 같습니다.
  • 한 단계에서는 상용로그를, 다른 단계에서는 e를 쓰기. 로그를 취할 때와 되돌릴 때 같은 밑을 쓰기만 하면 어떤 밑이든 됩니다.
  • 로그 척도의 r²를 지수적 증가의 증거로 믿기. 직선 데이터도 0.9를 넘을 수 있습니다. 곡선을 점들과 함께 그려 보세요.
  • 먼 앞날까지 외삽하기. 지수적 증가는 결국 언젠가 한계에 부딪히고, 맞춘 곡선은 그때가 언제인지 알 방법이 없습니다.

지수회귀 자주 묻는 질문

지수회귀를 손으로 하려면 어떻게 하나요?
모든 y의 자연로그를 취하고, 점 (x, ln y)에 보통의 최소제곱 직선을 맞춘 뒤 로그를 되돌립니다. b는 e를 기울기만큼 거듭제곱한 값, a는 e를 절편만큼 거듭제곱한 값입니다. x = 0부터 4에서 y = 3, 6, 12, 24, 48이라면 직선의 기울기는 0.6931, 절편은 1.0986이고, 이로부터 b = 2, a = 3이므로 y = 3·2ˣ입니다.
y = a·bˣ에서 a와 b는 무엇을 뜻하나요?
a는 x = 0일 때의 y 값이고, b는 x가 1 늘 때마다 y에 곱해지는 비율입니다. b가 1보다 크면 증가, 0과 1 사이면 감소입니다. 한 단계당 변화율은 (b에서 1을 뺀 값)을 퍼센트로 나타낸 것입니다. b = 1.05는 +5%, b = 0.8195는 약 -18.05%입니다.
데이터에서 증가율은 어떻게 구하나요?
곡선을 맞추고 b를 읽습니다. 계산기는 x 한 단계당 변화를 퍼센트로 보여 줍니다. 이 페이지의 잡음 섞인 두 배 증가 예제는 +103.13%, 식어 가는 커피는 -18.05%입니다. x의 단위가 년이라면 그것이 연간 비율입니다.
y = a·bˣ와 y = a·eᵏˣ는 어떻게 다른가요?
표기만 다릅니다. k = ln b인 같은 곡선이므로 b = eᵏ입니다. 과학에서는 k가 연속 변화율이라서 밑이 e인 꼴을 많이 쓰고, ln 2 / |k|로 두 배가 되는 시간이나 반감기를 바로 얻습니다.
계산기가 분수가 아니라 소수를 주는 이유는 무엇인가요?
이 방법은 로그를 취하는데, 정수의 로그는 거의 언제나 무리수이기 때문입니다. 이 모음의 선형회귀와 이차회귀 계산기는 정확한 분수를 주고, 이 계산기는 소수 넷째 자리까지 반올림한 값을 주면서 근삿값이라고 표시합니다.
엑셀이나 공학용 계산기와 답이 조금 다른 이유는 무엇인가요?
TI-84의 ExpReg와 엑셀의 지수 추세선은 둘 다 ln y를 최소제곱으로 맞추므로 반올림 차이를 빼면 같아야 합니다. y 자체를 비선형 최소제곱으로 맞추는 소프트웨어는 다른 양을 최소화하므로 a와 b가 조금 다르게 나옵니다. 가장 큰 값들에서의 오차를 가장 무겁게 다루기 때문입니다.
지수회귀에서 y가 음수나 0이어도 되나요?
안 됩니다. 이 방법은 모든 y의 로그를 취하는데, ln 0과 음수의 로그는 존재하지 않습니다. 어차피 a가 양수인 곡선 y = a·bˣ는 언제나 0보다 크므로, 0에 닿는 데이터는 그런 곡선을 따르지 않습니다.

다른 수학 도구

Coddy 프로그래밍 언어 일러스트

Coddy와 함께 수학 배우기

시작하기