Suppose you have a random process x(t), that is generated from time indexed densities N(m1(t),sigma1(t)) with probability alpha, and from density N(m2(t),sigma2(t)) with probability 1-alpha.
The process x(t) is directly unobservable but can be observed through y(t)=f(x(t))+noise
Given only the data y(t), we develop a methodology to estimate the parameters [m1(t),sigma1(t),m2(t),sigama2(t),alpha] that govern this specified process.
We illustrate the application of this methodology using the following process
x(t) = a*x(t-1)+Jump(t) where Jump(t)=N(m1,sigma1) with prob. alpha, and Jump(t)=0 with prob. 1-alpha
y(t) = c*exp(x(t)) + noise;
This model was developed because it can be use to generate Random Walks, AR(1) processess, Mean Reversion Processes, Stochastic Volatility, and Stochastics processes with spikes or Jumps. Our particular interest was in developing a model for estimating price spikes in electricity.
The paper attached 'An estimation Technique for Time Indexed Gaussian Mixture Model', shows how to develop the estimation procedure for this model and the same technique can be applied to any model of the form
The code attached illustrates the application of our methodology, if is extremely computionally intensive as it requires the use of particle smoothing. This is the extension of the first parameter estimation code, in which we assumed that both (y(t) and x(t)) were known. Now we only assume the data y(t) as given.
Run simulationexample.m to obtain 'figure 5' and dataexample.m to obtain 'figure 6'
Moeti Ncube (2022). Particle Smoothing Expectation Maximization Procedure (https://www.mathworks.com/matlabcentral/fileexchange/29723-particle-smoothing-expectation-maximization-procedure), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!