Comments (9)
Don't rewrite the existing function, but see if an alternative can be developed based on that.
from mes.
This involves a different state space structure: the function should look at the index of current observation and use the same index from the past in order to get the previous state. This will allow dealing with non-constant seasonalities.
from mes.
This is relevant to m=24 because of the daylight saving and m=365 because of the leap years.
The question is how to detect the change of indices in the data. Take from the y (e.g. zoo or POSIXct)? Or accept in lags somehow?
Potentially, this means that internally, instead of the vector of lags, we need to have a matrix, something like:
1 1 24
1 1 24
1 1 23
1 1 23
...
1 1 24
from mes.
What to do:
- Move the lagrows from C++ code to R,
- Make lagrows a matrix with lags, update C++ to deal with matrix,
- Amend the lagrows in the R code in order to reflect the changes in m for DST / Leap years.
from mes.
Is it possible not to have a matrix for lagrows? Maybe have two variables: vector of lags and the matrix of lags. If the latter is not provided, then use the first one? This way we will save some space for cases, when the matrix is not needed.
from mes.
Work in progress. Things to do:
- Introduce lagsCorrected matrix in the adamFitter and adam();
- Use the matrix in the adamForecaster() in C++
- Introduce it in adamSimulator() in C++
- Introduce lagsCorrected matrix in the forecast() method;
- The same stuff in adamErrorer(), CF() and rmultistep();
from mes.
An alternative approach - abandon lags and use the seasonal profiles:
- Create a matrix with indices (e.g. when Monday happens in the data or when 22.00 is located);
- Use references to previous indices instead of lags;
In order to do this, the following things need to be updated in the code:
- adamFitter in C++;
- adamForecaster in C++;
- adamErrorer in C++;
- adamSimulator in C++;
- adamGeneral file with the checks;
- adam(), in the initialisation part.
from mes.
- Recent and observed profiles are now introduced in a separate branch.
- adamFitter is done.
Things to add / change:
- Use recentProfileTable instead of matVt, when producing forecasts;
- Change obsStates to just obsInSample + maxLag, trim matVt for backcasting, as this is no longer needed;
- Do the other elements from the previous comment.
from mes.
All done for the basic time series without the time stamps.
from mes.
Related Issues (20)
- Let persistence accept lists HOT 1
- User defined loss functions
- Develop a method to smooth states of the model
- Advanced loss functions to implement HOT 3
- De-bias smoothing parameters in occurrence models
- ETS(NNN)
- Create vignette with basic features of ADAM HOT 1
- Create testthat scripts for ADAM
- Make sure that all combinations of models work
- Deal with parametric prediction interval HOT 1
- Speed up adam with ARIMA HOT 2
- Rewrite regression part of ADAM in the input
- Move adam() to smooth
- ARIMA and ARIMA orders selection on small samples HOT 1
- Outlier detection mechanism HOT 1
- Use Rectified Normal distribution for the summary HOT 2
- Correct distributions in ADAM HOT 1
- Fix the stability condition HOT 1
- xreg for factors HOT 5
- xreg with predicted values
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mes.