* using log directory ‘/Users/ripley/R/packages/tests-devel/MOSAlloc.Rcheck’ * using R Under development (unstable) (2026-01-28 r89342) * using platform: aarch64-apple-darwin25.2.0 * R was compiled by Apple clang version 17.0.0 (clang-1700.6.3.2) GNU Fortran (GCC) 14.2.0 * running under: macOS Tahoe 26.2 * using session charset: UTF-8 * using option ‘--no-stop-on-test-error’ * checking for file ‘MOSAlloc/DESCRIPTION’ ... OK * this is package ‘MOSAlloc’ version ‘1.2.3’ * package encoding: UTF-8 * checking package namespace information ... OK * checking package dependencies ... OK * checking if this is a source package ... OK * checking if there is a namespace ... OK * checking for executable files ... OK * checking for hidden files and directories ... OK * checking for portable file names ... OK * checking for sufficient/correct file permissions ... OK * checking whether package ‘MOSAlloc’ can be installed ... OK * checking installed package size ... OK * checking package directory ... OK * checking DESCRIPTION meta-information ... OK * checking top-level files ... OK * checking for left-over files ... OK * checking index information ... OK * checking package subdirectories ... OK * checking code files for non-ASCII characters ... OK * checking R files for syntax errors ... OK * checking whether the package can be loaded ... OK * checking whether the package can be loaded with stated dependencies ... OK * checking whether the package can be unloaded cleanly ... OK * checking whether the namespace can be loaded with stated dependencies ... OK * checking whether the namespace can be unloaded cleanly ... OK * checking loading without being on the library search path ... OK * checking use of S3 registration ... OK * checking dependencies in R code ... OK * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK * checking R code for possible problems ... OK * checking Rd files ... OK * checking Rd metadata ... OK * checking Rd cross-references ... OK * checking for missing documentation entries ... OK * checking for code/documentation mismatches ... OK * checking Rd \usage sections ... OK * checking Rd contents ... OK * checking for unstated dependencies in examples ... OK * checking examples ... ERROR Running examples in ‘MOSAlloc-Ex.R’ failed The error most likely occurred in: > ### Name: mosalloc > ### Title: Multiobjective sample allocation for constraint multivariate and > ### multidomain optimal allocation in survey sampling > ### Aliases: mosalloc > > ### ** Examples > > # Artificial population of 50 568 business establishments and 5 business > # sectors (data from Valliant, R., Dever, J. A., & Kreuter, F. (2013). > # Practical tools for designing and weighting survey samples. Springer. > # https://doi.org/10.1007/978-1-4614-6449-5, Example 5.2 pages 133-9) > > # See also > # file: Code 5.3 constrOptim.example.R > > Nh <- c(6221, 11738, 4333, 22809, 5467) # stratum sizes > ch <- c(120, 80, 80, 90, 150) # stratum-specific cost of surveying > > # Revenues > mh.rev <- c(85, 11, 23, 17, 126) # mean revenue > Sh.rev <- c(170.0, 8.8, 23.0, 25.5, 315.0) # standard deviation revenue > > # Employees > mh.emp <- c(511, 21, 70, 32, 157) # mean number of employees > Sh.emp <- c(255.50, 5.25, 35.00, 32.00, 471.00) # std. dev. employees > > # Proportion of estabs claiming research credit > ph.rsch <- c(0.8, 0.2, 0.5, 0.3, 0.9) > > # Proportion of estabs with offshore affiliates > ph.offsh <- c(0.06, 0.03, 0.03, 0.21, 0.77) > > budget <- 300000 # overall available budget > n.min <- 100 # minimum stratum-specific sample size > > # Examples > #---------------------------------------------------------------------------- > # Example 1: Minimization of the variation of estimates for revenue subject > # to cost restrictions and precision restrictions to the coefficient of > # variation of estimates for the proportion of businesses with offshore > # affiliates. > > l <- rep(n.min, 5) # minimum sample size per stratum > u <- Nh # maximum sample size per stratum > C <- rbind(ch, + ch * c(-1, -1, -1, 0, 0)) > c <- c(budget, # Maximum overall survey budget + - 0.5 * budget) # Minimum overall budget for strata 1-3 > > # We require at maximum 5 % relative standard error for estimates of > # proportion of businesses with offshore affiliates > A <- matrix(ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2, + nrow = 1) > a <- sum(ph.offsh * (1 - ph.offsh) * Nh**2/(Nh - 1) + )/sum(Nh * ph.offsh)**2 + 0.05**2 > > D <- matrix(Sh.rev**2 * Nh**2, nrow = 1) # objective variance components > d <- sum(Sh.rev**2 * Nh) # finite population correction > > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = FALSE) > > sol <- mosalloc(D = D, d = d, A = A, a = a, C = C, c = c, l = l, u = u, + opts = opts) > > # Check solution statement of the internal solver to verify feasibility > sol$Ecosolver$Ecoinfostring # [1] "Optimal solution found" [1] "Optimal solution found" > > # Check constraints > c(C[1, ] %*% sol$n) # [1] 3e+05 [1] 3e+05 > c(C[2, ] %*% sol$n) # [1] -150000 [1] -150000 > c(sqrt(A %*% (1 / sol$n) - A %*% (1 / Nh))) # 5 % rel. std. err. [1] 0.05 > > #---------------------------------------------------------------------------- > # Example 2: Minimization of the maximum relative variation of estimates for > # the total revenue, the number of employee, the number of businesses claimed > # research credit, and the number of businesses with offshore affiliates > # subject to cost restrictions > > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > C <- rbind(ch, ch * c(-1, -1, -1, 0, 0)) > c <- c(budget, - 0.5 * budget) > A <- NULL # no precision constraint > a <- NULL # no precision constraint > > # Precision components (Variance / Totals^2) for multidimensional objective > D <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > > d <- as.vector(D %*% (1 / Nh)) # finite population correction > > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = FALSE) > > sol <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) > > # Obtain optimal objective value > sol$J # [1] 0.0017058896 0.0004396972 0.0006428475 0.0017058896 [1] 0.0017058896 0.0004396972 0.0006428475 0.0017058896 > > # Obtain corresponding normal vector > sol$Normal # [1] 6.983113e-01 1.337310e-11 1.596167e-11 3.016887e-01 [1] 6.983113e-01 1.337610e-11 1.596524e-11 3.016887e-01 > > # => Revenue and offshore affiliates are dominating the solution with a > # ratio of approximately 2:1 (sol$Normal[1] / sol$Normal[4]) > > #---------------------------------------------------------------------------- > # Example 3: Example 2 with preference weighting > > w <- c(1, 3.85, 3.8, 1.3) # preference weighting > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > C <- rbind(ch, ch * c(-1, -1, -1, 0, 0)) > c <- c(budget, - 0.5 * budget) > A <- NULL # no precision constraint > a <- NULL # no precision constraint > > D <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > > d <- as.vector(D %*% (1 / Nh)) > > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = w, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = FALSE) > > mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) $w [1] 1.00 3.85 3.80 1.30 $n [1] 755.8117 499.7609 241.5215 691.6864 584.9882 $J [1] 0.0018907289 0.0004917598 0.0004982304 0.0014563656 $Objective NULL $Utiopian NULL $Normal [1] 2.364038e-08 2.237152e+00 1.186254e+00 1.387742e-01 $dfJ NULL $Sensitivity $Sensitivity$D [1] 2.364038e-08 5.810784e-01 3.121722e-01 1.067494e-01 $Sensitivity$A numeric(0) $Sensitivity$C [1] 1.050676e-08 -7.307475e-09 $Sensitivity$lbox [1] 9.094079e-17 1.547203e-16 4.498693e-16 1.020058e-16 1.253218e-16 $Sensitivity$ubox [1] 1.129216e-17 5.617979e-18 1.503181e-17 2.807560e-18 1.252127e-17 $Qbounds [1] 1 1 1 1 1 $Dbounds [1] 0.001890729 0.001893275 0.001893275 0.001893275 $Scalingfactor [1] 0.0016654338 0.0020770702 0.0022015450 0.0002711488 0.0005464200 $Ecosolver $Ecosolver$Ecoinfostring [1] "Optimal solution found" $Ecosolver$Ecoredcodes exitFlag iter mi_iter numerr 0 12 -1 0 $Ecosolver$Ecosummary pcost dcost pres dres pinf dinf 1.069071e+00 1.069071e+00 1.207760e-12 4.858622e-12 0.000000e+00 0.000000e+00 pinfres dinfres gap relgap r0 7.107497e-02 NaN 2.309596e-09 2.160377e-09 1.000000e-10 $Timing TotalTime InnerTime ECOS_runtime ECOS_tsetup ECOS_tsolve [1,] 0.002 0.001 0.000105957 1.3791e-05 9.2166e-05 $Iteration NULL > > #---------------------------------------------------------------------------- > # Example 4: Example 2 with multiple preference weightings for simultaneous > # evaluation > > w <- matrix(c(1.0, 1.0, 1.0, 1.0, # matrix of preference weightings + 1.0, 3.9, 3.9, 1.3, + 0.8, 4.2, 4.8, 1.5, + 1.2, 3.5, 4.8, 2.0, + 2.0, 1.0, 1.0, 2.0), 5, 4, byrow = TRUE) > w <- w / w[,1] # rescale w (ensure the first weighting to be one) > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > C <- rbind(ch, ch * c(-1, -1, -1, 0, 0)) > c <- c(budget, - 0.5 * budget) > A <- NULL # no precision constraint > a <- NULL # no precision constraint > > D <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > > d <- as.vector(D %*% (1 / Nh)) > > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = w, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = FALSE) > > sols <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) > lapply(sols, function(sol){sol$Qbounds}) [[1]] [1] 1 1 1 1 1 [[2]] [1] 1 1 1 1 1 [[3]] [1] 1 1 1 1 1 [[4]] [1] 1 1 1 1 1 [[5]] [1] 1 1 1 1 1 > > #---------------------------------------------------------------------------- > # Example 5: Example 2 where a weighted sum scalarization of the objective > # components is minimized > > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > C <- matrix(ch, nrow = 1) > c <- budget > A <- NULL # no precision constraint > a <- NULL # no precision constraint > > # Objective variance components > D <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > > d <- as.vector(D %*% (1 / Nh)) # finite population correction > > # Simple weighted sum as decision functional > wss <- c(1, 1, 0.5, 0.5) # preference weighting (weighted sum scalarization) > > Dw <- wss %*% D > dw <- as.vector(wss %*% d) > > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 1000L, print_pm = FALSE) > > # Solve weighted sum scalarization (WSS) via mosalloc > sol_wss <- mosalloc(D = Dw, d = dw, C = C, c = c, l = l, u = u, opts = opts) > > # Obtain optimal objective values > J <- D %*% (1 / sol_wss$n) - d > > # Reconstruct solution via a weighted Chebyshev minimization > wcm <- J[1] / J > opts = list(sense = "max_precision", + f = NULL, df = NULL, Hf = NULL, + init_w = matrix(wcm, 1), + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 1000L, print_pm = FALSE) > > sol_wcm <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) > > # Compare solutions > rbind(t(J), sol_wcm$J) [,1] [,2] [,3] [,4] [1,] 0.00155645 0.0004037429 0.0005934474 0.001327165 [2,] 0.00155645 0.0004037429 0.0005934474 0.001327165 > # [,1] [,2] [,3] [,4] > # [1,] 0.00155645 0.0004037429 0.0005934474 0.001327165 > # [2,] 0.00155645 0.0004037429 0.0005934474 0.001327165 > > rbind(sol_wss$n, sol_wcm$n) [,1] [,2] [,3] [,4] [,5] [1,] 582.8247 236.6479 116.7866 839.5988 841.4825 [2,] 582.8226 236.6475 116.7871 839.5989 841.4841 > # [,1] [,2] [,3] [,4] [,5] > # [1,] 582.8247 236.6479 116.7866 839.5988 841.4825 > # [2,] 582.8226 236.6475 116.7871 839.5989 841.4841 > > rbind(wss, sol_wcm$Normal / sol_wcm$Normal[1]) [,1] [,2] [,3] [,4] wss 1 1.0000000 0.5000000 0.5000000 1 0.9976723 0.4997552 0.4997462 > # [,1] [,2] [,3] [,4] > #wss 1 1.0000000 0.5000000 0.5000000 > # 1 0.9976722 0.4997552 0.4997462 > > #---------------------------------------------------------------------------- > # Example 6: Example 1 with two subpopulations and a p-norm as decision > # functional > > l <- rep(n.min, 5) # minimum sample size per stratum > u <- Nh # maximum sample size per stratum > C <- rbind(ch, ch * c(-1, -1, -1, 0, 0)) > c <- c(budget, - 0.5 * budget) > > # At maximum 5 % relative standard error for estimates of proportion of > # businesses with offshore affiliates > A <- matrix(ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2, + nrow = 1) > a <- sum(ph.offsh * (1 - ph.offsh) * Nh**2/(Nh - 1) + )/sum(Nh * ph.offsh)**2 + 0.05**2 > > D <- rbind((Sh.rev**2 * Nh**2)*c(0,0,1,1,0), + (Sh.rev**2 * Nh**2)*c(1,1,0,0,1))# objective variance components > d <- as.vector(D %*% (1 / Nh)) # finite population correction > > # p-norm solution > p <- 5 # p-norm > opts = list(sense = "max_precision", + f = function(x) sum(x**p), + df = function(x) p * x**(p - 1), + Hf = function(x) diag(p * (p - 1) * x**(p - 2)), + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 1000L, print_pm = TRUE) > > sol <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) Projection method: k = 0 ; stop_crit = 1 ; angle = 88.6434 ; ||J^k-J^{k-1}|| = NA k = 1 ; stop_crit = 1 ; angle = 78.178 ; ||J^k-J^{k-1}|| = 3673247824 k = 2 ; stop_crit = 0.9953 ; angle = 43.2535 ; ||J^k-J^{k-1}|| = 1138623818 k = 3 ; stop_crit = 0.8264 ; angle = 12.7467 ; ||J^k-J^{k-1}|| = 782643346 k = 4 ; stop_crit = 0.0029 ; angle = 0.0244 ; ||J^k-J^{k-1}|| = 529932723 k = 5 ; stop_crit = 0 ; angle = 0 ; ||J^k-J^{k-1}|| = 988971 > > c(sol$Normal/sol$dfJ)/mean(c(sol$Normal/sol$dfJ)) [1] 0.9999972 1.0000028 > # [1] 0.9999972 1.0000028 > > #---------------------------------------------------------------------------- > # Example 7: Example 2 with p-norm as decision functional and only one > # overall cost constraint > > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > C <- matrix(ch, nrow = 1) > c <- budget > A <- NULL # no precision constraint > a <- NULL # no precision constraint > > # Objective precision components > D <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > > d <- as.vector(D %*% (1 / Nh)) # finite population correction > > # p-norm solution > p <- 5 # p-norm > opts = list(sense = "max_precision", + f = function(x) sum(x**p), + df = function(x) p * x**(p - 1), + Hf = function(x) diag(p * (p - 1) * x**(p - 2)), + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 1000L, print_pm = TRUE) > > sol <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) Projection method: k = 0 ; stop_crit = 0.9999 ; angle = 84.6214 ; ||J^k-J^{k-1}|| = NA k = 1 ; stop_crit = 0.9914 ; angle = 41.3652 ; ||J^k-J^{k-1}|| = 0.0005733031 k = 2 ; stop_crit = 0.9968 ; angle = 33.8186 ; ||J^k-J^{k-1}|| = 0.0002696887 k = 3 ; stop_crit = 0.8604 ; angle = 5.5979 ; ||J^k-J^{k-1}|| = 6.351213e-05 k = 4 ; stop_crit = 0.9511 ; angle = 4.106 ; ||J^k-J^{k-1}|| = 3.079672e-05 k = 5 ; stop_crit = 1 ; angle = 85.6953 ; ||J^k-J^{k-1}|| = 1.101005e-05 k = 6 ; stop_crit = 0.8643 ; angle = 1.4772 ; ||J^k-J^{k-1}|| = 5.016457e-06 k = 7 ; stop_crit = 0.998 ; angle = 54.9118 ; ||J^k-J^{k-1}|| = 8.841181e-08 k = 8 ; stop_crit = 0.9973 ; angle = 31.1532 ; ||J^k-J^{k-1}|| = 1.18872e-09 k = 9 ; stop_crit = 0.9959 ; angle = 14.8562 ; ||J^k-J^{k-1}|| = 5.329177e-10 k = 10 ; stop_crit = 0.7067 ; angle = 1.1374 ; ||J^k-J^{k-1}|| = 1.212386e-06 k = 11 ; stop_crit = 0.9949 ; angle = 19.2986 ; ||J^k-J^{k-1}|| = 1.020085e-08 k = 12 ; stop_crit = 0.9918 ; angle = 10.4234 ; ||J^k-J^{k-1}|| = 2.754673e-10 k = 13 ; stop_crit = 0.639 ; angle = 1.0068 ; ||J^k-J^{k-1}|| = 4.00308e-07 k = 14 ; stop_crit = 0.9918 ; angle = 12.669 ; ||J^k-J^{k-1}|| = 5.018902e-09 k = 15 ; stop_crit = 0.986 ; angle = 6.7333 ; ||J^k-J^{k-1}|| = 1.855419e-10 k = 16 ; stop_crit = 0.8276 ; angle = 0.5013 ; ||J^k-J^{k-1}|| = 1.361328e-06 k = 17 ; stop_crit = 0.8822 ; angle = 1.2089 ; ||J^k-J^{k-1}|| = 1.115686e-10 k = 18 ; stop_crit = 0.7771 ; angle = 0.6631 ; ||J^k-J^{k-1}|| = 2.131426e-11 k = 19 ; stop_crit = 0.7095 ; angle = 0.2549 ; ||J^k-J^{k-1}|| = 9.366524e-07 k = 20 ; stop_crit = 0.4064 ; angle = 0.2189 ; ||J^k-J^{k-1}|| = 1.613846e-11 k = 21 ; stop_crit = 0.7131 ; angle = 0.2121 ; ||J^k-J^{k-1}|| = 3.42362e-07 k = 22 ; stop_crit = 0.309 ; angle = 0.1379 ; ||J^k-J^{k-1}|| = 1.192308e-11 k = 23 ; stop_crit = 0.7433 ; angle = 0.2176 ; ||J^k-J^{k-1}|| = 4.800343e-09 k = 24 ; stop_crit = 0.1061 ; angle = 0.1151 ; ||J^k-J^{k-1}|| = 7.99112e-12 k = 25 ; stop_crit = 0.7367 ; angle = 0.1734 ; ||J^k-J^{k-1}|| = 8.453325e-07 k = 26 ; stop_crit = 0.0726 ; angle = 0.0349 ; ||J^k-J^{k-1}|| = 6.075487e-12 k = 27 ; stop_crit = 0.0726 ; angle = 0.0746 ; ||J^k-J^{k-1}|| = 0 k = 28 ; stop_crit = 0.0726 ; angle = 0.0899 ; ||J^k-J^{k-1}|| = 0 k = 29 ; stop_crit = 0.041 ; angle = 0.0325 ; ||J^k-J^{k-1}|| = 7.008787e-13 k = 30 ; stop_crit = 0.3788 ; angle = 0.142 ; ||J^k-J^{k-1}|| = 2.102811e-11 k = 31 ; stop_crit = 0.0902 ; angle = 0.0368 ; ||J^k-J^{k-1}|| = 5.938315e-12 k = 32 ; stop_crit = 0.0778 ; angle = 0.0354 ; ||J^k-J^{k-1}|| = 3.301873e-13 k = 33 ; stop_crit = 0.0682 ; angle = 0.0345 ; ||J^k-J^{k-1}|| = 7.0202e-13 k = 34 ; stop_crit = 0.0221 ; angle = 0.0318 ; ||J^k-J^{k-1}|| = 1.208333e-12 k = 35 ; stop_crit = 0.5985 ; angle = 0.3426 ; ||J^k-J^{k-1}|| = 1.288166e-10 k = 36 ; stop_crit = 0.0389 ; angle = 0.0323 ; ||J^k-J^{k-1}|| = 1.299782e-11 k = 37 ; stop_crit = 0.3276 ; angle = 0.1147 ; ||J^k-J^{k-1}|| = 1.871081e-11 k = 38 ; stop_crit = 0.1079 ; angle = 0.0391 ; ||J^k-J^{k-1}|| = 5.402865e-12 Procedur terminated due to numerical accuracy! Verify result! > > c(sol$Normal/sol$dfJ)/mean(c(sol$Normal/sol$dfJ)) [1] 0.9967027 0.9924344 1.0148964 0.9959665 > # [1] 1.0014362 0.9780042 1.0197807 1.0007789 > > #---------------------------------------------------------------------------- > # Example 8: Minimization of sample sizes subject to precision constraints > > l <- rep(n.min, 5) # minimum sample size ber stratum > u <- Nh # maximum sample size per stratum > > # We require at maximum 4.66 % relative standard error for the estimate of > # total revenuee, 5 % for the number of employees, 3 % for the proportion of > # businesses claiming research credit, and 3 % for the proportion of > # businesses with offshore affiliates > A <- rbind(Sh.rev**2 * Nh**2/sum(Nh * mh.rev)**2, + Sh.emp**2 * Nh**2/sum(Nh * mh.emp)**2, + ph.rsch * (1 - ph.rsch) * Nh**3/(Nh - 1)/sum(Nh * ph.rsch)**2, + ph.offsh * (1 - ph.offsh) * Nh**3/(Nh - 1)/sum(Nh * ph.offsh)**2) > a <- as.vector(A%*%(1 / Nh) + c(0.0466, 0.05, 0.03, 0.03)**2) > > # We do not consider any additional sample size or cost constraints > C <- NULL # no cost constraint > c <- NULL # no cost constraint > > # Since we minimize the sample size, we define D and d as follows: > D <- matrix(1, nrow = 1, ncol = length(Nh)) # objective cost components > d <- as.vector(0) # vector of possible fixed cost > > opts = list(sense = "min_cost", # Sense of optimization is survey cost + f = NULL, + df = NULL, + Hf = NULL, + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = TRUE) > > sol <- mosalloc(D = D, d = d, A = A, a = a, l = l, u = u, opts = opts) > > sum(sol$n) # [1] 2843.219 [1] 2843.219 > sol$J # [1] 2843.219 [1] 2843.219 > > #---------------------------------------------------------------------------- > #---------------------------------------------------------------------------- > # Note: Sample size optimization for two-stage cluster sampling can be > # reduced to the structure of optimal stratified random samplin when > # considering expected costs. Therefore, mosalloc() can handle such > # designs. A benefit is that mosalloc() allows relatively complex > # sample size restrictions such as box constraints for subsampling. > # Optimal sample sizes at secondary stages have to be reconstructed > # from sol$n. > # > # Example 9: Optimal number of primary sampling units (PSU) and secondary > # sampling units (SSU) in 2-stage cluster sampling. > > set.seed(1234) > pop <- data.frame(value = rnorm(100, 100, 35), + cluster = sample(1:4, 100, replace = TRUE)) > > CI <- 36 # Sampling cost per PSU/cluster > CII <- 10 # Average sampling cost per SSU > > NI <- 4 # Number of PSUs/clusters > NII <- table(pop$cluster) # PSU/cluster sizes > > S2I <- var(by(pop$value, pop$cluster, sum)) # between cluster variance > S2II <- by(pop$value, pop$cluster, var) # within cluster variances > > D <- matrix(c(NI**2 * S2I - NI * sum(NII * S2II), NI * NII**2 * S2II), 1) > d <- as.vector(NI * S2I) > > C <- cbind(c(CI, rep(2, NI), -NII), + rbind(rep(CII / NI, 4), -diag(4), diag(4))) > c <- as.vector(c(500, rep(0, 8))) > > l <- c(2, rep(4, 4)) > u <- c(NI, NI * NII) > > opts = list(sense = "max_precision", + f = NULL, + df = NULL, + Hf = NULL, + init_w = 1, + mc_cores = 1L, pm_tol = 1e-05, + max_iters = 100L, print_pm = TRUE) > > sol <- mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) Error in mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts) : d is not an utopian vector! d is too large. Execution halted * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... Running ‘testthat.R’ ERROR Running the tests in ‘tests/testthat.R’ failed. Complete output: > # This file is part of the standard setup for testthat. > # It is recommended that you do not modify it. > # > # Where should you do additional test configuration? > # Learn more about the roles of various files in: > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview > # * https://testthat.r-lib.org/articles/special-files.html > > library(testthat) > library(MOSAlloc) > > test_check("MOSAlloc") Saving _problems/test-mosalloc-155.R ---------------------------------------------------------- mosalloc running... TotalTime InnerTime ECOS_runtime ECOS_tsetup ECOS_tsolve 0.003 0.002 0.000168666 1.3958e-05 0.000154708 -> ECOSolveR statement: Optimal solution found! ---------------------------------------------------------- ---------------------------------------------------------- mosalloc running... TotalTime InnerTime ECOS_runtime ECOS_tsetup ECOS_tsolve 0.001 0 0.000163874 1.5041e-05 0.000148833 -> ECOSolveR statement: Optimal solution found! ---------------------------------------------------------- ---------------------------------------------------------- mosalloc running... -> ECOSolveR statement: Optimal solution found! ---------------------------------------------------------- ---------------------------------------------------------- mosalloc running... TotalTime InnerTime ECOS_runtime ECOS_tsetup ECOS_tsolve 0.001 0 0.00017825 1.6125e-05 0.000162125 -> ECOSolveR statement: Optimal solution found! ---------------------------------------------------------- ---------------------------------------------------------- ---------------------------------------------------------- mosalloc running... TotalTime InnerTime ECOS_runtime ECOS_tsetup ECOS_tsolve 0.002 0.001 0.000144624 2.1833e-05 0.000122791 -> ECOSolveR statement: Optimal solution found! ---------------------------------------------------------- [ FAIL 1 | WARN 0 | SKIP 0 | PASS 85 ] ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error ('test-mosalloc.R:155:3'): mosalloc() works as expected for 2ST sampling ── Error in `mosalloc(D = D, d = d, C = C, c = c, l = l, u = u, opts = opts)`: d is not an utopian vector! d is too large. Backtrace: ▆ 1. └─MOSAlloc::mosalloc(...) at test-mosalloc.R:155:3 [ FAIL 1 | WARN 0 | SKIP 0 | PASS 85 ] Error: ! Test failures. Execution halted * checking PDF version of manual ... OK * checking HTML version of manual ... OK * checking for detritus in the temp directory ... OK * DONE Status: 2 ERRORs See ‘/Users/ripley/R/packages/tests-devel/MOSAlloc.Rcheck/00check.log’ for details. 16.31 real 12.52 user 3.35 sys