# Portfolio Attribution Calculation

> 用于收益归因的组合归因计算原子 skill，适用于通用行业金融计算场景。

- Skill: `aifinlab/portfolio-attribution-calculation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aifinlab/portfolio-attribution-calculation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aifinlab/portfolio-attribution-calculation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aifinlab (https://skillmd.com/u/aifinlab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aifinlab/portfolio-attribution-calculation

---


# 组合归因计算 Skill

## 数据来源

本 Skill 支持多种组合数据输入格式，核心数据来源包括：

### 1. 组合持仓数据
- **持仓明细**：证券代码、持仓数量、持仓成本、当前市值
- **权重数据**：各证券在组合中的权重占比
- **行业分类**：证券所属行业、板块分类
- **风格标签**：价值/成长、大盘/小盘等风格标签

### 2. 收益率数据
- **组合收益率**：组合整体收益率序列
- **基准收益率**：基准指数收益率序列
- **证券收益率**：组合中各证券的收益率序列
- **行业收益率**：各行业的收益率序列

### 3. 数据格式要求
- **CSV格式**：标准持仓和收益率数据
- **Excel格式**：支持多工作表组合数据
- **JSON格式**：结构化组合数据
- **数据库连接**：支持SQL数据库直接查询

> 说明：本 Skill 不包含数据采集功能，需要用户提供清洗后的组合持仓和收益率数据。建议数据时间跨度不少于1年，以便进行准确的归因分析。

---

## 功能

本 Skill 提供全面的组合归因分析能力，涵盖多种归因方法：

### 1. 收益归因分析
- **Brinson归因**：将超额收益分解为资产配置、证券选择和交互效应
- **多因子归因**：基于多因子模型的收益归因分析
- **行业归因**：按行业分解组合收益贡献
- **风格归因**：按投资风格分解组合收益贡献

### 2. 风险归因分析
- **风险贡献度**：计算各证券对组合风险的贡献
- **行业风险贡献**：计算各行业对组合风险的贡献
- **因子风险贡献**：计算各因子对组合风险的贡献
- **集中度风险**：分析组合的集中度风险

### 3. 归因指标计算
- **归因贡献度**：各归因因子的贡献度
- **归因稳定性**：归因结果的稳定性分析
- **归因一致性**：不同时期归因结果的一致性

### 4. 归因报告生成
- **归因报告**：生成详细的归因分析报告
- **可视化图表**：生成归因结果的可视化图表
- **对比分析**：与基准或同类组合的对比分析

### 5. 数据处理能力
- **缺失值处理**：支持前向填充、插值等方法
- **异常值检测**：基于统计方法识别和处理异常数据
- **数据标准化**：支持不同数据源的格式统一
- **权重归一化**：自动归一化组合权重

---

## 使用示例

### 输出示例
```json
{
  "portfolio": "组合A",
  "period": "2024-01-01 to 2024-12-31",
  "attribution": {
    "total_return": 15.8,
    "benchmark_return": 12.5,
    "excess_return": 3.3,
    "allocation_effect": 1.2,
    "selection_effect": 1.8,
    "interaction_effect": 0.3
  },
  "industry_attribution": {
    "金融": 0.8,
    "科技": 1.5,
    "消费": 0.6,
    "其他": 0.4
  },
  "style_attribution": {
    "value": 1.2,
    "growth": 1.1,
    "large_cap": 0.7,
    "small_cap": 0.3
  },
  "risk_attribution": {
    "total_risk": 18.5,
    "idiosyncratic_risk": 12.3,
    "systematic_risk": 6.2
  }
}
```

---

## 注意事项与限制

### 1. 数据质量要求
- 持仓和收益率数据需要经过清洗和验证
- 权重数据需要准确且归一化
- 基准数据需要与组合数据时间对齐

### 2. 归因方法选择
- 不同归因方法的结果可能不同
- Brinson归因适用于主动管理组合
- 多因子归因需要准确的因子暴露数据

### 3. 时间序列分析
- 归因分析应结合时间序列分析
- 不同时间区间的归因结果不可直接比较
- 市场环境变化会影响归因结果

### 4. 综合判断原则
- 单一归因指标不能全面反映组合表现
- 需要结合风险指标进行综合分析
- 应结合投资策略和市场环境进行判断

### 5. 使用限制
- 本 Skill 输出为技术分析结果，不构成投资建议
- 使用者应结合专业判断和具体业务场景
- 对于重大决策，建议咨询专业投资顾问

---

## 参考资料
- 见 references/ 目录中的相关文档，包括：
  - 组合归因分析方法手册
  - Brinson归因模型说明
  - 多因子归因模型指南
  - 数据处理方法说明文档

## License
- 本 skill 代码部分采用 MIT License，详见 `LICENSE` 文件
- 依赖与运行环境以 `requirements.txt` 为准
- 文档内容采用 CC BY 4.0 许可

