par.fit {CompDist}R Documentation

par.fit

Description

Returns the parameters fitted to a random sample along with a number of error measures, such as the log likelihood, AIC, BIC, AICc, CAIC and HQC.

Usage

par.fit(data,dists,par,borders,par.pos,optit,buffer,cont)

Arguments

data

Data set to be fitted to the distribution

dists

A vector of strings stating the desired partial distributions in order

par

A list of parameters, a vector of parameters for each partial distribution, with the first two being the interval limits and the second argument being he weights to be used

borders

Optional: If the distribution has to have continuous and differentiable catentation points, the user specifies a list for each of area following the first, containing a range for a parameter of the following partial distribution to lie within.

par.pos

Optional: If 'borders' is non empty, e.g a smooth function is desired, here the vector of parameter positions that need to be changed is specified. Default value is 1, meaning the first parameter for each partial distribution is amended

optit

Number of iteration loops over the parameter optimisation

buffer

Optional: A two dimensional vector, containing the values for upper and lower buffer from the respective catenation points during optimization

cont

Logical value for smooth catenation points. Default FALSE.

Value

Gives parameter estimates and values of the log likelihood, AIC, BIC, AICc, CAIC and HQC.

Author(s)

Martin Wiegand, Saralees Nadarajah

Examples

# Generate random data


par<-list()

distvec<-c("lnorm","gamma")

par[[1]]<-c(0,1,Inf)

par[[2]]<-c(1)

par[[3]]<-c(0,1)

par[[4]]<-c(1,1)


n<-1000

# non-continuous case

r1<-rcomp(n,distvec,par)

# continuous case

r2<-rcomp(n,distvec,par,borders=list(c(0.00001,10)),buffer=c(10e-5,0))


# Initial Guess



par<-list()

distvec<-c("lnorm","gamma")

par[[1]]<-c(0,1,Inf)

par[[2]]<-c(1)

par[[3]]<-c(0,0.5)

par[[4]]<-c(0.5,1)



# Fitting



# non-continuous case

estimate1<-par.fit(r1,distvec,par,optit=1)

# continuous case

estimate2<-par.fit(r2,distvec,par,borders=list(c(0.00001,10)),optit=1,buffer=c(10e-5,0),cont=TRUE)



x<-seq(0,30,0.01)

# non-continuous case

y1<-dcomp(x,distvec,estimate1$Parameter)

# continuous case

y2<-dcomp(x,distvec,estimate2$Parameter,borders=list(c(0.00001,10)),buffer=c(10e-5,0))



par(mfrow=c(1,2),oma=rep(0,4))

hist(r1,probability=TRUE,breaks=40,main="",xlab="Data",ylab="Fitted density")

lines(x,y1,col="red")

hist(r2,probability=TRUE,breaks=40,main="",xlab="Data",ylab="Fitted density")

lines(x,y2,col="red")



estimate1

estimate2

[Package CompDist version 1.0 Index]