Nothing
#exponential
dexponential=function (x, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=lambda*exp(-lambda*x)
pdf[log==TRUE]=log(lambda)-lambda*x
return(pdf)
}
pexponential=function (x, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(-lambda*x)
cdf[log.p==FALSE&lower.tail==FALSE]=exp(-lambda*x)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(-lambda*x))
cdf[log.p==TRUE&lower.tail==FALSE]=-lambda*x
return(cdf)
}
varexponential=function (p, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(-1/lambda)*log(1-p)
return(var)
}
esexponential=function (p, lambda=1)
{
f=function (x) {varexponential(x,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy exponential
dkumexp=function (x, lambda=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*lambda*exp(-lambda*x)*(1-exp(-lambda*x))**(a-1)*(1-(1-exp(-lambda*x))**a)**(b-1)
pdf[log==TRUE]=log(a*b*lambda)-lambda*x+(a-1)*log(1-exp(-lambda*x))+(b-1)*log(1-(1-exp(-lambda*x))**a)
return(pdf)
}
pkumexp=function (x, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(1-exp(-lambda*x))**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(1-exp(-lambda*x))**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(1-exp(-lambda*x))**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(1-exp(-lambda*x))**a)
return(cdf)
}
varkumexp=function (p, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(-1/lambda)*log(1-(1-(1-p)**(1/b))**(1/a))
return(var)
}
eskumexp=function (p, lambda=1, a=1, b=1)
{
f=function (x) {varkumexp(x,lambda=lambda,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponentiated exponential
dexpexp=function (x, lambda=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*lambda*exp(-lambda*x)*(1-exp(-lambda*x))**(a-1)
pdf[log==TRUE]=log(a*lambda)-lambda*x+(a-1)*log(1-exp(-lambda*x))
return(pdf)
}
pexpexp=function (x, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1-exp(-lambda*x))**a
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1-exp(-lambda*x))**a
cdf[log.p==TRUE&lower.tail==TRUE]=a*log(1-exp(-lambda*x))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1-exp(-lambda*x))**a)
return(cdf)
}
varexpexp=function (p, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(-1/lambda)*log(1-p**(1/a))
return(var)
}
esexpexp=function (p, lambda=1, a=1)
{
f=function (x) {varexpexp(x,lambda=lambda,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Inverse exponentiated exponential
dinvexpexp=function (x, lambda=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*lambda*(1/(x*x))*exp(-lambda/x)*(1-exp(-lambda/x))**(a-1)
pdf[log==TRUE]=log(a*lambda)-2*log(x)-lambda/x+(a-1)*log(1-exp(-lambda/x))
return(pdf)
}
pinvexpexp=function (x, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-exp(-lambda/x))**a
cdf[log.p==FALSE&lower.tail==FALSE]=(1-exp(-lambda/x))**a
cdf[log.p==TRUE&lower.tail==TRUE]=a*log(1-(1-exp(-lambda/x))**a)
cdf[log.p==TRUE&lower.tail==FALSE]=a*log(1-exp(-lambda/x))
return(cdf)
}
varinvexpexp=function (p, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=lambda/(-log(1-(1-p)**(1/a)))
return(var)
}
esinvexpexp=function (p, lambda=1, a=1)
{
f=function (x) {varinvexpexp(x,lambda=lambda,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta exponential
dbetaexp=function (x, lambda=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=lambda*exp(-b*lambda*x)*(1-exp(-lambda*x))**(a-1)/beta(a,b)
pdf[log==TRUE]=log(lambda)-b*lambda*x+(a-1)*log(1-exp(-lambda*x))-lbeta(a,b)
return(pdf)
}
pbetaexp=function (x, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1-exp(-lambda*x),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetaexp=function (p, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(-1/lambda)*log(1-qbeta(p,shape1=a,shape2=b))
return(var)
}
esbetaexp=function (p, lambda=1, a=1, b=1)
{
f=function (x) {varbetaexp(x,lambda=lambda,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Logistic exponential
dlogisexp=function (x, lambda=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*lambda*exp(lambda*x)*(exp(lambda*x)-1)**(a-1)/(1+(exp(lambda*x)-1)**a)**2
pdf[log==TRUE]=log(a*lambda)+lambda*x+(a-1)*log(exp(lambda*x)-1)-2*log(1+(exp(lambda*x)-1)**a)
return(pdf)
}
plogisexp=function (x, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(exp(lambda*x)-1)**a/(1+(exp(lambda*x)-1)**a)
cdf[log.p==FALSE&lower.tail==FALSE]=1/(1+(exp(lambda*x)-1)**a)
cdf[log.p==TRUE&lower.tail==TRUE]=a*log(exp(lambda*x)-1)-log(1+(exp(lambda*x)-1)**a)
cdf[log.p==TRUE&lower.tail==FALSE]=-log(1+(exp(lambda*x)-1)**a)
return(cdf)
}
varlogisexp=function (p, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/lambda)*log(1+(p/(1-p))**(1/a))
return(var)
}
eslogisexp=function (p, lambda=1, a=1)
{
f=function (x) {varlogisexp(x,lambda=lambda,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponential extension
dexpext=function (x, lambda=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*lambda*(1+lambda*x)**(a-1)*exp(1-(1+lambda*x)**a)
pdf[log==TRUE]=log(a*lambda)+(a-1)*log(1+lambda*x)+1-(1+lambda*x)**a
return(pdf)
}
pexpext=function (x, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(1-(1+lambda*x)**a)
cdf[log.p==FALSE&lower.tail==FALSE]=exp(1-(1+lambda*x)**a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(1-(1+lambda*x)**a))
cdf[log.p==TRUE&lower.tail==FALSE]=1-(1+lambda*x)**a
return(cdf)
}
varexpext=function (p, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/lambda)*((1-log(1-p))**(1/a)-1)
return(var)
}
esexpext=function (p, lambda=1, a=1)
{
f=function (x) {varexpext(x,lambda=lambda,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Marshall Olkin exponential
dmoexp=function (x, lambda=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=lambda*exp(lambda*x)/(exp(lambda*x)-1+a)**2
pdf[log==TRUE]=log(lambda)+lambda*x-2*log(exp(lambda*x)-1+a)
return(pdf)
}
pmoexp=function (x, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(exp(lambda*x)-2+a)/(exp(lambda*x)-1+a)
cdf[log.p==FALSE&lower.tail==FALSE]=1/(exp(lambda*x)-1+a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(exp(lambda*x)-2+a)-log(exp(lambda*x)-1+a)
cdf[log.p==TRUE&lower.tail==FALSE]=-log(exp(lambda*x)-1+a)
return(cdf)
}
varmoexp=function (p, lambda=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/lambda)*(log(2-a-(1-a)*p)-log(1-p))
return(var)
}
esmoexp=function (p, lambda=1, a=1)
{
f=function (x) {varmoexp(x,lambda=lambda,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Perks
dperks=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*(a+1)*exp(b*x)/(1+a*exp(b*x))**2
pdf[log==TRUE]=log(a*(a+1))+b*x-2*log(1+a*exp(b*x))
return(pdf)
}
pperks=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=a*(exp(b*x)-1)/(1+a*exp(b*x))
cdf[log.p==FALSE&lower.tail==FALSE]=(1+a)/(1+a*exp(b*x))
cdf[log.p==TRUE&lower.tail==TRUE]=log(a)+log(exp(b*x)-1)-log(1+a*exp(b*x))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1+a)-log(1+a*exp(b*x))
return(cdf)
}
varperks=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*(log(a+p)-log(a)-log(1-p))
return(var)
}
esperks=function (p, a=1, b=1)
{
f=function (x) {varperks(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beard
dbeard=function (x, a=1, b=1, rho=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*exp(b*x)*(1+a*rho)**(rho**(-1/b))/(1+a*rho*exp(b*x))**(1+rho**(-1/b))
pdf[log==TRUE]=log(a)+b*x+(rho**(-1/b))*log(1+a*rho)-(1+rho**(-1/b))*log(1+a*rho*exp(b*x))
return(pdf)
}
pbeard=function (x, a=1, b=1, rho=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-((1+a*rho)/(1+a*rho*exp(b*x)))**(rho**(-1/b))
cdf[log.p==FALSE&lower.tail==FALSE]=((1+a*rho)/(1+a*rho*exp(b*x)))**(rho**(-1/b))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-((1+a*rho)/(1+a*rho*exp(b*x)))**(rho**(-1/b)))
cdf[log.p==TRUE&lower.tail==FALSE]=(rho**(-1/b))*(log(1+a*rho)-log(1+a*rho*exp(b*x)))
return(cdf)
}
varbeard=function (p, a=1, b=1, rho=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*(log((1+a*rho)/(1-p)**(rho**(1/b))-1)-log(a*rho))
return(var)
}
esbeard=function (p, a=1, b=1, rho=1)
{
f=function (x) {varbeard(x,a=a,b=b,rho=rho)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Gompertz
dgompertz=function (x, b=1, eta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*eta*exp(b*x)*exp(eta-eta*exp(b*x))
pdf[log==TRUE]=log(b*eta)+b*x+eta-eta*exp(b*x)
return(pdf)
}
pgompertz=function (x, b=1, eta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(eta-eta*exp(b*x))
cdf[log.p==FALSE&lower.tail==FALSE]=exp(eta-eta*exp(b*x))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(eta-eta*exp(b*x)))
cdf[log.p==TRUE&lower.tail==FALSE]=eta-eta*exp(b*x)
return(cdf)
}
vargompertz=function (p, b=1, eta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*log(1-(1/eta)*log(1-p))
return(var)
}
esgompertz=function (p, b=1, eta=1)
{
f=function (x) {vargompertz(x,b=b,eta=eta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Gompertz
dbetagompertz=function (x, b=1, c=1, d=1, eta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*eta*exp(d*eta-d*eta*exp(b*x)+b*x)*(1-exp(eta-eta*exp(b*x)))**(c-1)
pdf[log==TRUE]=log(b*eta)+d*eta-d*eta*exp(b*x)+b*x+(c-1)*log(1-exp(eta-eta*exp(b*x)))
return(pdf)
}
pbetagompertz=function (x, b=1, c=1, d=1, eta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1-exp(eta-eta*exp(b*x)),shape1=c,shape2=d,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetagompertz=function (p, b=1, c=1, d=1, eta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*log(1-(1/eta)*log(1-qbeta(p,shape1=c,shape2=d)))
return(var)
}
esbetagompertz=function (p, b=1, c=1, d=1, eta=1)
{
f=function (x) {varbetagompertz(x,b=b,c=c,d=d,eta=eta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Linear failure rate
dlfr=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(a+b*x)*exp(-a*x-b*x*x/2)
pdf[log==TRUE]=log(a+b*x)-a*x-b*x*x/2
return(pdf)
}
plfr=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(-a*x-b*x*x/2)
cdf[log.p==FALSE&lower.tail==FALSE]=exp(-a*x-b*x*x/2)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(-a*x-b*x*x/2))
cdf[log.p==TRUE&lower.tail==FALSE]=-a*x-b*x*x/2
return(cdf)
}
varlfr=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*(sqrt(a*a-2*b*log(1-p))-a)
return(var)
}
eslfr=function (p, a=1, b=1)
{
f=function (x) {varlfr(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Pareto
dpareto=function (x, K=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=c*K**c*x**(-c-1)
pdf[log==TRUE]=log(c)+c*log(K)-(c+1)*log(x)
return(pdf)
}
ppareto=function (x, K=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-K**c*x**(-c)
cdf[log.p==FALSE&lower.tail==FALSE]=K**c*x**(-c)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-K**c*x**(-c))
cdf[log.p==TRUE&lower.tail==FALSE]=c*(log(K)-log(x))
return(cdf)
}
varpareto=function (p, K=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=K*(1-p)**(-1/c)
return(var)
}
espareto=function (p, K=1, c=1)
{
f=function (x) {varpareto(x,K=K,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy Pareto
dkumpareto=function (x, K=1, a=1, b=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*c*K**c*x**(-c-1)*(1-K**c*x**(-c))**(a-1)*(1-(1-K**c*x**(-c))**a)**(b-1)
pdf[log==TRUE]=log(a*b*c)+c*log(K)-(c+1)*log(x)+(a-1)*log(1-K**c*x**(-c))+(b-1)*log(1-(1-K**c*x**(-c))**a)
return(pdf)
}
pkumpareto=function (x, K=1, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(1-K**c*x**(-c))**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(1-K**c*x**(-c))**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(1-K**c*x**(-c))**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(1-K**c*x**(-c))**a)
return(cdf)
}
varkumpareto=function (p, K=1, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=K*(1-(1-(1-p)**(1/b))**(1/a))**(-1/c)
return(var)
}
eskumpareto=function (p, K=1, a=1, b=1, c=1)
{
f=function (x) {varkumpareto(x,K=K,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#F
dF=function (x, d1=1, d2=1, log=FALSE)
{
pdf=df(x,df1=d1,df2=d2,log=log)
return(pdf)
}
pF=function (x, d1=1, d2=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pf(x,df1=d1,df2=d2,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varF=function (p, d1=1, d2=1, log.p=FALSE, lower.tail=TRUE)
{
var=qf(p,df1=d1,df2=d2,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esF=function (p, d1=1, d2=1)
{
f=function (x) {varF(x,d1=d1,d2=d2)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized Pareto
dgenpareto=function (x, k=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/k)*(1-c*x/k)**(1/c-1)
pdf[log==TRUE]=-log(k)+(1/c-1)*log(1-c*x/k)
return(pdf)
}
pgenpareto=function (x, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-c*x/k)**(1/c)
cdf[log.p==FALSE&lower.tail==FALSE]=(1-c*x/k)**(1/c)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-c*x/k)**(1/c))
cdf[log.p==TRUE&lower.tail==FALSE]=(1/c)*log(1-c*x/k)
return(cdf)
}
vargenpareto=function (p, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(k/c)*(1-(1-p)**c)
return(var)
}
esgenpareto=function (p, k=1, c=1)
{
f=function (x) {vargenpareto(x,k=k,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Pareto
dbetapareto=function (x, K=1, a=1, c=1, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*K**(a*d)*x**(-a*d-1)*(1-(K/x)**a)**(c-1)/beta(c,d)
pdf[log==TRUE]=log(a)+(a*d)*log(K)-(a*d+1)*log(x)+(c-1)*log(1-(K/x)**a)-lbeta(c,d)
return(pdf)
}
pbetapareto=function (x, K=1, a=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1-(K/x)**a,shape1=c,shape2=d,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetapareto=function (p, K=1, a=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=K*(1-qbeta(p,shape1=c,shape2=d))**(-1/a)
return(var)
}
esbetapareto=function (p, K=1, a=1, c=1, d=1)
{
f=function (x) {varbetapareto(x,K=K,a=a,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Pareto positive stable
dparetostable=function (x, lambda=1, nu=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=nu*lambda*(1/x)*(log(x/sigma))**(nu-1)*exp(-lambda*(log(x/sigma))**nu)
pdf[log==TRUE]=log(nu*lambda)-log(x)+(nu-1)*log(log(x/sigma))-lambda*(log(x/sigma))**nu
return(pdf)
}
pparetostable=function (x, lambda=1, nu=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(-lambda*(log(x/sigma))**nu)
cdf[log.p==FALSE&lower.tail==FALSE]=exp(-lambda*(log(x/sigma))**nu)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(-lambda*(log(x/sigma))**nu))
cdf[log.p==TRUE&lower.tail==FALSE]=-lambda*(log(x/sigma))**nu
return(cdf)
}
varparetostable=function (p, lambda=1, nu=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*exp(((-1/lambda)*log(1-p))**(1/nu))
return(var)
}
esparetostable=function (p, lambda=1, nu=1, sigma=1)
{
f=function (x) {varparetostable(x,lambda=lambda,nu=nu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Gamma
dGamma=function (x, a=1, b=1, log=FALSE)
{
pdf=dgamma(x,shape=a,rate=b,log=log)
return(pdf)
}
pGamma=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pgamma(x,shape=a,rate=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varGamma=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
var=qgamma(p,shape=a,rate=b,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esGamma=function (p, a=1, b=1)
{
f=function (x) {varGamma(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy gamma
dkumgamma=function (x, a=1, b=1, c=1, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=c*d*dgamma(x,shape=a,rate=b)*(pgamma(x,shape=a,rate=b))**(c-1)*(1-(pgamma(x,shape=a,rate=b))**c)**(d-1)
pdf[log==TRUE]=log(c*d)+dgamma(x,shape=a,rate=b,log=TRUE)+(c-1)*pgamma(x,shape=a,rate=b,log.p=TRUE)+(d-1)*log(1-(pgamma(x,shape=a,rate=b))**c)
return(pdf)
}
pkumgamma=function (x, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(pgamma(x,shape=a,rate=b))**c)**d
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(pgamma(x,shape=a,rate=b))**c)**d
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(pgamma(x,shape=a,rate=b))**c)**d)
cdf[log.p==TRUE&lower.tail==FALSE]=d*log(1-(pgamma(x,shape=a,rate=b))**c)
return(cdf)
}
varkumgamma=function (p, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/b)*qgamma((1-(1-p)**(1/d))**(1/c),shape=a)
return(var)
}
eskumgamma=function (p, a=1, b=1, c=1, d=1)
{
f=function (x) {varkumgamma(x,a=a,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Nakagami
dnakagami=function (x, m=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*(m/a)**m*x**(2*m-1)*exp(-m*x*x/a)/gamma(m)
pdf[log==TRUE]=log(2)+m*log(m/a)+(2*m-1)*log(x)-m*x*x/a-lgamma(m)
return(pdf)
}
pnakagami=function (x, m=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=pgamma(m*x*x/a,shape=m,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varnakagami=function (p, m=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sqrt(a/m)*sqrt(qgamma(p,shape=m))
return(var)
}
esnakagami=function (p, m=1, a=1)
{
f=function (x) {varnakagami(x,m=m,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Reflected gamma
drgamma=function (x, a=1, theta=0, phi=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/(2*phi))*dgamma(abs(x-theta)/phi,shape=a)
pdf[log==TRUE]=dgamma(abs(x-theta)/phi,shape=a,log=TRUE)-log(2*phi)
return(pdf)
}
prgamma=function (x, a=1, theta=0, phi=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[x<=theta&log.p==FALSE&lower.tail==TRUE]=0.5-0.5*pgamma((theta-x)/phi,shape=a)
cdf[x>theta&log.p==FALSE&lower.tail==TRUE]=0.5+0.5*pgamma((x-theta)/phi,shape=a)
cdf[x<=theta&log.p==FALSE&lower.tail==FALSE]=0.5+0.5*pgamma((theta-x)/phi,shape=a)
cdf[x>theta&log.p==FALSE&lower.tail==FALSE]=0.5-0.5*pgamma((x-theta)/phi,shape=a)
cdf[x<=theta&log.p==TRUE&lower.tail==TRUE]=log(0.5-0.5*pgamma((theta-x)/phi,shape=a))
cdf[x>theta&log.p==TRUE&lower.tail==TRUE]=log(0.5+0.5*pgamma((x-theta)/phi,shape=a))
cdf[x<=theta&log.p==TRUE&lower.tail==FALSE]=log(0.5+0.5*pgamma((theta-x)/phi,shape=a))
cdf[x>theta&log.p==TRUE&lower.tail==FALSE]=log(0.5-0.5*pgamma((x-theta)/phi,shape=a))
return(cdf)
}
varrgamma=function (p, a=1, theta=0, phi=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=0.5]=theta-phi*qgamma(1-2*p[p<=0.5],shape=a)
var[p>0.5]=theta+phi*qgamma(2*p[p>0.5]-1,shape=a)
return(var)
}
esrgamma=function (p, a=1, theta=0, phi=1)
{
f=function (x) {varrgamma(x,a=a,theta=theta,phi=phi)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Compound Laplace gamma
dclg=function (x, a=1, b=1, theta=0, log=FALSE)
{
pdf=x
pdf[log==FALSE]=0.5*a*b*(1+b*abs(x-theta))**(-a-1)
pdf[log==TRUE]=log(a*b)-log(2)-(a+1)*log(1+b*abs(x-theta))
return(pdf)
}
pclg=function (x, a=1, b=1, theta=0, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[x<=theta&log.p==FALSE&lower.tail==TRUE]=0.5*(1+b*abs(x-theta))**(-a)
cdf[x>theta&log.p==FALSE&lower.tail==TRUE]=1-0.5*(1+b*abs(x-theta))**(-a)
cdf[x<=theta&log.p==FALSE&lower.tail==FALSE]=1-0.5*(1+b*abs(x-theta))**(-a)
cdf[x>theta&log.p==FALSE&lower.tail==FALSE]=0.5*(1+b*abs(x-theta))**(-a)
cdf[x<=theta&log.p==TRUE&lower.tail==TRUE]=-log(2)-a*log(1+b*abs(x-theta))
cdf[x>theta&log.p==TRUE&lower.tail==TRUE]=log(1-0.5*(1+b*abs(x-theta))**(-a))
cdf[x<=theta&log.p==TRUE&lower.tail==FALSE]=log(1-0.5*(1+b*abs(x-theta))**(-a))
cdf[x>theta&log.p==TRUE&lower.tail==FALSE]=-log(2)-a*log(1+b*abs(x-theta))
return(cdf)
}
varclg=function (p, a=1, b=1, theta=0, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=0.5]=theta-1/b-(1/b)*(2*p[p<=0.5])**(-1/a)
var[p>0.5]=theta-1/b+(1/b)*(2*(1-p[p>0.5]))**(-1/a)
return(var)
}
esclg=function (p, a=1, b=1, theta=0)
{
f=function (x) {varclg(x,a=a,b=b,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Log gamma
dloggamma=function (x, a=1, r=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/x)*dgamma(-log(x),shape=r,rate=a)
pdf[log==TRUE]=dgamma(-log(x),shape=r,rate=a,log=TRUE)-log(x)
return(pdf)
}
ploggamma=function (x, a=1, r=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-pgamma(-a*log(x),shape=r)
cdf[log.p==FALSE&lower.tail==FALSE]=pgamma(-a*log(x),shape=r)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-pgamma(-a*log(x),shape=r))
cdf[log.p==TRUE&lower.tail==FALSE]=pgamma(-a*log(x),shape=r,log.p=TRUE)
return(cdf)
}
varloggamma=function (p, a=1, r=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=exp(-(1/a)*qgamma(1-p,shape=r))
return(var)
}
esloggamma=function (p, a=1, r=1)
{
f=function (x) {varloggamma(x,a=a,r=r)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Inverse gamma
dinvgamma=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/x)*dgamma(1/x,shape=a,rate=b)
pdf[log==TRUE]=dgamma(1/x,shape=a,rate=b,log=TRUE)-log(x)
return(pdf)
}
pinvgamma=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-pgamma(b/x,shape=a)
cdf[log.p==FALSE&lower.tail==FALSE]=pgamma(b/x,shape=a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-pgamma(b/x,shape=a))
cdf[log.p==TRUE&lower.tail==FALSE]=pgamma(b/x,shape=a,log.p=TRUE)
return(cdf)
}
varinvgamma=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=b/qgamma(1-p,shape=a)
return(var)
}
esinvgamma=function (p, a=1, b=1)
{
f=function (x) {varinvgamma(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Stacy gamma
dstacygamma=function (x, gamma=1, c=1, theta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(c*x**(c-1)/theta**c)*dgamma((x/theta)**c,shape=gamma)
pdf[log==TRUE]=log(c)+(c-1)*log(x)-c*log(theta)+dgamma((x/theta)**c,shape=gamma,log=TRUE)
return(pdf)
}
pstacygamma=function (x, gamma=1, c=1, theta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pgamma((x/theta)**c,shape=gamma,log.p=log.p,lower.tail=TRUE)
return(cdf)
}
varstacygamma=function (p, gamma=1, c=1, theta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=theta*(qgamma(p,shape=gamma))**(1/c)
return(var)
}
esstacygamma=function (p, gamma=1, c=1, theta=1)
{
f=function (x) {varstacygamma(x,gamma=gamma,c=c,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#beta
dbetadist=function (x, a=1, b=1, log=FALSE)
{
pdf=dbeta(x,shape1=a,shape2=b,log=log)
return(pdf)
}
pbetadist=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x,shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetadist=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
var=qbeta(p,shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esbetadist=function (p, a=1, b=1)
{
f=function (x) {varbetadist(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Uniform
duniform=function (x, a=0, b=1, log=FALSE)
{
pdf=dunif(x,min=a,max=b,log=log)
return(pdf)
}
puniform=function (x, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=punif(x,min=a,max=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varuniform=function (p, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
var=qunif(p,min=a,max=b,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esuniform=function (p, a=0, b=1)
{
f=function (x) {varuniform(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized uniform
dgenunif=function (x, a=0, c=1, h=1, k=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=h*k*c*(x-a)**(c-1)*(1-k*(x-a)**c)**(h-1)
pdf[log==TRUE]=log(h*k*c)+(c-1)*log(x-a)+(h-1)*log(1-k*(x-a)**c)
return(pdf)
}
pgenunif=function (x, a=0, c=1, h=1, k=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-k*(x-a)**c)**h
cdf[log.p==FALSE&lower.tail==FALSE]=(1-k*(x-a)**c)**h
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-k*(x-a)**c)**h)
cdf[log.p==TRUE&lower.tail==FALSE]=h*log(1-k*(x-a)**c)
return(cdf)
}
vargenunif=function (p, a=0, c=1, h=1, k=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=a+k**(-1/c)*(1-(1-p)**(1/h))**(1/c)
return(var)
}
esgenunif=function (p, a=0, c=1, h=1, k=1)
{
f=function (x) {vargenunif(x,a=a,c=c,h=h,k=k)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#power function I
dpower1=function (x, a=1, log=FALSE)
{
pdf=dbeta(x,shape1=a,shape2=1,log=log)
return(pdf)
}
ppower1=function (x, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x,shape1=a,shape2=1,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varpower1=function (p, a=1, log.p=FALSE, lower.tail=TRUE)
{
var=qbeta(p,shape1=a,shape2=1,log.p=log.p,lower.tail=lower.tail)
return(var)
}
espower1=function (p, a=1)
{
f=function (x) {varpower1(x,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#power function II
dpower2=function (x, b=1, log=FALSE)
{
pdf=dbeta(x,shape1=1,shape2=b,log=log)
return(pdf)
}
ppower2=function (x, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x,shape1=1,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varpower2=function (p, b=1, log.p=FALSE, lower.tail=TRUE)
{
var=qbeta(p,shape1=1,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(var)
}
espower2=function (p, b=1)
{
f=function (x) {varpower2(x,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Log beta
dlogbeta=function (x, a=1, b=1, c=1, d=2, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(dbeta(log(x/c)/log(d/c),shape1=a,shape2=b))/(x*log(d/c))
pdf[log==TRUE]=dbeta(log(x/c)/log(d/c),shape1=a,shape2=b,log=TRUE)-log(x)-log(log(d/c))
return(pdf)
}
plogbeta=function (x, a=1, b=1, c=1, d=2, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(log(x/c)/log(d/c),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varlogbeta=function (p, a=1, b=1, c=1, d=2, log.p=FALSE, lower.tail=TRUE)
{
var=c*(d/c)**(qbeta(p,shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail))
return(var)
}
eslogbeta=function (p, a=1, b=1, c=1, d=2)
{
f=function (x) {varlogbeta(x,a=a,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Complementary beta
dcompbeta=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=beta(a,b)*(qbeta(x,shape1=a,shape2=b))**(1-a)*(1-qbeta(x,shape1=a,shape2=b))**(1-b)
pdf[log==TRUE]=lbeta(a,b)+(1-a)*log(qbeta(x,shape1=a,shape2=b))+(1-b)*log(1-qbeta(x,shape1=a,shape2=b))
return(pdf)
}
pcompbeta=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=qbeta(x,shape1=a,shape2=b)
cdf[log.p==FALSE&lower.tail==FALSE]=1-qbeta(x,shape1=a,shape2=b)
cdf[log.p==TRUE&lower.tail==TRUE]=log(qbeta(x,shape1=a,shape2=b))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-qbeta(x,shape1=a,shape2=b))
return(cdf)
}
varcompbeta=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=pbeta(p,shape1=a,shape2=b)
return(var)
}
escompbeta=function (p, a=1, b=1)
{
f=function (x) {varcompbeta(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Libby Novick beta
dLNbeta=function (x, lambda=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=lambda*(1+(lambda-1)*x)**(-2)*dbeta(lambda*x/(1+(lambda-1)*x),shape1=a,shape2=b)
pdf[log==TRUE]=log(lambda)-2*log(1+(lambda-1)*x)+dbeta(lambda*x/(1+(lambda-1)*x),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pLNbeta=function (x, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(lambda*x/(1+(lambda-1)*x),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varLNbeta=function (p, lambda=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=qbeta(p,shape1=a,shape2=b)/(lambda-(lambda-1)*qbeta(p,shape1=a,shape2=b))
return(var)
}
esLNbeta=function (p, lambda=1, a=1, b=1)
{
f=function (x) {varLNbeta(x,lambda=lambda,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#McDonald Richards beta
dMRbeta=function (x, a=1, b=1, r=1, q=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(r/b)*(x**(r-1)/q**r)*dbeta((1/b)*(x/q)**r,shape1=a,shape2=b)
pdf[log==TRUE]=log(r)-log(b)-r*log(q)+(r-1)*log(x)+dbeta((1/b)*(x/q)**r,shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pMRbeta=function (x, a=1, b=1, r=1, q=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta((1/b)*(x/q)**r,shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varMRbeta=function (p, a=1, b=1, r=1, q=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=b**(1/r)*q*(qbeta(p,shape1=a,shape2=b))**(1/r)
return(var)
}
esMRbeta=function (p, a=1, b=1, r=1, q=1)
{
f=function (x) {varMRbeta(x,a=a,b=b,r=r,q=q)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized beta
dgenbeta=function (x, a=1, b=1, c=0, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/(d-c))*dbeta((x-c)/(d-c),shape1=a,shape2=b)
pdf[log==TRUE]=dbeta((x-c)/(d-c),shape1=a,shape2=b,log=TRUE)-log(d-c)
return(pdf)
}
pgenbeta=function (x, a=1, b=1, c=0, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta((x-c)/(d-c),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
vargenbeta=function (p, a=1, b=1, c=0, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=c+(d-c)*qbeta(p,shape1=a,shape2=b)
return(var)
}
esgenbeta=function (p, a=1, b=1, c=0, d=1)
{
f=function (x) {vargenbeta(x,a=a,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Arcsine
darcsine=function (x, a=0, b=1, log=FALSE)
{
pdf=dgenbeta(x,a=0.5,b=0.5,c=a,d=b,log=log)
return(pdf)
}
parcsine=function (x, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pgenbeta(x,a=0.5,b=0.5,c=a,d=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
vararcsine=function (p, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
var=vargenbeta(p,a=0.5,b=0.5,c=a,d=b,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esarcsine=function (p, a=0, b=1)
{
f=function (x) {vararcsine(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Triangular
dtriangular=function (x, a=0, b=2, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<a]=0
pdf[log==FALSE&x>=a&x<=c]=2*(x[x>=a&x<=c]-a)/((b-a)*(c-a))
pdf[log==FALSE&x>c&x<=b]=2*(b-x[x>c&x<=b])/((b-a)*(b-c))
pdf[log==FALSE&x>b]=1
pdf[log==TRUE&x<a]=-Inf
pdf[log==TRUE&x>=a&x<=c]=log(2*(x[x>=a&x<=c]-a)/((b-a)*(c-a)))
pdf[log==TRUE&x>c&x<=b]=log(2*(b-x[x>c&x<=b])/((b-a)*(b-c)))
pdf[log==TRUE&x>b]=0
return(pdf)
}
ptriangular=function (x, a=0, b=2, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<a]=0
cdf[log.p==FALSE&lower.tail==TRUE&x>=a&x<=c]=(x[x>=a&x<=c]-a)**2/((b-a)*(c-a))
cdf[log.p==FALSE&lower.tail==TRUE&x>c&x<=b]=1-(b-x[x>c&x<=b])**2/((b-a)*(b-c))
cdf[log.p==FALSE&lower.tail==TRUE&x>b]=1
cdf[log.p==FALSE&lower.tail==FALSE&x<a]=1
cdf[log.p==FALSE&lower.tail==FALSE&x>=a&x<=c]=1-(x[x>=a&x<=c]-a)**2/((b-a)*(c-a))
cdf[log.p==FALSE&lower.tail==FALSE&x>c&x<=b]=(b-x[x>c&x<=b])**2/((b-a)*(b-c))
cdf[log.p==FALSE&lower.tail==FALSE&x>b]=0
cdf[log.p==TRUE&lower.tail==TRUE&x<a]=-Inf
cdf[log.p==TRUE&lower.tail==TRUE&x>=a&x<=c]=log((x[x>=a&x<=c]-a)**2/((b-a)*(c-a)))
cdf[log.p==TRUE&lower.tail==TRUE&x>c&x<=b]=log(1-(b-x[x>c&x<=b])**2/((b-a)*(b-c)))
cdf[log.p==TRUE&lower.tail==TRUE&x>b]=0
cdf[log.p==TRUE&lower.tail==FALSE&x<a]=0
cdf[log.p==TRUE&lower.tail==FALSE&x>=a&x<=c]=log(1-(x[x>=a&x<=c]-a)**2/((b-a)*(c-a)))
cdf[log.p==TRUE&lower.tail==FALSE&x>c&x<=b]=log((b-x[x>c&x<=b])**2/((b-a)*(b-c)))
cdf[log.p==TRUE&lower.tail==FALSE&x>b]=-Inf
return(cdf)
}
vartriangular=function (p, a=0, b=2, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<(c-a)/(b-a)]=a+sqrt(p[p<(c-a)/(b-a)]*(b-a)*(c-a))
var[p>=(c-a)/(b-a)]=b-sqrt((1-p[p>=(c-a)/(b-a)])*(b-a)*(b-c))
return(var)
}
estriangular=function (p, a=0, b=2, c=1)
{
f=function (x) {vartriangular(x,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized beta II
dgenbeta2=function (x, a=1, b=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=c*x**(c-1)*dbeta(x**c,shape1=a,shape2=b)
pdf[log==TRUE]=dbeta(x**c,shape1=a,shape2=b,log=TRUE)+log(c)+(c-1)*log(x)
return(pdf)
}
pgenbeta2=function (x, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x**c,shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
vargenbeta2=function (p, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(qbeta(p,shape1=a,shape2=b))**(1/c)
return(var)
}
esgenbeta2=function (p, a=1, b=1, c=1)
{
f=function (x) {vargenbeta2(x,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Inverse beta
dinvbeta=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1+x)**(-2)*dbeta(x/(1+x),shape1=a,shape2=b)
pdf[log==TRUE]=dbeta(x/(1+x),shape1=a,shape2=b,log=TRUE)-2*log(1+x)
return(pdf)
}
pinvbeta=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x/(1+x),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varinvbeta=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(qbeta(p,shape1=a,shape2=b))/(1-qbeta(p,shape1=a,shape2=b))
return(var)
}
esinvbeta=function (p, a=1, b=1)
{
f=function (x) {varinvbeta(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized inverse beta
dgeninvbeta=function (x, a=1, c=1, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*x**(a-1)*(1+x**a)**(-2)*dbeta(x**a/(1+x**a),shape1=c,shape2=d)
pdf[log==TRUE]=log(a)+(a-1)*log(x)-2*log(1+x**a)+dbeta(x**a/(1+x**a),shape1=c,shape2=d,log=TRUE)
return(pdf)
}
pgeninvbeta=function (x, a=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x**a/(1+x**a),shape1=c,shape2=d,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
vargeninvbeta=function (p, a=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((qbeta(p,shape1=c,shape2=d))/(1-qbeta(p,shape1=c,shape2=d)))**(1/a)
return(var)
}
esgeninvbeta=function (p, a=1, c=1, d=1)
{
f=function (x) {vargeninvbeta(x,a=a,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Two sided power
dtsp=function (x, a=1, theta=0.5, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=theta]=a*(x[x<=theta]/theta)**(a-1)
pdf[log==FALSE&x>theta]=a*((1-x[x>theta])/(1-theta))**(a-1)
pdf[log==TRUE&x<=theta]=log(a)+(a-1)*log(x[x<=theta]/theta)
pdf[log==TRUE&x>theta]=log(a)+(a-1)*log((1-x[x>theta])/(1-theta))
return(pdf)
}
ptsp=function (x, a=1, theta=0.5, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=theta]=theta*(x[x<=theta]/theta)**a
cdf[log.p==FALSE&lower.tail==TRUE&x>theta]=1-(1-theta)*((1-x[x>theta])/(1-theta))**a
cdf[log.p==FALSE&lower.tail==FALSE&x<=theta]=1-theta*(x[x<=theta]/theta)**a
cdf[log.p==FALSE&lower.tail==FALSE&x>theta]=(1-theta)*((1-x[x>theta])/(1-theta))**a
cdf[log.p==TRUE&lower.tail==TRUE&x<=theta]=(1-a)*log(theta)+a*log(x[x<=theta])
cdf[log.p==TRUE&lower.tail==TRUE&x>theta]=log(1-(1-theta)*((1-x[x>theta])/(1-theta))**a)
cdf[log.p==TRUE&lower.tail==FALSE&x<=theta]=log(1-theta*(x[x<=theta]/theta)**a)
cdf[log.p==TRUE&lower.tail==FALSE&x>theta]=(1-a)*log(1-theta)+a*log(1-x[x>theta])
return(cdf)
}
vartsp=function (p, a=1, theta=0.5, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=theta]=theta*(p[p<=theta]/theta)**(1/a)
var[p>theta]=1-(1-theta)*((1-p[p>theta])/(1-theta))**(1/a)
return(var)
}
estsp=function (p, a=1, theta=0.5)
{
f=function (x) {vartsp(x,a=a,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy
dkum=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*x**(a-1)*(1-x**a)**(b-1)
pdf[log==TRUE]=log(a*b)+(a-1)*log(x)+(b-1)*log(1-x**a)
return(pdf)
}
pkum=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-x**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-x**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-x**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-x**a)
return(cdf)
}
varkum=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1-(1-p)**(1/b))**(1/a)
return(var)
}
eskum=function (p, a=1, b=1)
{
f=function (x) {varkum(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Normal
dnormal=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=dnorm(x,mean=mu,sd=sigma,log=log)
return(pdf)
}
pnormal=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pnorm(x,mean=mu,sd=sigma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varnormal=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
var=qnorm(p,mean=mu,sd=sigma,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esnormal=function (p, mu=0, sigma=1)
{
f=function (x) {varnormal(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy normal
dkumnormal=function (x, mu=0, sigma=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*dnorm(x,mean=mu,sd=sigma)*(pnorm(x,mean=mu,sd=sigma))**(a-1)*(1-(pnorm(x,mean=mu,sd=sigma))**a)**(b-1)
pdf[log==TRUE]=log(a*b)+dnorm(x,mean=mu,sd=sigma,log=TRUE)+(a-1)*pnorm(x,mean=mu,sd=sigma,log.p=TRUE)+(b-1)*log(1-(pnorm(x,mean=mu,sd=sigma))**a)
return(pdf)
}
pkumnormal=function (x, mu=0, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(pnorm(x,mean=mu,sd=sigma))**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(pnorm(x,mean=mu,sd=sigma))**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(pnorm(x,mean=mu,sd=sigma))**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(pnorm(x,mean=mu,sd=sigma))**a)
return(cdf)
}
varkumnormal=function (p, mu=0, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu+sigma*qnorm((1-(1-p)**(1/b))**(1/a))
return(var)
}
eskumnormal=function (p, mu=0, sigma=1, a=1, b=1)
{
f=function (x) {varkumnormal(x,mu=mu,sigma=sigma,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponential power
dexppower=function (x, mu=0, sigma=1, a=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(exp(-(abs(x-mu))**a*sigma**(-a)/a))/(2*a**(1/a)*sigma*gamma(1+1/a))
pdf[log==TRUE]=-(abs(x-mu))**a*sigma**(-a)/a-log(2)-(1/a)*log(a)-log(sigma)-lgamma(1+1/a)
return(pdf)
}
pexppower=function (x, mu=0, sigma=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=mu]=0.5-0.5*pgamma((mu-x[x<=mu])**a/(a*sigma**a),shape=1/a)
cdf[log.p==FALSE&lower.tail==TRUE&x>mu]=0.5+0.5*pgamma((x[x>mu]-mu)**a/(a*sigma**a),shape=1/a)
cdf[log.p==FALSE&lower.tail==FALSE&x<=mu]=0.5+0.5*pgamma((mu-x[x<=mu])**a/(a*sigma**a),shape=1/a)
cdf[log.p==FALSE&lower.tail==FALSE&x>mu]=0.5-0.5*pgamma((x[x>mu]-mu)**a/(a*sigma**a),shape=1/a)
cdf[log.p==TRUE&lower.tail==TRUE&x<=mu]=log(0.5-0.5*pgamma((mu-x[x<=mu])**a/(a*sigma**a),shape=1/a))
cdf[log.p==TRUE&lower.tail==TRUE&x>mu]=log(0.5+0.5*pgamma((x[x>mu]-mu)**a/(a*sigma**a),shape=1/a))
cdf[log.p==TRUE&lower.tail==FALSE&x<=mu]=log(0.5+0.5*pgamma((mu-x[x<=mu])**a/(a*sigma**a),shape=1/a))
cdf[log.p==TRUE&lower.tail==FALSE&x>mu]=log(0.5-0.5*pgamma((x[x>mu]-mu)**a/(a*sigma**a),shape=1/a))
return(cdf)
}
varexppower=function (p, mu=0, sigma=1, a=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=0.5]=mu-a**(1/a)*sigma*(qgamma(1-2*p[p<=0.5],shape=1/a))**(1/a)
var[p>0.5]=mu+a**(1/a)*sigma*(qgamma(2*p[p>0.5]-1,shape=1/a))**(1/a)
return(var)
}
esexppower=function (p, mu=0, sigma=1, a=1)
{
f=function (x) {varexppower(x,mu=mu,sigma=sigma,a=a)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Asymmetric exponential power
daep=function (x, q1=1, q2=1, alpha=0.5, log=FALSE)
{
K1= 1/(2*q1**(1/q1)*gamma(1+1/q1))
K2= 1/(2*q2**(1/q2)*gamma(1+1/q2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
pdf=x
pdf[log==FALSE&x<=0]=alpha*(exp(-(1/q1)*(abs(x[x<=0]/(2*alphastar)))**q1))/(2*alphastar*q1**(1/q1)*gamma(1+1/q1))
pdf[log==FALSE&x>0]=(1-alpha)*(exp(-(1/q2)*(abs(x[x>0]/(2-2*alphastar)))**q2))/(2*(1-alphastar)*q2**(1/q2)*gamma(1+1/q2))
pdf[log==TRUE&x<=0]=log(alpha)-(1/q1)*(abs(x[x<=0]/(2*alphastar)))**q1-log(2)-log(alphastar)-(1/q1)*log(q1)-lgamma(1+1/q1)
pdf[log==TRUE&x>0]=log(1-alpha)-(1/q2)*(abs(x[x>0]/(2-2*alphastar)))**q2-log(2)-log(1-alphastar)-(1/q2)*log(q2)-lgamma(1+1/q2)
return(pdf)
}
paep=function (x, q1=1, q2=1, alpha=0.5, log.p=FALSE, lower.tail=TRUE)
{
K1= 1/(2*q1**(1/q1)*gamma(1+1/q1))
K2= 1/(2*q2**(1/q2)*gamma(1+1/q2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=0]=alpha-alpha*pgamma((1/q1)*(-x[x<=0]/(2*alphastar))**q1,shape=1/q1)
cdf[log.p==FALSE&lower.tail==TRUE&x>0]=alpha+(1-alpha)*pgamma((1/q2)*(-x[x>0]/(2-2*alphastar))**q2,shape=1/q2)
cdf[log.p==FALSE&lower.tail==FALSE&x<=0]=1-alpha+alpha*pgamma((1/q1)*(-x[x<=0]/(2*alphastar))**q1,shape=1/q1)
cdf[log.p==FALSE&lower.tail==FALSE&x>0]=1-alpha-(1-alpha)*pgamma((1/q2)*(-x[x>0]/(2-2*alphastar))**q2,shape=1/q2)
cdf[log.p==TRUE&lower.tail==TRUE&x<=0]=log(alpha-alpha*pgamma((1/q1)*(-x[x<=0]/(2*alphastar))**q1,shape=1/q1))
cdf[log.p==TRUE&lower.tail==TRUE&x>0]=log(alpha+(1-alpha)*pgamma((1/q2)*(-x[x>0]/(2-2*alphastar))**q2,shape=1/q2))
cdf[log.p==TRUE&lower.tail==FALSE&x<=0]=log(1-alpha+alpha*pgamma((1/q1)*(-x[x<=0]/(2*alphastar))**q1,shape=1/q1))
cdf[log.p==TRUE&lower.tail==FALSE&x>0]=log(1-alpha-(1-alpha)*pgamma((1/q2)*(-x[x>0]/(2-2*alphastar))**q2,shape=1/q2))
return(cdf)
}
varaep=function (p, q1=1, q2=1, alpha=0.5, log.p=FALSE, lower.tail=TRUE)
{
K1= 1/(2*q1**(1/q1)*gamma(1+1/q1))
K2= 1/(2*q2**(1/q2)*gamma(1+1/q2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=alpha]=-2*alphastar*(q1*qgamma(1-p[p<=alpha]/alpha,shape=1/q1))**(1/q1)
var[p>alpha]=-2*(1-alphastar)*(q2*qgamma(1-(1-p[p>alpha])/(1-alpha),shape=1/q2))**(1/q2)
return(var)
}
esaep=function (p, q1=1, q2=1, alpha=0.5)
{
f=function (x) {varaep(x,q1=q1,q2=q2,alpha=alpha)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta normal
dbetanorm=function (x, mu=0, sigma=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=dnorm(x,mean=mu,sd=sigma)*dbeta(pnorm(x,mean=mu,sd=sigma),shape1=a,shape2=b)
pdf[log==TRUE]=dnorm(x,mean=mu,sd=sigma,log=TRUE)+dbeta(pnorm(x,mean=mu,sd=sigma),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetanorm=function (x, mu=0, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(pnorm(x,mean=mu,sd=sigma),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetanorm=function (p, mu=0, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu+sigma*qnorm(qbeta(p,shape1=a,shape2=b))
return(var)
}
esbetanorm=function (p, mu=0, sigma=1, a=1, b=1)
{
f=function (x) {varbetanorm(x,mu=mu,sigma=sigma,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Half normal
dhalfnorm=function (x, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*dnorm(x,sd=sigma)
pdf[log==TRUE]=log(2)+dnorm(x,sd=sigma,log=TRUE)
return(pdf)
}
phalfnorm=function (x, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=2*pnorm(x,sd=sigma)-1
cdf[log.p==FALSE&lower.tail==FALSE]=2-2*pnorm(x,sd=sigma)
cdf[log.p==TRUE&lower.tail==TRUE]=log(2*pnorm(x,sd=sigma)-1)
cdf[log.p==TRUE&lower.tail==FALSE]=log(2-2*pnorm(x,sd=sigma))
return(cdf)
}
varhalfnorm=function (p, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*qnorm(0.5*(1+p))
return(var)
}
eshalfnorm=function (p, sigma=1)
{
f=function (x) {varhalfnorm(x,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy half normal
dkumhalfnorm=function (x, sigma=1, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*a*b*dnorm(x,sd=sigma)*(2*pnorm(x,sd=sigma)-1)**(a-1)*(1-(2*pnorm(x,sd=sigma)-1)**a)**(b-1)
pdf[log==TRUE]=log(2*a*b)+dnorm(x,sd=sigma,log=TRUE)+(a-1)*log(2*pnorm(x,sd=sigma)-1)+(b-1)*log(1-(2*pnorm(x,sd=sigma)-1)**a)
return(pdf)
}
pkumhalfnorm=function (x, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(2*pnorm(x,sd=sigma)-1)**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(2*pnorm(x,sd=sigma)-1)**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(2*pnorm(x,sd=sigma)-1)**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(2*pnorm(x,sd=sigma)-1)**a)
return(cdf)
}
varkumhalfnorm=function (p, sigma=1, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*qnorm(0.5+0.5*(1-(1-p)**(1/b))**(1/a))
return(var)
}
eskumhalfnorm=function (p, sigma=1, a=1, b=1)
{
f=function (x) {varkumhalfnorm(x,sigma=sigma,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Student's t
dT=function (x, n=1, log=FALSE)
{
pdf=dt(x,df=n,log=log)
return(pdf)
}
pT=function (x, n=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pt(x,df=n,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varT=function (p, n=1, log.p=FALSE, lower.tail=TRUE)
{
var=qt(p,df=n,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esT=function (p, n=1)
{
f=function (x) {varT(x,n=n)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized asymmetric Student's t
dast=function (x, nu1=1, nu2=1, alpha=0.5, log=FALSE)
{
K1= gamma((nu1+1)/2)/(sqrt(nu1/2)*gamma(nu1/2))
K2= gamma((nu2+1)/2)/(sqrt(nu2/2)*gamma(nu2/2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
pdf=x
pdf[log==FALSE&x<=0]=(alpha/alphastar)*dt(x[x<=0]/(2*alphastar),df=nu1)
pdf[log==FALSE&x>0]=((1-alpha)/(1-alphastar))*dt(x[x>0]/(2*(1-alphastar)),df=nu2)
pdf[log==TRUE&x<=0]=log(alpha/alphastar)+dt(x[x<=0]/(2*alphastar),df=nu1,log=TRUE)
pdf[log==TRUE&x>0]=log((1-alpha)/(1-alphastar))+dt(x[x>0]/(2*(1-alphastar)),df=nu2,log=TRUE)
return(pdf)
}
past=function (x, nu1=1, nu2=1, alpha=0.5, log.p=FALSE, lower.tail=TRUE)
{
K1= gamma((nu1+1)/2)/(sqrt(nu1/2)*gamma(nu1/2))
K2= gamma((nu2+1)/2)/(sqrt(nu2/2)*gamma(nu2/2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
cdf=x
mm=x
MM=x
for (i in 1:length(x))
{mm[i]=min(x[i],0)
MM[i]=max(x[i],0)}
cdf[log.p==FALSE&lower.tail==TRUE]=2*alpha*pt(mm/(2*alphastar),df=nu1)-1+alpha+2*(1-alpha)*pt(MM/(2-2*alphastar),df=nu2)
cdf[log.p==FALSE&lower.tail==FALSE]=1-2*alpha*pt(mm/(2*alphastar),df=nu1)+1-alpha-2*(1-alpha)*pt(MM/(2-2*alphastar),df=nu2)
cdf[log.p==TRUE&lower.tail==TRUE]=log(2*alpha*pt(mm/(2*alphastar),df=nu1)-1+alpha+2*(1-alpha)*pt(MM/(2-2*alphastar),df=nu2))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-2*alpha*pt(mm/(2*alphastar),df=nu1)+1-alpha-2*(1-alpha)*pt(MM/(2-2*alphastar),df=nu2))
return(cdf)
}
varast=function (p, nu1=1, nu2=1, alpha=0.5, log.p=FALSE, lower.tail=TRUE)
{
K1= gamma((nu1+1)/2)/(sqrt(nu1/2)*gamma(nu1/2))
K2= gamma((nu2+1)/2)/(sqrt(nu2/2)*gamma(nu2/2))
alphastar=alpha*K1/(alpha*K1+(1-alpha)*K2)
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
mm=p
MM=p
for (i in 1:length(p))
{mm[i]=min(p[i],alpha)
MM[i]=max(p[i],alpha)}
var=2*alphastar*qt(mm/(2*alpha),df=nu1)+2*(1-alphastar)*qt((MM+1-2*alpha)/(2-2*alpha),df=nu2)
return(var)
}
esast=function (p, nu1=1, nu2=1, alpha=0.5)
{
f=function (x) {varast(x,nu1=nu1,nu2=nu2,alpha=alpha)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Half Student's t
dhalfT=function (x, n=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*dt(x,df=n)
pdf[log==TRUE]=log(2)+dt(x,df=n,log=TRUE)
return(pdf)
}
phalfT=function (x, n=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(x*x/(n+x*x),shape1=0.5,shape2=n/2,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varhalfT=function (p, n=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sqrt(n*qbeta(p,shape1=0.5,shape2=n/2)/(1-qbeta(p,shape1=0.5,shape2=n/2)))
return(var)
}
eshalfT=function (p, n=1)
{
f=function (x) {varhalfT(x,n=n)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Cauchy
dCauchy=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=dcauchy(x,location=mu,scale=sigma,log=log)
return(pdf)
}
pCauchy=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pcauchy(x,location=mu,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varCauchy=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
var=qcauchy(p,location=mu,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esCauchy=function (p, mu=0, sigma=1)
{
f=function (x) {varCauchy(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Log Cauchy
dlogcauchy=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/x)*dcauchy(log(x),location=mu,scale=sigma)
pdf[log==TRUE]=dcauchy(log(x),location=mu,scale=sigma,log=TRUE)-log(x)
return(pdf)
}
plogcauchy=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1/pi)*atan((log(x)-mu)/sigma)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1/pi)*atan((log(x)-mu)/sigma)
cdf[log.p==TRUE&lower.tail==TRUE]=log((1/pi)*atan((log(x)-mu)/sigma))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1/pi)*atan((log(x)-mu)/sigma))
return(cdf)
}
varlogcauchy=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=exp(mu+sigma*tan(pi*p))
return(var)
}
eslogcauchy=function (p, mu=0, sigma=1)
{
f=function (x) {varlogcauchy(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {
integ=try((1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value, silent = TRUE)
if(inherits(integ, "try-error")){
es[i] <- Inf
} else{
es[i] <- integ
}
}
return(es)
}
#Half Cauchy
dhalfcauchy=function (x, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*dcauchy(x,scale=sigma)
pdf[log==TRUE]=log(2)+dcauchy(x,scale=sigma,log=TRUE)
return(pdf)
}
phalfcauchy=function (x, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(2/pi)*atan(x/sigma)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(2/pi)*atan(x/sigma)
cdf[log.p==TRUE&lower.tail==TRUE]=log((2/pi)*atan(x/sigma))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(2/pi)*atan(x/sigma))
return(cdf)
}
varhalfcauchy=function (p, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*tan(pi*p/2)
return(var)
}
eshalfcauchy=function (p, sigma=1)
{
f=function (x) {varhalfcauchy(x,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Laplace
dlaplace=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/(2*sigma))*exp(-abs(x-mu)/sigma)
pdf[log==TRUE]=-abs(x-mu)/sigma-log(2*sigma)
return(pdf)
}
plaplace=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<mu]=0.5*exp((x[x<mu]-mu)/sigma)
cdf[log.p==FALSE&lower.tail==TRUE&x>=mu]=1-0.5*exp((mu-x[x>=mu])/sigma)
cdf[log.p==FALSE&lower.tail==FALSE&x<mu]=1-0.5*exp((x[x<mu]-mu)/sigma)
cdf[log.p==FALSE&lower.tail==FALSE&x>=mu]=0.5*exp((mu-x[x>=mu])/sigma)
cdf[log.p==FALSE&lower.tail==TRUE&x<mu]=(x[x<mu]-mu)/sigma-log(2)
cdf[log.p==FALSE&lower.tail==TRUE&x>=mu]=log(1-0.5*exp((mu-x[x>=mu])/sigma))
cdf[log.p==FALSE&lower.tail==FALSE&x<mu]=log(1-0.5*exp((x[x<mu]-mu)/sigma))
cdf[log.p==FALSE&lower.tail==FALSE&x>=mu]=(mu-x[x>=mu])/sigma-log(2)
return(cdf)
}
varlaplace=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<0.5]=mu+sigma*log(2*p[p<0.5])
var[p>=0.5]=mu-sigma*log(2*(1-p[p>=0.5]))
return(var)
}
eslaplace=function (p, mu=0, sigma=1)
{
f=function (x) {varlaplace(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Poiraud Casanova Thomas Agnan Laplace
dPCTAlaplace=function (x, a=0.5, theta=0, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=theta]=a*(1-a)*exp((1-a)*(x[x<=theta]-theta))
pdf[log==FALSE&x>theta]=a*(1-a)*exp(a*(theta-x[x>theta]))
pdf[log==TRUE&x<=theta]=log(a*(1-a))+(1-a)*(x[x<=theta]-theta)
pdf[log==TRUE&x>theta]=log(a*(1-a))+a*(theta-x[x>theta])
return(pdf)
}
pPCTAlaplace=function (x, a=0.5, theta=0, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=theta]=a*exp((1-a)*(x[x<=theta]-theta))
cdf[log.p==FALSE&lower.tail==TRUE&x>theta]=1-(1-a)*exp(a*(theta-x[x>theta]))
cdf[log.p==FALSE&lower.tail==FALSE&x<=theta]=1-a*exp((1-a)*(x[x<=theta]-theta))
cdf[log.p==FALSE&lower.tail==FALSE&x>theta]=(1-a)*exp(a*(theta-x[x>theta]))
cdf[log.p==TRUE&lower.tail==TRUE&x<=theta]=log(a)+(1-a)*(x[x<=theta]-theta)
cdf[log.p==TRUE&lower.tail==TRUE&x>theta]=log(1-(1-a)*exp(a*(theta-x[x>theta])))
cdf[log.p==TRUE&lower.tail==FALSE&x<=theta]=log(1-a*exp((1-a)*(x[x<=theta]-theta)))
cdf[log.p==TRUE&lower.tail==FALSE&x>theta]=log(1-a)+a*(theta-x[x>theta])
return(cdf)
}
varPCTAlaplace=function (p, a=0.5, theta=0, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=a]=theta+(log(p[p<=a]/a))/(1-a)
var[p>a]=theta-(log((1-p[p>a])/(1-a)))/a
return(var)
}
esPCTAlaplace=function (p, a=0.5, theta=0)
{
f=function (x) {varPCTAlaplace(x,a=a,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Holla Bhattacharya Laplace
dHBlaplace=function (x, a=0.5, theta=0, phi=1, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=theta]=a*phi*exp(phi*(x[x<=theta]-theta))
pdf[log==FALSE&x>theta]=(1-a)*phi*exp(phi*(theta-x[x>theta]))
pdf[log==TRUE&x<=theta]=log(a*phi)+phi*(x[x<=theta]-theta)
pdf[log==TRUE&x>theta]=log((1-a)*phi)+phi*(theta-x[x>theta])
return(pdf)
}
pHBlaplace=function (x, a=0.5, theta=0, phi=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=theta]=a*exp(phi*(x[x<=theta]-theta))
cdf[log.p==FALSE&lower.tail==TRUE&x>theta]=1-(1-a)*exp(phi*(theta-x[x>theta]))
cdf[log.p==FALSE&lower.tail==FALSE&x<=theta]=1-a*exp(phi*(x[x<=theta]-theta))
cdf[log.p==FALSE&lower.tail==FALSE&x>theta]=(1-a)*exp(phi*(theta-x[x>theta]))
cdf[log.p==TRUE&lower.tail==TRUE&x<=theta]=log(a)+phi*(x[x<=theta]-theta)
cdf[log.p==TRUE&lower.tail==TRUE&x>theta]=log(1-(1-a)*exp(phi*(theta-x[x>theta])))
cdf[log.p==TRUE&lower.tail==FALSE&x<=theta]=log(1-a*exp(phi*(x[x<=theta]-theta)))
cdf[log.p==TRUE&lower.tail==FALSE&x>theta]=log(1-a)+phi*(theta-x[x>theta])
return(cdf)
}
varHBlaplace=function (p, a=0.5, theta=0, phi=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=a]=theta+(1/phi)*log(p[p<=a]/a)
var[p>a]=theta-(1/phi)*log((1-p[p>a])/(1-a))
return(var)
}
esHBlaplace=function (p, a=0.5, theta=0, phi=1)
{
f=function (x) {varHBlaplace(x,a=a,theta=theta,phi=phi)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#McGill Laplace
dMlaplace=function (x, theta=0, phi=1, psi=1, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=theta]=(1/(2*psi))*exp((x[x<=theta]-theta)/psi)
pdf[log==FALSE&x>theta]=(1/(2*phi))*exp((theta-x[x>theta])/phi)
pdf[log==TRUE&x<=theta]=(x[x<=theta]-theta)/psi-log(2*psi)
pdf[log==TRUE&x>theta]=(theta-x[x>theta])/phi-log(2*phi)
return(pdf)
}
pMlaplace=function (x, theta=0, phi=1, psi=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=theta]=0.5*exp((x[x<=theta]-theta)/psi)
cdf[log.p==FALSE&lower.tail==TRUE&x>theta]=1-0.5*exp((theta-x[x>theta])/phi)
cdf[log.p==FALSE&lower.tail==FALSE&x<=theta]=1-0.5*exp((x[x<=theta]-theta)/psi)
cdf[log.p==FALSE&lower.tail==FALSE&x>theta]=0.5*exp((theta-x[x>theta])/phi)
cdf[log.p==TRUE&lower.tail==TRUE&x<=theta]=(x[x<=theta]-theta)/psi-log(2)
cdf[log.p==TRUE&lower.tail==TRUE&x>theta]=log(1-0.5*exp((theta-x[x>theta])/phi))
cdf[log.p==TRUE&lower.tail==FALSE&x<=theta]=log(1-0.5*exp((x[x<=theta]-theta)/psi))
cdf[log.p==TRUE&lower.tail==FALSE&x>theta]=(theta-x[x>theta])/phi-log(2)
return(cdf)
}
varMlaplace=function (p, theta=0, phi=1, psi=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=0.5]=theta+psi*log(2*p[p<=0.5])
var[p>0.5]=theta-phi*log(2*(1-p[p>0.5]))
return(var)
}
esMlaplace=function (p, theta=0, phi=1, psi=1)
{
f=function (x) {varMlaplace(x,theta=theta,phi=phi,psi=psi)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Log Laplace
dloglaplace=function (x, a=1, b=1, delta=0, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=delta]=a*b*x[x<=delta]**(b-1)/(delta**b*(a+b))
pdf[log==FALSE&x>delta]=a*b*delta**a/(x[x>delta]**(a+1)*(a+b))
pdf[log==TRUE&x<=delta]=log(a*b)+(b-1)*log(x[x<=delta])-b*log(delta)-log(a+b)
pdf[log==TRUE&x>delta]=log(a*b)-(a+1)*log(x[x>delta])+a*log(delta)-log(a+b)
return(pdf)
}
ploglaplace=function (x, a=1, b=1, delta=0, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=delta]=(a/(a+b))*(x[x<=delta]/delta)**b
cdf[log.p==FALSE&lower.tail==TRUE&x>delta]=1-(b/(a+b))*(delta/x[x>delta])**a
cdf[log.p==FALSE&lower.tail==FALSE&x<=delta]=1-(a/(a+b))*(x[x<=delta]/delta)**b
cdf[log.p==FALSE&lower.tail==FALSE&x>delta]=(b/(a+b))*(delta/x[x>delta])**a
cdf[log.p==TRUE&lower.tail==TRUE&x<=delta]=log(a/(a+b))+b*log(x[x<=delta]/delta)
cdf[log.p==TRUE&lower.tail==TRUE&x>delta]=log(1-(b/(a+b))*(delta/x[x>delta])**a)
cdf[log.p==TRUE&lower.tail==FALSE&x<=delta]=log(1-(a/(a+b))*(x[x<=delta]/delta)**b)
cdf[log.p==TRUE&lower.tail==FALSE&x>delta]=log(b/(a+b))+a*log(delta/x[x>delta])
return(cdf)
}
varloglaplace=function (p, a=1, b=1, delta=0, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=a/(a+b)]=delta*(p[p<=a/(a+b)]*(a+b)/a)**(1/b)
var[p>a/(a+b)]=delta*((1-p[p>a/(a+b)])*(a+b)/a)**(-1/a)
return(var)
}
esloglaplace=function (p, a=1, b=1, delta=0)
{
f=function (x) {varloglaplace(x,a=a,b=b,delta=delta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Asymmetric Laplace
dasylaplace=function (x, tau=1, kappa=1, theta=0, log=FALSE)
{
pdf=x
pdf[log==FALSE&x>=theta]=sqrt(2)*kappa*(exp(-sqrt(2)*kappa*abs(x[x>=theta]-theta)/tau))/(tau*(1+kappa**2))
pdf[log==FALSE&x<theta]=sqrt(2)*kappa*(exp(-sqrt(2)*abs(x[x<theta]-theta)/(kappa*tau)))/(tau*(1+kappa**2))
pdf[log==TRUE&x>=theta]=0.5*log(2)+log(kappa)-sqrt(2)*kappa*abs(x[x>=theta]-theta)/tau-log(tau)-log(1+kappa**2)
pdf[log==TRUE&x<theta]=0.5*log(2)+log(kappa)-sqrt(2)*abs(x[x<theta]-theta)/(kappa*tau)-log(tau)-log(1+kappa**2)
return(pdf)
}
pasylaplace=function (x, tau=1, kappa=1, theta=0, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x>=theta]=1-(exp(sqrt(2)*kappa*(theta-x[x>=theta])/tau))/(1+kappa**2)
cdf[log.p==FALSE&lower.tail==TRUE&x<theta]=(kappa**2*exp(sqrt(2)*(x[x<theta]-theta)/(kappa*tau)))/(1+kappa**2)
cdf[log.p==FALSE&lower.tail==FALSE&x>=theta]=(exp(sqrt(2)*kappa*(theta-x[x>=theta])/tau))/(1+kappa**2)
cdf[log.p==FALSE&lower.tail==FALSE&x<theta]=1-(kappa**2*exp(sqrt(2)*(x[x<theta]-theta)/(kappa*tau)))/(1+kappa**2)
cdf[log.p==TRUE&lower.tail==TRUE&x>=theta]=log(1-(exp(sqrt(2)*kappa*(theta-x[x>=theta])/tau))/(1+kappa**2))
cdf[log.p==TRUE&lower.tail==TRUE&x<theta]=2*log(kappa)+sqrt(2)*(x[x<theta]-theta)/(kappa*tau)-log(1+kappa**2)
cdf[log.p==TRUE&lower.tail==FALSE&x>=theta]=sqrt(2)*kappa*(theta-x[x>=theta])/tau-log(1+kappa**2)
cdf[log.p==TRUE&lower.tail==FALSE&x<theta]=log(1-(kappa**2*exp(sqrt(2)*(x[x<theta]-theta)/(kappa*tau)))/(1+kappa**2))
return(cdf)
}
varasylaplace=function (p, tau=1, kappa=1, theta=0, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p>=kappa**2/(1+kappa**2)]=theta-tau*(log((1-p[p>=kappa**2/(1+kappa**2)])*(1+kappa**2)))/(sqrt(2)*kappa)
var[p<kappa**2/(1+kappa**2)]=theta+tau*kappa*(log(p[p<kappa**2/(1+kappa**2)]*(1+kappa**(-2))))/(sqrt(2))
return(var)
}
esasylaplace=function (p, tau=1, kappa=1, theta=0)
{
f=function (x) {varasylaplace(x,tau=tau,kappa=kappa,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Asymmetric power
dasypower=function (x, a=0.5, lambda=1, delta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE&x<=0]=delta**(1/lambda)*(exp(-delta*(-x[x<=0]/a)**lambda))/gamma(1+1/lambda)
pdf[log==FALSE&x>0]=delta**(1/lambda)*(exp(-delta*(x[x>0]/(1-a))**lambda))/gamma(1+1/lambda)
pdf[log==TRUE&x<=0]=(1/lambda)*log(delta)-delta*(-x[x<=0]/a)**lambda-lgamma(1+1/lambda)
pdf[log==TRUE&x>0]=(1/lambda)*log(delta)-delta*(x[x>0]/(1-a))**lambda-lgamma(1+1/lambda)
return(pdf)
}
pasypower=function (x, a=0.5, lambda=1, delta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=0]=a-a*dgamma(delta*(-x[x<=0]/a)**lambda,shape=1/lambda)
cdf[log.p==FALSE&lower.tail==TRUE&x>0]=a-(1-a)*dgamma(delta*(x[x>0]/(1-a))**lambda,shape=1/lambda)
cdf[log.p==FALSE&lower.tail==FALSE&x<=0]=1-a+a*dgamma(delta*(-x[x<=0]/a)**lambda,shape=1/lambda)
cdf[log.p==FALSE&lower.tail==FALSE&x>0]=1-a+(1-a)*dgamma(delta*(x[x>0]/(1-a))**lambda,shape=1/lambda)
cdf[log.p==TRUE&lower.tail==TRUE&x<=0]=log(a-a*dgamma(delta*(-x[x<=0]/a)**lambda,shape=1/lambda))
cdf[log.p==TRUE&lower.tail==TRUE&x>0]=log(a-(1-a)*dgamma(delta*(x[x>0]/(1-a))**lambda,shape=1/lambda))
cdf[log.p==TRUE&lower.tail==FALSE&x<=0]=log(1-a+a*dgamma(delta*(-x[x<=0]/a)**lambda,shape=1/lambda))
cdf[log.p==TRUE&lower.tail==FALSE&x>0]=log(1-a+(1-a)*dgamma(delta*(x[x>0]/(1-a))**lambda,shape=1/lambda))
return(cdf)
}
varasypower=function (p, a=0.5, lambda=1, delta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=a]=-a*((qgamma(1-p[p<=a]/a,shape=1/lambda))**(1/lambda))/delta**(1/lambda)
var[p>a]=(1-a)*((qgamma(1-(1-p[p>a])/(1-a),shape=1/lambda))**(1/lambda))/delta**(1/lambda)
return(var)
}
esasypower=function (p, a=0.5, lambda=1, delta=1)
{
f=function (x) {varasypower(x,a=a,lambda=lambda,delta=delta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Logistic
dlogistic=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=dlogis(x,location=mu,scale=sigma,log=log)
return(pdf)
}
plogistic=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=plogis(x,location=mu,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varlogistic=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
var=qlogis(p,location=mu,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(var)
}
eslogistic=function (p, mu=0, sigma=1)
{
f=function (x) {varlogistic(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Hyperbolic secant
dsecant=function (x, log=FALSE)
{
pdf=x
pdf[log==FALSE]=0.5/cosh(pi*x/2)
pdf[log==TRUE]=-log(2)-log(cosh(pi*x/2))
return(pdf)
}
psecant=function (x, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(2/pi)*atan(exp(pi*x/2))
cdf[log.p==FALSE&lower.tail==FALSE]=1-(2/pi)*atan(exp(pi*x/2))
cdf[log.p==TRUE&lower.tail==TRUE]=log(2)-log(pi)+log(atan(exp(pi*x/2)))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(2/pi)*atan(exp(pi*x/2)))
return(cdf)
}
varsecant=function (p, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(2/pi)*log(tan(pi*p/2))
return(var)
}
essecant=function (p)
{
f=function (x) {varsecant(x)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized logistic
dgenlogis=function (x, a=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(a/sigma)*exp(-(x-mu)/sigma)*(1+exp(-(x-mu)/sigma))**(-1-a)
pdf[log==TRUE]=log(a)-log(sigma)-(x-mu)/sigma-(1+a)*log(1+exp(-(x-mu)/sigma))
return(pdf)
}
pgenlogis=function (x, a=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+exp(-(x-mu)/sigma))**(-a)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1+exp(-(x-mu)/sigma))**(-a)
cdf[log.p==TRUE&lower.tail==TRUE]=-a*log(1+exp(-(x-mu)/sigma))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1+exp(-(x-mu)/sigma))**(-a))
return(cdf)
}
vargenlogis=function (p, a=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(p**(-1/a)-1)
return(var)
}
esgenlogis=function (p, a=1, mu=0, sigma=1)
{
f=function (x) {vargenlogis(x,a=a,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized logistic III
dgenlogis3=function (x, alpha=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=exp(alpha*(x-mu)/sigma)*((1+exp((x-mu)/sigma))**(-1-alpha))/(sigma*beta(alpha,alpha))
pdf[log==TRUE]=alpha*(x-mu)/sigma-(1+alpha)*log(1+exp((x-mu)/sigma))-log(sigma)-lbeta(alpha,alpha)
return(pdf)
}
pgenlogis3=function (x, alpha=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1/(1+exp((mu-x)/sigma)),shape1=alpha,shape2=alpha,log.p=FALSE,lower.tail=TRUE)
return(cdf)
}
vargenlogis3=function (p, alpha=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(1/qbeta(p,shape1=alpha,shape2=alpha)-1)
return(var)
}
esgenlogis3=function (p, alpha=1, mu=0, sigma=1)
{
f=function (x) {vargenlogis3(x,alpha=alpha,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized logistic IV
dgenlogis4=function (x, a=1, alpha=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=exp(-alpha*(x-mu)/sigma)*((1+exp(-(x-mu)/sigma))**(-a-alpha))/(sigma*beta(a,alpha))
pdf[log==TRUE]=-alpha*(x-mu)/sigma-(a+alpha)*log(1+exp(-(x-mu)/sigma))-log(sigma)-lbeta(a,alpha)
return(pdf)
}
pgenlogis4=function (x, a=1, alpha=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1/(1+exp((mu-x)/sigma)),shape1=alpha,shape2=a,log.p=FALSE,lower.tail=TRUE)
return(cdf)
}
vargenlogis4=function (p, a=1, alpha=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(1/qbeta(p,shape1=alpha,shape2=a)-1)
return(var)
}
esgenlogis4=function (p, a=1, alpha=1, mu=0, sigma=1)
{
f=function (x) {vargenlogis4(x,a=a,alpha=alpha,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Half logistic
dhalflogis=function (x, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*lambda*exp(-lambda*x)*(1+exp(-lambda*x))**(-2)
pdf[log==TRUE]=log(2*lambda)-lambda*x-2*log(1+exp(-lambda*x))
return(pdf)
}
phalflogis=function (x, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1-exp(-lambda*x))/(1+exp(-lambda*x))
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1-exp(-lambda*x))/(1+exp(-lambda*x))
cdf[log.p==TRUE&lower.tail==TRUE]=log((1-exp(-lambda*x))/(1+exp(-lambda*x)))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1-exp(-lambda*x))/(1+exp(-lambda*x)))
return(cdf)
}
varhalflogis=function (p, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=-(1/lambda)*log((1-p)/(1+p))
return(var)
}
eshalflogis=function (p, lambda=1)
{
f=function (x) {varhalflogis(x,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Log logistic
dloglogis=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*a**b*x**(b-1)*(a**b+x**b)**(-2)
pdf[log==TRUE]=log(b)+b*log(a)+(b-1)*log(x)-2*log(a**b+x**b)
return(pdf)
}
ploglogis=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=x**b/(a**b+x**b)
cdf[log.p==FALSE&lower.tail==FALSE]=a**b/(a**b+x**b)
cdf[log.p==TRUE&lower.tail==TRUE]=b*log(x)-log(a**b+x**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(a)-log(a**b+x**b)
return(cdf)
}
varloglogis=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=a*(p/(1-p))**(1/b)
return(var)
}
esloglogis=function (p, a=1, b=1)
{
f=function (x) {varloglogis(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy log logistic
dkumloglogis=function (x, a=1, b=1, alpha=1, beta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*beta*alpha**beta*x**(a*beta-1)*(alpha**beta+x**beta)**(-a-1)*(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))**(b-1)
pdf[log==TRUE]=log(a*b*beta)+beta*log(alpha)+(a*beta-1)*log(x)-(a+1)*log(alpha**beta+x**beta)+(b-1)*log(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))
return(pdf)
}
pkumloglogis=function (x, a=1, b=1, alpha=1, beta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))**b
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))**b
cdf[log.p==TRUE&lower.tail==TRUE]=b*log(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1-x**(a*beta)*(alpha**beta+x**beta)**(-a))**b)
return(cdf)
}
varkumloglogis=function (p, a=1, b=1, alpha=1, beta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=alpha*((1-(1-p)**(1/b))**(1/a)-1)**(-1/beta)
return(var)
}
eskumloglogis=function (p, a=1, b=1, alpha=1, beta=1)
{
f=function (x) {varkumloglogis(x,a=a,b=b,alpha=alpha,beta=beta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponentiated logistic
dexplogis=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(a/b)*exp(-x/b)*(1+exp(-x/b))**(-a-1)
pdf[log==TRUE]=log(a)-log(b)-x/b-(a+1)*log(1+exp(-x/b))
return(pdf)
}
pexplogis=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+exp(-x/b))**(-a)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1+exp(-x/b))**(-a)
cdf[log.p==TRUE&lower.tail==TRUE]=-a*log(1+exp(-x/b))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1+exp(-x/b))**(-a))
return(cdf)
}
varexplogis=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=-b*log(p**(-1/a)-1)
return(var)
}
esexplogis=function (p, a=1, b=1)
{
f=function (x) {varexplogis(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Hosking logistic
dHlogis=function (x, k=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1-k*x)**(1/k-1)*(1+(1-k*x)**(1/k))**(-2)
pdf[log==TRUE]=(1/k-1)*log(1-k*x)-2*log(1+(1-k*x)**(1/k))
return(pdf)
}
pHlogis=function (x, k=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+(1-k*x)**(1/k))**(-1)
cdf[log.p==FALSE&lower.tail==FALSE]=(1-k*x)**(1/k)*(1+(1-k*x)**(1/k))**(-1)
cdf[log.p==TRUE&lower.tail==TRUE]=-log(1+(1-k*x)**(1/k))
cdf[log.p==TRUE&lower.tail==FALSE]=(1/k)*log(1-k*x)-log(1+(1-k*x)**(1/k))
return(cdf)
}
varHlogis=function (p, k=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/k)*(1-(1/p-1)**k)
return(var)
}
esHlogis=function (p, k=1)
{
f=function (x) {varHlogis(x,k=k)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Lognormal
dlognorm=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=dlnorm(x,meanlog=mu,sdlog=sigma,log=log)
return(pdf)
}
plognorm=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=plnorm(x,meanlog=mu,sdlog=sigma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varlognorm=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
var=qlnorm(p,meanlog=mu,sdlog=sigma,log.p=log.p,lower.tail=lower.tail)
return(var)
}
eslognorm=function (p, mu=0, sigma=1)
{
f=function (x) {varlognorm(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta lognormal
dbetalognorm=function (x, a=1, b=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=dlnorm(x,meanlog=mu,sdlog=sigma)*dbeta(plnorm(x,meanlog=mu,sdlog=sigma),shape1=a,shape2=b)
pdf[log==TRUE]=dlnorm(x,meanlog=mu,sdlog=sigma,log=TRUE)+dbeta(plnorm(x,meanlog=mu,sdlog=sigma),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetalognorm=function (x, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(plnorm(x,meanlog=mu,sdlog=sigma),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetalognorm=function (p, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=exp(mu+sigma*qnorm(qbeta(p,shape1=a,shape2=b)))
return(var)
}
esbetalognorm=function (p, a=1, b=1, mu=0, sigma=1)
{
f=function (x) {varbetalognorm(x,a=a,b=b,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Burr
dburr=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*a**b*x**(-b-1)*(1+(x/a)**(-b))**(-2)
pdf[log==TRUE]=log(b)+b*log(a)-(b+1)*log(x)-2*log(1+(x/a)**(-b))
return(pdf)
}
pburr=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+(x/a)**(-b))**(-1)
cdf[log.p==FALSE&lower.tail==FALSE]=(1+(x/a)**b)**(-1)
cdf[log.p==TRUE&lower.tail==TRUE]=-log(1+(x/a)**(-b))
cdf[log.p==TRUE&lower.tail==FALSE]=-log(1+(x/a)**b)
return(cdf)
}
varburr=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=a*p**(1/b)*(1-p)**(-1/b)
return(var)
}
esburr=function (p, a=1, b=1)
{
f=function (x) {varburr(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Burr
dbetaburr=function (x, a=1, b=1, c=1, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*a**b*x**(-b-1)*(1+(x/a)**(-b))**(-2)*dbeta((1+(x/a)**(-b))**(-1),shape1=c,shape2=d)
pdf[log==TRUE]=log(b)+b*log(a)-(b+1)*log(x)-2*log(1+(x/a)**(-b))+dbeta((1+(x/a)**(-b))**(-1),shape1=c,shape2=d,log=TRUE)
return(pdf)
}
pbetaburr=function (x, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf=pbeta((1+(x/a)**(-b))**(-1),shape1=c,shape2=d,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetaburr=function (p, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=a*(qbeta(p,shape1=c,shape2=d)/(1-qbeta(p,shape1=c,shape2=d)))**(1/b)
return(var)
}
esbetaburr=function (p, a=1, b=1, c=1, d=1)
{
f=function (x) {varbetaburr(x,a=a,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Burr XII
dburr7=function (x, k=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=k*c*x**(c-1)*(1+x**c)**(-k-1)
pdf[log==TRUE]=log(k*c)+(c-1)*log(x)-(k+1)*log(1+x**c)
return(pdf)
}
pburr7=function (x, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1+x**c)**(-k)
cdf[log.p==FALSE&lower.tail==FALSE]=(1+x**c)**(-k)
cdf[log.p==TRUE&lower.tail==TRUE]=-log(1-(1+x**c)**(-k))
cdf[log.p==TRUE&lower.tail==FALSE]=-k*log(1+x**c)
return(cdf)
}
varburr7=function (p, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((1-p)**(-1/k)-1)**(1/c)
return(var)
}
esburr7=function (p, k=1, c=1)
{
f=function (x) {varburr7(x,k=k,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy Burr XII
dkumburr7=function (x, a=1, b=1, k=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*k*c*x**(c-1)*(1+x**c)**(-k-1)*(1-(1+x**c)**(-k))**(a-1)*(1-(1-(1+x**c)**(-k))**a)**(b-1)
pdf[log==TRUE]=log(a*b*k*c)+(c-1)*log(x)-(k+1)*log(1+x**c)+(a-1)*log(1-(1+x**c)**(-k))+(b-1)*log(1-(1-(1+x**c)**(-k))**a)
return(pdf)
}
pkumburr7=function (x, a=1, b=1, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(1-(1+x**c)**(-k))**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(1-(1+x**c)**(-k))**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(1-(1+x**c)**(-k))**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(1-(1+x**c)**(-k))**a)
return(cdf)
}
varkumburr7=function (p, a=1, b=1, k=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((1-(1-(1-p)**(1/b))**(1/a))**(-1/k)-1)**(1/c)
return(var)
}
eskumburr7=function (p, a=1, b=1, k=1, c=1)
{
f=function (x) {varkumburr7(x,a=a,b=b,k=k,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Burr XII
dbetaburr7=function (x, a=1, b=1, c=1, k=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=c*k*x**(c-1)*(1+x**c)**(-k-1)*dbeta(1-(1+x**c)**(-k),shape1=a,shape2=b)
pdf[log==TRUE]=log(c*k)+(c-1)*log(x)-(k+1)*log(1+x**c)+dbeta(1-(1+x**c)**(-k),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetaburr7=function (x, a=1, b=1, c=1, k=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf=pbeta(1-(1+x**c)**(-k),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetaburr7=function (p, a=1, b=1, c=1, k=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((1-qbeta(p,shape1=a,shape2=b))**(-1/k)-1)**(1/c)
return(var)
}
esbetaburr7=function (p, a=1, b=1, c=1, k=1)
{
f=function (x) {varbetaburr7(x,a=a,b=b,c=c,k=k)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Dagum
ddagum=function (x, a=1, b=1, c=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*c*b**a*x**(a*c-1)*(x**a+b**a)**(-c-1)
pdf[log==TRUE]=log(a*c)+a*log(b)+(a*c-1)*log(x)-(c+1)*log(x**a+b**a)
return(pdf)
}
pdagum=function (x, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+(b/x)**a)**(-c)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1+(b/x)**a)**(-c)
cdf[log.p==TRUE&lower.tail==TRUE]=-c*log(1+(b/x)**a)
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1+(b/x)**a)**(-c))
return(cdf)
}
vardagum=function (p, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=b*(1-p**(-1/c))**(-1/a)
return(var)
}
esdagum=function (p, a=1, b=1, c=1)
{
f=function (x) {vardagum(x,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Lomax
dlomax=function (x, a=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(a/lambda)*(1+x/lambda)**(-a-1)
pdf[log==TRUE]=log(a/lambda)-(a+1)*log(1+x/lambda)
return(pdf)
}
plomax=function (x, a=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1+x/lambda)**(-a)
cdf[log.p==FALSE&lower.tail==FALSE]=(1+x/lambda)**(-a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1+x/lambda)**(-a))
cdf[log.p==TRUE&lower.tail==FALSE]=-a*log(1+x/lambda)
return(cdf)
}
varlomax=function (p, a=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=lambda*((1-p)**(-1/a)-1)
return(var)
}
eslomax=function (p, a=1, lambda=1)
{
f=function (x) {varlomax(x,a=a,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Lomax
dbetalomax=function (x, a=1, b=1, alpha=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(alpha/lambda)*(1+x/lambda)**(-alpha-1)*dbeta(1-(1+x/lambda)**(-alpha),shape1=a,shape2=b)
pdf[log==TRUE]=log(alpha/lambda)-(alpha+1)*log(1+x/lambda)+dbeta(1-(1+x/lambda)**(-alpha),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetalomax=function (x, a=1, b=1, alpha=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1-(1+x/lambda)**(-alpha),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetalomax=function (p, a=1, b=1, alpha=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=lambda*((1-qbeta(p,shape1=a,shape2=b))**(-1/alpha)-1)
return(var)
}
esbetalomax=function (p, a=1, b=1, alpha=1, lambda=1)
{
f=function (x) {varbetalomax(x,a=a,b=b,alpha=alpha,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Gumbel
dgumbel=function (x, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/sigma)*exp(-(x-mu)/sigma)*exp(-exp(-(x-mu)/sigma))
pdf[log==TRUE]=-log(sigma)-(x-mu)/sigma-exp(-(x-mu)/sigma)
return(pdf)
}
pgumbel=function (x, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=exp(-exp(-(x-mu)/sigma))
cdf[log.p==FALSE&lower.tail==FALSE]=1-exp(-exp(-(x-mu)/sigma))
cdf[log.p==TRUE&lower.tail==TRUE]=-exp(-(x-mu)/sigma)
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-exp(-exp(-(x-mu)/sigma)))
return(cdf)
}
vargumbel=function (p, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(-log(p))
return(var)
}
esgumbel=function (p, mu=0, sigma=1)
{
f=function (x) {vargumbel(x,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy Gumbel
dkumgumbel=function (x, a=1, b=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(a*b/sigma)*exp(-(x-mu)/sigma)*exp(-a*exp(-(x-mu)/sigma))*(1-exp(-a*exp(-(x-mu)/sigma)))**(b-1)
pdf[log==TRUE]=-log(a*b/sigma)-(x-mu)/sigma-a*exp(-(x-mu)/sigma)+(b-1)*log(1-exp(-a*exp(-(x-mu)/sigma)))
return(pdf)
}
pkumgumbel=function (x, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-exp(-a*exp(-(x-mu)/sigma)))**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-exp(-a*exp(-(x-mu)/sigma)))**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-exp(-a*exp(-(x-mu)/sigma)))**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-exp(-a*exp(-(x-mu)/sigma)))
return(cdf)
}
varkumgumbel=function (p, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(-(1/a)*log(1-(1-p)**(1/b)))
return(var)
}
eskumgumbel=function (p, a=1, b=1, mu=0, sigma=1)
{
f=function (x) {varkumgumbel(x,a=a,b=b,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Gumbel
dbetagumbel=function (x, a=1, b=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/sigma)*exp(-(x-mu)/sigma)*exp(-exp(-(x-mu)/sigma))*dbeta(exp(-exp(-(x-mu)/sigma)),shape1=a,shape2=b)
pdf[log==TRUE]=-log(sigma)-(x-mu)/sigma-exp(-(x-mu)/sigma)+dbeta(exp(-exp(-(x-mu)/sigma)),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetagumbel=function (x, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(exp(-exp(-(x-mu)/sigma)),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetagumbel=function (p, a=1, b=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-sigma*log(-log(qbeta(p,shape1=a,shape2=b)))
return(var)
}
esbetagumbel=function (p, a=1, b=1, mu=0, sigma=1)
{
f=function (x) {varbetagumbel(x,a=a,b=b,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Gumbel II
dgumbel2=function (x, a=1, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*x**(-a-1)*exp(-b*x**(-a))
pdf[log==TRUE]=log(a*b)-(a+1)*log(x)-b*x**(-a)
return(pdf)
}
pgumbel2=function (x, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(-b*x**(-a))
cdf[log.p==FALSE&lower.tail==FALSE]=exp(-b*x**(-a))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(-b*x**(-a)))
cdf[log.p==TRUE&lower.tail==FALSE]=-b*x**(-a)
return(cdf)
}
vargumbel2=function (p, a=1, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=b**(1/a)*(-log(1-p))**(-1/a)
return(var)
}
esgumbel2=function (p, a=1, b=1){
f=function (x) {vargumbel2(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {
integ=try((1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value, silent = TRUE)
if(inherits(integ, "try-error")){
es[i] <- Inf
} else{
es[i] <- integ
}
}
return(es)
}
#Beta Gumbel II
dbetagumbel2=function (x, a=1, b=1, c=1, d=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*x**(-a-1)*exp(-b*x**(-a))*dbeta(1-exp(-b*x**(-a)),shape1=c,shape2=d)
pdf[log==TRUE]=log(a*b)-(a+1)*log(x)-b*x**(-a)+dbeta(1-exp(-b*x**(-a)),shape1=c,shape2=d,log=TRUE)
return(pdf)
}
pbetagumbel2=function (x, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(1-exp(-b*x**(-a)),shape1=c,shape2=d,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetagumbel2=function (p, a=1, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=b**(1/a)*(-log(1-qbeta(p,shape1=c,shape2=d)))**(-1/a)
return(var)
}
esbetagumbel2=function (p, a=1, b=1, c=1, d=1)
{
f=function (x) {varbetagumbel2(x,a=a,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {
integ=try((1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value, silent = TRUE)
if(inherits(integ, "try-error")){
es[i] <- Inf
} else{
es[i] <- integ
}
}
return(es)
}
#Frechet
dfrechet=function (x, alpha=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=alpha*sigma**alpha*x**(-alpha-1)*exp(-(sigma/x)**alpha)
pdf[log==TRUE]=log(alpha)+alpha*log(sigma)-(alpha+1)*log(x)-(sigma/x)**alpha
return(pdf)
}
pfrechet=function (x, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=exp(-(sigma/x)**alpha)
cdf[log.p==FALSE&lower.tail==FALSE]=1-exp(-(sigma/x)**alpha)
cdf[log.p==TRUE&lower.tail==TRUE]=-(sigma/x)**alpha
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-exp(-(sigma/x)**alpha))
return(cdf)
}
varfrechet=function (p, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*(-log(p))**(-1/alpha)
return(var)
}
esfrechet=function (p, alpha=1, sigma=1)
{
f=function (x) {varfrechet(x,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Frechet
dbetafrechet=function (x, a=1, b=1, alpha=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=alpha*sigma**alpha*x**(-alpha-1)*exp(-(sigma/x)**alpha)*dbeta(exp(-(sigma/x)**alpha),shape1=a,shape2=b)
pdf[log==TRUE]=log(alpha)+alpha*log(sigma)-(alpha+1)*log(x)-(sigma/x)**alpha+dbeta(exp(-(sigma/x)**alpha),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetafrechet=function (x, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(exp(-(sigma/x)**alpha),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetafrechet=function (p, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*(-log(qbeta(p,shape1=a,shape2=b)))**(-1/alpha)
return(var)
}
esbetafrechet=function (p, a=1, b=1, alpha=1, sigma=1)
{
f=function (x) {varbetafrechet(x,a=a,b=b,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Weibull
dWeibull=function (x, alpha=1, sigma=1, log=FALSE)
{
pdf=dweibull(x,shape=alpha,scale=sigma,log=log)
return(pdf)
}
pWeibull=function (x, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pweibull(x,shape=alpha,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varWeibull=function (p, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
var=qweibull(p,shape=alpha,scale=sigma,log.p=log.p,lower.tail=lower.tail)
return(var)
}
esWeibull=function (p, alpha=1, sigma=1)
{
f=function (x) {varWeibull(x,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Kumaraswamy Weibull
dkumweibull=function (x, a=1, b=1, alpha=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*b*dweibull(x,shape=alpha,scale=sigma)*(1-pweibull(x,shape=alpha,scale=sigma))**(a-1)*(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)**(b-1)
pdf[log==TRUE]=log(a*b)+dweibull(x,shape=alpha,scale=sigma,log=TRUE)+(a-1)*log(1-pweibull(x,shape=alpha,scale=sigma))+(b-1)*log(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)
return(pdf)
}
pkumweibull=function (x, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)**b
cdf[log.p==FALSE&lower.tail==FALSE]=(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)**b
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)**b)
cdf[log.p==TRUE&lower.tail==FALSE]=b*log(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)
return(cdf)
}
varkumweibull=function (p, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*(-log(1-(1-(1-p)**(1/b))**(1/a)))**(1/alpha)
return(var)
}
eskumweibull=function (p, a=1, b=1, alpha=1, sigma=1)
{
f=function (x) {varkumweibull(x,a=a,b=b,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Logistic Rayleigh
dlogisrayleigh=function (x, a=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*lambda*x*exp(lambda*x*x/2)*(exp(lambda*x*x/2)-1)**(a-1)*(1+(exp(lambda*x*x/2)-1)**a)**(-2)
pdf[log==TRUE]=log(a*lambda)+log(x)+lambda*x*x/2+(a-1)*log(exp(lambda*x*x/2)-1)-2*log(1+(exp(lambda*x*x/2)-1)**a)
return(pdf)
}
plogisrayleigh=function (x, a=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-1/(1+(exp(lambda*x*x/2)-1)**a)
cdf[log.p==FALSE&lower.tail==FALSE]=1/(1+(exp(lambda*x*x/2)-1)**a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-1/(1+(exp(lambda*x*x/2)-1)**a))
cdf[log.p==TRUE&lower.tail==FALSE]=-log(1+(exp(lambda*x*x/2)-1)**a)
return(cdf)
}
varlogisrayleigh=function (p, a=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sqrt(2/lambda)*sqrt(log(1+(p/(1-p))**(1/a)))
return(var)
}
eslogisrayleigh=function (p, a=1, lambda=1)
{
f=function (x) {varlogisrayleigh(x,a=a,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Marshall Olkin Weibull
dmoweibull=function (x, a=1, b=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*lambda**b*x**(b-1)*exp((lambda*x)**b)*(exp((lambda*x)**b)-1+a)**(-2)
pdf[log==TRUE]=log(b)+b*log(lambda)+(b-1)*log(x)+(lambda*x)**b-2*log(exp((lambda*x)**b)-1+a)
return(pdf)
}
pmoweibull=function (x, a=1, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-1/(exp((lambda*x)**b)-1+a)
cdf[log.p==FALSE&lower.tail==FALSE]=1/(exp((lambda*x)**b)-1+a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-1/(exp((lambda*x)**b)-1+a))
cdf[log.p==TRUE&lower.tail==FALSE]=-log(exp((lambda*x)**b)-1+a)
return(cdf)
}
varmoweibull=function (p, a=1, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/lambda)*(log(1/(1-p)+1-a))**(1/b)
return(var)
}
esmoweibull=function (p, a=1, b=1, lambda=1)
{
f=function (x) {varmoweibull(x,a=a,b=b,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Beta Weibull
dbetaweibull=function (x, a=1, b=1, alpha=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=dweibull(x,shape=alpha,scale=sigma)*dbeta(pweibull(x,shape=alpha,scale=sigma),shape1=a,shape2=b)
pdf[log==TRUE]=dweibull(x,shape=alpha,scale=sigma,log=TRUE)+dbeta(pweibull(x,shape=alpha,scale=sigma),shape1=a,shape2=b,log=TRUE)
return(pdf)
}
pbetaweibull=function (x, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pbeta(pweibull(x,shape=alpha,scale=sigma),shape1=a,shape2=b,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varbetaweibull=function (p, a=1, b=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*(-log(1-qbeta(p,shape1=a,shape2=b)))**(1/alpha)
return(var)
}
esbetaweibull=function (p, a=1, b=1, alpha=1, sigma=1)
{
f=function (x) {varbetaweibull(x,a=a,b=b,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Double Weibull
ddweibull=function (x, c=1, mu=0, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=0.5*dweibull(x-mu,shape=c,scale=sigma)
pdf[log==TRUE]=dweibull(x-mu,shape=c,scale=sigma,log=TRUE)-log(2)
return(pdf)
}
pdweibull=function (x, c=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE&x<=mu]=0.5*exp(-(mu-x[x<=mu])**c/sigma**c)
cdf[log.p==FALSE&lower.tail==TRUE&x>mu]=1-0.5*exp(-(x[x>mu]-mu)**c/sigma**c)
cdf[log.p==FALSE&lower.tail==FALSE&x<=mu]=1-0.5*exp(-(mu-x[x<=mu])**c/sigma**c)
cdf[log.p==FALSE&lower.tail==FALSE&x>mu]=0.5*exp(-(x[x>mu]-mu)**c/sigma**c)
cdf[log.p==TRUE&lower.tail==TRUE&x<=mu]=-(mu-x[x<=mu])**c/sigma**c-log(2)
cdf[log.p==TRUE&lower.tail==TRUE&x>mu]=log(1-0.5*exp(-(x[x>mu]-mu)**c/sigma**c))
cdf[log.p==TRUE&lower.tail==FALSE&x<=mu]=log(1-0.5*exp(-(mu-x[x<=mu])**c/sigma**c))
cdf[log.p==TRUE&lower.tail==FALSE&x>mu]=-(x[x>mu]-mu)**c/sigma**c-log(2)
return(cdf)
}
vardweibull=function (p, c=1, mu=0, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p
var[p<=0.5]=mu-sigma*(-log(2*p[p<=0.5]))**(1/c)
var[p>0.5]=mu+sigma*(-log(2*(1-p[p>0.5])))**(1/c)
return(var)
}
esdweibull=function (p, c=1, mu=0, sigma=1)
{
f=function (x) {vardweibull(x,c=c,mu=mu,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponentiated Weibull
dexpweibull=function (x, a=1, alpha=1, sigma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*dweibull(x,shape=alpha,scale=sigma)*(1-pweibull(x,shape=alpha,scale=sigma))**(a-1)
pdf[log==TRUE]=log(a)+dweibull(x,shape=alpha,scale=sigma,log=TRUE)+(a-1)*log(1-pweibull(x,shape=alpha,scale=sigma))
return(pdf)
}
pexpweibull=function (x, a=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1-pweibull(x,shape=alpha,scale=sigma))**a
cdf[log.p==FALSE&lower.tail==FALSE]=1-(1-pweibull(x,shape=alpha,scale=sigma))**a
cdf[log.p==TRUE&lower.tail==TRUE]=a*log(1-pweibull(x,shape=alpha,scale=sigma))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(1-pweibull(x,shape=alpha,scale=sigma))**a)
return(cdf)
}
varexpweibull=function (p, a=1, alpha=1, sigma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=sigma*(-log(1-p**(1/a)))**(1/alpha)
return(var)
}
esexpweibull=function (p, a=1, alpha=1, sigma=1)
{
f=function (x) {varexpweibull(x,a=a,alpha=alpha,sigma=sigma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized power Weibull
dgenpowerweibull=function (x, a=1, theta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*theta*x**(a-1)*(1+x**a)**(theta-1)*exp(1-(1+x**a)**theta)
pdf[log==TRUE]=log(a*theta)+(a-1)*log(x)+(theta-1)*log(1+x**a)+1-(1+x**a)**theta
return(pdf)
}
pgenpowerweibull=function (x, a=1, theta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(1-(1+x**a)**theta)
cdf[log.p==FALSE&lower.tail==FALSE]=exp(1-(1+x**a)**theta)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(1-(1+x**a)**theta))
cdf[log.p==TRUE&lower.tail==FALSE]=1-(1+x**a)**theta
return(cdf)
}
vargenpowerweibull=function (p, a=1, theta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((1-log(1-p))**(1/theta)-1)**(1/a)
return(var)
}
esgenpowerweibull=function (p, a=1, theta=1)
{
f=function (x) {vargenpowerweibull(x,a=a,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Chen
dchen=function (x, b=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*lambda*x**(b-1)*exp(x**b)*exp(lambda-lambda*exp(x**b))
pdf[log==TRUE]=log(b*lambda)+(b-1)*log(x)+x**b+lambda-lambda*exp(x**b)
return(pdf)
}
pchen=function (x, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(lambda-lambda*exp(x**b))
cdf[log.p==FALSE&lower.tail==FALSE]=exp(lambda-lambda*exp(x**b))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(lambda-lambda*exp(x**b)))
cdf[log.p==TRUE&lower.tail==FALSE]=lambda-lambda*exp(x**b)
return(cdf)
}
varchen=function (p, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(log(1-(1/lambda)*log(1-p)))**(1/b)
return(var)
}
eschen=function (p, b=1, lambda=1)
{
f=function (x) {varchen(x,b=b,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Xie
dxie=function (x, a=1, b=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*lambda*(x/a)**(b-1)*exp(a*lambda+(x/a)**b-a*lambda*exp((x/a)**b))
pdf[log==TRUE]=log(b*lambda)+(b-1)*log(x/a)+a*lambda+(x/a)**b-a*lambda*exp((x/a)**b)
return(pdf)
}
pxie=function (x, a=1, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(a*lambda-a*lambda*exp((x/a)**b))
cdf[log.p==FALSE&lower.tail==FALSE]=exp(a*lambda-a*lambda*exp((x/a)**b))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(a*lambda-a*lambda*exp((x/a)**b)))
cdf[log.p==TRUE&lower.tail==FALSE]=a*lambda-a*lambda*exp((x/a)**b)
return(cdf)
}
varxie=function (p, a=1, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=a*(log(1-(log(1-p))/(lambda*a)))**(1/b)
return(var)
}
esxie=function (p, a=1, b=1, lambda=1)
{
f=function (x) {varxie(x,a=a,b=b,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Tukey Lambda
varTL=function (p, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(p**lambda-(1-p)**lambda)/lambda
return(var)
}
esTL=function (p, lambda=1)
{
f=function (x) {varTL(x,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Ramberg Schmeiser
varRS=function (p, b=1, c=1, d=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(p**b-(1-p)**c)/d
return(var)
}
esRS=function (p, b=1, c=1, d=1)
{
f=function (x) {varRS(x,b=b,c=c,d=d)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Freimer
varFR=function (p, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=(1/a)*((p**b-1)/b-((1-p)**c-1)/c)
return(var)
}
esFR=function (p, a=1, b=1, c=1)
{
f=function (x) {varFR(x,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Hankin Lee
varHL=function (p, a=1, b=1, c=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=c*p**a/(1-p)**b
return(var)
}
esHL=function (p, a=1, b=1, c=1)
{
f=function (x) {varHL(x,a=a,b=b,c=c)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Loglog
dloglog=function (x, a=1, lambda=2, log=FALSE)
{
pdf=x
pdf[log==FALSE]=a*log(lambda)*x**(a-1)*lambda**(x**a)*exp(1-lambda**(x**a))
pdf[log==TRUE]=log(a)+log(log(lambda))+(a-1)*log(x)+(x**a)*log(lambda)+1-lambda**(x**a)
return(pdf)
}
ploglog=function (x, a=1, lambda=2, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-exp(1-lambda**(x**a))
cdf[log.p==FALSE&lower.tail==FALSE]=exp(1-lambda**(x**a))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(1-lambda**(x**a)))
cdf[log.p==TRUE&lower.tail==FALSE]=1-lambda**(x**a)
return(cdf)
}
varloglog=function (p, a=1, lambda=2, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=((log(1-log(1-p)))/log(lambda))**(1/a)
return(var)
}
esloglog=function (p, a=1, lambda=2)
{
f=function (x) {varloglog(x,a=a,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponential logarithmic
dexplog=function (x, a=0.5, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=-b*(1-a)*(exp(-b*x))/(log(a)*(1-(1-a)*exp(-b*x)))
pdf[log==TRUE]=log(b)+log(1-a)-b*x-log(-log(a))-log(1-(1-a)*exp(-b*x))
return(pdf)
}
pexplog=function (x, a=0.5, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=1-(log(1-(1-a)*exp(-b*x)))/log(a)
cdf[log.p==FALSE&lower.tail==FALSE]=(log(1-(1-a)*exp(-b*x)))/log(a)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-(log(1-(1-a)*exp(-b*x)))/log(a))
cdf[log.p==TRUE&lower.tail==FALSE]=log(-log(1-(1-a)*exp(-b*x)))-log(-log(a))
return(cdf)
}
varexplog=function (p, a=0.5, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=-(1/b)*log((1-a**(1-p))/(1-a))
return(var)
}
esexplog=function (p, a=0.5, b=1)
{
f=function (x) {varexplog(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponential geometric
dexpgeo=function (x, theta=0.5, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=lambda*theta*exp(-lambda*x)*(1-(1-theta)*exp(-lambda*x))**(-2)
pdf[log==TRUE]=log(lambda*theta)-lambda*x-2*log(1-(1-theta)*exp(-lambda*x))
return(pdf)
}
pexpgeo=function (x, theta=0.5, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=theta*exp(-lambda*x)*(1-(1-theta)*exp(-lambda*x))**(-1)
cdf[log.p==FALSE&lower.tail==FALSE]=(1-exp(-lambda*x))*(1-(1-theta)*exp(-lambda*x))**(-1)
cdf[log.p==TRUE&lower.tail==TRUE]=log(theta)-lambda*x-log(1-(1-theta)*exp(-lambda*x))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-exp(-lambda*x))-log(1-(1-theta)*exp(-lambda*x))
return(cdf)
}
varexpgeo=function (p, theta=0.5, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=-(1/lambda)*log(p/(theta+(1-theta)*p))
return(var)
}
esexpgeo=function (p, theta=0.5, lambda=1)
{
f=function (x) {varexpgeo(x,theta=theta,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Exponential Poisson
dexppois=function (x, b=1, lambda=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=b*lambda*(exp(-b*x-lambda+lambda*exp(-b*x)))/(1-exp(-lambda))
pdf[log==TRUE]=log(b*lambda)-b*x-lambda+lambda*exp(-b*x)-log(1-exp(-lambda))
return(pdf)
}
pexppois=function (x, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1-exp(-lambda+lambda*exp(-b*x)))/(1-exp(-lambda))
cdf[log.p==FALSE&lower.tail==FALSE]=(exp(-lambda+lambda*exp(-b*x))-exp(-lambda))/(1-exp(-lambda))
cdf[log.p==TRUE&lower.tail==TRUE]=log(1-exp(-lambda+lambda*exp(-b*x)))-log(1-exp(-lambda))
cdf[log.p==TRUE&lower.tail==FALSE]=log(exp(-lambda+lambda*exp(-b*x))-exp(-lambda))-log(1-exp(-lambda))
return(cdf)
}
varexppois=function (p, b=1, lambda=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=-(1/b)*log((1/lambda)*log(1-p+p*exp(-lambda))+1)
return(var)
}
esexppois=function (p, b=1, lambda=1)
{
f=function (x) {varexppois(x,b=b,lambda=lambda)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Topp Leone
dTL2=function (x, b=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=2*b*(x*(2-x))**(b-1)*(1-x)
pdf[log==TRUE]=log(2*b)+(b-1)*log(x*(2-x))+log(1-x)
return(pdf)
}
pTL2=function (x, b=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(x*(2-x))**b
cdf[log.p==FALSE&lower.tail==FALSE]=1-(x*(2-x))**b
cdf[log.p==TRUE&lower.tail==TRUE]=b*log(x*(2-x))
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(x*(2-x))**b)
return(cdf)
}
varTL2=function (p, b=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=1-sqrt(1-p**(1/b))
return(var)
}
esTL2=function (p, b=1)
{
f=function (x) {varTL2(x,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Quadratic
dquad=function (x, a=0, b=1, log=FALSE)
{
alpha=12/(b-a)**3
beta=(a+b)/2
pdf=x
pdf[log==FALSE]=alpha*(x-beta)**2
pdf[log==TRUE]=log(alpha)+2*log(x-beta)
return(pdf)
}
pquad=function (x, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
alpha=12/(b-a)**3
beta=(a+b)/2
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(alpha/3)*((x-beta)**3+(beta-a)**3)
cdf[log.p==FALSE&lower.tail==FALSE]=1-(alpha/3)*((x-beta)**3+(beta-a)**3)
cdf[log.p==TRUE&lower.tail==TRUE]=log(alpha/3)+log((x-beta)**3+(beta-a)**3)
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-(alpha/3)*((x-beta)**3+(beta-a)**3))
return(cdf)
}
varquad=function (p, a=0, b=1, log.p=FALSE, lower.tail=TRUE)
{
alpha=12/(b-a)**3
beta=(a+b)/2
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=beta+sign(3*p/alpha-(beta-a)**3)*(abs(3*p/alpha-(beta-a)**3))**(1/3)
return(var)
}
esquad=function (p, a=0, b=1)
{
f=function (x) {varquad(x,a=a,b=b)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Schabe
dschabe=function (x, gamma=0.5, theta=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/theta)*(2*gamma+(1-gamma)*x/theta)*(gamma+x/theta)**(-2)
pdf[log==TRUE]=-log(theta)+log(2*gamma+(1-gamma)*x/theta)-2*log(gamma+x/theta)
return(pdf)
}
pschabe=function (x, gamma=0.5, theta=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=(1+gamma)*x/(x+gamma*theta)
cdf[log.p==FALSE&lower.tail==FALSE]=gamma*(theta-x)/(x+gamma*theta)
cdf[log.p==TRUE&lower.tail==TRUE]=log(1+gamma)+log(x)-log(x+gamma*theta)
cdf[log.p==TRUE&lower.tail==FALSE]=log(gamma)+log(theta-x)-log(x+gamma*theta)
return(cdf)
}
varschabe=function (p, gamma=0.5, theta=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=p*gamma*theta/(1+gamma-p)
return(var)
}
esschabe=function (p, gamma=0.5, theta=1)
{
f=function (x) {varschabe(x,gamma=gamma,theta=theta)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Birnbaum Saunders
dBS=function (x, gamma=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(x**(1/2)+x**(-1/2))*(dnorm((x**(1/2)-x**(-1/2))/gamma))/(2*gamma*x)
pdf[log==TRUE]=log(x**(1/2)+x**(-1/2))+dnorm((x**(1/2)-x**(-1/2))/gamma,log=TRUE)-log(2*gamma)-log(x)
return(pdf)
}
pBS=function (x, gamma=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=pnorm((x**(1/2)-x**(-1/2))/gamma,log.p=log.p,lower.tail=lower.tail)
return(cdf)
}
varBS=function (p, gamma=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=0.25*(gamma*qnorm(p)+sqrt(4+gamma**2*(qnorm(p))**2))**2
return(var)
}
esBS=function (p, gamma=1)
{
f=function (x) {varBS(x,gamma=gamma)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
#Generalized extreme value
dgev=function (x, mu=0, sigma=1, xi=1, log=FALSE)
{
pdf=x
pdf[log==FALSE]=(1/sigma)*(1+xi*(x-mu)/sigma)**(-1/xi-1)*exp(-(1+xi*(x-mu)/sigma)**(-1/xi))
pdf[log==TRUE]=-log(sigma)-(1/xi+1)*log(1+xi*(x-mu)/sigma)-(1+xi*(x-mu)/sigma)**(-1/xi)
return(pdf)
}
pgev=function (x, mu=0, sigma=1, xi=1, log.p=FALSE, lower.tail=TRUE)
{
cdf=x
cdf[log.p==FALSE&lower.tail==TRUE]=exp(-(1+xi*(x-mu)/sigma)**(-1/xi))
cdf[log.p==FALSE&lower.tail==FALSE]=1-exp(-(1+xi*(x-mu)/sigma)**(-1/xi))
cdf[log.p==TRUE&lower.tail==TRUE]=-(1+xi*(x-mu)/sigma)**(-1/xi)
cdf[log.p==TRUE&lower.tail==FALSE]=log(1-exp(-(1+xi*(x-mu)/sigma)**(-1/xi)))
return(cdf)
}
vargev=function (p, mu=0, sigma=1, xi=1, log.p=FALSE, lower.tail=TRUE)
{
if (log.p==TRUE) p=exp(p)
if (lower.tail==FALSE) p=1-p
var=mu-(sigma/xi)+(sigma/xi)*(-log(p))**(-xi)
return(var)
}
esgev=function (p, mu=0, sigma=1, xi=1)
{
f=function (x) {vargev(x,mu=mu,sigma=sigma,xi=xi)}
es=p
for (i in 1:length(p)) {es[i]=(1/p[i])*integrate(f,lower=0,upper=p[i],stop.on.error=FALSE)$value}
return(es)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.