子集调查设计存在的问题

时间:2018-08-20 15:15:49

标签: r subset survey

我正在使用来自巴西的IBGE的PNS微型数据(可在此处获取:https://ww2.ibge.gov.br/home/estatistica/populacao/pns/2013/default_microdados.shtm

我使用数据库中的现有变量创建了一些新变量,然后使用下面的代码创建了调查设计。

pes_all_des <-
  survey::svydesign(
    id = ~ upa_pns ,
    strata = ~ v0024 , 
    data = base , 
    weights = ~ pre_pes_full , 
    nest = TRUE
  )

post_pop_all <- unique( base[ , c( 'v00283.y' , 'v00282.y' ) ] )

names( post_pop_all ) <- c( "v00283.y" , "Freq" )

match.design <- survey::postStratify( pes_all_des , ~ v00283.y , post_pop_all )

如果我尝试在本调查设计中使用svyglm()进行回归分析,则会得到“正常”结果,没有警告。

现在,我将这个设计作为子集:

match.design2 <- subset(match.design, d_match==1)

使用svyglm()运行相同的回归,我收到一条警告消息:

1: In summary.glm(g) :
  observations with zero weight not used for calculating dispersion
2: In summary.glm(glm.object) :
  observations with zero weight not used for calculating dispersion

此消息实际上是什么意思?它不会阻止我运行回归,所以我不知道我应该为此担心多少。

仅需了解更多信息,如果在两个设计中都进行了summary()操作,我将得到完全不同的结果:

summary(match.design)
Stratified 1 - level Cluster Sampling design (with replacement)
With (6062) clusters.
survey::postStratify(pes_all_des, ~v00283.y, post_pop_all)
Probabilities:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
0.0000733 0.0008510 0.0018686 0.0033423 0.0036237 0.1058348 

> summary(match.design2)
Stratified 1 - level Cluster Sampling design (with replacement)
With (6062) clusters.
subset(match.design, d_match == 1)
Probabilities:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
0.0001152       Inf       Inf       Inf       Inf       Inf 

有人可以帮我吗?预先感谢!

瓦格纳

1 个答案:

答案 0 :(得分:0)

此行为是survey软件包试图帮助您避免统计错误的事实的结果。

对于涉及校准/后分层/倾斜的特别复杂的设计,不能简单地通过从感兴趣的子种群外部过滤掉数据来计算子种群(在这种情况下,subset(match.design, d_match == 1))的估算值;这种方法produces misleading standard errors and confidence intervals.

因此,为了避免陷入此 statistical 问题,survey软件包不允许您完全删除感兴趣的子集之外的记录。相反,它实际上会记录您要忽略的行,然后将概率权重有效地调整为零。看到这样的问题:Why do attempts to filter/subset a raked survey design object fail?

实现权重为零的方式是通过更新存储在match.design2$prob(大小写权重的数字向量)中的权重的值。该向量中与数据中已删除行相对应的条目更改为Inf(令人困惑的是,Inf表示权重为零)。

这就是为什么您在包含的输出中看到以下权重摘要的原因:

Probabilities:
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
0.0001152       Inf       Inf       Inf       Inf       Inf 

我不确定使用svy.glm是否会引起问题。