📊

data-analysis

👤 肖俊伟 ✓ 已认证 📦 v1.0.0 ⭐ 4.4 ⬇️ 197 下载
📊 数据分析 免费

📖 技能介绍


name: data-analysis description: 通过统计方法、趋势识别、假设检验和相关分析,分析数据集以提取洞察。 license: MIT metadata: author: awesome-ai-agent-skills version: 1.0.0


数据分析

本技能让 AI Agent 对结构化数据集执行严谨的统计分析。Agent 加载数据,计算描述性与推断性统计量,识别趋势与相关,检验假设,并产出可执行的洞察。支持 CSV、Excel、Parquet 和 JSON 输入,利用 pandas、scipy 和 statsmodels 进行分析。

工作流

  1. 加载并探查数据。 将数据集读入 pandas DataFrame,检查其形状、列类型和内存占用。显示首行与末行以确认数据正确加载。检查明显的结构问题,如列错位或编码问题。

  2. 计算描述性统计量。 为所有数值列生成汇总统计,包括均值、中位数、标准差、偏度和峰度。对类别列,计算取值计数和众数。此步骤建立对每个变量分布的基础理解。

  3. 识别趋势与模式。 对带时间索引的数据应用滚动平均、百分比变化和季节性分解。对非时序数据,使用 group-by 聚合和透视表来浮现跨类别的模式。标记任何单调趋势或周期性行为。

  4. 执行相关与假设检验。 计算 Pearson 和 Spearman 相关矩阵,量化变量间关系。在适当时执行假设检验(t 检验、卡方检验、ANOVA)以确定统计显著性。在报告 p 值与置信区间的同时一并报告效应量。

  5. 检测异常与离群值。 使用 IQR 法和 z 分数识别显著偏离常态的数据点。将离群值与领域上下文交叉核对,判断其代表错误、罕见事件,还是有意义的信号。

  6. 将发现综合为报告。 用平实语言总结关键洞察,并辅以具体数字。按业务影响或统计显著性对发现排序。包含限制与注意事项,如样本量约束或混杂变量。

支持技术

  • pandas — 数据加载、操作与聚合
  • scipy.stats — 假设检验、统计分布
  • statsmodels — 时间序列分解、回归分析
  • numpy — 数值计算

使用方式

为 Agent 提供数据集的文件路径和分析目标的说明。可选择指定要关注的列、假设检验的显著性水平(默认 alpha=0.05),以及是否应用时间序列方法。

示例

示例 1:用 pandas 分析销售 CSV

import pandas as pd
from scipy import stats

# Load the dataset
df = pd.read_csv("sales_2024.csv", parse_dates=["order_date"])

# Descriptive statistics
print(df[["revenue", "units_sold", "discount"]].describe())
#          revenue  units_sold  discount
# count   8450.00     8450.00   8450.00
# mean     312.45       4.12      0.08
# std      189.73       2.87      0.05
# min       12.00       1.00      0.00
# max     2450.00      47.00      0.35

# Correlation analysis
corr = df[["revenue", "units_sold", "discount"]].corr(method="pearson")
print(corr)
#             revenue  units_sold  discount
# revenue       1.000       0.847    -0.213
# units_sold    0.847       1.000    -0.089
# discount     -0.213      -0.089     1.000

# Hypothesis test: do discounted orders produce higher revenue?
discounted = df[df["discount"] > 0]["revenue"]
full_price = df[df["discount"] == 0]["revenue"]
t_stat, p_value = stats.ttest_ind(discounted, full_price)
print(f"t={t_stat:.3f}, p={p_value:.4f}")
# t=-3.217, p=0.0013 — discounted orders have significantly lower revenue per order

示例 2:带季节性分解的时间序列分析

import pandas as pd
from statsmodels.tsa.seasonal import seasonal_decompose

# Load monthly revenue data
df = pd.read_csv("monthly_revenue.csv", parse_dates=["month"], index_col="month")

# Decompose into trend, seasonal, and residual components
result = seasonal_decompose(df["revenue"], model="additive", period=12)

print("Trend (last 6 months):")
print(result.trend.dropna().tail(6))
# 2024-07    48230.12
# 2024-08    49012.45
# 2024-09    49780.33
# 2024-10    50234.10
# 2024-11    51002.88
# 2024-12    51890.67

print("\nSeasonal peaks:")
seasonal = result.seasonal.groupby(result.seasonal.index.month).mean()
print(seasonal.nlargest(3))
# month
# 11    8923.40   (November — holiday pre-orders)
# 12    7654.20   (December — holiday sales)
# 3     3210.15   (March — spring promotions)

# The upward trend of ~$600/month suggests 14.5% annualized growth.
# Strong Q4 seasonality accounts for roughly 18% of total annual revenue.

最佳实践

  • 计算统计前始终先检查原始数据——静默的解析错误(错误分隔符、编码问题)会使所有下游结果失效。
  • 在 p 值之外同时报告效应量;仅统计显著性并不意味实际重要性。
  • 当数据分布严重偏斜或样本量较小时,使用非参数检验(Mann-Whitney、Kruskal-Wallis)。
  • 按有意义的类别(地区、产品线、客户层级)做细分分析,以避免辛普森悖论。
  • 明确记录假设——时间序列的平稳性、参数检验的正态性、观测的独立性。
  • 在将惊人发现作为结论呈现前,用保留样本或替代方法学进行验证。

边缘情况

  • 关键列中的缺失值。 如果目标列超过 30% 为空,警告用户插补可能引入显著偏差。改为建议分析完整案例子集。
  • 极度偏斜的分布。 当偏度超过 |2.0| 时,使用对数变换或基于中位数的统计,以避免误导性的均值。
  • 多重共线性。 当两个预测变量相关性高于 0.9 时,标记此问题并建议删除其中一个或使用正则化模型,以避免系数膨胀。
  • 小样本量(n < 30)。 切换到精确检验或 bootstrap 方法,并相应放宽置信区间。
  • 单列中混合的数据类型。 谨慎强制转换并报告无法转换的值数量,而非静默丢弃。

🤖 AI 评测

这个 Skill 质量中上,内容专业且覆盖面广,包含完整的数据分析流程指引和实用的代码示例,能帮助你了解如何做数据质量检查、趋势分析和统计检验。优点是考虑周全,有专门章节讲解常见问题怎么处理。不足之处是缺少示例数据文件,实际使用前需要自己准备数据素材,对新手不太友好。总体来说,这是一个偏理论指导型的技能文档,适合作为数据分析 Agent 的知识库。.

📊 多维度评分

适应性4.2
规范性4.6
有效性4.4
可靠性4
可信度5

📁 包含文件 (2 个)

📄 README.md 918 B
📄 SKILL.md 5.8 KB

🔥 大家都在搜

wps 写作 pdf 苹果