# Get some artificial data
gamma_data <- model_fam_data(fam_name = "gamma", nrow = 100)
# Estimate model
library("bamlss")
model <- bamlss(list(gamma ~ norm2 + binomial1,
sigma ~ norm2 + binomial1),
data = gamma_data,
family = gamma_bamlss())
# Get some predicted parameters in sample and without sample form
pred_params <- preds(model, vary_by = "binomial1")
pred_params_samples <- preds(model, vary_by = "binomial1", what = "samples")
# Now calculate moments - with samples more correct estimates come out
moments(pred_params, fam_name = "gamma", what = "mean")
moments(pred_params_samples, fam_name = "gamma", what = "mean")
# Now with specifying an external function
my_serious_fun <- function(par) {
return(par[["mu"]] + 3*par[["sigma"]])
}
moments(pred_params_samples,
what = "mean",
fam_name = "gamma",
ex_fun = "my_serious_fun")
Run the code above in your browser using DataLab