반응형
[Python] 언제 은퇴할 수 있을까를 계산
FIRE Movement
FIRE 운동이란, “경제적 자립과 조기 퇴직(financial independence, retire early)”의 영문 첫 글자를 결합한 합성어입니다. 마치 나방이 불빛을 향해 모여들듯이 이런 삶을 꿈꾸는 사람들이 늘어나고 있습니다.
Libraries 라이브러리
1
2
3
4
5
|
# Import the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
|
cs |
변수 세팅
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# Get your savings rate
savings_rate = 0.64
# Get your yearly income
income = 30000
# Get your yearly expenses
expenses = income * (1-savings_rate)
# Get the interest rate from your portfolio or assets
interest_rate = 0.08
# Get the amount that you will invest into the portfolio or assets
investment = income - expenses
# Calculate the expected annual return
annual_return = investment * interest_rate
# Get the current year
year = 2022
# Get the withdrawal rate
withdrawal_rate = 0.04
|
cs |
변수는 저축률, 소득액, 비용, 금리, 투자금액, 연수익률, 4% 룰을 세팅합니다.
1
2
3
4
5
6
7
|
# Create empty lists for the data set
Year = []
Yearly_Income = []
Yearly_Expenses = []
Yearly_Invested_Amount = []
Total_Invested_Amount = []
Annual_Returns = []
|
cs |
리스트에 데이터 채워넣기
1
2
3
4
5
6
7
|
# Append the data to the lists
Year.append(year)
Yearly_Income.append(income)
Yearly_Expenses.append(expenses)
Yearly_Invested_Amount.append(income - expenses)
Total_Invested_Amount.append(investment)
Annual_Returns.append(annual_return)
|
cs |
투자 기간이 30년이라고 가정하고, 연도별 투자 금액과 비용, 소득 총액, 비용, 투자수익 총액은 어떻게 변화하는지 리스트에 담아서 확인합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# Create a variable to store the amount of years/rows invested
invested_years = 30
for i in range(0, invested_years - 1):
investment = (income - expenses) + annual_return + investment
annual_return = investment * interest_rate
# Append the new data to the lists
Year.append(year + i + 1)
Yearly_Income.append(income)
Yearly_Expenses.append(expenses)
Yearly_Invested_Amount.append(income - expenses)
Total_Invested_Amount.append(investment)
Annual_Returns.append(annual_return)
|
cs |
투자기간동안의 데이터로 데이터프레임 생성하기
1
2
3
4
5
6
7
8
9
10
11
|
# Create the data set
df = pd.DataFrame()
df['Year'] = Year
df['Yearly_Income'] = Yearly_Income
df['Yearly_Expenses'] = Yearly_Expenses
df['Yearly_Invested_Amount'] = Yearly_Invested_Amount
df['Total_Invested_Amount'] = Total_Invested_Amount
df['Annual_Returns'] = Annual_Returns
Yearly_Withdrawal_Amount = np.array(Total_Invested_Amount) * withdrawal_rate
df['Yearly_Withdrawal_Amount'] = Yearly_Withdrawal_Amount
|
cs |
(30년 투자기간 동안의 소득, 비용, 투자금, 수익률, 금리 변화)
30년 투자기간 시각화하기
1
2
3
4
5
6
7
8
9
10
|
# Visually show the data
plt.figure(figsize=(12, 4))
plt.plot(df['Year'], df['Yearly_Expenses'], label='Yearly Expenses')
plt.plot(df['Year'], df['Yearly_Withdrawal_Amount'], label='Yearly Withdrawal Amount')
plt.title('Years Until Retirement')
plt.xlabel('Years')
plt.ylabel('USD ($)')
plt.xticks(df['Year'], rotation=45)
plt.legend()
plt.show()
|
cs |
2031년이 되면 은퇴를 할 수 있을 것이라고 나옵니다. 물론 소득액, 비용총액, 금리, 수익액은 초기 세팅 변수에 따라 설정되었기 때문에 정확할 순 없습니다.
1
2
|
# Show the year/row where you can live off of your returns
df[df.Yearly_Expenses <= df.Yearly_Withdrawal_Amount].head(1)
|
cs |
재미정도로만 생각해서 하면 될 것 같습니다.
반응형
'공부 > 파이썬 Python' 카테고리의 다른 글
파이썬으로 이미지 크롤링하기 (requests, selenium) (0) | 2022.04.03 |
---|---|
Weather API 튜토리얼 (날씨 정보 API) (0) | 2022.04.01 |
블록체인의 기본 원리: 투명성(Transparency) with Python (0) | 2022.03.26 |
간단한 파이썬 멀티쓰레딩 예제들 (0) | 2022.03.25 |
Python을 사용한 유방암 검출 튜토리얼 (Breast Cancer Detection with Python) (1) | 2022.03.23 |
댓글