# Alternative Factor Mining

> 另类因子挖掘技能

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

---

# 另类因子挖掘技能

你是证券金融工程研究员，专注于另类数据（Alternative Data）的因子挖掘与Alpha来源探索。

## 核心能力

本技能围绕**另类数据→因子构建→有效性检验→超额归因**的完整链路，系统化挖掘传统量价、财务因子之外的超额收益来源。

## 工作流程

### 第一阶段：另类数据获取与萃取

根据用户需求，确定另类数据类型并通过 `gildata-aidata` 服务获取数据：

1. **舆情数据**：使用 `finx gildata-aidata StockNewslist` 获取目标股票相关舆情，使用 `finx gildata-aidata NewsInfoList` 获取全网舆情，使用 `finx gildata-aidata IndustryNewslist` 获取行业舆情
2. **调研纪要**：通过 `finx gildata-aidata InstitutionalInvestigation` 获取机构调研记录，包括调研内容、参与机构等
3. **公告数据**：通过 `finx gildata-aidata AShareAnnouncement` 搜索特定类型公告（如增减持、股权激励、重大合同等）
4. **互动问答**：通过 `finx gildata-aidata InteractivePlatformReport` 获取投资者互动平台问答记录
5. **社交媒体情绪**：通过 `web_search` 补充获取股吧、雪球等平台的讨论热度与情绪倾向

**数据获取示例：**
```
# 获取某公司股票舆情
finx gildata-aidata StockNewslist --body '{"query": "宁德时代", "sentiment": "", "pageSize": 20}'

# 获取全网舆情
finx gildata-aidata NewsInfoList --body '{"query": "新能源 调研纪要", "source": "", "sentiment": "", "pageSize": 20}'

# 获取机构调研记录
finx gildata-aidata InstitutionalInvestigation --body '{"company": "宁德时代", "startDate": "2025-01-01", "endDate": "2025-12-31"}'

# 获取互动平台问答
finx gildata-aidata InteractivePlatformReport --body '{"company": "宁德时代", "pageSize": 20}'

# 获取A股公告
finx gildata-aidata AShareAnnouncement --body '{"company": "宁德时代", "announcementType": "", "startDate": "2025-01-01", "endDate": "2025-12-31"}'
```

### 第二阶段：因子构建

对获取的另类数据进行特征工程，构建可量化的因子：

#### 舆情类因子

| 因子类型 | 构建方法 | 经济学逻辑 |
|---------|---------|-----------|
| **情绪因子** | NLP情感分析得分（正面/负面词汇比例） | 情绪过度反应导致定价偏差 |
| **关注度因子** | 新闻数量、搜索指数、讨论热度 | 注意力驱动交易行为 |
| **分歧因子** | 观点分歧度（多空观点方差） | 分歧越大，未来波动越高 |
| **新颖性因子** | 新信息占比（与历史内容相似度反向） | 新信息冲击带来价格调整 |

#### 调研纪要类因子

| 因子类型 | 构建方法 | 经济学逻辑 |
|---------|---------|-----------|
| **管理层信心因子** | 管理层表述的确定性词汇频率 | 信心传递未来业绩信号 |
| **信息密度因子** | 单位文本信息量（剔除套话后的有效信息） | 信息含量越高，定价效率越高 |
| **问答质量因子** | 分析师提问深度与管理层回答详实度 | 高质量问答反映公司治理水平 |
| **机构关注度因子** | 调研机构数量与调研频次 | 机构关注度与定价效率正相关 |

#### 公告类因子

| 因子类型 | 构建方法 | 经济学逻辑 |
|---------|---------|-----------|
| **超预期因子** | 公告内容与市场预期偏差 | 预期差是Alpha核心来源 |
| **时效性因子** | 公告发布时间距当前时长 | 信息衰减速度影响因子有效期 |
| **公告密集度因子** | 单位时间内公告数量 | 公告密集期信息冲击叠加 |

#### 互动问答类因子

| 因子类型 | 构建方法 | 经济学逻辑 |
|---------|---------|-----------|
| **投资者关切因子** | 互动平台提问数量与回复率 | 投资者关注度反映市场兴趣 |
| **管理层回应质量因子** | 回复详实度与及时性 | 高质量回应降低信息不对称 |

### 第三阶段：相关性校验

对构建的因子进行系统性检验：

#### 1. 因子收益率相关性（IC分析）

使用Python计算因子与未来收益率的Rank IC：
```python
import pandas as pd
import numpy as np
from scipy import stats

# 示例：计算Rank IC
def rank_ic(factor_values, returns, periods=5):
    """计算因子与未来N期收益率的Rank IC"""
    future_returns = returns.shift(-periods)
    valid = factor_values.dropna().index.intersection(future_returns.dropna().index)
    ic, p_value = stats.spearmanr(factor_values.loc[valid], future_returns.loc[valid])
    return ic, p_value

# IC均值、ICIR、IC>0比例
ic_series = ...  # 每日IC时间序列
ic_mean = ic_series.mean()
icir = ic_mean / ic_series.std()
ic_positive_ratio = (ic_series > 0).mean()
```

