はじめに|「お金の未来」をPythonで見える化してみよう
「老後資金は2000万円必要」といった話題を、ニュースやSNSで見たことがあるかもしれません。年金は減るらしいし、物価は上がるし、寿命は伸びるし…。正直、考えるだけでちょっとモヤっとしてきますよね。
でも、今回はそんな「将来のお金」そのものがテーマではありません。この記事の目的はズバリ、
Pythonで、自分だけの「老後資金シミュレーター」を作ること!
です。
ちょっと堅そうに見えるテーマかもしれませんが、やることはとってもシンプル。年金や運用益、生活費のざっくりした数字を元に、「何歳までお金が持つのか?」をPythonでグラフ化してみようという企画です。
Pythonの基本構文と、グラフ描画のライブラリ(matplotlibなど)さえ使えれば、誰でも作れる内容になっています。関数の作り方やループ処理のおさらいにもなるので、プログラミングの練習にもピッタリですよ!
この記事を通して、あなたも
- 「Pythonってこんな実用的なことにも使えるんだ」
- 「グラフで見るとすごくわかりやすい!」
- 「もっといろんなシミュレーター作ってみたい!」
と思えるようになるはず。
さっそく一緒に作ってみましょう!
2. Pythonで準備する環境とライブラリ
まずは、今回のシミュレーターを作るために必要な「Pythonの環境」と「使うライブラリ」について簡単に説明します。
✅ Pythonをインストールしよう
まだPythonをインストールしていない方は、公式サイト(https://www.python.org/)から最新版をダウンロードしておきましょう。
Windows・Macともに、インストーラーをダウンロードしてポチポチ進めるだけでOKです。
💡補足:「Add Python to PATH」にチェックを入れておくと、あとがラクになります!
✅ Jupyter Notebook や VSCodeでもOK!
Pythonをインストールしたら、コードを書く場所を選びましょう。おすすめは以下の2つです:
- Jupyter Notebook
ブラウザ上でコードを分割して書けるので、試しながら進めるのにピッタリです。データ分析や可視化との相性もバッチリ! - Visual Studio Code(VSCode)
拡張機能が豊富で、Pythonもバッチリサポート。Jupyter風のノートブックも動かせるので、1つで何でもこなしたい人におすすめ。
🎯どちらを使っても最終的な動作には差がないので、お好きな方でOK!
✅ 使用するPythonライブラリ
今回のシミュレーターでは、以下の3つのライブラリを使います:
| ライブラリ名 | 役割 |
|---|---|
matplotlib | 資産推移のグラフを描く |
numpy | 数値計算や配列操作を効率的に行う |
pandas | 入力データやシミュレーション結果の管理に使う |
インストールしていない方は、以下のコマンドをターミナルやコマンドプロンプトで実行してください:
pip install matplotlib numpy pandas

これで準備は完了です!
次は、実際に「どんなシミュレーションをするか?」の設計を一緒に見ていきましょう。
3. シミュレーションの設計
ここでは、今回作る老後資金シミュレーターがどういう仕組みで動くのかをわかりやすく説明していきます。
「どんな数値を入力して、どうやって将来の資産を計算するのか?」をあらかじめ決めておくことで、後のコードがスムーズに書けるようになります!
✅ シミュレーターの目的
ざっくり言えば、このシミュレーターはこういうことをやります:
現在の貯金+年金+運用益から、毎月の生活費を引き続けていく
そして、**老後の資金がいつ尽きるか(尽きないか)**をグラフで可視化する
✅ 入力パラメータ(ユーザーが設定できる数値)
以下のような数値を、変数で設定できるようにします:
| 項目 | 説明 | 例 |
|---|---|---|
| 初期資産 | 老後に入る時点の手持ち資金 | 1000万円 |
| 年金月額 | 公的年金の受給額 | 月15万円 |
| 月間支出 | 毎月の生活費・支出 | 月25万円 |
| 運用利回り | 資産の年間利回り(投資) | 年3% |
| 試算期間 | シミュレーションする年数 | 40年(65歳〜105歳) |
✅ シミュレーションのロジック(仕組み)
- 1年ごとにループを回す
- 年金(12ヶ月分)と運用益を計算
- 生活費(12ヶ月分)を引く
- 残った金額が次の年の元本になる
- 資産がマイナスになった時点で終了
✅ 可視化のイメージ(グラフ)
最終的には、下のようなグラフが出力されるようにします:
📈 X軸:年齢(または年数)
📉 Y軸:残っている資産の額
資産がゼロになるタイミングをパッと見で確認できるようになります。

ここまでの設計ができれば、あとはPythonでコードを書くだけ!
4. Pythonコードで実装しよう
ここからは、いよいよ実際にPythonでシミュレーターを作っていくステップです!
今回は、わかりやすさを重視して「入力フォーム」は使わず、まずはプログラム内に定数で値を設定する形で進めます。
✅ ステップ1:初期設定(変数を用意)
まずは、試算に使う前提条件を変数として定義してみましょう。
# 初期設定(定数)
initial_assets = 10_000_000 # 初期資産:1000万円
monthly_pension = 150_000 # 月の年金:15万円
monthly_expenses = 250_000 # 月の支出:25万円
annual_return_rate = 0.03 # 年利3%
years = 40 # シミュレーション年数(例:65歳〜105歳)
✅ ステップ2:年ごとの資産をリストで記録
毎年の資産を記録していくために、リストを使います。資産が尽きたタイミングも検出できるようにします。
assets_history = []
assets = initial_assets
broke_year = None # 資金が尽きる年(なければNone)
for year in range(1, years + 1):
annual_income = monthly_pension * 12
annual_expenses = monthly_expenses * 12
assets += annual_income # 年金収入
assets *= (1 + annual_return_rate) # 運用益
assets -= annual_expenses # 支出
assets_history.append(assets)
if assets <= 0 and broke_year is None:
broke_year = year
break # 資産がマイナスになったらシミュレーション終了
✅ ステップ3:グラフで資産の推移を可視化
毎年の資産がどう増減しているかを、グラフにしてみましょう。
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5))
plt.plot(range(1, len(assets_history) + 1), assets_history, marker='o')
plt.title('老後資産のシミュレーション')
plt.xlabel('年数(老後スタートからの年)')
plt.ylabel('資産(円)')
plt.grid(True)
plt.tight_layout()
plt.show()
✅ ステップ4:資産が尽きた年齢を表示
結果として、資産がいつ尽きたかも表示してみます。
if broke_year:
print(f"⚠ 資産は{65 + broke_year}歳(シミュレーション{broke_year}年目)で尽きます。")
else:
print("🎉 すべての期間で資産が尽きることはありませんでした!")

