Googleデータアナリティクス：データ完全性

# はじめに

本記事は、Googleデータアナリティクスのプロフェッショナル認定証のプログラムより、参照させて頂いています。興味を持った方は、是非受講してみてください。

https://www.coursera.org/professional-certificates/data-analytics-japanese

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/b583930d-fecb-13ad-85a2-3f44e309d8a5.png" width="800">

# なぜデータ完全性が重要なのか

優れた分析は、データ完全性に 左右されます。 使用しているデータが なんらかの形で破損している場合、 優れた分析結果を得ることは できません。 

***<font color="MediumVioletRed">『データ完全性とは データのライフサイクル全体を通じて 正確性、完全性、一貫性、信頼性が 保たれていること』</font>***

かなり多くのデータの品質確保が必要で 大変なことに思うかもしれません。 しかし、分析を進める前に これらすべてを確認することには 大きな意味があります。 これを行わなければ、間違った分析を してしまうかもしれません。 皆さんが間違ったことを したのではなく 扱うデータがそもそも 間違っているのです。 1 つのピースが欠けただけで、すべての データが役に立たないこともあります。 

# データ完全性が損なわれるケース

データがリスクに さらされるのは、複製されたり、 転送されたり、操作されたりする時 いつも、なのです。 

- データの複製とは、データを 複数の場所に保存するプロセスです。 データを異なる時間に、 異なる場所に複製する場合、 データが同期されないこともあります。 このデータは完全性を欠いており 異なる人が同じデータを使って 調査していない可能性があるため 矛盾が生じるかもしれません。 
- データ転送の際、 ストレージ デバイスからメモリへ あるいはコンピュータから 別のコンピュータへ データをコピーするプロセスにも 問題は起こります。 データ転送が中断されると 不完全なデータセットになってしまい ニーズに応えられなくなる おそれが生じます。 
- データ操作のプロセスでは データをより整理して 読みやすくするために、 データを変更します。 データ操作は、データ分析のプロセスを より効率的にするためのものですが プロセス中のエラーによって 効率が損なわれることもあります。 

データがリスクにさらされる原因は他にも 
- 人為的なミス
- ウイルス
- マルウェア
- ハッキング
- システム障害

などがあり いずれもさらに頭を悩ませることに なりかねません。 

:::note info
扱うデータが決まったら 分析前にデータが完全かつ有効であると 再確認することが大事です。 そうすることで、分析結果や最終的な結論が 正確になることが保証されます。 データ完全性を確認することは データを処理し、分析できるように するための重要なステップであり 皆さんや、皆さんの会社の誰がか 行う場合でもそれは同じです。 
:::

# 事例：グローバル企業における日付の形式

日付は、さまざまな形式で表現されますが、地域によって、省略形式が異なる場合があります。   

- 2020 年 10 月 12 日を 12/10/20 (DD/MM/YY) とする国 
- 2020 年 10 月 12 日を 2020-10-12 (YYYY-MM-DD) とする国  
- アメリカなど、  2020 年 10 月 12 日を 10/12/20 (MM/DD/YY) とする国

では、もしあなたがグローバル企業のデータアナリストとして働いていて、日付の形式を精査していなかったらどうなるでしょうか。データ完全性が疑わしくなり、分析結果も不正確なものになりかねません。例えば、10 月に追加発注が必要だった在庫を 12 月に発注する、などというトラブルにつながってしまうかもしれません。

正しい分析は、データ完全性に左右され、データ完全性は、共通の形式に統一することで保たれます。そのため、日付の形式を再確認し、2020 年12 月10 日だと思っていたものが実は 2020 年10 月12 日であったり、またその逆であったりしないようにすることが重要です。

# 目的とデータ完全性の両立 

データ完全性の確認を 忘れないようにするのは良いことです。 また、使用するデータが ビジネス上の目的に 合致しているかどうかも重要です。 

**『クリーンデータ＋ビジネス上の目的との整合性＝正確な結論』**

