【发布时间】:2018-06-26 13:16:00
【问题描述】:
当我将它与因子一起使用时,我注意到partykit 包中的 lmtree 函数有一个奇怪的行为。如果数据集中不包含某些级别(此处为“c”和“e”),则预测会随机变化......
我猜这意味着 lmtree 仅使用数据集中存在的因素(本例中的“a”和“b”)构建模型,而预测函数考虑了所有因素(“a”、“b”、 c","e")。
那么如何在 lmtree 模型中安全地使用因子?
library(partykit)
df<-data.frame(x=runif(100),y=runif(100),v=sample(c("a","b"),100,replace=T))
df$z<-with(df,ifelse(v=="a",2*y+x,3*x-y))
df$v<-factor(df$v,levels=c("c","e","a","b"))
lmt<-lmtree(z~x+y|v,df)
for (i in 1:10) print(predict(lmt,df,type="node")[1])
如果 lmtree 函数和 predict 函数之间的因子顺序颠倒(从 levels=c("a","b") 更改为 levels=c("b","a") )
【问题讨论】:
-
lmtree在什么包中? (请在您的问题中包含此信息...) -
@BenBolker :来自partykit 包
标签: r partitioning party