bayes-ordinal


Namebayes-ordinal JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA PyMC-based package for Bayesian ordinal regression with comprehensive workflow tools
upload_time2025-09-12 17:06:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords bayesian ordinal-regression pymc arviz statistics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Bayesian Ordinal Regression Package

A comprehensive PyMC-based package for Bayesian ordinal regression with advanced workflow tools, diagnostics, and analysis capabilities.

## Overview

This package provides a complete Bayesian workflow for ordinal regression analysis, featuring:

- **Advanced Models**: Cumulative (proportional odds) models with flexible cutpoint approaches
- **Comprehensive Workflow**: Prior predictive checks, model fitting, diagnostics, and posterior predictive analysis
- **Robust Diagnostics**: MCMC convergence, computational issue detection, and model validation
- **Model Comparison**: Cross-validation with LOO/WAIC, stacking, and interpretation tools
- **Hierarchical Support**: Group-level varying intercepts and random effects
- **Counterfactual Analysis**: Scenario-based predictions and causal inference

## Foundation & Acknowledgments

This package is built upon and extends the excellent PyMC examples and documentation, as well as foundational research in Bayesian workflow:

- **[Statistical Rethinking: A Bayesian Course with Examples in R and Stan (McElreath, 2020)](https://xcelab.net/rm/statistical-rethinking/)** - The definitive guide to Bayesian data analysis and workflow, providing the philosophical foundation, practical methodology, and diagnostic approaches that inform our package's design. Many of our workflow components, diagnostic tools, and model comparison methods are inspired by the principles and examples in this book.

- **[PyMC Ordered Categories Example](https://www.pymc.io/projects/examples/en/latest/statistical_rethinking_lectures/11-Ordered_Categories.html)** - Statistical Rethinking lecture series on ordered categorical data, providing the foundational understanding of cumulative ordinal regression models and their implementation in PyMC.

- **[PyMC GLM Ordinal Regression Example](https://www.pymc.io/projects/examples/en/latest/generalized_linear_models/GLM-ordinal-regression.html)** - Comprehensive guide to generalized linear models for ordinal regression, offering insights into model specification, prior choices, and diagnostic approaches.

- **[PyMC Markov Chain Monte Carlo Example](https://www.pymc.io/projects/examples/en/latest/statistical_rethinking_lectures/08-Markov_Chain_Monte_Carlo.html)** - Statistical Rethinking lecture on MCMC diagnostics and computational issue resolution, providing the foundation for our comprehensive diagnostic tools, convergence assessment, and computational problem-solving approaches.

- **[Bayesian Workflow (Gelman et al., 2020)](https://arxiv.org/pdf/2011.01808)** - Foundational paper that establishes the principles and practices of modern Bayesian workflow, including prior predictive checking, posterior predictive checking, cross-validation, model comparison, and computational problem resolution. Our package implements many of these workflow components as integrated, production-ready tools.

Our implementation builds upon these examples and research by providing a unified, production-ready interface that combines the best practices from all sources while adding comprehensive workflow tools, diagnostics, and analysis capabilities.


## Installation

```bash
pip install bayes-ordinal
```

Or install from source:

```bash
git clone https://github.com/Adithyanpy/bayes_ordinal.git
cd bayes_ordinal
pip install -e .
```

## Quick Start

### Basic Usage

```python
import numpy as np
import bayes_ordinal as bo

# Generate example data
np.random.seed(42)
n, K = 100, 4
X = np.random.normal(size=(n, 2))
y = np.random.randint(0, K, size=n)

# Build model
model = bo.cumulative_model(y=y, X=X, K=K, link="logit")

# Run prior predictive check
prior_idata = bo.run_prior_predictive(model, draws=200, plot=True)

# Fit model with optimized parameters
idata = bo.fit_ordinal_model(model, draws=2000, tune=1000, chains=4)

# Comprehensive diagnostics
diagnostics = bo.run_comprehensive_diagnostics(idata)
summary = bo.create_model_summary(idata)

# Posterior predictive checks
ppc = bo.run_posterior_predictive(model, idata)
```



## Core Models

### Cumulative Model

The cumulative model implements proportional odds ordinal regression with flexible cutpoint approaches:

```python
model = bo.cumulative_model(
    y=y, X=X, K=4,
    link="logit",  # "logit", "probit"
    priors={"beta": [0, 1], "sigma": 1.0},
    prior_type="exponential_sigma",  # "fixed_sigma" or "exponential_sigma"
    feature_names=["Age", "Income", "Education"]
)
```

**Key Features:**
- **Flexible Cutpoints**: Supports both constrained (Dirichlet) and flexible (Normal) approaches
- **Hierarchical Structure**: Group-level varying intercepts with `group_idx` and `n_groups`
- **Automatic Scaling**: Probit models automatically adjust prior scales
- **Validation**: Comprehensive input validation and error handling

## Workflow Components

### 1. Prior Predictive Analysis

```python
# Basic prior predictive check
idata = bo.run_prior_predictive(model, draws=1000, plot=True, y_obs=y)

# Custom plots
custom_plots = {
    'prior_samples': True,      # Prior predictive samples
    'mean_distribution': True,  # Mean distribution
    'observed': True,           # Observed data comparison
    'category_counts': True,    # Category counts per sample
    'total_observations': True, # Total observations per sample
    'category_proportions': True # Category proportions across samples
}

idata = bo.run_prior_predictive(
    model, draws=1000, y_obs=y, custom_plots=custom_plots
)
```

### 2. Model Fitting

```python
# Optimized fitting for ordinal models
idata = bo.fit_ordinal_model(
    model,
    draws=2000,        # Recommended for ordinal models
    tune=1000,         # Proper NUTS adaptation
    chains=4,          # Reliable inference
    target_accept=0.8, # Optimal for constrained parameters
    max_treedepth=15   # Higher for complex models
)
```

### 3. Comprehensive Diagnostics

```python
# Full diagnostic suite
diagnostics = bo.run_comprehensive_diagnostics(idata)

# Individual diagnostic components
summary = bo.summarize_diagnostics(idata)
plots = bo.plot_diagnostics(idata)
forest = bo.plot_group_forest(idata, var_name="u")
model_summary = bo.create_model_summary(idata)
```

### 4. Posterior Predictive Analysis

```python
# Run posterior predictive checks
ppc = bo.run_posterior_predictive(
    model, idata,
    kind="hist"  # "hist", "ecdf"
)
```

### 5. Model Comparison

```python
# Compare multiple models
models = {"model1": model1, "model2": model2}
idatas = {"model1": idata1, "model2": idata2}

# Basic comparison
comparison = bo.compare_models(models, idatas, ic="loo")

# Advanced comparison with stacking
stacking_results = bo.compare_models_stacking(models, idatas)

# Interpretable comparison
interpretation = bo.compare_models_interpretation(models, idatas)
bo.plot_model_comparison_interpretation(interpretation)
```

### 6. Computational Issue Resolution

```python
# Diagnose and resolve computational issues
issues = bo.diagnose_computational_issues(idata)

# Check for multimodality
multimodality = bo.check_multimodality(idata)

# Stack individual chains if needed
stacked_idata = bo.stack_individual_chains(idata)

# Comprehensive computation check
computation_check = bo.comprehensive_computation_check(idata)
```

### 7. Sensitivity Analysis

```python
# Prior sensitivity analysis
sensitivity = bo.prior_sensitivity(
    bo.cumulative_model,
    y=y, X=X, K=4,
    hyper_name="sigma",
    hyper_values=[1.0, 2.5, 5.0],
    trace_var="beta"
)

# Influence diagnostics
influential = bo.plot_influential(idata, threshold=0.7)
```

## Data Processing & Utilities

### Data Validation

```python
# Validate ordinal data
y_clean, X_clean, K = bo.validate_ordinal_data(y, X, K=4)

# Encode categorical features
X_encoded, encoders = bo.encode_categorical_features(X, categorical_cols=["region"])

# Standardize features
X_scaled, scaler = bo.standardize_features(X)

# Create group indices for hierarchical models
group_idx, n_groups, group_map = bo.create_group_indices(group_variable)

# Compute category proportions
proportions = bo.compute_category_proportions(y, K)
```

### Model Inspection

```python
# Inspect model variables
variables = bo.inspect_model_variables(model)

# Print model summary
bo.print_model_summary(model)

# Validate ordinal model structure
is_valid = bo.validate_ordinal_model(y, X, K)
```

## Counterfactual Analysis

```python
# Define scenarios
scenarios = {
    "baseline": {"action": 0, "intention": 0, "contact": 0},
    "high_risk": {"action": 1, "intention": 1, "contact": 1}
}

# Run counterfactual analysis
results = bo.run_counterfactual_analysis(
    model, idata, scenarios, feature_names, n_samples=1000
)

# Plot results
bo.plot_counterfactual_results(results)
```





## Complete Analysis Example

```python
import numpy as np
import bayes_ordinal as bo

# 1. Prepare and validate data
np.random.seed(42)
n, K = 200, 5
X = np.random.normal(size=(n, 3))
y = np.random.randint(0, K, size=n)

y_clean, X_clean, K = bo.validate_ordinal_data(y, X, K)

# 2. Build models
models = {
    "logit": bo.cumulative_model(y=y_clean, X=X_clean, K=K, link="logit"),
    "probit": bo.cumulative_model(y=y_clean, X=X_clean, K=K, link="probit")
}

# 3. Complete workflow for each model
idatas = {}
for name, model in models.items():
    print(f"\n=== {name.upper()} MODEL ===")
    
    # Prior predictive check
    prior_idata = bo.run_prior_predictive(model, draws=200, y_obs=y_clean)
    
    # Fit model
    idata = bo.fit_ordinal_model(model, draws=2000, tune=1000, chains=4)
    idatas[name] = idata
    
    # Comprehensive diagnostics
    diagnostics = bo.run_comprehensive_diagnostics(idata)
    summary = bo.create_model_summary(idata)
    
    # Posterior predictive check
    ppc = bo.run_posterior_predictive(model, idata)

# 4. Model comparison
comparison = bo.compare_models(models, idatas, ic="loo")
stacking_results = bo.compare_models_stacking(models, idatas)
interpretation = bo.compare_models_interpretation(models, idatas)

# 5. Display results
bo.display_comparison_results(comparison)
bo.plot_model_comparison_interpretation(interpretation)

# 6. Check convergence
for name, idata in idatas.items():
    diag_df = bo.summarize_diagnostics(idata)
    print(f"{name} R-hat max: {diag_df['r_hat'].max():.4f}")
    print(f"{name} ESS min: {diag_df['ess_bulk'].min():.0f}")
```

## Dependencies

- **PyMC** >= 5.3 - Probabilistic programming
- **ArviZ** >= 0.16 - Bayesian inference diagnostics
- **NumPy** >= 1.24 - Numerical computing
- **SciPy** >= 1.10 - Scientific computing
- **Matplotlib** >= 3.6 - Plotting
- **scikit-learn** - Data preprocessing

- **pandas** - Data manipulation

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


## References

- McElreath, R. (2020). Statistical Rethinking: A Bayesian Course with Examples in R and Stan.
- Bürkner, P. C., & Vuorre, M. (2019). Ordinal regression models in psychology: A tutorial.
- Gelman, A., et al. (2013). Bayesian Data Analysis.
- Fielding, A., Yang, M., & Goldstein, H. (2003). Multilevel ordinal models for examination grades. *Statistical Modelling*, 3(4), 339-355. [https://www.bristol.ac.uk/media-library/sites/cmm/migrated/documents/momeg.pdf](https://www.bristol.ac.uk/media-library/sites/cmm/migrated/documents/momeg.pdf)
- PyMC Documentation: https://docs.pymc.io/
- ArviZ Documentation: https://python.arviz.org/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bayes-ordinal",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "bayesian, ordinal-regression, pymc, arviz, statistics",
    "author": null,
    "author_email": "Adithyan Annadurai <3004787a@student.gla.ac.uk>",
    "download_url": "https://files.pythonhosted.org/packages/ab/af/4f1ee4d5e6cb8d4f083438f39a1ecdd179bc8f47cf4fd3460e0446ccb76b/bayes_ordinal-0.1.0.tar.gz",
    "platform": null,
    "description": "# Bayesian Ordinal Regression Package\n\nA comprehensive PyMC-based package for Bayesian ordinal regression with advanced workflow tools, diagnostics, and analysis capabilities.\n\n## Overview\n\nThis package provides a complete Bayesian workflow for ordinal regression analysis, featuring:\n\n- **Advanced Models**: Cumulative (proportional odds) models with flexible cutpoint approaches\n- **Comprehensive Workflow**: Prior predictive checks, model fitting, diagnostics, and posterior predictive analysis\n- **Robust Diagnostics**: MCMC convergence, computational issue detection, and model validation\n- **Model Comparison**: Cross-validation with LOO/WAIC, stacking, and interpretation tools\n- **Hierarchical Support**: Group-level varying intercepts and random effects\n- **Counterfactual Analysis**: Scenario-based predictions and causal inference\n\n## Foundation & Acknowledgments\n\nThis package is built upon and extends the excellent PyMC examples and documentation, as well as foundational research in Bayesian workflow:\n\n- **[Statistical Rethinking: A Bayesian Course with Examples in R and Stan (McElreath, 2020)](https://xcelab.net/rm/statistical-rethinking/)** - The definitive guide to Bayesian data analysis and workflow, providing the philosophical foundation, practical methodology, and diagnostic approaches that inform our package's design. Many of our workflow components, diagnostic tools, and model comparison methods are inspired by the principles and examples in this book.\n\n- **[PyMC Ordered Categories Example](https://www.pymc.io/projects/examples/en/latest/statistical_rethinking_lectures/11-Ordered_Categories.html)** - Statistical Rethinking lecture series on ordered categorical data, providing the foundational understanding of cumulative ordinal regression models and their implementation in PyMC.\n\n- **[PyMC GLM Ordinal Regression Example](https://www.pymc.io/projects/examples/en/latest/generalized_linear_models/GLM-ordinal-regression.html)** - Comprehensive guide to generalized linear models for ordinal regression, offering insights into model specification, prior choices, and diagnostic approaches.\n\n- **[PyMC Markov Chain Monte Carlo Example](https://www.pymc.io/projects/examples/en/latest/statistical_rethinking_lectures/08-Markov_Chain_Monte_Carlo.html)** - Statistical Rethinking lecture on MCMC diagnostics and computational issue resolution, providing the foundation for our comprehensive diagnostic tools, convergence assessment, and computational problem-solving approaches.\n\n- **[Bayesian Workflow (Gelman et al., 2020)](https://arxiv.org/pdf/2011.01808)** - Foundational paper that establishes the principles and practices of modern Bayesian workflow, including prior predictive checking, posterior predictive checking, cross-validation, model comparison, and computational problem resolution. Our package implements many of these workflow components as integrated, production-ready tools.\n\nOur implementation builds upon these examples and research by providing a unified, production-ready interface that combines the best practices from all sources while adding comprehensive workflow tools, diagnostics, and analysis capabilities.\n\n\n## Installation\n\n```bash\npip install bayes-ordinal\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/Adithyanpy/bayes_ordinal.git\ncd bayes_ordinal\npip install -e .\n```\n\n## Quick Start\n\n### Basic Usage\n\n```python\nimport numpy as np\nimport bayes_ordinal as bo\n\n# Generate example data\nnp.random.seed(42)\nn, K = 100, 4\nX = np.random.normal(size=(n, 2))\ny = np.random.randint(0, K, size=n)\n\n# Build model\nmodel = bo.cumulative_model(y=y, X=X, K=K, link=\"logit\")\n\n# Run prior predictive check\nprior_idata = bo.run_prior_predictive(model, draws=200, plot=True)\n\n# Fit model with optimized parameters\nidata = bo.fit_ordinal_model(model, draws=2000, tune=1000, chains=4)\n\n# Comprehensive diagnostics\ndiagnostics = bo.run_comprehensive_diagnostics(idata)\nsummary = bo.create_model_summary(idata)\n\n# Posterior predictive checks\nppc = bo.run_posterior_predictive(model, idata)\n```\n\n\n\n## Core Models\n\n### Cumulative Model\n\nThe cumulative model implements proportional odds ordinal regression with flexible cutpoint approaches:\n\n```python\nmodel = bo.cumulative_model(\n    y=y, X=X, K=4,\n    link=\"logit\",  # \"logit\", \"probit\"\n    priors={\"beta\": [0, 1], \"sigma\": 1.0},\n    prior_type=\"exponential_sigma\",  # \"fixed_sigma\" or \"exponential_sigma\"\n    feature_names=[\"Age\", \"Income\", \"Education\"]\n)\n```\n\n**Key Features:**\n- **Flexible Cutpoints**: Supports both constrained (Dirichlet) and flexible (Normal) approaches\n- **Hierarchical Structure**: Group-level varying intercepts with `group_idx` and `n_groups`\n- **Automatic Scaling**: Probit models automatically adjust prior scales\n- **Validation**: Comprehensive input validation and error handling\n\n## Workflow Components\n\n### 1. Prior Predictive Analysis\n\n```python\n# Basic prior predictive check\nidata = bo.run_prior_predictive(model, draws=1000, plot=True, y_obs=y)\n\n# Custom plots\ncustom_plots = {\n    'prior_samples': True,      # Prior predictive samples\n    'mean_distribution': True,  # Mean distribution\n    'observed': True,           # Observed data comparison\n    'category_counts': True,    # Category counts per sample\n    'total_observations': True, # Total observations per sample\n    'category_proportions': True # Category proportions across samples\n}\n\nidata = bo.run_prior_predictive(\n    model, draws=1000, y_obs=y, custom_plots=custom_plots\n)\n```\n\n### 2. Model Fitting\n\n```python\n# Optimized fitting for ordinal models\nidata = bo.fit_ordinal_model(\n    model,\n    draws=2000,        # Recommended for ordinal models\n    tune=1000,         # Proper NUTS adaptation\n    chains=4,          # Reliable inference\n    target_accept=0.8, # Optimal for constrained parameters\n    max_treedepth=15   # Higher for complex models\n)\n```\n\n### 3. Comprehensive Diagnostics\n\n```python\n# Full diagnostic suite\ndiagnostics = bo.run_comprehensive_diagnostics(idata)\n\n# Individual diagnostic components\nsummary = bo.summarize_diagnostics(idata)\nplots = bo.plot_diagnostics(idata)\nforest = bo.plot_group_forest(idata, var_name=\"u\")\nmodel_summary = bo.create_model_summary(idata)\n```\n\n### 4. Posterior Predictive Analysis\n\n```python\n# Run posterior predictive checks\nppc = bo.run_posterior_predictive(\n    model, idata,\n    kind=\"hist\"  # \"hist\", \"ecdf\"\n)\n```\n\n### 5. Model Comparison\n\n```python\n# Compare multiple models\nmodels = {\"model1\": model1, \"model2\": model2}\nidatas = {\"model1\": idata1, \"model2\": idata2}\n\n# Basic comparison\ncomparison = bo.compare_models(models, idatas, ic=\"loo\")\n\n# Advanced comparison with stacking\nstacking_results = bo.compare_models_stacking(models, idatas)\n\n# Interpretable comparison\ninterpretation = bo.compare_models_interpretation(models, idatas)\nbo.plot_model_comparison_interpretation(interpretation)\n```\n\n### 6. Computational Issue Resolution\n\n```python\n# Diagnose and resolve computational issues\nissues = bo.diagnose_computational_issues(idata)\n\n# Check for multimodality\nmultimodality = bo.check_multimodality(idata)\n\n# Stack individual chains if needed\nstacked_idata = bo.stack_individual_chains(idata)\n\n# Comprehensive computation check\ncomputation_check = bo.comprehensive_computation_check(idata)\n```\n\n### 7. Sensitivity Analysis\n\n```python\n# Prior sensitivity analysis\nsensitivity = bo.prior_sensitivity(\n    bo.cumulative_model,\n    y=y, X=X, K=4,\n    hyper_name=\"sigma\",\n    hyper_values=[1.0, 2.5, 5.0],\n    trace_var=\"beta\"\n)\n\n# Influence diagnostics\ninfluential = bo.plot_influential(idata, threshold=0.7)\n```\n\n## Data Processing & Utilities\n\n### Data Validation\n\n```python\n# Validate ordinal data\ny_clean, X_clean, K = bo.validate_ordinal_data(y, X, K=4)\n\n# Encode categorical features\nX_encoded, encoders = bo.encode_categorical_features(X, categorical_cols=[\"region\"])\n\n# Standardize features\nX_scaled, scaler = bo.standardize_features(X)\n\n# Create group indices for hierarchical models\ngroup_idx, n_groups, group_map = bo.create_group_indices(group_variable)\n\n# Compute category proportions\nproportions = bo.compute_category_proportions(y, K)\n```\n\n### Model Inspection\n\n```python\n# Inspect model variables\nvariables = bo.inspect_model_variables(model)\n\n# Print model summary\nbo.print_model_summary(model)\n\n# Validate ordinal model structure\nis_valid = bo.validate_ordinal_model(y, X, K)\n```\n\n## Counterfactual Analysis\n\n```python\n# Define scenarios\nscenarios = {\n    \"baseline\": {\"action\": 0, \"intention\": 0, \"contact\": 0},\n    \"high_risk\": {\"action\": 1, \"intention\": 1, \"contact\": 1}\n}\n\n# Run counterfactual analysis\nresults = bo.run_counterfactual_analysis(\n    model, idata, scenarios, feature_names, n_samples=1000\n)\n\n# Plot results\nbo.plot_counterfactual_results(results)\n```\n\n\n\n\n\n## Complete Analysis Example\n\n```python\nimport numpy as np\nimport bayes_ordinal as bo\n\n# 1. Prepare and validate data\nnp.random.seed(42)\nn, K = 200, 5\nX = np.random.normal(size=(n, 3))\ny = np.random.randint(0, K, size=n)\n\ny_clean, X_clean, K = bo.validate_ordinal_data(y, X, K)\n\n# 2. Build models\nmodels = {\n    \"logit\": bo.cumulative_model(y=y_clean, X=X_clean, K=K, link=\"logit\"),\n    \"probit\": bo.cumulative_model(y=y_clean, X=X_clean, K=K, link=\"probit\")\n}\n\n# 3. Complete workflow for each model\nidatas = {}\nfor name, model in models.items():\n    print(f\"\\n=== {name.upper()} MODEL ===\")\n    \n    # Prior predictive check\n    prior_idata = bo.run_prior_predictive(model, draws=200, y_obs=y_clean)\n    \n    # Fit model\n    idata = bo.fit_ordinal_model(model, draws=2000, tune=1000, chains=4)\n    idatas[name] = idata\n    \n    # Comprehensive diagnostics\n    diagnostics = bo.run_comprehensive_diagnostics(idata)\n    summary = bo.create_model_summary(idata)\n    \n    # Posterior predictive check\n    ppc = bo.run_posterior_predictive(model, idata)\n\n# 4. Model comparison\ncomparison = bo.compare_models(models, idatas, ic=\"loo\")\nstacking_results = bo.compare_models_stacking(models, idatas)\ninterpretation = bo.compare_models_interpretation(models, idatas)\n\n# 5. Display results\nbo.display_comparison_results(comparison)\nbo.plot_model_comparison_interpretation(interpretation)\n\n# 6. Check convergence\nfor name, idata in idatas.items():\n    diag_df = bo.summarize_diagnostics(idata)\n    print(f\"{name} R-hat max: {diag_df['r_hat'].max():.4f}\")\n    print(f\"{name} ESS min: {diag_df['ess_bulk'].min():.0f}\")\n```\n\n## Dependencies\n\n- **PyMC** >= 5.3 - Probabilistic programming\n- **ArviZ** >= 0.16 - Bayesian inference diagnostics\n- **NumPy** >= 1.24 - Numerical computing\n- **SciPy** >= 1.10 - Scientific computing\n- **Matplotlib** >= 3.6 - Plotting\n- **scikit-learn** - Data preprocessing\n\n- **pandas** - Data manipulation\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n\n## References\n\n- McElreath, R. (2020). Statistical Rethinking: A Bayesian Course with Examples in R and Stan.\n- B\u00fcrkner, P. C., & Vuorre, M. (2019). Ordinal regression models in psychology: A tutorial.\n- Gelman, A., et al. (2013). Bayesian Data Analysis.\n- Fielding, A., Yang, M., & Goldstein, H. (2003). Multilevel ordinal models for examination grades. *Statistical Modelling*, 3(4), 339-355. [https://www.bristol.ac.uk/media-library/sites/cmm/migrated/documents/momeg.pdf](https://www.bristol.ac.uk/media-library/sites/cmm/migrated/documents/momeg.pdf)\n- PyMC Documentation: https://docs.pymc.io/\n- ArviZ Documentation: https://python.arviz.org/\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A PyMC-based package for Bayesian ordinal regression with comprehensive workflow tools",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/Adithyanpy/bayes-ordinal",
        "Issues": "https://github.com/Adithyanpy/bayes-ordinal/issues",
        "Repository": "https://github.com/Adithyanpy/bayes-ordinal"
    },
    "split_keywords": [
        "bayesian",
        " ordinal-regression",
        " pymc",
        " arviz",
        " statistics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "727eb9110897e517ac90c90e437234f002ec344caa5561b873142ac12ed9b211",
                "md5": "5c24d509d90629d336c6e7cc913ccf37",
                "sha256": "8189b03026966b2b72441fbb47f682598bfcffed968015f977247e8f2f275a27"
            },
            "downloads": -1,
            "filename": "bayes_ordinal-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5c24d509d90629d336c6e7cc913ccf37",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 43981,
            "upload_time": "2025-09-12T17:06:16",
            "upload_time_iso_8601": "2025-09-12T17:06:16.636591Z",
            "url": "https://files.pythonhosted.org/packages/72/7e/b9110897e517ac90c90e437234f002ec344caa5561b873142ac12ed9b211/bayes_ordinal-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "abaf4f1ee4d5e6cb8d4f083438f39a1ecdd179bc8f47cf4fd3460e0446ccb76b",
                "md5": "41b657bbb4a8c8c6c4068b40c486918a",
                "sha256": "992c2a742fa9262db2ecc8ab5747eff6712d39eacd713f0afd852221bf5726ba"
            },
            "downloads": -1,
            "filename": "bayes_ordinal-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "41b657bbb4a8c8c6c4068b40c486918a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 41080,
            "upload_time": "2025-09-12T17:06:17",
            "upload_time_iso_8601": "2025-09-12T17:06:17.998740Z",
            "url": "https://files.pythonhosted.org/packages/ab/af/4f1ee4d5e6cb8d4f083438f39a1ecdd179bc8f47cf4fd3460e0446ccb76b/bayes_ordinal-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-12 17:06:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Adithyanpy",
    "github_project": "bayes-ordinal",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "bayes-ordinal"
}
        
Elapsed time: 3.67018s