qpgee.est {geeVerse}R Documentation

Quantile Penalized Generalized Estimating Equations (QPGEE) Estimation Function

Description

This function implements Quantile Penalized Generalized Estimating Equations (QPGEE) for longitudinal data analysis. It estimates parameters using a penalized quantile regression approach within a GEE framework, allowing for different working correlation structures.

Usage

qpgee.est(
  x,
  y,
  tau = 0.5,
  nobs = rep(1, length(y)),
  correlation = "exchangeable",
  lambda = 0.1,
  intercept = FALSE,
  betaint = NULL,
  f0 = NULL,
  max_it = 100,
  cutoff = 10^-1
)

Arguments

x

A matrix of predictors.

y

A numeric vector of response variables.

tau

The quantile to be estimated (default is 0.5, the median).

nobs

A numeric vector indicating the number of observations per subject.

correlation

A string specifying the working correlation structure. Options include "exchangeable" (Exchangeable), "AR1" (Autoregressive), "Tri" (Tri-diagonal), "independence" (Independent), and "unstructured".

lambda

The penalty parameter for regularization (default is 0.1).

intercept

Whether to include an intercept when estimating.

betaint

Initial values for the beta coefficients. If NULL, non-longitudinal quantile regression is used for initialization.

f0

estimated conditional error distributions.

max_it

Maximum number of iterations (default is 100).

cutoff

Threshold for coefficient shrinkage (default is 0.1).

Value

A list containing the following components:

beta

Estimated beta coefficients.

g

Fitted values of the linear predictor.

R

Estimated working correlation matrix.

X_selected

Indices of selected predictors.

mcl

Mean check loss.

hbic

Hannan-Quinn Information Criterion value.

converge

Boolean indicating whether the algorithm converged.

Examples

# Example usage:
sim_data <- generateData(nsub = 100, nobs = rep(10, 100),  p = 100,
                         beta0 = c(rep(1,7),rep(0,93)), rho = 0.6, correlation = "AR1",
                          dis = "normal", ka = 1)

X=sim_data$X
y=sim_data$y

#fit qpgee
qpgee.fit = qpgee.est(X,y,tau=0.5,nobs=rep(10, 100))
qpgee.fit$beta


[Package geeVerse version 0.2.1 Index]