※ 이 포스팅은 저자 '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)와 버블차트를 조합, 대출금과 추가상환액에 따라 절약되는 금액을 다음과 같이 파이썬으로 시각화 할 수 있다.




( .. 다음 포스팅에 계속 .. )



+ Recent posts