Wrong Denominator in Proportion of multiple factors using svy来自 svyciprop
Wrong Denominator in Proportion of multiple factors using svyby svyciprop
我想从复杂样本调查中提取的意外事件中获得比例和置信区间 table。我正在使用 svy
svyciprop
(包 survey
)。
问题:我的代码没有在分母中添加我期望的数字,所以我得到了 'wrong' 比例。我在下面展示我的具体例子。关于如何解决这个问题的任何想法?
我想计算的比例
在下面的例子中,我想估计 'Proportion of Men with actv_30==1 in each category of P040 in relation to ALL men.'
让我们创建一个意外事件table并计算比例'outside' R.
ftable(svytable(~actv_30+v0302+P040, design = sample.pns13.18y)) #PNS 2013
enter code here
P040 Maybe No Yes
actv_30 v0302
0 Men 3465091 32738241 5663912
Women 3793623 20721490 5961574
1 Men 2826317 0 6761130
Women 2594562 0 5525180
在此示例中,计算如下:1.Men.Maybe / ALL men
1.Men.Yes == 13.14% == 6761130 / (6761130 + 2826317 + 3465091 + 32738241 + 5663912)
或
1.Men.Maybe == 5.49% == 2826317 / (6761130 + 2826317 + 3465091 + 32738241 + 5663912)
我得到的'wrong'比例
这是我的 R 代码和输出。问题是我的代码正在计算 P040 的每个类别中的比例。所以它正在计算: 1.Men.Maybe / 1.Men.Maybe + 0.Men.Maybe ,其中分母是 P040.
每个类别的总和
事实上,我想要:1.Men.Maybe / ALL men,其中分母是 v0302 每个类别的总和。
svyby(~factor( actv_commutetime30==1 ) ,
~v0302+P040,
design = sample.pns13.18y ,
vartype="ci",
level = 0.95,
svyciprop)
v0302 P040 factor(actv_30 == 1) ci_l ci_u
Men.Maybe Men Maybe 0.45 0.41 0.48
Women.Maybe Women Maybe 0.41 0.38 0.44
Men.No Men No 0.00 0.00 0.00
Women.No Women No 0.00 0.00 0.00
Men.Yes Men Yes 0.54 0.52 0.57
Women.Yes Women Yes 0.48 0.46 0.51
知道如何解决这个问题吗?
亲爱的,使用可重现的例子
library(survey)
data(api)
## one-stage cluster sample
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
# you subset by all men, i subset by
y <- subset( dclus1 , yr.rnd == 'No' )
# you have actv_30 == 1 i have cnum == 1
# and your p040 is equivalent to stype
svymean(~factor(interaction( stype , cnum == 1 ) ),y)
我想从复杂样本调查中提取的意外事件中获得比例和置信区间 table。我正在使用 svy
svyciprop
(包 survey
)。
问题:我的代码没有在分母中添加我期望的数字,所以我得到了 'wrong' 比例。我在下面展示我的具体例子。关于如何解决这个问题的任何想法?
我想计算的比例
在下面的例子中,我想估计 'Proportion of Men with actv_30==1 in each category of P040 in relation to ALL men.'
让我们创建一个意外事件table并计算比例'outside' R.
ftable(svytable(~actv_30+v0302+P040, design = sample.pns13.18y)) #PNS 2013
enter code here
P040 Maybe No Yes
actv_30 v0302
0 Men 3465091 32738241 5663912
Women 3793623 20721490 5961574
1 Men 2826317 0 6761130
Women 2594562 0 5525180
在此示例中,计算如下:1.Men.Maybe / ALL men
1.Men.Yes == 13.14% == 6761130 / (6761130 + 2826317 + 3465091 + 32738241 + 5663912)
或
1.Men.Maybe == 5.49% == 2826317 / (6761130 + 2826317 + 3465091 + 32738241 + 5663912)
我得到的'wrong'比例
这是我的 R 代码和输出。问题是我的代码正在计算 P040 的每个类别中的比例。所以它正在计算: 1.Men.Maybe / 1.Men.Maybe + 0.Men.Maybe ,其中分母是 P040.
每个类别的总和事实上,我想要:1.Men.Maybe / ALL men,其中分母是 v0302 每个类别的总和。
svyby(~factor( actv_commutetime30==1 ) ,
~v0302+P040,
design = sample.pns13.18y ,
vartype="ci",
level = 0.95,
svyciprop)
v0302 P040 factor(actv_30 == 1) ci_l ci_u
Men.Maybe Men Maybe 0.45 0.41 0.48
Women.Maybe Women Maybe 0.41 0.38 0.44
Men.No Men No 0.00 0.00 0.00
Women.No Women No 0.00 0.00 0.00
Men.Yes Men Yes 0.54 0.52 0.57
Women.Yes Women Yes 0.48 0.46 0.51
知道如何解决这个问题吗?
亲爱的,使用可重现的例子
library(survey)
data(api)
## one-stage cluster sample
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
# you subset by all men, i subset by
y <- subset( dclus1 , yr.rnd == 'No' )
# you have actv_30 == 1 i have cnum == 1
# and your p040 is equivalent to stype
svymean(~factor(interaction( stype , cnum == 1 ) ),y)