Python: кубическая сплайн-регрессия для данных временных рядов

У меня есть данные, как показано ниже. Я хочу найти кривую КУБИЧЕСКОГО СПЛАЙНА, которая соответствует всему набору данных (ссылка для выборки данных). введите здесь описание изображения

Вещи, которые я пробовал до сих пор:

  1. Я прошел через функции кубического сплайна scipy, но все они могут давать результаты только за один раз, тогда как мне нужна одна кривая для всего временного диапазона.

  2. Я построил график, взяв среднее значение коэффициентов сплайна, сгенерированных scipy.interpolate.splrep, для 4 узлов, но результаты были плохими и не решали мою задачу.

Вещи, которые могут мне помочь:

  1. Идея о том, как оптимизировать количество и положение узлов для лучшей подгонки.

  2. Если нет, то если кто-то может помочь мне найти точные полиномиальные коэффициенты для кубических сплайнов для заданного количества узлов.

  3. Если кто-то может предложить полный способ решения этой проблемы.


person Legolas    schedule 03.06.2019    source источник
comment
Мое программное обеспечение регрессии не может использовать этот тип данных изображения, не могли бы вы опубликовать сами данные?   -  person James Phillips    schedule 03.06.2019
comment
@JamesPhillips Я добавил ссылку на образец набора данных (формат csv) в своем редактировании.   -  person Legolas    schedule 03.06.2019


Ответы (1)


Я сделал 3D-диаграмму рассеяния данных, преобразовав временные метки в «истекшее время в секундах» из первой временной метки, изображение ниже. Мне кажется, что данные имеют своего рода трехмерный эквивалент выброса, показанного здесь как целая строка данных, которая значительно ниже большинства других данных. Это затруднит создание любой подгонки 3D-поверхности.

диаграмма рассеяния

person James Phillips    schedule 03.06.2019
comment
Спасибо за старания. Можно ли будет подогнать данные, если удалить точки-выбросы или предоставить новые данные без шума с помощью вашего программного обеспечения для регрессии? - person Legolas; 04.06.2019
comment
@Абхиджит Да. Я использовал свой открытый исходный код кривой и веб-сайт подгонки поверхности zunzun.com, чтобы сделать трехмерную диаграмму рассеяния, а также буду использовать ее для подгонки обновленных данных к поверхности. Вы можете попробовать его напрямую, чтобы увидеть, делает ли он то, что вы хотите. - person James Phillips; 04.06.2019