[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XDB59QWVFEM4VD8CVT37EY":3,"skill-same:01M6XDB59QWVFEM4VD8CVT37EY":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":13,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6XDB59QWVFEM4VD8CVT37EY","trend-analysis",null,"Detect long-term trends in time series data using parametric and non-parametric methods. Use when determining if a variable shows statistically significant increase or decrease over time.","Waaaalnut\u002Fskillsbench","Waaaalnut","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103995656?v=4","01M6XCS9K1V51EY3JMB7DGMX24","01M6XCS9Q4WPW88W62C55G1H44",0,"MIT","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks-no-skills\u002Flake-warming-attribution\u002Fenvironment\u002Fskills\u002Ftrend-analysis\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"analysis","trend","trend analysis","time series","data","use","methods","time","series","long","trends","detect","when","parametric","2026-11-10 10:12:30",false,"---\nname: trend-analysis\ndescription: Detect long-term trends in time series data using parametric and non-parametric methods. Use when determining if a variable shows statistically significant increase or decrease over time.\nlicense: MIT\n---\n\n# Trend Analysis Guide\n\n## Overview\n\nTrend analysis determines whether a time series shows a statistically significant long-term increase or decrease. This guide covers both parametric (linear regression) and non-parametric (Sen's slope) methods.\n\n## Parametric Method: Linear Regression\n\nLinear regression fits a straight line to the data and tests if the slope is significantly different from zero.\n```python\nfrom scipy import stats\n\nslope, intercept, r_value, p_value, std_err = stats.linregress(years, values)\n\nprint(f\"Slope: {slope:.2f} units\u002Fyear\")\nprint(f\"p-value: {p_value:.2f}\")\n```\n\n### Assumptions\n\n- Linear relationship between time and variable\n- Residuals are normally distributed\n- Homoscedasticity (constant variance)\n\n## Non-Parametric Method: Sen's Slope with Mann-Kendall Test\n\nSen's slope is robust to outliers and does not assume normality. Recommended for environmental data.\n```python\nimport pymannkendall as mk\n\nresult = mk.original_test(values)\n\nprint(result.slope)  # Sen's slope (rate of change per time unit)\nprint(result.p)      # p-value for significance\nprint(result.trend)  # 'increasing', 'decreasing', or 'no trend'\n```\n\n### Comparison\n\n| Method | Pros | Cons |\n|--------|------|------|\n| Linear Regression | Easy to interpret, gives R² | Sensitive to outliers |\n| Sen's Slope | Robust to outliers, no normality assumption | Slightly less statistical power |\n\n## Significance Levels\n\n| p-value | Interpretation |\n|---------|----------------|\n| p \u003C 0.01 | Highly significant trend |\n| p \u003C 0.05 | Significant trend |\n| p \u003C 0.10 | Marginally significant |\n| p >= 0.10 | No significant trend |\n\n## Example: Annual Precipitation Trend\n```python\nimport pandas as pd\nimport pymannkendall as mk\n\n# Load annual precipitation data\ndf = pd.read_csv('precipitation.csv')\nprecip = df['Precipitation'].values\n\n# Run Mann-Kendall test\nresult = mk.original_test(precip)\nprint(f\"Sen's slope: {result.slope:.2f} mm\u002Fyear\")\nprint(f\"p-value: {result.p:.2f}\")\nprint(f\"Trend: {result.trend}\")\n```\n\n## Common Issues\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| p-value = NaN | Too few data points | Need at least 8-10 years |\n| Conflicting results | Methods have different assumptions | Trust Sen's slope for environmental data |\n| Slope near zero but significant | Large sample size | Check practical significance |\n\n## Best Practices\n\n- Use at least 10 data points for reliable results\n- Prefer Sen's slope for environmental time series\n- Report both slope magnitude and p-value\n- Round results to 2 decimal places\n","# Trend Analysis Guide\n\n## Overview\n\nTrend analysis determines whether a time series shows a statistically significant long-term increase or decrease. This guide covers both parametric (linear regression) and non-parametric (Sen's slope) methods.\n\n## Parametric Method: Linear Regression\n\nLinear regression fits a straight line to the data and tests if the slope is significantly different from zero.\n```python\nfrom scipy import stats\n\nslope, intercept, r_value, p_value, std_err = stats.linregress(years, values)\n\nprint(f\"Slope: {slope:.2f} units\u002Fyear\")\nprint(f\"p-value: {p_value:.2f}\")\n```\n\n### Assumptions\n\n- Linear relationship between time and variable\n- Residuals are normally distributed\n- Homoscedasticity (constant variance)\n\n## Non-Parametric Method: Sen's Slope with Mann-Kendall Test\n\nSen's slope is robust to outliers and does not assume normality. Recommended for environmental data.\n```python\nimport pymannkendall as mk\n\nresult = mk.original_test(values)\n\nprint(result.slope)  # Sen's slope (rate of change per time unit)\nprint(result.p)      # p-value for significance\nprint(result.trend)  # 'increasing', 'decreasing', or 'no trend'\n```\n\n### Comparison\n\n| Method | Pros | Cons |\n|--------|------|------|\n| Linear Regression | Easy to interpret, gives R² | Sensitive to outliers |\n| Sen's Slope | Robust to outliers, no normality assumption | Slightly less statistical power |\n\n## Significance Levels\n\n| p-value | Interpretation |\n|---------|----------------|\n| p \u003C 0.01 | Highly significant trend |\n| p \u003C 0.05 | Significant trend |\n| p \u003C 0.10 | Marginally significant |\n| p >= 0.10 | No significant trend |\n\n## Example: Annual Precipitation Trend\n```python\nimport pandas as pd\nimport pymannkendall as mk\n\n# Load annual precipitation data\ndf = pd.read_csv('precipitation.csv')\nprecip = df['Precipitation'].values\n\n# Run Mann-Kendall test\nresult = mk.original_test(precip)\nprint(f\"Sen's slope: {result.slope:.2f} mm\u002Fyear\")\nprint(f\"p-value: {result.p:.2f}\")\nprint(f\"Trend: {result.trend}\")\n```\n\n## Common Issues\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| p-value = NaN | Too few data points | Need at least 8-10 years |\n| Conflicting results | Methods have different assumptions | Trust Sen's slope for environmental data |\n| Slope near zero but significant | Large sample size | Check practical significance |\n\n## Best Practices\n\n- Use at least 10 data points for reliable results\n- Prefer Sen's slope for environmental time series\n- Report both slope magnitude and p-value\n- Round results to 2 decimal places\n",{"name":5,"license":14,"description":7},"main","7eeb258ada72b7f58119b0e7a2c00ea89d9beedd","tasks-no-skills\u002Flake-warming-attribution\u002Fenvironment\u002Fskills\u002Ftrend-analysis","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench","https:\u002F\u002Fgithub.com\u002FWaaaalnut","student of Zhejiang University","2026-04-21 23:16:23",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add Waaaalnut\u002Fskillsbench --skill trend-analysis",{"tool":50,"command":51},"bunx","bunx skills add Waaaalnut\u002Fskillsbench --skill trend-analysis",{"tool":53,"command":54},"pnpm","pnpm dlx skills add Waaaalnut\u002Fskillsbench --skill trend-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks-no-skills\u002Flake-warming-attribution\u002Fenvironment\u002Fskills\u002Ftrend-analysis\u002FSKILL.md",true,[],[59,73,88,114,133,152],{"skillNo":60,"name":61,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":32},"01M6XEWMJ6VY3ZC53MPDCPG3GH","data-reconciliation","Apache-2.0","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fxlsx-recover-data\u002Fenvironment\u002Fskills\u002Fdata-reconciliation\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[71,72,22],"data reconciliation","reconciliation",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":32},"01M6XEW8MNPMF1KRXV6ATGFRQF","speech-to-text","Transcribe video to timestamped text using Whisper tiny model (pre-installed).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-tutorial-indexer\u002Fenvironment\u002Fskills\u002Fspeech-to-text\u002FSKILL.md",[],[80,81,82,83,84,85,86,87],"speech","text","speech to text","transcribe video","whisper","model","Video","transcribe",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":99,"publishedAt":32},"01M6XEW3FQZP0T1RKQQJFXVY9T","video-processor","Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses\u002Fopenings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fvideo-processor\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[86,100,101,102,103,104,30,105,106,107,108,109,110,111,112,23,113],"processor","video processor","batch","create","reels","parts","segments","process","videos","you","segment","filter","ffmpeg","remove",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":32},"01M6XEVXJ5KZ0NTY3XZKRY4AS1","silence-detector","Detect initial silence segments in audio\u002Fvideo using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsilence-detector\u002FSKILL.md",[120],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},[122,123,124,125,30,109,25,126,127,128,29,106,129,130,86,18,131,132,23],"detector","silence detector","title","slides","energy","at","recordings","find","Audio","start","setup",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":32},"01M6XEVT3NGRN1FT7JPMAPXS6M","segment-combiner","Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsegment-combiner\u002FSKILL.md",[],[110,140,86,141,142,143,144,145,30,146,147,106,109,148,149,23,150,151],"segment combiner","detection","prepare","merge","video processing","for","outputs","combine","processing","consolidate","results","list",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":62,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":161,"publishedAt":32},"01M6XEVMPVASGS2KX86QK4FMT7","report-generator","Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Freport-generator\u002FSKILL.md",[158],{"categoryNo":159,"categoryName":160,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000034","行政与办公人员",[162,163,164,110,30,145,109,165,148,166,167,168,23,144,169,86,170,171,103],"generator","report generator","report","with","statistics","structured","reports","json","compression","generate"]