This is the base class for Expert Functions. Users are expected to interact with ExpertFunction to perform all the computations.

Public fields

distribution

(character)
The distribution name specified by the user.

continuous

(logical)
Given distribution is continuous or not, default set to be TRUE.

Methods


Method new()

Create a new ExpertFunction Class

Usage

ExpertFunction$new(distribution, params = list(), penalty_params = list())

Arguments

distribution

(character)
The distribution name specified by the user.

params

(list)
The parameters for the given distribution. Could be preset by users or postset by running ExpertFunction$params_init(observations)

penalty_params

(list)
The penalty parameters used to determine the penalty applied on likelihood, will be further used in (initialize_penalty) methods Calculate the penalty value of the Expert Distribution


Method initialize_penalty()

Prerequisite: self$params and self$penalty_params need to be set. Otherwise will return the default penalty value.

Usage

ExpertFunction$initialize_penalty()

Arguments

default

(logical)
Use default penalty parameters if default is TRUE, else use user defined penalty parameters. Default set to be TRUE.


Method initialize_params()

Estimate all the parameters for this expert function based on observation

Usage

ExpertFunction$initialize_params(y)

Arguments

y

(numeric)
The observations from the preset expert distribution


Method default_penalty()

Set default hyper parameters

Set the parameters for the expert function

Usage

ExpertFunction$default_penalty()


Method set_params()

Usage

ExpertFunction$set_params(expert_params)

Arguments

expert_params

(logical)
The parameters for the given distribution. Get the parameters for the expert function


Method get_params()

Usage

ExpertFunction$get_params()

Arguments

params

(logical)
The parameters for the given distribution. Set the penalty parameters If there are no expert_penalty_params given, use default penalty parameters.


Method set_penalty_params()

Usage

ExpertFunction$set_penalty_params(expert_penalty_params)

Arguments

expert_penalty_params

(logical)
The parameters for the given distribution. Could be preset by users or postset by running ExpertFunction$initialize_params(observations)


Method get_penalty_params()

Get the penalty parameters

Usage

ExpertFunction$get_penalty_params()


Method get_penalty()

Get the penalty value, penalty value cannot be set. It can only been initialized.

Usage

ExpertFunction$get_penalty()


Method get_mean()

Get mean of this expert function

Usage

ExpertFunction$get_mean()


Method get_variance()

Get variance of this expert function

Usage

ExpertFunction$get_variance()


Method get_cdf()

Get the cdf of this expert function given RV

Usage

ExpertFunction$get_cdf(q)

Arguments

q

The value of random variable


Method get_logcdf()

Get the logcdf of this expert function given RV

Usage

ExpertFunction$get_logcdf(q)

Arguments

q

The value of random variable


Method get_pdf()

Get the pdf of this expert function given RV

Usage

ExpertFunction$get_pdf(x)

Arguments

x

The value of random variable


Method get_logpdf()

Get the logpdf of this expert function given RV

Usage

ExpertFunction$get_logpdf(x)

Arguments

x

The value of random variable


Method get_quantile()

Get the quantile of this expert function given probability

Usage

ExpertFunction$get_quantile(p)

Arguments

p

The probability


Method get_lev()

Get the Limited Expected Value of the expert function.

Usage

ExpertFunction$get_lev(u)

Arguments

u

(numeric)


Method get_excess()

Get the Excess of the function.

Usage

ExpertFunction$get_excess(u)

Arguments

u

(numeric)


Method exposurize()

Exposurize the parameters, return a copy of the object with the updated parameters Note this function will not change the parameters of the original object

Usage

ExpertFunction$exposurize(exposure = 1)

Arguments

exposure

(numeric)
The exposure applied to the parameters, default set to be 1


Method simulate()

Simulate value based on distribution parameters

Usage

ExpertFunction$simulate(n = 1)

Arguments

n

(numeric)
The number of simulated values you want Calculate the exact log likelihood of the Expert Distribution


Method ll_exact()

Usage

ExpertFunction$ll_exact(y)

Arguments

y

(numeric)
The observations from the preset expert distribution Calculate the non-exact log likelihood of the Expert Distribution


Method ll_not_exact()

Usage

ExpertFunction$ll_not_exact(tl, yl, yu, tu)

Arguments

tl

(numeric)
A vector of length N: lower bounds of truncation.

yl

(numeric)
A vector of length N: lower bounds of censoring.

yu

(numeric)
A vector of length N: upper bounds of censoring.

tu

(numeric)
A vector of length N: upper bounds of truncation.


Method EM_notexact()

Perform the EM optimization with non-exact observations

Usage

ExpertFunction$EM_notexact(
  expert_old,
  tl,
  yl,
  yu,
  tu,
  exposure,
  z_e_obs,
  z_e_lat,
  k_e,
  penalty,
  pen_params
)

Arguments

expert_old

Old expert function

tl

(numeric)
A vector of length N: lower bounds of truncation.

yl

(numeric)
A vector of length N: lower bounds of censoring.

yu

(numeric)
A vector of length N: upper bounds of censoring.

tu

(numeric)
A vector of length N: upper bounds of truncation.

exposure

A vector of length N: exposures for observations

z_e_obs

Calculated from E-step

z_e_lat

Calculated from E-step

k_e

Calculated from E-step

penalty

T/F: whether penalty is imposed

pen_params

A vector of penalty parameters


Method EM_exact()

Perform the EM optimization with exact observations

Usage

ExpertFunction$EM_exact(expert_old, ye, exposure, z_e_obs, penalty, pen_params)

Arguments

expert_old

Old expert function

ye

A vector of length N: exact observations

exposure

A vector of length N: exposures for observations

z_e_obs

Calculated from E-step

penalty

T/F: whether penalty is imposed

pen_params

A vector of penalty parameters


Method clone()

The objects of this class are cloneable with this method.

Usage

ExpertFunction$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# p = ExpertFunction$new("poisson")
# p$continuous
# p$distribution
# Estimate the start parameters and get them
# p$initialize_params(c(1,12,2,3,4,6,7,7))
# p$get_params()
# Initialize the penalty using default penalty parameters and get them
# p$initialize_penalty()
# p$get_penalty()
# Without setiing parameters, the object will use preset parameters
# p$get_penalty_params()
# Exposurize function, this will not change the parameters of the ExpertFunction
# p$exposurize(2)
# Calculate the loglikelihood by two methods
# p$ll_exact(5)
# p$ll_not_exact(1,1,2,2)