|
我找到第一份工作, 是因为公司软件的心脏, Prepayment (参见 《前言》) 模型出问题了. 公司刚推出这软件时, 在市场上几乎没有竞争者, 日子很好过. 随着竞争者的出现, 模型质量的问题就浮现出来了. 公司换了好几次人, 有 Ph. D., 也有MBA, 都没能解决问题. 公司有一员工是我博士后导师的学生, 我后来的老板就叫他问我导师, 能否从他所在的 Courant 数学研究所推荐一个精通统计的数学家. 我现在用等价的且非常类似的人口模型来描述这个模型. 设死亡率 P服从 Logistic 函数 P = 1 / [1 + exp(-X)]. ≡ L(X) X 为事件的一些特征量乘以待定系数后求和. 这些特征量一般不止一个, 可以是连续的或离散的,这待定系数当然是不变的. 对于人口模型, 连续变量可以是年龄, 血压, 各种血液指标等等. 离散变量可以是性别, 地区, 是否抽烟等等. 这些特征量一般是因人而异的. P = 0 就是活着, P = 1 就是死了. 工作的第一步是把有类似特征的人分组(Aggregation), 那些特征量就用平均值代替. P 也用平均值代替, 一般情况下, 这是 [0,1] 中间的一个小数. 这些平均值现在是因组而异了. 大家比较熟悉的最小二乘法, 要求P 是特征量的直接线性组合, 然后运用简单的矩阵代数即可一步算出这些待定系数及相应的统计指标. 用 p 代表模型预测值,最小二乘法要求系数使 (P – p) 的平方和最小. 在Logistic 模型中, P 显然不是特征量的”直接”线性组合. 我那 MBA 老板想出一个变换(其实是书上的), 大家可让高中以上学历的儿子女儿作练习帮你推导. X = Ln [P / (1 – P)] ≡ f(P) 这儿 Ln 是自然对数.尽管P 不是特征量的直接线性组合, 但f(P) 却是的. 因为对每一组来说, P 是可以观察的, 所以f(P) 可以很容易地算出来. 于是统计软件 SAS 的子程序 Proc REG 可以很容易把待定系数一步算出来. 美国市场上的房贷可分为两类, 一类是由国家通过 Fannie Mae 和 Freddie Mac 间接担保的, 称为 Agency. 其余的称为 Private Label. 前者数量巨大, 历史悠久, 且有一定限制, 所以那些特征量分布相对集中.. 后者数目小的多, 且属于好几十家大大小小的公司, 而我们公司当时的数据, 只是其中一家较大的, Residential Funding Corporation (RFC), 样本空间更是小得可怜. 经过分组, 前者大多数组”人口”众多. 后者大部分每组只有小猫两三只.. 当老板把这变换过的模型应用到Agency, 结果似乎不错. 但把这方法应用于后者时, 连第一步都迈不出去, 当每组只有一个”人”时, P 是 0 或 1, f(P) 是发散的. 即使有两三个”人”, 也往往由于大家都”活”着, f(P) 还是发散的. 我进公司的第一个项目(Project), 就是要解决这个问题.. 我第一天九点上班, 老板马上把这任务给交代了, 没一会儿, 我就发现, 经过变换, 目标函数变掉了, 现在的极值解, 已经不是原来要求的极值解. 不管是线性还是非线性回归, 都要求预测量和观察量之差的平方和最小, 只有这样才能保证预测量”尽可能”接近观察量. 这儿加了引号是因为这”接近”并无官方标准. 但可以证明, 线性回归在这种定义下的解是无偏差的 (No Bias), 即样本空间观察量和预测量的总平均是完全相等的. 这种定义只涉及到(二次)幂函数, 数学处理也很方便, 所以学术界和工业界基本上都采用这种定义. 我老板的变换, 看上去很潇洒, 实际已把”接近”的定义给篡改了. X 对应的解和 L(X) 所对应的解是不一样. 再仔细分析, 这实际上是物理中常用的平均场近似. 平均场近似的具体应用方式千变万化, 但总是把函数中某一物理量用另一物理量, 甚至某种平均值来代替. 这种变换, 有些有直观的物理意义, 有些则很难看出, 他们有一共同点, 简化后的新问题是可以严格求解的. 我老板的这个变换, 很难凭直觉看出统计上的意义. 现在假定模型非常准确, 但由于样本是有限的, 每组的观察量和预测量还是不可能一样. 根据大数定理(Central Limit Theorem), 当组里人数越来越多时, 两者会越来越接近. 读者如有大学理科以上学历的儿子女儿,可让他们帮你证明, 当 N 趋于无穷时 f(P) – X => [P – L(X)] / [P (1 – P)] 所以我老板的变换就是一个典型的平均场近似, 只是他不知道而已. 这模型应用于Agency 房贷相当成功就是这个原因. 如果每组”人数”很少, 以至只有一个, 两者不可能接近, 这就是变换失败的原因. 这时大约是午饭时间, 我向老板汇报了进展, 问题的根源总算找到了. 人们常说, 提出问题就等于解决了一半, 现在找出根源就算再一半, 剩下的 1/4 也并不容易. 先是要找到数学工具. 回家后秉烛夜读, 终于发现最大拟然法(Maximum Likelihood)就是对付这种情况的. 它先通过模型求出(整个)样本空间事件发生的几率, 然后变化模型参数使几率最大化. 因为几率必须逐”人”计算然后相乘, “人口”众多的Agency 真还不能用这方法. 从这个意义上说, 这个方法简直就是为我的情况量身定做的. 方法找到, 还要寻找适合的软件, 自己写程序应该是最后一道防线, 是没有办法的办法. 通过一番搜寻, 我发现 SAS 的子程序Proc GENMOD 可以做这工作. 正确方法确定以后, 埋头苦干就是决定的因素. 经过好几个星期枯燥单调的工作, 还加了一些班, 我终于把两个模型都如期做出, 公司的软件再次获得新生, New Release 也如期送出. 其中的 Agency 模型,经过进一步改进后, 1997 年经过激烈竞争, 被 Dow Jones 旗下的Telerate 选中, 作为他们 Prepayment 中长期预报的模型. 关于Private Label 模型的工作, 我先后两次在这方面的标准丛书发表论文. 在整个系列中, 这篇估计是最枯燥难懂的.这个问题的突破口是从略微高深的平均场近似开始的. 除此之外, 还需要好几方面的比较高深的统计知识. 但是, 如我在《前言》中所说, 和学校研究所的工作还是不能相提并论, 档次要低得多. 模型建立过程, 不需要太高深的学问, 但丰富的经验是必需的. 我那时刚工作, 研究生和博士后的研究经验并非完全适用,所以也走过些弯路. 但这个”干中学”, 对我来说毕竟不是一件很难的事. 事实上, 以后发现, 我选的Proc GENMOD 在这儿并非最佳选择. 它也可以通过特殊的设定, 对 Gaussian 或 Lognormal函数进行最大拟然法计算. 线性回归作为特例也可以用它. 大家知道, 通用性越好的软件, 效率就越低, 有时精确度都会受影响. 这有点象活络扳手和固定扳手的区别. SAS 实际上有一种子程序, Proc Logistic, 专门对Logistic 函数用最大拟然法进行分析. |
|