株式会社 ドコモ・インサイトマーケティング 篠田です。 位置情報を活用したプロダクトであるモバイル空間統計の分析や開発を行っています。
モバイル空間統計とは
モバイル空間統計®*1は株式会社NTTドコモが運用する携帯電話等が接続する基地局の運用データに基づいて生成した1時間ごとの人口を、全国津々浦々に把握可能な人口統計データ提供サービスです。国内居住者約8500万台、訪日外国人1200万台に及ぶ大規模なサンプルを用いて計算を行い、統計的に信頼性の高いデータを生成しています。
本サービスでは基地局位置情報をもとに主に500mメッシュのデータを生成し提供しています(なお、本記事で○Mメッシュと記載した時は縦横○メートルの正方形が規則的に並んでいる状態を指すと理解して下さい*2)。差分プライバシーの技術採用や少人数の場合は秘匿をかけるなど、個人のプライバシーを十分保護し提供を行っています。また統計化対象とする利用者は許諾を頂いた方に限定しています。
500mメッシュでの人口が1時間ごとにどのように分布しているのかはオンライン上で公開している人口マップで視覚的に理解することができます。ご興味のある方は、ぜひ触ってみてください!
上記の500mメッシュのデータを中心に、250mメッシュや125mメッシュのデータも生成対象の地域は限られるものの基地局情報から生成し提供を行っています。最近ではアプリから取得可能なGPSデータも活用し、地理空間粒度をより細かなものにしようとする試みも行っています。しかしデータを生成できたとしても、紹介した人口マップのように、地理情報として可視化を行わなければデータとしての理解するは中々困難です。
この記事ではモバイル空間統計で生成にチャレンジしている50mメッシュの人口データを、どのように可視化しているかを紹介します。
GPSを用いた50mメッシュ粒度の人口データ生成
一口に位置情報といっても、データによって位置推定に関する性質が異なっています。特に基地局とGPSに限ると、下記のような異なる性質を持っています。
基地局 | GPS | |
---|---|---|
位置推定の方法 | 定期位置登録信号 | 衛星による測位 |
測位精度 | 基地局間隔に依存 | 数メートル~数十メートル |
サンプル対象者 | 全携帯電話*3 | GPSアプリをインストール |
取得条件 | 携帯電話等の電源をON | アプリのGPS機能をON |
基地局は「サンプルは大規模だが基地局間隔に依存する」、GPSは「サンプルは限られるが精度が非常に良い」という違いがあります。そのため、基地局情報による人口の統計化は、「全国広範囲にわたって十分なサンプルサイズを用いて推定でき地域間比較が可能だが細かすぎる粒度の推定は難しい」、GPSによる人口の統計化は「地域的な偏りが非常に大きく出てしまい地域間比較が難しい一方で、特定地域を詳細に調べるには都合が良い」ということになります。
我々は「基地局による良さ」と「GPSによる良さ」を共に引き出し統計化されたデータの提供を行っています。具体的には 500mあるいは250mメッシュで生成したモバイル空間統計に、GPS信号から得られた人口の詳細な地理分布情報をレイヤー情報として与え、モバイル空間統計の値を細分化 しています。これにより、モバイル空間統計で作成した粒度での人口の精度は十分なサンプル量によって担保しつつ、GPSによってより詳細な人口分布を補足することが可能です。
50mメッシュの分割方法を考える
前項で説明した50mメッシュの人口データが生成できたと仮定して、そのデータを可視化することを考えます。ところで地理情報の可視化を行う時、グリッドの並べ方や座標の取り方には様々なパターンがあるはずです。
一定のルールが無いと様々な配置方法で可視化が行われることになってしまいますが、ありがたいことに日本の国土においては地理的区画が統一的な指標で定めてられており、地域メッシュと呼ばれています。我々もこの地域メッシュ統計の規格に沿って、50mの並べ方を定めていきましょう。
地域メッシュは第1次地域区画(1次メッシュ)と呼ばれる区画の分割によって定められています。1次メッシュは、緯度を40分間隔、経度を1度間隔に区分した区画として定義されます。ここから、これを縦横に8等分した区画が第2次地域区画(2次メッシュ)、更にこれを縦横に10等分した区画が第3次地域区画(3次メッシュ)となります。またこのように生成された3次メッシュを基準メッシュと呼び、経線方向緯線方向それぞれに2等分したメッシュを2分の1地域メッシュ(4次メッシュ)、4等分したメッシュを4分の1地域メッシュ(5次メッシュ)と呼びます。
1次メッシュは4桁のコード値として表され、例えば東京都を含む1次メッシュのコード値は5339になります。またひとつの1次メッシュがカバーする範囲およそ80km四方の区画になります。
高次のメッシュに分割されるたびに、このコード値は桁数が1つ増え、またカバーする範囲もルールに則り小さくなっていきます。我々が頻繁に用いている500mメッシュは4次メッシュで9桁のコード値、250mメッシュは5次メッシュで10桁のコード値になります。例えば東京駅を含む500mメッシュのコード値は533946113になります。
ところで、基準メッシュ以降は等分によって以降のメッシュが定義されるため、メッシュサイズも半分ずつになっていきます。例えば5次メッシュの後にくる6次メッシュは縦横125mの大きさになります。しかしながら、これを更に分割すると、67.5mという中途半端な値になってしまい、きりがよい50mになりません。基準メッシュの単純な分割では50mには到達できなさそうですね。
50mメッシュは基準メッシュの単純な分割では到達できないため、分析内容によっていくつかのパターンが存在します。
- 3次メッシュ 1/10細分区画コード10桁×100+左下を00とし附番したコードとするもの
- 2次メッシュを縦の緯度方向を 50 分割、横の経度方向を 225 分割した 50m 区画のメッシュに緯度方向0000~0049、経度方向 0000~00224 の細分メッシュコードを割りあてるもの
しかしながら、我々の場合は提供している基準メッシュの分割体系のコード値と齟齬が生じる分割だと混乱が生じえるため、齟齬が生じないような分割方式を採用することとし、「10桁のコード値である250mメッシュの値に100をかけ、左下を00とし附番」した12桁のコード値を50mメッシュのコード値として採用することにしました。
50mメッシュのshapeデータを作成する
採用した分割ルールに則る50mメッシュのコード値を作成します。幸い既存のGISツールでこのコード値は作成することが可能です。
今回はQGISと呼ばれるツールを使って作成します。QGISは地理情報の分析に特化した代表的なGIS (Geographic Information System) のOSSです。公開されているプラグインを自由に追加し、必要な機能を持たせることができます。 50mメッシュの作成にあたっては、我々の分割ルールと同じルールで作成可能なJapanMeshというプラグインを用います。
具体的な手順の詳細は省きますが、大まかに下記のステップで50mメッシュが作成可能です。また50mに限らず、他の粒度のメッシュも作成可能なので、地域メッシュのshapeデータが必要な方は同様の手順で作成可能です。
- QGISのダウンロードサイト https://download.qgis.org/downloads/ からバージョン2.18系をダウンロードする。
- インストールおよび起動し、メニューから新規プロジェクトを作成。
- プラグインからプラグインの管理とインストールを選択し、JapanMeshとOpenLayers Pluginをインストール。
- メニューにあるWebからOpenLayers pluginを選択し、OpenStreetMapを地図レイヤーとして追加。
- メニュー欄にある1次メッシュ作成ボタンで、1次メッシュを作成。
- メニュー欄にあるメッシュ選択ボタン(領域またはシングルクリックによる地物選択)を押し、さらに高次のメッシュを作成したい対象のメッシュを領域選択、2次メッシュを作成。
- 繰り返し、5次メッシュまで作成。同様の手順で、50mメッシュの作成ボタンを押し、目的のメッシュデータを生成。
- mesh7を右クリックして50mメッシュを「名前を付けて保存」とし、作成したメッシュデータをshapeデータとして保存。
作成されたshapeデータは座標や背景情報等、GISに関わる情報をまとめたベクター情報になっています。 shapeデータの構造自体に興味がある方は下記資料等を参照して下さい。
50mメッシュの人口データを可視化する
作成したshapeデータを用いて、50mメッシュの可視化を行ってみましょう。ここではTableauと呼ばれるツールを用いて可視化を行います。Tableauは強力な可視化力を備えたBIツールです。本記事で扱う地理データはもちろん、表データを中心として多用な可視化・分析結果を得ることができます。
前項で得られた50mメッシュのshapeデータをTableauに読み込ませます。shapeデータはジオメトリックな情報も保有していますが、tableauにデータを読み込んだ時点ではメッシュコード値が表示されます。50mメッシュはm7codeというカラム名で表示されており、これに対応する50mメッシュの人口値を読み込ませ、コード値を使って結合します。
シート1というタブに移動し、地理的な可視化を行います。左欄にある「ジオメトリ」をシート1の中央空白欄にドラッグアンドドロップすると、日本地図とともに50mメッシュが描画されます。ここにメッシュコードと人口値をドロップし、フィルターに必要なフィルター情報を付与します。ここでは平日休日を区別するフラグと時間を表す情報をフィルターとして追加します。ヒートマップの色合い等を適宜調整すると、50mのメッシュが人口情報と共に可視化できます。今回は人口が多ければ色合いが赤く、人口が少ない場合は緑がかるような可視化を行いました。
では50mメッシュでどのように人口値が可視化されたかをみて見ましょう。今回は渋谷エリアと秋葉原エリアを例に、可視化結果を確認します。
平日14時台の渋谷は、駅を中心に広く人口が分布していることがわかります。駅周辺や繁華街の人口は多いものの、周辺にある学校やオフィス街近辺にも人口が広がっています。
休日14時台の渋谷も、平日同様に繁華街付近に人口が広がっていますが、周辺にある学校やオフィス街近辺の人口は平日に比べると相対的に減少しています。
休日の秋葉原でも渋谷同様に繁華街に人口が集中していることがわかります。またヨドバシカメラやドン・キホーテといった秋葉原のホットスポットに人口が集中してる様子も、50mメッシュ粒度のデータでは見て取ることができます。
おわりに
今回はモバイル空間統計のチャレンジとして生成を試みている50mメッシュの人口データを可視化するために、地域メッシュの定義の紹介やQGISを用いたshape作成、Tableauを用いた可視化事例を紹介しました。文中で紹介した以外にもモバイル空間統計では多数の商品を用意しておりますので、ご興味持たれた方はぜひ弊社ホームページもご覧頂ければと思います。