皆さん、こんにちは。デジタルボーイです。シリーズで解説している「データ分析入門」ですが、今回はデータの収集の方法と分析について解説したいと思います。
データ分析を進める上で、データの収集が必要な場面は、このようなケースなのではないでしょうか
- 手元のデータの分析をする上で、さらに付加的な情報が欲しい場合
- 公開されているデータを分析し、勉強したいとき
- 世の中の流れなど、市場の調査が必要な場合
特に、必要なデータが社内など、身近な場所で収集できない場合は、インターネット上などにあるデータを収集する必要があります。
また、データ分析の学習者の場合、ビジネスデータなどの実データが入手できない方もいらっしゃるでしょう。そのような場合、こんな感じでお悩みの方もいらっしゃるかもしれません。
データ分析を勉強したい、とあるAさんの思考・・・
「データ分析の勉強をしたい!」
「でも、分析するデータがないから勉強できない!」
「そうだ!分析するためのデータを入手できるために、データサイエンティストとして、企業に就職しよう!」
「でも、データサイエンティストとして就職するための実績がないから就職できない!」
「データサイエンティストとして就職するために、データ分析の勉強をしなければ!」
「でも、分析するデータがないから勉強できない!」
「なぜだ!どうやっても自分はデータ分析ができない!何か呪われているのだろうか。。。」
見事にAさんは無限ループにおちいってしまいました。もちろん、Aさんは前世で何かしらの大罪を犯した罰として、無限ループにおちいったわけではありません。また、少なくとも、この無限ループから抜け出す簡単な方法は、僕がすぐに思いつく限り1つあります。それは・・・
データ分析の勉強がしたくてもできない無限ループから簡単に脱出する方法
「ネットから分析用データを収集する」
今回は、このように、必要なデータが身近な場所になくデータ分析の勉強ができない方に対して、インターネット上などからデータを収集し、分析するまでの方法について解説したいと思います。
デジタルボーイです。
データサイエンス歴20年以上のおっさんです。中小企業診断士として、データサイエンス、WEBマーケティング、SEOに関するデータ分析、コンサルティングの仕事をしています。自己紹介の詳細はコチラ
インターネット上ではどのようなデータが収集可能
実は、インターネット上では、さまざまなデータが取得できます。
インターネットで無料で公開
ユーザーがダウンロードすることを前提に、インターネット上にデータを公開しているケースがあります。この場合無料の場合も有料の場合もあります。
後ほど、無料でダウンロードできる公開データについても触れたいと思います。
インターネットで有料で公開
例えば、株価の過去データなど、有料で証券会社が販売しているようなケースがあります。これは僕の感覚ですが、有料でデータを購入するユーザーはある程度規模の大きい会社が多く、ビジネスでどうしても必要なデータであるため、価格もかなり高額な場合が多いようです。
有料データ例1:ゼンリン「国勢調査データ」
地図で有名なゼンリンによる国勢調査データの提供サービス。
https://www.zenrin-ms.co.jp/gis_marketing/database/statistics/census/
有料データ例2:帝国データバンク「企業信用調査」
企業の経営面や財務面の信用調査データを提供
https://www.tdb.co.jp/lineup/research/index.html
有料データ例3:KABU+
日本国内の株式市場の銘柄における日足データの提供サービス
有料データ例4:パスコGISデータ
地理システムのパスコによるGISデータの販売サービス
https://www.pasco.co.jp/products/data/
有料データ例5:リスト王国
企業リストの販売
個人利用の場合や、お試しで利用する場合などは、まずは無料で公開されているデータから検討してみると良いでしょう。
ネットアンケート
ユーザーがどのように考えているのかや、卒論でのデータ収集など、アンケートが必要な場面があると思います。
そのような場合に、企業がモニターを集め、アンケートを実施してくれるサービスなどがあります。
これにより、市場調査やユーザーの志向調査なども手軽にできますね。100人くらいへのアンケートで数万円から十数万円くらいで利用できるサービスが多いようです。
https://freeasy24.research-plus.net/
卒論や市場調査など、独自のアンケート項目で調査が必要な場合は、ネットアンケートの利用は有力な選択肢だと思います。
WEBサイトのデータそのものから収集
データをダウンロードする形式でなく、WEBサイトの情報そのものを収集することも技術的には可能です。
この技術はスクレイピングと言われるもので、PythonやJavaScriptなどのプログラミング言語で、自動でWEBサイトにアクセスし、そこにある情報を収集する技術です。
ただし、公にはスクレイピングを許可しているWEBサイトはほぼありません。
それは、プログラミングによって、人によるアクセス以上のスピードでWEBサイトにアクセスできるため、サーバーに多大な負荷がかかることが大きな要因です。
スクレイピングを行う場合は、そのサイトの規約を十分に把握した上で、自己責任で実施するようにしてください。
どのようなデータがインターネット上で公開されている?
無料で、ダウンロードが可能なデータ一覧
e-Stat
政府統計の総合窓口で、国勢調査、経済センサス、家計調査など、
非常に多岐にわたる国や自治体が行なっているデータが無料で公開されています。
日本で公開データの収集を行いたい場合、まずはここから始めてみると良いでしょう。
jSTAT MAP
上で紹介した、e-Statで公開されている国勢調査、経済センサスなどを
地図上で閲覧できるサイトです。
僕も昔、エリアマーケティングの分析エンジンを開発したことがあるのですが、
このようなGISツールを無料で利用できるのは非常に画期的だと思います!
エリアマーケティングに携わっている人などはぜひ、このサイトも利用してみると良いでしょう。
https://www.e-stat.go.jp/gis/gislp/
非常に多岐にわたる国や自治体が行なっているデータが無料で公開されています。
日本で公開データの収集を行いたい場合、まずはここから始めてみると良いでしょう。
気象データ
気象庁がエリア別に過去のデータを公開しています。
需要予測や来場者数予測などを行う場合に、気象データを利用したい場合など、
このデータを利用すると良いでしょう。
https://www.data.jma.go.jp/stats/etrn/index.php
土地総合情報システム
国土交通省が全国の不動産の取引価格情報や地価の情報を公開しています。
不動産関連のデータ分析をする際は、e-StatとjStat Mapに加えて、こちらのデータも
非常に有用です。
https://www.land.mlit.go.jp/webland/
JAXAデータ提供サービス
こちらでは、衛生データなどを無料で公開しています。
ハイテク機器など、衛生データを活用した開発を行う場合も多く、そのような場合に、こちらのデータは有用なのではないでしょうか
https://earth.jaxa.jp/ja/data/
日本銀行 時系列統計データ検索サイト
金利、為替、通貨量、物価等の金融データが時系列でダウンロードできます。
https://www.stat-search.boj.or.jp/
データコンペディション用データ
データコンペディションとは、予測モデルなどの分析モデルの精度を競う
大会です。最も規模の大きなデータコンペの大会はアメリカで開催されているKaggleという大会です。
ここでは、過去のコンペのデータも公開され、また、その時の上位チームの分析モデルや大会参加者のディスカッションなども閲覧可能です。
ビジネス利用でデータのダウンロードをすることはないとは思いますが、学習用としては非常に有用だと思います。
僕自身も、このサイトの過去のコンペデータでモデルを作り、議論を確認しながら精度を上げるためのチューニングなども定期的に学んでいます。
ここで掲載したデータは比較的簡単にダウンロードできますし、データ分析の勉強にもとても有用です。ぜひ、チャレンジしてみてください。
データを収集した後、分析までに必要なこと
続いて、データを収集し、開けることが確認できたら、ようやく分析が可能です。
分析までに必要なステップについて説明します。
ステップ1:収集したデータが開けることを確認する
WEBサイトでデータを収集した後、分析のためにパソコンでそのデータを取り扱う必要があります。
ただし、ダウンロードしたデータが開けない場合がよくあります。このような場合大きくは以下が原因です。
よくあるファイルが開けない理由その1:ダウンロードのタイミングで壊れた
多くのデータをダウンロードした場合、途中で回線が途切れるなどで、よくあることです。
この場合は、もう一度ファイルをダウンロードし直してみましょう。
よくあるファイルが開けない理由その2:そもそも公開データが壊れている
このパターンもよくあります。これについては、こちらでどうしようもないので、運営者に連絡するなどして、修正を待つしかありませんね。
よくあるファイルが開けない理由その3:自分のパソコンで開けるファイル形式でない
実は、公開するサービスによって、ファイルの形式はさまざまです。
以下が代表的なデータのファイル形式になります。
- csvファイル
拡張子が.csvのファイル。データ同士がカンマで区切られている。
Excelやエディタで開くことが可能
- Excelファイル
拡張子が.xlsや.xlsxのファイル。MicrosoftのExcelのファイル。
もしExcelがなければ、Googleのスプレットシートでも開くことは可能
- txtファイル
シンプルなテキストデータ。データの区切りはカンマだったり、スペースだったり、タブだったりするので、
区切りの仕様についてはサイトで要確認。
- PDFファイル
Excelなどの表をそのままPDFにしたものの場合もある。
そのままでは、データとして取り込めなので、手入力で打ち直すか、OCRという文字認識の処理を施し、
データ化する必要がる。
例えば、PDFファイルをGoogleドライブに保存し、対象ファイルをGoogleドキュメントで開くと、
多少の文字化けがあるものの、文字認識しデータ化できる場合がある。
- jsonファイル
最近、流行っているWEB上でデータのやりとりを行うためのデータ形式。
PythonやRなどのプログラミングができる場合は分析データにすぐに変換できる。
そうでない場合は、例えば、Excelを開き、ホーム→新しいクエリ→その他のデータソースから→Webからで、
ファイルを指定することで、読み込みが可能
- xmlファイル
jsonデータが今ほど普及していなかった頃に、WEB上でのデータのやり取りを行うために利用されている。
今ではあまり見かけない。
多くの場合、Excelでデータの閲覧や編集は可能ですが、データの形式や容量によっては、Excelでは
難し場合もあります。そのような場合はPythonやRの利用も検討してみてください。
ダウンロードファイルの文字コードとOSについて
データ分析を行う場合、多くの方はMacかWindowsのどちらかを利用していると思います。
実は、MacとWindowsでは内部で利用している文字コードが異なっており、例えば文字の「あ」はMacやLinuxでは「E3 81 82」(UTF-8)で格納され、Windowsでは「82 A0」(shift-jis)で格納されます。
普段はこのことを意識する必要はないのですが、公開されたデータがWindowsで作られた場合とMacやLinuxで作られたもので文字コードが異なり、開いてしまうと文字化けしてしまう場合があります。
このような場合は、「ファイルが壊れている」とか「自分のパソコンではひらけない」と慌てて判断せずに、ファイルを開くソフトウェアに文字コードの指定のオプションがついていると思うので、そこで指定し、開くようにしてください。(Linuxの方もいるとは思いますが、Linuxを使える方は、ここでの内容は十分承知の上でしょう)
ステップ2:必要なファイルを整理する
続いて必要なファイルと不要なファイルを整理します。というのも、不要なデータをそのまま分析用のフォルダの中に入れておくと、必要なファイルと間違えたりすることも考えられるからです。
ファイルの整理の方法として、例えば、次のようなやり方でどうでしょうか
まず、分析用のデータを格納するために、フォルダdataを作る。さらにフォルダdataの中にもう一つ、フォルダbackupを作る。そして、とりあえず、ダウンロードしたファイルはすべてbackupフォルダに格納しておき、分析に必要なファイルを、backupフォルダから上の階層のdataフォルダにコピーして使う、というやり方です。
また、個人的には、ダウンロードしたデータの中で不要そうなデータをすぐに削除するのは、注意が必要だと思っています。理由は、不要だと思ったファイルを削除してしまって、分析の途中で後から必要になり、再度、ダウンロードしなおさない、なんてことにもなりかねないからです。そのため、とりあえず、ダウンロードしたファイルはbackupフォルダに格納するのがおすすめです。
また、ダウンロードしたファイルのファイル名は例えば「p01_w342.csv」のように連番やアルファベットだけの表記であることがよくあります。このような場合、どんなデータなのかファイル名だけで判断できないことも多くあります。そのため、dataフォルダにコピーしたファイルについては、場合によってはわかりやすいファイル名に変更するなど対応するといいでしょう。ただし、backupフォルダの中のデータはファイル名は変更しない方が無難でしょう。
ステップ3:収集したデータの項目名を確認する
続いて、ヘッダー(データの項目名)の確認です。インターネットで収集したデータの場合、データ項目がアルファベットで書かれてあったりと、どのようなものか分かりにくい場合がよくあります。
データ項目をあやふやにしたまま分析してしまうと、自分ではこの項目を分析していたつもりだけど、実は違っていたなんてことにもなりかねず、一生懸命した分析が水の泡にもなりかねません。
そのようなことがないよう、ダウンロードしたデータにはどのような項目がどの順番で格納されているのか、しっかりと確認するようにしましょう。
また、場合によっては、データのヘッダーをわかりやすいように作り変えるといいでしょう。このような作業の後、分析ツールに取り込み、データの加工・集計・分析を行うようにしましょう。
以上が、データの収集と分析についての解説でした。
また、最後に参考のために、
APIという仕組みでデータの取得ができるサービスもありますので、以下に掲載しておきます。こちらもご参考にしてください。
番外編:無料で、APIを使い収集可能なデータ一覧
マウスでクリックしてダウンロードするのではなく、プログラミングを使って、サーバーにアクセスし、データを収集する仕組みを運営者が提供しているケースも多々あります。
プログラミングによって、データを提供する仕組みをAPI(Application Programming Interface)と言います。
読んで字の如く、まさにプログラミング用のインターフェースを提供する仕組みのことですね。
APIを使ってデータを収集するためには、ユーザーは簡単なプログラミングの言語の知識が必要です。
そのため、APIの利用者は経験者に限られるため、その分、利用ユーザーを絞り込むことで、運営側は不要なアクセス数の増加を減らす効果がありますね。
APIを公開しているサービスは多岐に渡りますが、その中でも代表的なものをご紹介します。
必要に応じて、ご自身でも検索してみてください。
Facebook Graph API
Facebook上の情報の取得や更新が可能です。
https://developers.facebook.com/docs/graph-api
Instagram Graph API
https://developers.facebook.com/docs/instagram-apiInstagram用のAPIです。
YouTube Data API
https://developers.google.com/youtube/v3?hl=jaYoutube用のAPIです。
Twitter API
https://developer.twitter.com/ja/docs/tutorials/building-high-quality-filtersTwitter(X)用のAPIです。
Rakuten API
https://webservice.rakuten.co.jp/documentation楽天用のAPIです。
Yahoo ショッピング API
https://developer.yahoo.co.jp/webapi/shopping/Yahooショッピング用のAPIです。
Google Books API
https://developers.google.com/books?hl=ja
Google booksが保有する書籍情報のAPIです。