Remove Seasonality

No algorithm description given

Removes seasonal components from a time series. It uses autocorrelation to identify the periods of dominant seasonal components, then subtracts the seasonal average from each point to yield a series of the seasonal residuals. Because of the autocorrelation step it is recommended that the series be de-trended first using "/TimeSeries/LinearDetrend" as a linear trend may result in undesirable autocorrelation artifacts. For instance, it has been observed in test cases that removing seasonality from series with a noticeable linear trend and non-zero mean yields a series in which almost all entries are zero, except for points at the beginning and end. There are two options, "givenPeriod" and "topNPeriods". Calling [[series],k,"givenPeriod"] subtracts from each point it's period length k seasonal average, removing a seasonal trend with period k. [[series],k,"topNPeriods"] removes the top k strongest seasonal trends as identified by autocorrelation. Calling the algorithm with just the series means the default option, e.g. removing only the strongest seasonal pattern, will be used. Note that removing a period of length 1 is a linear detrending that subtracts out the mean value, resulting in a series with slope and mean 0. When removing the top N trends, we ignore periods of length 1, as doing so can cause unwanted artifacts.

Tags
(no tags)

Cost Breakdown

0 cr
royalty per call
1 cr
usage per second
avg duration
This algorithm has permission to call other algorithms which may incur separate royalty and usage costs.

Cost Calculator

API call duration (sec)
×
API calls
=
Estimated cost
per calls
for large volume discounts
For additional details on how pricing works, see Algorithmia pricing.

Internet access

This algorithm has Internet access. This is necessary for algorithms that rely on external services, however it also implies that this algorithm is able to send your input data outside of the Algorithmia platform.


Calls other algorithms

This algorithm has permission to call other algorithms. This allows an algorithm to compose sophisticated functionality using other algorithms as building blocks, however it also carries the potential of incurring additional royalty and usage costs from any algorithm that it calls.


To understand more about how algorithm permissions work, see the permissions documentation.

1. Type your input

2. See the result

Running algorithm...

3. Use this algorithm

curl -X POST -d '{{input | formatInput:"curl"}}' -H 'Content-Type: application/json' -H 'Authorization: Simple YOUR_API_KEY' https://api.algorithmia.com/v1/algo/TimeSeries/RemoveSeasonality/0.1.1
View cURL Docs
algo auth
# Enter API Key: YOUR_API_KEY
algo run algo://TimeSeries/RemoveSeasonality/0.1.1 -d '{{input | formatInput:"cli"}}'
View CLI Docs
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{{input | formatInput:"java"}}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://TimeSeries/RemoveSeasonality/0.1.1");
AlgoResponse result = algo.pipeJson(input);
System.out.println(result.asJsonString());
View Java Docs
import com.algorithmia._
import com.algorithmia.algo._

val input = {{input | formatInput:"scala"}}
val client = Algorithmia.client("YOUR_API_KEY")
val algo = client.algo("algo://TimeSeries/RemoveSeasonality/0.1.1")
val result = algo.pipeJson(input)
System.out.println(result.asJsonString)
View Scala Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://TimeSeries/RemoveSeasonality/0.1.1")
           .pipe(input)
           .then(function(output) {
             console.log(output);
           });
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://TimeSeries/RemoveSeasonality/0.1.1")
           .pipe(input)
           .then(function(response) {
             console.log(response.get());
           });
View NodeJS Docs
import Algorithmia

input = {{input | formatInput:"python"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('TimeSeries/RemoveSeasonality/0.1.1')
print algo.pipe(input)
View Python Docs
library(algorithmia)

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("TimeSeries/RemoveSeasonality/0.1.1")
result <- algo$pipe(input)$result
print(result)
View R Docs
require 'algorithmia'

input = {{input | formatInput:"ruby"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('TimeSeries/RemoveSeasonality/0.1.1')
puts algo.pipe(input).result
View Ruby Docs
use algorithmia::*;

let input = {{input | formatInput:"rust"}};
let client = Algorithmia::client("YOUR_API_KEY");
let algo = client.algo('TimeSeries/RemoveSeasonality/0.1.1');
let response = algo.pipe(input);
View Rust Docs
Discussion
  • {{comment.username}}