估计二项分布的参数以用作机器学习特征

Estimating parameters of binomial distribution to use as machine learning features

我正在处理遗传数据,其中等位基因在 t 条测序的染色体中被观察到 n 次。也就是说,在t次试验中n次成功。

我想将每个等位基因频率的估计作为机器学习算法中的一个特征。我当然可以用 n/t 得到点估计,但我想表示该点估计的置信度——即关于该估计的可能性的一些东西。

现在,我相信负二项式(或只是二项式)分布是正确的选择,但是

  1. 如何估计 Python 中的分布参数?
  2. 哪种分布表示形式最适合作为经典(非 NN)机器学习的特征?保守估计可能是 95% CI 上限,但我将如何计算它,是否有比只取那个值更好的方法来特征化分布?

谢谢!

我想您需要的所有必需信息都可以通过标准统计方法计算出来,而无需应用机器学习。

  1. 二项分布参数 p 的 MLE 估计 Bin(t,p) 只是 n/t 正如您正确建议的那样。如果您想获得置信区间而不是点估计,有一种方法可以通过 瓦尔德法:

    Wald
method

    其中 z1 - 0.5α 标准正态分布的分位数。根据您的建模假设,您可以通过以下 link 找到更多可能性:Binomial confidence intervals.

  2. 95% CI for 可以用 z = 1.96.

  3. 至于机器学习算法的特征工程:因为你的参数分布基本上只依赖于一个估计参数p(给定的 t 除外),您可以直接将其用作唯一分布表示的特征。当然,也可以添加 CI 或方差作为附加功能。一切都取决于你到底要学什么,以及你的最终 objective/criterion 是什么。

Binoculars 实现了许多计算二项式置信区间的方法。 (PS:我是双筒望远镜的作者)。

pip install bincoulars

如果N=(total chromosomes sequenced)p=(number of times allele is observed / N),你可以直接估计置信区间:

from binoculars import binomial_confidence

N, p = 100, 0.2

binomial_confidence(p, N)
# (0.1307892803998113, 0.28628125447599173)