Introduction

EPIC (Evaluation Platform in COPD) was originally developed for the Canadian healthcare context. However, the model’s architecture supports adaptation to different countries and healthcare systems through jurisdiction-specific configuration files. This vignette explains how to add a new country to epicR.

Overview of the Configuration System

epicR uses JSON configuration files to store country-specific parameters. These files contain all the epidemiological, demographic, economic, and healthcare system parameters needed to run the model for a specific jurisdiction.

Current Configuration Files

  • inst/config/config_canada.json - Fully configured Canadian parameters
  • inst/config/config_us.json - US template with placeholders (requires configuration)

Step-by-Step Guide to Adding a New Country

Step 1: Create the Configuration File

Create a new JSON configuration file for your country in the inst/config/ directory:

# Example: Adding Germany
file_name <- "inst/config/config_germany.json"

Step 2: Copy the Template Structure

Start by copying the structure from an existing configuration file. You can use the US template as a starting point:

# Read the US template
us_config <- jsonlite::fromJSON("inst/config/config_us.json")

# Modify for Germany
germany_config <- us_config
germany_config$jurisdiction <- "germany"

# Save the template
jsonlite::write_json(germany_config, "inst/config/config_germany.json", 
                     pretty = TRUE, auto_unbox = TRUE)

Step 3: Parameter Categories to Configure

The configuration file contains several major parameter categories that need country-specific data:

3.1 Global Parameters

{
  "global_parameters": {
    "age0": 40,
    "time_horizon": 20,
    "discount_cost": 0.03,
    "discount_qaly": 0.03,
    "closed_cohort": 0
  }
}

Required data: - Discount rates for costs and QALYs (country-specific economic guidelines)

3.2 Demographics and Population

{
  "agent": {
    "p_female": 0.51,
    "height_0_betas": [...],
    "weight_0_betas": [...],
    "p_prevalence_age": [...],
    "p_bgd_by_sex": {
      "male": [...],
      "female": [...]
    }
  }
}

Required data sources: - Population demographics: National statistics office - Age pyramid: Current population by age group - Life tables: Age and sex-specific mortality rates - Anthropometric data: Height and weight distributions by age and sex

3.3 Smoking Patterns

{
  "smoking": {
    "logit_p_current_smoker_0_betas": [...],
    "minimum_smoking_prevalence": 0.12,
    "mortality_factor_current": [...],
    "mortality_factor_former": [...]
  }
}

Required data sources: - Smoking prevalence: National health surveys - Smoking-related mortality: Meta-analyses or national studies - Smoking cessation rates: Longitudinal studies

3.4 COPD Epidemiology

{
  "COPD": {
    "logit_p_COPD_betas_by_sex": {
      "male": [...],
      "female": [...]
    },
    "ln_h_COPD_betas_by_sex": {
      "male": [...],
      "female": [...]
    }
  }
}

Required data sources: - COPD prevalence: Spirometry-based population studies - COPD incidence: Longitudinal cohort studies - Risk factors: Smoking, age, sex associations

3.5 Healthcare Costs

{
  "cost": {
    "bg_cost_by_stage": [...],
    "exac_dcost": [...],
    "cost_gp_visit": 85.50,
    "cost_outpatient_diagnosis": 125.50,
    "cost_smoking_cessation": 485.25
  }
}

Required data sources: - Healthcare unit costs: National fee schedules or health economics studies - COPD treatment costs: Health administrative data or costing studies - Currency: Convert to local currency or standardize to USD/EUR

3.6 Healthcare Utilization

{
  "outpatient": {
    "ln_rate_gpvisits_COPD_by_sex": {
      "male": [...],
      "female": [...]
    }
  }
}

Required data sources: - Healthcare utilization patterns: Administrative health data - GP visit rates: Primary care databases

Step 4: Data Collection Strategy