上記のコードはすべてJupyter Notebookで実行できます。セルごとに確認しながら進められるので、Python初心者でも安心です。
5. 試算してみた例
ここでは、実際にいくつかのパターンでシミュレーションを回してみた結果を見ていきましょう。「年金だけでは不安…」「投資をすれば大丈夫?」など、よくある悩みに答える形で検証していきます。
✅ ケース1:平均的な年金と支出
initial_assets = 10_000_000 # 初期資産:1000万円
monthly_pension = 150_000 # 月の年金:15万円
monthly_expenses = 250_000 # 月の支出:25万円
annual_return_rate = 0.03 # 年利3%
years = 40 # 65歳から105歳まで
📉 結果:資産は 81歳(シミュレーション17年目)で尽きました。
→ この条件では、1000万円の貯金だけでは不十分であることがわかります。
✅ ケース2:支出を月20万円に抑えたら?
monthly_expenses = 200_000 # 支出を節約
📉 結果:資産は 95歳(シミュレーション31年目)で尽きました。
→ 支出を月5万円抑えるだけで、資産寿命が14年も延びました!
✅ ケース3:年金が月18万円もらえる人
monthly_pension = 180_000 # 年金が少し多め
monthly_expenses = 250_000 # 支出はそのまま
📉 結果:資産は 88歳で尽きました。
→ 年金の増加も資産寿命に大きく影響します。年金額の見込みを知ることは非常に大切です。
✅ ケース4:インデックス投資で年5%運用できたら?
annual_return_rate = 0.05 # 年利5%
🎉 結果:なんと資産が尽きずに増え続けました!
→ 投資リスクはあるものの、長期的には運用によって老後資金をカバーできる可能性も見えてきます。
✅ まとめ:シミュレーターで見えてくる「お金の未来」
このように、ちょっとした条件の違いで老後資金の「持ち」が大きく変わります。
- 支出を抑える
- 投資利回りを上げる
- 年金額を把握する

