ExpertFunction: Expert Function Classes

ExpertFunctionR Documentation

Expert Function Classes

Description

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

Public 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)

sparktseung/LRMoE documentation built on March 21, 2022, 3:22 a.m.