It is often said that bitcoin has a cycle like its price goes up and down at some intervals. We verify if that is really the case using fourier transform.

**Fourier transform** is a technique to decompose a signal into its *constituent frequencies* where frequency refers to the number of cycles in a given time period.

Can you identify cycles from the below?

First component in the data is $sin(2 \pi t)$ which has *period* of 1 which corresponds to *frequency* of 1 (= 1/1).

Second is $cos(2 \pi * {t \over 10})$ which has *period* of 10 which corresponds to *frequency* of 0.1 (= 1/10).

And the sum of those two, $sin(2 \pi t) + cos(2 \pi * {t \over 10})$, is the original data.

Fourier transform is a tool to identify such frequencies. In the below, you can see two peaks at 0.1 (from $sin(2 \pi t)$) and 1 (from $cos(2 \pi * {t \over 10})$).

To demonstrate model performance, we show the model's prediction results for the following day. The cross validation process identified the best transformation to make the timeseries stationary and the optimal hyperparameters. The Root Mean Squared Error on the next day's closing price was used to determine the best model.

The chart below illustrates: 1) the model's fit to the training data, and 2) its prediction for the training data periods. Note that model was trained to predict the right next day's closing price. Therefore, the prediction in the long term horizon is not expected to be accurate.

While fourier transform is useful in identifying cycles, air passengers data doesn't exhibit perfect cycles. Small changes in its regularity makes the generalization challenging.