지난 글에서 현실의 자산 수익률에 대해 중심 극한 정리(Central Limit Theorem; CLT)가 성립하지 않는 이유를 사례와 함께 살펴보았습니다. 중심 극한 정리는 수익률 분포가 고정이고, 수익률 분포에서 발생하는 각각의 수익률이 독립적이라는 가정하에 성립합니다. 하지만 현실의 수익률 분포는 고정이 아니며, 수익률의 독립성도 보장되지 않습니다. 참고: [중급 33] 투자 성과는 왜 예측하기 어려울까? (중심 극한 정리가 성립하지 않는 투자 수익률) SPY의 경우 일일 수익률을 임의로 추출하여 평균을 내면 중심 극한 정리에 의해 표본 평균은 정규 분포를 따르지만, 윈도(window)를 이동시켜 가며(rolling) 구한 일일 수익률의 평균(예를 들어 1년간 일일 수익률의 평균)은 정규 분포와 확연히 달랐습니다. 투자 기간이 길어진다고 (1년과 5년) 즉 표본의 수가 늘어난다고 정규 분포에 더 가까워지는 것도 아니었습니다. 해당 글에서는 산술 평균을 이용하여 분석했습니다. 대부분의 투자자는 복리로 투자하기에 기하 평균을 이용하여 분석하여 살펴보는 것이 보다 합리적입니다. 복리 투자를 모델링하기 위해서는 수익률 대신 자산비를, 더하기 대신 곱하기를, 산술 평균 대신 기하 평균을 사용해야 합니다. 사람들은 자산비, 곱하기, 기하 평균보다는 수익률, 더하기, 산술 평균이 더 익숙하고 이해하기 쉽습니다. 로그(logarithm; 로가리듬)는 지수로 증가하는 자산비를 선형으로 증가하는 시간으로, 곱하기를 더하기로, 기하 평균을 산술 평균으로 계산할 수 있도록 바꾸어 주는 변환 형식이라 볼 수 있습니다. 로그와 로그 스케일로 표현하는 그래프에 대해 알아봅니다. 주의: 이 글은 특정 상품 또는 특정 전략에 대한 추천의 의도가 없습니다. 이 글에서 제시하는 수치는 과거에 그랬다는 기록이지, 앞으로도 그럴 거라는 예상이 아닙니다. 분석 대상, 기간, 방법에 따라 전혀 다른 결과가 나올 수 있습니다. 데이터 수집, 가공, 해석 단계에서 의도하지 않은 오류가 있을 수 있습니다. 일부 설명은 편의상 현재형으로 기술하지만, 데이터 분석에 대한 설명은 모두 과거형으로 이해해야 합니다. 지수 함수(exponential function) 로그를 이해하기 위해서는 지수 함수(exponential function)를 알아야 합니다. 로그는 지수 함수의 역함수(inverse function)이기 때문입니다. 지수 함수는 다음과 같이 표현됩니다. y = rˣ r을 x번 곱한 결과를 y라 하면, y는 r을 밑(base)으로 하는 지수 함수입니다. x가 0이라면 r⁰은 r을 한 번도 곱하지 않았습니다. 아무것도 없는데 아무것도 곱하지 않는다면 값이 결정되지 않습니다. 무언가 곱하기의 기준이 있어야 합니다. 그 기준은 1이 됩니다. x가 1이면 1에 r을 한 번 곱했으니 1 × r = r이 되고, x가 2이면 r을 두 번 곱했으니 1 × r × r = r × r = r²이 됩니다. 투자자에게 익숙한 지수 함수의 밑은 CAGR + 1입니다. CAGR이 10%라면 자산비로 r = 1 + 10% = 1.1입니다. 1년간 투자하면 1.1¹ - 1 = 1.1 - 1 = 0.1 = 10% 수익률을 얻습니다. 2년간 투자하면 1.1² - 1 = 1.1 × 1.1 - 1 = 1.21 - 1 = 0.21 = 21%가 됩니다. 지수는 정수가 아닌 모든 실수에 대해 정의됩니다. 2.5년을 투자하면, 1.1²·⁵˙ - 1 = 1.1² × 1.1⁰·⁵ - 1 = 1.21 × √1.1 - 1 ≒ 1.21 × 1.05 - 1 ≒ 1.27 - 1 = 27%가 됩니다. ᵏ√r은 r¹ᐟᵏ의 다른 표현이며, r⁻ᵏ는 1 / rᵏ와 같습니다. r = 1.1인 지수 함수 그래프는 다음과 같습니다. 지수 함수를 이용하면 자산의 가격이 복리로 증가하는 현상을 쉽게 모델링할 수 있습니다. 물가를 생각해 보면 됩니다. 짜장면은 매년 평균 100원씩 가격이 상승하는 게 아니라, 전년 대비 평균 5%씩 상승합니다. 투자에서 로그 스케일은 어떤 의미일까? 다음은 CAGR이 10% 자산에 20년간 투자했을 때의 누적 수익률 그래프입니다. 누적 수익률은 (1 + 10%)ˣ - 1로 계산합니다. 왼쪽은 세로축을 선형 스케일(linear scale)로 그린 그래프입니다. 자산 가격은 복리로 상승하기에 기하급수적으로 누적 수익률이 증가하는 현상을 볼 수 있습니다. 오른쪽은 세로축을 로그 스케일(log scale)로 그린 그래프입니다. 자산의 복리 효과가 선형으로 표시됩니다. 왜 그럴까요? 다음은 세로축의 눈금을 1.1ˣ 형태로 나타낸 그래프입니다. 투자 기간이 4년이면 y값은 1.1⁴입니다. 모든 x년 투자는 y = 1.1ˣ입니다. 로그 스케일은 누적 자산비를 단위 기간 자산비(r = 1 + CAGR)에 대한 선형 투자 기간으로 변환하기 때문에 각 점을 결정하는 x값이 같은 것입니다. 편의상 로그 스케일로 그릴 때에도 눈금을 수익률로 표시하기에 세로축도 수익률이라 생각하기 쉽습니다. 그렇게 이해하더라도 별 무리가 없습니다. 엄밀하게는 로그 스케일에서 눈금값은 수익률(또는 자산비)이지만, 축 자체의 거리 단위는 기간입니다. x축은 투자 기간입니다. y축을 로그 스케일로 사용하면, 수익률 또는 자산비는 선형 투자 기간으로 변환됩니다. x축과 y축 모두 선형 투자 기간이기에 로그 스케일 그래프에서 자산의 가격이 선형으로 나타나는 것입니다. 로그 로그는 지수 함수의 역함수로 정의됩니다. 다음의 지수 함수 표현에서 x와 y의 위치를 바꿉니다. y = rˣ x = rʸ 양변에 로그를 취하면, 참고: 로그가 이렇게 정의되는 것이 아닙니다. x, y, r의 위치가 어디로 이동하는지 보여주기 위한 전개일 뿐입니다. log(ab) = log(a) + log(b), logᵤ(a) / logᵤ(r) = logᵣ(a)을 이용한 전개입니다. log(x) = log(rʸ) log(x) = ylog(r) y = log(x) / log(r) y = logᵣ(x) CAGR이 10%라면 밑수 r을 1 + 10% = 1.1로 둘 수 있습니다. 50% 누적 수익률을 얻는 데 걸리는 시간은 log₁.₁(1 + 50%) = log₁.₁(1.5) ≒ 4.5년입니다. 투자에서 로그값은 단위 기간 자산비를 밑수로 두었을 때, 특정 자산비까지 자산을 불리는 데 걸리는 시간(단위 기간의 수)이 됩니다. 기하 평균 수익률과 자산비 그리고 로그 첫 번째 해 수익률이 21%이고 두 번째 해 수익률이 0%라면, 산술 연평균 수익률은 (21% + 0%) / 2 = 21% / 2 = 10.5%입니다. 기하 연평균 수익률은 어떻게 계산할까요? CAGR과 같은 복리 수익률을 기하 평균으로 간단하게 계산한다고 설명하기도 하지만, 엄밀하게는 기하 평균 자산비를 계산한 후 수익률로 환산한 값입니다. 기하 평균은 모든 값들을 곱한 후 ᵏ√를 씌워 계산합니다. 21%와 0%로 기하평균을 구하면, √(21% × 0%) = √0% = 0%입니다. 그러니 수익률로 기하 평균을 계산하면 엉뚱한 결과가 나옵니다. 21%와 0%를 자산비로 환산하면 각각 1 + 21% = 121%와 1 + 0% = 100%가 됩니다. 두 자산비의 기하 평균을 계산하면, √(121% × 100%) = √(1.21 × 1) = √(1.21) = √(1.1²) = 1.1입니다. 여기서 1을 뺀 1.1 - 1 = 0.1 = 10%가 복리 수익률입니다. 복리 적용을 받는 자산의 기하 평균 수익률은 수익률 그대로는 계산할 수 없습니다. 모두 자산비로 환산해서 기하 평균을 구하고, 이를 다시 수익률로 환산하는 것입니다. 로그를 적용하면 곱하기를 더하기로 변환할 수 있습니다. log(ab) = log(a) + log(b)이기 때문입니다. 로그를 이용하여 기하 평균을 구해 보겠습니다. logᵣ(√(121% × 100%)) = 1 / 2 × logᵣ(1.21 × 1) = (logᵣ1.21 + logᵣ1) / 2 자산비 1.21과 1에 대해 각각 로그값을 구해 산술 평균을 구하는 것으로 바뀌었습니다. 계산 결과를 y라고 하면 rʸ을 구하면 기하 평균 자산비가 되고, 여기에서 1을 빼면 수익률로 환산할 수 있습니다. r = 1.1로 두면, 다음과 같이 계산할 수 있습니다. (log₁.₁1.21 + log₁.₁1) / 2 = (2 + 0) / 2 = 1 기하 평균은 r¹ = 1.1¹ = 1.1이 되고, 수익률로 환산하면 1.1 - 1 = 0.1 = 10%가 됩니다. 수익률에 1을 더해 자산비로 환산하고, 로그로 환산한 후 산술 평균을 내면, 각각의 자산비를 모두 곱한 후 기하 평균을 구하는 것과 동일한 효과를 가집니다. 알아두면 좋은 지수 함수와 로그의 성질 대부분 알고 있거나 다시 보면 기억이 나겠지만, 지수 함수와 로그의 성질을 정리해 봅니다. rˣ × rʸ = rˣ⁺ʸ 1에 r을 x번 곱하고 다시 y번 곱했으니, 1에 r을 (x + y)번 곱한 것과 같습니다. r⁻ˣ = 1 / rˣ r에 x번 곱한 것은 1에 r을 x번 곱한 것과 같습니다. 따라서 r에 -x번 곱한 것은 1을 r로 x번 나눈 것과 같습니다. logᵣ(xy) = logᵣ(x) + logᵣ(y) rˣ × rʸ = rˣ⁺ʸ을 로그 형식으로 다시 쓴 것입니다. 로그를 취하면 동일한 밑수에 대해 지수 변화를 살펴보는 것과 같습니다. r이 밑수인 수식에서 지수 x와 y는 연산 ×에 의해 x + y가 되었습니다. 따라서 log(xy) = log(x) + log(y)가 됩니다. 정리하며 투자에서 복리 효과를 보다 쉽게 모델링할 수 있는 지수 함수와 지수 함수의 역함수인 로그에 대해 알아보았습니다. 로그에 대해서는 한 가지만 정확하게 기억하면 됩니다. logᵣy은 y라는 자산비를 만들기 위해 단위 기간 자산비 r로 몇 번 복리로 투자해야 하는가입니다. logᵣ(xy)는 r이라는 복리 자산비로 x배로 자산을 불린 후, 그 자산을 다시 y배로 불리는 데 걸리는 기간입니다. x배 불리는 데 걸리는 기간인 logᵣ(x)와 y배 불리는 데 걸리는 기간인 logᵣ(y)을 합하면 되기에 logᵣ(xy) = logᵣ(x) + logᵣ(y)이 됩니다. logᵣ(y) / logᵣ(x)는 r이라는 복리 자산비로 y배로 불리는 것은 x배로 불리는 것 몇 회에 해당되느냐는 계산입니다. 따라서 logᵣ(y) / logᵣ(x) = logₓ(y)가 됩니다. 참고 도서: - 왜 위험한 주식에 투자하라는 걸까 - 장기 투자와 분산 투자에 대한 통계학적 시각 - 파이썬으로 그려보는 투자 포트폴리오 분석 - 정량적 투자 분석을 위한 입문서 이어지는 글: [중급 35] 로그 정규 분포 (투자에서 로그 정규 분포가 필요한 이유) 목차: [연재글 목차] 투자 성과 분석 (기초편, 초급편, 중급편): 순서대로 차근차근 읽으면 좀 더 이해가 쉽습니다. 함께 읽으면 좋은 글: - 커버드콜과 노벨상 (커버드콜에 투자하면 안 되는 간단하고 명확한 이유 + 노벨상을 받는 손쉬운 방법) - 투자 분석은 왜 통계적으로 접근해야 하나? (기초자산과 커버드콜의 경우) [파이썬 분석 17] 출처: [중급 34] 로그와 로그 스케일 (투자 분석에서 로그의 의미와 로그를 사용하는 이유) [오렌지사과의 사진과 투자:티스토리]
|