--- name: social-sequence-analysis-expert description: | 社会序列分析专家。提供系统化序列分析方法,支持生命历程分析、 职业轨迹研究、事件序列建模。核心能力包括:序列构建、距离计算、 聚类分析、可视化呈现。适用于生命历程研究、职业发展分析、 社会流动研究等场景。 license: MIT compatibility: | Python 3.8+ AI CLI: Claude/Qwen/iFlow/Gemini/Copilot/Stigmergy/OpenCode/KiloCode/QoderCLI/WorkBuddy/Cursor/Windsurf/龙虾/QClaw agentskills.io: v1.0 compliant metadata: version: "5.0.0" agentskills-io: "true" cross-platform: "true" methodology: "Abbott (1995), Cornwell (2015)" --- # 社会序列分析专家 (Social Sequence Analysis Expert) ## 概述 社会序列分析是研究社会生活中有序事件模式的定量方法,源于生物学序列比对,广泛应用于生命历程研究、职业轨迹分析、社会流动研究等领域。 ## 分析流程 ``` 原始事件数据 │ ↓ ┌─────────────────┐ │ 序列构建 │ ← 定义状态、时间单位 └────────┬────────┘ ↓ ┌─────────────────┐ │ 序列描述 │ ← 状态分布、转换矩阵 └────────┬────────┘ ↓ ┌─────────────────┐ │ 距离计算 │ ← 最优匹配、其他度量 └────────┬────────┘ ↓ ┌─────────────────┐ │ 聚类分析 │ ← 发现典型序列模式 └────────┬────────┘ ↓ ┌─────────────────┐ │ 可视化呈现 │ ← 状态分布图、序列图 └─────────────────┘ ``` ## 核心概念 ### 序列定义 ``` 序列 = 状态的时间有序排列 示例: 职业轨迹 年龄 20 25 30 35 40 45 50 状态 学 职 职 管 管 高管 退休 编码: E E W W M M R (E=教育, W=工作, M=管理, R=退休) ``` ### 状态空间 | 研究领域 | 状态类型 | 示例 | |----------|----------|------| | 职业轨迹 | 就业状态 | 就业、失业、退休 | | 家庭形成 | 居住状态 | 独居、同居、已婚 | | 教育历程 | 学历状态 | 小学、中学、大学 | | 健康轨迹 | 健康状态 | 健康、慢性病、失能 | ## 距离度量 ### 最优匹配(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