NPV와 IRR의 관계
위의 예에서 구한 IRR 8.7%를 입력하면 NPV가 0이 된다. 즉, IRR은 NPV를 0으로 만드는 할인율인 셈이다. IRR을 구하는 방법은 간단하지 않다. NPV를 0으로 만드는 rate를 구할 때 다기간인 경우 단순한 식으로 표현하기 쉽지 않다. 수치적 방법으로 rate를 바꿔가면 NPV가 0에 근접할 때까지 시행착오를 거쳐야 한다.
위 수식에서 rate를 구하는 것인데, 수학 시간에 배운 방정식 풀이로는 해를 구하기 쉽지 않다. 그러므로 이번에는 scipy 라이브러리의 irr 함수를 이용해 IRR을 구하고, 이때 IRR이 과연 NPV를 0으로 만드는지 확인해본다.
# scipy 라이브러리를 임포트한다
import scipy as sp
# 현금흐름을 cashflows 리스트에 저장한다
cashflows = [ -70000, 12000 , 15000 , 18000 , 21000 , 26000 ]
# scipy 라이브러리의 irr 함수를 사용해 내부수익률을 계산한다
irr= sp.irr( cashflows )
# 구한 IRR을 npv의 할인율로 사용해 NPV를 구한다. IRR이 정확하다면 NPV는 0이다
npv=sp.npv( irr, cashflows )
# 결과를 출력한다. 결과는 문자열의 서식 기능을 이용한다
print( 'IRR {0:.1%} makes NPV {1:.2f} '.format( irr, npv ) )
위 코드에서 format은 문자열의 출력 서식을 바꾸는 문자열 함수다.