The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Modified Topp-Leone Distribution: Properties, Estimation, and Applications

Shikhar Tyagi, Abhishek Tyagi, Arvind Pandey, Bhupendra Singh, Vrijesh Tripathi

2026-08-05

Introduction

The ModToppLeone package provides comprehensive tools for working with the Modified Topp-Leone (MTL) distribution, introduced by Singh, Tyagi, Singh, and Tyagi (2025). The MTL distribution is a flexible single-parameter lifetime model obtained via the transformation \(Y = X / (1 - X)\) where \(X\) follows the classical Topp-Leone distribution.

The probability density function (PDF) and cumulative distribution function (CDF) of the MTL distribution with shape parameter \(\alpha > 0\) are given by:

\[f(y; \alpha) = 2 \alpha (1 + y)^{-(2\alpha + 1)} (2y + y^2)^{\alpha - 1}, \quad y > 0\]

\[F(y; \alpha) = \left( 1 - \frac{1}{(1 + y)^2} \right)^\alpha, \quad y > 0\]

Core Distribution Functions

The package provides standard distribution functions: dmtl, pmtl, qmtl, rmtl, smtl, and hmtl.

# Density and CDF
dmtl(x = 1.0, alpha = 1.5)
#> [1] 0.3247595
pmtl(q = 1.0, alpha = 1.5)
#> [1] 0.6495191

# Quantile function and Random Generation
qmtl(p = c(0.25, 0.50, 0.75), alpha = 1.5)
#> [1] 0.2876192 0.6439022 1.3937547

set.seed(123)
sample_data <- rmtl(n = 10, alpha = 1.5)
sample_data
#>  [1] 0.33118428 1.61135481 0.49233090 2.54454282 3.99419343 0.07060969
#>  [7] 0.69846089 2.69933597 0.74728669 0.56742655

# Survival and Hazard Rate Functions
smtl(x = 1.0, alpha = 1.5)
#> [1] 0.3504809
hmtl(x = 1.0, alpha = 1.5)
#> [1] 0.9266111

Statistical Properties

The package includes helper functions to derive theoretical statistical properties:

# Mode and Mean
mode_mtl(alpha = 2.5)
#> [1] 0.553774
mean_mtl(alpha = 1.5)
#> [1] 1.356194

# Quantiles summary (Median, Skewness, Kurtosis)
quantiles_mtl(alpha = 1.5)
#>        Q1    Median        Q3      Mode  Skewness  Kurtosis 
#> 0.2876192 0.6439022 1.3937547 0.4678898 0.3558059 1.6156166

# Mean Deviations about mean and median
meandev_mtl(alpha = 1.5)
#>   MD_mean MD_median 
#> 1.2537654 0.3417418

# Stress-Strength Reliability P(Y2 < Y1)
ssr_mtl(alpha1 = 2, alpha2 = 3)
#> [1] 0.4

Classical Estimation Methods

The parameter \(\alpha\) can be estimated using five classical point estimation procedures: Maximum Likelihood (MLE), Ordinary Least Squares (OLS), Weighted Least Squares (WLS), Cramér-von Mises (CVM), and Maximum Product of Spacings (MPS).

set.seed(42)
sim_data <- rmtl(n = 50, alpha = 2.0)

# Unified estimation wrapper
fit_results <- fit_mtl(x = sim_data, method = "all")
fit_results
#>   Method Estimate        SE    LogLik      AIC      BIC     CAIC   KS_stat
#> 1    MLE 2.400166 0.3394347 -94.32128 190.6426 192.5546 190.7259 0.1468569
#> 2    OLS 3.067035        NA -95.95476 193.9095 195.8215 193.9929 0.1166564
#> 3    WLS 3.032103        NA -95.79980 193.5996 195.5116 193.6829 0.1181673
#> 4    CVM 3.078623        NA -96.00760 194.0152 195.9272 194.0985 0.1161557
#> 5    MPS 2.270047        NA -94.39753 190.7951 192.7071 190.8784 0.1535976
#>     p.value
#> 1 0.2093677
#> 2 0.4692642
#> 3 0.4530415
#> 4 0.4747030
#> 5 0.1700895

Bayesian Estimation

Bayesian estimation is supported under both informative (Gamma) and non-informative priors with symmetric (SELF) and asymmetric (ELF, PLF, GELF) loss functions, alongside Chen-Shao Highest Posterior Density (HPD) intervals.

# Non-informative prior Bayesian estimation
bayes_res <- bayes_mtl(x = sim_data, prior = "noninformative", loss = "all")
bayes_res$estimates
#>     SELF      ELF      PLF     GELF 
#> 2.400848 2.351487 2.425335 2.351487
bayes_res$hpd
#>    Lower    Upper 
#> 1.742630 3.077446

Censoring Schemes

The package supports sample generation and parameter estimation under various censoring schemes, including Random Right Censoring, Type-I, Type-II, and Progressive Type-II Censoring.

# Progressive Type-II Censoring example
R_scheme <- c(2, 0, 1, 0, 2)
prog_sample <- rcensor_mtl(n = 10, alpha = 2.0, scheme = "progressive2", m = 5, R = R_scheme)

mle_censor_mtl(x = prog_sample$x, scheme = "progressive2", R = R_scheme)
#> $method
#> [1] "MLE under progressive2 censoring"
#> 
#> $estimate
#> [1] 3.172105
#> 
#> $se
#> [1] 1.0705
#> 
#> $conf.level
#> [1] 0.95
#> 
#> $ci
#>    Lower    Upper 
#> 1.073963 5.270248 
#> 
#> $loglik
#> [1] -6.318677
#> 
#> attr(,"class")
#> [1] "mtl_censor_fit"

Real Datasets

The package includes three benchmark real datasets analyzed in the research paper:

  1. dataset_air: Air conditioning failure times of Boeing 720 jet airplanes.
  2. dataset_covid_india: Daily new COVID-19 cases in India.
  3. dataset_covid_france: Daily new COVID-19 cases in France.
data(dataset_air)
mle_mtl(dataset_air)
#> Warning in ks.test.default(x, "pmtl", alpha = alpha_hat): ties should not be
#> present for the one-sample Kolmogorov-Smirnov test
#> $method
#> [1] "Maximum Likelihood Estimation (MLE)"
#> 
#> $estimate
#> [1] 0.878027
#> 
#> $se
#> [1] 0.1603051
#> 
#> $conf.level
#> [1] 0.95
#> 
#> $ci
#>     Lower     Upper 
#> 0.5638349 1.1922192 
#> 
#> $loglik
#> [1] -11.11799
#> 
#> $AIC
#> [1] 24.23599
#> 
#> $BIC
#> [1] 25.63718
#> 
#> $CAIC
#> [1] 24.37884
#> 
#> $KS_stat
#> [1] 0.1488445
#> 
#> $p.value
#> [1] 0.5195341
#> 
#> attr(,"class")
#> [1] "mtl_fit"

References

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.