# wahyuramadhandotcom/a-hybrid-forecasting-model architecture

> Architecture diagram of the GitHub repository wahyuramadhandotcom/a-hybrid-forecasting-model, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wahyuramadhandotcom/a-hybrid-forecasting-model
- Repository: https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model

## Overview

This is a research forecasting and evaluation repository: researchers run experiments on pharmaceutical and retail demand data, compare AR-LRX with baselines under a shared time-series protocol, and examine robustness and statistical evidence in saved results. The central workflow separates dataset preparation and evaluation rules from model implementations, then branches into replications, perturbation studies, and inference. README documentation supports the experiment-to-result links; sampled source confirms the shared protocol and AR-LRX implementation. Some experiment notebooks and tool internals were not sampled, so their specific wiring is not inferred.

Main entry points: [`src/experiments/protocol.py`](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/protocol.py) (Shared protocol), [`src/experiments/arlrx.py`](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/arlrx.py) (AR-LRX models), [`results`](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/results) (Saved results), [`tools/exp12_pharma_baselines_completion.py`](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp12_pharma_baselines_completion.py) (Pharma baselines)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Demand data"]
  node_pharma["PharmaSales"]
  node_rossmann["Rossmann"]
end

subgraph group_core["Forecasting core"]
  node_protocol["Shared protocol<br/>[protocol.py]"]
  node_arlrx["AR-LRX models<br/>[arlrx.py]"]
  node_baselines["Baseline models<br/>[baselines.py]"]
end

subgraph group_studies["Experiment studies"]
  node_pharma_studies["Pharma studies"]
  node_ross_studies["Rossmann studies"]
  node_baseline_studies["Baseline comparisons"]
  node_rolling["Rolling replications"]
  node_stability["Learner stability"]
  node_perturbation["Perturbation tests"]
  node_calendar["Calendar study"]
  node_pharma_baselines["Pharma baselines"]
end

