是否有一个现有的函数可以从survey
包中的svyby对象中创建比例的置信区间(在我的情况下,这是二元项的交叉表)。我经常比较不同组之间的比例,所以拥有一个可以提取置信区间的函数会非常方便(使用调查函数svyciprop
而不是confint
函数)。下面的示例显示了我想要实现的内容。
加载数据
library(survey)
library(weights)
data(api)
apiclus1$both<-dummify(apiclus1$both)[,1]#Create dummy variable
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
创建一个svyby对象,比较stype中变量"both"的比例。b<-svyby(~both, ~stype, dclus1, svymean)
confint(b)#This works, but svyciprop is best in other cases, especially when proportion is close to 0 or 1
svyciprop(b)#This requires that you specify each level and a design object
是否有可能创建一个函数(例如byCI(b,method="likelihood")
),它能够像使用confint(b)
一样使用svyciprop
来实现相同的功能?它基本上需要遍历svyby
对象的每个级别并创建置信区间。到目前为止,我的尝试都没有成功。
也许还有另一种方法解决这个问题,但我喜欢使用svyby()
,因为它快速且直观。