Data and code for "Exact Finite-Sample Inference for the Exponential Proportional Hazards Model via the Empirical Characteristic Function"
Description
Reproducibility package for the article submitted to Computational Statistics and Data Analysis. Contains six Python scripts that reproduce every table and closed-form result, the leukemia remission dataset (Freireich et al., 1963) used in the real-data example, and pre-computed outputs. Scripts cover Monte Carlo validation of the exact finite-sample bias/variance formulas, coverage of the exact confidence intervals, the Weibull PHM extension (known and unknown shape), a Cauchy ECF-vs-ML comparison, misspecification and dependent-censoring analyses, and a symbolic verification of all closed-form formulas. All results are fully reproducible with numpy, scipy and sympy under fixed random seeds.
Files
Steps to reproduce
Requirements: Python 3.10+ with numpy, scipy, and sympy. Install with: pip install -r requirements.txt All scripts are in the code/ folder and print the corresponding tables to the console. The dataset is in data/leukemia.csv. Fixed random seeds make every Monte Carlo result reproducible. 1. Verify the closed-form formulas (fast, symbolic). Run: python 06_exact_formulas_check.py This confirms the exact bias theta/(n-1), the exact variance formula and its asymptotic limit, the Fisher information and Cramer-Rao efficiency, the Cauchy information I(theta)=1/2, the Weibull identifying ratio, and the dependent-censoring probability limit. 2. Reproduce the real-data analysis (fast). Run: python 05_leukemia_analysis.py This reads data/leukemia.csv and outputs all reported numbers for the 6-MP and placebo arms (point estimates, exact SD, confidence intervals, median, bias correction) and the Weibull-vs-exponential likelihood-ratio goodness-of-fit test. 3. Reproduce the exponential-PHM Monte Carlo tables (~1-2 min). Run: python 01_exponential_phm_mc.py Outputs the bias/RMSE table (vs the exact formula), the confidence-interval coverage table across censoring levels, and the comparison with the censoring-ignorant estimator. 4. Reproduce the Weibull tables (~3-5 min). Run: python 02_weibull_phm_mc.py Outputs the known-shape efficiency table, the unknown-shape consistency table, and the moment-estimator-vs-MLE efficiency comparison. 5. Reproduce the Cauchy comparison (~2-3 min). Run: python 03_cauchy_ecf_vs_ml.py Outputs the ECF-vs-ML RMSE table against the Cramer-Rao bound sqrt(2/n). 6. Reproduce the robustness analyses (~3-5 min). Run: python 04_misspecification.py Outputs the distributional-misspecification table and the dependent-censoring table, plus a large-sample check of the probability limit. To save any output to a file, redirect it, e.g.: python 01_exponential_phm_mc.py > ../results/table_exponential.txt Pre-computed outputs of all six scripts are already provided in the results/ folder for direct comparison. Small last-digit differences across numpy versions are within Monte Carlo error and do not affect any conclusion.
Institutions
- National University of UzbekistanTashkent, Tashkent