Qeta()
(\(= \tilde{Q}(\eta)\) of Beran(1994), p.117)
is up to scaling the negative log likelihood function of the specified
model, i.e., fractional Gaussian noise or fractional ARIMA.
Qeta(eta, model = c("fGn","fARIMA"), n, yper, pq.ARIMA, give.B.only = FALSE)
parameter vector = (H, phi[1:p], psi[1:q]).
character specifying the kind model class.
data length
numeric vector of length (n-1)%/% 2
, the
periodogram of the (scaled) data, see per
.
integer, = c(p,q) specifying models orders of AR and
MA parts --- only used when model = "fARIMA"
.
logical, indicating if only the B
component
(of the Values
list below) should be returned. Is set to
TRUE
for the Whittle estimator minimization.
a list with components
= input
(input) Hurst parameter, = eta[1]
.
= input
defined as above.
the goodness of fit test statistic \(Tn= A/B^2\) defined in Beran (1992)
the standardized test statistic
the corresponding p-value P(W > z)
the scale parameter $$\hat{\theta_1} = \frac{{\hat\sigma_\epsilon}^2}{2\pi}$$ such that \(f()= \theta_1 f_1()\) and \(integral(\log[f_1(.)]) = 0\).
scaled spectral density \(f_1\) at the Fourier frequencies
\(\omega_j\), see FEXPest
; a numeric vector.
Calculation of \(A, B\) and \(T_n = A/B^2\) where \(A = 2\pi/n \sum_j 2*[I(\lambda_j)/f(\lambda_j)]\), \(B = 2\pi/n \sum_j 2*[I(\lambda_j)/f(\lambda_j)]^2\) and the sum is taken over all Fourier frequencies \(\lambda_j = 2\pi*j/n\), (\(j=1,\dots,(n-1)/2\)).
\(f\) is the spectral density of fractional Gaussian noise or
fractional ARIMA(p,d,q) with self-similarity parameter \(H\) (and
\(p\) AR and \(q\) MA parameters in the latter case), and is
computed either by specFGN
or specARIMA
.
$$cov(X(t),X(t+k)) = \int \exp(iuk) f(u) du$$
Jan Beran (1992). A Goodness-of-Fit Test for Time Series with Long Range Dependence. JRSS B 54, 749--760.
Beran, Jan (1994). Statistics for Long-Memory Processes; Chapman & Hall. (Section 6.1, p.116--119; 12.1.3, p.223 ff)
WhittleEst
computes an approximate MLE for fractional
Gaussian noise / fractional ARIMA, by minimizing Qeta
.
# NOT RUN {
data(NileMin)
y <- NileMin
n <- length(y)
yper <- per(scale(y))[2:(1+ (n-1) %/% 2)]
eta <- c(H = 0.3)
q.res <- Qeta(eta, n=n, yper=yper)
str(q.res)
# }
Run the code above in your browser using DataCamp Workspace