ajout fonction caractéristique processus
This commit is contained in:
parent
6572808b1b
commit
1e20a6a809
5 changed files with 165 additions and 0 deletions
46
R/cfLM.R
Normal file
46
R/cfLM.R
Normal file
|
@ -0,0 +1,46 @@
|
|||
# Characteristic function of Laplace motion
|
||||
#
|
||||
# Author: Francois Pelletier
|
||||
#
|
||||
# LGPL 3.0
|
||||
###############################################################################
|
||||
|
||||
#' Characteristic function of Laplace motion
|
||||
#' @param u Transform variate
|
||||
#' @param param Parameter vector
|
||||
#' @param time Time of the process
|
||||
#' @param type Choose between "mu" or "kappa" parametrization
|
||||
#' @param log Logical for log-parameters
|
||||
#' @param start Starting value of the process
|
||||
#' @return Characteristic function value at point u for given parameter vector
|
||||
#'
|
||||
#' @author Francois Pelletier
|
||||
cfLM <- function(u,param,time,type="mu",log=FALSE,start=0)
|
||||
{
|
||||
testparGAL(param,type,log)
|
||||
if(log)
|
||||
{
|
||||
if(type=="mu")
|
||||
{
|
||||
exp(1i*(start+exp(param[1])*time)*u)*(1+(exp(param[2])^2*u^2)/2-1i*exp(param[3])*u)^(-exp(param[4])*time)
|
||||
}
|
||||
if(type=="kappa")
|
||||
{
|
||||
exp(1i*(start+exp(param[1])*time)*u)*(1+(exp(param[2])^2*u^2)/2-(1/2*1i)*
|
||||
exp(param[2])*sqrt(2)*(1/exp(param[3])-exp(param[3]))*u)^(-exp(param[4])*time)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(type=="mu")
|
||||
{
|
||||
exp(1i*(start+param[1]*time)*u)*(1+(param[2]^2*u^2)/2-1i*param[3]*u)^(-param[4]*time)
|
||||
}
|
||||
if(type=="kappa")
|
||||
{
|
||||
exp(1i*(start+param[1]*time)*u)*(1+(param[2]^2*u^2)/2-(1/2*1i)*
|
||||
param[2]*sqrt(2)*(1/param[3]-param[3])*u)^(-param[4]*time)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
37
R/startparamGAL.R
Normal file
37
R/startparamGAL.R
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Method of moments with a twist for GAL distribution
|
||||
#
|
||||
# Author: Francois Pelletier
|
||||
#
|
||||
# LGPL 3.0
|
||||
###############################################################################
|
||||
|
||||
|
||||
#' Method of moments with a twist for GAL distribution
|
||||
#'
|
||||
#' Estimating the parameters of GAL distribution using a
|
||||
#' twist on method of moments by Seneta (2004)
|
||||
#' @param data Sample
|
||||
#' @param type Choose between "mu" or "kappa" parametrization
|
||||
#' @param log Logical for log-parameters
|
||||
#' @return a vector of estimated parameters
|
||||
#'
|
||||
#' @author Francois Pelletier
|
||||
startparamGAL <- function(data,type="mu",log=FALSE)
|
||||
{
|
||||
if(type=="mu")
|
||||
{
|
||||
mom <- c(mean(data),var(data),moments::skewness(data),moments::kurtosis(data)-3)
|
||||
tau <- 3/(mom[4])
|
||||
sigma <- sqrt(mom[2]/(2*tau))
|
||||
mu <- mom[3]*sigma*sqrt(2/(3*(mom[4])))
|
||||
theta <- mom[1]-tau*mu
|
||||
if(log==FALSE)
|
||||
c(theta,sigma,mu,tau)
|
||||
else
|
||||
log(c(theta,sigma,mu,tau))
|
||||
}
|
||||
if(type=="kappa")
|
||||
{
|
||||
changetypeGAL(startparamGAL(data,type="mu",log),type="kappa",target="mu",log)
|
||||
}
|
||||
}
|
31
man/cfLM.Rd
Normal file
31
man/cfLM.Rd
Normal file
|
@ -0,0 +1,31 @@
|
|||
\name{cfLM}
|
||||
\alias{cfLM}
|
||||
\title{Characteristic function of Laplace motion}
|
||||
\usage{
|
||||
cfLM(u, param, time, type = "mu", log = FALSE, start = 0)
|
||||
}
|
||||
\arguments{
|
||||
\item{u}{Transform variate}
|
||||
|
||||
\item{param}{Parameter vector}
|
||||
|
||||
\item{time}{Time of the process}
|
||||
|
||||
\item{type}{Choose between "mu" or "kappa"
|
||||
parametrization}
|
||||
|
||||
\item{log}{Logical for log-parameters}
|
||||
|
||||
\item{start}{Starting value of the process}
|
||||
}
|
||||
\value{
|
||||
Characteristic function value at point u for given
|
||||
parameter vector
|
||||
}
|
||||
\description{
|
||||
Characteristic function of Laplace motion
|
||||
}
|
||||
\author{
|
||||
Francois Pelletier
|
||||
}
|
||||
|
26
man/scaleGAL.Rd
Normal file
26
man/scaleGAL.Rd
Normal file
|
@ -0,0 +1,26 @@
|
|||
\name{scaleGAL}
|
||||
\alias{scaleGAL}
|
||||
\title{Apply scale and location transform to the GAL distribution}
|
||||
\usage{
|
||||
scaleGAL(param, type = "kappa", location, scale)
|
||||
}
|
||||
\arguments{
|
||||
\item{param}{Parameter vector}
|
||||
|
||||
\item{type}{Choose between "mu" or "kappa"
|
||||
parametrization}
|
||||
|
||||
\item{location}{Location shift (unitary)}
|
||||
|
||||
\item{scale}{Scale shift (in standard deviations)}
|
||||
}
|
||||
\value{
|
||||
The transformed parameter vector
|
||||
}
|
||||
\description{
|
||||
Apply scale and location transform to the GAL distribution
|
||||
}
|
||||
\author{
|
||||
Francois Pelletier
|
||||
}
|
||||
|
25
man/startparamGAL.Rd
Normal file
25
man/startparamGAL.Rd
Normal file
|
@ -0,0 +1,25 @@
|
|||
\name{startparamGAL}
|
||||
\alias{startparamGAL}
|
||||
\title{Method of moments with a twist for GAL distribution}
|
||||
\usage{
|
||||
startparamGAL(data, type = "mu", log = FALSE)
|
||||
}
|
||||
\arguments{
|
||||
\item{data}{Sample}
|
||||
|
||||
\item{type}{Choose between "mu" or "kappa"
|
||||
parametrization}
|
||||
|
||||
\item{log}{Logical for log-parameters}
|
||||
}
|
||||
\value{
|
||||
a vector of estimated parameters
|
||||
}
|
||||
\description{
|
||||
Estimating the parameters of GAL distribution using a twist
|
||||
on method of moments by Seneta (2004)
|
||||
}
|
||||
\author{
|
||||
Francois Pelletier
|
||||
}
|
||||
|
Loading…
Reference in a new issue