[R program]2値データリスクパターンを分岐木で表示
利用ライブラリ:library(party); library(Cairo) 主な関数 :ctree(function, data=Data), plot(Tree, type="simple, inner_panel=node_inner(Tree, pval=F, id=F), terminal_panel=node_terminal(Tree, id=F)); CairoPNG()
昨日のリスクパターンを分岐木で表示してみた。
Rでpng画像の作成→windowsムービーメーカーでwmv動画へ→YouTubeにアップ
の流れでやってみましたが。。。
文字が小さくて全く見えないし、たった4項目で木がこんなに大きくなった。
上手く可視化したいんだけど、ヒートマップみたいな絵を描けばいいのかなぁ。
既存のパッケージでは限界かな??
Rコードです↓
#------------利用データは昨日作ったyBinCat #---------分岐木 library(party) #------分割変数が1個 a <- 10 DataCat <- data.frame(yBinCat[, a], RiskPattern=yBinCat[, a]) colnames(DataCat)[1] <- colnames(yBinCat)[a] #---因子化 DataCat[, 1] <- factor(DataCat[, 1], labels=c("No", "Yes")) RiskPatternCtree <- ctree(as.numeric(RiskPattern)~., data=DataCat) library(Cairo) CairoPNG("D:/R/ブログ/RiskSplit1.png", width=960, height=960) plot(RiskPatternCtree, type="simple", inner_panel=node_inner(RiskPatternCtree, pval=F, id=F), terminal_panel=node_terminal(RiskPatternCtree, id=F)) dev.off() #------分割変数が2個以上 RiskSplit <- function(a){ SubCol <- a DataCat <- yBinCat[, SubCol] #---リスクパターン変数 DataCat$RiskPattern <- DataCat[, 1] for(i in 2:length(SubCol)){ DataCat$RiskPattern <- paste(DataCat$RiskPattern, DataCat[, i], sep="") } #---因子化 for(i in 1:length(SubCol)) DataCat[, i] <- factor(DataCat[, i], labels=c("No", "Yes")) RiskPatternCtree <- ctree(as.numeric(RiskPattern)~., data=DataCat) outfile <- paste("D:/R/ブログ/RiskSplit", length(SubCol), ".png", sep="") CairoPNG(outfile, width=960, height=960) plot(RiskPatternCtree, type="simple", inner_panel=node_inner(RiskPatternCtree, pval=F, id=F), terminal_panel=node_terminal(RiskPatternCtree, id=F)) dev.off() } RiskSplit(c(10, 5)) RiskSplit(c(10, 5, 6)) RiskSplit(c(10, 5, 6, 13))