3

我需要找到一种对组进行抽样的方法,以便观察到的比例与预期的比例相匹配。我想在每个组中保留尽可能多的观察结果。

简单示例:A 组 = 302 (60.3%) B 组 = 199 (39.7%)

我期望的比例是 46.6% 和 53.4%,所以在这种情况下,我将保留 B 组中的所有观察值,并对 A 组进行 0.576 采样,以获得 174 个观察值。它是否正确?

无论如何,是否可以在 SAS 或 R 中编写一条规则,为您提供 n 个组的适当采样率?我的实际问题涉及 14 个组,计数范围从 2 到 77:

A 组 = 77,观察 = 21.51%,预期 = 15.10%

B 组 = 5,观察 = 1.4%,预期 = 0.54%

C 组 = 2,观察 = 0.56%,预期 = 1.62%

等等

非常感谢您的帮助。

4

3 回答 3

2

我相信您可以使用 PROC SURVEYSELECT 来实现这一点。您需要将每组的预期采样率存储在单独的数据集中,然后在 PROC SURVEYSELECT 语句中应用选项“SAMPRATE=SAS 数据集”。有关详细信息,请参阅有关此过程的在线文档。

于 2013-03-08T08:32:55.017 回答
1

这是一个狡猾的小功能:

minsamp <- function(obs,expect) {

  ## get the groups where the number of people available
  ## isn't enough to simply multiply it out
  underrep <- obs[which(obs - expect * sum(obs) < 0)]

  # name of the smallest underrepresented group
  urname <- names(which.min(underrep))

  # get the final result
  round(expect * (obs[urname]/expect[urname]))

}

还有一个例子(基于你的simple example

obs <- c(a=302,b=199)
expect <- c(a=0.466,b=0.534)

> minsamp(obs,expect)
  a   b 
174 199 

你可以看到它起作用了:

> prop.table(minsamp(obs,expect))
        a         b 
0.4664879 0.5335121 
于 2013-03-08T03:07:46.380 回答
1

我假设您正在绘制数据集的简单随机样本 (SRS)。在这种情况下,预计会得到群体的“代表性不足”和/或“代表性过高”。就推理而言,这不是问题。如果您正在抽取样本以估计某些总体特征,例如总数或比例,那么您不必担心样本中的频率与总体中的频率不匹配。事实上,这些频率仅在平均上相等,即在所有可能的样本上。通常的估算人员已经“考虑”了这一点。

另一方面,可以强制频率匹配;但我们将进入复杂样本领域。该领域的一些优秀作者是 Särndal 等人。(1992 年)和蒂莱(2006 年)。一些谷歌搜索会告诉你他们的工作有多广泛。在您的实际案例中,我相信您正在寻找一个分层样本,即由在人口群体中抽取的子样本形成的样本。如果您在每个组中抽取简单的随机样本,那么在 R 中实现一个不超过 10 行代码的例程是很简单的。

但是,如果您想要准备好东西,请查看 R 的“采样”包:http: //cran.r-project.org/web/packages/sampling/index.html

请注意,如果您选择复杂样本方法,则必须格外小心,因为这是一个具有许多微妙之处的理论。估计器采用不同的形式(例如,谷歌,“Horvitz-Thompsom 估计器”),它们的采样分布更难以描述,并且使用该分布的正态近似通常是非常粗略的近似。

仅提及所涉及的一些微妙之处,在分层样本的情况下,考虑确定应该为每个层(人口组)分配多少抽样单位的问题,因为样本必须具有固定的单位总数。比例分配(即匹配样本和总体中各组的比例)不一定是最佳解决方案。有关简要讨论,请参阅 Cochran (1997),或参阅上述书籍了解更多详细信息。

于 2013-03-08T16:26:04.690 回答