我正在使用Octave,我想使用Octave forge Statistics包中的anderson_darling_test来测试是否从同一统计分布中提取了两个数据向量。此外,参考分布不太可能是“正常的”。此参考分布将是已知分布,并取自上述函数的帮助“'如果您从已知分布中进行选择,请将值转换为分布的CDF值并使用”uniform“。 “
因此,我的问题是:如何将数据值转换为参考分布的CDF值?
问题的一些背景信息:我有一个原始数据值向量,我从中提取循环组件(这将是参考分布);然后,我希望将此循环组件与原始数据本身进行比较,以查看原始数据本质上是否基本上是循环的。如果两个相同的零假设可以被拒绝,那么我将知道原始数据中的大部分运动不是由于周期性影响,而是由于趋势或仅是噪声。
答案 0 :(得分:0)
如果您的数据具有特定分布,例如beta(3,3)
则
p = betacdf(x, 3, 3)
通过CDF的定义,将是统一的。如果要将其转换为法线,则可以调用反向CDF函数
x=norminv(p,0,1)
在制服p
上。转换后,使用您最喜欢的测试。我不确定我是否理解您的数据,但您可能会考虑使用Kolmogorov-Smirnov test代替,这是对分布式平等的非参数测试。
答案 1 :(得分:0)
您的方法在多方面受到误导。几点:
如果从数据本身估计分布参数,则不要使用“统一”,因为这会使A ^ 2统计量偏向较小的值。
所以,不要这样做。
即使您找到或编写了一个实现正确的双样本Anderson-Darling或Kolmogorov-Smirnov测试的函数,您仍然会遇到一些问题:
您的样本(数据和从数据估计的循环部分)不是独立的,这些测试假定独立。
根据您的描述,我假设涉及某种时间预测器。因此,即使分布一致,这并不意味着它们在相同的时间点重合,因为比较分布会随着时间的推移而崩溃。
循环趋势+误差的分布预计不会仅与循环趋势的分布相同。假设趋势是sin(t)。然后它永远不会超过1.现在添加一个正态分布的随机误差项,标准差为0.1(小,因此趋势占优势)。显然,你可以获得远高于1的价值。
我们没有足够的信息来确定正确的事情,而且无论如何它并不是一个真正的编程问题。查找时间序列理论 - 分离循环组件是那里的一个主要话题。但许多合理的分析可能基于残差:(观测值 - 从循环分量预测)。你仍然需要注意自相关和其他复杂性,但至少它会朝着正确的方向前进。