Beta 分布中的异常值检测

机器算法验证 异常值 pymc 贝塔分布
2022-03-26 03:46:39

中有大量值样本我想估计底层的分布。大多数样本来自这个假设的分布,而其余的都是我想在估计时忽略的异常值。[0,1]Beta(α,β)Beta(α,β)αβ

有什么好的方法可以解决这个问题?

标准:箱线图中使用的公式是不好的近似?Inliers={x[Q11.5IQR,Q3+1.5IQR]}

解决这个问题的更有原则的方法是什么?上是否有任何特定的先验可以很好地解决这类问题?αβ

                    在此处输入图像描述

1个回答

处理这个问题的更系统的方法是使用明确的混合模型,并指定“异常值”的分布。一种简单的形式是使用 beta 分布(对于您感兴趣的点)和均匀分布(对于“异常值”)的混合。通过将数据建模为混合分布,您可以获得的估计值,这会自动考虑一些点可能是异常值的事实。αβ

为了使用混合模型解决这个问题,设是“异常值”的概率,并假设你有 IID 值观测数据的似然函数为:ϕX1,...,XnϕU(0,1)+(1ϕ)Beta(α,β)

Lx(α,β,ϕ)=i=1n(ϕ+(1ϕ)Γ(α+β)Γ(α)Γ(β)xiα1(1xi)β1).

您可以从这里开始使用经典的 MLE 或贝叶斯估计。两者都需要数值技术。估计了模型中的三个参数后,您将得到一个自动包含异常值可能性的您还可以估计混合模型中异常值的比例。αβ