AlteryxでViolin Plot

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

今回は、alteryxで使えるViolin Plotというものを紹介します。

Violin Plotとは

さて、今回のタイトルであるViolin Plotというものに馴染みのある人はあまり多くないかと思います。 そこでまずはViolin Plotがどういったものなのかについて書いていきたいと思います。

Violin Plotは箱ひげ図とヒストグラムを組み合わせたようなものになります。 これらがどういったものかを順に見ていきましょう。

ヒストグラム

ヒストグラムは日常で利用している方も多いかと思いますが、データの分布を表すような図になります。 連続値を一定の区間ごと分けて、その区間に属するデータ件数を可視化したものになります。 Alteryxではヒストグラムを書くには、Histogram Toolを利用します。

image95

例えばIris Datasetのpetal lengthに対して、 ヒストグラムを描画するWorkflowは以下のようになります。

スクリーンショット 2017-05-31 10.45.07

Select Toolは読み込んだデータの型を数値にするためのものです。 Histogram Toolはその性質上、数値データを扱うものになるため、必要に応じて型を合わせてやる必要があります。

Histogram Toolの設定は以下のようになっています。

スクリーンショット 2017-05-31 10.46.56

Browse Toolでの出力結果は、以下のようになります。

スクリーンショット 2017-05-31 10.53.34

この図から、

  • 性質の異なる複数のデータが混ざっている
  • 数値が小さい方(左側)は分散が少ないが、大きい方(右側)は分散が大きい

などが読み取れます。

Histogram Toolでは、「Plot a smoothed density curve...」にチェックを入れるとカーネル密度推定の結果も合わせて表示してくれます。

スクリーンショット 2017-05-31 10.59.47

スクリーンショット 2017-05-31 11.00.07

カーネル密度推定に関しての詳細は解説しませんが、 図中のオレンジのラインのようなスムーズな感じの線を引くためのもの程度の認識でも今回は問題ありません。

箱ひげ図

つぎに、箱ひげ図の話になります。

箱ひげ図は実物を見てもらうのが、手っ取り早いですがalteryxに対応するToolがないため、R Toolを使って描画してみます。

先ほどと同じデータのSelect ToolからR Toolをつなぎます。

スクリーンショット 2017-05-31 11.46.11

R Toolの内容は以下のようになります。

library(ggplot2)

the.data <- read.Alteryx("#1")

AlteryxGraph(1)
ggplot(data=the.data, aes(x=species, y=petal_length)) +
  geom_boxplot() +
  theme_bw()
invisible(dev.off())

Rの文法やライブラリに関しては主題から外れるので詳細は解説しませんが、これによってToolの出力先の「1」にグラフが出力されます。

スクリーンショット 2017-05-31 11.47.54

ここでは、品種(species)ごとに分けて表示しています。 箱ひげ図のプロットの仕方には様々な種類がありますが、この図の見方としては、

  • 縦軸が実際の数値(petal_lengthの値)
  • 四角がデータ全体のうち、25%〜75%の範囲
  • 四角内の横線が中央値
  • 四角の外の縦線がデータ全体の範囲
  • 縦線より外側の丸が外れ値

となります。

なお、四角い箱の25〜75%というのは、中央値と同じような考え方で、データを小さい順に並べ替えた時に データ件数に対して25%の位置にあるデータ、75%の位置にあるデータとなります。 例えば100件のデータであれば並べ替えた時の25件目、50件目(中央値)、75件目のデータの値となっています。 そのため、四角い箱のあたいは中央値と同様、極端に外れた値があるような場合でも影響を受けづらくなります。

この図を見ることでデータ全体範囲や中央値の線が中心より上側にあるなどの偏りが確認できます。

例えば、平均値と中央値に大きな開きがあるような場合などに、極端に平均値を上げている(下げている)要因があったりする場合なんかはこれをみればすぐにわかるでしょう。

Violin Plot

さて、いよいよ今回の主題のViolin Plotです。 とはいえ、Violin Plotはヒストグラムと箱ひげ図を合体させたようなものになるため、 ここまでの流れに対して特別新しい要素があるわけではありません。

Violin Plotは以下のような出力をします。

スクリーンショット 2017-05-31 11.58.28

中に入っているのが箱ひげ図、外側のぐにゃっとしたのがヒストグラム(カーネル密度推定したもの)になります。 まさに2つの図を両方同時に描画したものといった感じになっていますね。

alteryxで使う

では、最後にこのViolin Plotをalteryxから使ってみます。 Violin Plot Toolを利用するだけなので非常に簡単です。

これまでのWorkflowにViolin Plotの描画を追加してみましょう。

スクリーンショット 2017-05-31 12.09.03

Violin plot Toolの設定は以下のようになっています。

スクリーンショット 2017-05-31 12.09.49

「Field to plot」で描画する変数(今回の場合はpetal_length)を指定しています。 「Plot by groups」をチェックした場合は箱ひげ図の時同様、カテゴリ(今回はspecies)ごとに分けて描画することができます。

これで、先ほど出したようなViolin Plotの図が表示されます。

また、今回のようなデータだと、カテゴリ分けせずに全データをまとめて描画することで、データの偏りもまとめて確認することができます。

スクリーンショット 2017-05-31 12.13.00

終わりに

今回は、alteryxでViolin Plotを描画する方法を解説しました。 箱ひげ図やViolin Plotは他のグラフと比較してあまりメジャーではないため、読み解くのに苦労することもあるかもしれませんが、使いこなすと非常に強力なツールとなります。