Overfitting 和 Underfitting 的概念大家都很熟悉,就不赘述了。
评估模型好坏
Cross Validation
test the model’s predictive accuracy on a small part of the sample.
PSIS(Pareto-smoothed cross-validation)
lppd(log-pointwise-predictive-density)
信息量准则(information criteria)
likelihood-based measures of model fit that include a penalty for complexity.
AIC、WAIC 等都是信息量准则的例子。
防止 Overfitting 的手段
regularizing prior
简单来说就是选择更“紧”的 prior。
Multilevel model
有时数据中可以显现出一些明显的分组(cluster)。使用 Multilevel model 可以更好地处理这种情况,防止由于重复采样、不均衡采样导致的 underfit 或 overfit 问题,同时能更好的捕捉组间、组内的差异。
例子
比如关于蝌蚪死亡率的模型:
$$ \begin{align} S_i &\sim Binomial(N_i, p_i) \\ logit(p_i) &= \alpha_{Tank[i]} \\ \alpha_{i} &\sim Normal(0, 1.5) \\ \end{align} $$
我们可以将这个模型“升级”为 Multilevel model:
$$ \begin{align} S_i &\sim Binomial(N_i, p_i) \\ logit(p_i) &= \alpha_{Tank[i]} \\ \alpha_{i} &\sim Normal(\overline \alpha, \sigma) \\ \overline \alpha &\sim Normal(0, 1.5) \\ \sigma &\sim Exp(1) \end{align} $$
相比于针对每个 Tank 估计一个完全无关 $\alpha$,这个新模型限制了 $\alpha$ 的分布,使得 $\alpha$ 之间的差异更小,同时也更好地捕捉了 $\alpha$ 的分布。
shrinkage
Multilevel model 的一个重要特性是 shrinkage。
对于每个组,我们都会估计一个 $\alpha$,这些 $\alpha$ 都遵循以 $\overline \alpha$ 为均值的正态分布。
如果某个组的数据很少,因为这个组的数据对 $\alpha$ 的估计相对不是很可靠,这个组的 $\alpha$ 会更接近利用 $\overline \alpha$ 计算出的值。
如果某个组的数据很多,因为这个组的数据对 $\alpha$ 的估计相对可靠,这个组的 $\alpha$ 会更接近利用这个组的数据计算出的值。
但无论如何,所有使用含 $\overline \alpha$ 的 multilevel 模型做出的估计都会比原模型更接近直接 $\overline \alpha$ 代替 $\alpha$ 的估计,这个效应称为 shrinkage。
Pooling
- Complete pooling. This means we assume that the population of clusters is invariant, the same as estimating a common intercept for all clusters.
- No pooling. This means we assume that each cluster tells us nothing about any other cluster.
- Partial pooling. This means using an adaptive regularizing prior.
一般来说使用 Multilevel model 就是采用了 partial pooling。
Varying effects
varying intercepts: For each cluster in the data, we use a unique intercept parameter. eg. liveness of tadpoles in different tanks
varying slope: For each cluster in the data, we use a unique slope parameter. eg. busy/unbusy café -> waitime