CgmmParametersEstim {StableEstim} | R Documentation |
Estimate parameters of stable laws using a Cgmm method
Description
Estimate the four parameters of stable laws using generalised method of moments based on a continuum of complex moment conditions (Cgmm) due to Carrasco and Florens. Those moments are computed by matching the characteristic function with its sample counterpart. The resulting (ill-posed) estimation problem is solved by a regularisation technique.
Usage
CgmmParametersEstim(x, type = c("2S", "IT", "Cue"), alphaReg = 0.01,
subdivisions = 50,
IntegrationMethod = c("Uniform", "Simpson"),
randomIntegrationLaw = c("unif", "norm"),
s_min = 0, s_max = 1,
theta0 = NULL,
IterationControl = list(),
pm = 0, PrintTime = FALSE,...)
Arguments
x |
Data used to perform the estimation: a vector of length n. |
type |
Cgmm algorithm: |
alphaReg |
Value of the regularisation parameter; numeric, default = 0.01. |
subdivisions |
Number of subdivisions used to compute the different integrals involved in the computation of the objective function (to minimise); numeric. |
IntegrationMethod |
Numerical integration method to be used to approximate the
(vectorial) integrals. Users can choose between |
randomIntegrationLaw |
Probability measure associated to the Hilbert space spanned by the moment conditions. See Carrasco and Florens (2003) for more details. |
s_min , s_max |
Lower and Upper bounds of the interval where the moment conditions are considered; numeric. |
theta0 |
Initial guess for the 4 parameters values: vector of length 4. |
IterationControl |
Only used with |
pm |
Parametrisation, an integer (0 or 1); default: |
PrintTime |
Logical flag; if set to TRUE, the estimation duration is printed out to the screen in a readable format (h/min/sec). |
... |
Other arguments to be passed to the optimisation function and/or to the integration function. |
Details
The moment conditions The moment conditions are given by:
If one has a sample of i.i.d realisations of the
same random variable
, then:
where is the eCF associated with the sample
, defined by
.
Objective function
Following Carrasco et al. (2007, Proposition 3.4), the objective function to minimise is given by:
where:
-
;
.
is the identity matrix of size
.
is a
matrix with
th element given by
.
To compute and
we will use the function
IntegrateRandomVectorsProduct
.
The IterationControl
If type = "IT"
or type = "Cue"
, the user can control
each iteration using argument IterationControl
, which should be
a list
which contains the following elements:
NbIter
:maximum number of iterations. The loop stops when
NBIter
is reached; default = 10.PrintIterlogical
:if set to TRUE the values of the current parameter estimates are printed to the screen at each iteration; default = TRUE.
RelativeErrMax
:the loop stops if the relative error between two consecutive estimation steps is smaller then
RelativeErrMax
; default = 1e-3.
Value
a list with the following elements:
Estim |
output of the optimisation function, |
duration |
estimation duration in numerical format, |
method |
|
Note
nlminb
as used to minimise the Cgmm objective function.
References
Carrasco M, Florens J (2000). “Generalization of GMM to a continuum of moment conditions.” Econometric Theory, 16(06), 797–834.
Carrasco M, Florens J (2002). “Efficient GMM estimation using the empirical characteristic function.” IDEI Working Paper, 140.
Carrasco M, Florens J (2003). “On the asymptotic efficiency of GMM.” IDEI Working Paper, 173.
Carrasco M, Chernov M, Florens J, Ghysels E (2007). “Efficient estimation of general dynamic models with a continuum of moment conditions.” Journal of Econometrics, 140(2), 529–573.
Carrasco M, Kotchoni R (2010). “Efficient estimation using the characteristic function.” Mimeo. University of Montreal.
See Also
Estim
,
GMMParametersEstim
,
IntegrateRandomVectorsProduct
Examples
## general inputs
theta <- c(1.45, 0.55, 1, 0)
pm <- 0
set.seed(2345)
x <- rstable(50, theta[1], theta[2], theta[3], theta[4], pm)
## GMM specific params
alphaReg <- 0.01
subdivisions <- 20
randomIntegrationLaw <- "unif"
IntegrationMethod <- "Uniform"
## Estimation
twoS <- CgmmParametersEstim(x = x, type = "2S", alphaReg = alphaReg,
subdivisions = subdivisions,
IntegrationMethod = IntegrationMethod,
randomIntegrationLaw = randomIntegrationLaw,
s_min = 0, s_max = 1, theta0 = NULL,
pm = pm, PrintTime = TRUE)
twoS