epi

package
v1.9.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2022 License: GPL-3.0 Imports: 2 Imported by: 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

Index

Examples

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL