http://www.mathworks.com/matlabcentral/newsreader/view_thread/334459
MATLAB Central Newsreader  time series neural network prediction
Feed for thread: time series neural network prediction
enus
©19942015 by MathWorks, Inc.
webmaster@mathworks.com
MATLAB Central Newsreader
http://blogs.law.harvard.edu/tech/rss
60
MathWorks
http://www.mathworks.com/images/membrane_icon.gif

Wed, 26 Feb 2014 23:21:09 +0000
time series neural network prediction
http://www.mathworks.com/matlabcentral/newsreader/view_thread/334459#918821
Gabriele
Hi,<br>
<br>
have a set of N time series each being the 'condition indicator' (derived from vibration signals) of a component (bearing) until failure.<br>
All components are assumed identical, but, nevertheless, they fail at different times (due to the probabilistic nature of the failure process).<br>
<br>
The idea is to develop a (nn) prognostic model based on this historical data that would be able, given a new time series (from a bearing in operation that has not yet failed), to predict future values of the condition indicator of the bearing.<br>
<br>
The condition indicator time series is bounded between 0 and 1. It goes to 0 as time goes to Inf.<br>
<br>
I have encountered the following problems when starting to build up my nn model:<br>
<br>
1. EXOGENOUS INPUT<br>
I have Matlab 2009 — > I don’t have exogenous inputs, but the available nn for this kind of problems in the 2009 release of the software is only the narx network (which requires the external input). I think I can get around this problem using the time series of the condition indicator of operating bearing itself and treat it as an exogenous input. I should be able to do this also because the narx function is y(t) = f(y(t1)…,u(t1)...), thus doesn’t require the current input value to estimate the output. However, please advice me on better ways.<br>
<br>
2. TRAINING SET COMPOSED OF N TIME SERIES<br>
I have no clue of how to train the network on multiple time series (I cannot treat them as multiinput since when the model is deployed only one time series will be available (from the operating bearing))<br>
<br>
3. MULTISTEP AHEAD PREDICTION<br>
3.a My approach to this would be to create a for loop and use the estimated values of the output as inputs for the next iteration. I have seen your post with that smarter ways to do so without the four loop, but is this gives the same results, then I am happy also with the for loop. Please advice me also on this.<br>
3.b Moreover, I would like to ask you if there is a smarter way to approach this multi step prediction. An idea could be to use a feedworward network with multiple outputs (where each output represent an additional time step prediction) embedded in a for loop.<br>
3.c Point 3.b raise another question: are a narx network and a feedforward network embedded in a for loop the same (in the sense that they will result the same after the training or at least return comparable results)? <br>
<br>
Answering to mail question would be so very kind of you and much appreciated. Providing me with the code for doing so given the following inputs, would be just fantastic!<br>
<br>
Time series for training<br>
<br>
ci1 = 1x800 double<br>
ci2 = 1x2200 double<br>
ci3 = 1x1400 double<br>
ci4 = 1x3000 double<br>
ci5 = 1x750 double<br>
ci6 = 1x2100 double<br>
ci7 = 1x2800 double<br>
ci8 = 1x1700 double<br>
<br>
Time series for prediction<br>
<br>
ci_operating_component = 1x700 double<br>
<br>
Problem: predict ci_operating_component(701:10000)<br>
<br>
Thank you in advance,<br>
Gabriele

Wed, 05 Mar 2014 03:17:08 +0000
Re: time series neural network prediction
http://www.mathworks.com/matlabcentral/newsreader/view_thread/334459#919086
Greg Heath
> "Gabriele " <gabman82@gmail.comwrote in message ...<br>
> <lelst5$ikq$1@newscl01ah.mathworks.com>.<br>
> Hi,<br>
> <br>
> I have a set of N time series each being the 'condition indicator' (derived <br>
> from vibration signals) of a component (bearing) until failure.<br>
> All components are assumed identical, but, nevertheless, they fail at <br>
> different times (due to the probabilistic nature of the failure process).<br>
> <br>
> The idea is to develop a (nn) prognostic model based on this historical <br>
> data that would be able, given a new time series (from a bearing in <br>
> operation that has not yet failed), to predict future values of the condition <br>
> indicator of the bearing.<br>
<br>
How are the condition indicator values obtained from the vibrations?<br>
A failing bearing indicator should show signs of a different Fourier spectrum.<br>
Are there visually identifiable regions where the indicators are predominantly <br>
monotonic vs constant amplitude or decaying oscillations? <br>
Typically, what different frequency ranges in each region?<br>
Is there any visual difference in plot characteristics just before failure and <br>
the remainder of the signal?<br>
<br>
> The condition indicator time series is bounded between 0 and 1. It goes <br>
> to 0 as time goes to Inf.<br>
<br>
What does 0 mean? What does 1 mean?<br>
Why do they go to 0 as t> inf? Are they 1 at t=0?<br>
What are typical values at failure?<br>
What criterion do you use for predicting a failure?<br>
What is the minimum amount of time that you want before predicting an <br>
iminent failure?<br>
<br>
What are the similarites in subsets of the last M (M<=750) timesteps of the <br>
8 examples below?<br>
means? variances? correlation coefficients? Significant (95% confidence) <br>
autocorrelation lags?, Characteristic frequency intervals?<br>
<br>
> I have encountered the following problems when starting to build up my <br>
> nn model:<br>
> <br>
> 1. EXOGENOUS INPUT<br>
> I have Matlab 2009 — I don’t have exogenous inputs, but the available <br>
> nn for this kind of problems in the 2009 release of the software is only <br>
> the narx network (which requires the external input). I think I can get <br>
> around this problem using the time series of the condition indicator of <br>
> operating bearing itself and treat it as an exogenous input. I should be <br>
> able to do this also because the narx function is y(t) = f(y(t1)…,u(t1)<br>
> ...), thus doesn’t require the current input value to estimate the output.<br>
<br>
I don't agree. The the current narx function requires BOTH an input AND <br>
a feedback delay from the output. I assume this is also true for the 2006 <br>
version. <br>
<br>
I think your best bet is the timedelaynet or it's predecessor newfftd.<br>
<br>
> However, please advice me on better ways.<br>
<br>
Instead of a timeseries for predicting future values have you considered <br>
a classifier with target values {0,1} and a failure criterion output <= a <br>
specified threshold? In this scenario, you would have to find a window <br>
length that only predicts a delayed failure near the end of the signal.<br>
<br>
You could also consider spectral characteristics using windowed ffts.<br>
<br>
> 2. TRAINING SET COMPOSED OF N TIME SERIES<br>
> I have no clue of how to train the network on multiple time series (I <br>
> cannot treat them as multiinput since when the model is deployed <br>
> only one time series will be available (from the operating bearing))<br>
<br>
Train in a loop where the training of series i+1 begins with the weights <br>
obtained from series i (Do not use the function configure!)<br>
<br>
> 3. MULTISTEP AHEAD PREDICTION<br>
> 3.a My approach to this would be to create a for loop and use the <br>
> estimated values of the output as inputs for the next iteration. I have <br>
> seen your post with that smarter ways to do so without the four loop, <br>
> but is this gives the same results, then I am happy also with the for <br>
> loop. <br>
> Please advice me also on this.<br>
<br>
Closeloop predictions are a nice idea. However, most of the examples <br>
I have seen eventually fall apart from accumulated prediction errors.<br>
<br>
I would stick with timedelaynet (unless, of course, it proves inadequate)<br>
<br>
> 3.b Moreover, I would like to ask you if there is a smarter way to <br>
> approach this multi step prediction. An idea could be to use a <br>
> feedworward network with multiple outputs (where each output <br>
> represent an additional time step prediction) embedded in a for loop.<br>
<br>
Again, to avoid accumulated errors, it may be best to just predict a certain <br>
time interval ahead without feedback. You will need to look at the <br>
autocorrelation significant lags to get a feel for how long you can predict<br>
ahead without feedback.<br>
<br>
> 3.c Point 3.b raise another question: are a narx network and a <br>
> feedforward network embedded in a for loop the same (in the sense <br>
> that they will result the same after the training or at least return <br>
> comparable results)? <br>
<br>
Not sure why you are fixated on a narxnet. You only have one signal. <br>
Therefore a timedelaynet should suffice. <br>
<br>
However, to answer your question: Yes, you can construct a loop <br>
to allow newff to simulate certain timeseries results.<br>
<br>
> Answering to mail question would be so very kind of you and much <br>
> appreciated. Providing me with the code for doing so given the <br>
> following inputs, would be just fantastic!<br>
<br>
I give you permisson, without conditions, to use any posted codes of <br>
mine that you find helpful (Well, I guess you could mention my name)..<br>
<br>
> Time series for training<br>
> <br>
> ci1 = 1x800 double<br>
> ci2 = 1x2200 double<br>
> ci3 = 1x1400 double<br>
> ci4 = 1x3000 double<br>
> ci5 = 1x750 double<br>
> ci6 = 1x2100 double<br>
> ci7 = 1x2800 double<br>
> ci8 = 1x1700 double<br>
> <br>
> Time series for prediction<br>
> <br>
> ci_operating_component = 1x700 double<br>
> <br>
> Problem: predict ci_operating_component(701:10000)<br>
> Thank you in advance,<br>
> Gabriele<br>
<br>
You can also treat it as<br>
<br>
x(td1:t1) predicting x(t:t+d2) <br>
<br>
Impossible to say more without seeing dat, code, error messages, etc<br>
<br>
Hope this helps. <br>
<br>
Greg<br>
<br>
P.S. Sorry for the unavoidably delayed reply.