The InPlotSampling package provides a way for researchers to easily implement these sampling methods in practice.
Sampling is made following the diagram below.
Sampling is made following the diagram below.
Use the following code to install this package:
if (!require("remotes")) {
install.packages("remotes")
}
remotes::install_github("AAGI-AUS/InPlotSampling", upgrade = FALSE)
set.seed(112)
population_size <- 600
# the number of samples to be ranked in each set
H <- 3
with_replacement <- FALSE
sigma <- 4
mu <- 10
n_rankers <- 3
# sample size
n <- 30
rhos <- rep(0.75, n_rankers)
taus <- sigma * sqrt(1 / rhos^2 - 1)
population <- qnorm((1:population_size) / (population_size + 1), mu, sigma)
data <- InPlotSampling::jps_sample(
population,
n,
H,
taus,
n_rankers,
with_replacement
)
data <- data[order(data[, 2]), ]
InPlotSampling::rss_jps_estimate(
data,
set_size = H,
method = "JPS",
confidence = 0.80,
replace = with_replacement,
model_based = FALSE,
pop_size = population_size
)
#> Estimator Estimate Standard Error 80% Confidence intervals
#> 1 UnWeighted 9.570 0.526 8.88,10.26
#> 2 Sd.Weighted 9.595 0.569 8.849,10.341
#> 3 Aggregate Weight 9.542 0.500 8.887,10.198
#> 4 JPS Estimate 9.502 0.650 8.651,10.354
#> 5 SRS estimate 9.793 0.783 8.766,10.821
#> 6 Minimum 9.542 0.500 8.887,10.198
set.seed(112)
# SBS sample size, PPS sample size
sample_sizes <- c(5, 5)
n_population <- 233
k <- 0:(n_population - 1)
x1 <- sample(1:13, n_population, replace = TRUE) / 13
x2 <- sample(1:8, n_population, replace = TRUE) / 8
y <- (x1 + x2) * runif(n = n_population, min = 1, max = 2) + 1
measured_sizes <- y * runif(n = n_population, min = 0, max = 4)
population <- matrix(cbind(k, x1, x2, measured_sizes), ncol = 4)
sample_result <- sbs_pps_sample(population, sample_sizes)
# estimate the population mean and construct a confidence interval
df_sample <- sample_result$sample
sample_id <- df_sample[, 1]
y_sample <- y[sample_id]
sbs_pps_estimates <- sbs_pps_estimate(
population,
sample_sizes,
y_sample,
df_sample,
n_bootstrap = 100,
alpha = 0.05
)
print(sbs_pps_estimates)
#> n1 n2 Estimate St.error 95% Confidence intervals
#> 1 5 5 2.849 0.1760682 2.451,3.247
This package can be cited using citation("InPlotSampling") which generates
Error in `citation()`:
! there is no package called 'InPlotSampling'