1

I am using Octave and I would like to use the anderson_darling_test from the Octave forge Statistics package to test if two vectors of data are drawn from the same statistical distribution. Furthermore, the reference distribution is unlikely to be "normal". This reference distribution will be the known distribution and taken from the help for the above function " 'If you are selecting from a known distribution, convert your values into CDF values for the distribution and use "uniform'. "

My question therefore is: how would I convert my data values into CDF values for the reference distribution?

Some background information for the problem: I have a vector of raw data values from which I extract the cyclic component (this will be the reference distribution); I then wish to compare this cyclic component with the raw data itself to see if the raw data is essentially cyclic in nature. If the the null hypothesis that the two are the same can be rejected I will then know that most of the movement in the raw data is not due to cyclic influences but is due to either trend or just noise.

4

2 回答 2

0

例如,如果您的数据具有特定的分布,beta(3,3)那么

p = betacdf(x, 3, 3)

根据 CDF 的定义,将是统一的。如果要将其转换为法线,只需调用逆 CDF 函数即可

x=norminv(p,0,1)

制服上p。转换后,使用您最喜欢的测试。我不确定我是否理解您的数据,但您可以考虑改用Kolmogorov-Smirnov 检验,这是一种分布平等的非参数检验。

于 2010-02-01T06:39:39.150 回答
0

你的方法在很多方面都被误导了。几点:

  • 在 Octave forge 中实现的 Anderson-Darling 测试是一个单样本测试:它需要一个数据向量和一个参考分布。分布应该是已知的——而不是来自数据。虽然您正确引用了有关使用 CDF 的帮助文件和未内置分发的“统一”选项,但您忽略了同一帮助文件的下一句:

如果分布参数是根据数据本身估计的,则不要使用“均匀”,因为这会使 A^2 统计量明显偏向较小的值。

所以,不要这样做。

  • 即使您找到或编写了一个函数来实现适当的两样本 Anderson-Darling 或 Kolmogorov-Smirnov 测试,您仍然会遇到一些问题:

    1. 您的样本(数据和从数据估计的循环部分)不是独立的,这些测试假设独立。

    2. 根据您的描述,我假设涉及某种时间预测器。因此,即使分布会重合,这并不意味着它们在相同的时间点重合,因为比较分布会随着时间的推移而崩溃。

    3. 预计周期性趋势+误差的分布与单独的周期性趋势分布不同。假设趋势是 sin(t)。那么它永远不会超过 1。现在添加一个标准差为 0.1 的正态分布随机误差项(小,因此趋势占主导地位)。显然,您可以获得远高于 1 的值。

我们没有足够的信息来找出正确的做法,而且这也不是一个真正的编程问题。查找时间序列理论——分离循环成分是那里的一个主要话题。但是许多合理的分析可能会基于残差:(观察值 - 从循环分量预测)。您仍然必须小心自相关和其他复杂性,但至少这将是朝着正确方向迈出的一步。

于 2010-02-01T14:21:23.723 回答