pglm: Profile Boosting for Generalized Linear Models.

View source: R/pglm.R

pglmR Documentation

Profile Boosting for Generalized Linear Models.

Description

pglm inherits the usage of the built-in function glm.

Usage

pglm(
  formula,
  family = gaussian,
  data,
  weights,
  subset,
  na.action,
  start = NULL,
  etastart,
  mustart,
  offset,
  control = list(...),
  model = TRUE,
  method = "glm.fit",
  x = FALSE,
  y = TRUE,
  singular.ok = TRUE,
  contrasts = NULL,
  ...,
  stopFun = "EBIC",
  keep = NULL,
  maxK = NULL,
  verbose = FALSE
)

pglm.fit(
  x,
  y,
  weights = rep.int(1, NROW(y)),
  start = NULL,
  etastart = NULL,
  mustart = NULL,
  offset = rep.int(0, NROW(y)),
  family = gaussian(),
  control = list(),
  intercept = TRUE,
  singular.ok = TRUE,
  stopFun = "EBIC",
  keep = NULL,
  maxK = NULL,
  verbose = FALSE
)

Arguments

formula

Parameter passed to glm.

family

Parameter passed to glm.

data

Parameter passed to glm.

weights

Parameter passed to glm.

subset

Parameter passed to glm.

na.action

Parameter passed to glm.

start

Parameter passed to glm.

etastart

Parameter passed to glm.

mustart

Parameter passed to glm.

offset

Parameter passed to glm.

control

Parameter passed to glm.

model

Parameter passed to glm.

method

Parameter passed to glm.

x

Parameter passed to glm.

y

Parameter passed to glm.

singular.ok

Parameter passed to glm.

contrasts

Parameter passed to glm.

...

Parameters passed to glm.

stopFun

Parameter passed to pboost.

keep

Parameter passed to pboost.

maxK

Parameter passed to pboost.

verbose

Parameter passed to pboost.

intercept

Parameter passed to glm.fit.

Value

A glm model object fitted on the selected features.

References

Zengchao Xu, Shan Luo and Zehua Chen (2022). Partial profile score feature selection in high-dimensional generalized linear interaction models. Statistics and Its Interface. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.4310/21-SII706")}

Examples

set.seed(2026)
n <- 200
p <- 100
x <- matrix(rnorm(n*p), n)

eta <- drop( x[, 1:3] %*% runif(3, 1.0, 1.5) )
y <- rbinom(n, 1, 1/(1+exp(-eta)))
DF <- data.frame(y, x)

## ---------- pboost ----------
pglm(y ~ ., "binomial", DF, verbose=TRUE)
pglm(y ~ ., "binomial", DF, stopFun=BIC, verbose=TRUE)

scoreLogistic <- function(object) {
   eta.hat <- object[["linear.predictors"]]
   return(object[["y"]] - 1/(1+exp(-eta.hat)))
}
(result <- pboost(x, y, glm, scoreLogistic, family="binomial", verbose=TRUE))
all.vars(formula(result)[[3]])

## ---------- frs ----------
fglm(y ~ ., "binomial", DF, verbose=TRUE)
fglm(y ~ ., "binomial", DF, stopFun=BIC, verbose=TRUE)

frs(x, y, glm, family="binomial", verbose=TRUE)


pboost documentation built on May 24, 2026, 9:08 a.m.