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))