以前の記事で、Rスクリプトを使ってPowerBIのデータセットを作成する手順に取り組んでみました。
今回は、Rを使ったグラフィックに挑戦してみようと思います。
使うパッケージはもちろんみんな大好き{ggplot2}
でございます。
対象読者
・Rの基本的な操作が分かる人
・PowerBIの使い方の幅を広げたい人
データセットの準備
まずはデータセットを準備しますが、一番ポピュラーなirisデータセットを使おうと思います。
irisって何?って人はこちらのブログが参考になるかもです。
ざっくり言うと、「あやめ(iris)」という花の『がく(Sepal)』の長さと幅、『花びら(petal)』の長さと幅、
それぞれの種別(setosa,virginica,vergicolar)のデータセットです。
...まあ、今回はあまりデータの内容は重要ではありませんので、さらっと流してOKです。
とりあえずPowerBIに読み込みます。
PowerBIの「データを取得」→「Rスクリプト」を起動して、以下をコピペ。
irisはRのサンプルデータとして用意されているため、コードは1行(笑)
df <- iris
グラフ作成
続いてグラフ作成です。
※グラフ作成前に、「クエリを編集」から、データセットにインデックス列を挿入しておくといいかもしれません。Rで読み込んだ際に重複行の削除が防げます。
「視覚化」の項目に以下のようなRのマークがあるのでクリック。
Rスクリプトで作成したグラフを置く場所を決めます。
下部スクリプトエディターが開くので、必要な変数をフィールドから選択。
(今回は、Petal.LengthとSepal.Length,Speciesを利用します。)
以下のとおり、ggplot2で作成するコードを記載します。
いつもどおり、詳細な説明はコード内コメントに預けます。
#ggplot2を読み込みます
library(ggplot2)
#グラフに単回帰分析の結果を書き込むため、lmで単回帰分析を出力しておきます。
result <- lm(Petal.Length~Sepal.Length,data=dataset)
#回帰式の情報を読み取ります
lma <- round(result$coefficients[[2]],2) #傾き
lmb <- round(result$coefficients[[1]],2) #切片
rsq <- round(summary(result)$adj.r.squared,2) #自由度調整済み決定係数
pv <- summary(result)$coefficients[,"Pr(>|t|)"][[2]] #P値
pvalue <- paste("P-value ",if(pv<0.01){
"< 0.01"
} else if(pv <0.05){
"< 0.05"
} else {
paste("=",round(pv,3))
}
) #グラフ記載用に、P値に応じて出力を加工します
#いよいよggplot!
ggplot(dataset, aes(Sepal.Length, Petal.Length))+ #変数は、Sepal.Length(がく)とPetal.Length(花弁)ですよ
geom_point(aes(colour=Species))+ #Species(種)ごとに色分けしますよ
stat_smooth(method = "lm")+ #回帰直線描きます
annotate("text", label = paste("y=",lma,
"x",ifelse(lmb>0,"+",""),
lmb),
x = 7, y = 3)+ #回帰式書きます
annotate("text",label = paste("Adjusted R-squared =",rsq),x=7,y=2)+ #決定係数書きます
annotate("text",label = pvalue, x=7, y=1) #P値書きます
単に散布図描いても面白くないので、統計解析に強いRを使って、回帰式等をグラフ内に差し込んでみました。
PowerBIの標準的な使い方だと回帰式等の結果は表示できないので、
単なる2変数の単回帰でも、ちょっと統計解析色を出せますね。
(実際は単回帰だけで事が解決することはほとんど無いですけど・・・)
・・・・・が、文字がちっちゃいですね(汗)。回帰分析の結果の値もなんか不恰好。
このへんはコードをいじるとどうにでもなります。
ggplot2の使い方は以下が詳しいです。
Rグラフィックもぬるぬる動くのがPowerBIのおススメ点
PowerBI上なら、Rグラフィックもフィルター操作等でぬるぬる動きます。
スライサーなどと一緒に使ってみてくださいね。
(上記データだと、結果の値があっちこっちいっちゃうので、やはり改善余地ありですが。)
おまけ
PowerBIだけだと実装しづらい散布図行列図なんかも、簡単に組み込めますね。
多変数だと煩雑すぎて解釈不能になるので、変数を絞ってお使いください。
各変数間の相関をざっと把握できるので、個人的に好きなグラフです。
library(psych)
pairs.panels(dataset)
おわりに
ggplot2の必要最小限の知識でRグラフィックを実装してみましたが、
実用していくためには細部への気配りも必要になりそうです。
こちらも引き続き修行しなければならないのを痛感しました。
Rグラフィックを簡単にPowerBI上に組み込めることの紹介でした。
※PowerBIサービスにアップロードしてRグラフィックを共有・閲覧するのは、
有料のproライセンスが必要ですのでご注意ください。