4

希望快点....

关于seqefsub()操作的输出,请指出输出符号的定义。

更具体地说,例如中的括号

  • (A)意味着什么;
  • 大于号(A>B)表示什么;
  • 中的连字符(A)-(A>B)表示什么。

Section 10优秀的用户指南中有示例,但我可能在某处遗漏了明确的定义声明。

引用指南中的示例,和 justSection 10.2之间的概念区别是什么?(Parent)-(Parent>Left)(Parent>Left)

谢谢,

戴夫

吉尔伯特发表评论后更新....

在试图澄清我在用户指南第 106 页上可能遗漏的内容时,我认为我正在寻找的解释(或至少是确认)与以下框架的内容类似。为可能的笨拙冗长道歉。

这里的上下文是seqefsub()结果出现在控制台中的时间......

(A)这是状态 A 作为第一个状态出现的次数,而不是作为任何后续状态出现的次数。也就是说 - 它计算 A 在第一列中出现的次数。我在这里假设我没有错过另一个配置选项,它首先计算此类型的所有后续状态。如果有请告诉我。

(A>B)这是从 A 到 B 的事件(即状态变化)发生的次数。这个计数是指序列中任何位置的事件。我建议这与上面的状态计数略有不同,假设我没有无意中歪曲事实。我注意到约束可以设置为输出单个或多个出现。

(A)-(A>B)这计算状态 A 作为第一个状态出现的次数,以及 A 到 B 事件在序列中的任何位置发生的位置。这包括紧接在第一状态之后的 A 到 B 事件,并且可以包括在第一状态 A 和事件 A 到 B 之间插入其他状态。

我希望这会有所帮助,并且我希望这是一组正确的陈述(基于比我原来的问题晚的调查)。

吉尔伯特要求示例的评论后的第二次更新....

对于真实数据集...(其中 J 和 I 代替 A 和 B)

> data   
   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11
1   I  J  J  I  J  J  I  K  J   D   J
2   G  K  R  I  J  D  J  R  I   J   N
3   K  K  I  R  M  M  K  R  J   K   I
4   R  R  B  R  I  G  R  G  R   G   G
5   J  J  J  J  J  J  J  T  Z   J   Z
6   R  K  R  K  M  R  R  J  J   J   R
7   J  I  I  I  I  I  I  I  I   I   I
8   J  J  J  J  J  J  J  J  J   J   R
9   J  R  J  R  J  R  J  J  I   S   R
10  J  J  J  J  J  I  J  J  J   J   J
11  G  J  J  J  J  I  I  I  R   J   J
12  I  I  D  M  D  I  I  D  I   I   D
13  R  M  R  R  J  J  J  J  J   J   J

然后

> dataseq <- seqdef(data)

> dataseqe <- seqecreate(dataseq)

> datasubseq <- seqefsub(dataseqe, pMinSupport = 0.05)

> datasubseq[1:10]

    Subsequence   Support Count
1          (J) 0.3846154     5
2        (J>I) 0.3846154     5
3        (R>J) 0.3846154     5
4        (J>R) 0.3076923     4
5        (I>J) 0.2307692     3
6    (J)-(J>I) 0.2307692     3
7        (K>R) 0.2307692     3
8          (R) 0.2307692     3
9        (D>J) 0.1538462     2
10         (G) 0.1538462     2

所以 ....

1) 5 个 J 状态的计数(J)仅适用于第一列/出现,而不适用于任何后续的 J 状态。共有 57 个 J 状态。

2) 5 个 J-state 到 I-state 更改事件(J>I)的计数是总计数(对于此约束选项),无论何时发生。

3) 3 个 J-state 后跟 J-state-to-I-state 子序列(J)-(J>I)的计数是第 7 行(第 1 列和第 2 列)、第 9 行(第 1 列和第 8 列和第 9 列)中的事件计数,以及最后是第 10 行(第 1 列和第 5 列和第 6 列);最后两种情况在 和 之间具有干预状态和/或(J)事件(J>I)

回到问题 - 这是正确和预期的行为,以及正确的解释。如果是这样,为什么状态计数与事件/状态变化计数不同?

4

1 回答 1

5

在您的示例中,事件序列是从状态序列对象派生dataseqseqecreate(dataseq)。由于您不提供tevent参数,因此使用默认值tevent = "transition"(请参阅 参考资料help(seqecreate))。使用此值,事件被定义为从状态A到状态的转换B并标记为A>B。此外,一个特定的事件标记A与序列开始相关联,以指示序列开始时的状态。因此,尽管使用了相同的符号,但A事件序列是一个事件——开始事件——并且不应与A它是一个状态的状态序列混淆。

以上是特定于tevent="transition"选项的。例如,使用tevent="state",事件将是法术的开始,并标记为A表示状态为 的法术的开始A。在这种情况下,事件A可能发生在序列中的任何位置,而不仅仅是在开始时。

现在关于括号。它们表示转换(或事务),转换被定义为引发状态变化的一组同时发生的事件。例如:

(a,b)表示两个事件同时发生ab

(A>C)意味着我们A>C在时间点有单个事件。

(a)-(b)表示一个长度为 2 的序列,其中 event 在 eventa之前b

更新以回应斯蒂芬的评论

让我们考虑以下示例

(seq <- seqdef('HHHAABBBAAGGG', stsep=''))
##     Sequence
## [1] H-H-H-A-A-B-B-B-A-A-G-G-G

seqecreate(seq, tevent='state')
## [1] (H)-3-(A)-2-(B)-3-(A)-2-(G)-3

seqecreate(seq, tevent='transition')
## [1] (H)-3-(H>A)-2-(A>B)-3-(B>A)-2-(A>G)-3

状态序列有 5 个法术,2 个处于状态A,每个状态 1 个HBG。现在有不同的可能性将此状态序列转换为事件序列。tevent='state'tevent='transition'只是众多可能性中的两种。

使用tevent='state'我们得到一个事件序列,其中事件(A)发生两次,因为我们有两个处于状态的法术A。这两个法术中的每一个都是由(A)不考虑先前状态的同一事件引发的。

查看使用该选项获得的事件序列tevent='transition',我们观察到A这里的法术是由两个不同的事件引发的,(H>A)并且(B>A)解释了前面的状态。

第一个事件序列有两个子序列(H)-(A),分别对应子序列(H)-(H>A)(H)-(B>A)第二个事件序列。

于 2014-12-02T07:31:14.583 回答