気象予報士とビッグデータ解析の意外な関係


DACから気象予報士が誕生しました

ビッグデータ解析部のMikeです。
2015年1月の気象予報士試験に合格し、めでたく4月からアドテク業界ただ一人(本当?)の気象予報士となりました 。
そんなわけで、今回は気象予報士とビッグデータ解析の関係についてお話したいと思います。

なぜ気象予報士を目指したか?

ほぼ必ず聞かれます。「趣味の登山で雨に降られたくないから」って直接の動機をそのまま答えると、「仕事とは関係ないのにすごいですね」と褒めていただけます。でもそれはちょっと誤解で、私の担当業務の「ビッグデータ解析・オーディエンス解析」とも深い関係があって、業務遂行上も役立っているんです。

気象予報とビッグデータ解析、どこがどう関係あるの?

我々が日々テレビ、ネット、あるいはスマフォアプリを通じて得ている天気予報は、気象庁で行なっている「数値予報」をベースに作成されています。数値予報とは、地球の大気現象を支配する物理法則をできるだけ忠実にモデル化した「数値予報モデル」で時間発展を解くことにより、未来の大気の状態を客観的に求めようとする手法です。コンピュータシミュレーションで大気状態の未来予測をしてるってことです。
この数値解析ですが、「ビッグデータ」というワードが登場するはるか以前の1955年にアメリカで実用化されました。日本では1959年に、気象庁へ官公庁としてはじめてとなる(当時のレベルの)スーパーコンピュータが導入され数値予報が開始されました。60年近くマシンパワーと解析精度向上ニーズの間で技術革新を続けている「ビッグデータ解析界の草分け的存在」なわけで、天気予報技術分野で蓄積されたノウハウから学べることはたくさんあるはずです。

【具体例1】プロセスフロー設計と運用

天気予報はどのように作られるのでしょうか? その作成プロセスはざっくり以下のように構成されています。

  1. 観測データの収集
    地上観測、高層観測、気象衛星、レーダーなどから
  2. 観測データの品質管理
    利用に適さない観測データの除去、数値予報モデルの初期値作成
  3. 数値予報
    数値予報モデルによる演算を行い、将来の気象物理量(気圧、気温、湿度など数値データ)を算出
  4. ガイダンス作成
    数値予報の予測値を予報作業に利用しやすい形に加工する
  5. 天気予報作成・発表
    機械による予測結果の信頼度を加味し、予報担当者が最終的な予報を作成し発表する

ビッグデータ解析プロセスとして語られる構成要素と対比させると
1,2 → ETL
3,4 → 解析(データ・マイニング)
5  → 利活用
ときれいにマッピングできそうです。 歴史的順序からは、ビッグデータ解析プロセスのほうが既に確立していた天気予報作成プロセスを参考にしたんじゃないか、と思わざるをえません。

【具体例2】逐次学習をあえて使わない

上記3の数値予報プロセスでは、予測対象領域を数十~数kmの3次元グリッドに見立てて演算するので、計算結果はGPV (Grid Point Value: 格子点値) の羅列となります。ここからいきなり天気予報を作成できなくもないですが、天気予報は鮮度が命なので、さまざまな気象現象の予想をコンピュータにやらせて時間短縮しています。データ解析的に言うと、将来の気象物理量を説明変数、予想したい気象現象(が起きる/起きない)を目的変数として、統計解析手法で推定を行なっています。
気象庁が公開している専門家向けの資料(予報技術研修テキスト 第37巻 第3章 プロダクトの概要と利用上の注意)を読むと、線形重回帰、カルマンフィルター(KLM)、ニューラルネットワーク(NRN)、ロジスティック回帰などの統計解析手法が登場しています。マニアックな統計解析手法は期待に反して見かけませんでした。
ここで私が気になったのは、KLMやNRNの特長である逐次学習の使い方です。KLMやNRNなのに直近の観測結果を教師データとした逐次学習をさせずFIXしたモデルを使いつづけ、モデルの再学習トリガは人がコントロールしているそうです。モデルが逐次学習で常に動的変化していると、精度の結果説明やモデルの改善ポイントが見えづらくなることが想像でき、天気予報の全体最適視点で運用設計されていることが感じられます。我々のビッグデータ解析・オーディエンス解析においても、ある瞬間での推定精度はもちろんのこと、推定精度を安定的に維持するためのモデル管理も重要テーマの1つです。

【具体例3】予報精度の評価

天気予報技術は日進月歩ですが、今日の科学技術を駆使しても日単位に予報できるのは7日先までがせいぜい、さらには外してしまうこともしばしば。その予報精度はどのように評価されるのでしょうか。
まず、予報形式(目的変数の形式ですね)で3つに分類します。

  1. カテゴリ予報
    天気、警報・注意報
  2. 量的予報
    気温、降水量、風向、風速
  3. 確率予報
    降水確率、発雷確率

