Я не пробовал STLDecompose
, но я взглянул на него и считаю, что в нем используется лессовый сглаживатель общего назначения. Это сложно сделать правильно, и, как правило, это неэффективно. См. Несуществующее репозиторий STL-Java.
pyloess
package предоставляет оболочку python для того же базового Fortran, который используется в исходной версии R. Вам определенно не нужно переходить через мост к R, чтобы получить ту же функциональность! Этот пакет активно не поддерживается, и у меня иногда возникали проблемы с его сборкой на некоторых платформах (например, вилка здесь). Но однажды построенный, он действительно работает и является самым быстрым из возможных. У меня возникло искушение изменить его, чтобы включить некоторые новые функции, но я просто не могу заставить себя изменить Fortran (который является предварительно обработанным RATFOR - очень ассемблерным языком, таким как Fortran, и я нигде не могу найти препроцессор RATFOR ).
Я написал собственную реализацию Java, stl-decomp-4j
, которую можно вызывать из Python с помощью _ 4_ пакет. Это началось как прямой перенос оригинального Фортрана, преобразованного в более современный стиль программирования. Затем я расширил его, чтобы разрешить квадратичную интерполяцию лёсса и поддерживать пост-декомпозиционное сглаживание сезонной составляющей, функции, которые описаны в исходной статье, но не были включены в реализацию Fortran / R. (Очевидно, они находятся в реализации S-plus
, но немногие из нас имеют к ней доступ.) Ключ к тому, чтобы сделать это эффективным, состоит в том, что сглаживание лёсса упрощается, когда точки находятся на одинаковом расстоянии, а сглаживание по точкам выполняется простым изменением веса, которые используются для интерполяции.
stl-decomp-4j
Примеры включают одну записную книжку Jupyter, демонстрирующую, как вызвать этот пакет из python. Мне, вероятно, следовало бы оформить это как пакет Python, но у меня не было времени. Очень охотно принимает запросы на вытягивание. ;-)
Мне бы хотелось увидеть прямой перенос этого подхода на python / numpy. Еще одна вещь в моем списке «если бы у меня было свободное время».
person
sfjac
schedule
01.08.2018