基本概念
在我们深入学习 Sequenzo 包的实际用法之前,熟悉一些基本的序列概念是非常重要的。这些基本概念是我们稍后在构建序列、计算距离和解释结果时将使用的基本构建模块。可以将这一节视为在写出完整句子之前学习的“字母表”。
为了让学习过程更加聚焦和具体,我们将使用 德国家庭研究面板 pairfam 数据集(“亲密关系与家庭动态的面板分析”)中的相关例子。这个数据集为诸如教育 (EDU)、全职就业 (FT) 和失业 (UNEMP) 等生命历程状态,提供了一套广泛使用的编码方案。这些分类直观易懂,因此我们将在整个都教程中沿用它们。
序列结构的概念比较
| 概念 | 定义 | 例子 |
|---|---|---|
| 状态(State) | 在特定时间点观察到的分类值 | FT at year 3 |
| 子序列(Subsequence) | 完整序列的一个有序(可能不连续)的子集 | (EDU, FT, UNEMP) |
| 片段(Spell) | 一段连续重复且没有中断的相同状态 | (EDU, EDU), (FT, FT), (UNEMP) |
| 完整序列(Full sequence) | 从第 1 年到第 T 年观察到的完整轨迹 | (EDU, EDU, FT, FT, UNEMP) |
状态(State)
状态是一个人在特定时间正在做什么或经历什么的一个标签。例如,在序列中:
(EDU, EDU, FT, FT, UNEMP)
EDU表示此人正在接受教育,FT表示全职工作,UNEMP表示失业或正在找工作。
每年(或每月,取决于数据集)都会记录一个状态。这些状态共同构成了这个人的轨迹。状态就像我们序列字母表中的“字母”,其他一切都建立在它们之上。
子序列(Subsequence)
子序列就像从一个单词中挑选出几个字母,同时保持它们的顺序。你不用把每个字母都抽取出来成为子序列,它们也不用彼此相邻,虽然这样的配置很灵活,但你不能重新排列它们的顺序。
从序列 (EDU, EDU, FT, FT, UNEMP)中:
(EDU, FT, UNEMP)跳过了第二个EDU和第二个FT。(FT, UNEMP)跳过了前三年。(EDU, FT)跳过了中间的一个EDU。
子序列用于相似性度量,如最长公共子序列(Longest Common Subsequence)。这可以让我们发现模式,即使两个人的路径并非年年完全一致。
但子序列的缺点是忽略了事情发生的时间。例如,两个人可能一生中都有 (EDU, FT, UNEMP) 这段经历,但一个人在 18-20 岁时经历,而另一个人在 30-32 岁时经历。子序列方法会说他们是相似的,即使他们更广泛的人生故事截然不同。这就是为什么子序列功能强大但有时又过于灵活的原因。
片段或阶段 (Spell or Episode)
一个片段(也称为一个阶段)指某个相同状态未经中断的持续过程。可以把它想象成生命中一个稳定的区块。
从 (EDU, EDU, FT, FT, UNEMP)来看, 其中的片段(spell)是:
(EDU, EDU)→ 连续两年的教育,(FT, FT)→ 连续两年的全职工作,(UNEMP)→ 一年的失业。
即使只有一年也算作一个片段。片段对于描述生命历程中的稳定阶段很有用,例如“一段为期三年的失业片段”或“一段为期五年的全职工作片段”。
完整序列 (Full Sequence)
完整序列 (Full Sequence) 就是一个人在所有观察年份中的完整轨迹。
例如:
(EDU, EDU, FT, FT, UNEMP)
这是从第 1 年到第 5 年的完整记录。
牢记这些概念,你就可以准备好学习后续章节的内容,在那些章节中我们将构建前缀树和后缀树(prefix and suffix trees)、测量差异度(divergence)以及分析集体模式(collective patterns)。
基本序列概念练习
练习 1:识别状态
思考以下序列: (EDU, EDU, FT, FT, UNEMP)
问题:
- 第 1 年的状态是什么?
- 第 4 年的状态是什么?
- 如果第 5 年是
UNEMP,这对当事人意味着什么?
练习 2:构建子序列
针对如上同一序列: (EDU, EDU, FT, FT, UNEMP)
问题:
- 写出一个包含
EDU和FT的子序列。 - 仅使用最后两年的状态写出一个子序列。
- 判断正误:
(FT, EDU)是原始序列的一个子序列。
练习 3:识别片段(阶段)
针对序列: (EDU, EDU, FT, FT, UNEMP)
问题:
- 序列中有多少个片段?
- 哪个片段最长?
- 如果有人声称自己有一段“为期三年的
EDU片段”,这与该序列匹配吗?
练习 4:理解完整序列
思考以下序列: (EDU, EDU, EDU, FT, FT, UNEMP, FT)
问题:
- 这个序列涵盖了多少年?
- 前三年的片段是什么?
- 这个序列中出现了多少种不同的状态?
练习 5:思考
问题:
- 为什么子序列方法有时会“忽略时间”?
- 如果你只关心某人是否连续几年稳定就业,你会关注子序列还是片段?
- 如果你想了解一个人职业生涯的完整轨迹,你会使用哪个概念?
答案与解释
练习 1
- 第 1 年 →
EDU(当事人在接受教育)。 - 第 4 年 →
FT(当事人在全职工作)。 - Year 5 →
UNEMP(当事人失业或正在找工作)。
状态只是指当事人在那个特定时间点正在做什么。
练习 2
(EDU, FT)是有效的 (顺序保持不变,即使不连续)。(FT, UNEMP)是有效的 (取自第 4 年和第 5 年)。- False →
(FT, EDU)是无效的,因为在原始序列中,所有EDU状态都在所有FT状态之前。
子序列保持原始顺序,但不需要包含每一个元素。
练习 3
- 三个片段:
(EDU, EDU),(FT, FT),(UNEMP). (EDU, EDU)和(FT, FT)都是最长的,长度为 2。- 不匹配 → 在这里,
EDU片段只有 2 年,而不是 3 年。
片段是相同状态未经中断的连续区块。
练习 4
- 7 年 (列出了 7 个状态)。
(EDU, EDU, EDU)→ 一段为期三年的教育片段。- 三种不同的状态:
EDU,FT, 和UNEMP.
完整序列是贯穿所有观测时间点的完整轨迹。
练习 5
- 因为子序列只关注事件的顺序,而不关注它们发生的时间(例如,年龄或日历年份)。
- 片段 → 因为它们捕捉的是相同状态的连续、不间断的时期。
- 完整序列 → 因为它记录了从开始到结束的整个路径。
作者:梁彧祺
翻译:何梁星云