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

如何在R中为峰值谷值递减的时间序列拟合直线或指数曲线?

实现从时间序列峰值出发的最优拟合线(直线/指数曲线)

核心思路

要满足「从峰值出发、斜率尽可能负且不与序列其他点相交」的需求,我们需要:

  1. 定位序列的全局峰值(拟合起点)
  2. 针对直线和指数曲线,分别计算满足约束的最优参数(最陡负斜率/最快衰减系数)
  3. 绘制拟合线与原序列对比

完整代码实现

先运行你提供的时间序列生成代码,再执行以下步骤:

set.seed(123)

# Generate time series 
n <- 10000
x <- cumsum(rnorm(n, 0, 1))
sigma <- seq(2, 0.1, length.out = n)
x <- x * sigma

# --------------------------
# 1. 定位全局峰值
# --------------------------
peak_idx <- which.max(x)
peak_val <- x[peak_idx]
peak_t <- peak_idx  # 用索引作为时间轴

# --------------------------
# 2. 拟合最优直线
# --------------------------
# 仅考虑峰值之后的点(决定最陡负斜率)
post_peak_idx <- (1:n)[1:n > peak_idx]
# 计算每个后峰值点与峰值点的连线斜率
post_slopes <- (x[post_peak_idx] - peak_val) / (post_peak_idx - peak_idx)
# 取最小斜率(最负),保证直线不与任何点相交
optimal_slope <- min(post_slopes)
# 生成直线的所有点
line_y <- peak_val + optimal_slope*(1:n - peak_idx)

# --------------------------
# 3. 拟合最优指数曲线
# --------------------------
post_x <- x[post_peak_idx]
post_t <- post_peak_idx - peak_idx
# 计算每个后峰值点对应的最大允许衰减系数k
k_candidates <- log(post_x / peak_val) / post_t
# 取最小k(最负),保证曲线不与任何点相交
optimal_k <- min(k_candidates)
# 生成指数曲线的所有点
exp_y <- peak_val * exp(optimal_k*(1:n - peak_idx))

# --------------------------
# 4. 绘制结果
# --------------------------
plot(x, type = "l", col = "black", lwd = 1, 
     main = "Time Series with Optimal Fit Lines", 
     xlab = "Time", ylab = "Value")
# 标记峰值点
points(peak_idx, peak_val, col = "red", pch = 19, cex = 1.2)
# 绘制最优直线
lines(line_y, col = "blue", lwd = 2)
# 绘制最优指数曲线
lines(exp_y, col = "green", lwd = 2)
# 添加图例
legend("topright", 
       legend = c("Original Series", "Peak", "Optimal Line", "Optimal Exponential Curve"),
       col = c("black", "red", "blue", "green"), 
       lwd = c(1, NA, 2, 2), 
       pch = c(NA, 19, NA, NA))

关键说明

  • 最优直线的斜率是所有后峰值点与峰值连线斜率中的最小值(最负),确保直线始终在所有序列点的上方,不会相交
  • 最优指数曲线的衰减系数k是所有后峰值点允许的最小k值(最负),同样保证曲线不与任何点相交
  • 如果需要更贴近谷值,可以调整参数筛选逻辑(比如取谷值对应的斜率/k的最大值,降低陡峭程度),当前代码优先满足「最陡负斜率+不相交」的核心需求

内容的提问来源于stack exchange,提问作者H. berg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:15:36