💡 Key Takeaways
- Step 1: Document Your Raw Data Before Touching Anything
- Step 2: Understand the Data Generation Process
- Step 3: Profile Your Data Systematically
- Step 4: Handle Missing Data with Strategy, Not Assumptions
私は一回の小数点のエラーで会社に47,000ドルの損失を与えた日を今でも覚えています。それは2016年で、私は中規模の小売チェーンでデータアナリストとしてのキャリアを3年経過しており、在庫回転率の素晴らしい分析が終わったばかりでした。経営陣は私のプレゼンテーションを気に入ってくれました。彼らは私の勧告に基づいて大規模な再発注を即座に承認しました。2週間後、真実が明らかになりました:私は価格が不規則に記録されたデータセットをクリーンアップするのを失敗していたのです—一部はドルで、一部はセントで記録されていました。私の「徹底した分析」はゴミデータに基づいており、その結果、過剰在庫の解消には6か月かかりました。
💡 重要なポイント
- ステップ1: 変更する前に生データを文書化する
- ステップ2: データ生成プロセスを理解する
- ステップ3: データを体系的にプロファイリングする
- ステップ4: 戦略で欠損データを扱い、仮定はしない
その高価なミスは、15年の経験がさらに強化した教訓を私に教えてくれました:データクレンジングは分析の退屈な前提条件ではなく、洞察がキャリアを築くか破壊するかを決定する基礎です。今日、500行から5000万レコードに及ぶデータセットをクリーンアップしてきたシニアデータアナリティクスコンサルタントとして、私は災害になる前にエラーを捉える体系的なアプローチを開発しました。
データの質が悪いことによる損失は、アメリカ経済に毎年約3.1兆ドルのコストをもたらすというIBMのデータがあります。ガートナーの調査によると、組織はデータの質が悪いために平均で年間1,500万ドルの損失が発生していると考えています。それにもかかわらず、この驚くべき数字にもかかわらず、経験豊富なアナリストさえもデータクレンジングを急いだり、手順をスキップしたりするのを目にしてきました。彼らは分析の「面白い」部分に早く進みたがっています。
このチェックリストは、数千のデータセットをクリーンアップし、たくさんのミスをし、何が本当に重要かを学んだ知恵の結晶を示しています。これは理論的なベストプラクティスではなく、私のクライアントを何百万ドルも救った具体的なステップです。
ステップ1: 変更する前に生データを文書化する
データクレンジングの第一のルールは反直感的です:今は何もクリーンアップしないでください。単一の変更を加える前に、受け取った内容を正確に文書化する必要があります。この教訓を私はクライアントからデータセットにエラーを導入したと非難されたときに痛感しました。元の状態の文書化がなければ、データに手を加える前に問題が存在したことを証明する方法がありませんでした。
まずはデータ受領書を作成します。ソース、受領日、ファイル形式、行数と列数、ファイルサイズ、提供者を記録します。最初の20行と最後の20行のスクリーンショットを撮ります。基本的な統計を計算します:合計セル数、空のセル数、存在するデータ型がいくつか。これにはおそらく10分もかからず、何時間も追跡作業を省くことができます。
私は毎回のデータセットに対して記入するシンプルなテンプレートを使用しています。期待される行数(分かっている場合)、期待される列とその目的、提供者によって言及された既知のデータ品質の問題、および私の初期観察が含まれます。この文書は後で質問が発生した際に非常に貴重になります—そして、常にそうなります。
次に、生データの完全なバックアップを作成し、うっかり変更しない場所に保管します。私は「00_RAW_DO_NOT_TOUCH」と文字通り名付けたフォルダーに読み取り専用権限で保管しています。元のデータに戻って異常が最初から存在したのか、クレンジング中に導入されたのかを確認しなければならない時の頻度に驚くことでしょう。
最後に、データクレンジングログを作成します。これは、データセットに対して行ったすべての変更、変更した理由、およびそのタイミングを記録する別の文書です。それは面倒に思えるかもしれませんが、このログは私の評判を守るのに何度も役立ちました。利害関係者が6か月後にあなたの分析に疑問を持つとき、あなたは生データを最終的な分析データセットにどのように変換したかを示す完全な監査証跡を持つことができます。
ステップ2: データ生成プロセスを理解する
理解していないデータを効果的にクリーンアップすることはできません。これは明らかに見えますが、私はアナリストたちがデータがどこから来たのか、どのように作られたのかを尋ねることなくクレンジングに没頭するのを見てきました。これは、ガソリンかディーゼルで動くかも知らずに車のエンジンを修理しようとするようなものです。
データクレンジングは単にエラーを修正することではなく、何かがエラーのように見えるとき、それが実際には重要な洞察であるか、または何かが正常に見えるとき、それが実際には災害の前触れであるかを理解することです。
データを提供した人と会話のスケジュールを設定するか、もしくは、データを元々入力したり生成したりした人と会話する方が良いです。例えば、「このデータはどのように収集されましたか?手動入力ですか、自動化されていますか?どのシステムが生成しましたか?収集期間中に何か既知の問題がありましたか?各列は実際には何を表していますか?知っておくべきコードや略語はありますか?」などの質問をしてください。
かつて「顧客満足度」列に「NPS_9」と「CSAT_7」が混在していた理由を理解しようと2日間費やしたことがあります。データ入力チームとの5分間の会話で、彼らは年度途中で調査システムを切り替え、ハイブリッド表記システムを使用していることが明らかになりました。生成プロセスを理解することで、見た目は壊れたデータが何であったかが直ちにわかりました。
データの期待される範囲や関係を理解することに特に注意を払ってください。販売データを扱う場合、典型的な注文額はどのくらいですか?最小値と最大値の範囲はどのくらいですか?患者データを分析している場合、期待される年齢範囲は何ですか?これらの期待は、クレンジング中のサニティチェックになります。
データが既に受けた変換についても質問してください。この生データはソースから直接のものですか、それとも誰かがすでにクリーンアップ、集約、または変更したものですか?私は異なる人によって三つの異なるクレンジングプロセスを経たデータセットに出くわしたことがあります。それぞれが独自の仮定と変更を導入していました。この履歴を知ることで、異常を理解し、過剰なクレンジングを避けることができます。
ステップ3: データを体系的にプロファイリングする
データプロファイリングは、データセットを親密に知る場所です。このステップでは、データの実際の構造と内容を明らかにする包括的な統計と視覚化を生成します。私は小規模なデータセットの場合、このステップに少なくとも30分を費やし、大規模なものには数時間をかけます—この時間は分析全体にわたって利益をもたらします。
| データ品質の問題 | 検出の難しさ | 潜在的な影響 | 一般的な原因 |
|---|---|---|---|
| 欠損値 | 簡単 | 中程度から高 | システムエラー、不完全なフォーム、データ統合のギャップ |
| 不一致の単位 | 難しい | 重大 | 複数のデータソース、国際システム、レガシーのマイグレーション |
| 重複レコード | 中程度 | 中程度 | データ入力エラー、システムのバグ、マージ操作 |
| 外れ値(無効) | 中程度 | 高 | 入力エラー、センサーの故障、データの破損 |
| 形式の不一致 | 簡単から中程度 | 低から中程度 | 手動入力、異なるシステム、日付/時刻の変換 |
各列について、基本を計算します:非null値のカウント、null値のカウント、一意の値のカウント、データ型、最小値、最大値、平均、中央値、および該当する場合は最頻値。これらの統計は即座に問題を明らかにします。「年齢」列の最大値が847であれば、問題があります。「州」列に73の一意の値があるが、アメリカには50の州しかない場合、何かがおかしいです。
カテゴリー変数の頻度分布を作成します。各一意の値は何回出現しますか?この方法で数え切れないデータ入力エラーを捕まえました。たとえば、アメリカの州のデータセットでは、「CA」が5,000回出現し、「California」が200回出現し、「ca」が50回出現し、「Calif」が30回出現するのを見つけました。同じ州の4つの異なる表現—それぞれが私の分析を分断しています。
数値列の場合、ヒストグラムやボックスプロットを作成します。これらの視覚化は分布、外れ値、および生の統計では見逃される可能性のある予期しないパターンを明らかにします。かつて「取引額」列においてちょうど999.99ドルで疑わしいスパイクを発見したことがあります—実際には支払いシステムにバグがあり、その金額で失敗した取引を記録していました。
ランダムなデータで予期しないパターンをチェックします。一意であるはずの取引IDや顧客IDが本当に一意か確認してください。「ユニーク識別子」列に重複したIDを見つけた回数は数え切れません。また、あるべきでない連続パターンを探してください—時にはずっと続けられないはずのところで連続パターンが見つかることがあります。