これらを1つずつ見直すことで、現実的なライフプランの再設計が可能になります。
6. 応用編:複利・インフレ・投資比率を加味した設計
ここからは、シンプルなシミュレーションをもう一歩リアルに近づけるための応用テクニックを紹介します。
現実の経済は、毎年同じ利回りではありませんし、物価も少しずつ上がっていきます。そこで今回は、次の3つの要素を加えてみましょう:
- 利率を年ごとに変化させる
- インフレ率を考慮して支出を年々増やす
- 投資と預金を組み合わせた比率シナリオを試す
✅ 1. 利率を可変にして現実に近づける
現実の投資は、年3%と決め打ちで毎年増えるわけではありません。例えば、リスク資産は好調な年もあれば損失が出る年もあります。
そこで、numpy.random.normal()を使って、毎年ランダムな利回りを設定してみましょう:
import numpy as np
average_return = 0.04 # 平均利回り(4%)
return_std_dev = 0.05 # 標準偏差(5%)
annual_return = np.random.normal(average_return, return_std_dev)
このようにすれば、現実の投資の“ブレ”を再現することができます。
✅ 2. インフレ率を考慮した支出の増加
毎年同じ生活費では、現実的ではありません。物価上昇(インフレ)を考慮すると、将来ほど生活費が高くなるはずです。
以下のように支出をインフレ率に応じて増やしていきましょう:
inflation_rate = 0.02 # 年2%のインフレ
monthly_expenses = 250_000
for year in range(1, years + 1):
current_expense = monthly_expenses * ((1 + inflation_rate) ** (year - 1))
annual_expenses = current_expense * 12
# 続けて資産計算...
これで、資産が長持ちすると思っていても、購買力が徐々に落ちる現実を反映できます。
✅ 3. 投資 vs 預金の比率でリスクを調整する
投資100%は怖い…そんな方のために、資産を投資と定期預金に分けるシナリオも組み込めます。
investment_ratio = 0.6 # 60%は投資
saving_ratio = 0.4 # 40%は定期預金
investment_return = np.random.normal(0.05, 0.07) # 投資の平均5%、ブレあり
saving_return = 0.01 # 定期預金は年1%
# 合成利回りを計算
total_return = investment_return * investment_ratio + saving_return * saving_ratio
これを資産全体に適用すれば、リスクをコントロールしつつ、より現実的な資産形成の検証ができます。
✅ まとめ:リアルな条件を反映すれば“納得感”が増す
これらの応用テクニックを使えば、
- 年ごとの成績が違う投資の再現
- 生活費の上昇=資産の目減りの再現
- 投資と預金の組み合わせでのリスク調整

といったように、老後資金の動きがより“自分の人生に近い形”で可視化できるようになります。
まとめ|Pythonで未来のお金をシミュレーションしてみよう
今回は、Pythonを使って「老後資金のシミュレーター」を作ってみました。
将来の資金計画って、専門家に相談したり、Excelで面倒な表を作ったりするイメージがあるかもしれません。でも、Pythonが使えると、もっと自由で、直感的に、自分にぴったりのツールが作れるんです。
今回のようなシミュレーターは、以下のような力が自然と身につくのも魅力です。
- 数値を扱うスキル(変数や演算)
- 時系列の処理(ループや配列)
- グラフでの可視化(matplotlibの使い方)
- 複利やシナリオ分岐などのロジック設計
お金の不安をなくす、というよりは、**「Pythonって面白い!」**と思えるきっかけになったらうれしいです。
自作ツールで未来をのぞき見する感覚、ぜひ味わってみてくださいね!
あわせて読みたい
💡 家計や資産管理に関心がある方に
- 📊 【お金の可視化】PythonとExcelで家計診断ツールを作ってみよう|グラフで支出が丸わかり!
→ 家計データを読み込んで、支出のバランスをグラフ化するツールを作れます。 - 🏠 Pythonで家計簿アプリを作ろう!初心者でもできるおこづかい帳の作り方
→ Tkinterで手軽にデスクトップ家計簿アプリを開発!
📈 投資・資産運用をPythonで試したい方に
- 📉 【Python株価分析】データ取得・可視化・予測まで完全ガイド!
→ 株価の推移や予測をPythonで行う方法を詳しく解説。 - 💱 Pythonで為替レートを自動取得してExcelに保存する方法【初心者向け】
→ 為替データも資産の一部。自動取得でリアルタイム把握!
よくある質問(Q&A)
- QPython初心者でもこのシミュレーターを作れますか?
- A
はい、大丈夫です!記事内では丁寧にコードを解説しており、コピー&ペーストでも動かせます。プログラムの内容を少しずつ理解しながら進めていけるので、勉強にもなります。
- Qシミュレーターをスマホで動かすことはできますか?
- A
Pythonは基本的にPCでの利用が推奨されます。スマホでもGoogle Colabを使えば実行できますが、グラフの表示などに制限がある場合もあります。
- Q年金の金額はどうやって調べればいいですか?
- A
「ねんきんネット」という公的サービスで、自分の年金見込み額を確認できます。また、会社員や自営業など立場によって金額が異なるため、ご自身の状況に合った数値を入力してください。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。