Geschichtete Stichprobe, wenn einige Schichten zu klein sind

Ich muss eine geschichtete Stichprobe mit ziehenn Beobachtung in jeder Schicht, aber einige Schichten haben weniger Beobachtungen alsn. Wenn eine Schicht zu wenige Beobachtungen hat (sagen wir,k<n Beobachtungen), ich möchte alle probierenk Beobachtungen aus dieser Schicht.

require(sampling)

n <- 10
geo_ID <- c(rep(1, times = 20), rep(2, times = 20), rep(c(1, 2, 3, 4), times = 5))
    set.seed(42)
V1 <- rnorm(60, 0, 1)
V2 <- rnorm(60, 2, 1)

DF <- data.frame(geo_ID = geo_ID, V1 = V1, V2 = V2)
    #Sort as explained in ?strata help file
DF <- DF[order(DF[, "geo_ID"]), ]

strata(DF, stratanames = "geo_ID", size = c(n, n, n, n), method = "srswor")

Wenn ich die oben beschriebene ersatzlose Probenahme verwende, erhalte ich (verständlicherweise) den Fehler:

Error in strata(DF, stratanames = "geo_ID", size = c(10, 10, 10, 10),  : 
  not enough obervations in the stratum 

Probenahme mit Ersatz vermeidet den Fehler,method = "srswr"Dies ist jedoch nicht ideal, da es manchmal Wiederholungen für Schichten zeichnet, die groß genug sind, um nur einzelne Stichproben zu zeichnen.

HINWEIS: Es gibt eine ähnliche Frage zu SO, die jedoch nicht wirklich beantwortet wurde. Auch ich denke, dass diese Frage allgemeiner ist. (Stratified Sampling - nicht genügend Beobachtungen) Die Antworten auf die verknüpfte Frage sind im Allgemeinen nicht nützlich, da sie entweder (i) Stichprobengrößen proportional zur Schichtgröße erfordern (wobei ich eine feste Zahl benötige) oder (ii) die Schicht für Schicht manuell programmieren, was nicht der Fall ist machbar, wenn die Anzahl der Schichten zunimmt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage