[appendix]
= 附录

[#psi-custom-distribution-table]	
== 群体稳定性报告需要开发样本数据（建模时的客户群体分布情况）

|===
|模型标识(FD_MODEL_ID) | 模型名称(FD_MODEL_NAME) | 分数段开始值(含)(FD_SCORE_SEG_START) | 分数段结束值(含)(FD_SCORE_SEG_END) | 客户个数(FD_COUNT)
|M1 | 模型1 | 0 | 154 | 2200
|M1 | 模型1 | 155 | 194 | 1583
|M1 | 模型1 | 195 | 234 | 1970
|M1 | 模型1 | 235 | 274 | 2540
|M1 | 模型1 | 275 | 314 | 2450
|M1 | 模型1 | 315 | 354 | 1620
|M1 | 模型1 | 355 | 394 | 1620
|M1 | 模型1 | 395 | 434 | 2100
|M1 | 模型1 | 434 | 1000 | 1250
|===

TIP: 注意：上述分段看上去好像是按照分数进行等分的，其实并非如此，正确的分段方法是按照客户个数进行等分（当然，实际情况不可能按客户个数真正做到等分，通常通过人工进行基本等分即可），而分割的段数一般为 10 个分段。
		
系统提供界面给使用者录入上述表格数据，或者提供 Excel 模板，用户整理好后，由系统界面导入到后台数据库中。

在有了上述建模时的客户分布数据情况后，系统可以定期自动产生客户群体稳定性报告，在生成报告时，其分数段的划分和建模时导入的数据分数段划分保持一致。

TIP: 如果不能获取到建模时的客户分布情况数据，系统可以采用从上线后一定时间段的客户分布情况作为初始数据，其分数段划段原则为：尽可能平分客户个数，一般分10个段即可。

[#binomial_test_const_table]
== 二项检验常量表

image::chapter-appendix/001.png[]

[%autowidth]		
|===
|显著水平 | 置信水平 | 正态分布Z值上界 | 正态分布Z值下界
|0.01 | 0.99 | 2.576 | -2.576
|0.05 | 0.95 | 1.96 | -1.96
|0.1 | 0.9 | 1.645 | -1.645
|===

TIP: 显著性水平的值越大，表示对模型的要求越高。

[#square_test_const_table]
== 卡方分布临界值常量表
[%autowidth]
|===
|自由度 | 显著水平 |  |  
|  | 0.1 | 0.05 | 0.01 
|1 | 2.706 | 3.841 | 6.635
|2 | 4.605 | 5.991 | 9.21
|3 | 6.251 | 7.815 | 11.345
|4 | 7.779 | 9.488 | 13.277
|5 | 9.236 | 11.07 | 15.086
|6 | 10.645 | 12.592 | 16.812
|7 | 12.017 | 14.067 | 18.475
|8 | 13.362 | 15.507 | 20.09
|9 | 14.684 | 16.919 | 21.666
|10 | 15.987 | 18.307 | 23.209
|11 | 17.275 | 19.675 | 24.725
|12 | 18.549 | 21.026 | 26.217
|13 | 19.812 | 22.362 | 27.688
|14 | 21.064 | 23.685 | 29.141
|15 | 22.307 | 24.996 | 30.578
|16 | 23.542 | 26.296 | 32
|===

TIP: 显著性水平的值越大，表示对模型的要求越高。

== 模型验证系统数据源接口
模型验证系统作为一个独立的系统，从系统角度讲具有高内聚性，但模型验证系统的验证样本需要外部系统供给，这些外部系统我们称之为数据源，
模型验证系统为数据源提供两个数据接口，只要数据源为模型验证系统提供了这两个接口的数据，模型验证系统即可正常工作。

. <<MV_SCORE_RECORD>>
. <<MV_DEFAULT_RECORD>>

在实际进行系统集成时，只要按要求填充好以上两个数据表即可。

== 模型验证系统实现执行过程
理解模型验证的系统实现过程，有利于理解系统的工作原理和结构，参考以下图示：

image::chapter-appendix/002.png[]

具体说明如下:

. 图中每一框代表系统中的一个类或接口
. 模型验证执行由 Validator 类（作为 spring bean）负责
. Validator 类在执行时会先执行 DataExtractorManager 进行源数据抽取工作
. Validator 类在执行时会然后执行 ExecutorManager 进行验证工作
. DataExtractorManager 管理了多个 DataExtractor，会按照每个 DataExtractor 设定的执行顺序进行依次调用，顺序号越小，执行顺序越靠前。
. ExecutorManager 管理了多个 Executor，会按照每个 Executor 设定的执行顺序进行依次调用，顺序号越小，执行顺序越靠前。
. DataExtractor 和 Executor 都有一个或多个具体实现，负责完成具体的执行操作。
