config-i1 / mes Goto Github PK
View Code? Open in Web Editor NEWMixed Exponential Smoothing
Mixed Exponential Smoothing
Develop a mechanism of order selection inside the function. Should be something similar to auto.msarima... but maybe smarter, considering several special cases?
Several steps to do:
This should be done in mes() and omes() in a similar way to how it is currently done in oes() from smooth - calling the function from itself.
These will partially depend on simulator functions and should be applicable for mes() and omes()
This involves:
Potentially:
5. Updating es(), ssarima(), msarima(), gum(), sma(), so that they use the new C++ code instead of the old one.
6. Removal of the old code.
Introduce formula, which defines what variables to use, when it comes to xreg
Introduce the mechanism, preferably in auto.adam() function.
Use the idea of Nikos in order to create different pools and combine.
This should either be explicit o provided in ellipsis.
Probably something like ARMA=list(AR=...,MA=...)
Fix the stability condition, making independent eigenvalues for each unique lag, based on this: https://openforecast.org/adam/ADAMETSPureAdditive.html#stability-and-forecastability-conditions
This implies fixing:
The analytical counterparts of MSEh, TMSE, GTMSE and GPL are still not implemented. This can be useful for high frequency data / small samples.
This should lead to smoother seasonals and smoother level / trend. This should be a separate method, applied by a user, returning smooth ADAM (reconstructed model).
In order to see the issue run the following:
test <- adam(forecast::taylor,"MNM",lags=c(48,336),h=336,holdout=T,initial="b",silent=F)
This means likelihood calculation + prediction intervals for:
Make it possible to specify loss=f(x) in the function
Normalise all the parameter before the nloptr(), then denormalise them in the loop. See if this improves the speed of calculation and accuracy.
There should be a mechanism of defining, which variables should be predicted and which should be used as is. A method preparing explanatory variables is needed.
When the variable is marked for prediction this is what should happen inside the function:
Make mes work well with different classes and return similar ones. This applies to:
If a user provides a factor, then expand it and make one and the same smoothing parameter for all levels of it. This way, if we provide factor for week of year, we would have a mechanism similar to the proper seasonal component.
This is relevant to forecast.adam() and predict.adam() functions. Make them return matrices in $lower and $upper if several levels are provided.
Each separate should work and their combos should do as well.
Use Truncated Normal distribution for the summary of smoothing parameters. Things to do:
This means the implementation similar to Hyndman et al. (2008)
Keep in mind the future lags variable and flexible structure of mes()
Implement the parameter loss with all the multiple steps ahead losses for mes().
The distribution parameter will be potentially detachable from the losses.
Develop a mechanism that would allow constructing at least something if the sample is small. Make adam() and auto.adam() robust.
Create the code for the variables selection in mes, xregDo="select"
This should test:
This should outline:
This should involve the new type of seasonals based on dummies and a vector of dates for the values of y (date parameter) in mes() and omes()
Possible solutions:
This should be done for mes() for the data, when there are NAs. omes() should treat those cases as ot=0.
The missing values will need to be interpolated using the model itself.
This implies:
Add an option of specifying AR and MA in the model, making model even more complicated...
This involves:
Develop function for the data generation from the basic ETS models with different distributions.
This is needed for the prediction interval and mean of mes().
This should be done similar to the one from es(), but maybe in a vectorised form.
This should allow specifying several frequencies.
Do the integer frequencies first.
An example. When lags=c(7,365), instead of having two components with respective lags, it should be done as one component with lags=7 and another with lags = 365/7...
In the ideal world a model should have "monthly", "weekly" and "daily" components for this situation. Not clear, how to get there from lags=c(7,365)...
Update oes(), so that it has:
Make this in the classic alm() style, and xreg should be optional. Rewrite the respective checks in parametersChecker, but don't touch the main part of the code.
This is supposed to switch off the ETS and leave ARIMAX components only.
This relates to: lnorm, llaplace, ls and lgnorm and the assumptions for the mean (mu=-sigma^2 / 2). Things that need fixing:
This can be either named or none, accepting something like:
list(level=0.1,trend=0.2,seasonal=c(0.3,0.1),xreg=c(0.1,0.1,0.1))
If some of the options are not provided, then they are estimated.
If a vector is provided, use values in the mentioned order.
This comes to having higher than needed alphas / beta / gamma in ETS(A,Z,Z) and ETS(M,Z,Z) for different occurrence models.
The stuff that needs to be done:
Do this similar to es(), when parameters are set to specific values.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.