# Social Sequence Analysis Expert

> Social Sequence Analysis expert. Provides sequence alignment, optimal matching, event history analysis, trajectory modeling, and social process visualization. Suitable for life course research, organizational sequences, and sequential data analysis.

- Skill: `ptreezh/social-sequence-analysis-expert` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add ptreezh/social-sequence-analysis-expert`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ptreezh/social-sequence-analysis-expert/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- License: MIT
- Author: ptreezh (https://skillmd.com/u/ptreezh)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ptreezh/social-sequence-analysis-expert

---


-------|----------|------|
| 职业轨迹 | 就业状态 | 就业、失业、退休 |
| 家庭形成 | 居住状态 | 独居、同居、已婚 |
| 教育历程 | 学历状态 | 小学、中学、大学 |
| 健康轨迹 | 健康状态 | 健康、慢性病、失能 |

## 距离度量

### 最优匹配(Optimal Matching)

```
原理: 通过插入、删除、替换操作将一个序列转换为另一个序列

操作成本:
- 插入(I): 插入一个状态的成本
- 删除(D): 删除一个状态的成本
- 替换(S): 替换一个状态的成本

距离 = 最小操作成本之和

示例:
序列A: E E W W M
序列B: E W W M M

转换: E→E(0), 删除E(1), W→W(0), W→W(0), M→M(0), 插入M(1)
距离 = 2
```

### 替换成本矩阵

```
状态相似性 → 替换成本

示例(职业状态):
      E    W    M    R
E     0    1    2    2
W     1    0    1    2
M     2    1    0    2
R     2    2    2    0

解读:
- E↔W成本1: 教育和工作相关性高
- E↔M成本2: 教育和管理差距大
- 对角线为0: 相同状态无成本
```

### 其他距离度量

| 方法 | 原理 | 适用场景 |
|------|------|----------|
| 汉明距离 | 对应位置差异 | 等长序列 |
| Levenshtein | 编辑距离 | 一般序列 |
| LCS | 最长公共子序列 | 模式匹配 |
| 子序列距离 | 公共子序列比例 | 稀疏序列 |

## 序列描述统计

### 状态分布

```
每个时间点的状态分布:

时间点 │ 状态A  状态B  状态C
  1    │  80%    15%    5%
  2    │  60%    30%   10%
  3    │  40%    40%   20%
  ...
```

### 转换矩阵

```
状态转换概率:

     │  E   W   M   R
─────┼────────────────
  E  │ .3  .6  .1  .0
  W  │ .1  .5  .3  .1
  M  │ .0  .1  .6  .3
  R  │ .0  .0  .0 1.0

解读:
- P(E→W)=0.6: 教育后60%进入工作
- P(M→M)=0.6: 管理岗位稳定性高
```

### 序列指标

| 指标 | 公式 | 含义 |
|------|------|------|
| 持续时间 | 状态占用时间 | 状态稳定性 |
| 转换次数 | 状态变化次数 | 轨迹复杂性 |
| 熵 | -Σp·log(p) | 轨迹多样性 |
| 索引质量 | Σp² | 序列典型性 |

## 聚类分析

### 方法

```
聚类流程:
1. 计算距离矩阵(OM距离)
2. 选择聚类算法
   ├── 层次聚类: Ward/Complete
   ├── K-medoids: PAM
   └── 混合模型: 潜在类别
3. 确定聚类数
   ├── 轮廓系数
   ├── CH指数
   └── 解释性
4. 解释聚类结果
```

### 典型序列提取

```
聚类后提取代表性序列:

聚类1: "稳定型" (35%)
  典型轨迹: E→W→W→W→R
  
聚类2: "上升型" (28%)  
  典型轨迹: E→W→M→M→R
  
聚类3: "波动型" (22%)
  典型轨迹: E→W→U→W→U→W→R

聚类4: "延迟型" (15%)
  典型轨迹: E→E→W→W→R

(U=失业)
```

## 可视化方法

### 状态分布图(Index Plot)

```
个体序列展示:

序列1 ████████████████
      EEEEEEEWWWWWWRRR
      
序列2 ████████████████
      EEEEWWWWWMMMRRRR
      
序列3 ████████████████
      EEEWWWUUUWWWRRRR

横轴: 时间
颜色: 状态
```

### 转换图

```
状态转换网络:

      ┌──→ W ──┐
      │    │    ↓
  E ──┤    ↓    M
      │         │
      └────────→ R

箭头宽度 = 转换概率
节点大小 = 状态占比
```

### 序列图(Sequence Index Plot)

```
时间
  │
  │  ████
  │  ████  ████
  │  ████  ████  ████
  │  ████  ████  ████  ████
  └─────────────────────────→ 样本
```

## Python实现

### 使用TraMineR(R)/seqanalyst(Python)

```python
from sequence_analyzer import SequenceData, OM_distance

# 定义序列
sequences = [
    ['E', 'E', 'W', 'W', 'M', 'M', 'R'],
    ['E', 'W', 'W', 'M', 'M', 'M', 'R'],
    ['E', 'E', 'E', 'W', 'W', 'W', 'R'],
]

# 计算距离矩阵
seq_data = SequenceData(sequences, 
                        states=['E', 'W', 'M', 'R'])
dist_matrix = OM_distance(seq_data, 
                          indel=1, 
                          substitution_matrix=cost_matrix)

