1. London School of Hygiene and Tropical Medicine, London, UK

  2. Centre for Sexual Health and HIV AIDS Research (CeSHHAR) Zimbabwe

  3. Liverpool School of Tropical Medicine, Liverpool, UK

Email. calum.davey@lshtm.ac.uk


Female sex workers are more likely than women of similar age to be living with HIV. Sex work can lead to with violence, stigma, and distrimination. Selling sex is associated with poverty, familial breakdown, substance misuse, and other ‘co-morbid’ vulnerabilities that increase the likelihood that female sex workers will be in need of sustained health and welfare services. Retaining female sex workers in care is a challenge, in part because their work incentivises movement to find clients. A recent impact evaluation of an intervention to improve healthcare services for female sex workers compared places with and without an enhanced sex-worker friendly intervention using respondent-driven-sampling surveys in cross section. Since retention in care and the validity of comparisons between plces to estimate intervention effects will depend on the levels of mobility we sought to model the probability that a female sex worker in Zimbabwe will be in a place different from the location where she usually lives. We used data from the 2016 ‘endline’ survey from the SAPPHIRE trial.

The aim of this analysis was to estimate the overall likelihood of female sex workers being in places other than where they usually live as a function of distance.



In estimating the probability of observing an individual from location a at location b we can imagine that this would depend on the probability pt that women at a move for durations away t, the distance d between a and b, and the probability, qtd of being at such a distance when travelling for duration t.

We can estimate pt by calculating the proportion of the preceeding 12 months that women in our sample spent away on trips of length t, i.e. what proportion of the last year was spent on trips of one-weeks duration or less. By geocoding the places visited we were able to calculate the distance d. Therefore, the only remaining challenge was to fit models for qtd: the probability that a journey of a particular duration t would be to a particular distance d. We fitted models to frequencies, or counts, of visits for each of four trip-duration bands at 10km distance intervals. To estimate the probability of being found in a particular 10km distance we integrated qtd over d and d-10.

par(mar=c(0,0,0,0), mai=c(0,0,0,0))
plot.window(c(-.6,.6), c(-.6,.6))
plotcircle(r=.4, lcol = "gray", col="light gray")
plotcircle(r=.3, lcol = "gray", col="white")
Arrows(0, 0, .4, 0, code = 2, arr.length = 0.3,
       arr.width = .15, arr.adj = 1, arr.type = "triangle",
       segment = TRUE, col = "black")
textflag(c(-0.07,0), .05, .1, rx = 0, dr = 0.01,
         col = "white", lcol = "white", 
         lwd = 2, lab=expression("a"), cex=2)
textflag(c(0.47,0), .05, .1, rx = 0, dr = 0.01,
         col = "white", lcol = "white", 
         lwd = 2, lab=expression("b"), cex=2)
textflag(c(0.2,.05), .05, .1, rx = 0, dr = 0.01,
         col = NULL, lcol = NA, 
         lwd = 2, lab=expression("d"), cex=2)
filledcircle(r1 = .01, mid = c(0,0), col="black")
filledcircle(r1 = .01, mid = c(0.4,0), col="black")

Arrows(0, 0, .22, -.23, code = 2, arr.length = 0.4,
       arr.width = .5, arr.adj = 1, arr.type = "triangle",
       segment = TRUE, lty=0, col = "black")
Arrows(0.33, -0.33, .301, -.301, code = 2, arr.length = 0.4,
       arr.width = .5, arr.adj = 1, arr.type = "triangle",
       segment = TRUE, lty=0, col = "black")
textflag(c(0.275,-0.27), .05, .1, rx = 0, dr = 0.01,
         col = NULL, lcol = NA, 
         lwd = 2, lab=expression("10km"), cex=1.8)