Skip to content

Make performance comparable to R / Fortran #8

@brandtg

Description

@brandtg

On a timeseries of 89345 points with seasonality 8736 (hourly over ~10 yr), it takes 159.25s to compute STL, whereas in R it takes 1.37s.

This may be due to a number of things:

  • Bandwidth used in LoessInterpolator vs. fortran loess, which introduces O(N * bandwidth) factor
  • Loess robustness iterations (default: 0, vs fortran: ???)
  • Inner loop passes (default: 10 vs. R's default: 2 w/ robust = FALSE)
  • LoessInterpolator java vs. fortran implementation details

Given that we have configured 10 vs. 2 inner loop passes to achieve good result, and are using a relatively high bandwidth (~0.60 to 0.70), this is likely the cause for the orders of magnitude difference.

We need to figure out how to choose the correct bandwidth at each invocation of Loess, as suggested by the paper. After this is identified, we can analyze differences between Java / fortran implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions