| WhittleEst {longmemo} | R Documentation |
Whittle Estimator for Fractional Gaussian Noise / Fractional ARIMA
Description
Computes Whittle's approximate MLE for fractional Gaussian noise or fractional ARIMA (=: fARIMA) models, according to Beran's prescript.
Relies on minmizing Qeta() (= \tilde{Q}(\eta),
which itself is based on the “true” spectrum of the
corresponding process; for the spectrum, either
specFGN or specARIMA is used.
Usage
WhittleEst(x,
periodogr.x = per(if(scale) x/sd(x) else x)[2:((n+1) %/% 2)],
n = length(x), scale = FALSE,
model = c("fGn", "fARIMA"),
p, q,
start = list(H= 0.5, AR= numeric(), MA=numeric()),
verbose = getOption("verbose"))
## S3 method for class 'WhittleEst'
print(x, digits = getOption("digits"), ...)
Arguments
x |
numeric vector representing a time series. Maybe omitted if
|
periodogr.x |
the (raw) periodogram of |
n |
length of the time series, |
scale |
logical indicating if |
model |
numeric vector representing a time series. |
p, q |
optional integers specifying the AR and MA orders of the
fARIMA model, i.e., only applicable when |
start |
list of starting values; currently necessary for |
verbose |
logical indicating if iteration output should be printed. |
digits, ... |
optional arguments for |
Value
An object of class WhittleEst which is basically a list with components
call |
the function |
model |
= input |
n |
time series length |
p, q |
for "fARIMA": order of AR and MA parts, respectively. |
coefficients |
numeric 4-column matrix of coefficients
with estimate of the full parameter vector |
theta1 |
the scale parameter |
vcov |
the variance-covariance matrix for |
periodogr.x |
= input (with default). |
spec |
the spectral estimate |
There is a print method, and coef,
confint or vcov methods work as well for
objects of class "WhittleEst".
Author(s)
Martin Maechler, based on Beran's “main program” in Beran(1994).
References
Beran, Jan (1994). Statistics for Long-Memory Processes; Chapman & Hall. (Section 6.1, p.116–119; 12.1.3, p.223 ff)
See Also
Qeta is the function minimized by these Whittle
estimators.
FEXPest for an alternative model with Hurst parameter,
also estimated by a “Whittle” approximate MLE, i.e., a
Whittle's estimator in the more general sense.
The plot method, plot.WhittleEst.
Examples
data(NileMin)
(f.Gn.N <- WhittleEst(NileMin)) # H = 0.837
(f.A00.N <- WhittleEst(NileMin, model = "fARIMA", p=0, q=0)) # H = 0.899
confint(f.Gn.N)
confint(f.A00.N)
data(videoVBR)
(f.GN <- WhittleEst(videoVBR))
## similar {but faster !}:
(f.am00 <- WhittleEst(videoVBR, model = "fARIMA", p=0, q=0))
rbind(f.am00$coef,
f.GN $coef)# really similar
f.am11 <- WhittleEst(videoVBR, model = "fARIMA",
start= list(H= .5, AR = .5, MA= .5))
f.am11
vcov(f.am11)
op <- if(require("sfsmisc"))
mult.fig(3, main = "Whittle Estimators for videoVBR data")$old.par else
par(mar = c(3,1), mgp = c(1.5, 0.6, 0), mar = c(4,4,2,1)+.1)
plot(f.GN)
plot(f.am00)
plot(f.am11)
et <- as.list(coef(f.am11))
et$AR <- c(et$AR, 0, 0) # two more AR coefficients ..
f.am31 <- WhittleEst(videoVBR, model = "fARIMA", start = et)
## ... warning non nonconvergence, but "kind of okay":
lines(f.am31, col = "red3") ## drawing on top of ARMA(1,1) above - *small* diff
f.am31 # not all three are "significant"
round(cov2cor(vcov(f.am31)), 3) # and they are highly correlated
et <- as.list(coef(f.am31))
et$AR <- unname(unlist(et[c("AR1", "AR2")]))
f.am21 <- WhittleEst(videoVBR, model = "fARIMA",
start = c(et[c("H","AR", "MA")]))
f.am21
lines(f.am21, col = adjustcolor("gold", .4), lwd=4)
par(op)## (reset graphic layout)
##--> ?plot.WhittleEst for an example using 'periodogr.x'