Package 'Lmoments'

Title: L-Moments and Quantile Mixtures
Description: Contains functions to estimate L-moments and trimmed L-moments from the data. Also contains functions to estimate the parameters of the normal polynomial quantile mixture and the Cauchy polynomial quantile mixture from L-moments and trimmed L-moments.
Authors: Juha Karvanen [cre, aut], Santeri Karppinen [aut]
Maintainer: Juha Karvanen <[email protected]>
License: GPL-2
Version: 1.3-1
Built: 2024-11-07 03:10:44 UTC
Source: https://github.com/cran/Lmoments

Help Index


Cauchy-polynomial quantile mixture

Description

Density, distribution function, quantile function and random generation for the Cauchy-polynomial quantile mixture.

Usage

dcauchypoly(x,param)
pcauchypoly(x,param)
qcauchypoly(cp,param)
rcauchypoly(n,param)
cauchypoly_pdf(x,param)
cauchypoly_cdf(x,param)
cauchypoly_inv(cp,param)
cauchypoly_rnd(n,param)

Arguments

x

vector of quantiles

cp

vector of probabilities

n

number of observations

param

vector of parameters

Details

The length the parameter vector specifies the order of the polynomial in the quantile mixture. If k<-length(param) then param[1:(k-1)] contains the mixture coefficients of polynomials starting from the constant and param[k] is the mixture coefficient for Cauchy distribution. (Functions cauchypoly\_pdf, cauchypoly\_cdf, cauchypoly\_inv and cauchypoly\_rnd are aliases for compatibility with older versions of this package.)

Value

'dcauchypoly' gives the density, 'pcauchypoly' gives the cumulative distribution function, 'qcauchypoly' gives the quantile function, and 'rcauchypoly' generates random deviates.

Author(s)

Juha Karvanen [email protected]

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

See Also

data2cauchypoly4 for the parameter estimation and dnormpoly for the normal-polynomial quantile mixture.

Examples

#Generates 500 random variables from the Cauchy-polynomial quantile mixture, 
#calculates the trimmed L-moments,
#estimates parameters via trimmed L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-t1lmom2cauchypoly4(c(0,1,0.075,0.343));
x<-rcauchypoly(500,true_params);
t1lmom<-t1lmoments(x);
estim_params<-t1lmom2cauchypoly4(t1lmom);
plotpoints<-seq(-10,10,by=0.01);
histpoints<-c(seq(min(x)-1,-20,length.out=50),seq(-10,10,by=0.5),seq(20,max(x)+1,length.out=50));
hist(x,breaks=histpoints,freq=FALSE,xlim=c(-10,10));
lines(plotpoints,dcauchypoly(plotpoints,estim_params),col='red');
lines(plotpoints,dcauchypoly(plotpoints,true_params),col='blue');

Covariance matrix of the parameters of the normal-polynomial quantile mixture

Description

Estimates covariance matrix of the four parameters of normal-polynomial quantile mixture

Usage

covnormpoly4(data)

Arguments

data

vector of observations

Value

covariance matrix of the four parameters of normal-polynomial quantile mixture

Author(s)

Juha Karvanen [email protected]

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

See Also

Lmomcov for covariance matrix of L-moments, dnormpoly for the normal-polynomial quantile mixture and data2normpoly4 for the estimation of the normal-polynomial quantile mixture.


Estimation of the Cauchy-polynomial quantile mixture

Description

Estimates the parameters of the Cauchy-polynomial quantile mixture from data or from trimmed L-moments

Usage

data2cauchypoly4(data)
t1lmom2cauchypoly4(t1lmom)

Arguments

data

vector

t1lmom

vector of trimmed L-moments

Value

vector containing the four parameters of the Cauchy-polynomial quantile mixture

Author(s)

Juha Karvanen [email protected]

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

See Also

t1lmoments for trimmed L-moments, dcauchypoly for the Cauchy-polynomial quantile mixture and data2normpoly4 for the estimation of the normal-polynomial quantile mixture.

Examples

#Generates 500 random variables from the Cauchy-polynomial quantile mixture, 
#calculates the trimmed L-moments,
#estimates parameters via trimmed L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-t1lmom2cauchypoly4(c(0,1,0.075,0.343));
x<-rcauchypoly(500,true_params);
t1lmom<-t1lmoments(x);
estim_params<-t1lmom2cauchypoly4(t1lmom);
plotpoints<-seq(-10,10,by=0.01);
histpoints<-c(seq(min(x)-1,-20,length.out=50),seq(-10,10,by=0.5),seq(20,max(x)+1,length.out=50));
hist(x,breaks=histpoints,freq=FALSE,xlim=c(-10,10));
lines(plotpoints,dcauchypoly(plotpoints,estim_params),col='red');
lines(plotpoints,dcauchypoly(plotpoints,true_params),col='blue');

