R的调查包中的BRR权重如何使用?

Ric*_*kyB 5 r survey replicate

如果您的数据集已经包含BRR权重,有人知道如何在Lumley的调查包中使用BRR权重来估计方差吗?

我正在使用PISA数据,并且它们的数据集中已经包含80个BRR复制。我怎样才能让as.svrepdesign使用它们,而不是尝试自己创建它们?我尝试了以下操作,并得到了随后的错误:

dstrat <- svydesign(id=~uniqueID,strata=~strataVar, weights=~studentWeight, 
                data=data, nest=TRUE)
dstrat <- as.svrepdesign(dstrat, type="BRR")

Error in brrweights(design$strata[, 1], design$cluster[, 1], ..., 
    fay.rho = fay.rho,  : Can't split with odd numbers of PSUs in a stratum
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢。

Ant*_*ico 4

如果您已经拥有包含重复权重的数据框,则无需使用as.svrepdesign():)您可以直接从数据框创建重复加权设计。

假设您有一个名为 的主权重列和 80 个通过mainwgt调用的复制权重列的数据,您可以使用此--repwgt1repwgt80

yoursurvey <-
    svrepdesign( 
    weights = ~mainwgt , 
    repweights = "repwgt[0-9]+" , 
    type = "BRR", 
    data = yourdata ,
    combined.weights = TRUE
)
Run Code Online (Sandbox Code Playgroud)

-- 这样,您就不必确定确切的列号。然后你可以运行正常的调查命令,例如--

svymean( ~variable , design = yoursurvey )
Run Code Online (Sandbox Code Playgroud)

如果您想要另一个示例,这里有一些示例代码和使用当前人口调查的解释性博客文章。