Title: An R Package of Minorization-Maximization Algorithm via the Assembly–Decomposition Technology
Version: 2.0
Description: The minorization-maximization (MM) algorithm is a powerful tool for maximizing nonconcave target function. However, for most existing MM algorithms, the surrogate function in the minorization step is constructed in a case-specific manner and requires manual programming. To address this limitation, we develop the R package MMAD, which systematically integrates the assembly–decomposition technology in the MM framework. This new package provides a comprehensive computational toolkit for one-stop inference of complex target functions, including function construction, evaluation, minorization and optimization via MM algorithm. By representing the target function through a hierarchical composition of assembly functions, we design a hierarchical algorithmic structure that supports both bottom-up operations (construction, evaluation) and top-down operation (minorization).
License: GPL-3
Encoding: UTF-8
RoxygenNote: 7.3.2
Imports: utils
Depends: R (≥ 2.10)
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2025-11-25 16:19:42 UTC; jiaqigu
Author: Jiaqi Gu [aut, cre]
Maintainer: Jiaqi Gu <jiaqigu@usf.edu>
Repository: CRAN
Date/Publication: 2025-11-26 08:20:24 UTC

Function Construction

Description

This function allows the user to create the target function in an interactive manner. Here, the target function is expressed as

f(\boldsymbol{\theta})=f_J(\theta_{1},\ldots,\theta_{p},f_1,\ldots,f_{J-1}),

where

Here, user can input the function by

  1. inputting the dimensionality p;

  2. for j=1,\ldots,J;

    1. selecting which assembly function f_j belongs to;

    2. inputting the indexes of coefficients or existing functions included as arguments of f_j;

    3. inputting the coefficients.

Usage

Function_construction()

Value

An R list depicting the target function.


Function Evaluation

Description

This function allows the user to compute the value, gradients and the Hessian matrix of the target function f(\boldsymbol{\theta}) at a given point \boldsymbol{\theta}^*.

Usage

Function_evaluation(Function_obj, input)

Arguments

Function_obj

An R list depicting the target function.

input

The value \boldsymbol{\theta}^* at which the target function is evaluated.

Value

An R list recording the value, gradients and the Hessian matrix of the target function f(\boldsymbol{\theta}) at a given point \boldsymbol{\theta}^*.


Function Minorization

Description

This function allows the user to minorize the target function f(\boldsymbol{\theta}) at a given point \boldsymbol{\theta}^*.

Usage

Function_minorization(Function_obj, input)

Arguments

Function_obj

An R list depicting the target function.

input

The value \boldsymbol{\theta}^* at which the target function is minorized.

Value

An R list recording the surrogate function S(\boldsymbol{\theta}|\boldsymbol{\theta}^*)=S_C+\sum_{i=1}^pS_i(\theta_{i}|\boldsymbol{\theta}^*) where


Minorization-Maximization Algorithm via the Assembly–Decomposition Technology

Description

This function allows the user to maximize the target function f(\boldsymbol{\theta}) using MM algorithm with AD technology.

Usage

MMAD(Function_obj, init, tol = 1e-04)

Arguments

Function_obj

An R list depicting the target function.

init

The initial value \boldsymbol{\theta}^{(0)} for iterative optimization.

tol

The tolerance for convergence detection (default: 1\times 10^{-4}).

Value

The maximizer

\widehat{\boldsymbol{\theta}}=\arg\max_{\boldsymbol{\theta} \in\Theta }f(\boldsymbol{\theta}).