| Title: | Mixed Tempered Stable Distribution |
|---|---|
| Description: | We provide detailed functions for univariate Mixed Tempered Stable distribution. |
| Authors: | Lorenzo Mercuri, Edit Rroji |
| Maintainer: | Lorenzo Mercuri <[email protected]> |
| License: | GPL (>= 2) |
| Version: | 1.0.4 |
| Built: | 2026-06-04 11:19:02 UTC |
| Source: | https://github.com/cran/MixedTS |
This package provides detailed functions for univariate Mixed Tempered Stable distribution distribution with Gamma density. This distribution encompasses, Variance Gamma and Symmetric Geo-Stable as special cases. The package contains routine for mle estimation, for the computation of density, probability, quantile and random numbers
| Package: | MixedTS |
| Type: | Package |
| License: | GPL (>= 2) |
Lorenzo Mercuri, Edit Rroji
Maintainer: Lorenzo Mercuri <[email protected]>
Barndorff-Nielsen,O.E., Kent,J. and Sorensen, M. (1982): Normal variance-mean mixtures and z-distributions, International Statistical Review, 50, 145-159.
Kuchler, U. and Tappe, S. (2014): Exponential stockmodels driven by tempered stable processes. Journal of Econometrics,181 (1), 53-63.
Madan, D.B. and Seneta E. (1990): The variance gamma (V.G.) model for share market returns, Journal of Business, 63, 511-524
Rroji, E and Mercuri, L.(2014): Mixed Tempered Stable distribution UNIMI-Research Papers in Economics, Business, and Statistics, 64.
This Method returns the density of a Mixed Tempered Stable
signature(object = "param.MixedTS",x = numeric(), setSup=NULL,setInf=NULL,N=2^10)This method returns an object of class MixedTS where the slot dens contains the value of the density evaluated on the x. setSup and setInf are used to choose + infinity and - infinty. N is the number of point used for discretization in fft algorithm.
# First Example # Density of MixedTS with Gamma ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # support x<-seq(-3,1,length=100) dens1<-dMixedTS(x=x,object=ParamEx1,setSup=10,setInf=-10,N=2^7) plot(dens1) # Density of MixedTS with IG Mix<-"User" logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") parMix<-list(lamb=1,mu1=1) ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix) x<-seq(-3,1,length=100) dens2<-dMixedTS(x=x,object=ParamEx2,setSup=10,setInf=-10,N=2^7) plot(dens2)# First Example # Density of MixedTS with Gamma ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # support x<-seq(-3,1,length=100) dens1<-dMixedTS(x=x,object=ParamEx1,setSup=10,setInf=-10,N=2^7) plot(dens1) # Density of MixedTS with IG Mix<-"User" logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") parMix<-list(lamb=1,mu1=1) ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix) x<-seq(-3,1,length=100) dens2<-dMixedTS(x=x,object=ParamEx2,setSup=10,setInf=-10,N=2^7) plot(dens2)
"MixedTS": A class for informations about Mixed Tempered StableMathematical description of the Mixed Tempered Stable distribution.
This class inherits from the class param.MixedTS and is a superclass for MixedTS.qmle-class.
This object is built by the following methods:
dMixedTS, pMixedTS, qMixedTS, rMixedTS.
Data:Object of class "numeric" containing a random number. This slot is filled when the method rMixedTS is used.
dens:Object of class "numeric" that contains the density of the MixedTS. This slot is filled by dMixedTS.
prob:Object of class "numeric" that contains the probability of the MixedTS. This slot is filled by pMixedTS and pMixedTS.
xMixedTS:Object of class "numeric" that contains the support for the density and probability.
quantile:Object of class "logical". If TRUE the object is built by the method qMixedTS. If FALSE the object is built by the method qMixedTS.
mu0:Object of class "numeric". See param.MixedTS.
mu:Object of class "numeric". See param.MixedTS.
sigma:Object of class "numeric". See param.MixedTS.
a:Object of class "vector". See param.MixedTS.
alpha:Object of class "numeric". See param.MixedTS.
lambda_p:Object of class "numeric". See param.MixedTS.
lambda_m:Object of class "numeric". See param.MixedTS.
Mixing:Object of class "character". See param.MixedTS.
paramMixing:Object of class "list". See param.MixedTS.
MixingLogMGF:Object of class "OptionalFunction". See param.MixedTS.
Class "param.MixedTS", directly.
signature(x = "MixedTS", ...)
MixedTS.qmle: a class for Maximum Likelihood of Mixed Tempered StableThis class is constructed by function MixedTS.qmle. It is a subclass for the MixedTS-class
Objects can be created by function MixedTS.qmle.
time:Object of class "numeric". Computational Time.
coef:Object of class "numeric". Estimated parameters.
vcov:Object of class "matrix". Approximate variance-covariance matrix.
min:Object of class "numeric". Minimum value of objective function.
details:Object of class "list". A list as returned from constrOptim
nobs:Object of class "integer". Number of observation.
method:Object of class "character". The optimization method used.
Data:Object of class "numeric". See MixedTS-class.
dens:Object of class "numeric". See MixedTS-class.
prob:Object of class "numeric". See MixedTS-class.
xMixedTS:Object of class "numeric" . See MixedTS-class.
quantile:Object of class "logical". See MixedTS-class.
mu0:Object of class "numeric". See MixedTS-class.
mu:Object of class "numeric". See MixedTS-class.
sigma:Object of class "numeric". See MixedTS-class.
a:Object of class "vector". See MixedTS-class.
alpha:Object of class "numeric". See MixedTS-class.
lambda_p:Object of class "numeric". See MixedTS-class.
lambda_m:Object of class "numeric". See MixedTS-class.
Mixing:Object of class "character". See MixedTS-class.
paramMixing:Object of class "list" . See MixedTS-class.
MixingLogMGF:Object of class "OptionalFunction". See MixedTS-class.
Class "MixedTS", directly.
Class "param.MixedTS", by class "MixedTS", distance 2.
signature(.Object = "MixedTS.qmle")
signature(.Object = "MixedTS.qmle")
signature(.Object = "MixedTS.qmle")
signature(.Object = "MixedTS.qmle")
signature(.Object = "MixedTS.qmle")
signature(.Object = "MixedTS.qmle")
Estimate MixedTS parameters using the Maximum Likelihood Estimation procedure.
mle.MixedTS(object, start = list(), Data = NULL, method = "L-BFGS-B", fixed.param = NULL, lower.param = NULL, upper.param = NULL, setSup = NULL, setInf = NULL, N = 2^10)mle.MixedTS(object, start = list(), Data = NULL, method = "L-BFGS-B", fixed.param = NULL, lower.param = NULL, upper.param = NULL, setSup = NULL, setInf = NULL, N = 2^10)
object |
an object of class |
start |
a list of parameter for the mle. |
Data |
a numeric object containing the dataset. |
method |
methods for optimization routine. See |
fixed.param |
a list of the model parameter that must be fix during optimization routine. Choosing |
lower.param |
a list containing the lower bound for the parameters. |
upper.param |
a list containing the upper bound for the parameters. |
setSup |
Internal parameter. see documentation for |
setInf |
Internal parameter. see documentation for |
N |
Internal parameter. see documentation for |
The function returns an object of class MixedTS.qmle.
# First Example: # We define the Mixed Tempered Stable using the function setMixedTS.param ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # We generate a sample using the rMixedTS method set.seed(100) Rand1 <- rMixedTS(x=5000,object=ParamEx1, setSup=10,setInf=-10,N=2^9) # Estimate procedure ## Not run: est1<-mle.MixedTS(object=Rand1 , setSup=10,setInf=-10,N=2^9) # Show results summary(est1) ## End(Not run)# First Example: # We define the Mixed Tempered Stable using the function setMixedTS.param ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # We generate a sample using the rMixedTS method set.seed(100) Rand1 <- rMixedTS(x=5000,object=ParamEx1, setSup=10,setInf=-10,N=2^9) # Estimate procedure ## Not run: est1<-mle.MixedTS(object=Rand1 , setSup=10,setInf=-10,N=2^9) # Show results summary(est1) ## End(Not run)
"param.MixedTS": A mathematical Description of the Mixed Tempered StableMain class of the package MixedTS.
Objects can be created by calls of the form setMixedTS.
mu0:a numeric object. mu0 parameter belongs to the real axis.
mu:a numeric object. mu parameter belongs to the real axis
a numeric object. sigma parameter assumes value from zero to infinity.
a vector object. If numeric, the mixing density V is a Gamma and a is the value of the shape parameter. If string, a is the log of the moment generating function of the mixing density V.
a numeric object that takes value from 0 to 2. If alpha is fixed to 2, the Mixed Tempered Stable becomes the Normal Variance Mean mixture.
a positive numeric object. It is the right tempering parameter of the random variable X.
a positive numeric object. It is the left tempering parameter of the random variable X
a string object indicating the nature of the mixing density V. If Mixing="Gamma" (default value), the V randm variable is a Gamma. If Mixing="Gamma", the user have to specify the log of the moment generating function of the V random variable.
a list object. It is an empty list when Mixing="Gamma". If Mixing="User", it is used to pass the values of the Mixing density parameters defined by the User through slot a.
MixingLogMGF:This slot contains a function that returns the logarithm of mgf for the Mixing density. The function is built internally using the information contains into the slots a, paramMixing.
Parametrization:String that indicates the parametrization used by user for the MixedTS
signature(object = "param.MixedTS"): Method for computing density of MixedTS. See "dMixedTS-methods" for more details.
signature(object = "param.MixedTS"): Method for computing probability of MixedTS. See "pMixedTS-methods" for more details.
signature(object = "param.MixedTS"): Method for computing quantile of MixedTS. See "qMixedTS-methods" for more details.
signature(object = "param.MixedTS"): Method for computing random numbers of MixedTS. See "rMixedTS-methods" for more details.
signature(object = "param.MixedTS").
signature(object = "param.MixedTS").
This Method returns the cdf of a Mixed Tempered Stable
signature(object = "param.MixedTS",x = numeric(), setSup=NULL,setInf=NULL,N=2^10)This method returns an object of class MixedTS where the slot prob contains the value of the probability evaluated on the x. setSup and setInf are used to choose + infinity and - infinty. N is the number of point used for discretization in fft algorithm.
# First Example # Density of MixedTS with Gamma ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # support x<-seq(-3,1,length=100) prob1<-pMixedTS(x=x,object=ParamEx1,setSup=10,setInf=-10,N=2^7) plot(prob1) # Prob of MixedTS with IG Mix<-"User" parMix<-list(lamb=1,mu1=1) logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix) x<-seq(-3,1,length=100) prob2<-pMixedTS(x=x,object=ParamEx2,setSup=10,setInf=-10,N=2^7) plot(prob2)# First Example # Density of MixedTS with Gamma ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1, Mixing="Gamma") # support x<-seq(-3,1,length=100) prob1<-pMixedTS(x=x,object=ParamEx1,setSup=10,setInf=-10,N=2^7) plot(prob1) # Prob of MixedTS with IG Mix<-"User" parMix<-list(lamb=1,mu1=1) logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix) x<-seq(-3,1,length=100) prob2<-pMixedTS(x=x,object=ParamEx2,setSup=10,setInf=-10,N=2^7) plot(prob2)
This Method returns the quantile of a Mixed Tempered Stable.
signature(object = "param.MixedTS",x = numeric(), setSup=NULL,setInf=NULL,N=2^10)This method returns an object of class MixedTS where the slot prob contains the value of the quantile evaluated on the x (x is the probability). setSup and setInf are used to choose + infinity and - infinty. N is the number of point used for discretization in fft algorithm.
This Method returns the quantile of a Mixed Tempered Stable.
signature(object = "param.MixedTS",x = numeric(), setSup=NULL,setInf=NULL,N=2^10)This method returns an object of class MixedTS where the slot Data contains a set of size x of random numbers. setSup and setInf are used to choose + infinity and - infinty. N is the number of point used for discretization in fft algorithm.
setMixedTS describes the Mixed Tempered Stable distribution introduced in Rroji and Mercuri (2014):
Definition
We say that a continuous random variable Y follows a Mixed Tempered Stable distribution if:
Y= mu0+ mu*V + sigma*sqrt{V}*Z
The conditional distribution of random variable given V=v is a standardized Tempered Stable with parameters (alpha, lambda_p*sqrt{v}, lambda_m) (see Kuchler, U. and Tappe, S. 2014). The distribution of V is infinitely divisible defined on the positive axis.
setMixedTS.param(mu0 = numeric(), mu = numeric(), sigma = numeric(), a, alpha = numeric(), lambda_p = numeric(), lambda_m = numeric(), param = numeric(), Mixing = "Gamma", paramMixing = list(), Parametrization = "A")setMixedTS.param(mu0 = numeric(), mu = numeric(), sigma = numeric(), a, alpha = numeric(), lambda_p = numeric(), lambda_m = numeric(), param = numeric(), Mixing = "Gamma", paramMixing = list(), Parametrization = "A")
mu0 |
a numeric object. |
mu |
a numeric object. |
sigma |
a numeric object. |
a |
a vector object. If numeric, the mixing density |
alpha |
a numeric object that takes value from 0 to 2. If alpha is fixed to 2, the Mixed Tempered Stable becomes the Normal Variance Mean mixture. |
lambda_p |
a positive numeric object. It is the right tempering parameter of the random variable |
lambda_m |
a positive numeric object. It is the left tempering parameter of the random variable |
param |
a numeric object containing the Mixed Tempered Stable parameters. It is not necessary if we use the previous inputs for defining the distribution. See documentation for more details. |
Mixing |
a string object indicating the nature of the mixing density |
paramMixing |
a list object. It is an empty list when |
Parametrization |
a character string. If
where
|
where V is distributed as a Gamma(a, 1).
For particular choices of the tempering parameters the tails of the MixedTS distribution can be heavy or semi-heavy. In particular if the Mixing density is a Gamma, we get the Variance Gamma (Madan and Seneta 1990) and the symmetric Geo-Stable distribution as special cases.
This function returns an object of class "param.MixedTS".
This class of distributions has the Normal Variance Mean Mixture (Barndorff-Nielsen et al. 1982) as special case.
Barndorff-Nielsen,O.E., Kent,J. and Sorensen, M. (1982): Normal variance-mean mixtures and z-distributions, International Statistical Review, 50, 145-159.
Kuchler, U. and Tappe, S. (2014): Exponential stockmodels driven by tempered stable processes. Journal of Econometrics,181 (1), 53-63.
Madan, D.B. and Seneta E. (1990): The variance gamma (V.G.) model for share market returns, Journal of Business, 63, 511-524
Rroji, E and Mercuri, L.(2014): Mixed Tempered Stable distribution UNIMI-Research Papers in Economics, Business, and Statistics, 64.
# Mixed Tempered Stable with Gamma Mixing density. ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1) # Mixed Tempered Stable with Inverse Gaussian Mixing density. ## As first step we set the "a" parameter ## equal to the log mgf of the inverse gaussian random variable # The log mgf of an Ig with parameter (lamb, mu1) is defined as: logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") Mix<-"User" # The parameters of the mixing density are set by the following command # line: parMix<-list(lamb=1,mu1=1) ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix)# Mixed Tempered Stable with Gamma Mixing density. ParamEx1<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=1.5, alpha=0.8, lambda_p=4, lambda_m=1) # Mixed Tempered Stable with Inverse Gaussian Mixing density. ## As first step we set the "a" parameter ## equal to the log mgf of the inverse gaussian random variable # The log mgf of an Ig with parameter (lamb, mu1) is defined as: logmgf<-("lamb/mu1*(1-sqrt(1-2*mu1^2/lamb*u))") Mix<-"User" # The parameters of the mixing density are set by the following command # line: parMix<-list(lamb=1,mu1=1) ParamEx2<-setMixedTS.param(mu0=0, mu=0, sigma=0.4, a=logmgf, alpha=0.8, lambda_p=4, lambda_m=1, Mixing=Mix,paramMixing=parMix)