acdFit | R Documentation |
This function estimates various ACD models with various assumed error term distributions, using Maximum Likelihood Estimation.
The currently available models (conditional mean specifications) are:
Standard ACD, Log-ACD (two alternative specifications), AMACD, ABACD, SNIACD and LSNIACD.
The currently available distributions are:
Exponential (also used for QML), Weibull, Burr, generalized Gamma, and generalized F.
acdFit(durations = NULL, model = "ACD", dist = "exponential", order = NULL, startPara = NULL, dailyRestart = 0, optimFnc = "optim", method = "Nelder-Mead", output = TRUE, bootstrapErrors = FALSE, forceErrExpec = TRUE, fixedParamPos = NULL, bp = NULL, exogenousVariables = NULL, control = list())
durations |
either (1) a data frame including, at least, a column named 'durations' or 'adjDur' (for adjusted durations), or (2) a vector of durations |
model |
the conditional mean model specification. Must be one of |
dist |
the assumed error term distribution. Must be one of |
order |
a vector detailing the order of the particular ACD model. For example an ACD(p, q) specification should have |
startPara |
a vector with parameter values to start the maximization algorithm from. Must be in the correct order according to the model specification (see Details). |
dailyRestart |
if |
optimFnc |
Specifies which optimization function to use for the estimation. |
method |
Argument passed to the optimization function if |
output |
if |
bootstrapErrors |
if |
forceErrExpec |
if |
fixedParamPos |
a logical vector of |
bp |
used only for the SNIACD or LSNIACD model. A vector of break points. |
exogenousVariables |
specifies the columns in the |
control |
a list of control values,
|
The startPara
argument is a vector of the parameter values to start from. The length of the vector naturally depends on the model
and distribution
. The first elements represent the model parameters, and the last elements the distribution parameters. For example for an ACD(1,1) with Weibull errors the first 3 elements are ω, α_1, β_1 for the model, and the last is γ for the Weibull distribution.
The family of ACD models are
x_i = μ_i ε_i,
where different specifications of the conditional mean duration μ_i and the error term ε_i give rise to different models as shown below.
When exogenous variables are used, they are added in the form of
∑_{j=1}^{k} ξ_j z_j
to the right hand side of the equations, where z_j are the exogenous variables.
Conditional mean duration μ_i specifications according to the model
argument:
ACD(p, q) specification: (Engle and Russell, 1998)
μ_i = ω + ∑_{j=1}^{p} α_j x_{i-j} + ∑_{j=1}^{q} β_j μ_{i-j}
The element order of the startPara
vector is (ω, α_j...,β_j...).
LACD1(p, q): (Bauwens and Giot, 2000)
\lnμ_i = ω + ∑_{j=1}^{p} α_j \ln ε_{i-j} + ∑_{j=1}^{q} β_j \ln μ_{i-j}
The element order of the startPara
vector is (ω, α_j...,β_j...).
LACD2(p, q): (Lunde, 1999)
\lnμ_i = ω + ∑_{j=1}^{p} α_j ε_{i-j} + ∑_{j=1}^{q} β_j \ln μ_{i-j}
The element order of the startPara
vector is (ω, α_j...,β_j...).
AMACD(p, r, q) (Additive and Multiplicative ACD): (Hautsch , 2012)
μ_i = ω + ∑_{j=1}^{p} α_j x_{i-j} + ∑_{j=1}^{r} ν_j ε_{i-j} + ∑_{j=1}^{q} β_j μ_{i-j}
The element order of the startPara
vector is (ω, α_j...,ν_j...,β_j...).
ABACD(p, q) (Augmented Box-Cox ACD): (Hautsch, 2012)
μ_i^{δ_1} = ω + ∑_{j=1}^{p} α_j ≤ft( |ε_{i-j}-ν|+c_j|ε_{i-j}-b| \right)^{δ_2} + ∑_{j=1}^{q} β_j μ_{i-j}^{δ_1}
The element order of the startPara
vector is (ω, α_j..., c_j..., β_j..., ν, δ_1, δ_2).
BACD(p, q) (Box-Cox ACD): (Hautsch, 2003)
μ_i^{δ_1} = ω + ∑_{j=1}^{p} α_j ε_{i-j}^{δ_2} + ∑_{j=1}^{q} β_j μ_{i-j}^{δ_1}
The element order of the startPara
vector is (ω, α_j..., β_j...).
SNIACD(p, q, M) (Spline News Impact ACD): (Hautsch, 2012, with a slight difference)
μ_i = ω + ∑_{j=1}^{p} (α_{j-1}+c_0) ε_{i-j} + ∑_{j=1}^{p} ∑_{k=M}^{r} (α_{j-1}+c_k)1_{(ε_{i-j} ≤ \bar{ε_k})}+∑_{j=1}^{q} β_j μ_{i-j},
where 1_{()} is an indicator function and α_0=0.
The element order of the startPara
vector is (ω, c_k..., α_j..., β_j...) (The number of α-parameters are p-1]).
The distribution of the error term ε_i specifications according to the dist
argument:
Exponential distribution, dist = "exponential"
:
f(ε)=\exp(-ε)
Weibull distribution, dist = "weibull"
:
f(ε)=θ γ ε^{γ-1}e^{-θ ε^{γ}} ,
where θ=[Γ(γ^{-1}+1)]^{γ} if forceErrExpec = TRUE
.
Burr distribution, dist = "burr"
:
f(ε)= \frac{θ κ ε^{κ-1}}{(1+σ^2 θ ε^{κ})^{\frac{1}{σ^2}+1}},
where,
θ= σ^{2 ≤ft(1+\frac{1}{κ}\right)} \frac{Γ ≤ft(\frac{1}{σ^2}+1\right)}{Γ ≤ft(\frac{1}{κ}+1\right) Γ ≤ft(\frac{1}{σ^2}-\frac{1}{κ}\right)},
if forceErrExpec = TRUE
.
The element order of the startPara
vector is (model parameters, κ, σ^2).
Generalized Gamma distribution, dist = "gengamma"
:
f(ε)=\frac{γ ε^{κ γ - 1}}{λ^{κ γ}Γ (κ)}\exp ≤ft\{{-≤ft(\frac{ε}{λ}\right)^{γ}}\right\}
where λ=\frac{Γ(κ)}{Γ(κ+\frac{1}{γ})} if forceErrExpec = TRUE
.
The element order of the startPara
vector is (model parameters, κ, γ).
Generalized F distribution, dist = "genf"
:
f(ε)= \frac{γ ε^{κ γ -1}[η+(ε/λ)^{γ}]^{-η-κ}η^{η}}{λ^{κ γ}B(κ,η)},
where B(κ,η)=\frac{Γ(κ)Γ(η)}{Γ(κ+η)}, and if forceErrExpec = TRUE
,
λ=\frac{Γ(κ)Γ(η)}{η^{1/γ}Γ(κ+1/γ)Γ(η-1/γ)}.
The element order of the startPara
vector is (model parameters, κ, η, γ).
q-Weibull distribution, dist = "qweibull"
:
f(ε) = (2-q)\frac{a}{b^a} ε^{a-1} ≤ft[1-(1-q)≤ft(\frac{ε}{b}\right)^a\right]^{\frac{1}{1-q}}
where if forceErrExpec = TRUE
,
b = \frac{(q-1)^{\frac{1+a}{a}}}{2-q}\frac{aΓ(\frac{1}{q-1})}{Γ(\frac{1}{a}) Γ(\frac{1}{q-1}-\frac{1}{a}-1)}.
The element order of the startPara
vector is (model parameters, a, q).
a list of class "acdFit"
with the following slots:
durations |
the durations object used to fit the model. |
muHats |
a vector of the estimated conditional mean durations |
residuals |
the residuals from the fitted model, calculated as durations/mu |
model |
the model for the conditional mean durations |
order |
the order of the model |
distribution |
the assumed error term distribution |
distCode |
the internal code used to represent the distribution |
mPara |
a vector of the estimated conditional mean duration parameters |
dPara |
a vector of the estimated error distribution parameters |
Npar |
total number of parameters |
goodnessOfFit |
a data.frame with the log likelihood, AIC, BIC, and MSE calculated as the mean squared deviation of the durations and the estimated conditional durations. |
parameterInference |
a data.frame with the estimated coefficients and their standard errors and p-values |
forcedDistPara |
the value of the unfree distribution parameter. If |
comments |
|
hessian |
the numerical hessian of the log likelihood evaluated at the estimate |
N |
number of observations |
evals |
number of log-likelihood evaluations needed for the maximization algorithm |
convergence |
if the maximization algorithm converged, this value is zero. (see the help file optim, nlminb or solnp) |
estimationTime |
time required for estimation |
description |
who fitted the model and when |
robustCorr |
only available for QML estimation (choosing the exponential distribution) for the standard ACD(p, q) model. The robust correlation matrix of the parameter estimates. |
Markus Belfrage
Bauwens, L., and P. Giot (2000) The logarithmic ACD model: an application to the bid-ask quote process of three NYSE stocks. Annales d'Economie et de Statistique, 60, 117-149.
Engle R.F, Russell J.R. (1998) Autoregressive Conditional Duration: A New Model for Irregularly Spaced Transaction Data, Econometrica, 66(5): 1127-1162.
Grammig, J., and Maurer, K.-O. (2000) Non-monotonic hazard functions and the autoregressive conditional duration model. Econometrics Journal 3: 16-38.
Hautsch, N. (2003) Assessing the Risk of Liquidity Suppliers on the Basis of Excess Demand Intensities. Journal of Financial Econometrics (2003) 1 (2): 189-215
Hautsch, N. (2012) Econometrics of Financial High-Frequency Data. Berlin, Heidelberg: Springer.
Lunde, A. (1999): A generalized gamma autoregressive conditional duration model, Working paper, Aalborg University.
fitModel <- acdFit(durations = adjDurData, model = "ACD", dist = "exponential", order = c(1,1), dailyRestart = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.