Constance Crozier: Forecasting s-curves is hard

Shawn Wang

콘스탄스 크로지어: S커브 예측은 어렵다

원문은 Shawn Wang님이 에 게재했습니다. 이 블로그 구독하기

코로나 시기에 유명했던 차트가 하나 있는데, S커브를 실시간으로 겪으면서 그걸 예측하는 게 얼마나 어려운지를 보여주는 차트다. 나는 그 차트를 항상 찾느라 애를 먹는다. 초반에는 모든 게 지수함수처럼 폭발적으로 증가하는 것처럼 보이고, 그러면 어김없이 “너, 너 바보야, 지수함수가 뭔지나 알아? 내가 설명해줄게”라고 호들갑 떠는 글들이 쏟아진다. 그러다 보이지 않는 점근선에 도달하면, 그렇게 바이럴 글을 쓰던 시끄러운 목소리들은 언제 그랬냐는 듯 다른 주제로 넘어가 버린다.

어쨌든 아래 트윗 이미지만으로는 이걸 제대로 전달할 수 없으니, 동영상 버전을 직접 보는 걸 추천한다: https://vimeo.com/408599958 또는 https://x.com/clcrozier/status/1251148890595708938

이미지

저자는 콘스탄스 크로지어이며, 이 차트와 함께 블로그 글을 올린 적이 있다. 구글봇을 위해 전문을 여기에 옮겨둔다:

S커브 예측은 어렵다

S커브(또는 시그모이드 함수)는 시간에 따른 사회·생물학적 시스템의 변화를 모델링하는 데 흔히 사용된다 [1]. 이 함수는 지수적 성장으로 시작해 선형적으로 증가하다가 마지막에는 수평으로 수렴한다(그래서 삐뚤빼뚤한 S자 모양이 된다). 우리가 지수함수라고 생각하는 많은 현상들은 실제로는 S커브를 따른다(그렇지 않다면 시스템이 무한대로 발산할 것이다). 유명한 예 중 하나가 신기술의 채택이다. 아래 그래프는 시간에 따른 미국 성인의 스마트폰 보유율에 최적 S커브를 겹쳐 그린 것이다. 이 경우 지수적 성장은 홍보와 공급이 확대되는 방식 때문에 나타난다. 하지만 잠재적 소비자의 수는 한정되어 있고(그중 일부는 절대 스마트폰을 갖지 않을 것이다), 그래서 성장세는 점차 0으로 느려진다.

미국 스마트폰 보유율 [2]

또 다른 예이자, 최근 이 곡선들이 다시 뉴스에 자주 등장한 이유는 질병의 전파다. 이 경우 지수적 성장은 바이러스가 처음 등장해 바이러스에 노출된 대부분의 사람들이 면역을 갖지 못했을 때 일어난다. 수평 수렴은 바이러스가 더 이상 면역이 없는 사람을 만나지 못하게 될 때 발생한다(‘집단 면역’ 때문이든 감염자의 격리 때문이든). 아래 그래프는 2003년 중국 내 SARS 사망자 수에 최적 S커브를 겹쳐 그린 것이다.

중국 내 SARS 사망자 수 [3]

S커브는 매개변수가 세 개뿐인데, 그럼에도 다양한 시스템을 이토록 잘 설명한다는 점이 어쩌면 놀랍다. 크게 보면 세 매개변수는 초기 성장률, 수렴 속도, 그리고 수렴값(점근값)을 나타낸다. 따라서 이 세 숫자만 추정할 수 있다면 추세 곡선을 얻을 수 있다. 우리 중 많은 사람이 학교에서 매개변수가 세 개이면 함수를 정의하는 데 데이터 포인트 세 개가 필요하다고 배웠을 것이다. 그렇다면 세 번의 관측만으로 수렴 지점을 완벽하게 예측할 수 있다는 얘기가 된다(스포일러: 불가능하다).

실제로는 데이터의 전체적인 추세가 어떤 S커브에 들어맞을 수는 있어도, 개별 데이터 포인트가 모두 그 곡선 위에 놓이지는 않는다. 이는 앞의 두 예에서도 확인할 수 있다. 이러한 차이는 흔히 ‘모델링 오차’로 설명되는데, 여기에는 데이터 측정 오차와 S커브 모델 자체가 근본적으로 틀렸다는 사실이 모두 포함된다. 조지 박스의 말을 빌리자면 “모든 모델은 틀리지만, 일부는 유용하다”.

직관적으로 생각해도 초기 데이터만으로 곡선을 예측할 수 없다는 건 당연해 보인다. 그게 가능하다고 가정하는 것은 우리가 결과에 전혀 영향을 줄 수 없다고 믿는 것과 같기 때문이다. 하지만 내 경험상 “직관”과 “수학”을 일치시키기란 종종 어렵다. 그래서 나는 데이터가 늘어남에 따라 “최적 S커브”가 얼마나 달라지는지 직접 알아보기로 했다. 아래는 내가 무작위로 선택한 S커브다. 표시된 점들은 “노이즈가 섞인 관측치”인데, 이는 수학적으로 말해 ‘곡선에서 나온 점에 무작위 오차를 더한 것’을 뜻한다.

이 경우 S커브 모델은 완벽하게 들어맞는다. 말 그대로 S커브에서 데이터를 생성했기 때문이다. 즉, 오차가 전혀 없었다면 세 개의 점만으로 곡선을 찾을 수 있었을 것이다. 다시 말해, 이 예시는 이상적인 경우다. 현실에서는 데이터에 이토록 잘 맞는 곡선을 찾기가 쉽지 않다. 아래 애니메이션은 데이터가 점차 추가될 때 최소제곱 최적화로 찾은 최적 S커브가 어떻게 변하는지를 보여준다.

지수적 성장 구간에서는 추정치가 매우 부정확하다는 것이 놀랍지 않을 수도 있지만, 선형 구간(데이터 포인트가 40개 이상 쌓인 시점)에서도 여전히 올바른 곡선을 찾지 못한다. 사실 데이터가 수평으로 수렴하기 시작해야 비로소 올바른 S커브를 찾을 수 있다. 지금 자신이 곡선의 어느 부분에 있는지를 구분하기가 꽤 어렵다는 점을 생각하면, 이는 특히나 도움이 되지 않는다. 사후 판단은 언제나 정확하기 때문이다.

그렇다고 S커브를 모델링하거나 예측하는 것이 불가능하다는 얘기는 아니다. 다만 모델링하려는 시스템에 대한 맥락적 정보가 필요할 가능성이 높다는 뜻이다. 생물학적 시스템이라면 초기 성장률을 결정하는 물리적 매개변수가 있는가? 기술 변화라면 최종 수렴값을 합리적으로 추정할 수 있는가? 이런 정보는 적용 분야마다 다르다. 다시 말해, 나 같은 데이터 애호가들은 모델링을 전문가에게 맡기는 편이 낫다.

고문헌

[1] Nieto et. al, “Performance analysis of technology using the S curve model: the case for digital signal procession technologies” 1998.

[2] Comscore Whitepaper: ‘The 2016 U.S. Mobile App Report”, September 13, 2016

[3] World Health Organisation https://www.who.int/csr/sars/country/en/


나는 4년 전 https://www.latent.space/p/ok-foomer에서 이 글을 인용한 적이 있고, 최근 https://www.latent.space/p/wtf2025를 위해 다시 찾으려다 애를 먹었다. 나의 Three Strikes 원칙에 따라 이제 블로그에 남겨둘 때가 된 것 같고, 특히 지금은 그녀의 웹사이트가 제대로 열리지 않기 때문이다.

이미지

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글