estimate_parameters_POM {cmpp} | R Documentation |
Estimate Parameters for the Proportional Odds Model (POM)
Description
This function estimates the parameters of the Proportional Odds Model (POM) using maximum likelihood estimation. It computes the Hessian matrix, calculates standard errors, and derives p-values for the estimated parameters. The function ensures that the diagonal elements of the covariance matrix are positive for valid variance estimates.
Usage
estimate_parameters_POM(initial_params, FeaturesNames = NULL)
Arguments
initial_params |
A numeric vector of initial parameter values to start the optimization.
Default is |
FeaturesNames |
A character vector specifying the names of the features (covariates).
If |
Details
This function performs the following steps:
Estimates the model parameters using the
optim
function with the BFGS method.Computes the gradient of the log-likelihood using the
compute_log_f_gradient_rcpp2
function.Computes the Hessian matrix numerically using the
hessian
function from thenumDeriv
package.Ensures that the diagonal elements of the covariance matrix are positive to avoid invalid variance estimates.
Calculates standard errors and p-values for the estimated parameters.
The Proportional Odds Model (POM) is a parametric model for cumulative incidence functions in competing risks analysis. It uses Gompertz distributions to model the failure times for competing events.
Value
A data frame containing:
Parameter |
The parameter names, including |
Estimate |
The estimated parameter values. |
S.E |
The standard errors of the estimated parameters. |
PValue |
The p-values for the estimated parameters. |
See Also
stats::optim, compute_log_f_gradient_rcpp2, log_f_rcpp2.
Examples
library(cmpp)
set.seed(1984)
# Example data
features <- matrix(rnorm(300, 1, 2), nrow = 100, ncol = 3)
delta1 <- sample(c(0, 1), 100, replace = TRUE)
delta2 <- 1 - delta1
x <- rexp(100, rate = 1/10)
# Initialize the Cmpp model
Initialize(features, x, delta1, delta2, h = 1e-5)
# Define initial parameter values
initial_params <- rep(0.001, 2 * (ncol(features) + 2))
# Estimate parameters using the POM
result <- estimate_parameters_POM(initial_params)
print(result)