R/glasso+igraph+networkD3で変数間の関係をインタラクティブに可視化


networkD3でグリグリ動かせるようにしてみた。

library(dplyr)
library(glasso)
library(igraph)
library(networkD3)

x <- iris %>% select(-Species)
s <- x %>% scale() %>% cov()
fit <- glasso(s = s, rho = 0.5)
a <- ifelse(fit$wi != 0, TRUE, FALSE)
diag(a) <- 0
colnames(a) <- colnames(x)
rownames(a) <- colnames(x)
g <- graph_from_adjacency_matrix(a, mode = "undirected")
networkData <- as.data.frame(as_edgelist(g))
simpleNetwork(Data = networkData, fontSize = 14, nodeColour = "#006e54", opacity = 1)