Как получить конечные точки линии тренда?

Я использую эту логику:

Вычисление линии тренда MYSQL

для вычисления наклона набора данных временного ряда. Но мои данные таковы (измерение выходного тока с течением времени), что «наклон» не имеет смысла, поскольку он зависит от относительного масштаба осей. Например, ток, указанный в миллиамперах, будет давать другой наклон, чем ток, представленный в амперах, за тот же период времени. Что мне нужно, так это рассчитать, представляет ли тенденция за указанное время определенный процент увеличения.

Подводя итог, я использую этот запрос 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']);

Но я получаю такие числа, как 5.9808374081288E-10 из-за масштаба временных меток unix.

Каков наилучший способ получить от этого процентное увеличение или уменьшение? Или, точнее, как мне получить значения Y от конечных точек линии тренда?


person Doug Wolfgram    schedule 17.03.2014    source источник
comment
Я написал класс PHP, который вычисляет линию тренда для набора значений. Если вы считаете, что это может вам помочь, я могу добавить его на GitHub.   -  person Max    schedule 17.03.2014


Ответы (1)


  1. Хотите изменить шкалу с ампер/время на миллиампер/время? Умножить на 1000
  2. Проблемы с отметкой времени Unix? Потому что ваша шкала времени восходит к 1 января 1970 года. Выберите метку времени в качестве «нулевого» времени и вычтите ее из всех остальных.
person Sammitch    schedule 17.03.2014
comment
Это помогает с масштабом, но все равно не дает мне увеличения в процентах. Мне нужны конечные точки для этого. - person Doug Wolfgram; 17.03.2014