Perm Territoryのオープンデータに基づく誤った相関

2014年11月6〜7日、コンテスト「オープンリージョン。 パーマテリトリーからのオープンデータに基づくアプリケーションとサービスの開発のためのハッカソン



サイトopendata.permkrai.ruは、地域の生活のさまざまな分野について約1,400の統計指標を公開しました。 このデータで何ができますか? 私の頭に浮かんだ最初の考えは、 スプリアス相関サイトの類似物(偽相関)を作成することでした。



TL; DR:

ソース: github.com/yakov-bakhmatov/odpr

アプリケーション: odpr.bakhmatov.ru



ソースデータ



取得方法とデータ形式は、開発者向けページで説明されています 。 要するに、Webサービスはメタデータの説明(インジケーターのリスト、「キューブ」のリスト-OKATO、OKVED、世界の国々などのインジケーターの追加パラメーター、インジケーターとキューブのペアのリスト)をxml形式とデータ自体で提供しますxmlおよびcsv形式のインジケーター識別子とキューブのペア。



「目」で初期分析を簡素化するために、csv形式を選択しました。 この形式では、エントリの形式は



 カレンダーレベル、日付、メトリック名、高度なキューブオプション、値 




カレンダーレベルは1〜5の数値です(1年、2年半、3四半期、4月、5日)。



簡単な分析により、次の問題が明らかになりました。





これらの問題はすべて何らかの方法で解決されたため、アイデアの実装に進みます。



アプリケーションのアイデア



カレンダーレベルが同じで日付範囲が重複するインジケーターのペアごとに、ピアソン相関係数を計算します。 相関係数係数が0.9より大きいペアを選択します(| r |> 0.9)。 Webアプリケーションページを開く(または更新する)と、1つの座標系で構築されたランダムペアチャートが表示されます。



また、検索またはフィルターを使用可能なすべてのペアのリストも必要です。



ツール



私はハッカソンの時間枠にとどまろうとして、アプリケーションをすばやく作成したかったのです。 私が選んだツールは次のとおりです。





プロセス



データの読み込み


まず、データをソースからダウンロードする必要があります。 ここで最初のトラブルが待っていました-数十個のデータファイルをダウンロードした後、 opendata.permkrai.ruサイトは500番目のエラーを出し始めました。 この段階をいくつかのアプローチに広げなければなりませんでした。



第二に、私は自分を岡戸の「キューブ」に制限することにしました。



合計で、合計容量が256 MiBの1151個のファイルがダウンロードされました。



データ準備


次に、各ファイルが解析され、行がセットごとにグループ化されました(カレンダーレベル、インジケータ、OKATO)。

Perm Territoryに属さない行は破棄されました。

重複した、逃した期間は削除されました。 インジケータの値は「正規化」されています。

この段階の後、11468個のデータシリーズが残りました。



相関計算


ここで複雑なことはありません。 これらの系列が異なるインジケーターに属し、同じカレンダーレベルを持ち、日付範囲の交点に少なくとも8ポイントがある場合、2つの行間の相関係数を計算します。



129,507ペアで、相関係数が0.9以上(または-0.9未満)でした。



後処理


一般的に、ほぼ13万ペアが多いです。 妥当な時間内に、このような数のグラフを見ることができなくなります。

しかし、実際には、インディケーターの内部では、系列間に非常に小さな差がある場合があります(逆に、相関係数は大きく、1に近い)。 指数Xにn行が含まれ、指数Yにm行が含まれる場合、n * m個の相関ペアがありますが、関係を示すには1ペアで十分です。



修正中です。 セット(カップルの最初のメンバーのインジケーター、カップルの2番目のメンバーのインジケーター、相関係数のサイン)に従ってすべてのペアをグループ化し、各グループから1つの代表を残します。



その後、501インジケーターの11,278行に19,390ペアが残りました。



Webアプリケーション


牛の在庫と小売売上高



結果のグラフは2つの方法で表示できます。 ページを更新し、毎回ランダムなスケジュールを取得できます 。 すべてのインジケーターのリストに移動して、興味のあるものを選択できます。



おわりに



このサイトは、割り当てられた数百ルーブルがなくなるまで利用可能になります。 ソースはgithubで利用できます。必要に応じて、誰でも自分でアプリケーションをデプロイし、データを試すことができます。



このアプリケーションは、3晩の楽しみのために作成されました。 別の夜はこの記事を書いて過ごしました。 私はその日に会ったと仮定できます。 ハッカソンは成功しました!



All Articles