0

Rでツリーを作成しました。

rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)

## coerce to `constparty'
rp.party <- as.party(rp)

今、私は rp.party オブジェクトの逸脱を見つけたいと思っています。rp オブジェクトに行かずにそうする方法はありますか?

ありがとう!

4

1 に答える 1

0

constpartyオブジェクトにはpartykit現在deviance()、正式なモデルを想定していないため、メソッドがありません。この方法は完全にノンパラメトリックです。(モデルベースのglmtree()オブジェクトはdeviance()メソッドを提供します。)ただし、場合によっては便利かもしれません...それも追加する必要があるかどうか、Torsten と話し合うつもりconstpartyです。

いずれにせよ、「手動で」例の二項偏差を設定することはそれほど難しくありません。このfitted()メソッドは、予測されたノード ID と観測された応答を提供します。predict(..., type = "prob")メソッドは、予測確率を生成します。これら 2 つの情報を使用して、逸脱度を次のように直接計算できます。

obs <- fitted(rp.party)[, "(response)"]
pred <- predict(rp.party, type = "prob")
-2 * sum(log(pred[cbind(1:nrow(pred), as.numeric(obs))]))
## [1] 46.90789

または、次を使用してすべてのターミナル ノードに定数を再適合させ、そこからglm()抽出することができます。deviance()

deviance(glm(`(response)` ~ factor(`(fitted)`),
  data = fitted(rp.party), family = binomial))
## [1] 46.90789
于 2015-04-17T07:43:44.327 に答える