Atlas / Skills / opensensenova / Time Series Analysis

Time Series AnalysisSAFE

skills/opensensenova/time-series-analysis

Modular SenseNova skills for building AI-powered office assistants and productivity workflows

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
MIT
Stars
5,744
01

Overview

Modular SenseNova skills for building AI-powered office assistants and productivity workflows

Read from source at commit 657860e4d389OBSERVED · 2026-10-07
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: time-series-and-categorical-analysis
description: "对时间序列或分类数据进行多维度趋势分析、百分比清洗、绩效分级建模与预测,并生成高分辨率的可视化综合报告,适用于业务指标监控与预测场景。"
---

## Skill Steps

Step1 加载并检查原始数据,配置中文字体以确保图表正常显示。
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')

# 设置中文字体,兼容不同操作系统
plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Zen Hei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False

# 加载Excel文件
file_path = 'data.xlsx'
df = pd.read_excel(file_path)

print(f"数据形状: {df.shape}")
print(f"列名: {list(df.columns)}")
```

Step2 提取时间序列或分类维度数据,处理百分比格式,并计算变化趋势。
```python
def convert_percentage(pct_str):
    """将百分比字符串转换为数值,处理空值和非字符串类型"""
    if pd.isna(pct_str):
        return None
    if isinstance(pct_str, str) and '%' in pct_str:
        try:
            return float(pct_str.replace('%', ''))
        except ValueError:
            return None
    return pct_str

time_col = '时间列'  # 占位示例
target_cols = ['指标1占比', '指标2占比', '指标3占比']  # 占位示例

# 转换百分比字符串为数值并提取数据
ts_df = df[[time_col] + target_cols].copy() if time_col in df.columns else df.copy()
for col in target_cols:
    if col in ts_df.columns:
        ts_df[col] = ts_df[col].apply(convert_percentage)
        
        # 计算变化趋势并识别状态
        diff_col = f'{col}_变化'
        trend_col = f'{col}_趋势'
        ts_df[diff_col] = ts_df[col].diff()
        ts_df[trend_col] = ['上升' if x > 0 else '下降' if x < 0 else '稳定' for x in ts_df[diff_col]]
```

Step3 基于数值进行多维度分级算法建模,映射差异化增长率并计算预测值。
```python
group_col = '分组列'  # 占位示例,如'部门'
value_col = '数值列'  # 占位示例,如'销售额'

# 聚合计算总和并排序
grouped_df = df.groupby(group_col, as_index=False)[value_col].sum()
grouped_df = grouped_df.sort_values(by=value_col, ascending=False).reset_index(drop=True)

# 多维度分级算法结构:前30%为高,中间40%为中,后30%为低
total_rows = len(grouped_df)
high_threshold = int(total_rows * 0.3)
mid_threshold = int(total_rows * 0.7)

grouped_df['等级'] = np.where(
    grouped_df.index < high_threshold, '高',
    np.where(grouped_df.index < mid_threshold, '中', '低')
)

# 分类映射函数骨架:为不同等级设定差异化增长率
growth_rates = {'高': 0.15, '中': 0.08, '低': 0.03}
grouped_df['增长率'] = grouped_df['等级'].map(growth_rates)

# 计算预测值与增长量
grouped_df['预测值'] = grouped_df[value_col] * (1 + grouped_df['增长率'])
grouped_df['增长量'] = grouped_df['预测值'] - grouped_df[value_col]
```

Step4 生成多维度可视化图表(堆叠面积图、柱状图、条形图),并保存为高分辨率图像。
```python
output_path = 'trend_analysis_report.png'
plt.figure(figsize=(14, 10))

# 子图1:堆叠面积图(时间序列占比变化)
plt.subplot(2, 2, 1)
sns.set_style('whitegrid')
if time_col in ts_df.columns and all(c in ts_df.columns for c in target_cols):
    plt.stackplot(ts_df[time_col], 
                  *[ts_df[c] for c in target_cols], 
                  labels=target_cols, alpha=0.8)
    plt.title('各指标占比变化趋势', fontsize=14, fontweight='bold')
    plt.xlabel(time_col)
    plt.ylabel('占比 (%)')
    plt.legend(loc='upper left')
    plt.xticks(rotation=45)

# 子图2:当前 vs 预测对比(柱状图)
plt.subplot(2, 2, 2)
x = np.arange(len(grouped_df))
width = 0.35
plt.bar(x - width/2, grouped_df[value_col], width, label='当前值', alpha=0.8)
plt.bar(x + width/2, grouped_df['预测值'], width, label='预测值', alpha=0.8)
plt.xlabel(group_col)
plt.ylabel('数值')
plt.title('当前与预测值对比')
plt.xticks(x, grouped_df[group_col], rotation=45)
plt.legend()

# 子图3:增长率分布(条形图)
plt.subplot(2, 2, 3)
plt.barh(grouped_df[group_col], grouped_df['增长率'], color='skyblue')
plt.xlabel('增长率')
plt.title('各组增长率分布')
plt.gca().invert_yaxis()

# 子图4:增长量分布(柱状图)
plt.subplot(2, 2, 4)
plt.bar(grouped_df[group_col], grouped_df['增长量'], color='lightcoral')
plt.xlabel(group_col)
plt.ylabel('增长量')
plt.title('各组增长量分析')
plt.xticks(rotation=45)

plt.tight_layout()
# 图表美化与高分辨率保存
plt.savefig(output_path, dpi=300, bbox_inches='tight')
plt.close()
```

Step5 生成综合分析报告,汇总核心指标并输出趋势结论。
```python
# 总体预测汇总
total_current = grouped_df[value_col].sum()
total_forecast = grouped_df['预测值'].sum()
total_growth = grouped_df['增长量'].sum()
overall_growth_rate = (total_forecast - total_current) / total_current if total_current else 0

print("=" * 60)
print("📊 综合趋势分析报告")
print("=" * 60)
print(f"当前总值: {total_current:,.2f}")
print(f"预测总值: {total_forecast:,.2f}")
print(f"总增长量: {total_growth:,.2f}")
print(f"整体增长率: {overall_growth_rate:.2%}")
print("\n📈 分析结论:")
if overall_growth_rate > 0.1:
    print("  - 整体趋势向好,预计实现显著增长。")
elif overall_growth_rate > 0:
    print("  - 呈温和增长态势,建议加强低等级组支持。")
else:
    print("  - 预测下滑,需深入分析原因并制定应对策略。")
print("=" * 60)
```
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 657860e4d389full audit observations/trust-audit/skill/opensensenova__time-series-analysis.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-07657860e4d389SAFEB89first audit
05

Questions

What does the Time Series Analysis skill do?

Modular SenseNova skills for building AI-powered office assistants and productivity workflows

Is Time Series Analysis safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can Time Series Analysis access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (657860e4d389), read on 2026-10-07. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement