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