-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNEWS
More file actions
71 lines (57 loc) · 6.48 KB
/
Copy pathNEWS
File metadata and controls
71 lines (57 loc) · 6.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
complex v1.0.3 (Release data: 2026-09-25)
==============
Changes:
* carima() - pure complex ARIMA (no regressors), a wrapper of clm() with an interface similar to smooth::msarima(): orders as c(p,d,q) or list(ar,i,ma), constant (FALSE by default, TRUE or a value), arma (fixed parameters), model (reuse of an estimated model), h, holdout (with accuracy), silent. Non-seasonal only. forecast() method for carima.
* auto.carima() - automatic selection of the orders of complex ARIMA. Following auto.ssarima(), AR and MA orders are selected for each order of differencing via an IC-driven neighbourhood search (Hyndman & Khandakar, 2008), and the constant is tested at the end for the best model of each d. search="full" fits all the combinations. The information criteria are calculated on the common sample without the first ar+i+ma observations, so that models with different d are comparable. Each model is estimated from the default starting values and from the closest estimated model.
* auto.carima() starts every model from the Hannan-Rissanen estimates (via clm(fast=TRUE)) and from the closest estimated model. On wind data this reached a better optimum for the selected model (AICc lower by 6.8) with fewer fits. auto.carima(fast=TRUE) screens all the models via Hannan-Rissanen and estimates via the likelihood only the best one for each d, constant and MA order, before the neighbourhood search. It is about three times faster, but approximate.
* clm() now penalises non-stationary AR and non-invertible MA parameters in the loss (all roots of the complex AR/MA polynomials should lie outside the unit circle); the loss becomes 1E+100 divided by the smallest modulus of the roots.
* clm(fast=TRUE) for pure cARIMA (no explanatory variables, the intercept is allowed) now starts the optimiser from the Hannan-Rissanen estimates of AR and MA parameters (and, for dcgnorm, from the shape maximising the likelihood of their residuals). On wind data this reached much higher likelihoods than the default starting values (e.g. 489.8 vs 412.2 for cARIMA(1,1,2)).
* dcgnorm() and rcgnorm() - density and random generation for the complex generalised normal distribution (complex generalised Gaussian), with scale, pseudo-scale and shape.
* clm() has a new argument distribution. distribution="dcgnorm" uses the complex generalised normal likelihood, with the shape estimated (or provided via shape=..., with the starting value as the last element of B). The scale and the pseudo-scale are concentrated out: the circularity coefficient comes from the moments of the residuals and the scale is the ML estimate given it (approximate ML when shape is not 1). Standard errors are for the parameters given the shape.
* AIC() and BIC() of clm() now count all real parameters of the model (both parts of the complex variable), as done in multivariate models. nparam() and the degrees of freedom are still per series. Before, the penalty was half of what it should be. Information criteria values change, and so can the orders selected by them.
* AICc() and BICc() methods for clm() use the multivariate small-sample correction (Bedrick & Tsai, 1994) with two series, as in the legion package. The correction assumes unrestricted multivariate regression, so it is approximate for complex models.
* Added tests (testthat).
Bugfixes:
* clm() without intercept (e.g. y~-1) and with MA terms flipped the sign of the MA parameters (the likelihood was correct, the reported parameters and forecasts were not).
* predict.clm() for cARIMA without intercept used the first parameter as an intercept (1:0 indexing).
* clm() without intercept and with AR terms failed in the check of variability of differenced data.
* clm() with d=0, no intercept and no AR (e.g. cARIMA(0,0,q) with y~-1) selected the first column for the starting values (1:0 indexing) and failed.
* clm() with loss="CLS" and MA terms failed with an unclear error from the optimiser. It now stops with an explanation (the CLS loss is complex-valued and cannot be minimised numerically).
* clm() with nothing to estimate (e.g. cARIMA(0,1,0) without intercept) failed in the optimiser.
* The documentation of the ellipsis in clm() was hidden by the one of sigma.clm().
complex v1.0.2 (Release data: 2026-02-03)
==============
* Trying to return the package back to life.
complex v1.0.1 (Release data: 2024-10-07)
==============
Bugfixes:
* Corrected the email address of the author.
complex v1.0.0 (Release data: 2024-04-09)
==============
Changes:
* Added pseudo- (or "direct") variance, covariance and correlation, cvar, ccov and ccor functions respectively.
* Implemented direct (pseudo) ACF via cacf() and partial CACF via pcacf().
* clm() - complex linear model for complex regression models.
* complex2mat() and complex2vec() functions for switching between complex variables and matrices/vectors.
* mat2complex() and vec2complex() functions to reverse what the previous two do.
* vcov(), confint() and summary() for clm class.
* covar() function to produce covariance matrix from a random complex variable.
* predict.clm() with proper prediction and confidence intervals and plot.predict.clm().
* Likelihood estimation in clm().
* direct/conjugate moments in cvar() et al.
* cplot() to produce scatterplots of complex variables.
* cplot() with which=2, which now produces scatterplot for variables based on MDS.
* ccor() now also does MDS if needed.
* cacf() with MDS and Pearson's correlation.
* Complex Normal distribution as a wrapper of a bivariate Normal one, using mvtnorm package.
* sigma() now returns an object based on the provided type. This includes direct, conjugate and covariance matrix.
* vcov() now returns direct or conjugate covariance matrices, or the proper covariance matrix (based on covariance matrix of the error term).
* cacf() and pacf() now also return critical values of correlations (non-rejection region), the width of which is regulated via level parameter. These are based on the Student's t distribution.
* clm() now supports log() etc in the formula. Interraction effects are still wrong.
* orders in clm(), allowing to specify ARIMA(p,d,q) orders. Curently only ARIMA(p,d,0) is supported.
* cARIMA(p,d,q) is now available.
* cscale() and cdescale() functions to scale real and imaginary parts of a complex variable.
* clog() and cexp() functions to take logarithms and power of separate real and imaginary parts of a complex variable and then merge the result in another complex variable.
complex v0.0.1 (Release data: 2019-07-01)
==============
This is the initial release of the package. At the moment, we only have CAR function.