趋势线的最佳拟合曲线

Dav*_*vis 5 java math jasper-reports data-analysis ireport

问题约束

  • 数据集的大小,但不是数据本身,是已知的.
  • 数据集一次增长一个数据点.
  • 趋势线一次绘制一个数据点(使用样条曲线/贝塞尔曲线).

图表

下面的拼贴显示了具有相当准确的趋势线的数据集:

在此输入图像描述

图表是:

  • 左上.按小时计算,有~24个数据点.
  • 右上方.白天一年,有~365个数据点.
  • 左下方.每周一周,有~52个数据点.
  • 右下.按月计算,约有12个数据点.

用户输入

用户可以选择:

  • 时间序列的类型(每小时,每日,每月,每季度,每年); 和
  • 时间序列的开始和结束日期.

例如,用户可以在6月份选择30天的每日报告.

趋势重量

要计算窗口大小(即计算趋势线时要平均的数据点数),使用以下表达式:

data points / trend weight
Run Code Online (Sandbox Code Playgroud)

其中data points,从用户输入获得,trend weight6.4.即使6.4的趋势权重产生良好的拟合,它也是相当随意的,并且可能不适合不同的用户输入.

trend weight考虑到这个问题的限制,应该如何计算?

Dan*_*Dan 1

根据图表的外观,我想说你的 12 点图表有太多点(它只是给定点的样条......这在视觉上令人愉悦,但实际上在尝试理解时弊大于利)趋势),并且 365 点图的点太少。也许尝试做一些指数级的事情,例如:

(Data points)^1.2/14.1
Run Code Online (Sandbox Code Playgroud)

我确实意识到这比你已经拥有的更加任意,但任意并不是世界上最糟糕的事情。

(我通过尝试保持 52 点图固定,得到了 14.1,因为那个看起来不错,通过采用 。使用(52^(1.2)/52)*6.4=14.1这种技术,您可以尝试除 1.2 之外的其他幂,看看您在视觉上得到了什么。