4

partyRのパッケージを使用しています。

結果のツリーのさまざまなノードからさまざまな統計 (平均、中央値など) を取得したいのですが、これを行う方法がわかりません。例えば

airq <- subset(airquality, !is.na(Ozone))
airct <- ctree(Ozone ~ ., data = airq, 
                   controls = ctree_control(maxsurrogate = 3))
airct
plot(airct)

4 つのターミナル ノードを持つツリーが生成されます。これらの各ノードの平均大気質を取得するにはどうすればよいですか?

4

4 に答える 4

7

ノードのどの変数が大気質であるかを取得できません。ただし、ここでは、ツリー プロットをカスタマイズする方法を示します。

innerWeights <- function(node){
  grid.circle(gp = gpar(fill = "White", col = 1))
  mainlab <- node$psplit$variableName
  label   <- paste(mainlab,paste('prediction=',round(node$prediction,2) ,sep= ''),sep= '\n')
  grid.text( label= label,gp = gpar(col='red'))
}

plot(airct, inner_panel = innerWeights)

ここに画像の説明を入力

編集してノードごとの統計を取得する

ライブラリ(グリッドエクストラ)

innerWeights <- function(node){
  dat <- round_any(node$criterion$statistic,0.01)
  grid.table(t(dat))
}
plot(airct, inner_panel = innerWeights)

ここに画像の説明を入力

于 2013-01-09T16:50:37.260 に答える
2

これが思ったより意外と大変です。次のようなことを試してください:

a <- by(airq,where(airct),colMeans) #or whatever function you desire for colMeans
a
a$"3" #access at node three
a[["3"]] #same thing

を使用すると、他にも役立つ例が見つかるかもしれません?`BinaryTree-class`

于 2013-01-09T16:49:23.580 に答える
2

R スペースで迷子になった場合のアクセス方法 (ドキュメントがすぐに役に立たない場合)

まず、試してみてくださいstr(airct)。結果が複雑なため、出力は少し長くなりますが、t 検定などの簡単なケースでは、これで十分です。

print(airct)または単に非常に有用な情報を提供するためairct、印刷はどのように機能しますか? ドキュメントを試すclass(airct)か確認してください: The result if of class BinaryTree.

わかりました、ドキュメントからこれを見ることができました。この場合、BinaryTree ページの情報で十分です (そのページの例を参照してください)。

しかし、作成者が怠け者だったと仮定します: try getAnywhere(print.BinaryTree). あなたが見つけた上部にy<-x@responsesairct@responses次を試してください

于 2013-01-09T16:52:06.483 に答える