# Multivariate change point detection with strongly correlated (nonlinear) variables

I have a two-variable time series. There is a very strong nonlinear correlation between the two variables, so they can be thought of as:

variable_1 = $$X$$ (random variable)

variable_2 = $$f(X) + N(\mu,\sigma)$$

At some point in time there is a mean shift $$\Delta\mu$$. A correlation plot of variable_1 vs variable_2 looks something like this:

This simplified representation highlights the main feature: the amplitude of the correlation function is larger than $$\Delta\mu$$. In the real data, the amplitude is about 10x greater than $$\Delta\mu$$. The actual correlation is not a sine wave, the actual $$X$$ is not uniformly distributed, and in reality there may be zero up to around 4 or 5 change points.

This shift is easy to see on a correlation plot, but difficult to detect in the time series with univariate change point methods, because the variation in the univariate time series is driven by $$f(X)$$, which obscures the mean shift.

The approach I have taken is to first model $$f(X)$$ with a regression model, then run a univariate change point method on the residuals. While the change point step works well, the hard part is selecting the time period with which to train the regression model. Too short, and the $$X$$ samples may not adequately define the model. Too long, and a change point may be included in the training data.

Is there an approach that avoids explicit modelling of $$f(X)$$? If not, is there any way to define the training period in an automated way?

I have hundreds of these time series and cannot manually examine them all. The function $$f(X)$$ changes between datasets, as do the change points.