For each cluster, this function determines a ring of equal number of observations and/or equal radius and calculates several indicators from observations located inside that ring.

# S4 method for prevR
rings(object, N = seq(100, 500, 50), R = Inf, progression = TRUE)

Arguments

object

object of class prevR.

N

minimum number of observations.

R

maximum rings radius (in kilometers if coordinates in decimal degrees, in the unit of the projection otherwise).

progression

show a progress bar?

Value

Return object with the slot rings completed for each couple (N,R).

Each entry is composed of 3 elements: N, minimum number of observations per ring; R, maximum radius of rings and estimates, a data frame with the following variables:

  • "id" cluster ID.

  • "r.pos" number of positive cases inside the ring.

  • "r.n" number of valid observations inside the ring.

  • "r.prev" observed prevalence (in %) inside the ring (r.pos/r.n).

  • "r.radius" ring radius (in kilometers if coordinates in decimal degrees, in the unit of the projection otherwise).

  • "r.clusters" number of clusters located inside the ring.

  • "r.wpos" (optional) sum of weights of positive cases inside the ring.

  • "r.wn" (optional) sum of weights of valid observations inside the ring.

  • "r.wprev" (optional) weighted observed prevalence (in %) inside the ring (r.wpos/r.wn).

Note: the list rings is named, the name of each element is NN_value.RR_value, for example N300.RInf.

Note 2: r.wpos, r.wn and r.wprev are calculated only if the slot clusters of object contains weighted data.

Details

For each row of the data frame clusters of object, rings() determines a ring, centered on the cluster. It could be:

  • rings of equal number of observations if N is finite and R = Inf;

  • rings of equal radius if N = Inf and R is finite;

  • a combination of both (see below) if N and R are both finite.

For *rings of equal number of observations, rings() selects the smallest ring containing at least N valid observations.

For rings of equal radius, rings() selects all clusters located at a lower distance than R from the central cluster.

For combination of both, rings() calculates first the ring with the minimum number of observations and test if its radius is lower than R or not. If so, the ring is kept, otherwise the ring of maximum radius is calculated.

Different series of rings could be simultaneously calculated by providing different values for N and R. rings() will calculate rings corresponding to each couple (N,R).

References

Larmarange Joseph, Vallo Roselyne, Yaro Seydou, Msellati Philippe and Meda Nicolas (2011) "Methods for mapping regional trends of HIV prevalence from Demographic and Health Surveys (DHS)", Cybergeo : European Journal of Geography, no 558, https://journals.openedition.org/cybergeo/24606, DOI: 10.4000/cybergeo.24606.

Larmarange Joseph (2007) Prévalences du VIH en Afrique : validité d'une mesure, PhD thesis in demography, directed by Benoît Ferry, université Paris Descartes, https://theses.hal.science/tel-00320283.

See also

Examples

if (FALSE) {
print(fdhs)
dhs <- rings(fdhs, N = c(100, 200, 300, 400, 500))
print(dhs)
}