将数据集与 Python 中的非标准概率分布进行比较

Comparing datasets to nonstandard probability distributions in Python

我有一些大数据集,我用它们来创建非标准概率分布(使用 numpy.histogram 对数据进行分箱,以及 scipy.interpolateinterp1d 函数对生成的曲线进行插值)。我还创建了一个函数,可以使用 scipy.stats 包从这些自定义 PDF 中采样。

我的目标是了解样本大小的变化如何改变它们来自的分布以及其他 PDF 的拟合优度,并确定需要多大的样本才能完全确定它是否来自我的一个或另一个自定义 PDF。

为此,我收集到我需要使用某种非参数统计分析,即查看是否从提供的概率分布中提取了一组数据。做了一些研究,Anderson-Darling 测试似乎很适合这个,但是它在 python (scipy.stats.anderson) 中的实现似乎只适用于预设的概率分布,例如正态分布、指数分布、等等

所以我的问题是:考虑到我的许多非标准 PDF(或必要时的 CDF,或我用来创建它们的数据),计算一组样本数据与 [中的每个模型的匹配程度的最佳方法是什么? =27=]?如果是 Anderson-Darling 测试,是否有某种方法可以定义要测试的自定义 PDF?

谢谢。非常感谢任何帮助。

(1) "Is it from distribution X" 通常是一个可以先验回答的问题,如果有的话;对其进行统计测试只会告诉您 "I have a large sample / not a large sample",这可能是正确的,但用处不大。如果您正在尝试将新数据 class 化到一个或另一个分布中,我的建议是将其视为一个 class 化问题并使用您构建的 pdf 来计算 p(class | data) = p(data | class) p(class) / p(data) 其中关键部分 p(data | class) 是您的直方图。也许你可以多谈谈你的问题领域。

(2) 你可以应用 Kolmogorov-Smirnov 检验,但它真的没有意义,如上所述。