データサイエンス

見落とされがちなデータ分析の作法「データの確認からはじめる」

BIツールを使ってデータ分析をしているが
・なんか意味が分からないダッシュボードしかできない
・作ったけど思ったよりバリューが出ないし、使ってもらえない
・図内の数値とか詳しいことを聞かれると言葉に詰まってしまう
みたいなことないですか。

ある~となった人、そのダッシュボード、データ確認してから作ってますか。

初めに:BIツールを勘で操作すな

BIツールを使い始めの人で、データの確認は見落とされがちだなと思います。

BIツールで作る図の裏には、データがいます。テーブルとも言われるそれは、文字通り表の形で存在しています。いくつかの列があり、1行ずつデータが入っています。

Tableauのデータソース画面
表がいるね

ツールの裏に存在しているデータの中に、どんな列があって、どういう基準で1行が入ってきているのかを理解していないと、BIツールで正しい図は作れません。

この部分を理解しないまま作られた図は、勘で操作して作られた図に過ぎず、意味が分からなかったり、そもそも数字が間違っていたりすることが非常に多くあります。

Tableauは特に適当に画面操作しても図が出来上がってしまいます。

こういう感じで全く意味をなしていないダッシュボードを量産してしまい、本人は「できたぜ」と思っていても、見る人としては「なにやってんの」となる可能性があるので、データの確認というのは必要な作法かと思います。

データの確認、しよう!

データの確認方法

データの確認方法を説明していきます。Tableauでのやり方が主になります。

プライマリキーを確認しよう

まず使うデータが、どんな時に1行が入ってくるかを説明できるようになりましょう。

プライマリキーとは、データの1行を特定することができる(一意に識別する)列のことです。プライマリキーが分かると、そのデータの構造が分かります。

例えばこういうなんかのサービスの利用履歴

このデータは顧客ID&利用日(&サービス)がプライマリキーになっています。

これらの列の組み合わせでデータの1行が特定でき、利用履歴は「登録している顧客がサービスを利用した日に1行入ってくる」と言えます。

データによっては行番号(=ID)が振られていることがあります。これをプライマリキーとも言えもしますが、行番号ではどんな時に1行が入ってくるかを説明できません。

ID列があってもどんな時に1行が入ってくるかを説明できないときは、他の列を使ったプライマリキーを探してください。

Tableauでの探し方はこちらの記事が詳しいです。

Tableau Desktopでプライマリキーを確認する方法こんにちは! 分析官のMです。 先日公開した記事では、 データ受領時のプライマリキー(PK)確認の重要性についてまとめさせてい...

後で記述する使う列の確認や数値の指標を定義することにつながるため、どのような列の組み合わせで1行が定まっているかをここで把握しておくのは大事です。

大事さをより詳しく説明した記事はこちら

分析官3年目の私がデータ受領時にプライマリキー確認にこだわる理由こんにちは! 分析官のMです。 日々の業務でデータ分析を担当されている方は、 クライアントや他部署から新しくデータを受領して、...

使う列はどれか確認しよう

使おうとしている列は見たいものを表している列なのか、確認しましょう。

さっきのデータで顧客の数を数えたいとなったとき、行数を数えてはいけません。

確認したように、登録している顧客がサービスを利用した日に1行入ってくるから、顧客の人数より多くなることが予想されます。

顧客の人数を見る時は顧客IDの列を使うのがよさそうです。

データ01.txt(カウント)という列で行数が数えられます

さっきは触れませんでしたがこのデータ、退会してから再度登録している人がいます。

再度登録すると新しい顧客IDが発行されるので、同じ人として数えることができません。なので、再登録してきた同一人物を考慮して数えたい場合は顧客IDを単純に集計するのは不適切と判断できます。どうしたらいいか考えてみてね。

このような感じで、図の中で見たい数はこの列で表せるか?を考える癖をつけましょう。

NULLの処理どうするか決めておこう

使う列が決まったら、NULLがないか、NULLがあっても大丈夫かを確認して、正しい値が出るように対応しましょう。

NULLとはデータとして何も入っていない状態のことです。

TableauではNULLは図の中で表示されなかったり、集計から外されたりします。0とは違い、何も入っていないから集計や表示をしない、という扱いになります。

列の中にNULLが入ると次のようなことが起きます。(Tableauの場合。ツールによって異なります。)

・図の中に表示されない
・NULL+1=NULLになる
・COUNT関数などで無視される

利用履歴データには、生年月日と退会日でNULLがあります。

この時、生年月日ごとに顧客IDを数える、となった時にはbさんは集計対象から外れてしまいます。

生年月日を横軸に入れると、本当の顧客IDのCOUNTDは4なのに3しか数えられていない

こういう場合どうするべきかは、ケースバイケースです。

生年月日を登録していない人はこの図では見ないというのもありですし、NULLの生年月日を適当な日付で埋めて表示される数は合うようにする、ということもできます。

退会日についても同じです。どうすべきかは用途によりますが、NULLがあるということと、NULLをどう処理するかについては考えておきましょう。

数値の指標を定義しよう

何か出したい値がある場合、それらしい列を合計(SUM)するだけでは、正しい値にならないことがあります。

データの構造が分かり、使う列の見当がつき、NULLの扱いが決まってきたら、出したい値の定義ができます。

集計する列に重複がないか、NULLが入っていないか。条件があったり、列同士を掛け算するなど、出したい値には計算フィールドの作成が必要ではないか、そういったことを考えて出したい値を言語化してみましょう。

言葉にできたら、計算式が作れたりやるべき操作が見えたりしてくると思います。

例1:人数の定義(現会員の人数)

退会日がNULLになっている顧客IDの数を重複は除いて数える

→計算式 COUNTD(IIF(ISNULL(退会日),NULL,顧客ID))を作る

例2:月のサービス利用件数の定義

利用月ごとにサービス列に入っているABの数を重複ありで数える

→COUNT(サービス)と利用日を使う

弊社ではTableauを使ったデータ活用サポートをしています。

サポートの一環として、分析に関するスキルトランスファーをこの記事のような感じでやっています。詳しく聞きたい方はぜひご連絡を。

 

C.T
玄関の前のセミ テーブルの上の謎の液体 Excelで開いた後のcsv