From 336a7f618056f35737e49d2ad2d6ed193f2a82b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= Date: Thu, 2 Jan 2014 23:43:57 -0500 Subject: [PATCH] Ajout de deux fonctions --- DESCRIPTION | 2 +- LICENSE | 165 ------------------------ R/{characteristicfunction.R => cfGAL.R} | 5 +- R/changetypeGAL.R | 41 ++++++ R/dGAL.r | 45 +++++++ man/{characteristicfn.Rd => cfGAL.Rd} | 8 +- man/changetypeGAL.Rd | 27 ++++ man/dGAL.Rd | 26 ++++ 8 files changed, 146 insertions(+), 173 deletions(-) delete mode 100644 LICENSE rename R/{characteristicfunction.R => cfGAL.R} (91%) create mode 100644 R/changetypeGAL.R create mode 100644 R/dGAL.r rename man/{characteristicfn.Rd => cfGAL.Rd} (72%) create mode 100644 man/changetypeGAL.Rd create mode 100644 man/dGAL.Rd diff --git a/DESCRIPTION b/DESCRIPTION index cfbe94a..fe3cf2b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -8,4 +8,4 @@ Description: This is a package gathering different functions to work with the Generalized Asymmetric Laplace distribution Suggests: MASS -License: GPL-3 +License: LGPL-3 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 6600f1c..0000000 --- a/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ -GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/R/characteristicfunction.R b/R/cfGAL.R similarity index 91% rename from R/characteristicfunction.R rename to R/cfGAL.R index e88a6ea..d6ef641 100644 --- a/R/characteristicfunction.R +++ b/R/cfGAL.R @@ -9,12 +9,11 @@ #' @param u Transform variate #' @param param Parameter vector #' @param type Choose between "mu" or "kappa" parametrization -#' @param log Boolean for log-parameters +#' @param log Logical for log-parameters #' @return Characteristic function value at point u for given parameter vector #' #' @author Francois Pelletier - -characteristicfn <- function(u,param,type="mu",log=FALSE) +cfGAL <- function(u,param,type="mu",log=FALSE) { if(log) { diff --git a/R/changetypeGAL.R b/R/changetypeGAL.R new file mode 100644 index 0000000..7ba6131 --- /dev/null +++ b/R/changetypeGAL.R @@ -0,0 +1,41 @@ +# Change type of parametrization of GAL distribution +# +# Author: Francois Pelletier +# +# LGPL 3.0 +############################################################################### + +#' Change type of parametrization of GAL distribution +#' @param param Parameter vector +#' @param type Choose between "mu" or "kappa" parametrization +#' @param target Choose between "mu" or "kappa" parametrization +#' @param log Logical for log-parameters +#' @return The converted parameter vector +#' +#' @author Francois Pelletier +changetypeGAL <- function(param,type="mu",target="kappa",log=FALSE) +{ + if(log) + { + if(type=="mu" && target=="kappa") + { + c(param[1],param[2],log((sqrt(4*exp(param[2])^2+exp(param[3])^2)-exp(param[3]))/(2*exp(param[2]))),param[4]) + } + else if(type=="kappa" && target=="mu") + { + c(param[1],param[2],log(exp(param[2])*(1/exp(param[3])-exp(param[3]))/sqrt(2)),param[4]) + } + } + else + { + if(type=="mu" && target=="kappa") + { + c(param[1],param[2],(sqrt(4*param[2]^2+param[3]^2)-param[3])/(2*param[2]),param[4]) + } + else if(type=="kappa" && target=="mu") + { + c(param[1],param[2],param[2]*(1/param[3]-param[3])/sqrt(2),param[4]) + } + } +} + diff --git a/R/dGAL.r b/R/dGAL.r new file mode 100644 index 0000000..eecd280 --- /dev/null +++ b/R/dGAL.r @@ -0,0 +1,45 @@ +#' Density function for the GAL distribution +#' @param x vector of quantiles +#' @param param Parameter vector +#' @param type Choose between "mu" or "kappa" parametrization +#' @param log Logical for log-parameters +#' @return density at quantile x +#' +#' @author Francois Pelletier +dGAL <- function(x,param,type="mu",log=FALSE) +{ + if(log) + { + if(type=="mu") + { + dGAL(x,changetypeGAL(param=param,log=log),type="kappa",log=log) + } + else if(type=="kappa") + { + num1 <- sqrt(2)*exp(sqrt(2)/(2*exp(param[2]))*(1/exp(param[3])-exp(param[3]))*(x-exp(param[1]))) + denom1 <- sqrt(pi)*exp(param[2])^(exp(param[4])+1/2)*gamma(exp(param[4])) + num2 <- sqrt(2)*abs(x-exp(param[1])) + denom2 <- exp(param[3])+1/exp(param[3]) + expo1 <- exp(param[4])-1/2 + besselarg <- sqrt(2)/(2*exp(param[2]))*(1/exp(param[3])+exp(param[3]))*abs(x-exp(param[1])) + num1/denom1 * (num2/denom2)^expo1 * besselK(besselarg,expo1) + } + } + else + { + if(type=="mu") + { + dGAL(x,changetypeGAL(param=param,log=log),type="kappa",log=log) + } + else if(type=="kappa") + { + num1 <- sqrt(2)*exp(sqrt(2)/(2*param[2])*(1/param[3]-param[3])*(x-param[1])) + denom1 <- sqrt(pi)*param[2]^(param[4]+1/2)*gamma(param[4]) + num2 <- sqrt(2)*abs(x-param[1]) + denom2 <- param[3]+1/param[3] + expo1 <- param[4]-1/2 + besselarg <- sqrt(2)/(2*param[2])*(1/param[3]+param[3])*abs(x-param[1]) + num1/denom1 * (num2/denom2)^expo1 * besselK(besselarg,expo1) + } + } +} \ No newline at end of file diff --git a/man/characteristicfn.Rd b/man/cfGAL.Rd similarity index 72% rename from man/characteristicfn.Rd rename to man/cfGAL.Rd index e4b3056..4779862 100644 --- a/man/characteristicfn.Rd +++ b/man/cfGAL.Rd @@ -1,8 +1,8 @@ -\name{characteristicfn} -\alias{characteristicfn} +\name{cfGAL} +\alias{cfGAL} \title{Characteristic function of GAL distribution} \usage{ -characteristicfn(u, param, type = "mu", log = FALSE) +cfGAL(u, param, type = "mu", log = FALSE) } \arguments{ \item{u}{Transform variate} @@ -12,7 +12,7 @@ characteristicfn(u, param, type = "mu", log = FALSE) \item{type}{Choose between "mu" or "kappa" parametrization} - \item{log}{Boolean for log-parameters} + \item{log}{Logical for log-parameters} } \value{ Characteristic function value at point u for given diff --git a/man/changetypeGAL.Rd b/man/changetypeGAL.Rd new file mode 100644 index 0000000..b5a2a4f --- /dev/null +++ b/man/changetypeGAL.Rd @@ -0,0 +1,27 @@ +\name{changetypeGAL} +\alias{changetypeGAL} +\title{Change type of parametrization of GAL distribution} +\usage{ +changetypeGAL(param, type = "mu", target = "kappa", log = FALSE) +} +\arguments{ + \item{param}{Parameter vector} + + \item{type}{Choose between "mu" or "kappa" + parametrization} + + \item{target}{Choose between "mu" or "kappa" + parametrization} + + \item{log}{Logical for log-parameters} +} +\value{ +The converted parameter vector +} +\description{ +Change type of parametrization of GAL distribution +} +\author{ +Francois Pelletier +} + diff --git a/man/dGAL.Rd b/man/dGAL.Rd new file mode 100644 index 0000000..be6246b --- /dev/null +++ b/man/dGAL.Rd @@ -0,0 +1,26 @@ +\name{dGAL} +\alias{dGAL} +\title{Density function for the GAL distribution} +\usage{ +dGAL(x, param, type = "mu", log = FALSE) +} +\arguments{ + \item{x}{vector of quantiles} + + \item{param}{Parameter vector} + + \item{type}{Choose between "mu" or "kappa" + parametrization} + + \item{log}{Logical for log-parameters} +} +\value{ +density at quantile x +} +\description{ +Density function for the GAL distribution +} +\author{ +Francois Pelletier +} +