# which algorithms can be used to extrapolate non-linear data?

I have a dataset, where target value changes in time in following way:

I need to predict target value for upcoming month, however I struggle to find a method to extrapolate the function that defines target. It is certainly not linear.

I tried to extrapolate the max/min peaks separately using linear regression, but not sure what to do with all other values.

• If it were that same kind of pattern but without the increasing amplitude, what would you do?
– Dave
Jan 25, 2020 at 15:24
• I would calculate the period of this pattern and predict the same values based on position inside the pattern. Jan 25, 2020 at 18:35
• I would say to do something similar but calculate some kind of stretching constant. The amplitude seems to be increasing linearly.
– Dave
Jan 26, 2020 at 1:51
• Thanks, that seems like a reasonable thing to do. Do you have any suggestions about the models that can handle such constant? Jan 26, 2020 at 20:14
• I would do something with how the high peaks increase and how the low peaks decrease and use those seemingly linear trends to say how the shape is getting stretched up and down. The stretching up is more pronounced than the stretching down.
– Dave
Jan 26, 2020 at 21:30

That function can be decomposed into composite components:

• General trend
• Repeated frequencies (looks like there are 3 major cycles)
• Random noise

A Fourier transform can decompose a function into its constituent frequencies.