# 聚类分析
from scipy.cluster.hierarchy import linkage, fcluster
Z = linkage(dist_matrix, method='ward')
clusters = fcluster(Z, t=4, criterion='maxclust')
```

## 应用场景

### 生命历程研究

```
研究问题: 教育如何影响职业轨迹?

变量:
- 因变量: 职业序列类型
- 自变量: 教育水平、家庭背景
- 控制变量: 性别、年龄、地区

分析步骤:
1. 构建职业序列
2. 聚类识别轨迹类型
3. 回归分析影响因素
```

### 社会流动研究

```
研究问题: 代际流动模式

序列:
- 父代职业状态序列
- 子代职业状态序列

分析方法:
- 序列相似性分析
- 流动表分析
- 路径依赖检验
```

### 家庭形成轨迹

```
研究问题: 家庭形成多样化模式

状态:
S=单身, C=同居, M=已婚, D=离婚, W=丧偶

典型轨迹:
1. 传统型: S→M→M→M
2. 同居型: S→C→M→M
3. 中断型: S→M→D→S→M
```

## 使用示例

```
用户: 分析大学毕业生的职业发展轨迹

AI: 我将执行完整的序列分析：

## 数据概况
- 样本量: 500人
- 追踪期: 毕业5年(60个月)
- 状态: 就业(E)、失业(U)、深造(S)、创业(B)

## 状态分布
月份 │  E   U   S   B
─────┼──────────────
  1  │ 45% 25% 20% 10%
 12  │ 65% 15% 10% 10%
 24  │ 70% 10%  5% 15%
 36  │ 72%  8%  3% 17%
 60  │ 75%  5%  2% 18%

## 聚类结果(4类)
聚类1 "稳定就业型" (42%)
  典型轨迹: E→E→E→E→E
  特征: 快速就业、职业稳定

聚类2 "深造后就业型" (25%)
  典型轨迹: S→S→E→E→E
  特征: 先深造再就业

聚类3 "创业型" (18%)
  典型轨迹: E→B→B→B→B
  特征: 先就业后创业

聚类4 "波动型" (15%)
  典型轨迹: E→U→E→U→E
  特征: 就业不稳定

## 影响因素
| 变量 | 聚类1 | 聚类2 | 聚类3 | 聚类4 |
|------|-------|-------|-------|-------|
| 985高校 | + | + | ns | - |
| 理工科 | + | - | + | ns |
| 实习经历 | + | ns | + | ns |
```

## 🚫 绝对禁止原则

> **使用前必读**：以下原则是不可逾越的红线，违反将导致序列分析结论失效。

1. **禁止忽视时间结构** — 将序列当作无序集合处理，不考虑状态的时间顺序和转换逻辑
2. **禁止替换成本矩阵无理论依据** — 使用最优匹配(OM)时，替换/插入/删除成本无领域依据，导致距离度量失真
3. **禁止只看聚类结果不分析序列内容** — 仅报告聚类数量和轮廓系数，而不解读各聚类的实际轨迹含义
4. **禁止混淆序列相似性与因果关系** — 序列相似不代表有因果关联，需结合回归分析检验
5. **禁止忽视样本选择性偏倚** — 不考虑样本是否代表目标群体，导致轨迹类型分布估计偏差
6. **禁止忽视观测间隔不等问题** — 不等间隔观测时使用等间隔假设，导致转换矩阵估计不准确

## ✅ 质量标准

### 完整性
- 必做项清单完成度 ≥ 90%
- 序列定义说明完整（状态、时间单位）
- 替换成本矩阵有据可查

### 方法论
- 理论框架与数据一致性 ≥ 90%
- 分析步骤可复现性高
- 距离度量选择有理论依据

### 深度
- 核心维度覆盖 ≥ 80%
- 典型序列解读完整
- 影响因素分析深入

## 🖥️ Python 工具

### 工具链

| # | 工具名称 | 功能描述 |
|---|----------|----------|
| 1 | sequence_builder.py | 序列构建，支持状态定义、时间单位设置、不等间隔处理 |
| 2 | om_distance_calculator.py | 最优匹配距离计算，支持自定义替换成本矩阵和插入/删除成本 |
| 3 | trajectory_cluster.py | 轨迹聚类分析，支持Ward/PAM/K-medoids多方法聚类 |
| 4 | transition_analyzer.py | 转换矩阵分析，支持时依协变量Cox模型和事件史分析 |

### CLI用法

```bash
python tools/sequence_builder.py --input events.csv --output sequences.json
python tools/om_distance_calculator.py --input sequences.json --substitution-matrix costs.csv --output dist_matrix.json
python tools/trajectory_cluster.py --input dist_matrix.json --method ward --n-clusters 4 --output clusters.json
```

### CLI用法

```bash
# 社会序列分析推荐使用TraMineR(R)或Python的sequence_analyzer
python -c "print('Social Sequence Analysis: 序列分析与聚类')"
```

## 参考文献

1. Abbott, A. (1995). Sequence analysis: New methods for old ideas. *Annual Review of Sociology*, 21, 93-113.
2. Cornwell, B. (2015). Social sequence analysis. In *Emerging Trends in the Social and Behavioral Sciences*.
3. Studer, M., & Ritschard, G. (2016). What matters in differences between life trajectories. *Sociological Methods & Research*, 45(1), 5-48.
4. Gabadinho, A., et al. (2011). Analyzing and visualizing state sequences in R. *Journal of Statistical Software*, 40(4), 1-37.

---

**技能版本**: 5.0.0  
**方法论标准**: Abbott (1995), Cornwell (2015)  
**创建时间**: 2026-03-15
