我想使用partykit的ctree函数使用条件推理树来分析我的数据。我特别使用这个函数,因为--如果我理解正确--它是唯一允许多路分裂的函数之一。我需要这个选项,因为我所有的变量都是多级(无序)分类变量。
但是,试图使用ctree_control启用多路拆分会出现以下错误:
aufprallentree <- ctree(case ~., data = aufprallen,
control = ctree_control(minsplit = 10, minbucket = 5, multiway = TRUE))
## Error in 1:levels(x) : NA/NaN argument
## In addition: Warning messages:
## 1: In 1:levels(x) :
## numerical expression has 4 elements: only the first used
## 2: In partysplit(as.integer(isel), index = 1:levels(x)) :
## NAs introduced by coercion有人知道怎么解决这个问题吗?或者如果我搞错了,ctree不允许多路分裂?
为了清晰起见,我的数据概述:(没有NAs)
str(aufprallen)
## 'data.frame': 299 obs. of 10 variables:
## $ prep : Factor w/ 6 levels "an","auf","hinter",..: 2 2 2 2 2 2 1 2 2 2 ...
## $ prep_main : Factor w/ 2 levels "auf","other": 1 1 1 1 1 1 2 1 1 1 ...
## $ case : Factor w/ 2 levels "acc","dat": 1 1 2 1 1 1 2 1 1 1 ...
## $ sense : Factor w/ 3 levels "crashdown","crashinto",..: 2 2 1 3 2 2 1 2 1 2 ...
## $ PO_type : Factor w/ 4 levels "object","region",..: 4 4 3 1 4 4 3 4 3 4 ...
## $ PO_type2 : Factor w/ 3 levels "object","region",..: 1 1 3 1 1 1 3 1 3 1 ...
## $ perfectivity : Factor w/ 2 levels "imperfective",..: 1 1 2 2 1 1 1 1 1 1 ...
## $ mit_Körperteil: Factor w/ 2 levels "n","y": 1 1 1 1 1 1 1 1 1 1 ...
## $ PP_place : Factor w/ 4 levels "back","front",..: 4 1 1 1 1 1 1 1 1 1 ...
## $ PP_place_main : Factor w/ 3 levels "marked","rel",..: 2 3 3 3 3 3 3 3 3 3 ...提前感谢!
发布于 2015-12-29 21:01:41
以下是几点意见:
1:levels(x)的错误是ctree中的一个错误。代码应该是1:nlevels(x)。我只是在package上修正了这个问题--这样你就可以从那里查看SVN,如果你现在想使用这个选项,可以手动安装这个软件包。(如果您需要更详细的信息,请与我联系。)未来几周,Torsten可能还会发布新的CRAN版本。glmtree包中的partykit。代码是glmtree(case ~ ., data = aufprallen, family = binomial, catsplit = "multiway", minsize = 5)。用参数不稳定性检验代替关联条件推理来确定分裂变量,并采用形式似然。但在许多情况下,结果与ctree相当相似。总的来说,我的建议是从标准的条件推理树开始,只使用二进制拆分。只有当这导致许多二进制分裂在相同的因素时,我才会继续探讨多路分裂。
https://stackoverflow.com/questions/34343425
复制相似问题