Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2018Rユーザ会用

171 views

Published on

2018/12/08開催

Published in: Education
  • Be the first to comment

  • Be the first to like this

2018Rユーザ会用

  1. 1. 国外の公的統計作成部局 における近年の動き 独立行政法人 統計センター 和田 かず美 2018年度統計数理研究所共同研究集会「データ解析環境Rの整備と利用」 2018年12月8日(土)統計数理研究所
  2. 2. 昨年の話題 EBPM (Evidence Based Policy Making) EUC (End User Computing) LOD (Linked Open Data) Shiny I. 身近な動きからみる国内の動向 II. EBPMについて III. 公的統計部門の動向 IV. 公的統計部門におけるRの普及 Rユーザーの学生の採用が 進むと、ボトムアップで組 織内にRが普及していく Statistical Data Editing 小地域推定 (SAE) 2
  3. 3. 今回の話題 I. 国外の動向  公的統計の作成プロセスの標準化 エンタープライズアーキテクチャ (EA) の導入 CSPA (Common Statistical Production Architecture) GSBPM (Generic Statistical Business Process Model)  方法論の共有とマニュアルの作成 Memobustハンドブック  プログラムの共有 Awesome official statistics software 公的統計のためのすごいソフト II. Data Validation  “Statistical Data Cleaning with Applications in R”  Data Validation  Shiny アプリの紹介  まとめ 3
  4. 4. I. 国外の動向
  5. 5. 公的統計部門の動向 エンタープライズアーキテクチャ(EA)の導入  CSPA(Common Statistical Production Architecture: 共通統計作成構造)  GSBPM(Generic Statistical Business Process Model: 一般統計ビジネスプロセ スモデル) 5 具体的な方法論 EA:大きな組織を効率的に運営するために、業務手順や情 報システムの標準化、組織構造の最適化するための方法論
  6. 6. 統計作成業務の標準化 国内の業務の標 準化だけでなく 国際的な業務の 標準化が進展 [出典: https://ec.europa.eu/eurostat/cros/system/files/Enterprise%20architecture_UNECE.pdf ] 6 CSPA(Common Statistical Production Architecture: 共通統計作成構造) UNECEで2013年開発開始、2014年実用化 カナダ、NZ等EU域外国も参加
  7. 7. GSBPM 一般統計ビジネスプロセスモデル GSBPMは、CSPAを元に共通化を進めるためのフレームワークで、CSPA のCollect, Process 等の各フェーズを基本構造(レベル1)として、この フェーズで行われる業務を階層的に細分化 レベル1&2 7さらに細分化された下部構造もある
  8. 8. GSBPM和訳 総務省統計局 国際統計管理官室 8
  9. 9. GSBPMがどう役立つか? 例1) The Memobust Handbook on Methodology for Modern Business Statistics 新企業統計ハンドブック [ https://ec.europa.eu/eurostat/cros/content/handbo ok-methodology-modern-business-statistics_en ] 企業統計編纂のための方法論マニュアル 9 例2) Awesome official statistics software 公的統計のためのすごいソフトウェア [ http://www.awesomeofficialstatistics.org ] オープンソースソフトウェアのパッケージリスト
  10. 10. Memobust ハンドブック • フォーカスは、標本設計、データ収集、推定及び データ融合で、GSBPMに準拠している • 当初は、既存の"Handbook on the design and implementation of business surveys"(ed. Willeboordse, 1998) の更新であったが、最終的に はハンドブックはすべて書き直された • トピックあるいはテーマ毎の小さなPDFファイル の集合体で、統一フォーマットに基づいて作成さ れている 10 [ https://ec.europa.eu/eurostat/cros/content/handbook-methodology- modern-business-statistics_en ] 例1
  11. 11. Memobust プロジェクト • ヨーロッパ統計システム(ESS: European Statistical System)の枠組みの下での各国統計部局のシナジー 効果とベストプラクティス共有を目的に設置された、 ESSnetプロジェクトと呼ばれるものの1つ。 • (1) 2011年11月~2012年7月と (2) 2012年9月~2014年 3月の2フェーズで実施 • 参加国 (1) オランダ、ギリシャ、ハンガリー、イタリア、ノ ルウェー、ポーランド、スウェーデン、スイス (2) (1) からギリシャを除いた国 11
  12. 12. トピック一覧 1. Introduction 13. Coding 2. General Observations 14. Statistical Data Editing 3. User Needs 15. Imputation 4. Overall Design 16. Derivation of Statistical Units 5. Repeated Surveys 17. Weighting and Estimation 6. Design of Statistical Concepts 18. Quality Aspects 7. Questionnaire Design 19. Macro-Integration 8. Statistical Registers and Frames 20. Seasonal Adjustment 9. Sample Selection 21. Statistical Disclosure Control 10. Data Collection 22. Dissemination 11. Response 23. Evaluation 12. Micro-Fusion 24. Dynamics of the Business Population 12 学術論文ではなく、公的統計を作成する実務家のためのマニュアル
  13. 13. 例: 「15. Imputation」 • Imputation - Main Module (Theme) 補完 – 概論 • Deductive Imputation (Method) 演繹的な補完 • Model-Based Imputation (Theme) モデルベースの補完 • Donor Imputation (Theme) ドナー補完 • Imputation for Longitudinal Data (Theme) ⾧期時系列データの補完 • Little and Su Method (Method) Little and Su法 • Imputation under Edit Constraints (Theme) チェック制約のある補完
  14. 14. Awesome official statistics software 公的統計のためのすごいソフトウェア このソフトウェアリストへの掲載基準 • オープンソースで無償、自由にダウンロードし利用可能 • 少なくとも1つの公的な統計作成部局での実用化が確認 されているものか、あるいは公的統計の公表結果へのア クセスを提供しているもの • インストール・利用が容易 • 安定バージョンがあり活発なメンテが行われている 14 http://www.awesomeofficialstatistics.org 例2
  15. 15. リストの内容(一部抜粋) Design frame and sample (GSBPM 2.1) 標本フレーム・標本設計 • R package SamplingStrata. Optimal Stratification of Sampling Frames for Multipurpose Sampling Surveys. Sampling (GSBPM 4.1) 標本抽出 • R package sampling. Several algorithms for drawing (complex) survey samples and calibrating design weights. • R package surveyplanning. Tools for sample survey planning, including sample size calculation, estimation of expected precision for the estimates of totals, and calculation of optimal sample size allocation. Scraping for Statistics (GSBPM 4.3) 統計作成のためのスクレイピング • Java application URLSearcher. An application for searching Urls. Can be used to find websites of enterprise. By ISTAT. • Java application URLScorer. Gives a rule based score to scraped documents in a Solr database. By ISTAT. • ・・・ 15
  16. 16. 掲載ソフトウェアの対応プロセス 2018.11.16 現在
  17. 17. シンボルマーク Click!
  18. 18. まとめ • EU域内だけではない、国を超えたプロセ スの細分化・共通化 • 対応ソフトウェアの公開・共有 • マニュアルの整備  システム開発コストや、新技術の適用ハードルが下がる  Github等の公開レポジトリによる組織を超えたコラボ レーションが活発に  Rを含めたオープンソースのソフトウェアの普及 18 EA導入 ⇒ CSPAとGSBPM策定
  19. 19. II. Data Validation
  20. 20. Data validationとは “confirming whether data satisfies certain assumptions from domain knowledge” データが、対象分野の知識に基づく一定の前提 条件を満足しているかどうかを確認すること <実例> 1. 回答者が「その他の活動による収入がある」と申告している場合、 「その他の活動」に関する調査項目に記入がある 2. ある種の穀物の単位面積当たりの収穫量は、1ヘクタールあたり40~60 トンの間になる 3. 雇用者数が正の数であれば、給与支払総額も正の数となる 4. 雇用者数は、ゼロあるいは正の整数になる 5. 記入された地域番号は、地域番号のコードリストに存在する EU域内の28か国について、統計作成の中でデータバリデーションの作業量 が全体の10~30%を占める 20
  21. 21. Statistical Data Cleaning with Application in R 第一著者のMark van de Loo氏は、 “Awesome official statistics software”の管理者で、第二著者のEdwin de Jonge 氏と共にオランダ統計局の所属 21 統計にバリューチェーンの考え方を 導入しているのが大きな特徴。バ リューチェーンとは、ある生産活動 ステップ毎に、生産物の価値を高め る活動の一連の流れを指す。 この「統計的バリューチェーン」 という考え方は、ここ二十年ほど公 的統計コミュニティにおいて一般的 になってきている。
  22. 22. 公的統計の作成プロセス 22
  23. 23. 開発された関連パッケージ群 [パッケージ] validate: クリーニングルールの記述・適用・結果の可視化 validatetools: ルール管理 dcmodify: ルールを適用して実際にデータを修正する errorlocate: データの修正状況を表示し、原因究明を助ける deductive : deductive imputation* を行う VIM: 欠測値の可視化と補完 simputation: 様々な補完手法の提供 rspa: 補完済みデータへのルール適用 lumberjack: データの変更ログの管理 uRos2018 (公的統計におけるRの利用に関する国際学会) チュートリアル: https://github.com/data-cleaning/uRos2018_tutorial 23
  24. 24. uRos: New Challenges for Statistical Software – The Use of R in Official Statistics – • uRos2017 http://www.r-project.ro/conference2017.html 11月6 ~ 7日にブカレストで開催。ルーマニア統計局が 毎年主催する、公的統計におけるRの利用に関する国際学 会。2013年に統計局内の研究会から発展。ICMS2017がア ジア太平洋地域版会合としてマレーシアでパラレル開催。 • uRos2018 https://www.aanmelder.nl/uros2018 9月10 ~12日にハッカソン、12 ~14日に本体を、ハー グのオランダ統計局で、ルーマニア統計局とオランダ統計 局が共催。 • uRos2019 http://www.urosconf.org/ ブカレストのルーマニア統計局で、5月20~22日に開催 予定。アブストラクト締切4月12日。 24
  25. 25. チェックルールの定義と適用(0) ① turnover は0以上 ② 雇用者一人あたり給与は5万ギルダー(約300万円)未満 edit rules cf <- check_that(retailers, turnover > 0, staff.costs/staff < 50) summary(cf) name items passes fails nNA error warning expression 1 V1 60 56 0 4 FALSE FALSE turnover > 0 2 V2 60 39 5 16 FALSE FALSE staff.costs/staff < 50 • チェック①は、60レコード中56レコードがパスして、残り4本は欠測 • チェック②は、60レコード中39レコードがパス、残りは欠測が16レ コード、チェックをパスしなかったものが5レコード存在する check_that関数で、複数ルールの記述とデータへの適用が一度にできる 25
  26. 26. チェックルールの定義と適用(1) ポイント: ルールの定義とデータへの適用を分離する ① 売上高 (turnover) は0以上 ② 雇用者一人あたり給与は5万ギルダー(約300万円)未満 ③ 雇用者がいれば給与はゼロよりも大きくなる ④ 産業全体の利益の平均はゼロよりも大きい edit rules cf <- check_that(retailers , to = turnover > 0 , sc = staff.costs/staff < 50 , cd = if ( staff > 0) staff.costs > 0 , mn = mean(profit, na.rm=TRUE) > 0 ) check_that関数で、ルールだけを定義し、さらに各ルールにshort nameを 割り当てる short name 26
  27. 27. チェックルールの定義と適用(1)、続き summary(cf) barplot(cf[1:3], main="Retailers") name items passes fails nNA error warning expression 1 to 60 56 0 4 FALSE FALSE turnover > 0 2 sc 60 39 5 16 FALSE FALSE staff.costs/staff < 50 3 cd 60 50 0 10 FALSE FALSE !(staff > 0) | (staff.costs > 0) 4 mn 1 1 0 0 FALSE FALSE mean(profit, na.rm = TRUE) > 0 27
  28. 28. チェックルールの定義 v <- validator( turnover > 0 , staff.costs/staff < 50 , total.costs >= 0 , staff >= 0 , turnover + other.rev == total.rev ) v Object of class 'validator' with 5 elements: V1: turnover > 0 V2: staff.costs/staff < 50 V3: total.costs >= 0 V4: staff >= 0 V5: turnover + other.rev == total.rev 28
  29. 29. 定義ルールをデータに適用 cf <- confront(retailers, v) cf Object of class 'validation' Call: confront(x = retailers, dat = v) Confrontations : 5 ルールの数 With fails : 2 満たさないレコードが存在するルールの数 Warnings : 0 Errors : 0 summary(cf) barplot(cf, main="retailers") 29
  30. 30. summaryとbarplotの結果 name items passes fails nNA error warning expression 1 V1 60 56 0 4 FALSE FALSE turnover > 0 2 V2 60 39 5 16 FALSE FALSE staff.costs/staff < 50 3 V3 60 55 0 5 FALSE FALSE (total.costs - 0) >= -1e-08 4 V4 60 54 0 6 FALSE FALSE (staff - 0) >= -1e-08 5 V5 60 19 4 37 FALSE FALSE abs(turnover + other.rev - total.rev) < 1e-08 30
  31. 31. cf の内容 head(values(cf)) V1 V2 V3 V4 V5 各ルール [1,] NA NA TRUE TRUE NA [2,] TRUE TRUE TRUE TRUE NA [3,] TRUE NA TRUE NA FALSE 第3レコードに着目 [4,] TRUE NA TRUE NA TRUE [5,] NA NA TRUE NA NA [6,] TRUE NA TRUE TRUE NA 三番目のレコードは、V2とV4のチェックができず、五番目のルールを満た していない retailers[3,3:7] staff turnover other.rev total.rev staff.costs 3 NA 6886 -33 6919 324 staff が欠測しているため、V2とV4のチェックが不能で、V5については、 turnover と other.rev の合計が6853で、total.revに一致せず満たしていない 31
  32. 32. パイプ演算子の活用 ① turnover は0以上 ② 雇用者一人あたり給与は5万ギルダー(約300万円)未満 cf <- check_that(retailers, turnover > 0, staff.costs/staff < 50) summary(cf) require(magrittr) retailers %>% check_that(turnover > 0, staff.costs/staff < 50) %>% summary() v <- validator(turnover > 0, staff.costs/staff < 50) retailers %>% confront(v) %>% summary() 32
  33. 33. 線形方程式の許容誤差への対応 上の等式で表現されるチェックを厳密に適用すれ ば、丸め誤差により誤ったエラー検出が起こりうる ので、ある程度の差異は無視したい。 validateパッケージは、上のような線形方程式に よるチェックを次のように解釈する。ここで は小 さな正の数値で、デフォルトは で、可変。 33
  34. 34. 線形方程式の許容誤差の調整 v <- validator (x+y==1) d <- data.frame(x=0.5, y=0.50001) summary(confront(d, v)) summary(confront(d, v, lin.eq.eps=0.01)) summary(confront(d, v, lin.eq.eps=0.01)) name items passes fails nNA error warning expression 1 V1 1 0 1 0 FALSE FALSE abs(x + y - 1) < 1e-08 name items passes fails nNA error warning expression 1 V1 1 1 0 0 FALSE FALSE abs(x + y - 1) < 0.01 34
  35. 35. より大規模な集計に向けて ルール集をテキストファイルあるいはYAML フォーマットで読み込むことができる YAMLとは? “YAML Ain’t Markup Language” の略 拡張子 : .yaml, .yml 構造化データやオブジェクトを文字列にシリアライズ (直列化)するためのデータ形式の一種 テキストファイルで、スペースやインデントを活用し、 人が読み書きする際に理解しやすいことに重点が置か れている 公式webサイト http://yaml.org/ 35
  36. 36. ルール記述のテキスト版とyaml版 # rules.txt # 非負ルール turnover >= 0 staff >= 0 # その他の制約 turnover / staff > 1 # yamlrules.yaml rules: - expr: turnover + other.rev == total.rev name: inc label: income balance description: turnoverとother.revの合計は、total.revに一致 - expr: if (staff > 0) staff.costs > 0 name: stf label: staff/cost sanity description: 雇用者がいれば給与は発生する テキストで入力し、 yamlファイルを出力 することもできる 36
  37. 37. ルール記述ファイルの使用 v <- validator (.file="rules.txt") retailers %>% confront(v) %>% summary() # テキストで読んだルールをyamlで出力 export_yaml(v, file="myyaml.yaml") # yamlファイルの読み込み v2 <- validator (.file="yamlrules.yaml") retailers %>% confront(v2) %>% summary() 37
  38. 38. エラー箇所の特定  単変量のルール ある特定の調査項目1つに関するルールに基づ きエラーを検出した場合、どこを修正すべきか は明確  多変量のルール: 次のような例でエラーが検出された場合、婚姻 状況と年齢の両方に誤りの可能性がある 例) 既婚であれば男は18歳以上、女は16歳以上 Error Localization 生年月日などの追加情報でどちらが誤っているかがわかる 38
  39. 39. エラー箇所の特定方法 エラーを起こさないものを含めた全てのルール を考慮し、ミニマムとなる修正を採用する 名前 年齢 配偶者の有無 通学状況 太郎 3 既婚 幼稚園 上の例では、次の二つの可能性があるが、この 場合、修正箇所の少ない②を選び、配偶者の有 無を修正することになる ① 年齢と通学状況が誤っている ② 配偶者の有無が誤っている Principle of Fellegi and Holt (1976) 混合整数計画法(MIP)を活用 39
  40. 40. errorlocate パッケージ 取り扱うルールは次の三種類 ① 数量項目に対する線形(不)等式で表現される、内 訳と合計の関係や非負制約等の条件 ② 複数のカテゴリ項目間の、既婚男性ならば18歳 以上といった理論上の制約 ③ 数量項目の線形制約とカテゴリ項目の論理的制 約の両方を含む混合タイプ validator [validate] により、ルールを定義し、 locate_errors [errorlocate] でエラー箇所を特定、 replace_errorsでルールに基づいた修正を行う <作業の手順> 40
  41. 41. 簡単な例 require(errorlocate) rules <- validator ( age >= 0, if (age <= 16) married ==FALSE ) raw_data <- data.frame(age = -1, married = TRUE) le <- locate_errors (raw_data, rules) values(le) age married [1,] TRUE FALSE age married 1 NA TRUE replace_errors(raw_data, rules) データを修正することもできる 41
  42. 42. 本発表の内容は、全て発表者個人に属し、所属組織の 公式な見解を示すものではありません 42
  43. 43. 43 統計分析のアイデアと技術を競う コンペティション 分析用データとして 市区町村の統計を集めた教育用標準データセットを提供します 最優秀論文には総務大臣賞を授与します 開催趣旨 データサイエンス時代を迎え、統計的課題解決の技術・能力を育成するデータサ イエンス教育の充実が不可欠となっています。このデータサイエンス教育のため の汎用素材として、2018年度から教育用標準データセット(SSDSE)を統計セン ターのウェブサイトで公開しています。 統計データ分析コンペティションは、高校生や大学生等を対象に、このSSDSE を用いた統計分析のアイデアと技術を競うコンペティションです。 詳細は当コンペティションのウェブサイトをご覧ください。 https://www.nstac.go.jp/statcompe/ 主催・後援 主催 総務省(統計局)、独立行政法人統計センター、 一般財団法人日本統計協会 後援 国立研究開発法人科学技術振興機構(JST)、 一般社団法人日本統計学会、全国統計教育研究協議会 募集期間 以下は2018年度の情報です。2019年度は一部変更になる場合があります。 エントリー期間 2018年6月26日(火)~ 8月10日(金) 論文提出期間 2018年6月26日(火)~ 9月18日(火)

×