変換系ツールについてさわってみた #alteryx #21 | Alteryx Advent Calendar 2016

DI部の大滝です。

当エントリは『Alteyx Advent Calendar 2016』の21日目のエントリです。
Alteryx Advent Calendar 2016 - Qiita
Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryxにはいろいろなツールが存在しますが、今回は以下の変換系のツールについて触ってみました。 (全ツールの一覧についてはこちらを参照してください。)

  • Arrange
  • Count Records
  • Running Total
  • Transepose
  • WeightedAverage

Arrange

Arrangeはデータフィールドを任意のルールで並べ替えができたりするツールです。 (Arrange Tool
エクセルで作成したデータサンプルを入れ替えてみたいと思います。InputDataツールからエクセルデータのサンプルデータを読み込みます。サンプルデータは左から日付があり午前の開始、午前の終了、午後の開始、午後の終了という項目があります。開始、終了には適当な数値が入っているデータになります。このデータを使いデータを入れ替えたいと思います。
1-01.arrangeサンプルデータ2

Arrangeツールを選択して、「Key Fileds」項目からdate選びます。次に「Output Fileds」でColumn->Addを選択してColumnを追加します。「Cloumn Header」 にStartと入力、am start、pm startを選択して「OK」ボタンをクリックします。
1-02.start column

同様にEndカラムも作成します。
1-03.end column
設定値はこんな感じになります。
1-04.設定値
実行してみます。結果を見るとdate項目に対してam start、am endが1レコード目にpm start、pm endが2レコード目になっておりデータが並び替えられたのがわかります。

1-05.結果

Count Records

Count Recordsはデータ数をカウントするシンプルなツールです。
Macro: Count Records
先ほどArrangeツールで使用したサンプルに追加して実行してみます。62件のデータが取得できました。
2-01.結果

Running Total

Running Totalツールは数値フィールド上の累積合計をしてくれるツールです。
Running Total Tool
先ほどから使用しているサンプルに追加してみます。「Create Runnning Total」からstartとEndを選択します。
4-01.Create Running Total選択
実行してみます。RunTot_StartとRunTot_Endカラムが追加され、それぞれStartとEndの累積した合計が表示されます。
4-02.Running Total結果1

次に「Group By」からdateを選択してみます。
4-03.Group By選択

再度実行してみます。RunTot_StartとRunTot_Endカラムがdate単位の累積合計になっていることがわかります。
4-04.Running Total結果2

Cross TabとSummarize

Cross Tabツールは行→列変換してくれるツールで、クロス集計する際に使用するツールです。
CrossTab Tool
Summarizeツールは集計ツールです。グループ化、合計、空間オブジェクトの処理、文字列連結などを行います。
Summarize Tool
こちらの2つのツールは『Alteyx Advent Calendar 2016』の2日目のエントリ「クロス集計表の作成」で分かりやすく紹介しているのでそちらを参照してください!

Transepose

Transeposeツールは行→列変換を行うツールです。
Transepose Tool
こちらも先ほどから使用しているサンプルに追加してみます。「Key Fields」からdateを選択して、「Data Fileds」にam start、am end、pm start、pm endを選択します。
6-01.transpose設定
実行します。実行結果としてあまり意味がある変換ではないのですがデータが縦に並び替えられました。
6-02.transpose結果

WeightedAverage

WeightedAverageは加重平均を計算します。
Macro: Weighted Average
加重平均とは分析を行っている方にとっては当たり前の言葉かもしれませんが、そうでない方にはあまり聞かない言葉かもしてません。一言でいうと一般的な平均を求めるのと少し違い、値に重み付けをして平均を求めます。今回使用したサンプルデータ「Wyoming Schools.dbf」を使って具体的に説明したいとおもます。このサンプルデータは学校の一覧データで学校の住所、生徒数、学校のレベルなどの項目があるデータです。今回はこのデータを使って都市ごとの学校レベルの加重平均を求めました。通常の平均値を求めるなら都市ごとの学校レベルを合計して学校数で割ったのが平均値になります。今回は生徒数を考慮した加重平均を求めてみます。そうすることで学校レベルが同じ場合だとしても、生徒数を考慮し生徒数が多い方のがレベルが高くなるような平均値が求められます。
InputDataツールから「Wyoming Schools.dbf」ファイルを読み込みます。サンプルデータはこんな感じになっています。
7-01.schoolサンプルデータ

今回使用したい項目のSchoolLeve項目がString型になっているため数値型になるようにします。InputDataツールにSelectツールを繋げてSchoolLevelのTypeをInt16に変換します。
7-02.数値変換
SelectツールにWeightedAverageツールを繋げます。「Questions」の「Value Field」にSchoolLevelを指定し、「Weight Field」にEnrollmentを指定します。これでSchoolLevelに対して学校の生徒数で重み付けしたことになります。「Grouping Fields」にCityを選択し、都市ごとの学校レベルの加重平均値を求められるようにします。
7-03.加重平均設定
実行してみます。都市ごとの学校レベルの加重平均値が求められました。
7-04.加重平均結果
結果だけ見ても少し分かりづらいのでSummarizeツールを使って一般的な平均値と比較してみたいと思います。SelectツールにSummarizeツールを接続し都市ごとの学校レベルの平均値を求めます。再度実行します。Summarizeツールで求めた平均値はこんな感じになりました。
7-05.平均結果
比較してみると、例えばAFTON都市の結果が一般的な平均値では「2.2」になっているのに対して加重平均値では「2.2.07131」となっており少し高い値になっていることが分かります。これは生徒数を考慮した結果の違いです。これが加重平均値になります。最後にこの加重平均値はどのように求めているかを説明したいと思います。まず数式で表すと以下のようになります。
7-06.式
Xが対象の値でそれに対してWが重み付けの値になります。今回の例で表すと以下のようになります。
7-07.式2
実行結果がそのようになっているか調べてみます。Input DataツールにSelectツールとSortツールを接続して対象となる項目を絞り込み、都市でソートさせます。
7-08.ソート
AFTON都市について計算してみます。
7-09.計算結果
先ほどの実行結果と同じになったことが分かります。

まとめ

今回はAlteryxにあるツールの中でも変換系のツールについて触ってみました。明日は弊社甲木による「コマンドラインからAlteryxワークフローを起動する」です。お楽しみにしてください!