2.2 模型設計
與建設一座摩天大樓一樣,一個好的精算模型需要在模型設計之初就進行規劃,并設定一些原則。公司在精算模型設計的過程中需遵循功能完備性、一致性、參數化和表格驅動性、準確性和速度相平衡、前瞻性和“自動化”等6大原則。
1.功能完備性原則
一套好的精算模型應該擁有完備的功能支持精算日常工作。一般的精算模型需要實現法定準備金、會計準備金、償付能力(包括償二代)和內含價值等基本評估,還需同時實現相關的預測功能、變動分析、利源分析、其他各種精算分析、定價等功能。所謂功能“完備”性原則就是在一個模型的基礎上能夠滿足所有功能的要求,并容易進行開發和管理。對于部分影響運行速度的功能,如定價需要采用目標求解、計算內在回報率(IRR),建議通過加載小的模塊進行單獨管理。
精算模型中各項功能并非獨立,模型中實現的方式也不盡相同。各項功能可以通過3種方式實現:一是利用換算函數實現;二是利用現金流預測方法;三是運用保單變動和假設變化。即使公司需要拓展負債模型至資產負債模型,我們仍然堅持在同一個模型平臺實現多項評估報告功能,完成負債模型評估,拓展資產負債管理功能,實施從資產/負債數據輸入到結果輸出及應用的統一規范流程。
2.一致性原則
模型開發是一項周期相對較長、參與人數眾多的復雜項目。在項目開始階段即制定并遵守一些基礎性原則,將有利于提高模型綜合質量并統一代碼風格,也有利于公司未來的模型維護。一個關于所有建模人員須共同遵守的模型建模標準,對模型高質量的實施與維護將起到關鍵作用,尤其是代碼質量應始終保持一貫的風格。在精算模型開發實務中,我們列出如下特別重要的原則與讀者進行分享:
(1)避免死代碼(hard coding),即使特殊形式的假設也不能在代碼中寫死,而應該用索引指向特殊假設的假設表。
(2)盡量采用直接計算,避免不必要的讀表:精算軟件并非專業的數據庫處理軟件,當表格的行列數量較大時,往往直接計算比讀取表格參數更能提高運行效率。
(3)同一假設在不同評估基礎的不同年份下,應保持表格類型和表格結構的一致性。
3.參數化和表格驅動原則
我們推薦參數化的方式建立精算模型,將產品進行分門別類后歸納為若干類核心產品進行開發,產品之間的差異(包括產品形態與各種評估要求的差異)通過放置于表格中的標示變量或開關變量進行區分。這種參數化的建模方式有利于提高新產品建模的效率及模型的統一、批量的維護和擴展。
4.準確性和速度相平衡原則
在模型設計過程中,需要從模型的準確性、復雜性與運行速度3個方面對各個設計細節進行全面的考慮。在模型運行速度方面,確保可以通過合理的設置達到支持法定準備金逐單評估的要求。公司需要定期檢查代碼質量、運行設置和模型點優化等方法提升模型運行效率,通常的方法包括如下:
①刪除冗余代碼,在公司模型管理中需要一直予以注意;
②合理設計數組變量的維度;
③盡量減少復雜運算;
④避免頻繁讀表;
⑤減少假設表的行數,選擇適當的表格類型;
⑥按需設定預測時間的長度;
⑦僅計算或僅存儲需要的變量結果。
5.前瞻性原則
前瞻性原則是公司精算模型設計的重要原則之一。模型的前瞻性設計需要確保未來產品的可拓展性、功能的可延續和擴展性、報告的多維度呈現等多方面內容。我們建議對償二代資產評估模型、資產負債管理模型、資產份額法定價、經濟資本等評估功能預留充分的接口。
6.“自動化”原則
所謂“自動化”原則并不是不需要精算專業人員操作,全部由精算軟件自動完成,而是公司加強模型管理與運行的流程化和內控管理,并開發一系列輔助的工具,減少手工操作,從而提高工作效率,降低出錯概率。該原則的落地實施需要定制一系列標準化的工作模板,包括結果輸出報告模板、新業務量、假設表的生成維護模板等。