Estimation of normal-polynomial quantile mixture

Description

Estimates the parameters of normal-polynomial quantile mixture from data or from L-moments

Usage

data2normpoly4(data)
lmom2normpoly4(lmom)
data2normpoly6(data)
lmom2normpoly6(lmom)

Arguments

data

matrix or data frame

lmom

vector or matrix of L-moments

Value

vector or matrix containing the four or six parameters of normal-polynomial quantile mixture

Author(s)

Juha Karvanen [email protected]

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

See Also

dnormpoly for L-moments, dnormpoly for the normal-polynomial quantile mixture and data2cauchypoly4 for the estimation of Cauchy-polynomial quantile mixture.

Examples

#Generates a sample 500 observations from the normal-polynomial quantile mixture, 
#calculates L-moments and their covariance matrix,
#estimates parameters via L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-lmom2normpoly4(c(0,1,0.2,0.05));
x<-rnormpoly(500,true_params);
lmoments<-Lmoments(x);
lmomcov<-Lmomcov(x);
estim_params<-lmom2normpoly4(lmoments);
hist(x,30,freq=FALSE);
plotpoints<-seq(min(x)-1,max(x)+1,by=0.01);
lines(plotpoints,dnormpoly(plotpoints,estim_params),col='red');
lines(plotpoints,dnormpoly(plotpoints,true_params),col='blue');

L-moments

Description

Calculates sample L-moments, L-coefficients and covariance matrix of L-moments.

Usage

Lmoments(data, rmax = 4, na.rm = FALSE, returnobject = FALSE, trim = c(0, 0))
Lcoefs(data, rmax = 4, na.rm = FALSE, trim = c(0, 0))
Lmomcov(data, rmax = 4, na.rm = FALSE)
Lmoments_calc(data, rmax = 4)
Lmomcov_calc(data, rmax = 4)
shiftedlegendre(rmax)

Arguments

data

matrix or data frame.

rmax

maximum order of L-moments.

na.rm

a logical value indicating whether 'NA' values should be removed before the computation proceeds.

returnobject

a logical value indicating whether a list object should be returned instead of an array of L-moments.

trim

c(0, 0) for ordinary L-moments and c(1, 1) for trimmed (t = 1) L-moments

Value

Lmoments returns an array of L-moments containing a row for each variable in data, or if returnobject=TRUE, a list containing

lambdas

an array of L-moments

ratios

an array of mean, L-scale and L-moment ratios

trim

the value of the parameter 'trim'

source

a string with value "Lmoments" or "t1lmoments".

Lcoefs returns an array of L-coefficients (mean, L-scale, L-skewness, L-kurtosis, ...) containing a row for each variable in data.

Lmomcov returns the covariance matrix of L-moments or a list of covariance matrices if the input has multiple columns. The numerical accuracy of the results decreases with increasing rmax. With rmax > 5, a warning is thrown, as the numerical accuracy of the results is likely less than sqrt(.Machine$double.eps).

shiftedlegendre returns a matrix of the coefficients of the shifted Legendre polynomials up to a given order.

Note

Functions Lmoments and Lcoefs calculate trimmed L-moments if you specify trim = c(1, 1). Lmoments_calc and Lmomcov_calc are internal C++ functions called by Lmoments and Lmomcov. The direct use of these functions is not recommended.

Author(s)

Juha Karvanen [email protected], Santeri Karppinen

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

Elamir, E. A., Seheult, A. H. 2004. Exact variance structure of sample L-moments, Journal of Statistical Planning and Inference 124 (2) 337–359.

Hosking, J. 1990. L-moments: Analysis and estimation distributions using linear combinations of order statistics, Journal of Royal Statistical Society B 52, 105–124.

See Also

t1lmoments for trimmed L-moments, dnormpoly, lmom2normpoly4 and covnormpoly4 for the normal-polynomial quantile mixture and package lmomco for additional L-moment functions

Examples

