Как создать вычисляемый столбец первой производной в Spotfire

Я пытаюсь использовать вычисляемые столбцы в Spotfire для вычисления первой производной (x, y) для отдельных идентификаторов временных рядов (Z)

Мои данные выглядят так,

x,y,z
0,0,A
1,1,A
2,1.5,A
3,1,A
4,1,A
5,.9,A
6,.5,A
7,.1,A
8,1.1,A
9,11,A
1,1,B
2,1.5,B
3,1,B
4,1,B
5,.9,B
6,.5,B
7,.1,B
8,1.1,B
9,11,B
10,12,B

Я использовал это:

([y] - Min([y]) OVER (Previous([x])))
/ 
([x] - Min([x]) OVER (Previous([x]))) 

но (1) это не кажется правильным; и (2) как я могу делать это НАД каждым [Z]


person NightLearner    schedule 27.03.2019    source источник
comment
Вы принимаете первую производную как (y2 - y1) / (x2 - x1), где x1 и y1 - это строки перед x2 и y2? Кроме того, какую версию Spotfire вы используете? (в новых версиях может быть встроенная функция, которая будет здесь полезна)   -  person Andrew Pruet    schedule 28.03.2019
comment
было бы очень полезно, если бы вы также включили столбец ожидаемых результатов. Я не уверен, что полностью понимаю ваш подход, но это подтвердило бы мое понимание :)   -  person niko    schedule 28.03.2019
comment
@AndrewPruet, да, именно это я и делаю, я определенно вижу небольшую ошибку, которую совершал. Я использую 7.8, я ждал, чтобы получить Spotfire X из-за нескольких инструментов, встроенных в версию 7.   -  person NightLearner    schedule 01.04.2019
comment
@niko, хорошо, позволь мне кое-что добавить!   -  person NightLearner    schedule 01.04.2019


Ответы (1)


Это должно работать:

([y] - min([y]) Более (Пересечь([z],Предыдущий([x])))) / ([x] - min([x]) Более (Пересечь([z],Предыдущий( [Икс]))))

однако первая точка будет пустой для каждого z, и она может быть не очень стабильной, если ваши данные имеют много колебаний. Для более сложных вариантов вы можете изучить сплайны (см. ряд ответов SO) и использовать функцию TERR (не функцию данных, функции, начинающиеся с TERR_, если они вам доступны) для вычисляемого столбца.

Гея

person Gaia Paolini    schedule 03.04.2019