0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アクチュアリーのためのPython入門(危険保険料と予定事業費の計算)

0
Last updated at Posted at 2026-07-26

アクチュアリーのためのPython入門(決算数理編第5回)

入金データの危険保険料と予定事業費の計算

📚 アクチュアリーのためのPython入門
この記事は決算数理編の一部です。
目次はこちら
逆引きガイドはこちら

はじめに

前回は、異動契約のサンプルデータを使って、
異動に伴う保険料積立金を計算しました。
保険料積立金は保険料計算基礎の5年チルメル式で計算し、
これをあとで利源分析に使用します。

今回は、入金データから、危険保険料と予定事業費を計算します。
ともに、保険料計算基礎の5年チルメル式で計算します。
危険保険料は利源分析のうち死差損益の確認のため使用します。
予定事業費は利源分析の費差損益と死差損益に使用します。

前提条件は次のとおりとします。

  • 保険料の入金に未収過収は生じていない

サンプルの入金データは前回に引き続きこちらに置いています。

入金データについて補足

保有契約データと同じ項目は同じ意味ですが、
入金データ独自の項目は次の意味です。

  • premium : 収入保険料
  • deposit_year : 保険料の対応年
  • deposit_month : 保険料の対応月

保険料の対応年月は入金した年月のことではなく、
月払いであれば、保障する年月のことです。

入金データの危険保険料と予定事業費

まず、共有ファイルのcore_b.py
前回の保有契約で作成した解約返戻金の関数sv_func
保険料積立金の計算res_funcをインポートします。
保有データと同様に内容を確認するためpandasを使います。

calc_premium.py
from core_b import *
from calc_inforce import net_premzill_func
import pandas as pd

続いて、危険保険料と予定事業費の計算を行います。

calc_premium.py
# 危険保険料と予定事業費を計算
def calc_premium(year):
    # 収入保険料データのファイル名
    input_file = f"data/premium{year}.csv"
    # 保険料データの取得
    premium_df = pd.read_csv(input_file)
    # 収入保険料、危険保険料、予定事業費のリスト
    Premium_list = []
    RiskPrem_list = []
    Expenses_list = []
    for _, row in premium_df.iterrows():
        product = row["product"]
        sex = row["sex"]
        age = int(row["age"])
        term = row["term"]
        deposits = int(row["deposits"])
        premium = int(row["premium"])
        number = int(row["number"])
        amount = int(row["amount"])

        # 収入保険料の計算
        income_premium = premium * number
        Premium_list.append(income_premium)
        # 危険保険料
        riskp, _, netp = net_premzill_func("P", product, sex, age, term, deposits)
        risk_prem = roundhu(riskp * amount, 0) * number
        RiskPrem_list.append(risk_prem)
        # 予定事業費
        expenses = (premium - roundhu(netp * amount, 0)) * number
        Expenses_list.append(expenses)

    # 危険保険料、予定事業費の追加
    premium_df["income_prem"] = Premium_list
    premium_df["risk_prem"] = RiskPrem_list
    premium_df["expected_expenses"] = Expenses_list

    return premium_df


保有契約同様に、以下のコードで出力してあげれば、
1件ごとの支払金と保険料積立金が確認できます。

calc_movement.py
if __name__ == "__main__":
    # 出力する入金データの年度
    year = 2025
    # 出力ファイル名
    output_file = f"data/premium{year}_calc.csv"
    # 危険保険料と予定事業費の計算
    inforce_df = calc_premium(year)
    # 出力
    inforce_df.to_csv(output_file, index=False, encoding="utf-8-sig")

まとめ

今回は保険料の入金データから、
危険保険料と予定事業費の計算を行いました。
危険保険料は死差損益を計算する項目にはありませんが、
死差損益の結果の妥当性を見るために集計しておきます。

次回は、これまで作成した関数とデータから、
利源分析のうちの死差損益の計算を行います。


📚 ナビゲーション
前の記事
異動契約の保険料積立金

次の記事

📚 目次
アクチュアリーのためのPython入門

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?