Essential Data Sources

  1. National Statistics Offices
    • Population demographics
    • Life tables
    • Health surveys
  2. Health Administrative Databases
    • Healthcare utilization
    • Treatment costs
    • Disease prevalence
  3. Published Literature
    • Disease-specific studies
    • Health economics evaluations
    • Epidemiological studies
  4. International Databases
    • WHO Global Health Observatory
    • OECD Health Statistics
    • Global Burden of Disease Study

Data Quality Considerations

  • Representativeness: Ensure data represents the target population
  • Recency: Use the most recent available data
  • Consistency: Maintain consistent definitions across parameters
  • Validation: Cross-check with multiple sources when possible

Step 5: Parameter Estimation

When direct data is not available, parameters can be estimated using:

5.1 Regression Models

# Example: Estimating COPD prevalence coefficients
# Using logistic regression on survey data
model <- glm(copd ~ age + sex + smoking_status + pack_years, 
             data = survey_data, family = binomial())
coefficients(model)

5.2 Literature Meta-analysis

  • Systematic review of published studies
  • Meta-analytic techniques to pool estimates
  • Adjustment for population differences

5.3 Calibration

  • Use model calibration to match observed outcomes
  • Iterative adjustment of parameters
  • Validation against external data sources

Step 6: Testing the New Configuration

Once you have populated the configuration file:

6.1 Test Loading

# Test that the configuration loads without errors
library(epicR)
input <- get_input(jurisdiction = "germany")

6.2 Run Basic Simulation

# Run a small simulation to check for errors
results <- simulate(
  jurisdiction = "germany",
  n_agents = 10000,
  time_horizon = 5
)
print(results$basic)

6.3 Validate Outputs

  • Compare population demographics to national statistics
  • Check COPD prevalence against published estimates
  • Validate healthcare utilization patterns

Step 7: Documentation

Create documentation for your new country configuration:

7.1 Data Sources Documentation

# Create a data sources file
data_sources <- list(
  demographics = "German Federal Statistical Office, 2023",
  copd_prevalence = "BOLD Study Germany, 2022",
  healthcare_costs = "German Health Economics Association, 2023"
)

7.2 Parameter Assumptions

Document any assumptions or approximations made during parameter estimation.

Example: Adding Germany

Here’s a simplified example of adding Germany to epicR:

# 1. Create base configuration
germany_config <- list(
  jurisdiction = "germany",
  global_parameters = list(
    age0 = 40,
    time_horizon = 20,
    discount_cost = 0.03,  # German health economics guidelines
    discount_qaly = 0.03,
    closed_cohort = 0
  ),
  agent = list(
    p_female = 0.507,  # German Federal Statistical Office 2023
    # ... other parameters
  ),
  cost = list(
    cost_gp_visit = 25.50,  # German fee schedule 2023
    cost_outpatient_diagnosis = 85.40,
    # ... other costs
  )
  # ... other parameter categories
)

# 2. Save configuration
jsonlite::write_json(germany_config, 
                     "inst/config/config_germany.json", 
                     pretty = TRUE, auto_unbox = TRUE)

# 3. Test the configuration
library(epicR)
input <- get_input(jurisdiction = "germany")

Quality Assurance

Validation Checklist

Common Issues and Solutions

  1. Missing Data: Use proxy data from similar countries or systematic reviews
  2. Currency Conversion: Use purchasing power parity adjustments
  3. Different Healthcare Systems: Adapt utilization patterns to local context
  4. Data Quality: Document limitations and uncertainty

Contributing Your Configuration

If you’ve successfully created a configuration for a new country:

  1. Validate thoroughly using local data
  2. Document data sources and methods
  3. Consider contributing to the epicR project
  4. Share with the community for peer review

Conclusion

Adding a new country to epicR requires substantial data collection and parameter estimation, but the modular configuration system makes this process systematic and reproducible. The key is to ensure high-quality, country-specific data while maintaining the model’s scientific rigor.

For questions or assistance with adding a new country, consider: - Reviewing published adaptations of EPIC - Consulting with local health economists - Engaging with the epicR development community - Collaborating with researchers who have local data access