A collection of methods to estimate parameters of different tempered stable distributions. Currently, there are seven different tempered stable distributions to choose from: Tempered stable subordinator distribution, classical tempered stable distribution (TSD), normal TSD, generalized classical TSD, modified TSD, Kim-Rachev TSD, rapidly decreasing TSD. The package also provides functions to compute density and probability functions and tools to run Monte Carlo simulations.

The main function of this package are briefly described below:

The package was developed by Till Massing and Cedric Jüssen and is structurally based on the “StableEstim” package by Tarak Kharrat and Georgi N. Boshnakov.


Since we use the package “copula” and this uses C code, it may be that this package has to be installed manually beforehand.

TempStable is now available on CRAN! In R-Studio the package can be installed directly with the following command:


You can install the development version of TempStable from GitHub with:

# install.packages("devtools")


This is a basic example which shows you how to solve a common problem:

## basic example code
# Such a simulation can take a very long time. Therefore, it can make sense to 
# parallelise after Monte Carlo runs. Parallelisation of the simulation is not 
# yet part of the package. 

# For testing purposes, the amount of runs and parameters is greatly reduced. 
# Therefore, the result is not meaningful. To start a meaningful simulation, the
# SampleSize could be, for example, 1000 and MCParam also 1000.
thetaT <- c(1.5,1,1,1,1,0)
res_CTS_ML_size10 <- TemperedEstim_Simulation(ParameterMatrix = rbind(thetaT),
                                               SampleSizes = c(10), MCparam = 3,
                                               TemperedType = "CTS", Estimfct = "ML",
                                               saveOutput = FALSE)
#> ---------------- Alpha=1.5 *** DeltaP=1 *** DeltaM=1 *** LambdaP=1 *** LambdaM=1 *** mu=0 ---------------
#> Warning in log(densis): NaNs wurden erzeugt
#> *** Iter 1/3 *** Estimated Remaining Time: 0h0min12sec. *** 
#> *** Iter 2/3 *** Estimated Remaining Time: 0h0min12sec. ***
#> Warning in log(densis): NaNs wurden erzeugt
#> *** Iter 3/3 *** Estimated Remaining Time: 0h0min0sec. ***

colMeans(sweep(res_CTS_ML_size10$outputMat[,9:14],2,thetaT), na.rm = TRUE)
#>     alphaE    delta+E    delta-E   lambda+E   lambda-E        muE 
#> -1.4999990 -0.9999990  9.5255124  7.2885255  0.3178998 -0.7087628