返回技能列表
AI技能analysis
39 次阅读

数据分析侦探-趋势离群点发现专家

对上传的数据集进行系统性统计检验,识别趋势、离群点并提供可操作的洞察报告。

AI

触发条件

当用户上传数据集并请求分析时调用

## 技能概述

- **名称**:数据分析侦探-趋势离群点发现专家
- **类型**:analysis
- **触发条件**:用户上传 CSV、Excel 或 JSON 格式的数据集并明确请求「分析」或「侦探」时自动调用。
- **功能**:自动进行描述性统计、分布检验、趋势识别、离群点检测,并输出结构化报告与可视化建议。

## 使用前提

- 数据文件大小 ≤ 50 MB,单个文件列数 ≤ 500(行数不受限制,但列数不宜过多,以免影响性能)。
- 支持的文件编码:UTF‑8、GBK。若为其他编码请提前转换。
- 必须提供至少一个数值型列,否则无法进行统计检验。

## 调用流程

1. **接收数据**:系统读取用户上传的文件,解析为 pandas DataFrame。
2. **数据清洗**:自动去除全空行/列,填补缺失值(默认使用列均值),并统一列名。
3. **统计概览**:输出均值、标准差、中位数、四分位距(IQR)、缺失率等基本指标。
4. **趋势检测**:依据时间序列列(若提供)进行移动平均、季节性分解;否则使用散点图 + 线性回归判断整体走向。
5. **离群点识别**:采用 Z‑score(阈值 3)或 IQR(四分位距 1.5 倍)双方法并行检测,标记异常记录并列出异常点的原始值。
6. **关联分析**:对数值列两两计算 Pearson / Spearman 相关系数,筛选高相关对(|r|>0.6)并给出解释。
7. **报告生成**:将上述结果整合为 Markdown 报告,包括关键图表的描述、异常行索引、可行动建议。
8. **返回结果**:将报告链接或完整文本返回给用户,并在界面展示可视化预览。

## 分析步骤详解

### 步骤 1:数据读取与解析
使用 `pandas.read_csv`、`read_excel` 或 `json_normalize`,自动检测分隔符、编码。若解析失败返回错误信息并提示用户检查文件格式。

### 步骤 2:缺失值与异常值处理
- 缺失比例 > 30% 的列自动标记为「高缺失」,不建议用于统计。
- 缺失比例 ≤ 30% 时,采用均值/中位数填充(若列分布为正态分布则用均值,否则中位数)。
- 若用户提前提供缺失值填充策略(如自定义值或插值),优先使用用户指定方案。

### 步骤 3:描述性统计
输出表格包含:

| 列名 | 均值 | 标准差 | 中位数 | 最小值 | 最大值 | 缺失率 |
|------|------|--------|--------|--------|--------|--------|

### 步骤 4:趋势与季节性
- 若检测到时间戳列(`datetime` 类型),自动生成时间序列折线图并运行 `seasonal_decompose`(周期默认 12)。
- 若无时间列,则使用 `numpy.linalg.lstsq` 对特征进行线性回归,输出斜率与截距。

### 步骤 5:离群点检测
- **Z‑score 方法**:`|z| > 3` 的点标记为离群点。
- **IQR 方法**:`Q1 - 1.5*IQR` 与 `Q3 + 1.5*IQR` 之外的点标记为离群点。
- 对两种方法的交集做二次确认,降低误报率。

### 步骤 6:关联分析
计算 Pearson 相关系数矩阵,热力图保存为 PNG。若相关系数 |r|>0.6,自动生成文字说明,例如“列 A 与列 B 强正相关(r=0.78),可能存在因果关系”。若出现多重共线性(|r|>0.9),提示用户考虑剔除或合并。

## 报告结构

- **标题**:数据集概览 + 分析时间戳
- **一、数据概况**:文件信息、行数、列数、缺失概况
- **二、描述性统计**:表格形式呈现
- **三、趋势分析**:时间序列图或回归斜率解释
- **四、离群点**:离群行索引、原始数值、检测方法
- **五、关联洞察**:高相关对列表及解释
- **六、建议与行动**:基于离群点与趋势的可操作建议(如「考虑对离群值进行二次核实」或「如出现下降趋势,建议检查供应链」)

## 注意事项

- **隐私合规**:仅在本地或受信任的云端环境处理数据,确保不泄露用户隐私。若数据包含敏感信息(如身份证号、手机号),请在上传前脱敏。
- **大数据集**:若行数 > 1 000 000,建议先进行下采样或分块处理,以免内存溢出。
- **列名冲突**:系统会自动去除列名中的空格和特殊字符,用户自定义列名时请避免使用 “#” 开头的名称。
- **报告长度**:Markdown 报告最大长度限制 8 000 字,若分析结果超出限制,系统将截取关键部分并在结尾提供完整报告的下载链接。
- **误差容忍**:离群点检测阈值可调,用户可通过参数 `z_threshold`、`iqr_multiplier` 自定义,默认值已在平台配置中优化。

## 示例

假设用户上传 `sales.csv`,包含列 `Date`、`Revenue`、`Cost`、`Region`,请求「分析」。

1. 系统读取后识别 `Date` 为时间戳,`Revenue`、`Cost` 为数值列,`Region` 为分类型。
2. 缺失值处理:若 `Revenue` 缺失 2 行,使用均值填充。
3. 统计概览输出均值、标准差等。
4. 趋势检测:对 `Revenue` 做时间序列折线图,显示 Q3 销售额上升 12%。
5. 离群点检测:`Cost` 中有一条记录的 `Cost=1000000`(远超均值),被标记为离群点。
6. 关联分析:`Revenue` 与 `Cost` 的 Pearson r = 0.85,提示强正相关。
7. 报告生成,返回完整 Markdown,并展示可视化图表。

---

通过上述流程,数据分析侦探能够快速定位数据中的隐藏信息,帮助用户做出基于事实的决策。若需进一步的自定义模型或深度学习分析,可在报告中提供相应的模型推荐与实施路径。

评论 (0)

暂无评论,来说点什么吧