是否存在创建置信区间的现有函数
来自 svyby
比例对象(在我的例子中是 survey
包中二进制项的交叉表)。我经常比较各组之间的比例,如果有一个可以提取置信区间的函数(使用调查函数 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 中变量“两者”的比例
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()
因为它快速而直观。
最佳答案
svyby()
有一个 vartype=
参数来指定您希望如何指定采样不确定性。使用 vartype="ci"
获得置信区间,例如
svyby(~I(ell>0),~stype,design=dclus1, svyciprop,vartype="ci",method="beta")
很容易检查这是否与手动完成每个级别相同,例如,
confint(svyciprop(~I(ell>0), design=subset(dclus1,stype=="E"),method="beta"))
关于r - svyby 比例的置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14112508/