Description Usage Arguments Value Examples
View source: R/saSampleAlloc.R
This function exchanges sample allocations between strata to minimize the CV of a set of known administrative variables. This is accomplished by through simulated annealing, where proposed changes in allocations are accepted or rejected based on a penalized objective function. The penalized objective function takes the form of the sum of an L2 norm and a penalty function. The first L2 norm is the vector of differences between the CVs for the current allocation and the target CVs. The penalty function is the dot product between a vector of penalty values and the vector of CVs for the current allocation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | saSampleAlloc(
total,
S2,
targetCV,
sampleSize,
strataSize,
locationAdjustment,
scaleAdjustment,
iterations=100,
p = 2, # l2 norm of the penalty function
penalty = -1, # negative penalties are ignored
cooling = 0,
preserveSatisfied=TRUE,
fpc = TRUE
)
|
total |
(Required) A matrix where each row is a replicate population total and each column is a characteristic of the sampling population used for allocation. When replicates are used, the average CV of each characteristic is used in the objective function. |
S2 |
(Required) A matrix where each row identifies a stratum (in order) and each column is a characteristic of the sampling population used for allocation. The values of this matrix is the variance estimate for each sampling unit within each stratum (S^2). When replicates are used for total, a variance must also be provided for each replicate. This is done by appending each replicate matrix of variances to the S2 matrix in the same order it appears in total. |
targetCV |
(Required) A vector of target CVs. This vector must be of equal length
to the number of columns of |
sampleSize |
(Required) sample size, either an integer valued scalar that will be equally split between strata, or a sample size for each strata. When the sample size cannot be split excess sample allocations will be given to strata in increasing order. |
strataSize |
(Required) strata size, an integer valued array or population sizes by stratum. |
locationAdjustment |
A constant value added to the population variable for each administrative
variable, this is of the same size and layout of |
scaleAdjustment |
A constant value multiplied by the population variable (before the location
adjustment) for each administrative variable, this is of the same size and
layout of |
iterations |
Number of iterations of the allocation. |
p |
The exponent for the penalty function, fractional exponents are available. |
penalty |
The penalty vector used for each of the CV targets penalties. Penalties with negative elements are ignored. A scalar value may be used, and will be repeated for all CVs. |
cooling |
Cooling Schedule (0 = exchange only). |
preserveSatisfied |
|
fpc |
|
accept |
Matrix with three columns and a row for each iteration, "change": change in objective function, "U": uniform random variable, "accepted": 1 - accepted, 0 - not accepted "selected": index of PSU, "from": current stratum of selected PSU , "to": candidate stratum of selected PSU, "n_h": sample size (h is the index or label associated with strata), column names or numbers if not presented |
cost |
Objective Function |
label |
Final Label |
sampleSize |
Final Sample Size |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # data set with 100 observations and four
# characteristics split between two strata
x <- matrix(rnorm( 100*4 ),ncol=4)
total <- colSums(x)
S2 <- apply( x, 2, var)
# run minCV for a sample size of 20
b <- saSampleAlloc(
total,
S2,
strataSize=rep(50,2),
targetCV=c(0.08, 0.10, 0.05, 0.08),
sampleSize=20
)
summary(b)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.