R语言survey包svyboxplot分组绘图与子集绘图结果不一致求助
问题根源
svyboxplot函数默认separate = FALSE,此时会基于全数据集的加权分位数作为箱线图的分位切割标准,再统计每个分组落在各全局分位区间的样本占比,因此输出的各分组箱线图形态高度相似,不符合分组独立统计的预期。
单独筛选子集绘图时,每个子集独立计算分位数,因此结果符合实际数据特征。
解决方法
调用分组绘图的svyboxplot时添加separate = TRUE参数,即可让每个分组独立计算自身的加权分位数,输出和单独绘制子集一致的结果。
修正后代码如下:
library(tidyverse) library(survey) col <- tibble( name = c("seura 1", "seura 2", "seura 3", "seura 4", "seura 5", "seura 6", "seura 7", "seura 8", "seura 9", "seura 10", "seura 11", "seura 12"), riistakeskus = c("Keski-Suomi","Keski-Suomi","Keski-Suomi","Keski-Suomi","Keski-Suomi","Satakunta","Satakunta","Satakunta","Uusimaa", "Uusimaa","Uusimaa","Uusimaa"), hirvi_sarvisuositus = c(1,4,5,3,7,5,3,4,6,5,8,9), weights = c(1.1461438,1.1461438,1.1461438,1.1461438,1.1461438,0.5107815,0.5107815,0.5107815,2.0461937,2.0461937,2.0461937,2.0461937) ) my_des1 <- svydesign(data = col, weights = ~weights, ids = ~1) # 新增separate = TRUE参数 b <- svyboxplot(hirvi_sarvisuositus~factor(riistakeskus), my_des1, all.outliers = F, ylim = c(0,10), separate = TRUE)
内容的提问来源于stack exchange,提问作者Latu
相关产品推荐
相关产品推荐

