Използвам тази логика:
за изчисляване на наклона на набор от данни от времеви серии. Но моите данни са такива (измерване на токов изход във времето), че „наклонът“ няма смисъл, тъй като зависи от относителния мащаб на осите. Например токът, показан в милиампери, ще доведе до различен наклон от тока, представен в ампери за същия период от време. Това, от което се нуждая, е да изчисля дали тенденцията за определеното време представлява определено процентно увеличение.
За да обобщя, използвам тази 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 от крайните точки на линията на тренда?