- ***<font color="MediumVioletRed">クリーンなデータがあり、整合性が取れていれば、正確なインサイトを得ることができ、データに裏付けされた結論を出すことができます。</font>***
- ***<font color="MediumVioletRed">整合性が取れているが、データクリーニングが必要な場合は、分析を始める前にデータをクリーニングしましょう。 </font>***
- ***<font color="MediumVioletRed">もしデータが部分的にしか目標と整合していない場合は、目標を修正する方法を考えるか、データに制約を加え、データのサブセットがビジネス上の目的により一致するようにしましょう。  </font>***

データをビジネス上の目的に 合致させるプロセスは 実はとても簡単です。 下記いくつかの例を紹介します。

## 例）自動車部品を製造、販売する企業で 働くデータアナリスト

ある部品の販売で発生した 収益に関する質問に答える必要がある場合 データセットから 収益のテーブルを引き出します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/1eefd0c9-85f7-88a8-6724-145b1ce4a96b.png" width="500">

もし質問がカスタマーレビューに 関するものであれば レビューテーブルを引き出して 平均評価を分析するでしょう。 

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/e953648a-b6ad-e650-10d9-b2bb3a782008.png" width="500">

しかし、分析に入る前に 分析に影響を与える可能性のある いくつかの制約を考慮する必要があります。 もしデータが適切にクリーニング されていなければ、まだ使用できません。 十分なクリーニングがされるまで 待つ必要があります。

### <font color="MediumBlue">重複データ</font>

ここで、平均的な顧客の支出額を 調べたいとします。 すると、同じ顧客のデータが 2 つ以上の行に表示されていると気づきます。 これは重複データと呼ばれるものです。 これを解決するには、 データの形式を変更するか 平均を出す計算方法を変える必要があります。 そうしないと、2 人分のデータが あるように見えてしまい 誤解を招く計算を してしまうことになります。 

### <font color="MediumBlue">データ不足</font>

また、正確な分析を行うためのデータが 不足していると気づくかもしれません。 例えば、数か月分の 販売データしかない場合です。 ここで、データが増えるのを 待つこともできますが 目的を達成するためには プロセスを変更したり 別のデータソースを探したりしなければ ならない可能性が高いでしょう。

## 例）2つの写真

私は、データセットを 写真に例えることが好きです。 この写真を見てください。 今、何の写真を見ているでしょうか？

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/46e0115e-4f4e-a5ee-26f3-58c581d38165.png" width="600">

旅行のエキスパートや その土地に詳しい人でない限り この 2 枚の画像だけでは ピンとこないかもしれません。ビジュアル的に、全体像が見えていないと とてもわかりにくいのです。 全体像が見えてくると 「あ、ここはロンドンかも！」と分かります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358573/0a5f1e05-c4fb-3b57-33b6-befe261b2c28.png" width="600">

不完全なデータでは 全体像が見えないので、 何が起こっているのか実感がわきません。 データが行や列で送られてくると クエリさえすれば必要なものがすべて 揃っていると思い、つい信用してしまい がちですが、実際はそうではありません。 以前私も、データが十分でないことに気づき 解決の策を練ったことがあります。

## 例）顧客の購入から配送までの時間を 短縮する

私はネット通販の企業に勤めていて 顧客の購入から配送までの時間を 短縮する方法を考えるよう依頼されました。 通常、配送時間を短縮することは 顧客の満足につながります。 そこでデータセットを確認すると 追跡情報が非常に限られていました。 かなり重要な詳細が欠落していたのです。 

そこで、データエンジニアと私は 新たなプロセスを構築し 停車駅の数など、追加情報を トラッキングすることにしました。 このデータを使って、 購入から配送までにかかる時間を短縮し 顧客満足度を向上させることができました。 

:::note info
目的を見失わずにデータの問題に 対処する方法を学ぶことで データアナリストとしてのキャリアを 成功に導けるのです。 
:::