FUNCTION to compute the optimal sample size for populations stratified by risk factors.

Share:

Description

Computes the optimal sample size (for each risk group) for a survey to substantiate freedom from disease for a population stratified into risk groups. The optimal sample size is the smallest sample size that produces an alpha-error less than or equal to a prediscribed value for alpha. The population is considered as diseased if at least one individual has a positive test result. The sample size is computed using a bisection method. The sample size can be fixed for a subset of the risk groups via the input parameter 'nSampleFixVec' (vector containing sample sizes for the risk groups with fixed values and NA for the risk groups for which the sample size is to be computed). For those risk groups for which the sample size is to be computed a vector specifying the proportional distribution among the risk groups ('nSamplePropVec') needs to be specified.

Example: We have 3 risk groups. For the 2nd risk group we want 20 farms to be sampled. For the other risk groups we specify that the sample size for risk group 1 should be double the sample size of risk group 3. We then set: nSampleFixVec <- c(NA, 20, NA) nSamplePropVec <- c(2,1)

Usage

1
2
3
4
computeOptimalSampleSizeRiskGroups(nPopulationVec, 
    nRelRiskVec, nSampleFixVec = NULL, nSamplePropVec = NULL, 
    prevalence, alpha = 0.05, sensitivity = 1, 
    specificity = 1)

Arguments

nPopulationVec

Integer vector. Population sizes of the risk groups.

nRelRiskVec

Numeric vector. (Relative) infection risks of the risk groups.

nSampleFixVec

Numeric vector containing NAs (optional argument). For risk groups for which the sample size is fixed specify the sample size. For the risk groups for which the sample size should be computed set NA (order of the risk groups must be the same order as in nPopulationVec and nRelRiskVec) .

nSamplePropVec

Numeric vector. For those risk groups for which the sample size should be computed a proportional distribution of the overall sample size must be specified. The vector must have the same length as the number of NA entries in nSampleFixVec or if nSampleFixVec is not specified, nSamplePropVec must have the same length as nPopulationVec.

prevalence

Numeric between 0 and 1. Design prvalence. The number of diseased is then computed as max(1,nPopulation*prevalence).

alpha

Numeric between 0 and 1. Alpha-Error (=error of the first kind, significance level) of the underlying significance test. Default value = 0.05.

sensitivity

Numeric between 0 and 1. Sensitivity of the diagnostic (for one-stage sampling) or herd test (for two stage sampling). Default value = 1.

specificity

Numeric between 0 and 1. Specificity of the diagnostic (for one-stage sampling) or herd test (for two stage sampling). Default value = 1.

Value

The return value is an integer vector containing the optimal sample size for every risk group specified in the input variables nPopulationVec and nRelRiskVec.

Author(s)

Ian Kopacka <ian.kopacka@ages.at>

References

A.R. Cameron and F.C. Baldock, "A new probablility formula to substantiate freedom from disease", Prev. Vet. Med. 34 (1998), pp. 1-17.

P.A.J.Martin, A.R. Cameron, M. Greiner, "Demonstrating freedom from disease using multiple complex data sources. : A new methodology based on scenario trees", Prev. Vet. Med. 79 (2007), pp. 71 - 97.

See Also

computePValueRiskGroups

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
nPopulationVec <- c(500,700)
nRelRiskVec <- c(1,3)
prevalence <- 0.01
alpha <- 0.05
herdSensitivity <- 0.7
specificity <- 1

## Optimal sample size with risk groups: 
nRisk <- computeOptimalSampleSizeRiskGroups(nPopulationVec = 
    nPopulationVec, nRelRiskVec = nRelRiskVec, 
	nSamplePropVec = c(1,4), prevalence = prevalence, 
	alpha = alpha, sensitivity = herdSensitivity, 
	specificity = specificity)
## Optimal sample size without risk groups: 
nNoRisk <- computeOptimalSampleSize(sum(nPopulationVec), 
    prevalence, alpha, herdSensitivity, specificity, FALSE)