| name | pmm-research |
| description | Research assistant for writing academic papers about Polynomial Maximization Method (PMM) - parameter estimation with asymmetric non-Gaussian distributions |
PMM Research & Paper Writing Skill
Comprehensive assistance for conducting research and writing academic papers using the Polynomial Maximization Method (МПП - Метод Максимізації Поліномів) for parameter estimation in statistical models with asymmetric non-Gaussian error distributions.
When to Use This Skill
This skill should be triggered when:
- Writing academic papers about PMM methodology
- Implementing PMM estimators for regression, time series, or other statistical models
- Conducting Monte Carlo simulations to evaluate PMM performance
- Comparing PMM with classical methods (OLS, MLE, CSS)
- Preparing reproducibility packages for journal submissions
- Creating statistical analysis with asymmetric error distributions
- Developing R packages for PMM-based estimation
- Working on papers about variance reduction in parameter estimation
Key Concepts
Polynomial Maximization Method (PMM)
- Core Principle: Uses polynomials of degree S to estimate distribution parameters
- PMM1 (S=1): Equivalent to classical Ordinary Least Squares (OLS)
- PMM2 (S=2): Provides variance reduction for asymmetric distributions
- Variance Reduction Formula:
g = 1 - c₃² / (2 + c₄) where c₃ is skewness, c₄ is kurtosis
- Original Developer: Yu. P. Kunchenko (1992)
Application Domains
- Linear Regression - Parameter estimation with non-Gaussian errors
- Time Series (ARIMA) - AR, MA, ARMA, ARIMA models with asymmetric innovations
- Autoregressive Models - AR(p) with non-normal residuals
- Moving Average Models - MA(q) with skewed errors
- Economic/Financial Data - WTI crude oil prices, stock returns, volatility modeling
Performance Characteristics
| Distribution | Skewness | Kurtosis | Theoretical Efficiency | Actual Improvement |
|---|
| Gamma (α=0.5) | 2.83 | 12 | 57% | ~50% |
| Exponential | 2.00 | 6 | 50% | ~45% |
| Gamma (α=2) | 1.41 | 3 | 40% | ~35% |
| Lognormal | 1.00 | 1.5 | 29% | ~25% |
Quick Reference
PMM2 Linear Regression (R)
library(EstemPMM)
n <- 100
x <- rnorm(n)
errors <- rgamma(n, shape = 2, scale = 1) - 2
y <- 2 + 1.5 * x + errors
data <- data.frame(x = x, y = y)
fit <- lm_pmm2(y ~ x, data = data)
summary(fit)
compare_with_ols(y ~ x, data)
vf <- pmm2_variance_factor(fit@m2, fit@m3, fit@m4)
cat("Variance reduction factor g:", vf$g, "\n")
PMM2 ARIMA Models (R)
library(EstemPMM)
ar_fit <- ar_pmm2(y, order = 1, method = "pmm2")
arma_fit <- arma_pmm2(y, order = c(1, 1))
arima_fit <- arima_pmm2(y, order = c(1, 1, 1))
compare_ar_methods(y, p = 1)
Monte Carlo Simulation Template
run_simulation <- function(n = 100, reps = 1000, dist = "gamma") {
results <- matrix(NA, nrow = reps, ncol = 4)
colnames(results) <- c("OLS_beta", "PMM2_beta", "OLS_var", "PMM2_var")
for (i in 1:reps) {
x <- rnorm(n)
if (dist == "gamma") {
errors <- rgamma(n, shape = 2) - 2
} else if (dist == "exp") {
errors <- rexp(n, rate = 1) - 1
}
y <- 1 + 0.5 * x + errors
ols <- lm(y ~ x)
pmm2 <- lm_pmm2(y ~ x, data = data.frame(x, y))
results[i, 1] <- coef(ols)[2]
results[i, 2] <- coef(pmm2)[2]
results[i, 3] <- vcov(ols)[2, 2]
results[i, 4] <- vcov(pmm2)[2, 2]
}
return(results)
}
results <- run_simulation(n = 200, reps = 2000, dist = "gamma")
variance_ratio <- mean(results[, 4]) / mean(results[, 3])
cat("Empirical variance ratio (PMM2/OLS):", variance_ratio, "\n")
Paper Structure Template
# Paper: Applying PMM to [Your Model Type]
## 1. Introduction
- Motivation: Why asymmetric errors matter
- Research gap: What existing methods miss
- Contribution: How PMM improves estimation
## 2. Methodology
### 2.1 Polynomial Maximization Method
- Theoretical foundation (Kunchenko, 1992)
- Variance reduction formula
- Adaptive estimation procedure
### 2.2 Model Specification
- [Your specific model: ARIMA, regression, etc.]
- Assumptions and conditions
- Parameter space
### 2.3 Implementation
- Algorithm description
- Computational complexity
- R/Python implementation
## 3. Monte Carlo Study
### 3.1 Simulation Design
- Sample sizes: n = {50, 100, 200, 500}
- Replications: 1000-5000
- Distributions: Gamma, Exponential, Lognormal
### 3.2 Performance Metrics
- Bias: E(θ̂) - θ
- Variance: Var(θ̂)
- MSE: E[(θ̂ - θ)²]
- Relative efficiency: Var(OLS)/Var(PMM2)
## 4. Empirical Application
- Real dataset description
- Diagnostic tests (stationarity, residual analysis)
- Model comparison (AIC, BIC, RMSE)
- Out-of-sample forecasting
## 5. Results
- Tables: Parameter estimates, standard errors, efficiency gains
- Figures: Convergence plots, residual diagnostics, QQ-plots
## 6. Conclusion
- Summary of findings
- Practical implications
- Future research directions
Reference Files
Available Documentation
- references/README.md - PMM2-ARIMA reproducibility package guide
- references/releases.md - Version history and release notes (2 releases)
- references/file_structure.md - Complete repository structure (90 items)
Key Resources from References
- EstemPMM R Package - Production-ready implementation
- PMM2-ARIMA Repository - ARIMA models with PMM2 estimator
- Monte Carlo Framework - 128,000+ simulation template
- WTI Case Study - Real-world application example
- LaTeX Templates - Article formatting and structure
Working with This Skill
For New Papers
Step 1: Define Research Question
- What model are you estimating? (regression, ARIMA, GLM, etc.)
- What type of asymmetry do you expect? (right-skewed, left-skewed)
- What is your comparison baseline? (OLS, MLE, CSS-ML)
Step 2: Implement PMM Estimator
library(EstemPMM)
source("scripts/pmm2_estimation.R")
Step 3: Design Monte Carlo Study
Step 4: Find Real Dataset
Step 5: Create Reproducibility Package
data/ # Raw datasets
scripts/ # R scripts for all analyses
results/ # Auto-generated outputs
EstemPMM-lib/ # Bundled package version
README.md # Replication instructions
DESCRIPTION # R dependencies
For Code Development
R Package Structure
R/
├── pmm2_main.R
├── pmm2_classes.R
├── pmm2_utils.R
├── pmm2_inference.R
├── pmm2_diagnostics.R
└── pmm2_simulation.R
man/
tests/
vignettes/
Essential Functions to Implement
pmm2_fit() - Core estimator
pmm2_vcov() - Variance-covariance matrix
pmm2_cumulants() - Sample cumulant estimation
pmm2_variance_factor() - Theoretical efficiency g
compare_methods() - PMM vs OLS/MLE comparison
For Paper Writing
Required Sections
-
Abstract (150-250 words)
- Problem, method, results, conclusion
-
Introduction (3-4 pages)
- Motivation with real examples
- Literature review (cite Kunchenko, Zabolotnii papers)
- Research gap and contribution
-
Methodology (4-6 pages)
- PMM theoretical foundation
- Your specific model adaptation
- Computational algorithm
-
Simulations (3-5 pages)
- Design justification
- Results tables (bias, variance, MSE)
- Convergence and robustness checks
-
Application (3-4 pages)
- Dataset description and diagnostics
- Estimation results
- Model comparison
- Forecasting performance
-
Conclusion (1-2 pages)
- Summary and practical implications
- Limitations and extensions
Key Citations
@article{kunchenko1992,
author = {Kunchenko, Yu. P. and Lega, Yu. G.},
title = {Polynomial parameter estimation of close to Gaussian random variables},
journal = {Radioelectronics and Communications Systems},
year = {1992}
}
@inproceedings{zabolotnii2018pmm,
author = {Zabolotnii, S. and Warsza, Z.L. and Tkachenko, O.},
title = {Polynomial Estimation of Linear Regression Parameters for the Asymmetric PDF of Errors},
booktitle = {Automation 2018},
publisher = {Springer},
year = {2018},
doi = {10.1007/978-3-319-77179-3_75}
}
@article{zabolotnii2025arima,
author = {Zabolotnii, Serhii},
title = {Applying the Polynomial Maximization Method to Estimate ARIMA Models with Asymmetric Non-Gaussian Innovations},
journal = {Submitted for publication},
year = {2025},
doi = {10.5281/zenodo.17529589}
}
Common Patterns
Pattern 1: Quick Efficiency Check
c3 <- 1.5
c4 <- 3.0
g <- 1 - c3^2 / (2 + c4)
cat("Theoretical variance reduction:", (1 - g) * 100, "%\n")
Pattern 2: Reproducibility Workflow
source("scripts/00_setup.R")
source("scripts/01_data_preparation.R")
source("scripts/02_estimation.R")
source("scripts/03_monte_carlo.R")
source("scripts/04_create_tables.R")
source("scripts/05_create_figures.R")
source("scripts/06_generate_report.R")
Pattern 3: Model Comparison Table
results_df <- data.frame(
Model = c("OLS", "PMM2", "MLE"),
Estimate = c(ols_est, pmm2_est, mle_est),
SE = c(ols_se, pmm2_se, mle_se),
AIC = c(ols_aic, pmm2_aic, mle_aic),
BIC = c(ols_bic, pmm2_bic, mle_bic)
)
library(xtable)
print(xtable(results_df, digits = 4),
file = "results/method_comparison.tex")
Best Practices
Research Workflow
- ✅ Set seed for all random operations (reproducibility)
- ✅ Version control with Git (track all changes)
- ✅ Document dependencies in DESCRIPTION/requirements.txt
- ✅ Bundle package versions (e.g., EstemPMM v0.1.1)
- ✅ Archive on Zenodo for DOI and long-term preservation
- ✅ Share code publicly (GitHub) before submission
Statistical Rigor
- ✅ Test stationarity for time series (ADF, KPSS tests)
- ✅ Check residuals (normality, autocorrelation, heteroscedasticity)
- ✅ Report all methods (CSS, CSS-ML, PMM2 for ARIMA)
- ✅ Use multiple metrics (AIC, BIC, RMSE, MAE)
- ✅ Out-of-sample validation (not just in-sample fit)
- ✅ Bootstrap inference when analytical se not available
Code Quality
- ✅ Modular functions (one function = one task)
- ✅ Roxygen documentation for all exported functions
- ✅ Unit tests with testthat (>80% coverage)
- ✅ Clear variable names (no
x1, temp, res2)
- ✅ Vectorized operations (avoid explicit loops when possible)
- ✅ Progress bars for long-running simulations
Resources
Official Repositories
Key Papers
- Kunchenko & Lega (1992) - Original PMM formulation
- Zabolotnii et al. (2018) - PMM for asymmetric regression errors
- Zabolotnii et al. (2022) - PMM for autoregressive models
- Zabolotnii et al. (2023) - PMM for moving average models
- Zabolotnii (2025) - PMM for ARIMA models (under review)
Datasets for Examples
- WTI Crude Oil Prices: FRED database (DCOILWTICO)
- Auto MPG: UCI Machine Learning Repository
- Financial Returns: Yahoo Finance API
- Economic Indicators: FRED, World Bank, Eurostat
Notes
- PMM2 is most effective when skewness |c₃| > 1.0
- For symmetric distributions (c₃ ≈ 0), PMM2 ≈ OLS
- Computational cost is similar to OLS (no major overhead)
- Bootstrap recommended for small samples (n < 50)
- Always report both OLS and PMM2 for transparency
Updating This Skill
To enhance with new research:
- Add new PMM applications (GLM, survival analysis, etc.)
- Update with published papers and citations
- Include new simulation scenarios
- Add real-world case studies
- Expand code templates for other languages (Python, Julia)
Generated by Skill Seeker | Optimized for PMM Research & Academic Writing