直觉
Kullback-Leibler Divergence可以解释为
我们期望丢失多少位信息是我们使用而不是。QP
因此,人口稳定指数是“往返损失”:
我们预计会丢失多少信息?Q代替P然后再次使用它返回Q.
价值观
看来人口稳定指数与G 检验密切相关:
PSI(P,Q)=G(P,Q)+G(Q,P)2N
(因此可以使用scipy.stats.power_divergence, 以及直接计算)。
因此,对应于 PSI 的 p 值可以使用χ2分配:
import scipy.stats as st
print(" "," ".join("DF=%d" % (df) for df in [1,2,3]))
for psi in [0.1, 0.25]:
print "PSI=%.2f %s" % (psi, "".join(
" %5f" % (st.distributions.chi2.sf(psi,df)) for df in [1,2,3]))
DF=1 DF=2 DF=3
PSI=0.10 0.751830 0.951229 0.991837
PSI=0.25 0.617075 0.882497 0.969140
这里PSI是人口稳定指数,DF是自由度数 (DF=n−1在哪里n是变量采用的不同值的数量)。
有趣的是,官方对PSIvalue 的“解释”完全忽略了DF.