# cetinss/baron-kenny-mediation-analysis architecture

> Architecture diagram of the GitHub repository cetinss/baron-kenny-mediation-analysis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cetinss/baron-kenny-mediation-analysis
- Repository: https://github.com/cetinss/baron-kenny-mediation-analysis

## Overview

This is a research-analysis package and collection of study scripts, not a deployed service. The principal workflow builds a cleaned analytic sample from the synthetic caffeine dataset, estimates Baron–Kenny paths with bootstrap inference, evaluates hypotheses and diagnostics, then writes reports. Separate branches compare specifications, probe sensitivity, and validate related analyses against LEMURS and NHANES data. The README documents these capabilities; sampled excerpts show only part of their implementation, so uncertain internal call links are omitted.

Main entry points: [`src/bkmediation/cli.py`](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/cli.py) (Analysis CLI), [`outputs`](https://github.com/cetinss/baron-kenny-mediation-analysis/tree/main/outputs) (Analysis Outputs), [`src/bkmediation/data.py`](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/data.py) (Sample Builder), [`src/sensitivity_analysis.py`](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/sensitivity_analysis.py) (Sensitivity Analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_main["Primary Analysis"]
  node_cli["Analysis CLI<br/>[cli.py]"]
  node_synthetic["Synthetic Dataset"]
  node_data["Sample Builder<br/>[data.py]"]
  node_config["Analysis Configuration<br/>[config.py]"]
end

subgraph group_inference["Estimation and Checks"]
  node_descriptives["Descriptive Statistics<br/>[descriptives.py]"]
  node_mediation["Mediation Estimator<br/>[mediation.py]"]
  node_hypotheses["Hypothesis Rules<br/>[hypotheses.py]"]
  node_diagnostics["Model Diagnostics<br/>[diagnostics.py]"]
end

subgraph group_robustness["Robustness Studies"]
  node_comparisons["Specification Comparisons<br/>[comparisons.py]"]
  node_sensitivity["Sensitivity Analysis"]
  node_benchmark["Benchmarks<br/>[benchmark.py]"]
end

subgraph group_validation["External Validation"]
  node_lemurs_data["LEMURS Dataset<br/>[survey_syn_5.csv]"]
  node_lemurs["LEMURS Validation"]
  node_nhanes_data["NHANES Data"]
  node_nhanes_phq["PHQ-9 Analysis"]
  node_nhanes_al["Allostatic Load Analysis"]
end

subgraph group_results["Reports and Artifacts"]
  node_provenance["Run Provenance<br/>[provenance.py]"]
  node_reporting["Report Writers<br/>[reporting.py]"]
  node_outputs["Analysis Outputs"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs commands"| node_cli
node_cli -->|"builds sample"| node_data
node_data -->|"reads rows"| node_synthetic
node_cli -->|"estimates paths"| node_mediation
node_cli -->|"checks assumptions"| node_diagnostics
node_cli -->|"evaluates rules"| node_hypotheses
node_cli -->|"writes reports"| node_reporting
node_cli -->|"compares samples"| node_comparisons
node_cli -->|"runs benchmarks"| node_benchmark
node_cli -->|"records versions"| node_provenance
node_reporting -->|"writes tables"| node_outputs
node_provenance -->|"writes metadata"| node_outputs
node_sensitivity -->|"loads sample"| node_data
node_sensitivity -->|"runs baseline"| node_mediation
node_sensitivity -->|"writes checks"| node_outputs
node_lemurs -->|"reads survey"| node_lemurs_data
node_lemurs -->|"writes validation"| node_outputs
node_nhanes_phq -->|"loads tables"| node_nhanes_data
node_nhanes_phq -->|"writes analysis"| node_outputs
node_nhanes_al -->|"loads tables"| node_nhanes_data
node_nhanes_al -->|"writes analysis"| node_outputs
node_config -->|"sets defaults"| node_data
node_config -->|"sets inference"| node_mediation

click node_cli "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/cli.py"
click node_synthetic "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/data/synthetic_coffee_health_10000.csv"
click node_data "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/data.py"
click node_config "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/config.py"
click node_descriptives "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/descriptives.py"
click node_mediation "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/mediation.py"
click node_hypotheses "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/hypotheses.py"
click node_diagnostics "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/diagnostics.py"
click node_comparisons "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/comparisons.py"
click node_sensitivity "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/sensitivity_analysis.py"
click node_lemurs_data "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/data/lemurs/survey_syn_5.csv"
click node_lemurs "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/lemurs_validation.py"
click node_nhanes_data "https://github.com/cetinss/baron-kenny-mediation-analysis/tree/main/data/nhanes"
click node_nhanes_phq "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/nhanes_mediation_analysis.py"
click node_nhanes_al "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/nhanes_mediation_AL.py"
click node_benchmark "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/benchmark.py"
click node_provenance "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/provenance.py"
click node_reporting "https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/reporting.py"
click node_outputs "https://github.com/cetinss/baron-kenny-mediation-analysis/tree/main/outputs"

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_cli,node_synthetic,node_data,node_config toneBlue
class node_descriptives,node_mediation,node_hypotheses,node_diagnostics toneAmber
class node_comparisons,node_sensitivity,node_benchmark toneMint
class node_lemurs_data,node_lemurs,node_nhanes_data,node_nhanes_phq,node_nhanes_al toneRose
class node_provenance,node_reporting,node_outputs,node_researcher toneIndigo
```

## Components

### Primary Analysis

- [Analysis CLI](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/cli.py): `src/bkmediation/cli.py`
- [Synthetic Dataset](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/data/synthetic_coffee_health_10000.csv): `data/synthetic_coffee_health_10000.csv`
- [Sample Builder](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/data.py): `src/bkmediation/data.py`
- [Analysis Configuration](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/config.py): `src/bkmediation/config.py`

### Estimation and Checks

- [Descriptive Statistics](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/descriptives.py): `src/bkmediation/descriptives.py`
- [Mediation Estimator](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/mediation.py): `src/bkmediation/mediation.py`
- [Hypothesis Rules](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/hypotheses.py): `src/bkmediation/hypotheses.py`
- [Model Diagnostics](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/diagnostics.py): `src/bkmediation/diagnostics.py`

### Robustness Studies

- [Specification Comparisons](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/comparisons.py): `src/bkmediation/comparisons.py`
- [Sensitivity Analysis](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/sensitivity_analysis.py): `src/sensitivity_analysis.py`
- [Benchmarks](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/benchmark.py): `src/bkmediation/benchmark.py`

### External Validation

- [LEMURS Dataset](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/data/lemurs/survey_syn_5.csv): `data/lemurs/survey_syn_5.csv`
- [LEMURS Validation](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/lemurs_validation.py): `src/lemurs_validation.py`
- [NHANES Data](https://github.com/cetinss/baron-kenny-mediation-analysis/tree/main/data/nhanes): `data/nhanes`
- [PHQ-9 Analysis](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/nhanes_mediation_analysis.py): `src/nhanes_mediation_analysis.py`
- [Allostatic Load Analysis](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/nhanes_mediation_AL.py): `src/nhanes_mediation_AL.py`

### Reports and Artifacts

- [Run Provenance](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/provenance.py): `src/bkmediation/provenance.py`
- [Report Writers](https://github.com/cetinss/baron-kenny-mediation-analysis/blob/main/src/bkmediation/reporting.py): `src/bkmediation/reporting.py`
- [Analysis Outputs](https://github.com/cetinss/baron-kenny-mediation-analysis/tree/main/outputs): `outputs`

### Other components

- **Researcher**

## Connections

- Researcher → Analysis CLI: runs commands
- Analysis CLI → Sample Builder: builds sample
- Sample Builder → Synthetic Dataset: reads rows
- Analysis CLI → Mediation Estimator: estimates paths
- Analysis CLI → Model Diagnostics: checks assumptions
- Analysis CLI → Hypothesis Rules: evaluates rules
- Analysis CLI → Report Writers: writes reports
- Analysis CLI → Specification Comparisons: compares samples
- Analysis CLI → Benchmarks: runs benchmarks
- Analysis CLI → Run Provenance: records versions
- Report Writers → Analysis Outputs: writes tables
- Run Provenance → Analysis Outputs: writes metadata
- Sensitivity Analysis → Sample Builder: loads sample
- Sensitivity Analysis → Mediation Estimator: runs baseline
- Sensitivity Analysis → Analysis Outputs: writes checks
- LEMURS Validation → LEMURS Dataset: reads survey
- LEMURS Validation → Analysis Outputs: writes validation
- PHQ-9 Analysis → NHANES Data: loads tables
- PHQ-9 Analysis → Analysis Outputs: writes analysis
- Allostatic Load Analysis → NHANES Data: loads tables
- Allostatic Load Analysis → Analysis Outputs: writes analysis
- Analysis Configuration → Sample Builder: sets defaults
- Analysis Configuration → Mediation Estimator: sets inference
