Skip to contents

This class represents a generalized linear model with exponential distribution. It inherits from GLM and implements its functions that, for example, evaluate the conditional density and distribution functions.

Super classes

gofreg::ParamRegrModel -> gofreg::GLM -> ExpGLM

Methods

Inherited methods


Method fit()

Calculates the maximum likelihood estimator for the model parameters based on given data.

Usage

ExpGLM$fit(
  data,
  params_init = private$params,
  loglik = loglik_xy,
  inplace = FALSE
)

Arguments

data

tibble containing the data to fit the model to

params_init

initial value of the model parameters to use for the optimization (defaults to the fitted parameter values)

loglik

function(data, model, params) defaults to loglik_xy()

inplace

logical; if TRUE, default model parameters are set accordingly and parameter estimator is not returned

Returns

MLE of the model parameters for the given data, same shape as params_init


Method f_yx()

Evaluates the conditional density function.

Usage

ExpGLM$f_yx(t, x, params = private$params)

Arguments

t

value(s) at which the conditional density shall be evaluated

x

matrix of covariates, each row representing one sample

params

model parameters to use (list() with tag beta), defaults to the fitted parameter values

Returns

value(s) of the conditional density function, same shape as t


Method F_yx()

Evaluates the conditional distribution function.

Usage

ExpGLM$F_yx(t, x, params = private$params)

Arguments

t

value(s) at which the conditional distribution shall be evaluated

x

matrix of covariates, each row representing one sample

params

model parameters to use (list() with tag beta), defaults to the fitted parameter values

Returns

value(s) of the conditional distribution function, same shape as t


Method F1_yx()

Evaluates the conditional quantile function.

Usage

ExpGLM$F1_yx(t, x, params = private$params)

Arguments

t

value(s) at which the conditional quantile function shall be evaluated

x

matrix of covariates, each row representing one sample

params

model parameters to use (list() with tag beta), defaults to the fitted parameter values

Returns

value(s) of the conditional quantile function, same shape as t


Method sample_yx()

Generates a new sample of response variables with the same conditional distribution.

Usage

ExpGLM$sample_yx(x, params = private$params)

Arguments

x

matrix of covariates, each row representing one sample

params

model parameters to use (list() with tag beta), defaults to the fitted parameter values

Returns

vector of sampled response variables, same length as nrow(x)


Method clone()

The objects of this class are cloneable with this method.

Usage

ExpGLM$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Use the built-in cars dataset
x <- datasets::cars$speed
y <- datasets::cars$dist
data <- dplyr::tibble(x=x, y=y)

# Create an instance of ExpGLM
model <- ExpGLM$new()

# Fit an Exponential GLM to the cars dataset
model$fit(data, params_init = list(beta=3), inplace=TRUE)
params_opt <- model$get_params()

# Plot the resulting regression function
plot(datasets::cars)
abline(a = 0, b = params_opt$beta)

# Generate a sample for y for given x following the same distribution
x.new <- seq(min(x), max(x), by=2)
y.smpl <- model$sample_yx(x.new)
points(x.new, y.smpl, col="red")

# Evaluate the conditional density, distribution, quantile and regression
# function at given values
model$f_yx(y.smpl, x.new)
#>  [1] 0.052973083 0.024542706 0.038582321 0.014103623 0.017757721 0.008522388
#>  [7] 0.008322539 0.015644532 0.016640188 0.002634610 0.007220426
model$F_yx(y.smpl, x.new)
#>  [1] 0.4421942 0.6123485 0.1874575 0.6287227 0.4390344 0.6859078 0.6494552
#>  [8] 0.2586849 0.1238954 0.8474168 0.5438142
model$F1_yx(y.smpl, x.new)
#> Warning: NaNs produced
#>  [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
y.pred <- model$mean_yx(x.new)
points(x.new, y.pred, col="blue")