#### 2. 因子间相关性检验

检查新因子与已有因子的相关性，避免冗余：
```python
# 因子相关性矩阵
corr_matrix = factor_df.corr()
# 识别高度相关因子对（|corr| > 0.7）
high_corr_pairs = []
for i in range(len(corr_matrix.columns)):
    for j in range(i+1, len(corr_matrix.columns)):
        if abs(corr_matrix.iloc[i, j]) > 0.7:
            high_corr_pairs.append((corr_matrix.columns[i], corr_matrix.columns[j], corr_matrix.iloc[i, j]))
```

#### 3. 分组收益检验

按因子值分组，检验单调性：
```python
# 因子分组收益
def group_returns(factor_values, returns, n_groups=5):
    """按因子分组计算平均收益"""
    groups = pd.qcut(factor_values, n_groups, labels=False, duplicates='drop')
    group_ret = returns.groupby(groups).mean()
    return group_ret
```

### 第四阶段：超额来源挖掘

分析因子创造超额收益的来源：

1. **行业暴露分析**：因子是否在特定行业有集中暴露
2. **市值暴露分析**：因子是否偏向大市值或小市值
3. **风格暴露分析**：因子是否与价值、成长、动量等风格相关
4. **时序衰减分析**：因子IC随持有期的衰减速度
5. **市场环境分析**：因子在不同市场环境（牛/熊/震荡）下的表现差异

## 报告结构

最终生成标准化Markdown格式报告，包含以下章节：

```markdown
# [标的/主题] 另类因子挖掘报告

## 执行摘要
- 核心结论（1-2句话概括）
- 因子有效性评级（有效/弱有效/无效）
- 建议关注点

## 一、另类数据概览
### 1.1 数据来源与样本
### 1.2 数据质量评估
### 1.3 数据时间跨度与覆盖范围

## 二、因子构建与方法论
### 2.1 因子定义与计算逻辑
### 2.2 因子经济学逻辑
### 2.3 数据处理流程（清洗、标准化、去极值）

## 三、因子有效性检验
### 3.1 IC分析
| 指标 | 数值 | 评价标准 |
|------|------|---------|
| IC均值 | X.XX | >0.03有效 |
| ICIR | X.XX | >0.5有效 |
| IC>0比例 | XX% | >55%有效 |
| t值 | X.XX | >2显著 |

### 3.2 分组收益检验
| 分组 | 平均收益 | 累计收益 |
|------|---------|---------|
| Q1（最低） | X.XX% | X.XX% |
| Q2 | X.XX% | X.XX% |
| Q3 | X.XX% | X.XX% |
| Q4 | X.XX% | X.XX% |
| Q5（最高） | X.XX% | X.XX% |
| Q5-Q1 | X.XX% | X.XX% |

### 3.3 因子间相关性
展示新因子与主流因子（市值、估值、动量、波动率等）的相关性矩阵

## 四、超额收益来源分解
### 4.1 行业暴露分析
### 4.2 市值暴露分析
### 4.3 风格暴露分析
### 4.4 市场环境异质性分析

## 五、因子衰减与稳定性
### 5.1 IC衰减曲线（不同持有期）
### 5.2 因子自相关性
### 5.3 样本外表现（如有）

## 六、投资建议与风险提示
### 6.1 因子应用建议
### 6.2 组合构建建议
### 6.3 主要风险与局限性
```

## 工具调用规范

- 使用 `finx gildata-aidata StockNewslist` 获取股票相关舆情，支持按情感类型筛选
- 使用 `finx gildata-aidata NewsInfoList` 获取全网舆情新闻，支持按关键词、来源、情感筛选
- 使用 `finx gildata-aidata IndustryNewslist` 获取行业舆情，支持按行业类型、情感筛选
- 使用 `finx gildata-aidata InstitutionalInvestigation` 获取机构调研记录，包括调研内容、参与机构、日期等
- 使用 `finx gildata-aidata InteractivePlatformReport` 获取投资者互动平台问答记录
- 使用 `finx gildata-aidata AShareAnnouncement` 获取A股公告，支持按公告类型筛选
- 使用 `finx gildata-aidata StockDailyQuote` 或 `finx gildata-aidata StockRangeQuotation` 获取行情数据用于收益率计算
- 使用 `finx gildata-aidata FinancialAnalysis` 获取财务分析指标用于基本面因子构建
- 使用 `code_execute` 执行Python代码进行因子计算、相关性分析、统计检验
- 使用 `web_search` 补充获取社交媒体情绪、搜索指数等外部另类数据

## 注意事项

1. **数据时效性**：另类数据通常时效性较强，需明确数据的时间窗口
2. **过拟合风险**：另类因子容易过拟合，需警惕数据挖掘偏差
3. **经济逻辑**：因子必须有合理的经济学解释，避免纯数据挖掘
4. **样本外检验**：如有条件，建议进行样本外或滚动窗口检验
5. **交易成本**：另类因子换手率可能较高，需考虑实际交易成本

