データベースの意味と、構築する際の留意点



今回は、データベースの話をしていきます。
データベースとは、データが特定の形式で蓄積されたものです。データベースはPCデータに限らず、紙の電話帳なども含まれます。データ分析を行うときに、データベースをあらかじめ、きちんと設計しておくことが非常に重要です。とりあえず記録していたようなデータベースは、データ分析を行うための前処理にいたずらに時間を要す上、有用な結果が得られないことが非常に多いです。データベースはまとめ方の違いで、1.ツリー状の「階層型データベース」、2.網状の「ネットワーク型データベース」、3.表状の「リレーショナルデータベース」があります。
実務では上記の3を使うことが多いので、今回は上記の3を構築する上で考慮することを説明します。

①データのサンプル数
データベースによってデータ入る行数・列数が異なります。例えば、Excelに関しては、2020年4月時点で、最大行数 … 1048576行 最大列数 … 16384列 となっています。これを超えるような際は別のツールでデータベースを構築する必要があります。
(以降、列のことを変数と呼んでいます。)

②キー変数を決め、データの並びや重複を設定すること
データベースを設定する際には、キー変数を設定する必要があります。キー変数とは、データベースの並び順やデータの重複を決める変数です。IDや名前、住所、年齢など様々な変数で、データの並びや重複設定をあらかじめ検討します。(重複はイメージしにくいと思います。例えば臨床データで言うと、風邪にかかった人がいたらそれを患者として考えて必ず1行のデータとするか、症状として考えてせきで1行・くしゃみで1行・熱で1行など1人1行以上にするか検討することなどです。)

③名前に規則性を持たせること、名寄せを意識すること
データベースを構築する上で、名前付けに規則を持たせることで検索・抽出機能が使えるようになります。つまり、変数の命名方法、並び順を意識する必要があります。規則性のない命名法であれば、同じ変数を作成したり、同じ値を別集計して誤った結果を出してしまうリスクがあります。それに加えて、別のデータベースと結合する場合、名寄せして結合する必要がありますが、規則性のある命名法で変数を設定していないと非常に苦労することになります。

④カテゴリカル変数と連続値の変数を使い分けること
各変数の使い方から逆算して、カテゴリカル変数(離散値)と連続値の変数を使い分けることが重要です。例えば25歳の人だと、カテゴリカル変数は「20代」となり、連続値の変数は「25歳」となります。カテゴリカル変数にすると、情報量が減るので当然可能なデータ分析方法が減ってしまうリスクがある一方で、アンケートなどの調査でのデータ収集がしやすい(回答者などの回答の心理的リスクが減る)メリットがあります。つまり、最終的な得たいアウトプットから逆算し、どちらを使うべきか考慮する必要があります。

⑤カテゴリカル変数のMECE、階層の幅を意識すること
MECEは、もれなく被りなくのことです。カテゴリカル変数を作成する際は、MECEを必ず意識しなければいけません。複数回答などの変数は場合によりけりなので、MECEが必要かどうか検討する必要があります。また、連続値の変数をカテゴリカル変数に変えるときに、区間の幅を基本的には統一する必要があります。上端や下端は、以上・超や以下・未満でまとめることが多いです。(区間を10歳で区切る⇒20代以下、30代、40代、50代、60代以上)

⑥時系列データの並べ方を意識すること
これは非常に重要です。時系列を変数として作成し、各時点の値を入れるやり方はデータハンドリングで非常に困ることが多いです。時系列の変数を1つ作成して時点を入力していく方が、行は非常に多くなりますがデータハンドリングの面では格段に優れています。

⑦欠損値・外れ値を事前に意識すること
データベースを構築していると頻出する問題が欠損値・外れ値です。欠損値が発生する状況(回答の迷い、回答拒否、回答漏れなど)を考えて、それを防ぐシステムが必要です。例えば、入力エラーがでるシステムや回答を必ず得られる調査設計、入力直後の確認などです。また、外れ値も同様です。入力数値の許容範囲の設定、誤解が生じない調査設計、入力直後の確認などがあります。

いかがでしたでしょうか?コンピュータサイエンスの有名な言葉で、「Garbage In Garbage Out(『無意味なデータ』をコンピュータに入力すると『無意味な結果』が返される)」というものがあります。つまり、データベースを綺麗に整備することがデータ分析で非常に重要です。ぜひ、上記の7点を意識して綺麗なデータベースを構築しましょう。

よろしければシェアお願いします。
このエントリーをはてなブックマークに追加
 







コメント

このブログの人気の投稿

統計と、機械学習・深層学習(マシーンラーニング・ディープラーニング)の違いとは?

定量分析と定性分析の使い分け