Version: v1.9.6 Latest Latest Go to latest
Published: Feb 28, 2022 License: GPL-3.0

## 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
```

### Constants ¶

This section is empty.

### Variables ¶

View Source
```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.

View Source
```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.

View Source
```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

View Source
```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 ¶

`func Io(z float64, hr HRer, I float64) float64`

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 ¶

`func IoRegional(p, z []float64, hr HRer, I float64) float64`

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 ¶

`func Outcome(p, z, Io float64, hr HRer) float64`

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.

#### func (Cox) HR ¶

`func (c Cox) HR(z float64) float64`

HR calculates the hazard ratio caused by concentration z.

#### func (Cox) Name ¶

`func (c Cox) Name() string`

Name returns the label for this function.

#### type HRer ¶

```type HRer interface {
HR(z float64) float64
Name() string
}```

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.

#### func (Nasari) HR ¶

`func (n Nasari) HR(z float64) float64`

HR calculates the hazard ratio caused by concentration z.

#### func (Nasari) Name ¶

`func (n Nasari) Name() string`

Name returns the label for this function.