カテゴリ予報は、分割表から適中率、空振り率、見逃し率、捕捉率、バイアススコア、スレットスコアなどの指標を計算して評価します。「バイアススコア」と「スレットスコア」はあまり聞かない言葉と思いますので、簡単に説明します。
バイアススコアは予測と実況のカテゴリ構成比の一致度の評価方法です。例えばオーディエンス解析での性別推定で説明すると、男女比40:60の集団に対する推定結果の男女比が40:60にどれだけ近いかを表すスコアで、1から外れるほど特定カテゴリに偏って推定されていることが示唆されます。
スレットスコアは、竜巻など稀にしか起きない事象(予測回数に対してせいぜい数%しか事象発生しないレアケース)の予測評価方法で、主に気象分野で用いられるものだそうです。普通に適中率で見てしまうと、発生しない回数が圧倒的に多いため「発生しないことを発生しない」予測の優劣が支配的となり、肝心の「発生することを発生する」予測精度の評価になりません。そこで「発生しないことを発生しない」と予測できた回数を無視して評価するのがスレットスコアです。この手の「実は評価になっていない評価」は自分で気づきにくいことで、レビューなどの客観的なチェックが必要なポイントだと思います。
また、量的予報は平均二乗平方根誤差、確率予報はブライアスコアで評価しますが、詳しくは気象庁の資料をご参照ください(予報技術研修テキスト 第42巻 付録B 数値予報研修テキストで用いた表記と統計的な指標)。

まとめ

気象予報士となるために幅広く勉強したことが、ビッグデータ解析・オーディエンス解析の業務効率やプロダクト品質向上にベンチマークとして役立ってますよ、ということをご紹介しました。 他業界をベンチマークにしたくても自社の事業ドメインを超えた事例に触れる機会はそう多くないのが現実だと思います。そのような環境でも、気象予報士という資格取得をきっかけに見識が広がり、担当業務を客観的に見られる視点が持てたのは大きな成果でした。 これからも天気予報、数値予報から使えるものは大いに活用していきます。

おまけ|リンク集


DACエンジニア採用情報

  関連記事

no image
いま必要なのは「アナリティクスアプローチ」

こんにちは。 ビッグデータ解析部のakiです。 解析部で、Markezineでの連載をはじめましたのでご紹介です。 いま必要なのは「アナリティクスアプローチ」、ビッグデータ活用の課題とこれから (http://markezine.jp/article/detail/21293) マーケターのかた向け …

heatmap
巨大データベースのスケールアップと引越作業

はじめに ビッグデータ解析部でオーディエンスデータ解析基盤の開発、運用を担当している Mike です。 弊社ではインターネット広告配信ログをはじめとする「ビッグデータ」と呼ぶにふさわしいデータボリュームを扱うオーディエンスデータ解析基盤を構築しています。今秋、そのうちの1構成要素である、データサイズ …

Hivemall_Minhash_pic1_thum
HivemallでMinhash!〜似てる記事を探し出そう。〜

こんにちは。俺やで。 前回の投稿に続き(間が空きましたが)、 ビッグデータに対応したHiveで使える機械学習ライブラリ、 「Hivemall」の使い方、第2弾となります。 今回はMinhashという手法について書きたいと思います。 ※前回 【超入門】Hivemallで機械学習 〜Treasure D …

6914441342_605f947885
Treasure Dataの新機能(Data Tank)をAudienceOneのレポート機能で利用した話

Data Tankとは? Treasure Dataの新機能でTreasure Dataのプラットフォーム上に構築されたデータマートです。 Tableau等のBIツールとの接続を想定されており、AWSでいうところのRedshift的なものだと考えるとわかりやすいかと。 Data TankはPostg …

logomono-tableau-software-mono
Tableau 9.2で郵便番号の特性を地図で可視化してみる

Tableau 9.2から郵便番号地図が表示可能に 弊社ではデータ分析ツールのTableauを利用しています。オーディエンスデータの重複を分析したり、デモグラフィック属性を表示したりするなどデータの可視化に役立ちますTableauでは9.2から日本の郵便番号を用いて地図を可視化できるようになりました …

4229031035_bc1650a045_o
【入門編】TreasureDataでWEBログ分析をしてみた

この記事は Treasure Data Advent Calendar 2015 – Qiita の24日目の記事です。 こんにちは。 今回はWEBログの集計や解析をする際によく使うHiveQLのクエリと、UDF(User Defined Functions)について実際の集計クエリを使 …

11396380473_26f323b1e4_z
Google BigQuery / Tableauを使ってみた

TableauからGoogle BigQueryへ接続してみました。 弊社で利用しているTreasureDataからデータ出力してBigQueryへロード、Tableauから接続まで実際に行った手順について記載します。 TreasureDataからAmazonS3へデータ出力 まず、データが蓄積され …

bigdata
HyperLoglogでcount distinctを速くする

こんにちは。俺やで。 HyperLoglogについて書きます。おもしろいです。名前が。 ■1. HyperLoglogとは? count distinctを速くするアルゴリズム 以前、Minhashについて書きました。 (Treasure Dataさんのブログにも載せていただきました。ありがとうござ …

【超入門】Hivemallで機械学習_サムネイル
【超入門】Hivemallで機械学習 〜Treasure Dataでロジスティック回帰編〜

こんにちは。俺やで。 ビッグデータとかデータサイエンティストとかいう言葉が未だブームですね。 (「データサイエンティスト」は下火か。) ビッグデータ扱えるエンジニアも、 統計解析ができるアナリストも、 どっちもできるスーパーマンも世の中にはたくさんいますが、 ビッグデータも統計解析も扱えるインフラは …

l_077
fastavroとjqでAVRO形式のファイルからデータを取得しよう

AVRO形式のファイルを取り扱いたい AVROとはApacheプロジェクトのひとつとして開発されているデータ交換形式です。 コンパクトなバイナリで高速なシリアライズ・デシリアライズが行えるため、サーバーログなどに利用されています。 弊社内での一部システムのログデータにも利用されているのですが、専用の …