FFTAutocorrelation

No algorithm description given

Takes a time series and returns the autocorrelation plot of that time series as an array. The size of the entry at i of the autocorrelation plot is a measure of how similar the signal is to a lagged version of itself. Note that the 0th entry of the output is the correlation of the signal with itself (no lag) and is always the largest value. Nonzero values at lat 1 are indicative of a linear trend. Beyond 1, positive values index i indicate a periodic signal with period i. Thus, the most interested entry is that with the second largest value - specifically, the index of this entry is the period of the strongest seasonal trend in the signal. It is recommended that the signal have linear trends removed (as by application of the /TimeSeries/LinearDetrend algorithm) before applying this algorithm, as linear trends make the results of autocorrelation more difficult to interpret. See http://en.wikipedia.org/wiki/Autocorrelation for more information. This is based on an implementation of the Fast Fourier Transform (in this the real Fourier Transform in the JTranforms library - https://sites.google.com/site/piotrwendykier/software/jtransforms ) Note that there are many different conventions used in signal processing, so be careful as the ones chosen here may not be the ones you need.

Tags
(no tags)

Cost Breakdown

0 cr
royalty per call
1 cr
usage per second
avg duration

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.


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/FFTAutocorrelation/0.1.0
View cURL Docs
algo auth
# Enter API Key: YOUR_API_KEY
algo run algo://TimeSeries/FFTAutocorrelation/0.1.0 -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/FFTAutocorrelation/0.1.0");
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/FFTAutocorrelation/0.1.0")
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/FFTAutocorrelation/0.1.0")
           .pipe(input)
           .then(function(output) {
             console.log(output);
           });
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
Algorithmia.client("YOUR_API_KEY")
           .algo("algo://TimeSeries/FFTAutocorrelation/0.1.0")
           .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/FFTAutocorrelation/0.1.0')
print algo.pipe(input)
View Python Docs
library(algorithmia)

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("TimeSeries/FFTAutocorrelation/0.1.0")
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/FFTAutocorrelation/0.1.0')
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/FFTAutocorrelation/0.1.0');
let response = algo.pipe(input);
View Rust Docs
Discussion
  • {{comment.username}}