You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中定义并计算数据序列的上升与下降趋势

R语言序列趋势判定实现方案

实现思路

通过拟合x与y的线性回归模型提取趋势斜率,再对斜率做归一化处理,将输出值映射到要求的[-1,1]区间:

  • 输出值落在[-1,0)区间:判定为下降趋势
  • 输出值落在(0,1]区间:判定为上升趋势
  • 输出值为0:判定为无趋势

测试代码

基础数据与可视化代码

# 构造测试输入输出序列
x <- c(1:8)  
y <- c(99, 104, 108, 100, 86, 64, 35, 15)

# 序列可视化
plot(x, y)
lines(x, y)

趋势判定核心代码

# 拟合线性回归模型提取斜率
trend_fit <- lm(y ~ x)
raw_slope <- coef(trend_fit)[["x"]]

# 计算归一化因子,将斜率映射到[-1,1]区间
x_span <- diff(range(x))
y_span <- diff(range(y))
max_possible_slope <- y_span / x_span
normalized_trend <- raw_slope / max_possible_slope

# 输出判定结果
trend_result <- ifelse(normalized_trend < 0, "下降", ifelse(normalized_trend > 0, "上升", "无趋势"))

结果说明

本次测试数据计算得到的normalized_trend约为-0.97,落在[-1,0)区间,判定结果为下降,符合预期要求。

内容的提问来源于stack exchange,提问作者Andrii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 12:39:02