※ 이 포스팅은 저자 'Kirthi Raman'의 도서 <Mastering Python Data Visualization> 을 공부하며 정리한 글입니다.
Chapter 05. Financial and Statistical Models (금융과 통계 모형)
결정론적 모형 (Deterministic Model)
투자의 궁극적 목적은 수익을 내는 것이며, 투자의 손익은 가격의 변동과 보유한 자산 수에 달려 있다.
#. 총 수익률
- 시간(현재 시점) t에 투자 양을 Pt라고 가정하면, 총 수익률 Rt를 다음과 같이 간단하게 표현할 수 있다.
즉, Pt = 10, P_t+1 = 10 이라면, R_t+1 = 0.06 = 6% 이다.
- 더 나아가, 최근 k년 동안의 수익률은 다음 식과 같이 1년 수익률(t-k부터 t까지)의 곱이다.
- Rt에 해당하는 인플레이션을 Ft라 정의하면, 위 식을 다음과 같이 정리할 수 있다.
즉, 인플레이션을 고려하지 않으면(Ft = 0) 직전 식과 같아진다.
- 또한, 배당금과 같은 추가적인 수익이 있다면 다음과 같이 수익률을 정리할 수 있다.
#. 파이썬으로 위 수식을 적용해 문제를 풀어보자.
- 2010년 초기에 $10,000를 투자했고 수익률이 6%라면, 몇 년이 지나야 투자금액의 2배($20,000)가 될까?
(단, 인플레이션과 다른 수익은 고려하지 않는다. --> Ft = Dt = 0)
- 저는 2배가 되는 시점을 시각적으로 쉽게 찾기 위해, 'y = 20,000' 직선을 추가하여 교차하는 지점을 확인해봤습니다.
(참고로, 책에서는 y = 2x 그래프? 를 그리라고 했습니다.)
import matplotlib.pyplot as plt
principle_value = 10000 # 투자 금액
grossReturn = 1.06 # Rt
return_amt = []
x = []
year = 2010
return_amt.append(principle_value)
x.append(year)
for i in range(1,15):
return_amt.append(return_amt[i-1] * grossReturn)
print 'Year-', i, ' Returned:', return_amt[i]
year += 1
x.append(year)
# 눈금이 보이도록
plt.grid()
# return값들의 커브 그리기
plt.plot(x, return_amt, color='r')
plt.plot(x, [20000]*len(x), color='b')
약 2022년 즈음에 목표 수익($20,000)을 달성할 수 있을 것으로 기대할 수 있다.
#. 모기지론의 적용
- 금융기관에서 $350,000를 연 5% 이자율로 30년 만기 원리금균등상환으로 대출받았을 때, 월 상환금은 다음과 같이 계산될 수 있습니다.
(책의 내용과 조금 다를 수 있습니다. 읽으면서 제가 다시 정리한 것으로, 오류 발견 시 댓글로 알려주시면 감사하겠습니다!)
P : 원금, r : 이자율(%), 기간 : t(월)
- 1,878$를 360개월동안 납입하면 총 납입원금은 $676,080가 됩니다. 즉, $350,000를 빌렸지만 실질적으로 빌린 돈이 2배가 되는 셈이지요.
- 이는 원금에 이자가 복리로 붙기 때문인데, 월 상환금을 높이면 총 납입원금도 줄고 조기 상환도 가능합니다.
- 문제를 파이썬으로 시각화 해보면, 상환금을 100$ 올릴 때마다 얼마가 절약되며 얼만큼 조기에 상환이 가능한지 쉽게 확인할 수 있습니다.
(예제 코드는 책의 출판사 사이트에서 받으실 수 있습니다.)
- 산점도(Scatter Plot)와 버블차트를 조합, 대출금과 추가상환액에 따라 절약되는 금액을 다음과 같이 파이썬으로 시각화 할 수 있다.
( .. 다음 포스팅에 계속 .. )
'데이터 과학 > Mastering Python Data Visualization' 카테고리의 다른 글
Chapter 05-3. An Overview of Statistical and Machine Learning (통계 및 머신러닝 개요) (0) | 2017.10.18 |
---|---|
Chapter 05-2. Stochastic Model (확률론적 모형) (0) | 2017.06.19 |
Chapter 04-2. Interactive Plotting (반응형 시각화) (0) | 2017.06.18 |
Chapter 04-1. Numerical Computing (수치 연산) (0) | 2017.06.16 |
Chapter 03. Getting Started with the Python IDE (파이썬 시작하기) (0) | 2017.06.16 |