getQuantileRefactored function

Compute Quantile Functions for a Predictor in a GAMLSS Model

Compute Quantile Functions for a Predictor in a GAMLSS Model

This function computes quantile functions for a specified predictor in a GAMLSS model, allowing the evaluation of response quantiles (e.g., 25th, 50th, 75th percentiles) as a function of the predictor. It is a modified version of the getQuantile function from the GAMLSS package, with improvements to explicitly require the dataset as an argument, avoiding reliance on global or external variables.

getQuantileRefactored( obj, term, quantile, data, n.points = 100, fixed.at = list() )

Arguments

  • obj: A fitted GAMLSS model object.
  • term: A character string specifying the name of the predictor variable for which quantiles are computed.
  • quantile: A numeric vector of probabilities (e.g., c(0.25, 0.5, 0.75)) at which to compute the quantiles.
  • data: A data frame containing the dataset used in the model. This must include the predictor specified in term.
  • n.points: An integer specifying the number of points at which to evaluate the quantile functions (default: 100).
  • fixed.at: A named list specifying fixed values for other predictors in the dataset. If not provided, categorical predictors are set to their most frequent levels, and numeric predictors to their median values.

Returns

A list of spline functions, one for each quantile specified in quantile. Each spline function can be evaluated at specific predictor values to obtain the corresponding quantile.

Details

This function generates a temporary dataset by varying the specified predictor (term) over a sequence of values while holding all other predictors constant (using values specified in fixed.at, or derived defaults). It then computes the distribution parameters for the GAMLSS model and calculates the quantiles using the appropriate quantile function for the distribution family.

Examples

if (requireNamespace("gamlss", quietly = TRUE)) { library(gamlss) sub_df <- data.frame( age = seq(1, 20, length.out = 100), height = 50 + 2.5 * seq(1, 20, length.out = 100) + rnorm(100, 0, 5) ) mdl <- gamlss(height ~ pb(age), data = sub_df, family = NO()) quantile_function <- getQuantileRefactored( obj = mdl, term = "age", quantile = c(0.25, 0.5, 0.75), data = sub_df ) }else{ message("The 'gamlss' package is not installed. Please install it to run this example.") }
  • Maintainer: Zheng Ren
  • License: MIT + file LICENSE
  • Last published: 2025-03-24

Downloads (last 30 days):