subgraph group_evidence["Evaluation evidence"]
  node_results["Saved results"]
  node_group_inference["Dependence inference"]
  node_crossfit_pharma["Pharma crossfit audit"]
  node_crossfit_ross["Rossmann crossfit audit"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs study"| node_pharma_studies
node_researcher -->|"runs study"| node_ross_studies
node_researcher -->|"runs study"| node_baseline_studies
node_researcher -->|"runs replication"| node_rolling
node_researcher -->|"runs study"| node_stability
node_researcher -->|"runs study"| node_perturbation
node_pharma -->|"provides observations"| node_protocol
node_rossmann -->|"provides observations"| node_protocol
node_pharma_studies -->|"uses protocol"| node_protocol
node_pharma_studies -->|"runs models"| node_arlrx
node_ross_studies -->|"uses protocol"| node_protocol
node_ross_studies -->|"runs models"| node_arlrx
node_baseline_studies -->|"uses protocol"| node_protocol
node_baseline_studies -->|"runs baselines"| node_baselines
node_rolling -->|"uses protocol"| node_protocol
node_rolling -->|"runs models"| node_arlrx
node_stability -->|"uses protocol"| node_protocol
node_stability -->|"tests learner"| node_arlrx
node_perturbation -->|"uses protocol"| node_protocol
node_perturbation -->|"runs models"| node_arlrx
node_calendar -->|"uses protocol"| node_protocol
node_calendar -->|"runs models"| node_arlrx
node_pharma_baselines -->|"uses protocol"| node_protocol
node_pharma_baselines -->|"runs model"| node_arlrx
node_pharma_baselines -->|"runs baselines"| node_baselines
node_protocol -->|"writes metrics"| node_results
node_group_inference -->|"reads predictions"| node_results
node_group_inference -->|"writes inference"| node_results
node_crossfit_pharma -->|"uses protocol"| node_protocol
node_crossfit_pharma -->|"audits residuals"| node_arlrx
node_crossfit_pharma -->|"writes audit"| node_results
node_crossfit_ross -->|"uses protocol"| node_protocol
node_crossfit_ross -->|"audits residuals"| node_arlrx
node_crossfit_ross -->|"writes audit"| node_results

click node_pharma "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/data/raw/pharma-sales"
click node_rossmann "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/data/raw/rossmann"
click node_protocol "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/protocol.py"
click node_arlrx "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/arlrx.py"
click node_baselines "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/baselines.py"
click node_pharma_studies "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp05c_pharma_arlrx.ipynb"
click node_ross_studies "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp05b_rossmann_arlrx_audit.ipynb"
click node_baseline_studies "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp06b_rossmann_baselines_strong.ipynb"
click node_rolling "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp07_rolling_origin.py"
click node_stability "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp08_learner_stability.py"
click node_perturbation "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp10_controlled_perturbation.py"
click node_calendar "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp11_pharma_calendar_s1.py"
click node_pharma_baselines "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp12_pharma_baselines_completion.py"
click node_results "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/results"
click node_group_inference "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/groupB_inference.py"
click node_crossfit_pharma "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/crossfit_audit_pharma.py"
click node_crossfit_ross "https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/crossfit_audit_rossmann.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pharma,node_rossmann toneBlue
class node_protocol,node_arlrx,node_baselines toneAmber
class node_pharma_studies,node_ross_studies,node_baseline_studies,node_rolling,node_stability,node_perturbation,node_calendar,node_pharma_baselines toneMint
class node_results,node_group_inference,node_crossfit_pharma,node_crossfit_ross toneRose
class node_researcher toneIndigo
```

## Components

### Demand data

- [PharmaSales](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/data/raw/pharma-sales): `data/raw/pharma-sales`
- [Rossmann](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/data/raw/rossmann): `data/raw/rossmann`

### Forecasting core

- [Shared protocol](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/protocol.py): `src/experiments/protocol.py`
- [AR-LRX models](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/arlrx.py): `src/experiments/arlrx.py`
- [Baseline models](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/src/experiments/baselines.py): `src/experiments/baselines.py`

### Experiment studies

- [Pharma studies](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp05c_pharma_arlrx.ipynb): `notebooks/exp05c_pharma_arlrx.ipynb`
- [Rossmann studies](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp05b_rossmann_arlrx_audit.ipynb): `notebooks/exp05b_rossmann_arlrx_audit.ipynb`
- [Baseline comparisons](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/notebooks/exp06b_rossmann_baselines_strong.ipynb): `notebooks/exp06b_rossmann_baselines_strong.ipynb`
- [Rolling replications](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp07_rolling_origin.py): `tools/exp07_rolling_origin.py`
- [Learner stability](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp08_learner_stability.py): `tools/exp08_learner_stability.py`
- [Perturbation tests](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp10_controlled_perturbation.py): `tools/exp10_controlled_perturbation.py`
- [Calendar study](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp11_pharma_calendar_s1.py): `tools/exp11_pharma_calendar_s1.py`
- [Pharma baselines](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/exp12_pharma_baselines_completion.py): `tools/exp12_pharma_baselines_completion.py`

### Evaluation evidence

- [Saved results](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/tree/main/results): `results`
- [Dependence inference](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/groupB_inference.py): `tools/groupB_inference.py`
- [Pharma crossfit audit](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/crossfit_audit_pharma.py): `tools/crossfit_audit_pharma.py`
- [Rossmann crossfit audit](https://github.com/wahyuramadhandotcom/a-hybrid-forecasting-model/blob/main/tools/crossfit_audit_rossmann.py): `tools/crossfit_audit_rossmann.py`

### Other components

- **Researcher**

## Connections

- Researcher → Pharma studies: runs study
- Researcher → Rossmann studies: runs study
- Researcher → Baseline comparisons: runs study
- Researcher → Rolling replications: runs replication
- Researcher → Learner stability: runs study
- Researcher → Perturbation tests: runs study
- PharmaSales → Shared protocol: provides observations
- Rossmann → Shared protocol: provides observations
- Pharma studies → Shared protocol: uses protocol
- Pharma studies → AR-LRX models: runs models
- Rossmann studies → Shared protocol: uses protocol
- Rossmann studies → AR-LRX models: runs models
- Baseline comparisons → Shared protocol: uses protocol
- Baseline comparisons → Baseline models: runs baselines
- Rolling replications → Shared protocol: uses protocol
- Rolling replications → AR-LRX models: runs models
- Learner stability → Shared protocol: uses protocol
- Learner stability → AR-LRX models: tests learner
- Perturbation tests → Shared protocol: uses protocol
- Perturbation tests → AR-LRX models: runs models
- Calendar study → Shared protocol: uses protocol
- Calendar study → AR-LRX models: runs models
- Pharma baselines → Shared protocol: uses protocol
- Pharma baselines → AR-LRX models: runs model
- Pharma baselines → Baseline models: runs baselines
- Shared protocol → Saved results: writes metrics
- Dependence inference → Saved results: reads predictions
- Dependence inference → Saved results: writes inference
- Pharma crossfit audit → Shared protocol: uses protocol
- Pharma crossfit audit → AR-LRX models: audits residuals
- Pharma crossfit audit → Saved results: writes audit
- Rossmann crossfit audit → Shared protocol: uses protocol
- Rossmann crossfit audit → AR-LRX models: audits residuals
- Rossmann crossfit audit → Saved results: writes audit
