Matlab:确定数据分布的方法有哪些

Matlab: What are the ways to determine the distribution of the data

我有一个随机变量 X 的 n = 1000 个实现的数据集,并且是单变量 -- X = {x1, x2,...,xn}。通过改变随机变量所依赖的参数来生成数据。例如,设 r.v 为圆的面积。因此,通过改变半径(保持尺寸固定 - 比如二维圆),我生成 n 范围内的半径区域 r = 5 to n.

通过使用 fitdist 命令,我可以将分布拟合到数据集,选择正态分布、内核分布、二项分布等。因此,数据集拟合到 k 分布。所以,我得到了 k 个分布。我如何 select 最佳拟合分布以及 pdf?

此外,我是否需要在拟合之前对始终在 [0,1] 范围内的数据进行归一化(post 处理)?

如果我没理解错的话,你是在问如何在有一些拟合后决定选择哪个分布。

衡量 "goodness-of-fit" 的三个主要指标 (IMO):

选择哪个取决于很多因素;您可以随机选择一个或阅读 Wiki 页面来确定哪个适合您的需要。这些测试也是 MATLAB 的一部分。

例如,您可以使用 kstest 进行 Kolmogrov-Smirnov 检验。您可以向函数提供数据和假设分布,并根据 KS 检验评估不同的选项。

或者,您可以通过 adtest or Chi-Squared through chi2gof 使用 Anderson-Darling。