使用partykit的ctree函数时,重标记分类变量为何改变树结果?
问题:partykit包ctree函数因标签改为"yes/no"导致树图变化
我使用partykit包的ctree函数做分析,所有变量均为二元分类变量。发现只要将二元分类变量的标签修改为“yes/no”,生成的ctree树图就会发生变化,但修改为其他标签时则无此问题。
初始标签
- Racialized:0 = "non-rac";1 = "rac"
- Immigrant:0 = "non-imm";1 = "imm"
新标签
- Racialized:0 = "no";1 = "yes"
- Immigrant:0 = "no";1 = "yes"
我检查过代码的其他部分,确认没有发生变化,但对这一现象感到困惑。
更新
最初我采用将数值变量转为字符类型后再转因子的方式标记变量,代码如下:
data$racialized[data$PP_racialized==0]<- "non-rac" data$racialized[data$PP_racialized==1]<- "rac" data$racialized[data$PP_racialized==0]<- "no" data$racialized[data$PP_racialized==1]<- "yes" #before Ctree analysis data <- data %>% dplyr::mutate_if(is.character, factor)
后来改用apply_labels函数标记变量后,无论如何修改标签,分析结果都保持一致,树图不再出现差异,代码如下:
data=apply_labels(racialized=c("rac"=1, "non-rac"= 0)) data=apply_labels(racialized=c("yes"=1, "no"= 0)) #before ctree analysis data <- data %>% dplyr::mutate_if(is.numeric, factor)
内容的提问来源于stack exchange,提问作者Bisola
相关产品推荐
相关产品推荐

