假设检验熵度量的一个时间序列不属于总体

机器算法验证 r 时间序列 假设检验 spss
2022-03-31 02:46:19

免责声明:我是软件工程师,不是统计学家,所以请原谅任何生硬的错误 :-)

我有一组时间序列“曲线”,每条曲线都测量给定工件的熵。现在,我站在以下前提(请随意批评他们):

  1. 为了近似 Kolmogorov 复杂度的上限K(s), 一个字符串s,可以简单地压缩字符串s使用某种方法,以所选语言实现相应的解压缩器,将解压缩器连接到压缩字符串,并测量结果字符串的长度。
  2. 为此,我使用了bzip2应用程序,将其压缩级别设置为支持的最大值 (-9)。
  3. 如果一个人只对一组演化字符串的时间序列分析感兴趣,那么计算压缩增量足以呈现任何两个字符串之间的相对熵度量(至少这是我在阅读 Cilibrasi05 后的解释)。
  4. 为此,我使用了带有 (--minimal) 参数的diff unix 工具,然后再次使用上述设置进行bzip2压缩。

我这样做是为了分析软件工件(代码、模型等)中熵的演变。担心绝对值,而是担心熵的相对增加(或减少)。现在问题来了:

  1. 我已经为一组 6 个工件做了这个,它们应该属于同一个群体,但我不知道如何提供统计证据(对应于对两个样本进行双尾 t 检验) .
  2. 其中一件文物的进化应该与其他所有不同。我们说的是指数增长与亚线性增长。我如何提供这方面的统计证据?

同样,作为软件工程师的免责声明。虽然我会很感激你能处理的每一个学术参考资料(论文、书籍等),但我正在寻找一些实用的东西,我可以在接下来的几天里使用,比如 R 中的脚本或 SPSS 中的东西。

PS我很抱歉要求一个食谱,而不是理论解释。

2个回答

我有一个相对简单的解决方案要提出,Hugo。因为您对不是统计学家很坦率(通常是一个加号;-),但显然可以处理技术语言,所以我会努力在技术上清晰但避免使用统计术语。

让我们从检查我的理解开始:你有六个系列的数据(t[j,i], h[j,i]),1 <= j <= 6, 1 <= i <= n[j],其中 t [j,i] 是您测量工件 j 的熵 h[j,i] 的时间,n[j] 是对工件 j 的观察次数。

我们不妨假设 t[j,i] <= t[j,i+1] 总是如此,但听起来你不一定能假设 t[1,i] = ... = t[6, i] 对于所有 i(同步测量),甚至对于任何给定的 j(相等的时间增量), t[j,i+1] - t[j,i] 都是常数。我们也不妨假设 j=1 指定您的特殊工件。

我们确实需要一个数据模型。“指数”与“次线性”涵盖了很多领域,这表明我们应该对曲线的行为采用非常广泛的(非参数)模型。简单区分这两种进化形式的一件事是,在指数情况下,增量 h[j,i+1] - h[j,i] 将增加,而对于凹亚线性增长,增量将减少。具体来说,增量的增量

d2[j,i] = h[j,i+1] - 2*h[j,i+1] + h[j,i], 1 <= i <= n[j]-2,

要么是积极的(对于工件 1),要么是消极的(对于其他人)。

一个大问题涉及变化的性质:观察到的熵可能不完全符合任何好的曲线;它们可能会围绕某个理想曲线随机振荡。因为您不想进行任何统计建模,所以我们不会过多了解这种变化的性质,但我们希望任何给定工件 j 的变化量通常在所有时间 t 中都大致相同[j,i]。这让我们可以将每个熵写成表格

h[j,i] = y[j,i] + e[j,i]

其中 y[j,i] 是工件 j 在时间 t[j,i] 的“真实”熵,而 e[j,i] 是观察到的熵 h[j,i] 和真实熵之间的差。作为这个问题的第一个切入点,希望 e[j,i] 随机运行并且看起来在统计上彼此独立以及 y[j,i] 和 t[j,i] 可能是合理的.

这种设置和这些假设意味着工件 j 的第二个增量集 {d2[j,i] | 1 <= i <= n[j]-2},不一定是完全正数或完全负数,但每个这样的集合应该看起来像一堆(可能不同)正数或负数加上一些波动:

d2[j,i] = (y[j,i+2] - 2*y[j,i+1] + y[j,i]) + (e[j,i+2] - 2*e[ j,i+1] + e[j,i])。

我们仍然不在经典的概率上下文中,但是如果我们(错误地,但可能不是致命地)处理正确的第二个增量(y[j,i+2] - 2*y[j,i+1 ] + y[j,i]) 就好像它们是从某个盒子中随机抽取的数字一样。在工件 1 的情况下,您希望这是一个包含所有正数的盒子;对于其他工件,您希望它是一个包含所有负数的盒子。

在这一点上,我们可以应用一些标准机器进行假设检验零假设是真正的第二个增量都是(或大部分)负数;备择假设涵盖了所有其他 2^6-1 种可能性,这些可能性与六批第二增量的符号有关。这建议为每个实际秒增量的集合分别运行 t 检验,以将它们与零进行比较(非参数等效项,例如符号检验,也可以。)对这些计划的多重比较使用 Bonferroni 校正;也就是说,如果您想以alpha水平(例如 5%)进行测试以获得所需的“概率值”,请使用alpha/6 测试的临界值。如果您愿意,即使在电子表格中也可以轻松完成。它快速而直接。

这种方法不会是最好的方法,因为在所有可以设想的方法中:它是不太强大的方法之一,它仍然做出一些假设(例如错误的独立性);但如果它有效——也就是说,如果你发现 j=1 的第二个增量显着高于 0,而所有其他增量显着低于 0——那么它就会完成它的工作。如果不是这种情况,您的期望可能仍然是正确的,但分析数据需要更多的统计建模工作。(如果需要,下一阶段可能是查看每个工件的增量运行,以查看是否有证据表明最终每条曲线变为指数或亚线性。它还应该涉及对数据变化性质的更深入分析。 )

您可以在 Excel 上完成所有操作。

绘制六个时间序列应该会给您一些曲线形状的提示。假设,正如您所提到的,其中五条曲线看起来是指数型的,而第六条曲线看起来是亚线性增长的。

为每条曲线插入一条趋势线。如果你是对的,其中五个将提供指数趋势线的最佳拟合(以 r 平方衡量),而第六个将最适合对数趋势线。

这听起来可能是不确定的,但如果 r 平方的所有六个值都接近 1,那么您可以对自己的结果充满信心。