- Notifications
You must be signed in to change notification settings - Fork0
Simplified Lot Quality Assurance Sampling Evaluation of Access and Coverage (SLEAC) Tools
License
nutriverse/sleacr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
In the recent past, measurement of coverage has been mainly throughtwo-stage cluster sampled surveys either as part of a nutritionassessment or through a specific coverage survey known as CentricSystematic Area Sampling (CSAS). However, such methods are resourceintensive and often only used for final programme evaluation meaningresults arrive too late for programme adaptation. SLEAC, which standsfor Simplified Lot Quality Assurance Sampling Evaluation of Access andCoverage, is a low resource method designed specifically to address thislimitation and is used regularly for monitoring, planning andimportantly, timely improvement to programme quality, both for agencyand Ministry of Health (MoH) led programmes. This package providesfunctions for use in conducting a SLEAC assessment.
The{sleacr}
package provides functions that facilitate the design,sampling, data collection, and data analysis of a SLEAC survey. Thecurrent version of the{sleacr}
package currently provides thefollowing:
Functions to calculate the sample size needed for a SLEAC survey;
Functions to draw a stage 1 sample for a SLEAC survey;
Functions to classify coverage;
Functions to determine the performance of chosen classifier cut-offsfor analysis of SLEAC survey data;
Functions to estimate coverage over wide areas; and,
Functions to test for coverage homogeneity across multiple surveysover wide areas.
The{sleacr}
package is not yet available onCRAN but can be installed from thenutriverse R Universe as follows:
install.packages("sleacr",repos= c('https://nutriverse.r-universe.dev','https://cloud.r-project.org'))
To setup an LQAS sampling frame, a target sample size is firstestimated. For example, if the survey area has an estimated populationof about 600 severe acute malnourished (SAM) children and you want toassess whether coverage is reaching at least 50%, the sample size can becalculated as follows:
get_sample_n(N=600,dLower=0.5,dUpper=0.8)
which gives an LQAS sampling plan list with values for the targetminimum sample size (n
), the decision rule (d
), the observed alphaerror (alpha
), and the observed beta error (beta
).
#> $n#> [1] 19#> #> $d#> [1] 12#> #> $alpha#> [1] 0.06446194#> #> $beta#> [1] 0.08014249
In this sampling plan, a target minimum sample size of 19 SAM casesshould be aimed for with a decision rule of more than 12 SAM casescovered to determine whether programme coverage is at least 50% withalpha and beta errors no more than 10%. The alpha and beta errorsrequirement is set at no more than 10% by default. This can be made moreprecise by setting alpha and beta errors less than 10%.
There are contexts where survey data has already been collected and thesample is less than what was aimed for based on the original samplingframe. Theget_sample_d()
function is used to determine the errorlevels of the achieved sample size. For example, if the survey describedabove only achieved a sample size of 16, theget_sample_d()
functioncan be used as follows:
get_sample_d(N=600,n=16,dLower=0.5,dUpper=0.8)
which gives an alternative LQAS sampling plan based on the achievedsample size.
#> $n#> [1] 16#> #> $d#> [1] 10#> #> $alpha#> [1] 0.07890285#> #> $beta#> [1] 0.1019738
In this updated sampling plan, the decision rule is now more than 10 SAMcases but with higher alpha and beta errors. Note that the beta error isnow slightly higher than 10%.
The first stage sample of a SLEAC survey is a systematic spatial sample.Two methods can be used and both methods take the sample from all partsof the survey area: thelist-based method and themap-based method.The{sleacr}
package currently supports the implementation of thelist-based method.
In the list-based method, communities to be sampled are selectedsystematically from a complete list of communities in the survey area.This list of communities should sorted by one or more non-overlappingspatial factors such as district and subdistricts within districts. Thevillage_list
dataset is an example of such a list.
village_list#> # A tibble: 1,001 × 4#> id chiefdom section village#> <dbl> <chr> <chr> <chr>#> 1 1 Badjia Damia Ngelehun#> 2 2 Badjia Damia Gondama#> 3 3 Badjia Damia Penjama#> 4 4 Badjia Damia Jawe#> 5 5 Badjia Damia Dambala#> 6 6 Badjia Fallay Bumpewo#> 7 7 Badjia Fallay Pelewahun#> 8 8 Badjia Fallay Pendembu#> 9 9 Badjia Kpallay Jokibu#> 10 10 Badjia Kpallay Kpaku#> # ℹ 991 more rows
Theget_sampling_list()
function implements the list-based samplingmethod. For example, if 40 clusters/villages are needed to be sampled tofind the 19 SAM cases calculated earlier, a sampling list can be createdas follows:
get_sampling_list(village_list,40)
which provides the following sampling list:
id | chiefdom | section | village |
---|---|---|---|
20 | Badjia | Njargbahun | Kpetema |
45 | Bagbe | Jongo | Yengema |
70 | Bagbe | Samawa | Baiama |
95 | Bagbo | Jimmi | Kpawama |
120 | Bagbo | Mano | Dandabu |
145 | Baoma | Bambawo | Kenemawo |
170 | Baoma | Fallay | Gbandi |
195 | Baoma | Mawojeh | Ngelahun |
220 | Baoma | Upper Pataloo | Yakaji |
245 | Bumpe Ngao | Bumpe | Waiima |
270 | Bumpe Ngao | Foya | Bobobu |
295 | Bumpe Ngao | Bongo | Belebu |
320 | Bumpe Ngao | Serabu | Nyahagoihun |
345 | Bumpe Ngao | Taninahun | Kpetewoma |
370 | Bumpe Ngao | Taninahun | Mokebi |
395 | Bumpe Ngao | Taninahun | Ngiegboiya |
420 | Gbo | Gbo | Kotumahun Mavi |
445 | Gbo | Nyawa | Foya |
470 | Jaiama Bongor | Lower Niawa | Baraka |
495 | Jaiama Bongor | Tongowa | Talia |
520 | Jaiama Bongor | Upper Niawa | Nyeyama |
545 | Kakua | Kpandobu | Fabaina |
570 | Kakua | Nyallay | Jandama |
595 | Kakua | Sewa | Kenedeyama |
620 | Komboya | Kemoh | Gumahun |
645 | Komboya | Mangaru | Sengbehun |
670 | Lugbu | Kargbevu | Momandu |
695 | Niawa Lenga | Lower Niawa | Luawa |
720 | Niawa Lenga | Yalenga | Dandabu |
745 | Selenga | Mokpendeh | Jolu |
770 | Tikonko | Ngolamajie | Baoma (Geyewoma) |
795 | Tikonko | Seiwa | Gendema |
820 | Tikonko | Seiwa | Towama |
845 | Tikonko | Seiwa | Kpawugbahun |
870 | Valunia | Deilenga | Hendogboma |
895 | Valunia | Lower Kargoi | Gombu |
920 | Valunia | Lunia | Kpetema |
945 | Valunia | Manyeh | Malema |
970 | Valunia | Yarlenga | Dassamu |
995 | Wonde | Manyeh | Kigbema |
With data collected from a SLEAC survey, thelqas_classify_coverage()
function is used to classify coverage. The{sleacr}
package comes withthesurvey_data
dataset from a national SLEAC survey conducted inSierra Leone.
survey_data#> # A tibble: 14 × 7#> country province district cases_in cases_out rec_in cases_total#> <chr> <chr> <chr> <int> <int> <int> <int>#> 1 Sierra Leone Northern Bombali 4 26 6 30#> 2 Sierra Leone Northern Koinadugu 0 32 6 32#> 3 Sierra Leone Northern Kambia 0 28 0 28#> 4 Sierra Leone Northern Port Loko 2 28 0 30#> 5 Sierra Leone Northern Tonkolili 1 27 5 28#> 6 Sierra Leone Eastern Kono 2 14 3 16#> 7 Sierra Leone Eastern Kailahun 4 30 3 34#> 8 Sierra Leone Eastern Kenema 8 26 4 34#> 9 Sierra Leone Southern Pujehun 6 21 1 27#> 10 Sierra Leone Southern Bo 6 16 8 22#> 11 Sierra Leone Southern Bonthe 7 34 2 41#> 12 Sierra Leone Southern Moyamba 6 34 0 40#> 13 Sierra Leone Western Area Western Area… 6 40 5 46#> 14 Sierra Leone Western Area Western Area… 2 18 0 20
Using this dataset, per district coverage classifications can becalculated as follows:
with(survey_data, lqas_classify(cases_in=cases_in,cases_out=cases_out,rec_in=rec_in ))
which outputs the following results:
#> cf tc#> 1 0 1#> 2 0 0#> 3 0 0#> 4 0 0#> 5 0 0#> 6 0 1#> 7 0 0#> 8 1 1#> 9 1 1#> 10 1 1#> 11 0 0#> 12 0 0#> 13 0 0#> 14 0 0
The function provides estimates forcase-finding effectiveness and fortreatment coverage as adata.frame
object.
It is useful to be able to assess the performance of the classifierchosen for a SLEAC survey. For example, in the context presented aboveof an area with a population of 600, a sample size of 40 and a 60% and90% threshold classifier, the performance of this classifier can beassessed by first simulating a population and then determining theclassification probabilities of the chosen classifier on thispopulation.
## Simulate population ----lqas_sim_pop<- lqas_simulate_test(pop=600,n=40,dLower=0.6,dUpper=0.9)## Get classification probabilities ----lqas_get_class_prob(lqas_sim_pop)#> Low : 0.9551#> Moderate : 0.8332#> High : 0.835#> Overall : 0.9065#> Gross misclassification : 0
This diagnostic test can also be plotted.
plot(lqas_sim_pop)
When SLEAC is implemented in several service delivery units, it is alsopossible to estimate an overall coverage across these service deliveryunits. For example, using thesurvey_data
dataset from a nationalSLEAC survey conducted in Sierra Leone, an overall coverage estimate canbe calculated. For this, additional information on the total populationfor each service delivery unit surveyed will be needed. For the SierraLeone example, thepop_data
dataset gives the population for eachdistrict in Sierra Leone.
pop_data#> # A tibble: 14 × 2#> district pop#> <chr> <dbl>#> 1 Kailahun 526379#> 2 Kenema 609891#> 3 Kono 506100#> 4 Bombali 606544#> 5 Kambia 345474#> 6 Koinadugu 409372#> 7 Port Loko 615376#> 8 Tonkolili 531435#> 9 Bo 575478#> 10 Bonthe 200781#> 11 Moyamba 318588#> 12 Pujehun 346461#> 13 Western Area Rural 444270#> 14 Western Area Urban 1055964
The overall coverage estimate can be calculated as follows:
pop_df<-pop_data|> setNames(nm= c("strata","pop"))estimate_coverage_overall(survey_data,pop_data,strata="district",u5=0.177,p=0.01)
which gives the following results:
#> $cf#> $cf$estimate#> [1] 0.1257481#> #> $cf$ci#> [1] 0.09247579 0.15902045#> #> #> $tc#> $tc$estimate#> [1] 0.1706466#> #> $tc$ci#> [1] 0.1371647 0.2041284
When estimating coverage across multiple surveys over wide areas, it isgood practice to assess whether coverage across each of the servicedelivery units is homogenous. The functioncheck_coverage_homogeneity()
is used for this purpose:
check_coverage_homogeneity(survey_data)
which results in the following output:
#> ℹ Case-finding effectiveness across 14 surveys is not patchy.#> ! Treatment coverage across 14 surveys is patchy.#> $cf#> $cf$statistic#> [1] 20.1292#> #> $cf$df#> [1] 13#> #> $cf$p#> [1] 0.09203514#> #> #> $tc#> $tc$statistic#> [1] 33.10622#> #> $tc$df#> [1] 13#> #> $tc$p#> [1] 0.001642536
In this example, case-finding effectiveness is homogeneous whiletreatment coverage is patchy.
If you use{sleacr}
in your work, please cite using the suggestedcitation provided by a call to thecitation
function as follows:
citation("sleacr")#> To cite sleacr in publications use:#>#> Mark Myatt, Ernest Guevarra, Lionella Fieschi, Allison Norris, Saul#> Guerrero, Lilly Schofield, Daniel Jones, Ephrem Emru, Kate Sadler#> (2012). _Semi-Quantitative Evaluation of Access and Coverage#> (SQUEAC)/Simplified Lot Quality Assurance Sampling Evaluation of#> Access and Coverage (SLEAC) Technical Reference_. FHI 360/FANTA,#> Washington, DC.#> <https://www.fantaproject.org/sites/default/files/resources/SQUEAC-SLEAC-Technical-Reference-Oct2012_0.pdf>.#>#> A BibTeX entry for LaTeX users is#>#> @Book{,#> title = {Semi-Quantitative Evaluation of Access and Coverage ({SQUEAC})/Simplified Lot Quality Assurance Sampling Evaluation of Access and Coverage ({SLEAC}) Technical Reference},#> author = {{Mark Myatt} and {Ernest Guevarra} and {Lionella Fieschi} and {Allison Norris} and {Saul Guerrero} and {Lilly Schofield} and {Daniel Jones} and {Ephrem Emru} and {Kate Sadler}},#> year = {2012},#> publisher = {FHI 360/FANTA},#> address = {Washington, DC},#> url = {https://www.fantaproject.org/sites/default/files/resources/SQUEAC-SLEAC-Technical-Reference-Oct2012_0.pdf},#> }
Feedback, bug reports, and feature requests are welcome; file issues orseek supporthere. If youwould like to contribute to the package, please see ourcontributingguidelines.
This project is released with aContributor Code ofConduct. Bycontributing to this project, you agree to abide by its terms.
About
Simplified Lot Quality Assurance Sampling Evaluation of Access and Coverage (SLEAC) Tools