#Generates a sample 500 observations from the normal-polynomial quantile mixture, 
#calculates the L-moments and their covariance matrix,
#estimates parameters via L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-lmom2normpoly4(c(0,1,0.2,0.05));
x<-rnormpoly(500,true_params);
lmoments<-Lmoments(x);
lmomcov<-Lmomcov(x);
estim_params<-lmom2normpoly4(lmoments);
hist(x,30,freq=FALSE)
plotpoints<-seq(min(x)-1,max(x)+1,by=0.01);
lines(plotpoints,dnormpoly(plotpoints,estim_params),col='red');
lines(plotpoints,dnormpoly(plotpoints,true_params),col='blue');

Normal-polynomial quantile mixture

Description

Density, distribution function, quantile function and random generation for the normal-polynomial quantile mixture.

Usage

dnormpoly(x,param)
pnormpoly(x,param)
qnormpoly(cp,param)
rnormpoly(n,param)
normpoly_pdf(x,param)
normpoly_cdf(x,param)
normpoly_inv(cp,param)
normpoly_rnd(n,param)

Arguments

x

vector of quantiles

cp

vector of probabilities

n

number of observations

param

vector of parameters

Details

The length the parameter vector specifies the order of the polynomial in the quantile mixture. If k<-length(param) then param[1:(k-1)] contains the mixture coefficients of polynomials starting from the constant and param[k] is the mixture coefficient for normal distribution. (Functions normpoly\_pdf, normpoly\_cdf, normpoly\_inv and normpoly\_rnd are aliases for compatibility with older versions of this package.)

Value

'dnormpoly' gives the density, 'pnormpoly' gives the cumulative distribution function, 'qnormpoly' gives the quantile function, and 'rnormpoly' generates random deviates.

Author(s)

Juha Karvanen [email protected]

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

See Also

data2normpoly4 for the parameter estimation and dcauchypoly for the Cauchy-polynomial quantile mixture.

Examples

#Generates a sample 500 observations from the normal-polynomial quantile mixture, 
#calculates L-moments and their covariance matrix,
#estimates parameters via L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-lmom2normpoly4(c(0,1,0.2,0.05));
x<-rnormpoly(500,true_params);
lmoments<-Lmoments(x);
lmomcov<-Lmomcov(x);
estim_params<-lmom2normpoly4(lmoments);
hist(x,30,freq=FALSE)
plotpoints<-seq(min(x)-1,max(x)+1,by=0.01);
lines(plotpoints,dnormpoly(plotpoints,estim_params),col='red');
lines(plotpoints,dnormpoly(plotpoints,true_params),col='blue');

Trimmed L-moments

Description

Calculates sample trimmed L-moments with trimming parameter 1.

Usage

t1lmoments(data, rmax = 4)
t1lmoments_calc(data, rmax = 4)

Arguments

data

matrix or data frame.

rmax

maximum order of trimmed L-moments.

Value

array of trimmed L-moments (trimming parameter = 1) up to order 4 containing a row for each variable in data.

Note

Functions link{Lmoments} and link{Lcoefs} calculate trimmed L-moments if you specify trim = c(1, 1). t1lmoments_calc is an internal C++ function called by t1lmoments. The direct use of this function is not recommended.

Author(s)

Juha Karvanen [email protected], Santeri Karppinen

References

Karvanen, J. 2006. Estimation of quantile mixtures via L-moments and trimmed L-moments, Computational Statistics & Data Analysis 51, (2), 947–959. http://www.bsp.brain.riken.jp/publications/2006/karvanen_quantile_mixtures.pdf.

Elamir, E. A., Seheult, A. H. 2003. Trimmed L-moments, Computational Statistics & Data Analysis 43, 299–314.

See Also

Lmoments for L-moments, and dcauchypoly and t1lmom2cauchypoly4 for the Cauchy-polynomial quantile mixture

Examples

#Generates 500 random variables from the Cauchy-polynomial quantile mixture, 
#calculates the trimmed L-moments,
#estimates parameters via trimmed L-moments and 
#plots the true pdf and the estimated pdf together with the histogram of the data.
true_params<-t1lmom2cauchypoly4(c(0,1,0.075,0.343));
x<-rcauchypoly(500,true_params);
t1lmom<-t1lmoments(x);
estim_params<-t1lmom2cauchypoly4(t1lmom);
plotpoints<-seq(-10,10,by=0.01);
histpoints<-c(seq(min(x)-1,-20,length.out=50),seq(-10,10,by=0.5),seq(20,max(x)+1,length.out=50));
hist(x,breaks=histpoints,freq=FALSE,xlim=c(-10,10));
lines(plotpoints,dcauchypoly(plotpoints,estim_params),col='red');
lines(plotpoints,dcauchypoly(plotpoints,true_params),col='blue');