## Documentation ¶

### Overview ¶

Package epi holds a collection of functions for calculating the health impacts of air pollution.

## Example ¶

This example calculates mortalities caused by ambient PM2.5 concentrations.

var ( // I represents currently observed deaths per 100,000 // people in this region. I = 800.0 // p represents number of people in different locations // in the region. p = []float64{100000, 80000, 700000, 90000} // z represents PM2.5 concentrations in μg/m³ in locations // corresponding to p. z = []float64{12, 26, 11, 2, 9} ) // This is how we can calculate total deaths caused by air pollution // using a regional underlying incidence rate. io := IoRegional(p, z, NasariACS, I/100000) var totalDeaths float64 for i, pi := range p { totalDeaths += Outcome(pi, z[i], io, NasariACS) } fmt.Printf("total deaths using regional underlying incidence: %.0f\n", totalDeaths) // This is how we can calculate additional deaths caused by doubling // air pollution: var doubleDeaths float64 for i, pi := range p { doubleDeaths += Outcome(pi, z[i]*2, io, NasariACS) - Outcome(pi, z[i], io, NasariACS) } fmt.Printf("additional deaths caused by doubling air pollution: %.0f\n", doubleDeaths) // This is how we can calculate lives saved by halving air pollution: var halfDeaths float64 for i, pi := range p { halfDeaths += Outcome(pi, z[i]/2, io, NasariACS) - Outcome(pi, z[i], io, NasariACS) } fmt.Printf("lives saved by halving air pollution: %.0f\n", -1*halfDeaths) // Sometimes it is not practical to calculate regional underlying // incidence. This is how we can calculate total deaths caused by air pollution // using a location-specific underlying incidence rate. totalDeaths = 0 for i, pi := range p { totalDeaths += Outcome(pi, z[i], Io(z[i], NasariACS, I/100000), NasariACS) } fmt.Printf("total deaths using local underlying incidence: %.0f\n", totalDeaths) // This is how we can calculate additional deaths caused by doubling // air pollution using a local underlying incidence rate: doubleDeaths = 0 for i, pi := range p { io := Io(z[i], NasariACS, I/100000) doubleDeaths += Outcome(pi, z[i]*2, io, NasariACS) - Outcome(pi, z[i], io, NasariACS) } fmt.Printf("additional deaths caused by doubling air pollution (local underlying incidence): %.0f\n", doubleDeaths)

Output: total deaths using regional underlying incidence: 672 additional deaths caused by doubling air pollution: 403 lives saved by halving air pollution: 389 total deaths using local underlying incidence: 665 additional deaths caused by doubling air pollution (local underlying incidence): 401

### Index ¶

#### Examples ¶

### Constants ¶

This section is empty.

### Variables ¶

```
var Krewski2009 = Cox{
Beta: 0.005826890812,
Threshold: 5,
Label: "Krewski2009",
}
```

Krewski2009 is a Cox proportional-hazards model from the study:

Krewski, D., Jerrett, M., Burnett, R. T., Ma, R., Hughes, E., Shi, Y., … Thun, M. J. (2009). Extended Follow-Up and Spatial Analysis of the American Cancer Society Study Linking Particulate Air Pollution and Mortality. Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/19627030

This function is from Table 11 of the study and does not account for ecologic covariates.

```
var Krewski2009Ecologic = Cox{
Beta: 0.007510747249,
Threshold: 5,
Label: "Krewski2009Ecologic",
}
```

Krewski2009Ecologic is a Cox proportional-hazards model from the study:

Krewski, D., Jerrett, M., Burnett, R. T., Ma, R., Hughes, E., Shi, Y., … Thun, M. J. (2009). Extended Follow-Up and Spatial Analysis of the American Cancer Society Study Linking Particulate Air Pollution and Mortality. Retrieved from http://www.ncbi.nlm.nih.gov/pubmed/19627030

This function is from Table 11 of the study and does not account for ecologic covariates.

```
var Lepeule2012 = Cox{
Beta: 0.01310282624,
Threshold: 8,
Label: "Lepeule2012",
}
```

Lepeule2012 is a Cox proportional-hazards model from the study:

Lepeule, J., Laden, F., Dockery, D., & Schwartz, J. (2012). Chronic exposure to fine particles and mortality: An extended follow-up of the Harvard six cities study from 1974 to 2009. Environmental Health Perspectives, 120(7), 965–970. http://doi.org/10.1289/ehp.1104660

var NasariACS = Nasari{ Gamma: 0.0478, Delta: 6.94, Lambda: 3.37, F: func(z float64) float64 { return math.Log(z + 1) }, Label: "NasariACS", }

NasariACS is an exposure-response model fit to the American Cancer Society Cancer Prevention II cohort all causes of death from fine particulate matter.

### Functions ¶

#### func Io ¶

Io returns the underlying incidence rate where the reported incidence rate is I, concentration is z, and hr specifies the hazard ratio as a function of z. When possible, IoRegional should be used instead of this function.

#### func IoRegional ¶

IoRegional returns the underlying regional average incidence rate for a region where the reported incidence rate is I, individual locations within the region have population p and concentration z, and hr specifies the hazard ratio as a function of z, as presented in Equations 2 and 3 of:

Apte JS, Marshall JD, Cohen AJ, Brauer M (2015) Addressing Global Mortality from Ambient PM2.5. Environmental Science and Technology 49(13):8057–8066.

#### func Outcome ¶

Outcome returns the number of incidences occuring in population p when exposed to concentration z given underlying incidence rate Io and hazard relationship hr(z), as presented in Equation 2 of:

Apte JS, Marshall JD, Cohen AJ, Brauer M (2015) Addressing Global Mortality from Ambient PM2.5. Environmental Science and Technology 49(13):8057–8066.

### Types ¶

#### type Cox ¶

type Cox struct { // Beta is the model coefficient Beta float64 // Threshold is the concentration below which health effects are assumed // to be zero. Threshold float64 // Label is the name of the function. Label string }

Cox implements a Cox proportional hazards model.

#### type HRer ¶

HRer is an interface for any type that can calculate the hazard ratio caused by concentration z.

#### type Nasari ¶

```
type Nasari struct {
// Gamma, Delta, and Lambda are parameters fit using linear regression.
Gamma, Delta, Lambda float64
// F is the concentration transformation function.
F func(z float64) float64
// Label is the name of the function.
Label string
}
```

Nasari implements a class of simple approximations to the exposure response models described in:

Nasari M, Szyszkowicz M, Chen H, Crouse D, Turner MC, Jerrett M, Pope CA III, Hubbell B, Fann N, Cohen A, Gapstur SM, Diver WR, Forouzanfar MH, Kim S-Y, Olives C, Krewski D, Burnett RT. (2015). A Class of Non-Linear Exposure-Response Models Suitable for Health Impact Assessment Applicable to Large Cohort Studies of Ambient Air Pollution. Air Quality, Atmosphere, and Health: DOI: 10.1007/s11869-016-0398-z.