我正在使用这个逻辑:
计算一组时间序列数据的斜率。但是我的数据是这样的(随着时间的推移测量电流输出),“斜率”没有意义,因为它取决于轴的相对比例。例如,以毫安表示的电流在同一时间段内会产生与以安培表示的电流不同的斜率。我需要的是计算指定时间内的趋势是否代表一定百分比的增长。
总而言之,我正在使用这个 sql 查询:
SELECT COUNT(*) AS N,SUM(UNIX_TIMESTAMP(timestamp)) AS Sum_X,
SUM(UNIX_TIMESTAMP(timestamp) * UNIX_TIMESTAMP(timestamp)) AS Sum_X2,
SUM(max_current) AS Sum_Y,
SUM(max_current*max_current) AS Sum_Y2,
SUM(UNIX_TIMESTAMP(timestamp) * max_current) AS Sum_XY
FROM circuit_history
WHERE circuit_filename = '".$cfn."'
AND timestamp > date_sub(now(), interval 60 day)";
我的斜率是这样计算的:
$slope = ($row['N'] * $row['Sum_XY'] - $row['Sum_X'] * $row['Sum_Y'])/($row['N'] * $row['Sum_X2'] - $row['Sum_X'] * $row['Sum_X']);
但是由于 unix 时间戳的规模,我得到了像 5.9808374081288E-10 这样的数字。
从中获得百分比增加或减少的最佳方法是什么?或者更具体地说,如何从趋势线的端点获取 Y 值?