264 Views
April 21, 25
スライド概要
医療における改正個人情報保護法と次世代医療基盤法 山本隆一
ある実務担当者が考えるADaMダイバーシティと未来予測 渡辺寿恵
PMDA申請電子データ提出経験談 栗栖章
多重性の調整が必要な試験を実施した際の承認申請時 電子データ提出方法の検討 大内喜海
ある実務担当者が考えるADaM開発アプローチと標準の 紹介 坂上拓
USでの申請承認プロセスとCDISC対応の事例 伊藤雅憲
医薬品承認申請時電子データ提出の現状について 安藤友紀
第5回Let'sデータ分析コンテストの規定課題のSASプログ ラム 周防節雄
Let'sデータ分析コンテストに用いる新擬似ミクロデータの 概要 高橋行雄
自治体におけるオープンデータ化への対応の現状と課題 有馬昌宏
ID-POSだけで始める新しいRFM分析:データステップで実 装するモンテカルロ法を用いて 片桐智志
最新AIの話題~AIの権利は誰のもの?~ 小野潔
One-Pass AUC Optimization手法の実務的拡張 木村和央
産業連関表を利用した地域経済の域外輸出の活性化要 因の探索 栃澤欣之
プログラムバグを見つけるための注目すべきSASログメッ セージ 吉野祥
SAS Drug DeveloPment(SDD)実務の実際-データマネジメント業務と解析業務はどう変わったかー 松山友映
Jupyter Notebookを活用したプログラムライブラリ構築の検討 吹谷芳博
SAS/EGプロジェクト実行時のエラーハンドリングについて一任意の処理単位で分岐処理を実行する方法- 岩本光司
医薬品開発におけるSASプログラムおよび関連ファイルの バージョン管理と共有について 川上貴弘
xmlv2エンジンを用いたannotated CRFの作成と検証方法 の検討 三澤喬
ODS Graphics Designerを用いたグラフの作成:SAS 9.4の 機能を活用 平井隆幸
Report Writing InterfaceによるデータステップでのHTML 形式レポート作成の検討 望戸遼
SASと外部ソフトウェアの連携:Windows GUI構築とExcel データの利用 高田一行
初/中級者が陥りやすいプログラミングエラー 井上貴博
Let's start STDRATE Procedure 堀田真一
Pinnacle 21 CommunityのADaMチェック機能を補完する, XML Mappingを使用したプログラムの紹介 西岡宏
LUAプロシジヤを起点としたビッグデータ解析とチームコラボレーション~LUAプロシジヤと歩む初めての共同作業 ~ 木口亮
ODS機能とREPORTプロシジャを用いた解析帳票の作成 一これから業務で利用を始める人のためにー 太田裕二
EMBアルゴリズムを用いた Multiple Imputation 矢田真城
Proc LuaによるSASマクロに依存しないプログラミングの 提案 森岡裕
SAS以外の言語を利用した,SASで実現困難なロジックや機能の実装についてー 川上質弘
SASプログラムの可視化-SASプログラムステップフローチャート生成プログラムの紹介- 福田裕章
Proc LUAを初めて使ってみた-SASでの処理を条件に応じ て変えるー 淺井友紀
SAS Tips.Top10 My Favorite SAS Functions. 松沢享
PHREGプロシジヤにおける共変量調整解析に関連したオ プション機能 魚住龍史
区分指数モデル及びフレイルティモデルに対するベイズ流生存時間解析 矢田真城
申請電子データプロセスの効率化~メタデータ・社内ツールを中心に~ 飯島康浩
SASによるベイズ流試験の成功確率の計算 張方紅
SASによる傾向スコアマッチング 魚住龍史
Mantel-Haenszel法により調整したリスク差の信頼区間に 関する一考察 佐々木英麿
ベイズ流の単群第II相試験デザインのSASマクロの作成 橋本大哉
公開医療ビッグデータを活用した医薬品マーケティングの 可能性 武藤猛
医薬品開発の意思決定におけるBayesian Posterior Probabilityの適用例~ Random-Walk Metropolis vs. No- U-Turn Sampler~ 作井将
Rプログラムも使えるJMPの活用法~JMPに手法がない場合~ 原茂恵美子
第I相臨床試験データの薬物濃度-QTc解析 塩境一仁
SASによる臨床試験の解析速報に用いるプレゼンテーショ ンスライドの効率的な作成方法の提案 吉田直記
レガシーデータ変換等におけるトランスコーディングの問 題に関する考察と提案 山崎文寛
2値データの Intra class Correlation Coefficientの推定マ クロプログラム 稲葉洋介
GLMSELECTプロシジャにおけるLassoの有用性に関する検討 川崎勝己
SASを利用した Pinnacle21 Communityのセミオートメーション化による業務効率化 片山雅仁
PSMATCH Procedure x ニューラルネットワークの奇跡の マッチング~Real World Dataの利用可能性を忖度する~ 馬場崇充
電子データ申請に向けた品質管理サイクルの最適化~プ ログラミング業務におけるdeja vu からの脱却~ 小林千鶴
セントラルモニタリングにおいてJMP Clinicalのレポートを 効果的に選択する取り組みについて 福升悠一
RTF出力のマクロプログラム化の工夫点の紹介について 楊敏
Annotated CRF自動化に伴う業務効率化について 藤原由
一般化Wilcoxon検定を用いた中間解析の無効中止に関する研究 大久保竣祐
XSLプロシージャ(PROC XSL)を使ってみました一簡単に "define.xml"を読み込むために一 小澤義人
多群における二重頑健推定量を用いた交絡の調整法に 関する研究 江森健人
プラセボ効果を抑制し試験薬の効果を効率的に検出する ためのエンリッチメントデザインに関する研究 舛田優
臨床試験における2デザインの性能評価に関する研究 井澤慶信
Proc STREAM によるAnalysis Results Metadataの作成 関根暁史
帳票MockupからのRTF用テンプレートSASプログラム自動作成ツール「Taiho TLF Automated Tool (TTAT)」の紹介 伊藤衡気
信頼区間を塗りつぶす~SGANNOを利用して~ 関根暁史
生存時間解析の実務的課題のSASでの解決,競合リスク,非PHモデルの被験者数設計,最適被験者数配分 浜田知久馬
複数母集団のパラメータ推定一全国消費実態調査を用いてー 高橋行雄
GAMプロシジャversus GAMPLプロシジャ 伊庭克拓
歌舞伎「仮名手本忠臣蔵」の上演パターン 坂部裕美子
CDASHからSDTMを効率的に作成するためのTipsのご紹 介 小松邦岳
若者の消費傾向はライフスタイルが変化するにつれ,どの ように変化するか?:横断研究 谷真宏
35歳未満の独身男女の消費傾向について 芦津宏治
居住地区の選択に関する探索的研究一人口の移動による過密化という社会問題に焦点を当ててー 佐藤瑞羽
企業区分別にみる自動車保有世帯の傾向 坂本周一
高齢者世帯の消費動向 中平健
ストックの視点を含んだ世帯の消費行動の特徴抽出 山川雄也
経済格差を測る食事多様性指標の提案 木下裕貴
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
論文集
SAS、SASを構成するプロダクト群は、SAS Institute Inc.の登録商標です。 その他、本論文集に記載されている会社名、製品名は、一般にそれぞれ各社の商標または登録商標です。 本論文集の一部または全部を無断転載することは、著作権法上の例外を除き、禁止されています。 本論文集の内容を実際に運用した結果の影響については、責任を負いかねます。
目次 | 基調講演 医療における改正個人情報保謹法と次世代医療基盤法 3 山本隆一 (一般財団法人医療情報システム開発センタ ー) I CDISC企画セッション ある実務担当者が考えるADaMタイパ ー 渡辺寿恵(小野薬局工業株式会社) P MDA 申請電子デ ー 栗栖章CMSD株式会社) 鈴木正人、福田裕章 | 7 シティと未来予測 8 タ提出経験談 多重性の調整が必要な試験を実施した際の承認申請時電子デ ー タ提出方法の検討 大内喜海(協和発酵キリン株式会社、CJUG-ADaM) 福田裕草CMSD株式会社、CJUG-ADaM)、大野浩太(北海道大学病慌臨床湖究開発センタ ー、CJUG-ADaM)、 浅見由美子(第一三共株式会社、CJUG-ADaM) 9 ある実務担当者が考えるADaM開発アプロ ー チと標準の紹介 10 us での申請承認プロセスとCDISC 対応の事例 11 医薬晶承認申請時電子デ 12 坂上拓(株式会社中外臨床研究センタ ー) 伊藤雅憲(アステラス製薬株式会社) ー タ提出の現状について 安藤友紀(独立行政法人 医薬品医療機器総合機構) I ( オ ー プンデ ー タ 第5回Let sデー タ分析コンテストの規定課題のSASプログラム 15 タ分析コンテストに用いる新擬似ミクロデ 33 ’ 周防節雄(兵庫県立大学) Let'sデ ー ー 高橋行雄(BioStat研究所株式会社) 周防節雄(兵庫県立大学)、宮内亨(独立行政法人統計センタ ー) | タの概要 | 金融 ・ 経済 ・ 経営関連 自治体におけるオ プンデ ー 有馬昌宏(兵庫県立大学) ー タ化への対応の現状と課題 ID-POSだけで始める新しいRFM分析: デ ー タステップで実装するモンテカルロ法を用いて 47 53 片桐智志(ネイチヤ インサイト株式会社) ー 最新Alの話題~Alの権利は誰のもの?~ 63 One-Pass AUC Optimization手法の 実務的拡彊 72 小野潔(株式会社インテック) 木村和央(株式会社金融工学研究所)
産業連関衰を利用した地域晶曹の域外輸出の活性化要因の探索 83 栃漂欣之(大塚製薬株式会社) 橋本綾子、角元慶二、菱垣晴次 | SASシステム プロ グラムパグを見つけるための注目すべきSASログメッセ ージ 95 吉野袴(株式会社クレスコ) SAS Drug Development (SOD)実務の実際 デー タマネジメント業務と解析業務はどう変わったか ー ー 107 松山友映/高沼正幸(協和発酵キリン株式会社) 兵頭洋平、長谷川優子、本山倒t子、山下昌洋 Jupyter Notebookを活用したプログラムライブラリ構築の検討 108 欧谷芳博(あすか製薬株式会社) 践漂正樹 SAS/EG プロジェクト実行時のエラーハンドリングについて 一任意の処理単位で分岐処理を実行する方法 ー 118 岩本光司(武田PRA開発センタ 株式会社) ー 医薬晶開発におけるSASプログラム および関連ファイルのバージョン管理 と共有について 119 川上貴弘(電助システムズ株式会社) xmlv2エンジンを用いたannotated CRFの作成 と検証方法の検討 123 三津喬(日本たばこ産業株式会社) ODS Graphics Designerを用いたグラフの作晴:SAS 9.4の梅能を活用 130 平井隆幸(日本化譲株式会社) 魚住龍史(京都大学) Repo同Writing Interfaceによる デー タステップでのHTML形式レポ ート作成の検討 149 望戸遼(イー ピーエス株式会社) SASと外部ソフトウエアの連携:Windows GUI構築 とExcelデー タの利用 161 高田 一行(株式会社タクミインフォメ ーションテクノロジー) 迫田英之{株式会社タクミインフォメ ーションテクノロジー)、阿部 一也(株式会社タクミインフォメ ーションテクノロジー)、 村松徳之(株式会社タクミインフォメ ーションテクノロジー)、宮原秀夫(株式会社タクミインフォメ ーションテクノロジー)、 木村範昭(専修大学) 初/中級者が陥りやすいプログラミング エラー 162 Let's sta代STDRATE Procedure 175 井上賓待(ノパルティス ファーマ株式会社) 堀田真一 (ファイザー株式会社) Pinnacle 21 CommunityのADaMチェック機能を補完する、 XML Mappingを使用したプログラムの紹介 西岡宏(シミック株式会社) 中尾親彰、上野知子、山崎聖子、菊池宏和 176
LUAプロシジャを起点としたビッグデ ータ解析とチ ー ムコラボレ ーション ~LUAプロシジャと歩む,初めての 共同作業~ 177 木口亮(塩野義製薬株式会社) 北西由武 ODS機能とREPORTプロシジャを用いた解析帳票の作成 一これから業務で利用を始める人のためにー 186 太田裕二(マルホ株式会社) EMBアルコリズムを用いたMultiple Imputation 198 矢田真減(工イツ ーヘルスケア株式会社) 浜田知久馬(東京理科大学) Proc LuaによるSASマクロに依存しないプログラミングの提案 209 森岡裕(イー ピーヱス株式会社) SAS以舛の雷語を利用した、SASで実現困難なロジックや機能の実装について ー一一一一 223 川上貴弘(電助システムズ株式会社) SASプログラムの可視化 -SASプログラムステップフロ ーチャ ー ト生成プログラムの紹介ー 福田裕章( MSD 株式会社) Proc LUAを初めて使ってみた - SASでの処理を条件に応じて変えるー 228 229 浅井友紀(工イツ ーヘルスケア株式会社) I SASシステム/その他関連分野 SAS Tips. Top10 My Favorite SAS Functions. | 233 松沢享(株式会社インタ ー サイエンティフィックリサ ーチ) | 生物統計・医薬関連 PHREGプロシジャlこおける共変量調整解析に関連したオプション機能 237 魚住謡史(京都大学) 矢田真城、浜田知久馬(東京理科大学) 区分指数モデル及びフレイルティモデルに対するベイズ清生存時間解析 249 矢田真城(東京理科大学) 魚住龍史(東京理科大学、京都大学)、浜田知久馬(東京理科大学) 申請電子デー タプロセスの効率化~メタデ ー タ・社内ツ ールを申心に~ Metadata Driven Approach for eSubmission 261 ー 飯島康浩/梶原正幹/小南真由美(ノパルティスファ マ株式会社) 中鴎優一 、北原孝志 SASによるベイズ流試験の成功確率の計算 262 張方紅(ノパルティスファ ーマ株式会社) 北原孝志 SASによる傾向スコアマッチング 魚住龍史(京都大学) 矢田真城(東京理科大学)、山本倫生(岡山大学)、川口淳(佐賀大学) 263
Mantel-Haenszel法により調整したリスク差の信頼区聞に関する 一考察 282 佐々木英麿(武田薬品工業株式会社) 舟尾暢男 ベイズ流の単群第E相試験デザインのSAS マクロの作成 301 橋本大哉(国立病院機構名古庭医療センタ ー) 嘉田晃子 公開医寵ビッグデー タを活用した医薬品マ ーケティングの可能性 武穣猛( MarlくeTech Consulting) 医薬品開発の意,哩決定におけるBayesian Posterior Probabilityの適用例 ~ Random-Walk Metropolis vs. No-U-Turn Sampler ~ 302 一一一一一一 312 作井将(武田薬品工業株式会社) 清水康平、舟尾暢男 Rプログラムも使えるJMPの活用法 ~JMPtこ手法がない場合~ 328 原茂恵美子(株式会社タクミインフォメ ーションテクノロジー) 佐醸拓哉、篠津和夫、佐藤耕一 第I相臨床試験デー タの薬物遣度 ー QTc 解析 329 塩境→二(第一三共株式会社) i漫僑錆 SASによる臨床試験の解析速報に用いる プレゼンテーションスライドの効率的な 作成方法の提案 339 吉田直記(武田薬品工業株式会社) 山崎文寛、舟尾暢男、高浪洋平 レガシーデー タ変換等におけるトランスコ ーディングの問題に関する考察と提案 一一一一一 361 山崎文寛(武田薬晶工業株式会社) 高浪洋平 2値デー タのIntraclass Correlation Coefficientの推定 マクロプログラム 一一一一一 378 稲葉洋介(国立国際医療研究センター) 田中紀子 GLMSELECTプロシジャにおけるLassoの有用性lこ関する検討 392 川崎勝己(エイツーヘルスケア株式会社) 有光導徳、新城博子 SASを利用したPinnacle21 Communityの セミオ ートメ ーション化による業務効率化 393 片山雄仁(塩野義製薬株式会社) 勘場大、神谷E香里、江川広明、角谷伸一 PSMATCH Procedure×ニュ ーラルネットワ ークの奇跡のマッチング ~ Real World Dataの利用 可能性を吋度する ~ 394 馬場崇充(塩野義製薬株式会社) E草原正和、北西由武 電子デー タ申請に向けた品質管理サイクルの最適化 ~プログラミング業務におけるdeja vuからの脱却 ~ 小林千鶴(塩野義製薬株式会社) 平野勝也、坂井絵理、北西白武 395
セントラルモニタリングにおいて JMP Clinicalのレポ ートを効果的に選択する取り組みについて 396 領升悠一 (エイツ ーヘルスケア株式会社) 藤田備子、小幡智憲、畑山知慶、近藤秀宣 RTF出力のマクロプログラム化の工夫点の紹介について 397 楊敏(株式会社タクミインフォメー ションテクノロジ ー) 宮川元志、原茂恵美子、篠津和夫 Annotated CRF自動化に伴う業務効率化について 醸原由(株式会社タクミインフォメ 宮川元志、楊敏、篠津和夫 ー ションテクノロジ 398 ー ) 一般化Wilcoxon検定を用いた中間解析の無効中止に関する研究 399 大久保竣祐(東京理科大学) 浜田知久馬、安漆祭司 XSLプロシ ー ジャ(PROCXSL)を使ってみました。 ” ー簡単に ” define.xml を読み込むために。 一 400 小津義人(株式会社メディサイエンスプラニング) 多群におけるこ重蹟健推定量を用いた交繕の調整法に関する研究 401 江森健人(東京理科大学) 浜田知久馬、安藤宗司 プラセボ効果を抑制し試験薬の効果を効率的に検出するための エンリッチメントデザインに関する研究 402 舛田優(東京理科大学) 浜田知久馬、安藤宗司 臨床試験における2段階デザインの性能評価に関する研究 403 井淳慶信(東京理科大学) 浜田知久馬、安穣宗司 | 生物統計・医薬関連/SASシステム proc STREAMによるAnalysis Results Metadataの作成 407 関根暁史(藤本製薬株式会社) 帳票MockupからのRTF用テンプレートSASプログラム自動作成ツ ール 円aiho TLFAutomated Tool (TTAT)」の紹介 423 伊藤衡気(株式会社タクミインフォメー ションテクノロジー) 栗矢芳之、銭本敦(大鵬薬晶工業株式会社) 信頼区聞を塗りつぶす~SGANNOを利用して~ 424 関根暁史(蕗本製薬株式会社) チュ ー トリアル 生存時間解析の実務的課題のSASでの解決 競合リスク,非PHモデルの被験者数設計,最適被験者数配分 浜田知久馬(東京理科大学) | 427
複数母集団のパラメ ータ推定 ー全国消費実態調査を用いて 一 高橋行雄(BioStat研究所株式会社) 428 統計理論 443 GAMプロシジャversus GAMPLプロシジャ 伊庭克拓(大塚製薬株式会社) | その他関連分野 歌舞伎「仮名手本忠臣麗J の上演パタ ーン 坂部裕美子(公益財団法人統計情報研究開発センタ ー) 459 CDASHからSDTMを効率的に作成するためのTipsのご紹介 小松邦岳(株式会社アスクレップ) 鈴木淳一、村岡了一、飛石陵子 460 ’ Let sデ ー | タ分析 |参加カテコリ ー :=ューカマー I SAフレッシャー ズ 自由課題レポー ト:著者の消費傾向はライフスタイル均贋化するにつれ、どのように変化するか?:横断研究-463 規定課題レポー ト 470 |惨加カテコリ ー :=ューカマー |タクミインフォメ ーションテクノロジ ー チ ー ム A 自由課題レポー ト:35歳未満の狙身男女の消費傾向について 規定課題レポー ト 475 482 |重量加カテコリ ー :ニューカマー |タクミインフォメ ーションテクノロジ ー チ ー ム B 自由課題レポー ト: 居住地区の選択に関する探索的研究 ー人口の移動による過密化という社会問題に焦点を当てて一 一一一一- 487 規定課題レポー ト 493 |倒防テコリ ー :ニューカマ ー |タクミインフォメ ーションテクノロジ ー チ ー ム C 自由課題レポー ト:企業区分別にみる自動車保有世稽の傾向 規定課題レポー ト 499 506 |割問テコリ ー :ニューカマ ー |タクミインフォメ ーションテクノロジ ー チ ーム D 自由課題レポー ト:高齢者世稽の消費動向 規定課題レポー ト 511 516 |告書加カテコリ ー :=ューカマー |野毛坂123 自由課題レポー ト:ストックの視点を含んだ世帝の消費行劫の特徴抽出 規定課題レポー ト 522 527 割問テコリ ー :学生 l おやつクラブ 自由課題レポー ト:経済格差を測る食事多綴性指榎の提案 規定課題レポー ト 533 540
医療における改正個人情報保護法と次世代医療基盤法 0山本 隆 一 ( 一 般財団法人医療情報システム開発センタ ー ) 2015年9 月に改正個人情報保護法が可決され、 2017年5 月末に全面施行された。改正点は多岐にわ たるが、その主なものは、それのみで個人を 一 意に識別可能な個人識別符号の導入とゲノムシー ク エンスが原則個人識別符号であることの明確化、 匿名加工情報の導入、 機微な情報として要配慮個 人情報の概念が導入され、医療情報のほぼすべてが要配慮個人情報に指定されたこと、 第三者提供 における同意原則の強化、 第三者提供におけるトレ ー サピリティの確保、 罰則の強化、 個人情報保 護委員会の設立などである。 この中でも医療情報の二次利用にもっとも大きな影響を与える点は、 要配慮情報の概念の導入で、 要配慮情報は明な同意なしに第三者提供することが原則禁止される。 匿名加工情報であれば同意なしの第三者提供が可能であるが、匿名加工情報を作成する時点でその 事実を公表しなければならず、また匿名加工の基準も高い。これまで簡単に匿名化と考えていた処 理も匿名加工の基準さえ満たさないことがありうる。改正個人情報保護法では4章に個人情報を取 得する事業者の責務が記載されているが、 「学術研究」であれば4章は除外される。 ただし、 「学 術研究Jとはもっぱら学術研究を主な業務とする機関かあるいは学会等で行われる学術研究に限定 され、別に定められた倫理指針に準拠することが求められる。この倫理指針も全体に見ればかなり 厳しい指針になっており、 学術研究であっても二次利用は相当困難になり、 公益的であっても学術 研究以外の二次利用は厳しく制限される。 この厳格化自体は機微な情報である医療情報の不用意な、あるいは本人が思いもよらないような 二次利用を防止するという点では、IT化が進む医療や健康管理で国民の安心感を得ることに寄与す ることが期待され、 意義が大きい。 その 一 方で医療・健康に係わる情報は当人の健康の維持回復だけに用い、 医学研究や創薬、 医療 機器あるいは新し医療技術の開発に用いることができなければ、医学・医療の発展に重大な影響を 与えることは明らかである。つまり少し長い目で見れば医学や創薬および医療機器の開発などに支 障を来し、 医療や健康管理の衰退を来しかねない。 この問題は改正個人情報保護法案の議論の時点から認知されており、個人の権利を確実に保護し た上で、 広い意味での公益的利用を促進する必要性が、主に内閣官房の健康医療戦略室を中心に議 論され、2017年4 月に「医療分野の研究開発に資するための匿名加工医療情報に関する法律」が成立 した。広い意味での公益目的の二次利用を促進するために、しっかりとした匿名加工能力を持つ法 人を認定し、 この認定機関に医療機関等から情報を第三者提供する場合、 明な同意ではなく、 丁寧 に説明した上でのオプトアウトで提供することを可とするもので、 「次世代医療基盤法Jと呼ばれ ている。 広い意味での公益性が前提ではあるものの、 患者等の権利を確実に保護し、 二次利用を促 進するという点では画期的な制度と言える。ただ実施は制定後1年以内とされており、まだこれか ら細部を詰めなければならない。 またこの法律だけで十分かどうかも検討の余地がある。 本講演では改正個人情報保護法制の概略を示した上で、次世代医療基盤法を概説し、今後の問題 点に触れたい。 3
ある実務担当者が考える ADaM ダイパーシティと未来予測 0渡辺 寿恵 (小野薬品工業株式会社) Clinical Data Interchange Standards Consortium (CDISC) Analysis Data Model (ADaM)リリ ー スから約 9 年、 ADaMへの理解の深まりやValidation Toolの普及によりCDISCI こ準拠した ADaMデ ー タ 作成が容易になりつつある。 また 2020年から義務化されるPMDAへのCDISCデ ー タ提出に向け、 各企 業、 CROでも日常的にADaMを使用するようになってきている。 このような時流の中、 SDTMと比較し て自由度の高いADaMは各企業内で独自の進化の道を歩み、多種多様な形態へと変貌していっている。 本発表では、生命の実験室「カンブリア大爆発Jの知く、不思議で奇妙な構造へと進化を遂げた ADaM の事例や来るべきTechnological Singularityで消える?かもしれないADaMプログラマ ー の視点か ら標準開発アプロ ー チやADaMの未来予測を下記の流れに沿って何となく紹介するものである。 第 I 章:増殖するADaM (枯渇するNaming Conventions) 犬繁殖した ADaM変数とその増殖原因、 課題を考察する。 第 2 章:分裂するADaM (ADaM分化:TraceabilityとAnalysis readyの民) 解析には使用しない中間デ ー タ, 集計別デ ー タ。 第 3 章:結合するADaM (巨大化するADaM : ADSL, EDSの台頭) 5 個のADaM で℃SRのTLFは網羅で、 きるのか?デ ー タの最適数について考察する。 第 4 章:変容するADaM (Therapeutic Area Standardへの拡張) Therapeutic Area Standardに掲載されているADaM構造と標準開発について考察する。 第 5 章:ADaM進化予測(General MedicineからPrecision Medicine?) 多様性は淘汰されるべきか?ある実務担当者の考えるADaM 標準開発アプロ ー チ。 以上 7
PMDA 申請電子デ ー タ提出経験談 l 。栗栖章 、 鈴木正人\福田裕章 l 1 ( MSD株式会社) 2016年 10月より医薬品医療機器総合機構( PMDA)において医薬品承認申請時の臨床試験の電子 デ ー タ提出がついに開始された. 2014年6 月に「承認申請時の電子デ ー タ提出に関する基本的考え 方についてJ (基本的通知) , 2015 年4 月に「承認申請時の電子デ ー タ提出に関する実務的事項に ついて」 (実務的通知)及び「承認申請時の電子デ ー タ提出に関する技術的ガイドについて」 (技 術ガイド) が発出されて以来, 業界では来たる提出開始までに様々な検討が行われ準備が進められ てきた. また, 通知発出後に寄せられた問い合わせ等を受け, 通知に補足した方が良い情報は「申 請電子デ ー タに関する FAQJ として公表され,提出すべきデ ー タの詳細が明らかにされてきている. しかしながら申請者を取り巻く環境は様々で,既存の社内標準システムをどのように変えていくべ きか, どのようなタイムラインで進めていくのか, どのように部署間で業務を分担し進めていくの かは, 実際に経験してみないと分からないことも少なくない. また, PMDA申請だけでなく米国食 品医薬品局(FDA)への申請を考慮に入れる場合は, 規制要件の細かい違いを認識し, 効率よく双 方の電子デ ー タを準備する必要がある. 本発表では,FDAに提出したオンコロジ ー 領域における国際共同治験の電子デ ー タをPMDAに提 出した経験を踏まえて, その事例とそこから得られた学びを紹介する. 8
多重性の調整が必要な試験を実施した際の承認申請時電子デ ー タ提出方法の検討 O ( l 大内喜海 l 、 福田裕章2 、大野浩太 3 、 浅見由美子 4 協和発酵キリン株式会社及び℃JUG-ADaM、2MSD株式会社、CJUG-ADaM、3 北海道大学病院 、 床研究開発 センタ一 、 CJUG-ADaM、 4第一 三共株式会社及ひ CJUG-ADaM) 「 臨 健康・医療戦略」における3つの 基本理念(健康長寿社会の 実現 、 経済成長への寄与、 世界へ の貢献)を実現するための戦略のlつとして、独立行政法人医薬品療機器総合機構(以下、PMDA) の強化が挙げられており、規制当局である PMDA自らが臨床デー タ等 を活用した解析や研究を推 進することが求められている。 それを受けて、平成26年6月20日に厚生労働省医薬食品局審査管 理課長より発出 された 「承認、申請時の電子デー タ提出に関する基本的考え方について(薬食審査発 0620 第6号)Jにより、 医薬品の承認申請時に臨床試験デー タの 提出が求められることになった。 同通知では、電子デー タは 「 Clinical Data Interchange Standards Consortiumの規格(以下 「 CDISC標 準 J と いう。)に準拠した形式で 提出すること」、 「解析デー タセットとして Analysis Data Model (ADaM)に基づくデー タセット 及びその定義ファイル(Define.XML等)並びに ADaM デー タセ ット作成用のプログラムを提出すること」等が申請者(製薬企業、アカデミア等)に求められてい る。 International Council for Harmonisation of Technical Requirements for Pharmaceuticals for Human U se (以下、 ICH) E9では、 臨床試験において、 主要変数が複数ある場合、試験治療聞の 多重比較、 時間に伴う繰り返し評価(中間解析)等により検定の多重性が生じる場合 、 試験全体での第一 種の 過誤を5% 以下(片側仮説の 場合は2.5%)に抑えることを求めている。 そのため 、 臨床試験のデザ イン等に応じて様々な Multiple Comparison Procedures(以下、 MCPs)を利用している。 近年、 柔軟な仮説構造に対応で きるGatekeeping procedure等が提案され 、 MCPsに関する 活発 な 議論がなされてきたものの 、それらの電子デー タ提出方法に関する議論は活発になされてこなかっ た。 そ こでCDISC、 PMDAがそれぞれ公表している 「 ADaM Implementation GuideJ、 「承認申請時 の電子デー タ提出に関する 実務的事項について/技術的ガイドについて」等の 関連資料と照らし合 わせて、多重性の調整が必要な試験 を実施した際の承認申請時電子デー タ提出方法 を検討したとこ ろ、 以下の よう な点で、電子デー タ提出方法が明確で、はないと考えられた。 • SASのプロシジャが MCPsに対応してい ない場合 ・前の 検定結果に依存して、 有意水準の配分が変わる場合 • MCPs を文章で表現することが困難な場合 本発表では、上記の 点を踏まえ て多重性の調整が必要な試験を実施した際の承認申請時電子デー タ 提出方法について検討した結果を報告する。 9
ある実務担当者が考えるADaM開発アプロ ー チと標準の紹介 0坂上 拓 、 (株式会社中外臨床研究センタ ー バイオメトリクス部デ ータサイエンスグ ル ー プ) 、 2020年からPMDAへのCDISCの標準デ ータモデ ルで、の申請電子デ ー タの提出義務化に伴い,各企 業でのCDISCへの取り組みが始まり,実務担当者のナレッジの蓄積やバリデ ー ションツ ー ル等の普 、 及で,CDISC 標準デ ー タモデ ルに準拠したデータセットを開発できるようになってきた。 標準デ ー タモデルの 一 つで,解析を目的としたデ ータモデルであるADaMは,様々な解析要件に 対応できるように, 自由度が高めに規定されている。 その高い自由度であるが故,特定のADaMを 作成するにも多くのアプロ ー チがあり, 結果的に数多くのバリエ ー ションのADaMが生まれること になる。 これらは,いずれもADaMとして誤りではないが, ADaMとして最適なものであるとの確 証も得られないのが現状である。 最適なADaMを作成していくには,作成された様々なバリエ ー シ ヨンのADaMを比較し, 良い箇所を採用し,既存の標準モデルを改変しながら標準としてブラッシ ュアップして行くしかないが,実際,社内で発生したバリエ ー ション以外を目にする機会もそれほ どない。 本発表では,実務担当者として経験した様々な問題や疑問点を元に, ADaMの開発アプロ ー チと して,作成するADaMの種類(ADSL, BDSやOCCDSとし、った標準構造のものから,ADaM OTHER やnon-ADaMと呼ばれるデ ー タセットまで)や,ADaMで、の新規変数の追加や1Gで規定されている 変数の運用, レコ ー ドの発生方法を実際のデータ構造と共に紹介する。 10
us での申請承認フ ロセスと CDISC 対応の事例 。 0伊藤雅憲 (アステラス製薬株式会社) us における感染症領域の第三相試験統計解析業務、 FDA への新薬承認申請関連業務、 アドバイザリ コミッティ関連業務の経験を通して、 申請承認プロセスとそれに伴うCDISC ・ 電子デ ータ申請業 務のプロセスについて紹介する。 本プロジェクトは2014 年に申請された。 申請パ ッケ ー ジに含まれ ー る試験概要として、 第三相試験が2本、 第二相試験が2本、 第 一 相試験がDDI、 TQT、 SAD、 MADなど合 計 42本がファイリングされた。 申請におけるCDISC 標準の対応として、 メタデ ータ/試験デ ー タの SDTMおよびADaMに関する記述であるData Definitions Document (Define.xml and PDF)が作成さ れた。 これはOpen CDISC(現 pinnacle 21) 実行でのデ ータの 一 致性の確認にも用いられた。 また、 有効’性の複雑なデ ータハンドリングのロジックは、 Supplemental data definition.pdfというもの を作成し、 ドメイン名、 変数名、 記述(ロジック)を整理した。 また、 CDISC 基準に照らし合わせ て、実際のSDTM及びADaMデ ータのすべてのドメインに関してWarningまたはErrorを検出したリスト ’ としてOpen CDISC reportを作成した。 本レポ ートは申請資料には含めないが、 Reviewer s Guide ’ にて要約された。 そのReviewer s Guideはファイリングされた臨床試験、 及び安全性併合解析そ れぞれについて作成されたFDA Reviewerのための取扱説明書で、 あり、これらは申請資料に含まれた。 ’ 事例では Reviewer s Guideは統計担当者によって作成され、 申請業務で多忙な時期にやや辛い負 荷であったことを記憶している。 当日の発表では、CDISC関連以外にも、申請後のFDAJ照会事項対応、アドバイザリ ー 会議の準備( Mock Meeting 等)と当日の対応の経験談、外部レジストリデ ータベ ー スを用いたマッチドベア解析によ 、 る申請承認プロセス、 パ ブ リケ ー ション業務と統計解析担当者の関わり、外部統計専門家とのコミ ュニケ ー ションなどの経験談についても紹介する。 11
医薬品承認申請時電子デ ー タ提出の現状について 0安藤友紀 (独立行政法人医薬品医療機器総合機構) 医薬品医療機器総合機構(PMDA)では、承認申請デ ー タを 一 層活用した承認審査や相談の質の向 上を図るため、 医薬品承認申請時に添付される臨床試験デ ー タ利用の具体的な検討を行ってきた。 電子デ ー タの受付が開始された2016年10月1日以降には、 医薬品承認申請時に実際に臨床試験の電 子デ ー タが添付される申請品目も出てきている。 申請時電子デ ー タ提出に関しては、 これまで複数の通知や技術的ガイド、「申請電子デ ー タ提出 に際して利用可能な規格 一 覧」、 「バリデ ー ションノレ ー ル一 覧」、及び「申請電子デ ー タに関する FAQJにより、提出すべきデ ー タに関する方針が示されてきている。 また、2015年より開始した申 請電子デ ー タ提出確認相談の内容や、 2016年10月1日以降の実際の電子デ ー タ受付の経験を踏まえ て、2017年2月にはFAQの追加がなされ、今後の技術的ガイドの改定も予定されている。 承認申請時 に実際に提出された臨床試験の電子デ ー タについては、承認審査のプロセスにおいて、各品目の有 効性及び安全性に関する理解や議論の補助等に実際に用いられてきている。 本発表では、 これまでの申請時電子デ ー タ提出の状況を説明するとともに、受け入れの経験に基 づく留意点等を紹介する。 また、PMDAにおける電子デ ー タの使用状況について説明する。 12
’ 第5回Let sデ ー タ分析コンテストの 規定課題のSASプログラム 周防 節雄 兵庫県立大学・名誉教授 Exemplary SAS Programs to Solve the Compulsory Exercises for the 5th Micro Data Competition in Japan SAS Users Forum 2017 Setsuo Suoh Professor Emeritus of the University of Hyogo 要旨 ’ SAS ユ ー ザ ー 総会 2017 における rLet s デ ー タ分析第5回ミクロデ ー タ分析コンテスト」の規定 課題について、出題者の立場から、模範解答の SAS プログラムを例示する。 キーワード 全国消費実態調査、匿名デ ー 夕、新擬似ミクロデ ー 夕、集計乗率、proc 仕問、 ‘ 。 proc tabulate、 proc sgplot、proc univariate、SG フ 口 、ンジャ、プログ ラミング・スタイル、ジニ係数、 ロレンツ曲線、 1. はじめに 独立行政法人統計センタ ー は、平成 16 年の全国消費実態調査のミクロデ ー タから教育目的で 教育用擬似ミクロデ ー タを作成し、公的ミクロデ ー タの利用実習用に提供してきた。SAS ユ ー ザ ー 総会では、20 日年から 2016 年まで、この擬似ミクロデ ー タを使用してデ ー タコンペを実施してきた が、2016 年度末で、このデ ー タの提供が中止になった。そこで、今年 に入って急逮「新擬似ミクロデ ー タ」を SAS ユ ー ザ ー 会世話人有志が集まり、2004 年全国消費実態調査の匿名デ ー タを使って、 今年のデ ー タコンペ用の「新」擬似ミクロデ ータ lを作成した。 コンべでは、この新擬似ミクロデ ー タを使った規定課題 (付録3)と自由課題から成り、規定課題 は参加者全員に課せられる。本稿では、この規定問題のためのSASプログラムを例示する。出力 、 結果(付録2)にある図表のタイトルはプログラムの title 文と対応しているので、各プログ ラムの処理 プロセスを追っていける。 2. 新擬似ミクロデータの概要 、 作成した新擬似ミクロデ ー タと符号表(メタデ ー タ)は、ウェブ 上にアッブロ ー ドしている 2 0 新擬似ミクロデ ー タは 69,131 オブザベ ー ション(世帯)から成る。変数としては、①世帯識別番号 (変数名 No=l ~ 69,131)、②14 個の世帯属性(変数名 XOl ~ Xl4)と集計乗率 (変数名 Weight) (表 1) 3、および、③ 203 個の収支項目(変数名 YOOl ~ Y203) (表 2 )がある。この両表の元ファイル 1 この新擬似ミクロデ ー タの作成経緯とプロセスについては、本論文集に収録の高橋他( 2017 )を参照されたい。 2 SASデ ー タセット http:f/mighty.gk.u·hyogo.ac.jp/confidential/Zensho2004GijiMicroData.zip http://mighty.gk.u·hyogo.ac.jp/confidential/Zensho2004GijiMicroDataCSV.zip csv形式 3 この他に、調査年を意味する変数 Year があるが、現在の新擬似ミクロデ ー タでは値は全て「 2004J である。これは、将 来、他の調査年次の擬似ミクロデ ー タ化も予定しているからである。 15
、 、 (メタデ ータ)は、ウェブ にアッブロー ド した符号表「全消2004年新擬似ミクロデ ータ符号表.xlsxJに 収録されている。 3. 規定課題 SAS プログラム模範解答プログラムの実行手順 規定課題のために、今回「作成」したSASプログラム(付録1)は、以下の①~⑩であるが、⑥のプ 、 ログラムは③のSASプログ ラムが自動作成した。 ①set_environment.sas環境設定:SASを立ち上げたときに安いつも女最初に実行する。 ②setALL.sas → ③④⑤ が引ncludeを使って自動的に実行される。 ③createFormatNewZenshoGUi2004.sas→ 8動学成→⑥1procFormatNewZenshoGiji2004.sas ④createtLabelNewZenshoGiji2004 泊 S → El6/J('!=J成→⑪ labe/NewZenshoGiii2004. txt ⑤setLABELweight 泊 S → ④の結果を使って、変数ラベルと10万世帯比weight変数を付加 ⑥procFormatNewZenshoGiji2004.sas → 変数formatが読み込まれる。 ⑦kitei2017.sas規定課題の第1問~第4聞を解答する。 女規定問題: 第5問ジニ係数計算とロレンツ曲線描画 ⑧make_weighted_dataX.sas → ” ’p 集計乗率weight変数4 を使って膨らませたSASデータセット reconstructを作成 ⑨gini_lorenz2017規定課題_sas_forum_macro.sas ⑩GiniLorenz2017.sas → ジニ係数とロレンツ曲線を表示5 " " → SASデ ータセット reconstructを家族分類別に分割した後で、 家族分類毎に、⑨を繰り返し自動実行して、ジニ係数とロレンツ曲線表示。 実行手順は以下の通り。 ・初めて実行する時は、①②@湿遅過のJi慎に実行する。 .閉じSASのセッションで、再実行の際は、立遅過の!|慎に実行する。 esAsの新しいセッションで再実行する時は、①@湿遅過のJi頂に実行する。 変数フォ ーマットの作成(プログラム⑤)と変数ラベル文(テキストファイル⑪)は、EXCELファイルの 符号表をSASプログラムに読ませることで、全自動で処理をした。 4. SASプログラミング・スタイル 本稿で示した解答例は一 例であり、もちろん他のやり方もいろいろある。この解答例のプログラミ ング・スタイルは、ここ数年来、このユ ー ザ ー 総会でも 一 貫して採用してし、る方式である。 、 SASのプログラムを書く際には、通常は人聞のプログラマ ー が全てのSASコ ー ド を書いている。 、 複雑なアルゴリズムをプログラム化するには、プログ ラマ ー 自身でやらざるを得ないが、非常に単純 ” ” だが量が多くて機械的なコ ー ド(いわゆる、 dirty work ) の場合は、できれば「自動化」したい。例 えば、大量の変数のproc formatや label文がそれに相当する。時間をかければもちろん出来るが、 4 集計乗率については、 周防(2016)参照 5 ジニ係数とロレンツ曲線のSASプログラムについては、周防(2008)参照。そこに掲載の付録 3 のプログラムを規定問題 用に一 部書き換えて、プログラム⑨を作成した。 16
手作業でした場合、ケアレスミスが発生しやすい。今回の規定課題でも、proc format や label 文の作 成は、エクセル形式の符号表ファイル(メタデー タ)をSASプログラムに読ませることによって行った。 もう 一つ重要なプログラミング ・ スタイルは、ひとつのプログラムで全ての処理をしなし、ことである。 つまり、全体の作業をしてつかのまとまった処理に分割してから、 それぞれを個別のSASプログラ ムにする。SASプログラムには、メインプログラムとサブプログラムの概念が基本的にはなし九異な るプログラムの聞は、SAS デー タセットで連携されている。第 3 節で示したプログラム聞の連携は そ の例である。この方式のメリットは、パ グが発生したときに、発生箇所を直ぐに発見できるので、容易 、 、 に対処できることである。デ メリットとしては、プログ ラムの数が増えて、混乱する可能性がある。その 対策としては、 第 3 節で示すように、%include を使って、いくつかの 一 連のプログラムが正しし、順序 で実行されるように、風目敷に包むような形で、もうひとつ別の上位プログラムで包んでしまうのが 便利である。第 3 節の②のプログラム setALL.sas が その上位プログラムに相当する。その 上で、第 3節の終わりにある三つの.で示すように、異なるシチュ エー ションに応じて、実行する順番をきち んと文書化しておく。この三つの実行手順を更に、それぞれ%include を使って、風目敷で包むのも 良い。 5. まとめ 今回のコンテストでも、 集計乗率を使って、proc freq や proc tabulate をうまく使えるかが試され た。集計用乗率とし、う用語に余りなじみのないユー ザー もしもと,思うが、公的ミクロデー タの利用で は必ず出てくる概念である。公的ミクロデー タの分析では、初期段階で分布状況の把握のために、 これらのプロシジャを使って度数分布を確認することがよく行われる。 グラフの出力も求められたが、こちらは、JMPを使う方が手軽だと感じた。筆者は、公的ミクロデ ー タを主に利用する関係上、普段余りSASで特殊なグラフを描く必要性が少ないので、可能なら ば、他のソフト、例えば EXCEL などでできる範囲内でお茶を濁すことが多い。昨年も今年も、規定 課題のグラフ作成には SGPLOT を使ってみたが、細かい微調整ができずにいて、正直なところ、自 分でもまだ十分に使し、こなせてし、るとは言えない。SGPLOT は数年前から利用可能になった SG プ ロシジャ(Statistical Graphics Procedures)7に含まれるプロシジャであり、SAS/GRAPH とは別物であ る。上手に使えば、便利なツー ルになる。 参考文献 1. 周防節雄(2008)ジニ係数の計算とロレンツ曲線を描くSASプログラム、『SAS ユ ー ザー 総会2008 論文集』、ppl39-146 2. 高浪洋平(2011)SG プロシジャと GTL によるグラフの作成と ODS PDF による統合解析帳票の 作成~TQT 試験における活用事例~、『SAS ユ ー ザー 総会2011論文集』、pp201-219 3. 周防節雄(2015)SAS プログラムで関数とサブル ー ティンを作成する方法、『SAS ユ ー ザ ー 総会 20 日論文集』、pp389-398 ’ 4. 周防節雄(2016) SAS ユ ー ザ ー 総会2016における「Let s デー タ分析第4回ミクロデー タ分析コ ー ンテスト」の規定課題の SAS プログラム解説、『SAS ユ ザー 総会2016論文集』、pp330-347 6数年前からSASでも関数や直I]プログラムをユ ー ザ ー 自身が定義出来るようにはなった(周防(2015))。ただ、いわゆるメイ ンプログラムという概念はSASには馴染まない。 7本総会でもこれまでに発表事例(高浪2011)がいくつかある。 17
表1世帯属性と集計乗率 ・ data=formatNewZenshoGiji2004符号表 V meaning varNam mm nt OBS F1 1 世帯に関する項目の変数名及び符号 2 .符号肉容 変数名 項目名 Year 3 .全国消費実態調査の調査年(西暦) 調査年 N 4 レコード一連番号 13大都市圏 X01 5 大都市圏の別 。その他 8 X02 1勤労者 7 世帯区分 2勤労者以外 8 3無職 1 ,人 X03 10 世帯人員 22人 11 {住居と生計を共にしている世帯員数) 33人 12 44人 13 5 5人以上 14 X04 00人 15 就業人員 1 ,人 18 (就業している世帯員数) 22人 17 33人以上 18 X05 1木造(防火木造含む} 1 住居の僧造 20 2木造(防火木造含む}以外 X06 1一戸建 21 住居の建て方 22 2 一 戸建以外 X07 1持ち家 23 住居の所有 関係 24 2持ち家以外 XOB 1男 25 世帯主の性別 28 2女 X09 5 24怠以下 27 世俗主の年齢 6 25~ 29歳 28 7 30~34歳 29 8 35-39歳 30 31 9 40~44歳 32 10 45~49歳 33 11 50~ 54怠 34 12 55~ 59銭 35 13 60-64愈 38 14 65~69怠 37 15 70~ 74儀 38 16 75歳以上 X10 1民営・ 自営1~ 4人 39 企業区分 ・ 従業者規模 2民営 ・ 自営5~ 29人 40 3民営・ 自営30~ 499人 41 42 4民営・ 自営500人以上 43 5官公 44 B無職 X11 45 1単身世帯 家族分緩 48 2夫婦のみ世帯 47 3二世代世帯 48 4二世代(ひとり貌)世智 49 5 -世代世帯 50 6その他の世帯 1無 51 X12 来就学児の有無 52 2有 X13 1無 53 学校に通う世帯員の有無 54 2有 X14 55 00人 65愈以上の世帯員数 1 ,人 58 57 22人以上 Weight 58 集計用乗率 。。 ・ 。 ’ ’ プログラム③createFormatNewZenshoGiji2004.sasで作成したi 18
表2収支項目 一 覧 data=labelNewZenshoGiji2004 符号表 OBS F1 1 2 3 4 5 6 224 d a a a a‘ プログラム④c:.e臼teLabelNewZenshoGiji2004.sasで作成した 19 規定課題 で使 われ る。 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 太枠 で囲 った 変数 が 13 14 15 16 varName label F4 変数名 一 覧 変数名 項目名 。世帯事項 Year 調査年 No レコ ー ド連番号 XOl 大都市圏の別 中略 XOB 世帯主の性別 X09 世帯主の年齢 XlO 企業区分従業者規模 Xll 家族分類 中略 Weight 集計用乗率 O収支項目 YOO! {単位:万円) 年間収入 Y002 (単位円)以下同様 収入総額 Y003 実収入 Y004 経常収入 Y005 勤め先収入 Y006 世帯主の勤め先収入 Y007 世繕主の配偶者の勤め先収入 YOOB 他の世帯員の勤め先収入 Y009 事業・内職収入 Y010 農林漁業収入 Y011 家賃収入 Y012 他の事業収入 Y013 内職収入 Y014 本業以外の勤め先・事業・内戦収入 Y015 他の経常収入 Y016 財産収入 Y017 社会保障給付 Y018 公的年金給付 Y019 他の社会保障給付 Y020 仕送り金(収入) Y021 特別収入 Y022 受贈金 Y023 その他の特別収入 Y024 実収入以外の収入 Y025 預貯金引出 Y026 保険取金 Y027 個人・企業年金保検取金 Y028 他の保険取金 Y029 有価wE券売却 Y030 株式売却 Y031 他の有価陸券売却 Y032 土地家屋借入金 Y033 他の借入金 Y034 分割払・一括払購入借入金 Y035 財産売却 Y036 その他の実収入以外の収入 Y037 繰入金 Y038 支出総額 Y039 実支出 Y040 消費支出 Y041 食料 Y042 穀類 Y043 米 パン Y044 Y045 めん類 Y046 他の穀類 中略 IY203 |繰越金 I --・ 』晶-·』晶 ‘・・・ ー.轟轟轟轟・・・ ‘・・・・・・ ‘・........ーーーー畠畠---·』ー-·‘-----·‘-·“‘・ー・・ ・ー--·‘-·‘ーーー-·‘ー----・・ー
付録1 SASプログラム 一 覧
①set environment.sas
/ホset.environmentsas *I
制et drive=F;本脅外付けHDのドライブ名を指定する.
本,t全消2004年新緩似ミクロデータのSASデータセット、*SASプログラム‘安符号衰の保存先のパスを指定;
制et pa出=軍全消¥擬似ミクロ作成プロジェクト¥貴新情報革最新情報¥全消2004年新擬似ミクロデータSAS版;
制et pi抗hSASprogram=¥脅X60s(2014-8-9)草SAS_Forum草2017平SASprogrヨm;
百let岡山Fugohy。=¥全消平鍵似ミクロ作成プロジェクト¥*新情報車畳新情報¥全消2004年新擬似ミクロデータSAS版;
制et fugohyoEXCEL=会消2004年新擬似ミクロデータ符号表ぷlsx; *女符号表ヱクセルファイル名を指定する;
"
"
libname newZ 晶創刊:&p此h ;*脅この行はそのままにしてお〈;
②se凶LL.s 出
/キsetALLsas *I *女3つのSAS プログラムを実行;
%include "&drive:&阿thSASprogram¥仰向FormatNewZenshoG[ii2004.sas" *③;
"
%include &創刊:&pathSASprogram¥cre拘凶belNewZenshoG[ii2004.sas"; *④;
"
%include &耐ve:&岡山SASpro胴m¥set凶BELweightsas";
*⑤;
③createFormatNewZenshoGiji2004.sas
/本C聞a嶋form鉱NewZenshoGili2004.sas *I 本*新擬似ミクロデータ2004用proc formatを自動作成する;
filename out1 "&合同:¥*X60s(2014-8-9)¥SAS_Forum事2017草SASprog聞m均rocFormatNewZenshoGUi2004.sas";
。
。同
proc imp
d抗afile="&dri.':'.!:&p此hFugohyo草&fugohy EXCEL"
out=form抗Ne岬ZenshoGjji2004 (問name=(位=comment偲司arName伺=V f5=meaning))
開place;
’
sheet= 世帯事項整形 ・;ge加ames=no;
n』n;
“
proc p吋nt伽凶,=formatNewZenshoGjji2004;出e w由旬=f。m抗NewZenshoGjji2004 符号表 ;run;
da匂_NULL_; set formatNewZenshoGjji2004:
file out1; **proc formatの自動作成*;
len民h buff$ 100;
百_N_= 1 then put ’I* procFormatNewZenshoGjji2004.sas *I・;
ー
ションはスキップする;
げ_N_<=4 then開加m:*最初の4オフザペ
”
”
’
げvarName= Weight then do; putγ/ run;'; re加m; end;*最後の集計用乗率は無視する;
=
汗_N_ 5出en put "proc format;";
H 円;*format:’ ・名の末尾が数字は反則なので.Fを末尾に付す;
f。rmatname=compress(varName
ff
・
’
汗varName NE ff then putγ
I '*' comment ; / value forma旬、ame;
ff
=
bu仔=Vll' "'IIVfl':'llmeaningll' '; buff=kcompress(buff); put buff;
run;
④ぽeatetLめe1NewZenshoGiji2004.sas
I* setLABELweightsas *I **全消2004年新緩似ミクロデータ:データコンペ規定課題用*データセット脅段定;
*育変数ラベル付加、及び、10万世帯比川eight変数を作成して、新データセット女NZ2004*を新規作成;
libname newZ ff&耐ive:企path";
伽泊newZ.NZ2004; set new,乞zensho2004gjji『nicro end=。 wari;
ff
'
首include w制出血:¥&附hSASprogram草labelNewZensh。切i四04.txt ;事変数凶BEL 付与f
cnt=l; *集計乗率利用時に使用する変銑
sum_weiゆt+weight; *安10万比の集計乗率を計算する準備:
ff
ff
汗。wari then call symputx( sum_weight , sum」weight);**集計乗車の合計値をmacro変数sum_weightlこ段定:
run;
ff
%put "&sum」weight ; 事責macro変数sum,」weightの値の纏恕;
d坑a newZ.NZ2004; set newZ.NZ2004 end=。 wari; drop total;
weigl司t1OOOOO=weight*100000/&剖m_削ight;*肯10万比の集計乗率を計算;
”
恒匂l+weight100000,百owari then put ff検算:weight100000の合計= 旬凶,
事*LOG画面出力結果→検算・ weight100000の合計=99999.999999;
事責10万比で計算の際は、集計乗率変数weight100000を使えIi簡単;
run;**以後、規定録題用プログラム作成にはSASデータセット『newZ.NZ2004』を使用する:
20
⑤setLABELweight.sas I* setLABELweight. sas *I本安全消2004年新擬似ミクロデ一 世:デ - 告コンペ規定課題用安デ-脅セット肯設定, *脅変数ラベル付加、 及び 、 10万世帯比weight変数を作成して、 新デ - �セット合NZ2004*を新規作成, Iibname ” ” newZ &drive:-¥全消¥擬似ミクロ作成プロジェヴト¥肯新情報半最新情報半金消2004年新録似ミクロデ- :$!SAS版 ; data newZ. NZ2004; set newZ. zensho2004gi j imicro end=owari ; " ” 引ncl ude 品drive:渦pathSASprogram\l Iabe INewZenshoGi j i2004. txt ,事変数LABEL付与. cnt=l; *集計乗率利用時に使用する変数, sum_weight+weight; *脅10万比の集計乗率を計算する準備, ’' if owari then ca 11 symputx (、um_weight , sum_weight) . *肯集計乗率の合計値をmacro変数sum_weightに設定; run: ” %put "&sum weight ;*脅macro変数sum weightの値の確認; data newZ.NZ2004; set newZ. NZ2004 end=owar l drop tota I. weight1OOOOO=wei gh快100000/&sum_weight; *肯10万比の集計乗率を計算; ” total+weightlOOOOO; if owari then put n検算 weight100000の合計= total. *肯LOG函函出力結果→検算:weight100000の合計= 99999. 999999; *肯10万比で計算の際は、 集計乗率変数weight100000を使えば簡単, run; **以後 、 規定課題用プログラム作成にはSASヂ 一 宮セット『newZ.NZ2004Jを使用する. 目 ⑥procFormatNewZenshoGiji2004.sas (自動作成された) I* procFormatNewZenshoGiji2004. sas *I proc format: *大都市圏の別 va I ue XOlF ” ” 1= 1 3大都市圏 ” ” O= 0:その他 *住居の所有関係; value X07F ” ” ・ 1= 1 持ち家 ” ” 2= 2:持ち家以外 *世帯区分; value X02F ” 1="1:勤労者 ” ” 2= 2:勤労者以外 ” ” 3= 3:無職 *世繕主の性別 value XOSF ” ” 1= 1:男 ” ” 女 2= 2: ・ *世帯人員 value X03F ” 1= 1 ・ 1人 ” ” 2="2; 2人 ” ” 3= 3; 3人 ” 4="4; 4人 ” ” 目 5 5人以上 5= *就業人員 value X04F O= ” 0・ 0人 M ” ” 1= 1; 1人 ” ” 2= 2:2人 ” ” 目 3= 3 3人以上 *住居の構造: value X05F ’ ” 1= 1:木造(防火木造含むγ ” ” 2= 2:木造(防火木造含む)以外 *住居の建て方 value X06F ” ” 1= 1: 一 戸建 ” ” 一 2= 2: 戸建以外 *世繕主の年齢, value X09F ” ” 5= 5:24歳以下 ” ” 6= 6:25~29歳 H ” 7= 7:30~34歳 ” ” 8= 8:35~39歳 ” ” 9= 9:40~44歳 ” ” 10= 10:45~49歳 ” ” 11= 11:50~54歳 ” ” ・ 12= 12: 55~59歳 ” ” 13= 13:60~64歳 ” ” 14= 14:65~69歳 ” ” : 15= 15 目70~74歳 ” ” ・ 16= 16 : 75歳以上 *企業区分・従業者規模 value XlOF ” ” 1= 1:民営・自営1~4人 ” ” 2= 2:民営・自営5~29人 ” ” 3= 3民営・自営30~499人 ” 4="4:民営・自営500人以上 ” ” 5= 5:官公 ” 6="6:・ 無職 21 *家族分類 va I ue X11F ” 1="1単身世得 ” 2="2:夫婦のみ世帯 ” ” 3= 3:二世代世帯 ” ” 4= 4二世代(ひとり親)世待 ” 5="5:三世代世帯 ” ” 6= 6その他の世帯 *未就学児の有無- value X12F ” ” ・ 1= 1 無 ” ” 2= 2:有 本学校に通う世帯員の有無 value X13F ” ” 1= 1 .無 ” ” 2= 2:有 *65歳以上の世帯員数: value X14F ” O= ” 0・ 0人 ” ” 1= 1; 1人 ” ・ 2="2: 2人以上 run:
⑦kitei2017 .sas :規定課題の問1 ~ 問4用のプログラム i I* kitei2017.sas *I options MPRINT; *女set environment.sasを実行済みか確認せよ;options nocenter; data kitei; set newZ.NZ2004; 作 * 業用データセット『kitei』を作成; rename X02=HHkt』bun XOB=sex X09=HHage X11=HHkind ;*使う変数を間違わないように, * 帯区分 世帯主性別世帯主年齢 世帯分類; 世 run; * 規定課題1女; 世 * 帯主の年齢階層(X09) x世帯区分(X02); 貴 proc freq data=kitei. tables HHageキHHkt』bun/ norow nocol nopercent format=comma7.0; label; format HHage X09F.; format HHkubun X02F.. ” ” title 脅表1左半分.集計乗率なし ;run; proc freq data=kitei; tables HHage*HHkubun/ norow nocol nopercent format=comma7.0; label; format HHage X09F.; format HHkubun X02F.; ” ” title *表1右半分.集計乗率あり , weight weightlOOOOO; *女10万比乗率使用;run: 本女規定課題2女,* 世帯分類似11)×世帯区分(X02) x世帯主の性jjlJ (XOB); ” ” title ①表2:整形前 ; proc tabulate data=kitei format=comma7.0; class HHkind HHkubun sex; var cnt/ weight=weightlOOOOO; *安10万比乗率使用. tab I e (HHkind ALL). (HHkubun ALL)*(sex ALL)判nt;卒女defaultでSUMが自動指定される, format HHkind Xl1F.; format HHkubun X02F.; format sex XOBF.; run; ” ” title 女①表2:整形後 ; proc tabulate data=kitei format=comma7.0; class HHkind HHkubun sex; var cnt/ weight=weightlOOOOO; *安10万比乗率使用. ” ” table (HHkind ALL= 計 ), ” ” 川’ ” ” " ’"' ’ (HHkubun= ALL= 計 )旬nt= ALL= 計 )*(sex= *SUM= ぺ format HHkind Xl1F.; format HHkubun X02F.; format sex XOBF.; run; H ” ” title 女①表3 weight100000 ; data TB3 (keep=Y044 log10Y044 weight100000); set kitei; log10Y044=1og10(Y044+1); run; proc univariate data=TB3; var Y044 log10Y044: パ * ン支出金額; 指定できる???; weight weightlOOOOO; 四 * 分位点だけ指定できる肯?平均値だけ ’ " Y044= パン支出金額(円γ , label ” ” label log10Y044= 1を加えた金額の常用対数(円) ; *format指定できる???小数点第3位まで; run. ” ” title 女設問3:箱ひげ図 ; proc sgplot data=TB3; HBOX Y044/ weight=weight100000 BOXWIDTH=0.2 meanattrs=(color=black symbol=plus); ” label Y044=勺tン支出 ; run. ” ” tit I e 女設問3:ヒストグラム ; data TB3; set TB3; I oglOY044= I oglO(sum(Y044, 1)); run; proc sgplot data=TB3; histogram log10Y044/ weight=weight100000 ; run; quit; 22 (次頁に続く)
” ” title 女設問4:表4 weight100000 ; 首macro ratio(No); if Y042 NE O then r品No=Y&No/Y042キ 100; else r&No=.: ; %mend; *女l 0値は欠損値に設定安. data TB4(keep=Y042-Y046 weight weight100000 HHkubun HHkind diff r042-r046 cnt): set kitei: ” ” diff=Y042-sum(of Y043-Y046): label diff= 穀類合計との差 ;*データ確認,計算には不要, 首ratio(042)唱ratio(043)目ratio(044)目ratio(045)拡ratio(046) run: ” proc print data=TB4 (obs=20); title ndata=TB4 (obs=20) ,run. ” ” title 脅設問4:①表4:整形前 , proc tabulate data= TB4: var r042-r046 cnt / weight=weight100000: class HHkubun HHkind: tab I e (HHkubun ALL) (HHkind ALL). cnt (r043-r046 r042)*MEAN: run. ” ” title 脅設問4:①脅表4:整形後 ; proc tabulate data= TB4 out=table4: var r042-r046 cnt / weight=weight100000: class HHkubun HHkind: tab I e (HHkubun ALL) (HHkind ALL), ”” ” n cnt= N *SUM= *F =comma7.0 ” (r043= 米略、F=5. 1 ” r044= パン弘、F =5. 1 ” r045= めん類弘、F=5. 1 ” r046= 他の麺話、F=5.1 ” … r042= 全体、F=5.1)*MEAN= ; ” " keylabel ALL= 全体 ; format HHkind X11F.: format HHkubun X02F.: run. ” proc print data=table4 (obs= 50); title "data=table4(1) :run: data tab I e4: set tab I e4: if HHkind NE . : run: ” proc print data=table4: title "data=table4 ;run: proc transpose data=table4 out=transTB4: var r043_Mean r044_Mean r045 Mean r046_Mean: by HHkind: 「un. ” proc print data=transTB4: title "data=transTB4転置後 ;run: data transTB4: set transTB4: by HHkind: No+1: if No=5 then No= l: output: run, ” proc print data=transTB4: title "data=transTB4変数No付加 ;run: proc format;*主食; value SHUSHOKU ” ” 1= 1 .米 w ” 2= 2:パン ” 3= "3:めん類 ” 4= "4:他の短: : run. ” ” title 脅設問4:穀類の構成比の帯グラフ , proc sgplot data=TRANSTB4: hbar HHkind / group=No response=GOL1 stat=sum seglabel seglabelfitpolicy=NOGLIP: format No SHUSHOKU. format GOL1 F5.1: ” ” I abe I GOL1= 穀類合計(100唱) ; run: quit: *女設問5:ジニ係数とロレンツ曲線は別プログラムで処理する; 23
③make_weighted_datasetX.sas e !集計乗率を考慮してオブサべーションを膨らませ、かっ、 j必要な変数だけから成るデータセットを作成する。 、 I* make_weighted_dataset.sas *I options nocenteπ ” ’ *Don t forget to run et_environment.sas for the 2nd macro specification below; *Specify the following four macro variables; *(1)d試aset name; %let dataset= NZ2004; *(2)path for (1)dataset;制et libname= &d巾e ・:&path; *L岡田this as比is; *(3)匂沼津t va巾ble; 制et va仁name= Y001; *年間収入(単位:万円); *(4)weight va吋able; 弘let weight戸weight; libname gini &libname ; proc summary da匂=gini.&da泊set; OU句ut out= minmax(keep=_stat_ &岬·eight); var &weight; run; proc print data= minmax; title ηnin and max of &weight(1)"; run; proc transpose data= minmax out=xminmax(keep=COL2 CοL3 rename= (COL2=min COL3=max)); run; proc print data=xminmax; title 勺nin and max of &weight(2)"; run; da泊 gini; merge gini.&dataset xminmax; retain xmin; げn =1 then xmin= min· obs no=int(&weight/xmin*10);吋膨らませるオブザベーンョンの数を計算; total_obs+obs_no; n』 ff ” proc print data=gini(obs= 100); title "gini(1) ;run; data _NULL_;/吋ata total_obs:*/ set gini end=final: if final then put total_obs= ;本オブザベーシヨン数の確認; n』n ・ data reconstruct; ke叩x11 &var_name repeat: *家族分類別、年間収入(単位:万円)、複製個数; set grni: do repeat=1 to obs_no; output; end; n』n: proc print data=reconstruct(obs=100): ” title "data=recons廿uct(obs=100) ;run: 24 i
⑨gini_lorenz2017規定課題_sas_forum_macro.sas !三三億数主計算1:λ旦!".:;て:�曲.畿を{生l図土2.. ] I* gini_lorenz2017規定課題_sas_forum_macro. sas *I options nocenter: . *ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー司ーー四四回ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー---ーーー 傘,ft"make_weighted_dataset.sas ” の実行直後に、同じセッションで実行する; *デ ー タセット名と変数名を指定して下さい。; *SAS dataset名;首let dataset=&ds: I**Iibname ; 唱let Iibname=品drive:・品path;本/ ;略Iet var_name=YOOl ; 本変数名 ホーーーーーーーーーーーーーー一一一一一ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー *・アウトプット画面にgini係数だけを表示したい場合は、 次のmacro変数commentlこ『*Jを指定して下さい。 ・計算経過も表示したい場合は半角ブランクを指定して下さい。 引et comment= *; *ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー. /キIibname gin l ” ” &Iibname ;*/ data originaI; keep &var_name: set work.&dataset: rename &var name=income: run. 注:周防(…付問 | プログラムを使用した。 | I* Calculate gine coefficient *I proc sort data =original; by income: run: &comment.proc print: titl e ” ” (1)originaI ;品comment.run: data income(keep=income cumm_income) cumm_inco冊e(keep=cumm_ income rename=(cur『IF『1_income=totaI income)); set original end=last: if n =1 then do; save income=income: income=O: cumm income=O; output income. 1ncome=save_1ncome. ” ” end: I* Add income=O on top of dataset ” INCOME ” */ cumm income+income: output income: if last then output cumm_income: run. ” ” &comr『1ent.proc print data=income; titIe (2)income ;品comment. run; ” ” 品comment.proc print data =cumm_income: title (3)cumm_income ;&comment.run: data standard_cummーincome: drop income: merge income cumm income. run. 品comment.proc print data=standard_cumm_income: title 品comment. run: ” (4)standard_cumm_income(1)"; data standard cumm income: keep standard_cummーincome: set: retain xtotal_income: if n_=1 then xtotaI income= totaIーI ncome. standard_cuf『1rrしincome=cumm_income/xtota |ーincome: run: 25 (次頁に続く)
” &co剛ent.proc print; title "(4)standard_cumm_income(2) ;&comment.run; data trapezium; keep shorter standard_cumm_income; rename standard_cumm_income=longer; set; retain shorter O; output; ” ” shorter=standard_cumm_income; /•To let "longer" to be shorter for next obs.•/ run. 品co胴ent.proc print; title "(5)trapezium"; &comment.run; proc datasets library=work; contents data=original out=no_of_obs(keep=nobs) noprint; run; I* To count the number of observations in the dataset "original".*/ " 品comment.proc print data=no_of_obs; title "(6)no_of_obs ;品。omment. run; data gini; •keep shorter I onger tota I _no under_bow tota I _under_bow bow gini; keep gini; merge trapezium no_of_obs end=last; retain total_no; if _n_=1 then total_no=nobs: under_bow=(shorter+longer)•(1/total_no)/2: total_under_bow+under_bow; if last then do: bow=0.5-total_under_bow: gini=bow•2: output; * Make this OUTPUT valid, if you want only gini: end: run. proc print data=gini: ’ ’ title "(7)gini: variable gini is the gini coefficient."; " title2 家族分類:品No": format gini F4.2: run: /事Draw Lorentz Curve •I data lorenz: keep standard_cumm_income diagonal n: retain total_no: rename standard_cumm_income=&var_name; /削『1come ー〉品var_name•/ 冊erge standard_cumm_income no_of_obs: if _n_= 1 then total_no=nobs: n=(_n_ー1)/total_no: diagonal=n: I* To draw a diagonal I ine •/ run; " 晶comment.proc print: title "(S)lorenz ;品comment. run: goptions reset=al I htext=0.5cm vsize=Scm hsize=Scm: symbo I i=sp I ine f=xswiss height=1; /傘i= j oin or sp I ine•/ axis1 length=4.5cm label=(height=0.3cm f=simplex) value=(height=0.3cm f=simplex) offset=(O,O): axis2 length=4.5cm label=(height=0.3cm f=simplex) value=(height=0.3cm f=simplex) offset=(O,O); ods I isting close: ods rtf fi I e="Lorenz品No..rtf"; proc gplot: plot &var_name判1 diagonal•n / overlay haxis=axis1 vaxis=axis2: title "Lorenz Curve:&No": run; quit: ods rtf close: ods I isting; 26
⑮GiniLorenz2017.sas I* GiniLorenz2017.sas *I **gini係数の計算とLo問nz曲線の作図; ” キデータセッド陪cons·加。t を家族分類毎のデータセット(D1~D6)(こ分割する; 覧macro divide(No); da匂d&No ; set reconstruct;汗X11=&No; run;首mend; 也macro repeat;也do No=1 %to 6;%divide(&No);%end;首mend; 也陪pe抗; *貴家族分類1~6毎!こ、gini係数の計算とLorenz曲線の作図; 百macro GiniLorenz(No); %let ds=d&No ・ ” 知nclude &drive:砧pa出SASprog問m¥gini_lo問nz2017規定課題_sas.f_orumτmacro.sas"; %mend; 首GiniLorenz(1) 弛GiniLo問nz(2) 首GiniLo問nz(3) 首GiniLorenz(4) 也GiniLorenz(5) 也GiniLorenz(6) 、 *安全ての家族分類のgini係数の計算とLorenz曲線の作図; %let No=全体;%let ds=reconstruct; 首include drive:¥&pathSASprogram¥gini_lorenz2017規定課題Lsas_forum_macro.阻止 ⑪labelN ewZenshoGiji2004. txt i プログラム④createtLabe!NewZenshoGiji2004.sasが作成したラベル文。 j プログラム⑤setLABELwei耳ht.sasの中でラベル文として挿入される。 " " label Year = 調査年 ; " " label X01 = 大都市圏の別 ; " " la凶X02 = 世帯区分 ; " " label X03 = 世帯人員 ; " " label X04 = 就業人員 ; " label X05 = 住居の構造·: " " label X06 = 住居の建て方 ; " label X07♂住居の所有関係 ; " ” label XOB = 世帯主の性別 ; " " label X09 = 世帯主の年齢 ; ” " label X10 = 企業区分・従業者規模 , ” “ label X11 = 家族分類 ; " ” label X12 = 未就学児の有無 ; " " label X13 = 学校に通う世帯員の有無 ; " ” label X14 = 65歳以上の世帯員数 ; " label Y001 = 年間収入勺 ” " label Y002 = 収入総額 ; " " 凶el Y003 = 実収入 ; ” " label Y004 = 経常収入 ; 中略 " " label Y013 = 肉織収入 ; " ” label Y014 = 本業以外の勤め先・事業・肉職収入 ; " ” label Y015 = 他の経常収入 ; ” ” label Y016 = 財産収入 ; 中略 " label Y043よ米 ; " ’ label Y044 = パン ・ ” " label Y045 = めん類 ; ” " l必el Y046 = 他の穀類 ; ” " label Y047 = 魚介類 ; ” " label Y048 = 生鮮魚介 ; 中略 ” label Y056♂牛乳 ; ” " la凶Y057 = 乳製品 ; ” label Y058 = !if.I"; 中略 ” label Yl 32 ="(特掲)ガソリン ; ” label Y133 = (特掲)自動車整備費勺 ” " label Y134 = (特掲)自動車保険料 ; " label Y135♂通信 ; ” label Y136 =吋特掲)移動電話通信料 ; ” " label Y137 = 教育 ; " " label Y138 = 授業料等 ; " " label Y139 = 教科書・学習参考教材 ; " " label Y140 = 補習教育 ; ” label Y141♂教養娯楽 ; " ” label Y142 = 教養鰻楽用耐久財 ; ” " label Yl 43 = 教養娘楽用品 ; " label Y144よ書籍・他の印刷物 “; " ー ビス ; label Yl 45 = 教養娘楽サ ” " label Y146 = 宿泊料 ; label Y147♂パック旅行費勺 ’ label Y148よ月謝類 . " " label Y149 = 他の教養娯楽サ ー ビス ; ” label Y150 =吋特掲)インタ ーネット接続料 . 中略 ” ” label Y159 = 交際費 ; " label Y160三交際貨{食料) ; ” ; label Y161♂交際費(家呉・家事用品) ” " label Yl 62 = 交際費(被服及ぴ履物) ; 中略 ” " label Yl 89 = 他の非消費支出 ; ” ” label Y190 = 実支出以外の支出 ; " label Y191♂預貯金 ; ” ” label Y192 = 保険掛金 ; ” " label Yl 93 = 個人・企業年金保険鋳金 ; " " label Yl 94 = 他の保険掛金 ; 中略 " label Y202よその他の実支出以外の支出 ; " ” label Y203 = 繰越金 ; 27
付録2規定問題解答出力結果 問1 訟手o5各図表の上部l功るタイト川土、プログラムで指定した七-��-!-巴文j *表1左半分:集計乗率なし 甲骨表1 右半分:;集計乗率あり 表:HHage ・ HHkubun HHkubun(世帯区分} Hhage (世帯主の年齢) 1:勤労者 2:勤労者 3:無職 合計 以外 ・ 18 15 798 765 5 24怠以下 66 2,512 157 2,289 6:25 ~ 29歳 4,841 107 511 4,223 7:30 ~ 34歳 6,138 193 728 5,217 8:35 ~ 39歳 205 6,773 1,076 5,492 9:40-44歳 7,284 277 1,305 5,702 10:45 49議 8,383 392 1,797 6,194 11:50 ~ 54怠 8,527 624 2.221 5,682 12:55 ~ 59歳 7,997 2,226 2,534 3,237 13:60 ~ 64歳 6,676 1,743 3,590 1,343 14:節目的愈 4,880 469 1,197 3,214 15:70 ~ 74歳 4,322 940 3,216 166 16:75銭以上 13,919 14,433 89,131 40,779 合計 表:HHaae* HHぬ』bun Hhage HHkl.』bun(世帯区分 (世需主の年齢} 1:勤労者 2:勤労者 3:無聡 合計 以外 10 21 1,780 1,729 5:24儀以下 57 4,522 151 4,314 6:25 ~ 29歳 7,008 480 87 6,441 7:30 ~ 34歳 8,396 153 824 7,420 8:35 ~ 39歳 9,004 247 7,611 1,145 9:40 ~ 44歳 9,462 1,479 244 7,739 10:45 ~ 49歳 508 10,665 2,085 8,072 11:50 ~ 54蟻 11,315 7,697 2,725 893 12:55 ~ 59歳 11,153 2,785 4,160 4,208 13:60 ~ 64歳 10,074 2,213 6,374 1,487 14:65-69議 8,235 1,652 6,124 459 15:70 ~ 74篇 8,406 207 1,325 6,873 16:75鼠以上 16,874 25,741 100,000 57,388 合計 四 問2 *①表2:整形後 家族分競 1.単身世帯 2:失錫のみ世帯 3: 世代世轡 ー 4・ 世代{ひとり親}世帯 s: = 世代世帯 6:その他の世帯 針 1:男 1:勤労者 2:女 計 2:勤労者以外 2:女 1:男 計 1·男 3:無職 2・ 女 針 1:!IJ 計 2:女 計 6,503 4,207’ 10,710 1,030 867 1,897 2,463 5,回8 8,151 9,鈎5 10,763 20,758 45 11,071 23,837 81 4,375 11,026 450 24,287 8,517 324 8,841 4,293 51 6,242 3,264 32 3,295 36,721 461 37,182 27,267 378 27,645 6,190 671 1,303 1,974 3,148 4,153 934 430 1,お4 7,302 1,543 2,421 3,963 638 160 7銅 7,984 4,9弱 384 5,340 2,390 118 2,508 僚主2 8,斜8 75 278 174 654 234 887 413 488 452 1,344 482 1,826 49,439 7,947 57,386 15,250 1,623 16,874 18,340 7,401 25,741 83,029 16,971 100,000 問3 *①表 3 weight100000 UNIVARIATE プロシジャ 雇福島甑薗副担I!!.皿冒圏甜掴盛軍慰n 位置 平均 中央値 最績値 =-・E・-・E・-・E・- 基本統計量重み付き} ぱらつき 2284.023 標準個善 。 1689 分散 範囲 四分位範囲 28 2631 6922228 s1ns 2181 白抜きの文字の箇所が 解答に対応する。
*①表3 weight100000 UNIVARIAlE プロシジャ 思毒事圃圃岡田・u胆墨田町D>:I五慮E留置醤樫凪咽藤掴::厨E珂瞳町圃・・・・・・・・・・・・・・・・・ 標準偏差 歪度 無修正平方和 変動係数 位置 平均 中央値 .頒値 基本統計量{重み付き) ぱらつき 3.136651 標準偏差 3.227887 分散 範囲 四分位範囲 。 間3② 0.71852 0.51627 4.71414 0.54888 合陵閏3箱ひげ園 |明 。.。 m:>CI冨- 10000 筑lOOO 200創3 。 ..制調。 。 αコ 50000 パン宜出 間3③ 合服悶3ヒストヴラム a司 , 、A m!て ,.,,oy044 29 '
問4① *設問4:(D合条4:霊形後 N 来型‘ バユ眉 喧連副題昆 勉骨量揖 会修 E’Eヨ骨 1:§!J量錨 57,羽6 360 37.6 官官』 43 1CDO 種揺鰭娘* !1!!11 16,874 443 310 19.4 4.7 1000 主 官5,741 E官』 官6.7 15B 5!1 金量島 100.日耳目 41.6 33.7 官日D 4.6 1000 1日)0 ’ 000 室聾錨麺 2掌蝉自曹 20.758 33B 37.7 官30 5.5 密実腸骨事程調骨 官4,287 4SS 28S 16B 48 1000 ま=置討噂笠智 37,18官 390 35S 208 43 1000 1000 金三芭河叫輔灘滞 7,3回 44S 31.6 190 4S 恵三芭ffl!:滑 8,6咽 460 30.5 19] 38 1000 量菅@飽@笹倉 t,8甜 44B 3日5 20.4 43 1000 1α1日:n 41.6 33.7 官OD 4.6 1000 全体 ’ 問4② L単島世暢 止ま婦のみ世骨 托 世 帯 世 劉 HV LF- ひ ( 4 鹿市哨舗鰯 &=世代世帯 , 5三世代世智 6,!c由他由世骨 問5① Lorenz Curve:4 Y001 Y001 1. 0. ,nu anu -nu - nu 0. 0. 0. o. 0.1 0.日 0.0 0.2 問 0.4 n 0.6 0.8 1.0 0.2 0.4 n 0.6 0. 8 1.0 (7)gini:咽riable 'gini' is the gini coefficient. 家族分類1 家族分類2 家族分類.3 家族分類4 家族分類:5 30 家族分類:6 家族分類.全体
付録3 2017年第5回SASミクロデー タ分析コンテスト規定課題 1)年齢階層別・世暢区分別クロス寝 一一一 一」 合計 . 760 亘Ll!!fi 盟.Q2Q..j 創世帯分蝿捌・世帯区分別世帯修主@性別S量クロス褒 世帯分類別・世帯区分別・世帯主の性別の3重クロス集計衰を、 集計用乗率を使って10万世帯比で表2 の儀式で作成する。 3)パン支幽金舗についての各種@銃僻グラフ ① パ ン支出金額(変数名:Y但4)及ぴ、パ ン支出金額に1を加えた金額の常用対数変鎮loglO(Y叫4+1)を 行い 、 集計用乗率を使って10万世帯比について、 それぞれの四分位統計量および平地盤を表3に示 す様式で作成する。 ② パ ン支出金額について箱ひげ図を作成する。 @ パ ン支出金額に1を加えた金額の常用対数変換値について、 ヒストグラムを作成する。 31
表3 パンの支出 11を加えた金額の 回0.00旦 U)O_,_QOO 4)世種区分別およびt量管分銅周の段踊{朱‘パン、めん担、他@眠積}@支幽金書置についての割llit比 『毅類jの支出金額(変数名;Y042)は、米{四43)、 パ ン(Y044) 、 めん類(刊45) 、 他の穀類{刊46)の合計 金額である, ①これら4変数語帯損(Y042)に占める構成比(パ ーセント)を世帯ごとに計算した後、 10万世帯比に よる世帯区分別 、 及び、世帯分類別に構成比の平均値を、表4に示す様式で作成する。 表4 恵国各 官F者百I>(,,キ '"陸ヨ周囲’ 嬉畠肉盤 --虚豆、 “ の世智 57 386 金量爾也侵砂量!: 世帯分類 単身世帯 夫婦のみ 一世 代 ;世代(ひと事混} 安 36.0 容成比側} バン めん題 |他の盤轟 �1:1.A;l 100.0 20 758 33.8 100.0 100 000 41.7 100.0 =制,-� .:,..,nA歯 畠'* ②世待分類別に、殺類(米 、 パ ン、めん類、他の毅翠ii)の構成比を帯グラフで表示する。 6)世智分顕別@ロ ーレンツ幽鎗および:ヲ.:.係敏 ①集計周乗率を考慮して、世潜分額『二世代(ひとり規)』世需の年間収入(¥叩1)のロ ーレンツ曲畿を描く。 @築許用乗率を考慮して 、 6つの世帯分類の年問収入(YOOl)のジZ係数(小数点第2位まで)を計算し て、表5の様式で表示する。 表5 主主エ 0.33 32
’ Let sデータ分析コンテストに用いる新擬似ミクロデータの概要 o 高橋行雄 1 ,周防節雄 z ,宮内亨 3 1BioStat 研究所(株)メ兵庫県立大学, 3(独)統計センター ’ Overview of new pseudo-micro data used in Let s data analysis contest 1Yukio Takahashi, 2Setsuo Suoh, 3Ton』Miyauchi 1BioStat Research Co.,Ltd., 2The Univ. of Hyogo, 2National Statistics Center 要旨: (独)統計センター から提供されていた教育用擬似ミクロデータを用いて SAS ユー ザー 総 会 で「Let’ s データ分析コンテスト」 を過去 4 回開催してきたが, 2016年度末で提供打切りとなっ た. そこで, 2004年全国消費実態調査の匿名データを用いて, ユー ザー 会世話人有志が新擬似ミ クロデータを新規作成し, 2017年のコンテスト用に供した. 新擬似ミクロデータを作成する際に は, 「 匿名データから導いた統計表のみから作成する」 ことが(独)統計センター から課せられた必 須条件だった. そこで, 世帯属性について14項目を厳選し, 14,246セルからなる多次元クロス表 と集計乗率, 収支 に関する203 項目の セル毎の対数平均値と標準偏差,年間収入3階級別の主要 21項目聞の対数相関行列を作成してExcel形式でウェプ上に公開した.この公開情報だけを用いて 新擬似ミクロデータを作成した. 作成に際しての留意点は以下の通り. ①年間収入 3階級別の 69,131世帯分の21次元正規乱数の作成. ②主要21項目の14,246セノレ分の対数平均値と標準偏差 に対して21次元正規乱数を適用し69,131世帯分のデータの作成. ③主要21項目以外の収支 182 項目の14,246セルの対数平均値と標準偏差に正規乱数の適用し69,131世帯分のデ ータを作成. ④ 収支金額が0円の 世帯の割合を保つために一 様乱数の使用.⑤下位の収支項目の合計 がその上位の 項目の収支金額となる様に 「 足し上げ構造」の保持. ⑥正規乱数の適用に際し過剰な発散を防ぐた めの制約条件の設定. ⑦作成された新擬似ミクロデータの収支項目の足し上げ構造の検証. ③元の 匿名データの各種の統計量と比較し, 元の性質がどの程度保持されているかを検証. キ ー ワ ー ド:全国消費実態調査, 擬似ミクロデータ, 匿名データ, SAS, JMP , デ 一 分析コンテスト 1. はじめに (独)統計センター から提供されていた教育用擬似ミクロデータを用いて SAS ユー ザ ー 総会で 「Let’s デー タ分析コンテスト」 を過去 4 回開催してきたが, 2016年度末で提供打切りとなった. これに代わる擬似ミクロデータとして, 平成21年全国消費実態調査(全消)による一 般用ミクロデ タが提供されているが, その内容は, 教育用擬似ミクロデ ータの 197項目に対して, 20 項目と ー 1/10 と大幅に減少し, 世帯属性では, 例えば, 世帯人員属性は「2 人」 と「3 人以上Jの 2 区分し かなく, 利用しずらい. 一般用ミクロデータを用いたデータ分析コンテストの実施可能性を検討し てみたが, 消費支出に関する 項目がIO大費 項目に限定されており, 公募方式のコンテストに用い 33
るミクロデ ー タには適さないと判断した. これまでの教育用擬似ミクロデ ー タを用いた SAS/JMP デ ー タ分析コンテストには多数の応募が あり, これがきっかけとなって匿名デ ー タを用いた実証研究を行う SAS/JMP ユ ーザ ー も徐々に増 えてきた. 統計センタ ー から詳細な 一 般用ミクロデ ー タの提供が早急に提供される見込みはなく, 「Let’s デ ー タ分析コンテスト」の継続が極めて難しい状況なった. コンテスト実施の共同オ ー ガナイザである周防が, 統計センタ ー の関係者に, 匿名デ ー タを用い た擬似ミクロデ ー タの作成の可否について問い合わせたところ賛同が得られたので,2016 年から高 橋・周防が使用許可を得ている全消の匿名デ ー タの使用目的に, 「 匿名デ ー タを用いた新擬似ミク ロデ ー タの作成のための統計表の作成」も追加して申請を行なった. 新擬似ミクロデ ー タ作成は,匿名デ ー タ(47,797 世帯分)から導いた複数の統計表のみから作成す ることと, 匿名化の観点から多次元クロス表でのセル度数が 3以上となることが必須だったので, セノレ度数1及びセル度数 2 に該当する世帯のデ ー タにノイズを入れたデ ー タを加え 69,131 世帯分 のデ ー タとし, ①世帯に関する情報 14 項目と集計乗率 ② 14 次元クロス表のセノレ毎に収支に関する 203 項目の対数変換した平均値と標準偏差 ③年間収入3階級別の主要 21 項目聞の相関行列 を作成して, ウェプ上に公開した (高橋・周防). この情報から新擬似ミクロデ ー タを作成し, SAS デ ー タセットと csv 形式の両方でウェプ上に公開した•. 詳細手順については、 紙幅の関係上、 別 の機会に詳解する. なお, 今回の作業はすべて JMP で行ったが, SAS による作成も近いうちに開 始したい. 2. 年間収入は対数正規分布に従うのか 匿名デ ー タの集計乗率を用いて, IO 万世帯当たりの集計乗率を計算し, それを「度数Jとして使 うと年間収入の平均と標準偏差は(609.7, 388.7)となり, 変動係数は, 63.8%と極めて大きい. その 平均と標準偏差の正規分布に従う正規乱数を用いて, 47,797 世帯分のデ ー タを擬似的に生成すれば, 平均と標準偏差は匿名デ ー タとほとんど同じになる. ただし, 平均と標準偏差の関係から, 実際に はありえない 「 年間収入がマイナスJの世帯が多数発生してしまう. 年間収入は, 高いほう(右に裾を引く)対数正規分布に従うと仮定できるのか. 図 la は, 匿名デ ー タに対して正規分布をあてはめた結果で,左側に大きく裾を引いていることが観察される. 図 lb は, 正規乱数デ ー タに対する正規分布のあてはめでヒストグラム上にきれいに乗っている. 図 la の匿名デ ー タは, 右側のひげを超える点が全くない. これは, 2500 万円を超える年間収入 、 は 2500 万円とするトップコ ー デ イングが 268 世帯(0.56% )に施されているためであり, 99.5%分位 点と最大値が 3.398(2500 万円)と同じであることからも確認できる. 図 la の要約統計量の(平均 =2.698,標準偏差=0.291) を用いた正規乱数で生成したデ ー タでは, 図 lb に示すようにきれいに左右 対称となり, 99.5%点は, 3.469(2944 万円)と若干大きくなる. 2.5%点では logIO(年間収入)で 2.064 (116 万円), 乱数デ ー タで 2.134(134 万円)と食い違いが生じている. I SAS デ ー タセット csv 形式 =キ http://mighty.gk.u・hyogo.ac.jp/confidentia四回sho2004GijiMicroData.zip =キ h句://mighty.gk.u・hyogo.ac.jp/confidentiaVZensho2004GijiMicroDataCSV.zip 34
Tei扇面画麗丈一
i型空一一一一一J軍事事�二コ
.・・-.-..・昨一四一寸
nu
凋・1
Fコ
官、d
ドー
斗O
|
-
j
!
“
ti
l
-qd
『4
BEE-川斗
5
‘
.
;
『4
1.0
nu
0.5
F3
1
0.0
一一正規,(2.6983,0 29114)
100.且% 鼠大値
99.5劫
97.5%
90.0%
75.0% 四分位点
50.0%
中央値
25.0% 四分位点
10.0%
2.5%
0.5偽
優小値
0.0%
3.398
3.398
3.204
3.038
2.895
2.719
2.534
2.328
2.064
1.708
0.000
平均
2.6四唖
摺箪偲差
0.291
平均の標猶銀盤
0.001
平均の上側95% 2.700
平均の下館95崎 2.6四6
N
100000
図la 常用対数変換した年間収入の分布の特徴
型堕塑
型空一一一」[車問問重二二ゴ
-・ト一日壬一一卸 ・
0.0
o.s
100.0%
昼大値
99.5品
97.5%
90.0%
75.0% 四ゆ位点
50.0%
中央値
25.0% 四分位点
10.0%
2.5%
0.5%
0.0%
母小値
今ー』
1.5
1.0
2.0
2:s
3.0
3.5
4.0
一一正規(2.69803,0.29059)
4.006
3.469
3.267
3.065
2.894
2.699
2.503
2.322
2.130
1.958
1.527
平均
2.698
0.291
擦轡偏建
平均の額場鼠差
0.001
平均の止側95% 2.700
平均の下側街% 2.696
N
100000
正規乱数デ ー タ(平均=2.698, 標準偏差=0.291 )の分布
図 lb
データ分析コンテストでは,年間収入について各種の統計解析が行なわれることも想定されるの
で, このようなわずかな分布のゆがみも再現することが望ましいと考える. 図 laヒストグラムか
ら年間収入の分布は,視覚的にほぼ対数正規分布に従っていると見なせるかもしれないが, 図2に
示す正規分位点プロットを見れば,年間収入が低くなるにつれて,斜めの直線からの恭離が大きく
なり, 対数正規分布に従っているとみなすことは鴎曙せざるを得ない.
・
4.0
・.3:00 .2:Jj.1 ’:6!1.2S<J:e, o:o · o 71
3.5
3.0
2.5
2.0
1.5
0.5
0.0
P,s---
1.0
。- ぷ ��
ct'-
<;> ()·-
">
匂 、q,
・
0・
。む
#
。争 ♂ �-':>q,"> ・ ヤ
()
正規分位点プロット
図2年間収入(対数)についての正規確率プロット
35
このような場合には,複数の母集団が内在していると仮定し,そこからランダムに 47,797 世帯が
サンプリングされたとし,各母集団の(混合割合,平均,標準偏差)を最尤法によって推定すること
が可能である.
母集団が2つあると仮定した場合と,3つあると仮定した場合の統計量を図3に示す.母集団が
2 っと仮定した場合に, 「 2 重正規分布のあてはめJ欄の割合計が 13.4%の小集団で,平均値は位置
µl =2.388(244 万円)であり,割合 tr2 が 86.6%を占める大集団で,平均値は 2.746(557 万円)である.
ヒストグラム上の確率密度関数のあてはめも母集団が1っと仮定した場合に比べ改善している.さ
らに母集団が 3 っと仮定した場合には, 「 3 重正規分布のあてはめ」欄の割合( 1.7%, 8.0%, 90.3%)
の集団が分離されている.
4画
一護軍愈強布一
一一一一ー一一一
「
i
i
二=
----,
2 重正規分布 一
-
--
---
3 重正規分布-
(
ー
←
》A
二寄Cl
百酒
』Ill
1
』/
I旧
一←
一
I 1t>_ £1:言語同信碕�!:I
誠二
i 1 � ! 6!_甲子タ組二三二二
i :?,!Si翻
J倒ータ
111
位置
I ; s:! i
!|⑤1個
院
!
Q! I拐つを
叫
: , 琵: l書らつき
a2
l
竺l 都合
同
割合
正規分布\
同
一一一一
'
一一一一一一一一一一一
つ
;
舗前面5
;,�;謡亙蹴
J,1
-
守
一←一一一
川両面牟醐〕入一一一一一一一
|
… ・4
E→
一一一一-
一
一一一ー一一一
網間
�;R5日時事二二
' ー
2.388
糊
位置
0.381
0.241
0.134
0.866
個
I.I:窓つき
(;ti;;っき
[;f6つ慮
(-2)*対数尤度= 31081.0566579185
府.)( タ
灘間
凶
侃
α2
2.751
0術
0.212
0.237
0.017
0.080
0.903
。3
同1
n2
的
割合
割合
都合
(-2)事対数尤度= 30585 6736918864
’\.
(注)この両者の分布をグラフ化した場合は ,
左図に示すように, ほぽ重なりあってしまう.
’
、.I民 ,..も 令・\. ’,.<a
図3混合正規分布のあてはめ
統計的にどちらのあてはめが望ましいのかは, マ イナス2倍の対数尤度を用いて評価する.表1
に示すように,母集団= I の場合は,(-2) *対数尤度=36995.97 で,母集団=2 の場合は,(-2) *対数尤
度=31081.06 となり,5914.91 の減少となる.母集団=3 の場合は 30585.67 で,母集団=2 の場合に比
べ 495.39 小さくなる,母集団=4 の場合は,母集団=3 の場合に比べ 45.82 小さくなる.母集団=5 の
表l
仮定する母集団の数による対数尤度の差および最小母集団の統計量
最小の母 集 団
|
母集団 :
( ー 2)
i 対数 |母平均
対数 i
構成比
数
対数尤度
尤度の差 i
i母平均: (万)
I
2
36995 .97
·
31081.06
-
100.0%
2.698,
13.4%
2.388
244.3
2.040,
109.6
0. 513
3.3,
0. 587
3.9
-�-�一二型空ι-�����-竺_I__.�竺一
4
\
30539.85
5
j
305 39.84
! x�Wヲ, 5%)
498.9
!
・5914.91 !
-4 5.回I
・0.01 I
5
.99
J
36
o. 位1%
o. 但 5% i
2
場合には変化がO.oIである.統計的には, z =5.99(自由度 2,上側 5%点)以下ならば, 母集団数の
増加に意味がないので, 母集団=4が統計的に支持される.しかしながら, 母集団=4の場合, 最小
母集団の構成比は, 0.021%と極めて小さい集団なので, 母集団=3 とするのが現実的と思われる.
その場合,年間収入の母平均は, それぞれ 110 万円, 175 万円, 563 万円となる.
年間収入以外の 202 項目についてもヒストグラムの視覚的な検討結果から,単 一 の対数正規分布
とはみなすことができないと判断した.それ故に, 世帯属性毎に, 14 次元クロス表の 14,246 セル
に対して 203 項目の(デ ー タ数, 対数平均,標準偏差)の統計表を作成・公表した.
次節以降で,公表した統計表から新擬似ミクロデ ー タを作成した過程を示す.
3. 正規乱数を用いた復元
公表した(14,246×3 レコ ー ド×収支 203 項目)の統計表から,(69,131 レコ ー ド×収支 203 項目の
デ ー タの作成が最初のステップである.表2に, 統計表の 一 部を示す.
表2
収支項目に関する統計表 (抜粋)
刊01 � Y9Qi )'003 : y,側 ;刊05 f (中略) 刊38 刊39 Y例0 ; Y041 (中略) no3
却l ' 却2
Z.03
Z.06
Z.07
Z.08 • Z.09
Z1l
""
番号
フル
年間 収入 実収入 l 経常勤め先 i (収入 支出 実
消費!
(支出
支出
収入 |総額.
;収入 。} 収入 i 項目} 総額.
支出 食料 項目} ;繰越金
J;
31
3,
3
3
3
3
3
3
3
件数*
1
loglO平均} 2.192i 5.226 5.112 5.1191 5.104i
5.224 4.764 4.7561 3.910
4.719
0.023 0.011 0.016, 0.008
loglO SD : 0.0051 0.015 0.010: 0.0341 0.009!
0.023
3
31
2
3!
3'
3:
3
3
3i
3
3
件数 !
2
loglO平均 2.4301 5.615 1 5.3381 5.341 5_325 i
5.627, 5.303 5.207: 4.557
4.014
loglO SD . 0.0061 0.009' 0.010'. 0.012 1 0.013i
2
O.OlOi 0.010: 0.0141 0.011
0.019
(中略)
31
3.
3,
31
3
14246
31
3!
3
3
件数
1
14246 loglO平均| 3.ll2i 6.16 5.921 5.912 5.771;
6.1621 5.751 5.635! 5.076
5.052
0.011 0.013' 0.027 0.004
14246 loglO SD • 0.011 [ 0.007 0.014 0.013
0.005
・件数=それぞれの収支項目の金額が0円であるケ ー スを除いた出現頻度である.;
14次元
十
① 14 次元表の 14,246 レコ ー ドのセル度数を用いて,該当するレコ ー ドをセル度数分複製し,順次
縦方向に連結する.最終的には, セル度数の合計 69,131 レコ ー ドを持つファイルを作成する.
②公表した統計表を転置して(14,246×203)×3 のファイルを作成する.
③ ①と②のファイ/レに対し, セル番号でマッチマ ー ジをして②の情報を①に付与し, (69,131×
203)×3 のファイルを作成する.
④③のファイルに正規乱数を追加して,この正規乱数を使って「対数平均+標準偏差×正規乱数J
を計算する.ただし,標準偏差は ±2 の範囲内に制限し, これに 0.5 を掛けて変動が ±1 となる
ように制限を加えた.
⑤④のファイルを世帯毎に転置し, 69,131×203 の擬似デ ー タのファイルを作成する.
⑥
一
様乱数を用いて欠測値処理をする.(これにつては, 第6節を参照)
4. 互いに相闘を持つ主要 21 項目
主要 21 項目について,年間収入 3 階級別に 21×21 の相関係数行列を公表している.互いに相関
を持つ正規乱数の作成は,相関係数行列をコレスキ ー 分解した行列と正規乱数行列の積で求められ
37
る. 手)I頂を可視化するためにJMPのスクリプトを用いて例示する. まず, 3 項目の 3 × 3 の相関係数行列を roh とする. Cholesky 関数でコレスキ ー 分解を行なうと 下三角行列 chol が得られる. rob (相関行列) 1! 一一 - 0.8! 0.51 0.81 ー0.51 chol = Cholesky(roh); ト 一 |今 4 ・ 0.7 11 1 0.71 ichol( コレスキー分解) L 今 o.�i 0.5 _Qj ___ Q o 0.61 0.5. 0.707 次に 3 × 5 の正規乱数行列 ysnorm を Random Normal 関数で生成する. norm (正規乱数・相関 0) 0.27_ 4・・0.224! 0.219 -0.4201, 一一一一 0.24§ ysnorm= J(3,5,Random Normal ()); 今| ’0.908; 1.485, 1.663・1.§821・0.761 0.629. 1.432 0.360・0.0231 0.467 I l 一一一一一←一 下三角行列 chol と正規乱数行列 ysnorm の積を求め,互いに相闘を持つ行列を計算し,転置(JMP 、 chol の 1 行目[1.0 0 3 r o一 角13一 r O一 『I一 今 - 6- 4 9 一 一 3一 S 一rb一 J一 β一nM ’E 一 ’I’I一 ’I一AU 最初に, A7 、 ymnorm=(chol*ysnorm) ; 4 瓦 玉 5一 O rO 一 『竺 ← ζ一 ’晶 I一aaT 日 I 7一 2 7 ta - - -d 一 品。 一 Aυ 唱I一’I一nu r- 6 O一 9一 4一 4一 一 2 1 一 4 一 7 2- 2一 一 凋 『 一 司4 今 司 L 4 句 & 一 司 - 一 -U 一 - 一 ・ 一 一 一 nu nU 向 一 。 AU 品 ・1 のスクリプトでは「 」が転置記号)して. 5x3 の 3 次元正規乱数行列戸nnorm を求める. O]と ysnorm の 1 列目[0.274 0.908 0.629] T の積和が ysnorm の 1 行 1 列目に 0.272 と計算され,元の正規乱数のままとなる.次に,chol の 2 行目と ysnorm の1列目の積和なので, 0.8 X 0.274 + 0.6 X 0.908 = 0.764 ysnorm の l 行 2 列目に 0.764 が得られる. さらに, chol の 3 行目[0.5 1 列目[0.274 0.908 0.5 0.707]に ysnorm の 0.629f の積和によって, 1.036 が得られる. (相関を加味した正規乱数) この操作を, ysnorm の 2 行目から 5 行固まで繰り返し, 5x3 の 3 次元正規乱数行列 ymnorm が 計算されている.実際に 21 次元の相関係数行列を 69,131 世帯分作るJMPスクリプトを次ペ ー ジに 示す. このスクリプトを年齢 3 階級毎に, 公表した相関係数行列をスクリプトに挿入し, 69,131 行 21 列の互いに相闘を持つ正規乱数行列を計算し, この行列をファイルに出力する. 表3に第1階級の ファイルの 一 部を示す. 38
// 相闘を持つ正規乱数
nrows=69131;
seed=l234561,
Random Reset (seed);
roh=
1.000 0.462 ... 0.133
,
0.462 1.000 ... 0.217,
0.133
0.217
... 1.000]
ysnorm=J(Ncol(roh),Nrows, Random Normal());
chol=Cholesky(roh);
ymnorm=(chol*ysnorm)ソ
dt = New TAble (”ran”) << Set Matrix (ymnorm);
表3
下位1/3階級用の 69,131行21列の互いに相関を持つ正規乱数
\!GUI_:年収匡骨J町lran-JMP
加納醜ドー為(I) 行問問医遍亘亙副州如何チ刷表示制抑防側ヘn,1,附
i逗1eeH1I ,,司ll ·'; i笛園園長也調
i
呈
WfT
69
1
'
I !]: 1�� ち!� �11]
1
1
吉1� �1�1�!1E' �I § �
臼司山::: -�::: • -�:= i -�:: : �::� �::: • �:
,
式
糊胡吋十sl 山
主要21項目に対し多次元正規乱数による誤差変動の与え方を以下に示す.
①年間収入 3 階級の (69,131 世帯 ) x21 項目の多変量正規乱数ファイル毎に世 帯毎に転置し
(69,131x21)×lとする.
②年間収入3階級毎に転置されたデ ー タを列方向に併合し,(69,131x21) x3の乱数ファイルとする.
③世帯字毎の 3階級の符号に対応した乱数列を用いる.
④主要21項目は, 203項目の 一 部なので203項目のファイルに上書きする.
5.住居費および教育費など支出金額がO円となる世帯が多数ある場合
匿名デ ー タ 47,797世帯を,集計乗率を考慮して 10万世帯とした場合に,住居費が支出されてい
る世帯は,66,113世帯あり, 支出金額が0円の世帯が1/3程度含まれている.図4aに示すように,
分布は左側に大きく裾を引いていて 3重混合対数正規分布のあてはめが支持される.母集団の月当
たり住居費の 母平均は,「 3重正規混合のあてはめJ欄の µl, µ2, µ3 を用いて,それぞれ 102 ·547=352,
104川= 12,972, 104·736=54,450円/月と推定される.
図4bに示すように,教育費が支出されている世帯は,10万世帯中28,540世帯あり,欠測値が3/4
程度含まれている.分布は左右ともに裾を引いていて, 3重混合対数正規分布のあてはめが支持さ
39
れる.母集団の平均値は, 住居費と同様に,それぞれ 103 ·887=7,709,
10 ·440=27,542,
4
10 ·078= 119,674
5
円/月と推定される.
型空gl!唯居
-
「一一一一一一二二二一一一つ �[[� 裏絢樹園
j
• 3重正規分布
‘
l
I
1\
RI.I
A
:
/1\1
i
I
!
|
i
問
2重正規分布\.訓L
�叫Iii 聞
出川\111目
\
d 時制 l
.I
1;目当選萄踊昆蚕め晦ではあ
-,A画誕語扇扇面掃海てはあ
ー一一一一一一一一
磁調
2句
緯定価
3.4幻
棚
4.品17
IJ2
位置
I"
0.897
凶
ぱらつき
ぱ8っき
o2
0.271
都合
同1
0.635
部合
n2
0.365
相甲田昌
u・-·“
平凋側関環器
平均山岡崎3捌
0
平均の下側95劫
: 66113
N
j.�
円
I
(-2)哨叡尤度= 160677.069496993
一 一
温調
月ラ"'�
三
個
同
位置
ρ
位置
t腐っき
倒
ぽ与っき
a2
1担当っさ
a3.
同
割合
n2
栂会
n3
割合
円
推定値
2.547
4.113
4.736
0.566
0.594
0.150
0.215
0.593
0.192
(-2)傘対数尤度= 158159.0496691:
Q, 、勘九b
'l, 、.Q,
・ ‘3・
-
も・
’·v 句・
.- �-b民匂も
匂 ・ bもも
E
図 4a
匿名デ ー タ 47,797 世帯の 10 万世帯での対数住居費の分布
,�log10敏宵
�-�
空三�
3重正規分布~ゥι
i
...,"J- ...,ip
"'-i.
!弘 '\,'? ,,,'),,,,�
~予�'?>.,�J,
図 4b
�
.a'i�聾泊施憧
4:312
0.606
騨偏差
平淘の億準践義0.004
平均叫醐5% 4.319
平均の下即時;4.305
28540
l鞠
•A !面孟面頭取語語あてはめ
一一一
一
,:iJで
訟L
ーー 調歯髄
謹銅
Itラ昌l�
鍋定値
,...:.
3.283
111
叩
4.470
jJ2
岨
ぱらつき
σ1
日制1
ltl3::i,量
a2
0.454
都合
同
0.133
郵合
同
0.867
(-2)・対数尤度= 50238.5316353789
1,:i蚕薄重孟蕩轟貧弱あてt劫
4冗ヲヌーヲE臨値
」一一一一一一一 一
ー
程思
J棺-�
ι
担1
個
112
位置
位置
µ3
l;fP.,っき
凶
ぱらつき
a2
f.t6っき
o3
同
割合
町2
習会
同
割合
一
緩怠倍、
3.887
4.440
5.078
0.618
0.212
0.291
0.416
0.425
0.159
(-2) 事対数尤度= 48962.97982204:
'°<o宇
匿名デ ー タ 47,797 世帯の 10 万世帯での対数教育費の分布
住居費には,家賃地代や修繕費などが含まれているが,持家でその年に修繕費が発生しなければ
支出金額は O 円となり,教育費は,対象になる家族がいなければ 0 円である.公表した統計量の算
出に際して,常用対数変換を施したので 0 円は欠測値となり,( 69,131 世帯× 203 項目)× 3 統計量
のファイルに付加された世帯毎・項目毎の欠測値を含むデ ー タ数を N; ,
欠測値以外のデ ー タ数を nif, j=l ム…, N;,
nil = n,2= ··= n;Ni
・
i=l,2,…,14246 セルとし,
として, 欠測値の割合を保つ擬似デ ー
タを,以下の基準で生成する.
①デ ー タ数が ny=O の場合,対数平均値は欠測値なので, N; 個の擬似デ ー タ全てを欠測値.
②デ ー タ数が ny=l の場合には,N; 個中, l 個は擬似デ ー タがあり, N; - 1 個は欠測値.
③0 ~ lの 一 様乱数を Uij とし,Uij が ny!N; の比より小さければ擬似デ ー タがあり,大きければ欠測値.
④表3に示すように N; が5で,デ ー タ数 nii が3の場合,対数平均と標準偏差は,5世帯が全て同
じなので5世帯中2世帯は欠測値.
⑤
一
様乱数 Uij を発生させて,3/5=0.60 以下ならば擬似デ ー タがあり,0.60 以上ならば欠測値(表 4).
40
表4.
様乱数による教育費が0円の世帯の割合の確保
14次元 レコ ド繰返し
デー タ数 対数
対数
項目名
SD 一様乱数n ij !N;
n ij
平均
数N;
j
,
番号
4.00
3
8888
0.10
I
0.70
5
0.60
教育費
5
4.00
2
3
8888
0.10
0.20
0.60
(教育費
3
5
8888
4.00 I 0.10
3
0.80
0.60
1教育費
4
4.00
5
3
8888
0.10 . 0.39
0.60
教育費
:教賓費
5
4.00
5
3
8888
0.10
0.50
0.60
世帯
番号
9999
9999
9999
9999
9999
一
ー
1
扱い
判定
。
。
X
欠測{直
X
欠測値
採用
採用
0
採用
実際に作成された新擬似ミクロデ ー タ6 ,9 131 世帯の住居費と教育費について,10万世帯での 分
布 をそれぞれ図Sa と因坊に示す. 住居費が支出されている世帯数は, 図4aと比較して,66,113 世
帯から61, 38 2世帯になり, 新擬似ミクロデ ー タで3重正規混合分布の形状も保持されている.
同
一
一
一個
団
雌←
一
m一
E
一一
, 鑑定規混合のあてはめ
品川
.<1 }(ラメ ータ推定値
艦
一団…鞠輔N 明耕輔
:‘
布
LI l逼, 2
酬
活
種績
髄
蜘
問 蜘
位置
ぱらつき
ぱらつき
間
副会
割合
パラメータ
日1
µ2
σ1
。2
nl
n2
亭;
'LI� 3直亙議混合のあて
.<1 'パラメータ推定彊
糧頬
錨定健
3.610
4.636
0.741
0.251
0.686
0.314
( 2)*対数尤度= 136582.157226313
itヲメータ
J
担
JJ3
位位位 忽
置
鐸で3
ま
I ち き
(j1.
l.t6っき
σZ
ぱらつき
部会
留会
nl
ロ2
都合
。3
n3
はめ
鍍定信
2.706
3.818
4.667
0.588
0.624
0 235
0.115
0.601
0 284
(-2)*対数尤度= 136111.倒26306(
、、令、や句、争伽β 匂 J 'o <o'?
図Sa 新擬似ミクロデ ー タの10万世帯での対数住居費
教育費が支出されている世帯数は, 図4bと 比較すると28,540 世帯から29,066 世帯になり, ほぼ
0円世帯の割合は保たれている.また ,分布も3重正規混合分布の形状がやや滑らかになるが ,(・2)
対数尤度の大きな減少もあり, 新擬似ミクロデ ー タで保持されている.
...
句 l.O綾宵
を1
. .‘
ニー一一一一一一-
一一{TI一一争‘ .
一一一一一一一 J
3重正規分布~~~佐
,,
&•· 聾鈎純計量
字均
標単伺差
平均の標耳量鼠差
4.3
0.562
0.003
N
29066
&i•:2璽E規混合のあて はめ
ー
4
パラメ タ鑑定健
組源
パラメータ
位置
4悶
ぱらつき
ぱらつき
割合
鶴合
j.Jl
1,12
01
σ2
nl
n2
&i� ,3重正規混合のあて臨め
( 2) 対数尤度= 47758.7477593557
・
、
一匂 乍ー匂
一
’
日.
,, -匂
B院
パラメータ推定撞
パラメータ
話量E
4
緯定値
3.438
4.441
0.461
0.453
0.125
0.875
位盤
以
位置
位蟹
ぱらつき
µ2
µ:!
σ1
σ2
σ3
nl
n2
n.3
ぱらつき
ぱらつき
割合
推定値
3.704
4.309
4.721
0.501
0.273
0.392
0.261
0.340
0.399
甑合
部会
(-2) ・対数尤度= 47591 20821137•
,匂
酬』・匂 匂,匂
一 b一
ー
図Sb 新擬似ミクロデ ー タの10万世帯での対数教育費
6. 足し上げ構造
表4 に示す「消費支出」は, その下の項目「食料,住居,..., その他の消費支出jの10 大消費項目
の金額の合計が 一 致するように統制されており, これを「足し上げ構造」 と呼ぶことにする .
41
この様な階層構造が他にも多くあり,表5に, 主要21項目聞の足し上げ構造について, 「 区分iJ と 「足し上iJを用いて表す. 例えば 「 区分2Jでは,21と22 の2種類の足し上げ構造があり, そ れぞれ, 「 足し上2Jの( 0, 1 )で親子関係が示されている. 閉じ区分内の親(0 )は, 子(1)の合計金額 と 一 致する. 「 区分 3 」 の 33 では, 「 実支出」を親とし, 子が「消費支出」と 「 非消費支出」の 2 変数か ら成る. この表に示した表記法は, 新擬似ミクロデ ー タに含まれる足し上げ構造を考慮して計算す る際に使えるにように, 今回考案した. 表5 主要21項目足し上げ構造 Z V |足し上げ! 表6に, 消費支出の細目の足し上げ構造を示す. 「 穀類」は, 「 米, パ ン, めん類, 他の穀類」の合 計となっていることが確認できる. 足し上げ構造は, 下位の区分から上位の区分に対して定義されているが, 正規乱数を用いて変動 を与えているので, 足し上げ構造に若干の揺れが生じている. 下位から上位への足し上げは, 誤差 変動の伝播により上位の項目の変動が大きくなりすぎる傾向がある. そこで, 上位を先に固定して から下位方向に調整する 「 逆J足し上げ計算を行う. 子の金額を Z;1j (i は各レベルの区分番号,1は足し上げの子のコ ー ド, jは項目番号 ), 親の金額 を Z泊 ( i は各レベルの区分番号,0は足し上げの親のコ ー ド ), N 個の子の項目の金額の合計を Zn ・ とした時に, 「 逆 足し上げJにより調整された子(項目番号 j ) の金額 z;•i を, バ三)弓 0 で定義する. こうすれば, ,0 2 = L;=1 :1j 2 42
表6 食料における足し上げ構造(抜粋) レベル2レベル3レベル4 レベ Jl,5 レ’え Jl,6 世帯1 世帯2 区 足 区 足 区 足 足 足 階層 新擬似匿名 -ータ足しょげ 区分 区分 ナ デー タ 足し上げ 分 ! よ分上分上 上 上 Y名 V名 22 1 33 0 256,381 256,381 o 485,670 39 3 Y039 V045'1 実支出 33 1 45 0 256,381 256,381 o 470,916 470,916 o 40 漣 Y040 1vo455_消費支出 45 1 503. 0 41 5 Y041 V0456食料 68,774 68,774 o 90,732 90,732 o 503 1 602 0 11,957 11,957 o 10,362 10,362 0 42 6 Y042 V0457司穀類 602 1 6,359 43 7 Y043 V0458_米 4,627 602 1 3,719 3,209 44 7 Y044 V0459パン 1,712 ! ! 602 1 1,962 45 7 Y045 V0460ーめん類 602 1 168 565 46 7 Y046 判明盤金皇賞類一一 1,197 503 1 603 0 47 6 Y047 V046之魚介類 1,197 0 16,122 16 122 o 1,197 603 1 48 7 Y048 V0463 生鮮魚介 10,718 603 1 49 7 Y049 V0464_塩干魚介 2,504 603 1 1,142 50 7 Y050 V0465_魚肉練製品 603 1 1,758 51 7 Y051 V0466 他の魚介加工品 。。 。 となり, 子の項目の合計が, 親の金額と 一 致する. 実際の計算手順は以下の通り. ① 69,131 世帯毎に 203 項目を転置したファイルを作成する. 「 ② 表6に示した階層デ ー タ構造を表現している レベル2 の区分と足し上,...,レベル6の区分 と足し上」を変数名で①とマッチマ ー ジし(69,131 世帯× 203 項目)レコ ー ドx「収支金額+ 5 レベル×2 (区分・足し上)」のファイルを作成する. ③②のファイルに対して「世帯×区分i×足し上げ(0,1) J531J に金額の合計を計算し,世帯毎に z,。と zil ・・を得る. ④②と③のファイルを, 世帯番号, 区分iでマッチマ ー ジすることによって, ①のファイノレにzit ・ を付加して, z;1j を計算する. ⑤すべての区分に対して手順③を繰り返す. なお, 一 様乱数を用いて0円デ ー タを修正すると, 足し上げ構造の親子関係に不具合が発生する ケ ー スがある. すなわち, 親が欠測値なのに, 子に値がある, 逆に親に値があるが, 子はすべて欠 測値の場合が生ずる. このような場合には, 逆足し上げ計算はできないので, 親・子の一 方が欠測 値の場合には, 事後処理として, 両方とも0円に置き換える. 7. 新擬似ミクロデ ー タと匿名デ ー タとの照合および足し上げ構造の検証 新擬似ミクロデ ー タと匠名デ ー タとの照合するために, 世帯属性の14項目の符号について構成 比を算出し比較した結果, 士 5% 程前後の相違があった. 収支の 203 項目の対数平均の総平均は, 匿名デ ー タで 3.811,新擬似ミクロデ ー タで 3.765 と 1.2% 小さかった. 元の金額にすると 10.0% の 差となる. 元の金額で 50% を超える差異が 5 項目にあったが, ほぼ匿名デ ー タの特質は再現できた と思われる. 新擬似ミクロデ ー タの203項目の金額について, すべて四捨五入により整数化を行ったので, 足 し上げ構造に若干のくるいが生じている. 全足し上げ 3,387,419 箇所中,最大で士4 円は 13 箇所, 士l 円差が 663,196 箇所 19.6%あった. 今回は, 急いで新擬似ミクロデ ー タを提供しなければならない 状況であったので, 「 足し上げには, 四捨五入による不整合がある」との注を入れることに留めて, 43
は,今 の数字を使って, 高橋・周防・宮.将来的に 内) 以下のURLに新擬似ミクロデ ー タを公開した( 再度, 通常の足し上げ計算 をして, 親の値を書き換えることも検討している. SASデ ー タ セ ッ ト h句://凶ghty.gk.u・ hyogo.ac.jp/confidential/Zensho2004句iMicroData.zip csv 形式 h句://凶ghty.gkルhyogo.ac.jp/confidentiaνZensho2004G討iMicroDataCSV.zip 8. 今後の展望 新擬似ミクロデ ー タは,誰でも何時でも自由にダウンロ ー ドして使える が,約7万件のデ ー タを 用いた統計解析は,誰にでも容易にできる という訳で はな い. どの様な解析がいかにしたらできる のか は, 無料でダウンロ ー ドできる web上のSASユ ー ザ ー 総会の論文集に収録されている 「Let'’s デ ー タ分析コンテスト」のこれまでの優秀賞の論文が参考になる. 今後, コンテスト にチャレンジす る ユ ー ザ ー が増えること を願っている. 今年 の第5回目 コンテスト の実施に間に合うように,新擬似ミクロデ ー タを提供できたことに安 堵している. ただ, 急造したために, 一部にケアレスミスがあったこと は,深くお詫びしたい. 今 回の 2004年デ ー タに加え ,1989年,1994年,1999年 の全国消費実態調査についても,匿名デ ー タ を用いて擬似ミクロデ ー タを作成し, 来年以降の 「Let’ sデ ー タ 分析 コ ン テ ス ト」に供したい. 謝 全国消費実態調査の匿名デ ー 辞 タの利用 のために,必要な予算上の措置を賜ったSAS Institute Japan (株) ,ならびに, 匿名デ ー タの利用に便宜を図って頂いた (独) 統計セ ン ター の それぞれ の関係各 位に深く感謝申し上げます. 参考文献 1)周防節雄(2015) 全国消費実態調査の匿名デ ー タとその符号表から自動的に SAS のデ ー タセット, 変数ラベルと変数フォ ー マット を作成する SAS プログラム,『SAS ユ ー ザ ー 総会 2015 論文集』, pp257・ 278 . 2)高橋行雄(2015)統計センター の匿名デ ー タ13万件を用いた統計解析の実践,『SASユ ー ザ ー 総会 2015論文集』,pp145 ・164. 3)高橋行雄(2016)刷Pによる第4回Let’ sデ ー タ分析の規定課題の解析,『SASユ ー ザ ー 総会2015論 文集』,pp313・3 29 . 4)周防節雄(2016) SASユ ー ザ ー 総会2016 における「Let'’s デ ー タ分析第4回ミクロデ ー タ分析コンテス 、 ト」の規定課題のSASプログ ラム解説,『SASユ ー ザ ー 総会2016論文集』,pp330-347. 5)高橋行雄(2016) 統計センター提供 の教育用擬似ミクロデ ー タを用いた SAS.刷P によるデ ー タ分析 コンテスト,htゆ://www.nstac.go.jp/services/pdf/1611 25_3・3 .pdf. 44
自治体におけるオ ー プンデ ー タ化への対応の現状と課題 有馬 昌宏 (兵庫県立大学応用情報科学研究科) Current Status and Problems of OpenData Initiatives in Local Governments Masahiro Arima Graduate School ofApplied Informatics, Unive凶ityofHyogo 要旨 スマ ー トフォンやソ ー シヤノレメディアの普及等を背景に, 多種多様な情報を相互に連携させて新たな 価値を生み出すことが期待され, 国や自治体が保有する公共デ ータが国民や企業が利用しやすい形で公 開されること, すなわち, 「 オ ー プンデ ータ」への取組が求められている. わが国では,2000年に内閣 に設置された高度情報通信ネットワ ー ク社会推進戦略本部が2011年7月4日に 「 電子行政オ ー プンデ ー タ戦略Jを策定し, オ ー プンデ ータへの取り組みを本格化させた. しかし, 政府はデ ータカタログサ イトDATA.GO.JPを通じてオ ー プンデ ータ化に先導的に取り組んではいるものの,自治体のオ ー プンデ ー タ化への対応は遅れており, 地域や自治体規模によっても対応に差が生じてきている. そこで, 本研 究では, 自治体におけるオ ー プンデ ータ化の現状を自治体の公式ウェブサイトの目視調査で把握し, オ ー プンデ ータ化への取組の違いを自治体の規模や財政力といった属性に加えて, 電子自治体への組織的 取組との関連で統計的に明らかにすることを試みた. キ ー ワ ー ド:オ ー プンデ ータ, 地方自治体, 目視調査, 名義ロジスティック回帰分析 1 . 研究の背景と研究の目的 1. 1 オ ー プンデ ー タとは スマ ー トフォンやタブレット端末やソ ー シャルメディアの普及等を背景に, 官民が有する多種多様な情報 を相互に連携させて新たな価値を生み出し, 経済を活性化するとともに透明性の高い政府を実現する手段の 一つである「オー プンデ ー タ」が注目を集めている. オ ー プンデ ー タとは, 総務省山によれば, 「機械判読 に適したデ ー タ形式で、 二次利用が可能な利用ルールで公開されたデ ー タ」であり、 「人手を多くかけずに デ ー タの二次利用を可能とするもの」とされている. オー プンデ ー タとして政府や自治体がデ ー タを積極的に公開していく動きは, アメリカにおいて始まった と言える. アメリカ合衆国の第44代大統領に2009年1月20日に就任したパラク ・ オパマ氏が, 就任式翌日 47
に行った行政機関の長への指令の中で,新政権はこれまでにないレベルのオ ー プンな政府すると宣言したが, この考えはオ ー プンガパメント・イニシアチプと呼ばれ, その具体的な取り組みがオ ー プンデ ー タであると されている. 1. 2 わが国のオ ー プンデ ー タの取組 上述のアメリカの動きに触発され, 日本でもオー プンデ ー タの動きが始まった. 2011 年 7 月 4 日に, 内閣 府に設置された高度情報通信ネットワ ー ク社会推進戦略本部(以降, IT総合戦略本部と略記) は, 電子行政 オ ー プンデ ー タ戦略を策定している. この戦略によれば, オ ー プンデ ー タの活用を促進する目的は次の3つ であるとされている(首相官邸[2]). ①透明性・信頼性の向上:デ ー タの公開による透明性と信頼性の向上. 機械判読が可能であり, 公開のため の手続きが不要であることから情報公開制度を上回る効果が期待できる. ②国民参加・官民協働の推進:官民協働の公共サ ー ビスや民間サ ー ビスが創出される. ③経済の活性化・行政の効率化:新ビジネスの創出や企業活動の効率化で経済が活性化される. また, 公共 デ ー タを用いて業務の効率化と高度化が図られる. また, IT 総合戦略本部は 20 日年 6 月に 「 電子オ ー プンデ ータ推進のためのロー ドマップ」 を策定し, 「 二 次利用の促進のための府省のデ ー タ公開に関する基本的考え方」 を策定し, そこでオ ー プンデ ー タの具体的 な取組内容とその工程が示されている.その具体的取組の 一つが政府のデ ー タカタログサイト 「 DATA.GO.JPJ である. DATA.GO.JPでは府省の公開しているデ ー タを横断検索し, 府省の公開URLからダウンロー ドでき る機能やオ ー プンデ ー タの活用事例へのリンクなどの機能が設けられており,2017 年 2 月 22 日時点で 18,582 件のデ ー タセットが公開されている. 地方公共団体においても, オ ー プンデ ー タを推進させるため, 2015 年 2 月に内閣官房情報通信技術 (IT) 総合戦略室[3]により, 「 地方公共団体オ ー プンデ ー タ推進ガイドライン」 が策定されている. その中で, 「 先 進的にオ ー プンデ ー タに取り組んでいる自治体はあるものの,全体としては 一 部である」と記載されており, 固としては地方自治体の取組み状況の低さを課題視していることがわかる. 1. 3 研究の目的 このような状況を受け, 地方自治体でのオ ー プンデ ー タへの取組みの現状を把握し, 地方自治体でオ ー プ ンデ ー タ化が進展しない原因を把握するために, オ ー プンデ ー タの利用者の視点で 1,718 の市町村と 23 の特 別区の公式ウェプサイトを目視で調査することとした. 目視調査により, オ ー プンデ ー タに取り組んでいる基礎自治体をリストアップし, オ ー プンデ ー タに取り 組んでいる自治体とそうでない自治体とではどのような違いがあるかを, オ ー プンデ ー タとして公開されて いる自治体のミクロ統計デ ー タ, 具体的には総務省統計局の「統計でみる市区町村のすがたJで得られる人 口規模と行政区分ならびに財政力指数のデ ー タ, および電子自治体への取組状況を示す総務省の 「地方自治 情報管理概要(地方公共団体における行政情報化の推進状況調査)」のデ ー タを用いて分析することを試みる こととした. 電子自治体への取組状況を考慮に入れるのは, オ ー プンデー タの推進が, 電子自治体推進に向けての直近 の指針である 2014 年3月の「電子自治体の取組みを加速するための 10 の指針」(総務省[4])において7番目 の指針として挙げられており, 電子自治体の推進体制とオ ー プンデ ー タの推進は密接な関係があると考えた からである . 48
2. 先行研究の概要 わが国のオ ー プンデ ータの推進の歴史は短く, そのために先行研究は多くなく, オ ー プンデ ー タの歴史や 意義などの啓蒙的な解説が多くなっている. また, 自治体でのオ ー プンデ ー タの推進の取組状況を把握する 調査も数少ない. このような中, 総務省は 20 日年と 2014 年に全園地方自治体を対象に 「 地域における ICT 利活用の現状に 関する調査」を実施しているが,オ ー プンデ ー タの取組については,20 日年は回答した 895 団体中で 6.8%が, 2014 年は 733 団体中で 9.7% が「既に取組を推進している」 と回答している (野村総合研究所[5 ]). また, オ ー プンデ ー タの推進に向けての課題としては, 「 具体的な利用イメ ー ジやニ ー ズの明確化J, 「 提供側の効果・ メリットの具体化」, 「 個人情報等の機微情報の扱いに関する制度的な整理J, 「 提供に関わる 費用や人的負担 の軽減」, 「 デ ー タ形式・構造等の標準化, 標準的なアプリケ ー ション ・ プログラミング・インタ ー フェイス の推進等, 標準的な利用に必要なシステム面の各種標準化」, 「 提供情報の内容詳細・費用負担等の調整」, 「 知 的財産等の権利処理の制度的な整理J などがあったとしている. 一方, オ ー プンデ ー タを推進している自治体とその数については, 政府のデ ー タカタログサイト DATA.GO. JP, 日本のオ ー プンデ ー タ都市マップ (h即://fukuno.jig.jp/2013/opendatamap), CityData (http://citydata.jp/), LinkData (h即://ja.linkdata.org/home), BODIK(ビッグデ ー タ&オ ー プンデ ー タ研究会 in 九州, http://www.bodik. jp/opendata/), 自治体オ ー プンデ ー タ(https://www.open-govemmentdata.org/), 一般財団法人日本情報経済社会 推進協会(オ ー プンデ ータ・センサス ステップアップガイド) などのサイトで確認することができるが, カウントの基準や政令市の行政区を含めるかどうかなどの対象自治体の定義の違いなどがあり, 正確に把握 するのは難しい状況である. 3. 研究の方法と分析結果 3. 1 自治体ウェプサイトの目視調査 先行研究のレビュ ー を踏まえて, 全国の 1,718 の市町村と 23 の特別区と 47 の都道府県に対して, 公式ウ ェブサイトを訪問してオ ー プンデ ー タが公開されているかどうかの目視調査を行うことで, オ ー プンデ ー タ に取り組んでいる自治体のリストを作成することとした. 具体的には, 全自治体の公式ウェプサイトを調べた上で, 2016 年 12 月から 2017 年1月にかけて, 、 ①各自治体の公式ウェブ サイトを訪問, ②サイト内検索で 「 オ ー プンデ ータJ をキ ー ワ ー ドとして検索, ③検索結果で何も表示されない場合はオ ー プンデ ー タに未対応と判定, ④検索結果が表示された場合は, オ ー プンデ ー タの公開サイトやカタログサイトが検索結果として表示され ているかどうかを確認して, 表示されていなければ未対応と判定, ⑤公開サイトあるいはカタログサイトがあれば,実際にアクセスして公開されているデ ー タ形式を確認して, T. Bemers-Lee のオ ー プンデ ー タの展開スキ ー ムであり評価指標の 一 つである 「 5 Star Open Data」 を適用し て, 2つ星以上であれば対応と判定, 1つ星以下は未対応と判定, という手順で判定を行った. 目視調査の結果として, 194 の基礎自治体がオ ー プンデ ー タに取り組んでいると判定され, 基礎自治体の オ ー プンデ ータ化率は II.I%であることが判明した. 都道府県別のオ ー プンデ ー タ化率は, 福井県が 100%で 49
トップであり,4 2.4 %の神奈川県,40.0%の静岡県が続く状況となっている. また,岩手県,山梨県,鳥取県, 高知県, 長崎県, 大分県, 宮崎県ではオ ー プンデ ー タ化率は 0%となっている. なお, この目視調査においては, 先行研究で示したサイトは 一 切参考にせず, サイト内検索結果と検索結 果のリンク先の確認による方法のみで、行った. 3. 2 オ ー プンデ ー タ化取組みの有無の分析 総務省の「地域におけるJCT利活用の現状に関する調査」 などの分析結果などによれば, オ ー プンデ ー タの推進の限害要因としては, 人員の不足や人的負担および費用負担の増加が挙げられている. そこで, 事 務権限の違いに加えて, 人口規模が大きいと職員数も多くて人員不足にはなりにくく, 財政状況がよければ 費用負担に耐えられると考えられることを考慮、して, 人口規模別行政区分と財政力指数でオ ー プンデ ー タへ の取組の有無の違いが説明できるのではなし、かとの作業仮説を立てた. また, オ ー プンデ ー タの推進が「電 子自治体の取組みを加速するための 10の指針J に挙げられていることから,電子自治体推進に向けての計画 策定ならびに 体制整備や基盤技術の導入がなされているかどうか, さらには職員の情報化研修に積極的な自 治体ではオ ー プンデ ー タも推進されているのではないかとのもう 一 つの作業仮説も考えた. これらの作業仮 説をまとめたものが図Iである. この作業仮説を検証するためにはデ ー タが必要になるが,国のオ ー プンデ ー タ化政策推進の恩恵を受けて, 人口や財政力指数のデ ー タはかStat (http:/ / www.e・s旬.t.go.jp/SG1e/ stat/eS刷TopPortal.d o)で「統計でみる市区町 村のすがた」がexcel形式公開されており,電子自治体推進に関連する自治体の状況を調査した地方自治情報 管理概要(地方公共団体における行政情報化の推進状況調査結果 )の個票デ ー タは総務省のサイト(http:// www.soumu.go.jp/denshijiti/060213_02.h伽tl)から同じくexcel形式でダウンロー ド可能となっている. 目視調査結果と政府のサイトからダウンロ ー ドした市区町村別の統計デ ー タおよび調査の個票デ ー からデ ータベ ー スを作成し, 統計解析ソフトウェアのJMP ll.0を利用して分析を行った結果をまとめたものが表l と表2である. 表lからは, ①人口規模別行政区分および財政力指数の高さに対応してオ ー プンデ ー タの推進が進展していること, ②自治体内部の判断で決定される電子自治体推進計画の策定状況や統合型GIS の導入状況ともオ ー プンデ ー タの推進が密接に関係していること, ③職員研修もオ ー プンデ ー タの推進と関連があり, 情報担当部円であるかどうかを問わず, 広く職員に対し て情報化に関する人材育成方針を策定している自治体ではオ ー プンデ ー タへの取組が進んでおり, 民間企 業等へ職員を研修派遣したり情報処理(技術 )に関する資格取得を奨励している自治体でもオ ー プンデ ー タの推進が進んでいること, などが読み取れる. すなわち,オ ープンデ ー タ 電子自治体推進計画の策定状況 の推進にあたっては,単に庁内にあるデ ー タを 「機械判読に適したデ ー タ形式で、二次利用が 可能な利用ル ー ルで公開Jしていくことで達成 されるものではなく,継続的に広範囲にわたっ てオ ー プンデ ー タを推進していくためには,体 統合型 GISの導入状況 制の整備,職員のスキル向上,庁内の部局横断 図l オ ー プンデ ー タ推進規定要因の分析枠組み 的な連携, 情報システムの基盤, トップの強い 50
表l オ ー プンデ ー タ推進に影響を及ぼす要因およびその水準別にみた推進比率の違い 財政力指数 1.0.8以上 2.0.5以上0.8未満 3.0.3以上0.5未満 4.0.3未満 全市区町村 推進 自治 t士樹ヤ 比率 290 30.0 451 15.1 447 5.6 553 2.5 11.1 1,741 人口規模別行政区分 1.政令市 2.中核市 3.特別区 4.人口10万人以上の市 5.人口5万人以上の市 6.人口5万人未満の市 7.町 8.村 全市区町村 推進 比率 95.0 49.5 43.5 26.3 15.9 7.1 2.3 0.6 11.1 1.導入済み 2.整備中 3.調査中・導入検討中 4.導入予定なし 全市区町村 01.職員に対し情報化研修を実施 02.ITを活用した業務改善方法について職員研修を実施 03.部外の情報化研修に職員を派遣 04.情報処理(技術)に関する資格取得を奨励 05.業務担当部門と情報担当部門の人事交流を積極的に推進 06.民間企業等へ職員を研修派遣 07.情報化のために外部の専門人材を採用 08.情報担当部門に対しての情報化に関する人材育成方針を策定 09.一般職員に対して情報化に関する人材育成方針を策定 10.いずれも行っていない 推進 自治 比率 H,:望台 15.4 1,118 24.6 114 17.1 865 32.4 68 203 18.2 33.3 21 22.0 118 53 43.4 40.0 40 2.7 378 1.策定済み 2策定予定 3.総合計画等に含めて策定 4.策定予定なし 全市区町村 自治 He韮b 20 91 23 156 270 253 745 183 1,741 推進 自治 米b 比率 J 士 19.3 610 15.1 53 7.2 611 5.1 467 11.l 1,741 推進 自治 比率 tt:;勘 14.4 854 11.8 51 9.7 330 6.5 506 11.l 1,741 電子自治体推進計画 統合型GJS 職員研修 表2 オ ー プンデ ー タ推進に影響を及ぼす要因の名義ロジスティック回帰分析結果 疑似決定係数 サンプル数 切片 人 口 規 模 政令市(70万人以上) 中核市(20万人以上) 特別区 人口10万人以上の市 人口5万人以上の市 人口5万人未満の市 町 財政 0.8以上 力 0.5以上0.8未満 指数 0.3以上0.5未満 0.2931 0.1289 0.2716 1,741 1,741 1,741 5.204 *" -3 651 "事 -5.946 榊・ 6.868 "事 8 148 "牟 3目 922 **・ 5.182 帥事 5.683 ..・ 4.942 帥事 2.999 "’ 4.173 ••• 2.537 •• 3.540 帥$ 2.106 帥 2.635 柿 1.027 1.447 2 803 ••• 2.246 ..・ I 922帥. 1.697 ..・ 1.227 帥 0.825 柿 I\ 卜\ 疑似決定係数 サンプル数 切片 策定済み 推進 計画 今後策定予定 総合計画等に含む 導入済み 統合 GIS 整備中 調査・検討中 01.職員に対し情報化研修を実施 02.!1活用の業務改善方法の職員研修実施 03.部外の情報化研修に職員を派遣 04.情報処理(技術)の資格取得を奨励 職員 05.業務部門と情報部門の人事交流推進 情報 研修 06.民間企業等へ職員を研修派遣 07.情報化のために外部の専門人材を採用 08.情報部門の情報化人材育成方針を策定 09.一般職員の情報化人材育成方針を策定 10.いずれも行っていない 0.0656 0.1342 1,741 1,741 牟 -3 288 ** -4.227 ..・ I 399柿牟 0 776 ••• 1.115 ** 0.777 市 0.103 0.330 0.666 *** 0.357 0.066 0.449 0.021 0.227 I 109 ••・ 0.345 0.768 ..・ 0.447 0.100 0.498 0.332 0.707 •• 0.574 0.254 リ ー ダーシップなど, 組織全体としての一 丸となったリ ー ダ ー シップなど, 組織全体としての一 丸となった 取組が必要となると考えられる. このような観点、から考えると, 有馬他[6]が提案している M.H創出ner[7]の成 、 熟度モデ ルで、あるPEMMを自治体にも適用してオ ー プンデ ー タの推進,そして最終的には電子自治体の推進 を試みることは, 有用であるように思われる. 表2には, オ ー プンデ ー タの推進に影響を及ぼす諸要因を総合的に評価するために名義ロジスティック回 帰分析を適用した結果をまとめて示している. これらの結果から, 我々の仮説, すなわち, 政令市および中 、 核市とそれ以外の市町村の権限の相違, 人口規模および 財政力指数の大小, 電子自治体推進計画の策定の有 無, 統合GISの導入状況, 職員の情報化関連研修の有無がオ ー プンデ ー タの推進に影響を及ぼしているとい う仮説のすべてが支持されることが明らかとなった. なお, 表2に要約した名義ロジスティック回帰分析で は, 被説明変数は(オ ー プンデ ー タに取り組んでいる)/(オ ー プンデ ー タに取り組んでいなし、)の対数オ ッズであり, 表中のへ特, ***はそれぞれ, 10%, 5%, 1%の有意水準で有意であることを示している. 51
4. まとめと今後の課題 本研究では, 自治体の公式ウェブサイトの目視調査で得られたオ ープンデ ー タの推進状況のデ ー タと政府 がオ ープンデ ー タとして公開している統計デ ー タおよび調査デ ー タを利用して, 2 つの作業仮説に基づき, オ ープンデ ー タの推進の背後にある要因および阻害要因を明らかにすることを試みた. 結果として, 組織と してのケイパピリティが相応に高くなければオ ープンデ ー タの推進に繋がらないのではなし、かとの感触を得 ることができた. ところで, 本研究を進めている最中の2017年2月16日に, 内閣官房情報通信技術(IT)総合戦略室から 「 オ ープンデ ー タの取組状況に関するアンケ ー ト」の調査結果が公表された. ー 象にオ プンデ ー この調査では, 全自治体を対 タ推進の現状と可能性や課題に関する設聞がなされ,全自治体からの回答が得られている. 全自治体のオ プンデ ー タの取組の状況はpdf形式で、公表されているので, 本研究での目視調査の結果と比 ー 較対照することで, さらなる知見が得られるのではないかと考える. また, 筆者が所属する兵庫ニュ ー メデ ィア推進協議会の調査研究グループも2016年12月から1月にかけて全都道府県および全市区町村を対象に 「 災害ハザ ー ド関連空間デ ー タのオ ープンデ ー タ化に関する調査」を実施しており, この調査の個票デ ー タ を使った分析も残された課題となっている. 可能であれば, これらの課題について対応した結果は,SASユ ー ザ ー 総会の本研究の発表時において紹介したい. 謝辞 本研究を行うにあたり, 兵庫県立大学応用情報科学研究科博士前期課程2年次の郵時韻氏には全国の自治 体のウェブサイトを訪問しての目視調査を実施してもらった. ここに記して感謝します. なお, 本論文は, 筆者が指導した郵時韻氏が経営情報学会関西支部第12 回学生論文発表会ならびに経営工学会関西支部およ び経営システム学会関西支部主催の平成28年度学生論文発表会に提出した予稿に加筆修正したものである. 参考文献 [1]総務省, 「 オ ープンデ ー タ戦略の推進J , http://www.soumu.go.jp/menu_seisaku/ictseisaku/ic甘iyou/opendata/. [2]首相官邸, 「 電子行政オ ー プンデ ー タ戦略J , http://www.kantei.go.pj /jp/singi/it2/denshigyousei.htm1. [3]内閣官房情報通信技術(IT)総合戦略室, 「地方公共団体オ ープンデ ー タ推進ガイドラインJ , 2015. [4]総務省, 「 電子自治体の取組みを加速させるためのIOの指針J , 2014. [5]野村総合研究所, 『地域におけるICT利活用の現状等に関する調査研究報告書』,坤://www.soumu伊・ _07 _houkoku.pdf, 2014. p/johotsusintokei/linkdata/h26 j [6]有馬昌宏 ・ 中土真輝・吉崎智信・山下綾子 ・ 島田達巳, 「 電子自治体実現に向けての成熟度モデ、ルの構築 の試みJ , 『経営情報学会20日年秋季全国研究発表大会予稿集』 (ウェブ版), 2011. [7] Hammer, M. ,“The Process Audit,'’ Harvard Busi-ness Review, April 2007, pp.111・123 (マイケル ・ ハマ ー (有 賀裕子訳), “PEMM でピジネスプロセスを改革する 2007年9月号,pp.28-45, 2007). [8]郵時韻, 『わが国自治体におけるオープンデ ー タ化の現状と課題』,兵庫県立大学応用情報科学研究科修 士論文,2017. 52
ID-POSだけで始める新しいRFM分析:デ ー タステップで実装するモンテカルロ 法を用いて 片桐智志 1 1 ネイチャ ーインサイト株式会社 A New RFM Analysis Only with Scanner Data: Using Monte Carlo Simulation Implemented by a Data Step KATAGIRI, Satoshi Nature InsightCo., Ltd. 要旨 RFM分析とは,最後に購買してからの経過日数(R,リセンシ ー ),購買頗度(F,フリクエンシ ー ), 購買額(M,マネタリ ー )の3つの指標から,利用顧客のセグメンテ ーションや優良顧客かどうかの 判定をおこなうフレ ー ムワ ークで,マ ー ケティングでよく用いられる. 従来の RFM分析ではしば しば,リセンシ ー の大きさで顧客の離脱の有無が判断される.[阿部,2011]は,この方法が理論的根 拠に弱いことを指摘し,統計的なモデリングに基づいて,RFM の3指標を同時に推定する方法を提 案している. この方法は,単純なD・POSデ ータだけでも実施できるという大きな利点がある. す なわち購買日とその購買金額のみを保存している購買履歴デ ータと,履歴を購買した顧客と 一 意に 紐づけられるDデ ータさえあれば可能となる. この新しいRFM分析の計算はモンテカルロ法によって行われるが,モデルの構造上,MCMCプ ロシジャで、計算をすることが難しい. 本稿ではBaseSASの基本的な機能であるデ ータステップを 用いて,モンテカルロ法による計算を実装した. デ ータステップの特性上,この方法であれば,高 性能なマシンでなくとも比較的高速で計算できることがわかった. キ ー ワ ー ド:RFM分析マ ー ケティングPOSデ ー タMCMCモンテカルロ法デ ー タステップ 53
初めに RFM分析は,最後の購買からの経過日数 (リセンシー,R),購買頻度(フリクエンシー ,F),購買額 (マネタ リ ー , M)の3要素によって顧客ひとりひとりセグメンテ ーションを行い,適切な販売戦略を計画するという, マ ー ケティングの技法の 一 種である.RFMの3指標は,ID-POSデー タや,オンラインショッピングサイトの トランザクションデ ー タが保持する情報から簡単に得られるため,RFM分析は様々な形態の小売業で幅広く 利用できる.特に,会員制でないために顧客がいつ離脱したかわからない「非契約型」購買において,リセ ンシー は離脱を推測するために重要な指標である. しかしながら,[阿部,20例][阿部,2008] (Abe, 2009) では, RFMのうちマネタリ ー の要素を除いた RF分析 を挙げて,この方法が購買を続ける期間の長さという情報を捨てていることを指摘している.かりにある顧 客のリセンシー の指標が良くても,顧客にとってそれが最後の購買となり,以後購入することがないかもし れないし,フリクエンシー が悪くても継続的に購入してくれるリピ ー ト客がいるかもしれない.そもそも, f離脱」は直接観測できないために,経験的にリセンシーがその代理変数として使われているにすぎない. そこで,前述の研究では,間接的に生存期聞を推測できるように,顧客の生存期聞がある分布にしたがうと 仮定したモデルを提案している. 提案されるモデル [阿部,2011]は,(Abe, 2009) で提案した RF分析に Mの要素を加え,RFMの3指標すべてを同時に扱うモ デルを提案した.これは次のような仮定をおいている. I. 各顧客の離脱までの期間(生存期間) は パラメ ー タμの指数分布にしたがい,平均は1/µである II. 各顧客の,離脱するまでの期間 (生存期間)の購買回数λは パラメ ー タポアソン分布にしたがう m. 各顧客の購買額は, パ ラメ ー タln7J ,w 2 の対数正規分布にしたがい,平均はηexp(w 2 /2)である. N. 各顧客の上記3つのパラメ ー タλ, μ,ηの対数は以下のように多変量正規分布にしたがう.ただし,i は顧客インデックスを表す. 。i 『lnl汀 := lln的|~N(B,'E.), Linη J , •,-[tl 以上の仮定は, 「各顧客Jとあるように,顧客ごとに異なる個別 パラメ ー タであり,μ,λ,η がそれぞれ R , F, Mに対応している. これらを計算することで個人レベルの特徴を得ることができる.さらに,仮定 IVにより, これらの個別パラメ ー タは多変量正規分布の平均eと分散Zという共通 パ ラメ ー タによって決まる.つまり これは階層ベイズモデルである.[阿部,2011]は,回帰係数を共通 パラメ ー タとして,顧客の年齢や性別と いったデモグラフィック属性を個別 パラメ ー タで回帰させる,多変量回帰モデルの適用も提案している.し かし,本稿では,利用できるデ ー タの制約から,多変量回帰モデルへと拡張せず,e とZの事前分布を,十分 に分散のある正規逆ウィシャ ー ト分布とした. 従来の RFM分析でも,リセンシー を用いることが問題であるというのは指摘したとおりである.つまり, 各顧客の離脱時期に関する情報が潜在変数として存在するが,観測することができない,ということである. [阿部,2011]のモデルに基づいて各ノ号ラメ ー タを計算する場合もこの問題は同様に存在する.そこで,潜在変 54
数である,観測期間後に離脱したか否かを表すzと,離脱時期を表すyとを擬似的に生成する方法が提案し
σ
ている.これは, 組問r & Wong, 1987)が提案した,潜在変数のあるモデルのパラメ ー タを推定する方法,い
わゆるデ
ー
タ拡張( data augmentation)法を利用して,以下のような手順で計算できる.より詳細な説明は,
(Abe, 2009) [阿部,2011]でなされている.
I
以下(I.a)一(I.のを顧客ごとに行う. t,T はそれぞれ,最初の購買日から,最後の購買日までの経過
日数と,観測終了日までの経過日数で,xはリピ ート購買回数(フリクエンシー から 1 を引いた値)であ
る.
I.a
λ, µ, t,T から,以下で与えられる確率をもとにzの乱数を発生させる.
p( z = 11λ, µ, t,T ):=
l.b
λ+μ
λ+ue耳
「
もし,z=O なら,期間内に離脱したことを意味するため,平均 1 /(λ +μ)の指数分布に従
うyの乱数を発生させる.ただし,t<y<T の範囲にある切断分布でなければならない.
l.c
仮定 IV で定めた事前分布と以下の尤度関数をもとに,事後分布にしたがうパラメ ー タ
Inλ , Inµ の乱数をそれぞれ発生させる.今回は,正規分布を提案分布 l として,ランダムウオ ー
ク ・ メトロポリス.へイスティングス(MH)法により乱数を発生させる.
xAtx-1
/{Ji.,µ Ix> O,t,T,z,y) :=一一- µ -zexp ト(λ+ µ)(zT + (1 - z)y]
r(x)
1
ただし,x=O の場合は,尤度は以下のようになる.
1
/(Ji.,µ I x = 0, t,T,z,y) := µ -zexp [一(Ji.+ µ)(zT + {l - z)y]
l.d
λ,μが所与のもとでは,仮定 IV より,Inη の条件事前分布は正規分布となる.さらに仮定 3
より,購買額の対数が正規分布であり,かっ事前分布の共役性から,事後分布を陽に得られる.
よって,ギブス ・ サンプラ ー によって事後分布にしたがう ln7J の乱数を発生させられる.
2
顧客ごとの個別パラメ ー タから,共通パラメ ー タである平均 e 。 と共分散Z 。 を更新する.平均パラ
メ ー タと共分散行列パラメ ー タの事前分布をそれぞれ多変量正規分布と逆ウィシャ ー ト分布とすると,
共役性から解析的に事後分布を得られるため,ここでもギブス ・ サンプラ ー を適用できる.
以上の手順を,サンプル系列が収束するまで行う.
SASを用いた実装
SAS にはマルコフ連鎖モンテカルロ法(MCMC)を実行する MCMC プロシジャが存在するが,上記のよ
うな,多次元分布のパラメ ー タを対数変換させる処理はさんだ計算を MCMC プロシジャで実行することは
できない .SAS江ML で提供されている IML プロシジャは行列計算が可能であり,これを用いて基本的なモン
テカルロ法の計算を行う方法が,すでに昨年の SAS Global Forum において,
(Lofland, 2016)によって言及さ
れている.しかし,今回は,SAS で最も基本的な機能のひとつである,デ ー タステップを用いて計算を行った.
その理由は次のとおりである.我々が計算するモデルはパラメ ー タが顧客数に比例して増大するため,メモ
リ容量を考慮する必要がある.デ ー タステップは,現在のオプザベ ー ションだけをメインメモリに読み込み
(プログラムデ ー タベクトル,PDV)逐次に処理する.よって,膨大なパラメ ー タを膨大な回数繰り返し計算す
る必要があるが,一方で,l つ前よりも過去の値をさかのぼって参照しない,という特徴のある MCMC のア
I対数を正規乱数として生成するため,λ,μの提案分布は対数正規分布となる.
55
ルゴリズムと相性が良い,と判断したからである. また,配列を行列に見立てて,行列どうしの積を求めたり, コレスキ ー 分解を実行したり,逆行列を求めたりする CALL ルー チンが FCMP プロシジャ内でのみ利用可能 である. これらを活用すれば比較的容易に今回のアルゴリズム を実装できる. このプログラム によって出力される SAS デー タセットは,オプザベー ションが各サンプ ルに対応し,すべ てのパラメー タを個別の変数( 列)として保持するワイド形式となる. そのソ ースコー ドがプログラムlで ある. ただし,行数の多さのため,解説するうえで重要でない,記述が元長になる計算処理の箇所は一 部省略 している. 以下,プログラム 1の処理 を解説する. まず,膨大な数のパラメー タを扱うため,パラメー タを配列として宣言する. 次に,入力デー タをハ ツ 、ンュ として読み込むことで,配列のインデック オブジェクト として読み込む( 5 ・12 行自). ハ ッシュオブジェクト スなどを使わずにすむため,ソ ースコー ド の見通しが良くなり,また,ハ ッシュイテレ ー タを用いることで 反復操作が可能になる,という利点がある. 読み込んでいる変数 last,end,repeat,spend,omega はそれぞ れ,t,T,x,顧客ごとの1回あたりの購買額の平均値,dである. 次に,あらかじめ指定したサンプリング回数だけ DO ルー プ を実行し,ルー プ内 の末尾で OUTPUT ステー トメントを用いてデー タセットへ出力する. このサンプリング回数ルー プの中では,先に示したアルゴリズ ムの(1 )で書いたように,顧客の個別 パラメー タに対してそれぞれ乱数を発生させる必要があるため,ルー プ 処理内でさ らに顧客 別のルー プ 処理 が必要となる. このルー プ 処理 は 利用する(16行目). このル ー ハ ッシュイテレ ー タオブジェクトを プ内で,まず ( 1・a)の式 で与えた確率を計算する関数 pz ()を FCMP プロシ ジャ で受録しておいたものを呼び出し (18行目),この確率に従うベルヌ ー イ乱数を生成しzとする. 次に, (1・ b) では,このz が l である場合,さ らにyの乱数を生成する. 乱数は切断指数分布にしたがうため,乱数を 生成する関数 randtexp ()をあらかじめ登録しておき呼び出した( 21 行目). 次に, ( 1-c)と(1-d) でそれぞれ 乱数を発生させる. こ こ でも尤度関数の計算に行列計算が必要なため,ソ ースコー ドを冗長にしないよう ( 24,25 行目). FCMP プロシジャの FUNCTION ステー トメントで関数を登録している ( 2 )の共通パラメー タの更新を行う. こちらはベ 26 行目でハ ッシュイテレ ー タによるルー プ が終了したら, クトルや行列を操作する処理のため,やはり FMCP プロシジャの SUBROUT悶Eステー トメントを用いて計 算のためのルー チンを作成した. さほど複雑な処理 ではないが,ルー プ 処理のネストが多く,ソ ースコー ド が冗長になる ので割愛した. DO ルー プの処理の最後に,サンプリング が何回目かを判定する( 28 行目). すでにパ ー ンイン期間を過ぎ ているなら,OUTPUT ステー トメントでそのオブザベー ションを出力する. これによって,デー タセットが ( サンプ ルの回数)吋最低限 必要なパラメー タ)のサイズで出力されるようになる. さ らに,ル ー プの最後に は,サンプリングの品質を確認するために採択率を計算して,別のデー タセットで出力している( 30 行目). 実験と結果 用いたデ ー タ 本稿ではオン ラインで一 般公開されている 2 種類のデー タでそれぞれ推定を行う. これらのデー タは RFM に必要な最低限の情報のみを保持しているため,先に述べたように多変量回帰モデルを利用できなかった.1 つは老舗オンライン楽曲 CD 販売サイトである CDNOWの販売履歴デー タで,Bruce Hardieの個人ペ ージ2 で 公開されている. これは 1997 年から 1998 年 6 月までのデー タで,詳細は( Fader & Hardie,2001 ) に書かれて 2 htや:/川ww.bruceh紅die.com/ 56
いる. このデ ー タセットはおよそ 23,000 人分のユニ ー クな顧客 ID を含んでいるが,本稿では時間の制約上, ランダム抽出した 1,000 人分のデ ー タに絞った. 検証のため,デ ー タ全体の期間のおよそ半分にあたる, 39 週 間分までを集計したも のを訓練デ ー タとしてパラメ ー タの計算に用いて, そ こからその後の購買回数や金額 の推定値を計算 し,全体の購買履歴の集計デ ー タと比較検証 する. このデ ー タの記述統計が表l, 表 2であ る(以下, これを CDNOW デ ー タと呼ぶ). もう l つ のデ ー タとして, UCI Machine Learning Repositoryで公開されている,“Online Retail Data Set” を利 かけて の,英国のあるオ 用した3 . これは(Chen, et al., 2012)で利用された, 2010 年 12月から 2011 年 12月に ンライン通販サ ー ビスの購買履歴であり, デ ー タの詳細はこの上記の文献に書かれている. しか し, この デ ー タには2点の問題がある. 1つは, この履歴には返品のレコ ー ドも含まれており,かっ返品 レコ ー ドは購 買レコ ー ドと紐づけられない,という点である. そ こで, 返品の場合は金額がマイナスで計上されているこ とを利用して, 商品カテゴリや商品 IDの一 致でレコ ー ドをマッチングさせることで返品 額と購入額を相殺 した. それ でも購入額や購買額がゼロ以下になるよう なレコ ー ドは除去する,という処理を行ったもうl つは, 履歴の取得期間に購買のあった利用客 をすべて集計しているため,特定の期間に登録した利用客のみ の購買デ ー タではなく,厳密な意味でRFMデ ー タではない,という点である . こちら は対処しょう がないた め,特に対処方法を設けな か った. 2010 年 12月~5 月の 6か月間の購買履歴だけを訓練デ ー タとした. このよ うにして作成した訓練デ ー タと検証 デ ー タの記述統計表がそれぞれ表 3 , 表 4である(以下 , これを Online Retail デ ー タと呼ぶ). 表 lCDNOW 購買デー タの記述統計(訓練デー タ) ラベル N 平均 標準偏差 最小値 中央値 最大値 リセンシー(日数) 1000 180.48 77.10 1.00 206.00 272.00 購買期間(日数} 1000 48.51 75.90 0.00 0.00 269.00 観測期間(日数} 1000 228.98 24.09 34.00 229.00 272.00 1000 1.97 1.86 1.00 1.00 20.00 1000 31.49 25.60 3.99 23.54 259.96 フリクエンシ ー (回数) 平均購買額納 表 2CDNOW の購買デ ー タの記述統計(検証デー タ) N 平均 標準偏差 最小値 中央値 最大値 Pセンシー (日数) 1000 363.43 180.70 0.00 468.00 544.00 購買期間(日数} 1000 137.82 181.33 0.00 1.50 540.00 観翻期間(日数} 1000 501.25 23.36 462.00 501.50 545.00 1000 2.74 3.06 1.00 2.00 33.00 1000 31.84 27.45 3.99 23.70 361.16 フリクエンシ ー 平均購買額納 (回数) 3ファイルは htや :H訂chive.ics.uci.edu/ml/datasets/Online+Retailで公開されている。 57
表3 Online Retailデー タの記述統計(訓練デ ー タ) N 平均 標準偏差 最小値 中央値 最大値 1000 64.51 51.65 1.00 52.00 181.00 購買期間(日数) 1000 46.18 58.50 0.00 0.00 179.00 観測期間(日数) 1000 110.69 53.76 1.00 116.00 181.00 1000 2.31 2.71 1.00 1.00 43.00 1000 413.20 654.36 3.75 298.82 12864.20 リセンシー (日数) ブリクエンシ ー (回数) 平均購買額(£) 表4 Online Retailデー タの記述統計(検証デー タ) N 平均 標準偏差 最小値 中央値 最大値 1000 363.43 180.70 0.00 468.00 544.00 購買期間(日数) 1000 137.82 181.33 0.00 1.50 540.00 観測期間(日数) 1000 501.25 23.36 462.00 501.50 545.00 1000 2.74 3.06 1.00 2.00 33.00 1000 31.84 27.45 3.99 23.70 361.16 リセンシー (日数) フリクエンシ ー (回数) 平均購買額(紛 結果 サンプリングは12,000回行い,最後の2,000 個のサンプルを利用した.受容率が40%程度になるよう,提 案分布の分散パラメ ー タを調整している.収束を判定するため,このサンプルを4系列生成し,(Gelman & Rubin, 1992)によるR統計量が1.1未満になることを確認した. 計算結果がどの程度妥当であるかを確認するため,事後パラメ ー タの中央値をもとに推定した購買頻度と 1回あたりの購買平均額,そ して期間中の購買総額について,推定値と実現値の相関係数と平均二乗誤差 (MSE)を計算した.表5はCDNOWデ ー タでの推定 結果で,購買総額におけるMSEの大きさを除けば, MS巳相関係数ともに良好である.一方で,表6は Online Retailデ ー タでの 結果であるが,特に購買平均額・ 購買総額のMSEが非常に大きい.これは,Online Retailの購買履歴デ ー タから購質額を正確に集計すること が不可能であることが一因であると考えられる.しか し,いずれのデ ー タであっても,購買平均額,購買総額 のMSEが大きいという傾向がある.これは,顧客に個別の分散を設定せず,購買履歴の全体から計算した分 散値を適用していること,また,リピ ー ト購買のない,つまり期間中にl度 しか買い物を していない顧客が 多く,それらの顧客の購買平均額の分散値の高精度な推定が難しいことが原因と考えられる. 表5CDNOWに対するモデルの当てはまり 指標 回盟 関 関 M M相 相 タ 練 証 練 証 訓 検 訓 検 デ ー 購買回数 購買平均額 購買総額 1.85 217.32 7550.00 5.16 335.47 11750.00 0.97 0.94 0.96 0.87 0.84 0.91 58
表 6 Online Retail に対するモデルの当てはまり デー タ 指標 購買回数 訓練 MSE 6.43 102523.00 l.12E+07 検証 MSE 62.11 154002.00 1.93E+08 訓練 相関 0.99 0.92 検証 相関 0.96 0.94 0.87 0.88 購買平均額 購買総額 また,[阿部,2011]では,この方法はデ ー タに含まれる顧客の人数による精度の低下はあまりない,と述べ ている. そこで,人数ではなくデ ー タの期間を短縮した場合についても検証した. Online Retail と CDNOW の 2 種類の訓練デ ー タの期間を 1 か月に短縮して同様に検証したところ,両方のデ ー タで,MSE と相関係数い ずれにも悪化が見られた. 表 7,表 8 がその結果である. 特に検証デ ー タでの MSE と相関係数の悪化が顕 著である. 表 7CDNOW 短縮デ ー タに対するモデルの当てはまり デー タ 指標 購買回数 購買平均額 購買総額 訓練 MSE 1.08 517.54 検証 MSE 13.51 2459.40 459.15 39188.00 訓練 相関 0.91 0.94 0.54 検証 相関 0.29 0.79 0.37 表 8 Online Retail 短縮デ ー タに対するモデルの当てはまり デー タ 指標 購買回数 購買平均額 購買総額 訓練 MSE 1.22 256187.00 1690000.00 検証 MSE 151.88 262485.00 319000000.00 訓練 相関 0.98 0.85 0.75 検証 相関 0.73 0.66 0.49 さらに,計算時間を検証するため,弊社の予備サ ー ノ併を用いて計算した. 比較のため,同等の処理を C++ で記述したプログラムの実行時間を併記する. 1,000 人分の顧客デ ー タに対し,C++, SAS プログラムそれぞれ, 12,000 回サンプリングし,うち 2,000 サンプルを保存する処理を 1 セットとし,l セットを 100 回繰り返した 結果が表9である. デ ー タステップによる計算速度が,C++とさほど差のないことがわかる. なお,計算アル ゴリズムの性質から,計算時聞は顧客の増加におおむね比例して増える. 表9計算時間の比較5 (単位:秒) C++ N 平均 標準偏差 最小値 最大値 I 100 257.026 2.234 251.63 261.89 SAS DATA STEP I 100 325.039 2.66 317.551 331.411 4 OS は 64bit Windows Server,クロック数は 3.1 GHz,物理メモリも十分あるマシンを用いた. 補助記憶装 置はHODである. ー 5 出力デ タセットのサイズが大きいため,特に HOD では書き込みに時間がかかり,処理時間に大きく影 響する. 条件をなるべく近くするため,C++のプログラムには結果をcsv形式で出力する処理も含めた. 59
また,普及品水準の性能である弊社備品のノ ートPCや,SAS on Demand for Academics6でも同様に試したと ころ,やはりいずれもlセットあたりの計算が数分程度で終わることを確認した. ++呈A 亦口両岡 以上の実験から, モ ンテカルロ法を用いて計算するRFM分析は,実際の顧客の特徴をよくとらえているこ とが実証的にも示された.[阿部,2011]の方法をマー ケティングの実務で応用できる見込みは大きい. 実行可能性の観点から言えば,SASのデー タステップを用いた処理は高速であり, 時間的なコストの点か らも実用的であると結論できる. また,個別パラメ ー タを計算するため,最低でも顧客数かける 3の個別パ ラメ ー タを出力することになり,サンプリング回数も併せて結果ファイルが膨大になりやすい. 対象となる 顧客が多数である場合は,高性能のマシンが要求されるが,近年のクラウド環境の普及を考慮すれば大きな 問題とはならないと考える. 一方で,実用上の課題もいくつか存在する. まず,今回使用したデー タの推定結果はいずれも,購買額の推定値の精度が比較的よくないという点であ る. デー タに含まれている顧客は 一度しか購買しないことが多いため,全ての購買額の分散を各顧客の標本 分散の代用として推定したということが原因と考えられる. モデルにおける購買額の推定は,実質,単純な 対数正規分布へのあてはめであるため, モデルの改善の余地があるといえる. もうlつの課題は, モ ンテカルロ法の収束の遅さである. 独立MH法やランダムウオ ークMH法ではサン プリングの効率が悪く,デー タしだいでは今回のように1万回程度のパ ー ンインが必要になる. 特に独立 MH法は,提案分布が事後分布の形状から大きく事離していた場合,局所解におちいる可能性がある. モ ンテ カルロ法に 一 般的な性質として,分散を小さくしすぎると,局所解から抜け出にくくなる. しかし,今回のそ 、 デ ルでは,分散を大きくしすぎるとyの乱数を生成する過程でyが無限大に発散しやすくなり,計算が安定 しないという問題がある. このような状況では うまく収束するように 何度も提案分布のパラメ ー タを調 整して計算しなおす必要があるため,実際の処理 時間以上に時間がかかってしまう. 安定的で,より収束の しやすい計算方法への改善は今後の課題である. 参考文献 Abe,M., 2009.“Counting Your Customers" One by One: A Hierarchical Bayes Extension to thePareto/NBDModel. Mar加ting Science, 28(3), pp. 541・553. Chen, D., Sain, S. L. & Kun, G., 2012. Data mining for the online retail indus町:A case study ofRFM model-based customer segmentation using data mining. Journal ofDatabase Marketing & Customer Strategy Management,l 9(3), pp・ 197-208. Fader, P. S. & Hardie, B. G. S., 2001. Forecasting Repeat Sales. Inteヴaces, 31(3 ), pp. 94・107. Gelman, A. & Rubin, D. B., 1992. Inference from Iterative Simulation UsingMultiple Sequences. Statistical Science, 7(4), pp. 457-472. Lofland, C. L., 2016. MCMC in SAS: From Scratch or by PROC. [Online] Available at: httos://sas2lobalforum20I 6.lanvonevents.com/connect/自leDownload/session/E8C6352BE6C09I 88EODD97C7BB4893 6 https://www.sas.com/ja_jp/indus甘y/higher-education/on-demand-for-academics.html 60
32/9080 Lofland-FP 9080.odf [Accessed21 6 2017]. T田mer, M.A. & Wong, W.H., 1987. The Calculation o f Posterior Dis仕ibutions by Data Augmen匂tion.Journal of the American Statistical Association, 82(398), pp. 548・550. 、 阿部誠., 2004.CRM のデ ー タ分析に理論とモデ ルを組み込む ー消費者行動理論に基づいた RF 分析ヘ統産 停裁Issue 426, pp. 10・17. 阿部誠., 2008. 消費者行動理論にもとづいた個人レベルの RF 分析:階層ベイズによる P 訂eto/NBD モデル の改良β本移管針学会話37[2], pp. 239・259. 、 阿部誠., 2011. RFM 指標と顧客生涯価値:階層ベイズモデ ルを使った非契約型顧客関係管理における消費 者行動の分析. β本車ff,子学会話41[1], pp. 51・81. 61
プログラムlMCMCを実行するソ ー スコ ー ド
1
2
data &DS.(drop=accept_l accept_m)
work.report&CHAIN.(keep=chain iteration accept_! accept_m);
3
/* (中略)初期値とハイパーパラメ ー タの設定 本 /
4
i干_N
= 1 then do ,
5
length ID
$10 last end repeat spend omega 8 ;
6
declare hash
7
r千m(dataset:
8
・
ordered :
”
&INDS.(keep=ID last end repeat spend omega)
3
’
yes );
9
declare hite「 「fmiter ( ・ r千m ・ );
10
「fm.de干inekey ( ・ ID ’ );
11
rfm.de干inedata ( last ’,
12
”
・
’
end', 'repeat ・ 3 ・ spend ・ 3
・
omega');
「fm.de干inedone();
13
end;
14
do iteration=l to &TOTAL_ITER.;
/*
ここから MC サンプリング開始*/
15
C = 1 ,
16
do while (「干miter.next() = 0) /* (1)顧客ごとのパラメ ー タ */
;
17
/* (1 a)乱数 z の生成*/
18
z_[c] = pz(exp(lnlambda_[c]), exp(lnlambda_[c]), last, end) >
四
・
’
rand ( uni干orm );
19
20
/* (1・b )乱数 y の生成*/
21
i干 z_[c] = 0 then y_[c] = randtexp(exp(lnlambda_[c]) + exp(lnmu_[c]),
22
last, end);
23
else y一[c] = end;
24
/* (1-c) (中略)lambda, muの乱数発生*/
25
/* (1-d) (中路)etaの乱数発生一一
本
/
26
end ,
27
/* (2) (中略) theta, Gamma の更新*/
28
if iteration > &BURNIN. then output &DS.;
29
30
31
end;
*
/ 中略)サンプル受容率の計算*/
(
run ,
62
/*
サンプルの保存*/
最新AIの話題 ~AIの権利は誰のもの?~ 0小野 潔 株式会社インテック 社会システムプラットフォ ー ム開発部 O 北 M副 φ t 川出 凶 耐 叫坤 白 波 F且16t nuρしw mhw nrLH R Kiyoshi Ono Social Systems Platfonn Development Dept,問団C Inc. 要旨 AIの新しい理論や技術が提案され、今回のAIブー ムを牽引している。これらは画像解析とIoTなどの ピックデータの業務分析に導入され、成果が出始めている。転移学習や蒸留はDeepLearningの最新技 術であるが、AIの権利を守る法律が未劉請のため、 法律上のトラブ、ルが懸念される。 トラブルを避け るためには、AI理論を理解したうえで、AIの権利を明示する当事者聞の合意・契約が必要である。本 稿の前半は最新AI理論とその動向を紹介し、後半はAIの権利を論じる。 キ ー ワ ー ド:Deep Learning 、 トピックモデ ル 1. はじめに ” “ “ DeepLearning ー “ 転移学習蒸留強化学習ベイジアンネットワ ーク ソストクラスタリングAIの権利保護 強化学習 ” ‘ ” 。 “トピックモデ ル の新しい理論が、近年発展し続けている。 またコンヒ ユ ” タの発達により ペイジアンネットワ ーク が見直され始めた。 これら理論は画像解析やIoTのピックデー タの業務分析に導入され、今回の第三次AIブー ムを牽引している。 昨年からAI組込型の業務アプリケ ー ションが広がっているが、そのAlの権利を守る法律がまったくの 未整備である。Alモデルのノウハウが主にベンチャ ー企業(以後、Alベンダーと称する)を中心に有して いるため、一般企業はAIベンダーにAlモデルの開発を委託あるいは、共同でAlアプリケ ー ションの開発 を行なう。ところが一 般企業の法務部も弁護士も急速なAl理論の発展について行けないのが実情であり、 今後はAlの権利トラブルが懸念される。最近はAl専門家の中でもAI発展の阻害要因として危倶されてい る。 Alの権利を考える上で、最 新のAl理論を理解することが重要である。本稿の前半は、AIの適応分野、 AI理論の動向、SAS の位置づけ、今話題のDeepLearningのネットワ ークのコピー技術を紹介する。後半は Alの権利について、Alベンダ ーとユ ー ザ ー の当事者間の合意・契約を論じる。 63
2. 今回のAIブ ー ムの根源は? 守 従来の統計モデルや AI モテ ルの構築は、 分析者がリアルの対象物を観察し、 特徴点を見出すことか ら、 モデルの構築から始まる。 モデル構築後の処理は自動化されるが、 モデル化そのものには分析者が介在 する必要があった。 しかし最近(2012 年以降)の機械学習や DeepLearning の特徴抽出は、 分析者を介在せず に自動化されつつある。 今回の AI ブームの根源の一 つは、 次元圧縮手法を利用した自動的な特徴抽出であ 。 守 る。 DeepLearning は画像デー タの次元圧縮から特徴量を算出し、 トヒ ックモテ ルは文章や顧客行動の高次元 デー タを次元圧縮で、 低次元のクラスタリング(=セグメント)に射影する。 そして DeepLearning はコンビ ュ ー タの眼となることで、 従来のシステムが AI 組込型の業務アプリケ ー ションへ大きく変貌しようとして いる。 AI は様々な業種で利用されつつある。 金融業の AI の適応分野と用いられる技術を表1 1 に示す。 バタ シ認識による分類 適応分野 主な分析技術 技 術 ー 紙申込書の文字認識、チャ ート分析 Deeplearning (CNN,RNN, AutoEncoder)、 OCR パタ ーン認識による異常 D目plearni旬、ペイジアシね1 不正検知(口座開設、不正取引等)、マネ ー ロンタJシグ ー 値検知 トワ ク、トッピクモデル 分析、不正取引、サイバ ー セキュリティ テキストマイニシグ/音声 構文繍斤、形態素分析、ペイジ 業務マニュアル/芳首E書の検索、コ ールセンタ ー AI、ビジネス 認前意昧分析 ー アシネットワ ク、トピックモデル、 チャット分析、接客の自動化、営業日誌分析 Deeplearning (RNN, LSTM) ー マ と戸y卜/CRM分析 デー タマイニング、強化学習、 金融商品のレコメシド、EBM(イベント・ペース ・ マ ー ケティシ トピックモデル、ル-JI,/'\ース推 グ)、MA(マ ー ケティシグ・オ ートメ ー ション) 論、ペイ又准論 スコアリシグ/予測分析 データマイニング(決定木、 与信モデル(住宅ロ ーン、無担保ロ ーシ、クレジット入 ロジスティック回帰、アシサンプル学 会)、不動産/賃貸料の価格予測 習) 投資戦略の構築 データマイニング、強化学習、遺 ロボ ・ アドバイザー、アルゴリズム・トレ ー ド、高頻度取引、投 伝子アルコリズム、アシサンカレ学 信リコメシド/ポ ートフォリオ分析 習 AI車由主型の業務アヲJ ー ケ ション データマイニング、ペイジアンネ少ト 職場の愚直配置、人事/採用・評価・配属の AI活用、事 ワ ーク、Deeplearni旬、遺伝子 務処理の自動化 アルヨJズム 表1金融業のAI適応分野と掛町 l ‘ デー タマイニングや DeepLeaning 等は複数の分析手法やモデ ルの集合体で、あり、 それぞれが得意とする分析対象や分析条 件が違う。本稿では代表的モデルを示す。 64
3. 最新のAIの動向 筆者が注目するAI理論の分野は、 ①画像のパター ン認識、 ②シー ケンシャル(時系列) データのパタ ー ” “ ン認識、 ③ より良い戦略 を選択する自己学習、 ④文章明子動の潜在意味解析、 ⑤因果関係を示すネッ トワ ー クが挙げられる(表2参照)。 適用分野 分析モデル 説 画像デー タの,J('i- Deeplearning: シ認識 •CNN (畳込みニュ ーラルネットワ が、Deep Learningの中間層は3~数100層にもなる。画像 ー ク) 鮒胸CNNの中間層は畳み込み層とプー リシグ層で構成され、 • Auto Encoder 畳み込み眉は画像の局所的な特徴を抽出し、プー リシグ層は局 (画働、らの 特徴抽出) 明 ニュ ー ラ,JLヰットワ ークは入力層、中間層、出力層から 構成される 所的な特徴をまとめる。この機能により入力画像の特徴を維持し ながら画像を次元圧縮できる。 シーケンシャルデー Deepleaming: RNN、店TMは時系列デー タや音声デー タの分析、文脈の文法 タのバタ ー 〉詰識 ·RNN (再 l局型ニュ ーラルネットワ 解析に優れている。与えぽlた画像力も説明文を自動 生成した ク) (動画/音声の特 ー 徴抽出、自然言 ·LSTM 語処理) ·RBM (制限荊レツマシマシシ ) 強化学習 り、文章 を生成できる.CNN と異なるのは、デー タのフィ ー ド}(,yク のために情報を書える記憶素子を有することである。 Reinfo 『℃ementLeaming エージエシ卜( 行動主体)は行動 を遡尺することで環境力ち報酬 (より良し情動を を得られ、工- 5iエシトはより良川す動のi劃Rを学習する。つまり強 自己学習) 化学習は一連の行動組重じて報酬が最も多〈得られるような戦略 を学習する。動的計画法のーっと位置づけられる。 潜在意味解析 Topic Model (トピVクモデル): ( 文章の意昧解 ·LD A は、話題な日め大ざっぱな意昧である。単語の出現目敏から 文章 事尺、ID-POSデ •PLSA のセグメシ阿じでき意昧鰐尺の分析力司能。 文章の意昧解釈tf. ー 離散デー タ に隠れた潜在的なトピvクを推定する モデル。トピックと けでなくピックデー タの行動解析力略用できる。 タ 分析) 因果関係解析 Bayesian netwo欣 ペイジアシ初トワ ークはグラフ構造を有するグラフイカルモデルであ (様々な因果関 ー る。晶丘は高速計算で大量デー タ から知縦抽出できるようにな (ペイジアン初トワ ク) 係から将来を予 り、再び注目されてきた。ペイジアシネψトワ ークは消費者の属性と 測) 行動の因果関係を数量的推定できるので、広告などめマー ケティ シグの分野にも使われる。 表2注目されるAI理論 (1)DeepLearning DeepLearningは、 多層構造(3層以上の中間層)のニューラルネットワ ー クを用いた機械学習である。 画 像データを入力すると、 情報が第1層からより深くへ伝達されるうちに、 各層で特徴量が自動計算され、 学 習が繰り返される。 画像データの解析はDeepLearningの独壇場であるが、 多くの欠点、を有する。 一つは膨大なパラメ ータ 一・チューニングである。 現在は自動パラメ ータ ー ・チュー ニング機能を開発し、 最適値を探索するが、 分 析対象により数カ月のシミュレ ー ションを要する。 さらにDeepLearningは脳を真似たはずなのに、 脳とは 程遠い複雑なネットワ ー ク構造 を形成する点が課題である。 例えばDeepLearningによる動画分析は動画を 65
分解し、 静止画像ごとに複数ネットワ ークを学習させ、 最後に全層を結合させる方法が用いる。 色やサイズ の分析も同様である。 DeepLearningは少し複雑なパターン認識をさせようとすると、 複数のネットワ ー クを構築することにな るが、 脳がそのような複雑な処理をしているとは恩われない。 脳医学の実験よれば、 脳の信号の多くはフィ ー ドパックしていることが判明している。 生物が少ない教師デ ータで効率よく学習できるのは、 脳がフィー ドパック型のネットワ ークを有するのが 一因と言われる。 画像デ ータの特徴抽出によく用いられるC附(畳 込みニューラルネットワ ー ク)はフィー ドフォワ ー ド型( 一 方通行型)のネットワ ー ク構造である。 対して シー ケンシャル(時系列)デ ータを学習する剛N(再帰型ニュー ラルネットワ ー ク)はフィー ドパック型の ネットワ ーク構造を有する。剛N,LSTMは収東条件等の克服すべき課題が多いが、 世界中で技術競争を加速し ている。 もし新技術が確立できれば、 動画分析、 音声分析、 言語解析分析も格段に進む。 (2)強化学習(Reinforcement Learning) a 強化学習は世界囲碁チャンヒ オンを破ったソフト(アルファ碁)に使われた戦略の学習法である。 強化 学習は試行錯誤を通じて環境状況に適応する学習制御する。 教師あり学習とは異なり, 状態入力に対する正 しい行動を明示する教師がなく、 代わりにポイントを報酬として与えることで学習させる。 ロボット、 自動 運転自動車、 ゲー ミング、 ナピゲ ーション、 投資戦略の利用が進んでいる。 (3)トピックモデル(確率的浴在意味解析法) ・ トヒ ックモデルは ベクトル空間モデルを利用した自然言語処理の技法である。 文書群とそこに含まれる 単語群から、概念の集合(トピック)を生成することで、 文書を生成される過程を確率的する。 具体的には 。 「文書J×「単語」の共起行列デ ー タから文書分類ができる。 またトヒ ックモデルはピックデ ー タ(IDPOS、GPS、IoT等)の様々な離散デ ー タの行動分析にも応用できる。 例えば「顧客IDJ×「購入物Jの共起 行列デー タはID-POS データ分析に利用されている。 。 トヒ ツクモデノレは高次元のデー タを低次元に変換する次元圧縮手法であり、 同時にデ ー タをクラスタリ ングする。 このクラスタリングはソフトクラスタリングと呼ばれ、 全ての変数が全てのクラスに所属し、 そ の所属度合が確信度で算出される。 また確率生成モデルであるためAICが算出でき、 これを利用すれば高直 クラス数の近傍を自動算出できる。 従来のハ ー ドクラスタリング2ではクラス数を計算で求められず、 分析 者の感性で決めること多い。 トピックモデルでID-P偲デ ー タを分析するとクラス数が50~100個にもな り、 様々なマ ー ケティング戦略を立案できる。 実務では既に利用されている。 (4)ベイジアンネットワ ー ク(Bayesian network) ペイジアンネットワ ー クは、 因果関係を確率により記述するグラフイカルモデルの1つで、 複雑な因果 関係の推論を有向非巡回グラフ構造により表現し、個々の変数の関係を条件っき確率で表す確率推論のモデ ルである。 コ ンピュター の能力の問題で、 実務デ ータ向きでなかったが、 最近の コ ンピュ ータの向上と効率 2クラスタリング(k-means、ウォ ー ド法、階差層的クラスター分析等)はハー ドクラスタリングと呼ばれ、ある変数が1グル ー プに所属すると他グループには所属できない。 ハー ドクラスタリングは大量の変数やテラバイト級のピックデー タの分析 では全体的に距離が大きく離れ、解を得るのは容易でなし、。 66
の良いアルゴリズムの発見からピックデー タにも対応できるようになった。 ペイジアンネットワ ークはトピ ックモデルによるクラス分類、 他属性、行動デー タ等を因果関係を結び付けることができるため、 ヒVクデ ー タの分析ツ ー ルとして研究されている。 4. 驚異の DeepLearning の汎用技術(転移学習と蒸留) 本稿後半のAI権利保護では、DeepLearning のネットワ ークが大きな課題となる。ここでは DeepLearning の汎用技術である「転移学習Jと「蒸留」を紹介する。 (1)転移学習 学習済みネットワ ークは汎用性が高く、強力な特徴抽出器として他タスクのパター ン認識に転移できる。 転移学習は学習済みネットワ ークを初期状態とし、他タスクの学習デー タで学習させることで、少数の学習 デー タから他のパター ンを学習させる技術である。 最初からモデルを生成するよりも学習効率が向上する。 学習済みネットワ ークは入力層に近い層から出力層に近づくにつれて、徐々に低次の特徴(線、曲線等) から意味的な特徴 (顔、物体等) に構造化される。 低層の特徴をとると、高い識別構造が得られず、逆に高層 の特徴を選ぶと、学習デー タに特化しすぎて性能が下がる。 そこでファインチュ ー ニング(Fine-Tuning)の転 移学習では、学習済みネットワ ークの手前の中間層を他タスクの出力層につけかえる。 他部分は学習済みパ ラメ ー タを初期値とし、他タスクの教師デー タを学習させる。 。 。 |入力庖| 1 p、ヌ:::J-f直 1 1 1 局日タスクの.7'..;1:J-f直 。 図1瞬伴習によるファインチュ ー ニングのイメ ー ジ 0.24 |出力眉| 、 書僅尊E壬ヨr苧巨 0.99 d, 、 0.0 d, 、 ., 0.01 0.11 |出力層| |中間層| |入力層| 。 1 。 3、ヌョ4直 。 。 1 図2蒸留のネットワ ー ク収縮のイメ ー ジ 67 。 3、ヌョ4直 。
(2)蒸留(Distillation) 蒸留は既に学習された ネットワ ー クを他のネットワ ー クで高速 学習させたり 、大規模なネットワ ー クの 学習結果を 小さなネットワ ー クに収縮する技術である。 通常は与えられた 画像が数字5の画像ならば、 数字 5 に対応した 出力ノ ー ド が1で、 他の出力ノ ー ドがOと なる学習を行う。 そ れに対して蒸留は教師モデルの 出力ノ ー ドの確率分布に合わせて学習させる。 蒸留は複雑なネットワ ー ク とほぼ同じ性能をもた せながら、 シンプル なネットワ ー クに収縮できる。 この技術を利用すれば、メモリが充分でなく処理能力 が小さいスマ ー トフォンやエッジ端末、さらにはloTデバイスを搭載したチップでも、パ ターン認識が高速で実現できる。 5. SASのAIについて SAS Viyaには様々な利点があるが、 デ ー タ分析者にとって重要点は、SAS Viya が公開RESTAPI経由で 一般的 なプログラミング言語(Pyhon, Java, Lua) から利用できることである。 他言語で開発したア プ リケ ー ションにSASの各種アルゴリズムを組込みゃすくなる。 今や、 クラワド側では様々なDeepLearningやAIフ レ ームワ ー ク が公開 されているが、 利用でできる統計関数 はSAS関数に比べて機能 が見劣りする。 実は米国 では統計ソフト (SAS 、R、MatLab等)の優位性は認められているため、フレ ームワ ー クの提供会社は必要最 小限の統計関数しか搭載せず、不足分は統計ソフトを呼び出すことで、 ユー ザー ニ ー ズを満たしている。 SASの Enterprise胡inerverl4. 1ではベイジアンネットワ ー クのプロシ ー ジャ(PROC HPB間町) が利用 。 できる。 また新規の特異値分解のSAS関数を利用すれば、 トヒ ックモデルを開発できる。 概 翻市なし学習 暗 移動ワィシドウ主成分分析は、時閣の紐畠と主成分の変化を評価 ザボー ド'\�t,.Jレデー タ説明分相ま、単一分類力、ら成る機械学習技法 ロバスト主成分分析は、特徴抽出および異常検出のための行列分解を行う 教師あり学習 部分最小二乗法回帰分析は、部分最小二乗法分析を行う 分位回帰分析は、モデル遇尺の自動化により分位回帰分析を予測モデ脱適合 テキスト マイニング テキス H詩文解析およびトピタク検出タスクカち、ドキュメントを用語対ドキユメシト行列に構文解析 し、特劃直分解lこより用語対ドキユメシNT列柿トピックを抽出 ブール値規則タスクは、ブール値規則をテキストデータカち抽出 表 3 SAS の新しい AI 関数(SAS 社Web力ち抜粋) 6. AI権利の予備知識 現状では法的にAIの権利は守れていない。 そのためAIモデル開発ではAIの権利を明示した当事者間 の合意・契約が重要になる。本稿では実務家の観点から、AIモデル開発に関連した契約関連 に限定して論じ る。 AIモデル開発 は、 デ ー タを提供した ユー ザーに権利 が発生し、同時に学習デ ー タ やモデルを開発した ベンダー 側にも権利が発生する。 AIモデル開発の成果物 はプログラム以外にも、例えば学習デ ー 夕、 パラメ ー ターを含む学習済みモデル 、モデルノウハウなど数多く存在する。 通常のシ ステム開発ではその成果物で あるプログラムは著作権法で保護される。 同様にAIモデル開発のプログラムは著作権法で保護されるが、 それ以外の成果物は著作権・特許権に該当しないため、AIの権利が完全には守られない。 68
この状態を放置すれば近将来、 違法行為が発生する恐れがある。 例えば、 既にAIが音楽を作曲できる アプリケ ー ションが存在するが、Alは人でないので作曲の著作権はない。 しかし人による創作物とAI創作 物を見分けることは困難であり、Alによる創作物を人による創作物と偽れば、 法的保護が受けられる。 そし てAlは人よりも高い生産性を有するので、Alの進歩がこのまま進めば、AIが作曲家、映像クリエイタ ー 芸術家などの活蕗の場を奪うことにもなる。 また既に違法状態が続いているのが、 撮影者の承諾なしに集め たインター ネット画像の学習デー タへの利用である。 これらの問題は関係者や業界団体が多く、 解決の糸口 さえも見出されていない。 7. AI権利の関係者 Alベンダーとユ ー ザ ーとの合意・契約では、 最初にAIの権利関係者洗い出す作業を行う。 Al権利の主 体候補は、 ①プログラム開発者、 ②Alの学習用デー タの提供者、③1AIモデルの開発会社であるが、 それ以 外にも多くの権利関係者が存在する(表4参照)。 説 権利関係者 ー 学習デ 舛是供者 学習データの収集者 明 備 考 ー インタ ネ拶卜上に写真を公開 撮影人物と揖影者に著作権力協るが、学習デー タ収集者カ唯 しid最影者 利保有者に承諾を得ていなしEケースが多く、今後の課題に。 イシタ ーエ仰卜上の写真を学習 Deepleamingでは該当タスクに適�n:数万枚の写真デー デー タとして収集した者 タを収集する必要がある。 ー 学習デ タの収集泊グ インタ ニ仰ト上の写真を収集 実関こイシタネットから該当タスクに合う写真収集するプログラム ラムの開発者 ブUグラムの開発者 カT開発されている。 学習デー タの加工者 学習デー タを加工する繋縛者 AIの精度を向上(賢〈)させるために、写真の一部tJ,y卜、拡 ー 大、回転、反転等の加工したものを学醤デー タに使う。 ー 学習デ タの加工ブログ 加工ブbグラム開発者 上記のノウハウはプログラム開発されている。 メイシのAIのプログラム開発 ブUグラムには開発者の著作権力抜渇が、一般にモデルの1/(ラメ 者 ー ラムの開発者 AIのプログラム開発者 AIのパラメ ー タ ー算出者 該当タスクに適合するAIの1/( タ ーには著作権はおよばない. ブUグラム開発ti(ラメ ー タ ー 算出は別作業。モデJゆパラメー タ ラメ タ の算出者 をシミユレ ーショシ等で算出する。 学習を行った人 AIに学習させた人 学習を前人ti(ラメー タ ー算出者は一致するケー劫T多い。 AIコンテンツの漏量者 AIの創作した造形物・画像等 映画コンテンツの関係者はAI倉M伺初を広めることで莫大な利 を流通させた人 益を得られるが、その権利保護を主張。 ー 創作物をつくるAI ー AIは既に初期の創乍制作ま 事例:公立は司さて未来大学はAIで作成した小説を作家星 で至っているがAIは人でない 新一氏のショー トショ- H乍副5募。スペインのマラガ大学は自 ので権利は何も認められない 動作曲「ラムス(lamus)Jを開発。 表4 AIの権利関係者の例 8. 米国AI会社の戦略 Alのプログラム開発、 学習によるパラメ ー タ ー設定には、 膨大な手間や時間、 計算機資源を労する。 それに対して転移学習、 蒸留は、 元の学習済みネットワ ー クよりも優れた精度や計算速度の向上を有する新 69
しいネットワ ー クが容易にできてしまう。 しかも困ったことに、パラメ ー タ ー やネットワ ー ク構造が変わる ため、転移学習、蒸留の立証は実質的にほぼ不可能である。 この手のAI権利を守る方法の一つは、クラウド仮I]にネットワ ー クを持たせ、ネットワ ー ク自体を外部 へダウンロー ドさせないことである。 エ ッジ側では学習デ ー タの作成の前処理のみを行い、学習デ ー タをア ップロー ドさせ、クラウド側でネットワ ー クの学習をさせることである。 2015年頃から米国のAI会社では自社のクラウド側でDeepLearningやAIフレ ー ムワ ー クを公開してい 、 る。 今や、手頃な使用料さえ払えば、誰でもがAIモデ ルを構築で、 きる快適な環境を提供され、しかも学習 済みネットワ ー クのライブラリさえも提供されている。 ここからはAI専門家の推測であるが、AIフレ ー ム ワ ー クの提供会社はクラウド側で元の学習済みネットワ ー クを管理できるので、転移学習、蒸留の立証は容 易である。 もしAI権利の法律が制定されたら、AIフレ ームワ ー クで構築したモデルの権利は、AIフレ ーム ワ ー クの提供会社に帰属することになりかねない。 9. AIベンダー とユ ー ザ ー との合意・契約事項 ‘ AIベンダー とユ ー ザー との合意・契約では、①,AIモデ ルを作成したプログラム、②学習デー 夕、③ノ号 、 ラメ ー タ ーを含む学習済みモデ、ル、④1AIモデ ルを組込んだ業務プログラム、⑤ノウハウについての権利を明 確にする必要がある。 ①~⑤を具体的に述べる。 例えばAIベンダー が一般企業(ユ ー ザー)が提供した学 習デ ー タをSAS ViyaでAI組込型の業務アプリケ ーションを開発する場合を考える。 AIモデルはSAS 言語で 開発、業務アプリケ ーションはJava言語で開発、そしてJavaからSAS ViyaのAIモデルを呼び出すシステ ムとする。 、 さて①1AIモデ ル作成プログラムはAIベンダーが開発したSAS プログラムを指す。 ②の学習デ ー タの作 成にはAIベンダー のノウハウが必要になる。 一般にユ ー ザー の提供デ ー タをそのまま学習デ ー タに使用し ない。 賢いAIを創造するには、提供デ ー タのノイズ除去だけでなく、抽出対象物(文字、猫等)以外の部 分をカット、あるいは対象物の縮小、拡大、回転、反転等の画像処理を行う。 ③はAIモデルの最適パラメ ー ターを指す。 DeepLearningのパラメ ー ター数は膨大であり、出力しでも意味が取れないが、成果物一つで ある。 ④はJavaで警かれた業務プログラムを指す。 ⑤のAIベンダーのノウハウは、学習デ ー タの作成方 、 法、AIモデルの作成法、AIモデ ルのパラメ ー ター の求めるためシミュレ ーション法、ネットワ ー ク構造な ど多岐にわたる。 AIの権利を明確にするとは、これらの事項の帰属を当事者聞の合意・契約で定めることで ある。 、 さらに学習済みネットワ ー クの開発には、特有な問題点が発生する。 一つは派生モデ ルの取扱である。 派生モデルは、学習済みモデルに別教師デ ー タを用いて転移学習を行い、生成した異なるモデルである。 元 モデルと派生モデルは全く違うパラメ ー タ ーであるため、 「派生モデルの生成の許諾権」を当事者間の合 意・契約で明記する必要がある。 蒸留(Distillation)は、学習済みモデルのネットワ ー ク構造をシンプルなネットワ ー クに収縮させる ‘ 技術である。 収縮させたネットワ ー クは、学習済みモデ ルとは全く別の構造のネットワ ー クである。 そのた め転移学習とは別に、 「蒸留行為の許諾権」を合意・契約書に明記する必要がある。 また転移学習、蒸留の 定義は定まっていないため、合意・契約書に転移学習と蒸留の許諾権を明記しただけ不十分で、あり、その定 義まで記述しなければ効力を持たない。 70
Alモデル を不正競争防止法の「営業秘密Jとして 保護させる条項を契約書に記載することも 有効であ る。 「営業秘密」の要件は純粋な 法律問題なので、本稿では説明を省く。 10.おわりに Alベンダー と 一 般企業によるAlモデルの共同開発は花盛りである。 開発事業をスタ ー トするにあた り、 AIの権利保護の知る弁護士 による契約書作成または契約書チェック は必要不可欠である。 しかし AIの 法律部門を有する法律事務所は少なく、 またAl を知る法務の担当者で も DeepLeanringの転移学習、 蒸留 に なると正しい理解が怪しい 。 彼らの勉強不足ではなく、 Al理論の急速の 発展に法律や法務 関係者が追い付け ないため である。 Alの権利を明確にするには、 データサイエンテイス トを含めた当事者と 弁護士のディス カ 一 ッションから Al 権利とその関係者をすべて洗い 出すこと が、 第 歩である。 今年中に新しい SAS Viya がリリー スされる予定であり、 特にDeepLearningの関数が強化される。 まだ 仕様が公開されてい ないので、 本稿ではSAS Viya と DeepLearningの転移学習 ・ 蒸留の言及ができなかっ た。 SAS システムにはAIの関数やプロシー ジャー が数多くあり、 これ を利用したAIアプリケ ー ションの開 発が盛んになると 予想される。 しかし AI関数を使いこな す エン ジニアはまだ少ないので、 一 般企業はAlベ ンダー との共同開発が中心になろう。 その際に本稿が役立て頂け れば幸い です 。 なお 、 本報告書は個人的見解で書かれており、 所属する株式会社インテックの意見をあらわすものでは ありま せん。 11. 参考文献 ” ・麻生英樹、 安田宗樹、 前回新 一 、 岡野原大輔、 岡谷貴之、 久保陽太郎、 ボレガラ ・ ダヌシカ、 “深層学習 近代科学社(2015) ・ ” 岡谷貴之、 “深層学習 、 講談社(2015) ” • C.M.ピショプ, “パタ ー ン認識と機械学習(上 ・ 下巻) 、 丸善出版(2012) ” • Willi Richert 、 “実践 機械学習システム 、 オライリー ジャパ ン(2014) ・ 石垣司(東北大学大学院経済学研究科)、 竹中毅( 産業技術総合研究所サ ー ビス工学研究センタ ー)、 “日常購買行 ” 動に関する大規模データの融合による顧客行動予測システム 、 人工知能学会、 26巻6号(2011) ” -本村陽一 、 岩崎弘利、 “ペイジアンネットワ ー ク 技術 、 東京電機大学出版局(2006) • TensorFlow is an句en Source Software Library for Machine Intelligence, TensorFlow, 2016/5, https://胴w.tensorflow.org -“知的財産推進計画2016ぺ知的財産戦略本部、 2016/5 (首相官邸ホ ー ムペー ジ内) http://www.kantei.go.jp/jp/singi/titeki2/kettei/chizaikeikaku20160509.pdf ・ “次世代知財システム検討委員会報告書~デジタノレ・ネットワ ー ク化 に対応する次世代知財システム構築に ” 向けて ~ 、 知的財産戦略本部検証・評価・企画委員会、 次世代知財システム検討委員会、 平成28年4月 http://附w.kantei.go.jp/jp/singi/titeki2/tyousakai/kensho_hyoka_kikaku/2016/dai5/sankoul.pdf 71
One-Pass AUC Optimization手法の実務的拡張 木村和央I 株式会社金融工学研究所 A Practical Expansion ofOne-Pass AUCOptimi 四.tion Kazuo Kimura FinancialTechnologyResearch Institute Inc . 要旨 AUC, AR 値, SomeぜDといった順序統計量は,教師ありクラス分類を目的としたモデルのパ フォ ー マンス評価に用いられる極めて有用な指標である. しかし, 伝統的な統計モデルのパ ラメ ー タ推計には 最尤法が用いられ, 前述の順序統計量を直接最大化するような推計手法は少ない. このような状況下に おいて, Gao et al . (2016)は, One-Pass AUCOptimization (OPAUC)というAUC を直接最大化するオン ライン学習の手法を提案した. 彼らは2値分類問題を扱ったが, 本稿では順序のある多値分類問題へと その適用範囲を拡張した(拡張OPAUC). また, オンライン学習の範曙からは外れるが, サンプルを2 度読み利用するTwo-Pass AUC Optimization (拡張胃'A.UC), さらに回数を増やしたMulti ・P 鰯 AUC Optimization (拡張問'A.UC) を提案した. さらに, 実務的なモデル構築時へ の対応も意識しつつ, 各サ ンプルの重みを可変とし, パラメ ー タへ制約条件を課すことも可能とした. こ れら 拡張手法の定式化お よびアルゴリズムを示した後, 格付モデル構築を例に数値実験を行い, 各手法の精度を比較した. 残念 ながら, 提案手法は最尤法順序ロジットモデルの精度を上回ることはできなかったが, 計算コストを考 えれば十分実用に耐えうる結果が得られた.参考として,付録にSAS によるコ ーディング例を収録した. キ ー ワ ー ド:AUC, オンライン学習, 最小二乗損失, 格付推計, 順序ロジットモデル, SAS/IML 1. はじめに 企業等が一 定期間後にデフォルトとなる確率, あるいは格付に該当する確率を推計するために, ロ ジット モデルが金融機関実務の中で広く活用されている. モデル構築にあたっては, 限られた時間コストの中で, 人的スキルによらずに, 最良でなくても構わないが一 定精度を確保したモデルを得たいという実務上の要請 がある. これに対し, 木村(2015, 2016)は, ソプリン(国)のデフォルト確率および単 一 ないし複数の格 付該当確率モデルの構築を題材に, Weightof Evidenceを用いた外れ値処理, 変数変換, 欠損{直補完, 同時推 計といった手法の提案に取り組んできた. さまざまな工夫がなされているが, ここで用いられた ロ ジットモ デルないし順序 ロ ジットモデルはいわば教師ありクラス分類を目的とした伝統的な線型の統計モデルである. 1 本稿の内容は筆者に属し, 所属組織の見解ではない. 72
OC曲線の下側面積にあたる AUC (Area
これらモデルのパ フォ ー マンスを評価するための指標として,R
atio) , AR値と同様
Under the Curve ), それと単調の関係にあり金融分野でスタンダ ー ドなAR値(Acc uracyR
のSomers
’
Dといった)I慎序統計量が重要視されてきた. 一方で, 当該モデル構築時におけるパ ラメ ー タの推
計は, 一般には最尤法によりなされ, 直接的に評価指標の最大化を目的とはしていない. つまり, 推計手法
と評価手法の聞にギャップが存在している.
これに対し, 山下 ・ 三浦(2011 ) は,AR値の定義式にあらわれる階段関数をシグモイド関数で置換した近
似AR 値を直接最大化するという強力な推計手法を提案した. しかし, 異なるクラスに所属するサンプル聞
の全組合せ O(N 2 d) (N はサンプル数, dは説明変数の数) の記憶容量を保持した上で収束計算を行う必要が
あり, 通常の最適化ルー チンでは大規模デー タへの適用は困難な状況にあった. 筆者は, 長らく大規模デー
タに適用可能な手法がないか調査 ・ 探索していたが, 最近になって, Gao et al . (2016) が, AUCの定義式に
あらわれる階段関数を最小二乗型損失で置換した代理損失関数を最小化する One-Pass AUC Optimization
(OPAUC)と呼ばれるオンライン学習の手法を提案していたことに気づいた2 . オンライン学習とは, 訓練デ
ー
タ( サンプル) が1件ごとに順次もたらされるとしづ状況下で, モデルのパ ラメ ー タをいかに推計するべ
きかというタスクである. OPAUCは, 訓練デー タが逐次的に与えられるとき, 学習をー からやり直すことな
くこれまでの学習結果を更新することができるため, 非常に計算効率が高い. また, OPAUCで必要とされる
記憶容量はサンプル数に依らず, O(d 2 ) で済むため, 大規模デー タへの適用も可能である. ただし, 前述のパ
ッチ学習と比較した際の精度低下の程度が気になるところである.
本稿では,Gao et al. (2016) のOPAUCをベ ー スに, 彼らが2値分類問題を扱ったところを,)I頃序のある多
値分類問題へとその適用範囲を拡張した( 拡張 OPAUC). また, オンライン学習の範暗からは外れるが, サ
ンプルを2度読み利用するTwo-Pass AUCOptimization ( 拡張TPAUC), さらに回数を増やしたM ulti-Pass AUC
Optimization (拡張 MPAUC) を提案した. さらに, 実務的なモデル構築時への対応も意識しつつ, 各サンプ
ルの重みを可変とし, パ ラメ ー タへ制約条件を課すことも可能とした. これら拡張手法の定式化およびアル
ゴリズムを示した後, 格付モデル構築を例に数値実験を行い, 提案手法のほか各手法の精度を比較した. 参
考として, 付録にSASによるコ ー ディング例を収録した.
2. One-Pass AUC Optimization 手法とその拡張
2.1問題設定
)I頂序のある多値分類問題においてAUCを最大化するような線型判別モデルのオンライン学習(追加学習)
を考える3 . 基本的な枠組みはGao et al . (2016)と同様であるので原論文も参照いただきたい.
4
d
られたサンプルをCxt,Yt) , その重みをW t (> )0 とする . ここで,XtE Jm. は説明変数, Y t
t 番目に与え
ε{0,1,…,m}はクラ
ス(被説明変数) である. また,t番目までのサンプルにより推計された線型モデルをft Cx) = W t ·xとし,WtE
Jm.d は係数パ ラメ ー タである.
d
X
この設定の下で, AUC を定義する. 各サンプルの重みをW j としたデ ー タセット'D = {(x ,YaεJm.
i
{0,1,…,m}liε[n]}, [n] = {1,2,…,n}が与えられたとして,このデー タセットをクラスYtの値により分割する.
'Do = {(x?0,O)lioε[no]} ( 各サ ン プ ル の 重み W10) , 'D1 = {(x}1, 1 )li1E [叫} ( 同, 重み W1 1 ) , … , 'Dm =
2 2016年以前からOPAUCは提案されていたが, 総括論文であるGao et al. (2016)のみ参考文献に掲載した.
J Ding et al. (2015)の記号および流れに沿った記載としているが, 本稿ではAdaptiveGradient手法は扱わない.
4 Gao et al. (2016)は,Yt E {-1,+l}とした2値分類, 各デ ー タの重みは的=1とした問題を扱っている.
73
d
ー
{( x C,, m)lim ε [ηmH (同, 重みW 1m). WE Jm. を係数パラメ タとして,DのAUCの定義は,
1L
c吋 t
司法え))
W
k
Lf:',;a1 Ll'! k +1 (L�k =l W ;k) (L��1 w ;i)
;k
Wi
1)
)
-
(
C(w) =
( ユ 午1 (Il(w·xll>w·xえ) +in
Lf:',;i Ll'! k +1 L
ここで,Lは指示関数であり,命題πが真ならl,偽なら0. なお,'DのAR値(Somers D)の定義は,
’
AR (w)
=
(
k
Zお1 Ll'! k +1 L7k =1L�し1 n
(
(砕いえ )
Lf:',;a1 Ll'!k+l (L� 1 W ;k
:=
- n(仲間九
) いこ i
w
)) ;k 11)
W
w
(2)
;i)
であり, Il(w·xf?w·xfk) + Il(w·xl円·xfk) + n(w·xll<w·xr ) = lにより, AR (w) = 2× AUC(w) ー 1が確認される.
k
0 から lへ不連続に変化する指示関数を含むこれらの目的関数に対し,一般に連続関数を前提とした最適
化手法を適用することは困難である.このため, 最小2乗型の代理損失5
.e(w, x l1 - x U = (1-w · ( x l1 - x �k) ) .
(3)
Li日1 Ll'!1c+1 (L71c1'..1L��1 .e(w, x l 1 - x �" ) W;内)
λ
フ
£(w) = 一 llwll�+
,.
2Lf:1,;i Ll'!k+l (L� 1 W;k) (L��l W 11)
(4)
2
を用いて,AUCを最大化する代わりに,以下の損失関数を最小イヒすることを考える.
:=
右辺第l 項はL2正則化項であり,モデ ルの複雑さを抑制する効果をもっ.
、
2.20PAUC手法とその拡張
(4)の損失関数以w)の最小化をオンライン学習にて実現させるために,個々のサンプルに対する損失の和を
用いて次のように捉えなおす.全サンプル数をTとして,
T
ここで
;;�ん( w)
L 乞 n <Y戸 k ) Wi
λ
2
×
£t(W) = Wtl 一 llwll� + ) I
白,\ Lf二;ll(Y!り州
12
L
k掌Yt
|
号(
|λ
や(
+、同
h
2
ー
= Wtl
< 1 llwll�,.
2
L
K学Yt
t
| 一一一一t ×
九一 T[
T/
z ;二i (1 (llcy >川
一
t
= k)
一
n
<
JI||
2Lf二 n<Y1= k ) w 1
t
ー
Li:yi=k( 1 (n仇>k) - n <Yt<1cJ) Cx t- x;?w) w; \
2
2Tt"
I
』
II1 ·
)
』
(5)
( ・ ? は行列の転置, Tt" = Lf=1 n<Y;=kJw;はクラスkl こ属するサンプル重みの和, Tt = Li:'=1Ttk はすべてのクラス
のサンプル重みの和である.右辺の括弧内第 2項は,t番目のサンプルのクラスであるれとは異なるクラス
k(=t= Yt )に属するこれまでに得られたデ ー タとの代理損失の比較をすること,その際に各デ ー タの重みW; を考
慮した加重平均となるところがGao et al. (2016)から自然に拡張された点である.なお, Gao et al. (2016)にお
ける設定,つまりサンプル重みがIの2値分類問題では,逐次得られるサンプルがi.i.d.であるならば,Lt (w)
は£(w)の不偏推定量となることが証明されている.
次に,(5)のん(w)の勾配(gradient)すなわちwによる微分を計算すると,
5
w ・ (x!, - xt )がlを超えるとき,指示関数は真でありlであるが,代理損失fは増加してしまうという問題がある.
74
古市十
一
(n仇刈 ー い) xc
tXiW
叫((Il(y > )-Il(y < )片+(
t k
xixr-xixI-XcxD
t k
叫
(6)
ここで,クラスkにおける説明変数の平均←寺Lf:yi =k xi wi,共分散行列時=祁Yi =ixixr-c �[c �F)wi
を導入して上式を変形すると,
I
m
I
L
k司企Yt
』
'"1
T,k
I
'i!Lt仲Wc,.ilw+ム�(一(n (yt>kl一D CYt <k州一c �) + (xc一c �)(xt一C �) T
I
と簡略化される.これにより,最適な係数パラメ ータwを得るために保持しなければならないデ ータは,各
クラス (k = 0,1,···,m)における説明変数の平均(enと共分散行列(St}のみであり,O(d 2 )で済むことが
わかる.このあとは,勾配降下法によりwを逐次更新していけばよい.ただし,本稿では,wlこ対する制約条
件も考慮する.wの最大{直を与えるベクトルをhmax,最小値を与えるベクトルをbmi
We = max{min{wc-i 一 η'i/£c(W t ),b 回ax),bm1岨),
(8)
となる.ここで,ηはステップ中重である.
←> _
ゐ
なお,同時に平均<enと共分散行列(Sf)もtとt-1の聞の漸化式にて更新していく必要がある.
1
t -ーー
Ttk
x,wi,
t
、ω
Tck -D(yt = k) Wt
Ttk
、
ゐす-
匂
k
Tt -D 仇= k ) Wt 品k
XcD (y凶 Wt
xi wi
X九 =k) 叫
Cc- 1+ 一一一一一一一-
+一一一一一一一一一
k
哨
D
rt
we
rt
r
c
(y t
ー
llf.ι=k ’
I
= cr1 + �(Xe-c f':.- 1 ),
去エ(k r en �
‘ :y1=
可
D竺= )
守 叫
=
sf =
xix
一
c
i
一
k Wt
t
一
=咋
=
1
庁
ti伊 k
一
ι
i:yc=k
E 仇 = k ) Wt
--
斤
E仇=ベ守仲t 一 ι c�- 山凶�-
1
1
1[
一
t
i · k rt E伽 =k) Wt
〔押
l-n(yt =k) wc
r
t
= sf-1 一
k
1
ーー T
(Sト 1 + cf- 1 [c r-1F) +
持竺 Sf-1
r
(
XcxID 伽 =k) Wt
k
t
r
J
州仕 k) t一c�[c n
W
I I
-cflc n T
+吋一1[ct
Yt 乎kのとき,D(yt=kl = 0であり, c � = c�- 1 とsf= sf-1 であることが自然に導出される.
以上の定式化を拡張One-Pass AUC Optimization (拡張OPAUC)と呼称する.このタ ー ンで最終的に 得ら
れたサンプル重みの和,総和,平均,共分散行列は, r/, rr , c手. sf (k = 0,1,…,m)により固定し, Wrを
初期値として,再度,先頭のサンプルに戻って繰り返すことで,精度を向上させることが期待される.本手
法を拡張Two-Pass AUC Optimization (拡張TPA’UC)と呼称する.拡張TPAUCはオンライン学習の範鳴か
ら外れるものの,計算負荷は拡張OPAUCの2倍まではかからない.
75
2.3拡張。PAUC/TPAUC アルゴリズム
入
力
正則化パラメ ー タλ (> O),ステップ幅η (> 0),
制約条件周最大値bmax,最小値bmtn,
反復回数U (One-Pぉsはl, Two-Passは2).
初期化・パラメ ー タWo =0,クラスk= 0,1, … ,mとして,
平均c� = 0 , 共分散行列 S� = [O]dxd,
払計
数 ル
回 プ
復 ン
反 サ
= 1 TO U;
DO t = 1 TOT;
プ プ
一 一
レ レ
サンプル重みの和 T/ =O,総和T0 = 0.
理:DO u
ゼロクリア.
圃圃
処
パラメ ー タおよび各種デ ー タを
《サンプルの読込》
説明変数Xt,クラスYt;サンプルの重み的;
《各種デ ー タ更新》
「-IF u
= 1 THEN DO;
園初回ル ー プのとき
T(' = Tt1 +的;Tt = Tt-1 +的;
I
= cf.:1 + w ぷ t - c[.:1)/T[';
sf'= sf.:1 +的( t l - cf.:1[c[.:J てsf.:1)/r('
cf'
I
I
x x
+c[.:1[cf.:1]' - c['[c[']';
I
* Y THEN DO;
漸化式により更新.
,
各種デ ー タを単純転送.
||」END;
固ノレ ー プクラス番号 k.
|」END;
送
転
|」END;
れ
一
レ
司
工」
一
終一
一
Tf = Tf;九= Tr;cf = c}; sf= S干;
先 k 鞘 ι
n山号 を 号
4 番
強 番
ハ
一ス
d ス
疋
いラ 確ラ
肋 ク Amク
「-IF u > 1 THEN DO;
|「DO k=O TO m;
購 4L
崎
則 一 で
回 ル 目
訂 ヨ 当回
l
始一
!一
川川
関一
件一一
一
L__END;
I I
共分散行列S;' )を,t-1とtの聞の
クラス番号*Y のときは,
t
Tf = Tf-1; cf = cf-1; sf=sf-1;
I I I
プル重みの和 T{' ,総和九平均c;',
圃ル ー プ:クラス番号k
|「DO k=O TO m;
||「-IF k
クラスYt について,各種デ ー タ(サン
」-END;
《損失関数の勾配》
V£ t
= O;
損失関数の勾百四んをゼロクリア.
圃ル ー プ:クラス番号k
「-DO k=O TO m;
* Y THEN DO;
|「IF k
t
I I
IF Yt > k THEN Sgn
||
むt = むけ
I I
クラス番号とれの大小比較で
IF Yt < k THEN Sgn=ー1;
下式で必要な符号を設定.
,
VL を計算
TN(九 T[')w ε
一
×(λWト1 - Sgn x (x t - cf)
||
I I
|」-END;
L__END;
《パラメ
,
クラス番号*Y のときのみ計算.
= +1;
ー
+(x t - cf)(x t - cffwト1 +sfw,ト1);
の最終値が初期値となることに注意.
固ル ー プクラス番号k
タ更新》
u
76
数
回
復
反
力:パラメ ー タWr
プ プ
END;
END;
号
番
ル
プ
ン
サ
固固
Wt = max(min(wト1 ー ηVLt, bmax), bm1n);
出
なお,2回目以降のパラメ ー タは前回
2.4
(参考)シグモイド関数を利用した近似AR値最大化
ここで,簡単に山下 ・ 三浦 (2011)で提案された手法を説明しておく. (2)のAR 値 の定義式に現れる指示
関数 (階段関数)を次のシグモ
イド関数にて置換す る.
)) '
ぉ( w, x lz -x fk ) = 1/( 1 + exp(-w (
· x !1 -x fk )/σ
(9)
ここで,σ(> 0) は近似 精度 パラメ タであり,小なるほど階段関数に近くなる.近似AR値sAR(
u w)は,
ー
u ,w ! - f ) wikw11)
( 手 L�� s(
,
、,
、
ー1
Ll:'=0 Ll';k+l (L�:= 1 Wik) (L己 "'ii)
= z X LJ:';"o1 Ll'! +l (L�:= 1 L己 1 σ ( w, ! - f )町内) 一 .
sARσ(w) = 2 X
Ll:'=,f Ll'!k+l L
1
x
1
1
1
x
k
1
S
k
x
1
x
(TfTi)
LJ:';l Ll'! k +l
k
(IO)
1晶
ら ない確定値である ので,分子を最大化すればよい.連続関数で近似
となる.
ここで,右辺の 分母はwによ
されているため,理論上は最適化ル ー チンにより最大化させ る
こ とは可能であるが,異なるクラス聞のサン
こ ともわか る.
になるので,大規模デー タでは困難である
プル同土の すべて の組合せを保持して の 最適化計算
3. 数値実験
3.1 実験方法
格付モデル構築に,近似AR値最大化(山下・三浦,20 日),最尤法による順序ロジットモデル , 拡張OPAUC,
拡張P
T AUC,さらに反復回数Uを22 回 とした 拡張Multi-PAUC
ass pO timizatio
(MPn AUC) の 各手法を適用し,
o
S mers’ Dにより精度を比較した.拡張OPAUC I P
T AUC I MPAUCについてはSA江
S MLを用いて計算した(付
S S TAT
S /
録A のコ ー ドを参照).近似 AR値最大化と最尤法による順序ロジットモデルについては A
NLMIXED プロシジャを用いて計算した (前者については付録
実験には,金融
・
Bのコ
ー
ドを参照) 6.
ノンバン クを除く上場企業の うち,格付投資情報センタ ー (R&I) が長期発行体格付を
付与した先を対象とし,本決算データから作成した財務指標を説明変数
(AA +以上I
の
( d = 76)に, 6か月後の R&I 格付
BB+以下を集約し,m= 10)をクラス (被説明変数)に用いた. Y-2, Y-1年の 2か年のサ
ン プル (N ~ 800)を訓練データ としてモデルを推計し, Y年のサンプル (N ~ 400)にてテストした1 .各説明
変数Xtj ( j = 1 ,…,d ) は, 訓練データにおける各変数 の 5%タイル値X.j,か 95%タイル値X.j,95により,Xtj ←
max(
min((xtj-x.j.s)/(x.j ,95 -x.j.s), 1),ー1), と正規化した.また,説明変数には符号条件を設定した.さら
にて
サンプル重みを設定した.
これは, クラス別
に,格付別サンプル数 の偏りを補正するため逆数ウエイト
(m + 1))/NP
サンプル重みをW t ←(Nrf
サンプル数 (個数),その総和をNf, NT (k = 0ム…,m) としたとき,
である. 拡張OPAUC I P
T AUC I MPAUC のハイパ ーパラメ ータについては,正則化パ
と設定したというこ と
1
ー λ= 2 ト10:-2]
s D最大時の係数パラメ ータ
,ステップ幅η= 2 卜 0:-2]を訓練データにて試行し,Somer'
ラメ タ
を, テストデータへ適用した.その際に訓練データ の並び順による影響を受けないよう ,乱数でソ ー トした
IOセット の データにて試行し, その平均値で精度を比較した.
3.2実酸結果
図表 1 にY = 2007 ~ 2015 年の平均値として計算されたSomeばDによる手法聞の精度比較を示した.
FREQプロシジャにて,TABLE •・・/MEASURES; OUTPUT SMDRC;とすれば,Somers’ Dが得られる.
6最尤法による順序ロジットも,制約条件を考慮する必要から,LOGISTICではなく,NLMIXEDプロシジャを利用した.
7翌年の格付は,当年の格付とは,それほど差があるわけではなく,テストで大きく精度低下することは考えにくい.
77
残念ながら,拡張OPAUCの精度は最尤法による順序ロ
ジットモデルにも劣後したが, 計算コストとテストデ
ー
タでの精度差を勘案すれば, 実用に耐えうる結果で
図表1: Somers'Dによる手法問の精度比綾
(2007~ 15年の平均値±標準偏差9
Somers ’ D2007・15年
モデル構築手法
テスト
近似AR値最大化
訓練
.834土.Oll
.816土.Oll
最尤法順序ロジットモデル
.832±.009
.818土.009
次に, 図表2に, 拡張OPAUC手法を例として, そ
拡張OPAUC手法
.818土.007
.807±.009
のハイパーパラメ ー タであるλとηの設定値がSomers ’
拡張胃'AUC手法
.821±.007
.812±.008
拡張MPAUC手法(U=22)
.827±.007
.814土.007
ある. また, 2固ないし複数回処理を繰り返す 拡張
TPAUC凡fl>AUCで,精度が向上することも確認できた.
Dへ与える影響を示した. 本図によれば, ステップ幅
はη~ 2[-9:-6]程度に設定するのが望ましい. 一方, 正則
化パラメ ー タλが与える影響は小さいことがわかった.
さら に, 推計された係数ノfラメ ー タが, 各手法問で
どの程度異なるかについて興味があるところであるが,
。"
図表3にY = 2015年を例として示した. 本図は, パ
0,0
ラメ ー タの2乗和すなわちノルムをlに調整しであ
る.
10
0. 7 8
o.,.
また, 横軸の説明変数は近似AR値最大化のパ
074
’
ラメ ー タ降順にソ ー トしである. 76 もの候補変数を
o 2
投入したため, 相関の高い変数も存在しており, 各
手法聞で パ ラメ ー タの値に講離があってもモデル全
体としては近い結果になっている可能性があること
には注意する必要がある. 係数パ ラメ
ー
タの1番目
は自己資本額(対数)であったが, 近似AR値, 最
ロ010 o:n
oon 01.i
臼0.7<1 0.7(,
ロ076 078
D078 080
固0.80-0.81
図表2:拡張OPAUCハイパーパラメ ー タ設定値の影響
(2007~ 15年×10セットの平均働
尤法,MPAUCが0.8以上であるのに対し, OPAUC
と官'A.UCが0.7未満と差があった. 正則化項の存在の有無の影響によると考えられるが, 繰り返し学
習したMPAUCのパラメ ー タは近似AR値, 最尤法に近づいていた. 近似AR値の23番目以降の パ ラメ
ー
タと, 入替りはあるが最尤法の パ ラメ ー タはゼロになるのに対し, ほかの3手法の パ ラメ ー タはゼロ
にはならなかった. ちなみに,22番目は有利子負債比率,26番目はEBITDA (対数)であった.
ー←近似AR値量大化
1.000
ート最尤法順序ロジット
ー世ー拡張 MPAUC手法
ート鉱強,TPAUC手法
ート盤張OPAUC手法
。
0.100
0.010
0.001
図表3: 2015年の係数パラメ ー タ比較(ノルムは1に調整. 近似AR億最大化におけるパラメ ー タの降順でソ ー ト.)
78
4. おわりに 本稿では, 大規模デー タにおいて直接的にAUC等の序列精度を最大化 することが可能なOPAUC 手法を取 り上げ, 順序のある多値分類問題へ適用可能とし, さらに実務的に必要となる幾つかの点の拡張に貢献した ( 拡張OPAUC) . また,オンライン学習の範暗からは外れるものの,One-Pass からTwo-Pass あるいはMulti-Pass 、 とすることで, 大幅な精度向上を果たすこと がわかった. ただし, いずれにせよ今回利用した格付モデ ル構 築用の小サンプルデー タにおいては,その精度は従来手法を越えることはできなかった.この点については, 別のサンプルにおいても試行してみる必要があるが, 本稿で用いた損失関数はヒンジ型とは異なる最小二乗 型損失であるがゆえに2次関数であるため,一定値を超えてくると本来の損失はゼ ロ であるにもかかわらず, 増加してしまうというデメリットがある. このあたりに問題はないのか, 再考してみる必要もあろう. 今後の課題であるが, まずはDing (2015)で提案されたステップ幅をサンプル番号tにより変化させる手 法(Adaptive Gradient Method)を導入したい. 実際, Ding (2015)が提案 したAdaptive Online AUC Maximization (AdaOAM)手法は, OPAUC以上の精度が得られたと報告されている. さらに, ハ イパー パラメー タの探索 においては, ベ イズ推計的なアプ ロー チを導入することで, さらなる計算速度の向上を図りたい. 参考文献 [I]木村和央(2015). 提案. 2015SASユ ロ ジットモデル構築におけるWeight ー ザ ー of Evidence を用いた変数変換と欠損値処理方法の 総会論文集,211”220. [2]木村和央(2016). デフォルトと複数格付の同時推計による ロ ジットモデル構築手法の提案. 2016SASユー ザ ー 総会論文集,85-99. [3]森内 一 朗,木村和央(2009). 格付モデルの構築と検証. 「金融工学とリスクマネジメント高度化J研究会 公開資料, h叩://www.flr-plus.jp/material/pdf/l00913/kinkoken.pdf (2017 年 6 月 21日). 、 [4]山下智志,三浦河(2011). 信用リスクモデ /レの予測精度-AR値と評価指標 一 .朝倉書店. [5] Ding, Y., Zhao, P., Hoi, S.C.H., Ong, Y-S. (2015). An Adaptive Gradient Method for Online AUC Maximization. The 29th AAAI Conference on Artificial Intelligence. [6] Gao, W., Wang, L., Jin, R., Zhu, S., and Zhou, Z.-H. (2016). One-Pass AUC Optimization. Artificial Intelligence, 236, 1-29. 79
付録 A. SAS江ML による拡張 OPAUC I TPAVC I MPAVC のコ ー ディング 本稿の数値実験で用いた拡張OP AUCI TPAUCIM P AUCのためのSASプログラムを掲載した. コ ー ディン グ開発当初は, 汎用性を重視してDATA ステップを用いていたが, 行列演算速度に決定的な違いがあるよう に恩われ,SAS江MLの利用に切り替えた. IMLを利用するがゆえに, コー ディングにおいては以下の点に留 意する必要があり, 場合によっては改善の余地もある. まず, IMLは2次元の配列( つまり行列)までしか扱えない点に苦心した. 本稿では複数クラス分類問題 への拡張を取り上げているが, たとえば, 説明変数聞の共分散行列をクラスごとに準備する必要がある. し かし, 共分散行列それ自体が既に行列であり, クラス別の定義となると, 通常はその変数名にクラス番号を 付加して区別するという発想になる. このため, どのクラスの共分散行列に対してアクセスするか条件文を 用いて制御することになり, そのためにプログラムが冗長になってしまったことは否めない. なお, 横にク ラスの数だけ共分散行列を連結した拡大行列にて処理するプログラムも試行してみたが, 本稿掲載のものよ り計算時間を要した. 拡大行列の 一 部にインデックスを用いてアクセスするよりも, 条件文を多用しつつも 行列自体を分割して扱うほうが有利ということが示唆された. 次に, メインであるPROC IMLの開始直後で, 「 read all v釘{ … } into ー … JとSASデー タセットから全レ コ ドのデー タをメモリに読み込んでいるが, 大規模デ ー タセットにおいては, この方法ではメモリに収まら ない可能性がある. これについては, もとのデ ー タを保持する必要はないため, 数回に分割して読み込み処 理をすれば問題ない.ただし,分割しすぎるとSASデ ー タセットから削L仮I]への変換処理が多く発生し, そ れは計算時間に不利に働くと考えられるため, 最適な分割を利用PCの C PU , メモリ等の状況から見定める 必要があろうs. 実際のプログラムは,事前処理として学習デ ー タをランダムソ ー トして10パター ン生成,事後処理として 学習デー タ, テストデ ー タ双方で SomeばD を計算するといったことが含まれるが割愛し, コ アとなるデ ー タを与えて係数パラメ ー タを得る部分のみを掲載した. ただし, メインであるPROCIMLの前に, 説明変数 PUT) 名リストおよびその頭にBを付加したパラメ ー タ名リストの作成, マクロ変数への登録(CA LLSYM に関するプログラムを後続の処理で呼び出しているため, 参考までに掲載した. 《入力デー タ定義》 ID 入力データセット名 クラス変数名y ..Y xv 説明変数名z wt サンプルの重み変数名ω r クラス変数の最大値 d 説明変数の数 con 制約条件のある説明変数の数 lambda 正則化パラメータλ e祖 ステップ領暗 u 反復回数U 以下のクラス変数デ ー タ,説明変数データ,サンプルの重み変数デー タを含む. 0, 1, ・ ー,&_rの整数値をとるが,欠番があってもよい. 空白区切りで列挙(xix2 ・・・ x&_d),またはハイフン指定も可能(xl-x& d). 0以上の実数値を指定可能. クラスはOから指定可能なので, クラス数は&_r+ I個(欠番 なしの場合). 説明変数の数を指定. 説明変数の先頭から& con番固まで,制約条件を考慮. ハイパ ー パラメ ー タ.大きくする と, ペ ナルティがかかり,wの分散が減少. ハイパーパラメータ.本稿では一定値. 1:α阻・P剖s, 2: Two-P出品 3, …: Multi-Pass 《出カデー タ定義》 out 出カデータセット名 係数パラメ ー タwを含む.変数名は,説明変数名の頭にBを付加したもの. 8 SAS社テクニカノレサポ ー トFAQ「部分行列を利用して行列演算を行なう方法」を参考にされたい. https://www.sas.com/o缶ces/asiapacific/japan/悶vice/technical/faq/list/body/iml004.h回l 80
1・ H ・ H ・ • OPAUC/ TPAUCマクロ........ ,
/紳柿各種デ ー タ更新紳紳/
%macro a2 ・
%doi=O%to & r·
%if&i>O%出師%do;
ELSE
F現デ ー タのクラスと /ホ
/ 申 一 致するときのみ計算打
%end;
IFAYL可=&i THEN DO;
%macro opaucしin,_out,_y, _xv,_wt, _r,_d, _con,一l町bda,_e也,_u);
......個
,
々の説変
明 数名称をマクロ変数へ格納柿柿紳/
DATA _NULL_;
SET &ーin (OBS=I),
..
, 説明変数,パラメ ー タリストの変数定義と初期化”/
t• 一時変数町
ATIRIB VNAME LENGTH=$1 28.;
ATIRIB VNAMS LENG百i =$4096.;
F
説明変数町
ATIRIB BNAMS LENGTH=$4096.;
1・ パラメ ー タ町
VNAMS = ・' ; BNAMS = ” ;
..
, 重み総和”/
一 TS = ー TS+AULη, **
!**
クラス別重み合計 /
BT&i=BT&i+AULη;
/仲平均ベクトノレ.. ,
AC=BC&i;
BC&i=AC+ (AXL T,]-AC)/BT&i 事AULη;
..
, 共分散行列柿/
AS=BS&i;
BS&i=AS+ t(AC)•AC・t(BC&i )*BC&i
+ (t(AXLT,])*AXLT,] -AS ・ t(AC)*AC)/BT&けAUL司;
..
, 説明変数を
配列化紳/
ARRAY _AX[&一d ] &_xv;
..
, 個々の説変
結してりスト化.. ,
明
数を取得後に連
DO_I= I TO &_d;
C此LVNAMEしAXLJ],VNAME);
VNAMS=官制(VNAMS)II・’ IITR削(VNAME);
BNAMS=司副(BNAMS)II”ll'B'IITR刷(VNAME);
END;
END;
%end;
%menda2 ・ %a2 ・
END ,
/ 紳
説明変数,パラメ ー タリストをマクロ変数へ格納”/
CALL SYMPUT(二vxs',TR削(VNAMS));
CALL SYMPUT(二bxs',TR刷(BNAMS));
......勾配計
,
算用配列をゼロクリアして定義”””/
/ ・ &_d列の零ベクトル /$
AG=j( I,&_d,O);
RUN;
/ 材料帥 損失関数の勾配計算”””/
%macroa3;
戸 現クラス /事
%doi=0 %to &_r;
IFAYL可"=&i THEN DO;
/ 事← 以外計算事/
IFBT&i>0 THEN DO; t• デ ー タが存在するクラス町
戸のみを処理事/
/ ** 現デ ー タのクラスとの 比較で符号をセット紳/
IF&i <AYL'ηTHEN _SGN= I;
ELSE
IF&i>AYLηTHEN_SGN=・I;
PROCIML;
/紳 •••• IML配列へサンプルデータを格納...... ,
U民& in·
P入力デ ー ヲセット /事
read all v町{&_y J into AV;
/ * クラス /*
/ * 説明変数町
開ad all var{&_vxs J int・AX;
read all var{&_wt J Into AU;
j ・ 各デ ー タの重み /*
柿紳/
......制約条件判
,
定用配列定義 帥
DX={[&一con ]0 [%eval(&_d・&_con)]9999999);
t• iii貞から& con個の変数は零
, 他は+∞ ホ/
/紳クラス別重み合計比率を計算紳/
_WW = (BT&i /1しTS・BT&i))・AULη;
t•••••• 初期化処理.... 帥/
t•• X一平均ベクトルの 計算”/
t•••• パラメ ー タ(w)配列をゼロクリアして定義紳紳/
BW=j(l,&_d,O);
CX=AXLT,卜BC&i;
戸&_d列の零ベクトル /ホ
,. !正則化項 /事
..
, クラス別の勾配計算 **/
AG = AG+&ー l副nbda * BW ・ _v.パW;
AG=AG- _SGN ’ ex• _v.門W; / * →符号付項 /事
AG=AG+BW ’ (t(CX)*CX+ BS&i) ’ _WW;
t•••• 重み総和をゼロクリアして定義紳紳/
一 TS=O;
....
, クラス別配列をゼロクリアして定義柿 ••t
%macro al;
%doi = 0 %to &_r;
END;
END;
%end;
%mend a3; %a3;
t••
クラス別重み合計(&什l:クラス分準備)
帥
/
Pスカラー零
の
/ホ
BT&i=O;
t•• 平均ベクトJレ(&什l:クラス分準備) **/
BC&i=j(l,&_d,O),
/ 傘 &_d手ljの零ベクトル /*
/紳共分散行列(&什1クラス
X&什1クラス
分準備)”/
BS&i = j(&_d,&_d刈;
円&_dX&_dの零行列 /車
制約条件を考慮した係数パラメータの 更新柿.... ,
/ ******
BW=(BW・&_eta 噂 AG)><DX;
/噂〉くは , 要素ごとに小なるほうを採用事/
END;
END·
%end;
%mend al; %al;
......
,
メイン処理...... ,
DO_U= I TO&_u;
DO _T= I TO nrow(AY);
*
結果出力...... ,
/* ****最終
vname = {&_bxs},
crea担&_outfrom BW[coln副司e=vname];
append針'O皿BW;
close &_out;
/ $ 反復回数ル ー プ町
t• nrow(AY) =デ ー タ数 /事
/
/**** I回目かつ重みがゼロでないときのみ処理実行柿 帥
IF_U= I &AULη> 0 THEN DO;
I QUIT;
J %mend opauc;
81
付録B. NLM医ED プロシジャによる近似 AR値最大化手法のコ ー ディング
山下・三浦( 20Il )により提案されたシグモイド関数を用いて近似した AR 値を最大化するための SAS プ
ログラムを掲載した. 入出力変数は付録 A と同様である.
「 クラスの異なる全組合せデ ー タの作成Jが必要
であり, 組合せが 100 万件レコ ー ドを超えるとメモリに入りきらず, NLMIXED プロシジャが動かないとい
った問題が発生した.本稿の数値実験は約 40 万件であり,かなりの待聞を要したが,計算結果は出力された.
B&& vx&i=O
%end;
%mend a6;%前;;
/材 料紳紳Sigmoid近似AR値最大化マクロ 材料材料 /
%macrosigmoidし in, _out, _y, _xv, _wt, _r, _d,一con);
/枠制約条件設定..,
BOUNDS
%macroa7;
%do i=1%to&一con;
%f
i &i> I%出en%do;
/紳紳H個々の説明変数名称 を マクロ変数へ絡納......,
DATA _NU LL ;
=!);
SET &ーin (OBS
丹市説明変数名称の一 時保存用変数 料 /
ATTRIB VNAME LENGTH=$128 .;
%end;
B&& vx&i>=O
%田d;
%mend a7;%a7; ;
/柿 説明変数を配列化帥 /
ARRAY _AX[&一d] &_xv;
丹市マクロ変数へ格納判/
DO _I=I TO &_d;
CALLVNAMEしAX LJ],VNAME);
CALL SYMPUT('_vx'IIC OMPRESS(PUT,し1,8 ). ),
TR削(VNAME));
END;
RUN·
/* 説明変数の先頭から傘/
/* & conのi回数まで 町
*
/
内正f直に制約
”
/** パラメ ー タ を配列化 /
ARRAY _AB門
%macroa8;
%do i = I%to &_d;
B&& vx&i
%end;
%mend a8;%a8; ;
/梓 Zスコア(IwXdx)計算紳/
BX=O;
DO J =I TO & d;
_BX=_BX +_ABLJ]* _AXLJ] ;
END;
Z=MAX(M闘しBX,20), ・20);
P次のSigmoid-AR
/* の発散を防止
/帥 Sigmoid-AR計算(sigma=0.02) 帥 /
SG=(2* 1/(l+E X P (-Z/0 .02)) ・ I)・& wt;
/*重み事/
,.分析対象F町
/** Sigmoid-A R最大化帥 /
MODELU-GENE RAL(SG);
内外積をとる$/
/申請Eクラスの ・ /
/噂 大小関係を・/
片 一 方向限定 * /
/* U:分析対象F=I町
デ ー タ出力調整 **
内
/
%macro a9 ;
%do i=I%to &_d;
ESTIMATE ”B&&_vx&i ” B&&_vx&i;
%end;
%mend a9;%。;
*
/紳•••• NLMIXE DによるSigmoid近似AR値最大化柿材 料/
/紳 紳 OD Sファイル出力設定開始 帥 柿/
ODS OUTPUT AdditionalEs世田岡田 = TBLI;
RUN·
t•••• Sigmoid近似AR値最大化ル ー チン....,
!**** OD Sファイノレ出力設定終了 ....,
ODS OUTPUT CLOSE;
PROC NLMIXED DATA= TBLO
MAXITER=10000 MAXFUNC=10000,
, ..パラメ ー タ定義と初期値ゼロを設定..,
PARMS
%macroa6 ;
%do i=I%to &_d;
月PARMSでは
町
% if&i> I%then%do;
円区切りに ,が必要 */
%end·
町
/* BOUNDSでは
/*区切りに ,が必要 事/
/特説明変数を配列化..,
ARRAY AX[•] &_xv;
帥
, ....梓 クラスの異なる全組合せデ ー タの作成 材 料 /
%macroa5;
PROC SQL;
CREATE TABLE TBLρAS
SELECT
DA.&_y AS &_y._A,
DB.&_yAS&ーy. B,
, 2つのサンプノレの説明変数
の差(dx) を計算** /
••
i I%to &_d;
%do =
(DA.&&_vx&i -DB.&&_vx&i ) AS &&_vx&i,
%end;
(DA.&一川 市 DB.& wt ) AS & wt,
(DA.&_wt• DB.&_wt )> O AS U
FROM &_ in AS DA, &_ i n AS DB
WHERE &_y._A < &_y._BAND
DA.& wt> 0 AND DB.& wt> 0
ORDER BY &_y._A, &_y._B;
QUIT;
%mend a5;%a5;
戸パラメ ー タの変数名はW
F説明変数名の頭にB * /
, ......パラメ ー タの横展開 ”····1
PROC TRANSPOSE DATA= TBLI
O
UT=&_out (D R OP=_NAME_);
VAR Est imate;
ID Labe l;
RUN;
%mend sigmoid;
82
*/
*/
産業連関表を利用した地域経済の域外輸出の活性化要因の探索 o栃津欣之, 橋本綾子, 角元慶二, 菱垣晴次 (大塚製薬株式会社) Discovery and estimate of the effects for activators of regional economy using interindustry table Yoshi刊ki Tochizawa, Ayako Hashimoto, Keiji Kakumoto, H紅·etsugu Hishigaki Otsuka Pharmaceutical Co., Ltd. 要旨 地域経済およびその雇用の活性化におい ては、 域外からの資金の流入が重要である(経済産業省)。 、 そのため本研究では地域の域外輸出の増加を目的とした。まず、本研究では徳島県をモデ ルケ ー スとし、 産業連関表を利用して徳島県の移輸出産業を分析した。 次に、 徳島県の移輸出産業の移輸出を活性化さ せる中間投入を探索するため、 移輸出と付随して変動する中間投入を中四国の産業連関表より解析した。 また、 このような移輸出の活性化と関連してその経済波及効果を推定するために産業連関分析を行った。 産業連関分析は、 経済波及効果に関する分析として、 移輸出額を与えた場合の生産額の将来予測にも用 いられている。 最後に本研究の結果を、 統計的因果推論(宮川,2004)を参考にして考察した。 キ ー ワ ー ド:地域経済、 産業連関表、 産業連関分析、 域外輸出、 経済波及効果、 徳島県、 中四国 1.序論 地域経済は図1の模式図で表現できる(経済産業省)。 ①地域外を主な市場とする「域外市場産業 (製造業、 農業、 観光)Jと②地域内を主な市場とする「域内市場産業(日用品小売業、 対個人サ ービス業)」に分けて考えることができる。 資金の流れで両産業を模式的に捉えると、 ①域外市場 産業が域外から資金を稼ぎ(第1フロ ー)、 ②雇用者所得として域内住民の消費活動元手となり(第 2フロ ー)、 ③元手をもとに域内市場産業で消費され(第3フロ ー)、 ④域内市場産業が発展し、 域 内市場産業で働く住民の雇用。 所得につながり、 さらなる域内需要の拡大、 域内市場の発展につな がる(第4フロ ー)。 これら4つの資金の流れを円滑に促すことが地域経済成長の鍵になる。 域外 から資金を流入させる域外市場産業は、 地域経済の心臓部とも言え、 域外から資金を稼いでくる産 業の集積を促進し、 競争力を強化することが重要と考えられている。 83
→資金の流れ 図1 地域経済 地域経済にとって重要な域外から資金を稼いでくる中核産業の主な基準は以下の5つである。 1. 産業の規模が大きい。 2. 域外から資金を流入させる。 3. 産業集積していて労働生産性が高い。 4. 地域内への波及効果が大きい(地域外に流出しない)。 5. 設備投資を積極的である。 更に、 地域の持続的成長を実現するには、 以下の5つの視点で評価する。 1. 域外から資金を流入させる。 2. 域外市場産業で生まれた付加価値が域内に入る。 3. 再投資が域内で行われる。 4. 域外市場産業が持続的である。 5. 域内市場産業が所得を生み出している。 要約すると、 域外市場産業が域外から資金を流入させ、その資金を域内市場産業が好循環させるこ とが重要である。 以上に基づき、 域外市場産業を支援することは、 地域経済およびその雇用の活性 化において、有用と考えられている。そこで、本研究では移輸出を増大させる要因を探索するため、 移輸出に付随し変動する中間投入の探索を行った。 本研究では、徳島県をモデルケ ー スとし、産業連関表を利用して徳島県の移輸出産業を分析した。次 に、 中四国である香川県 ・ 高知県 ・ 岡山県 ・ 徳島県 ・ 鳥取県・山口県の産業連関表を利用して、 徳 島県の移輸出産業の移輸出を活性化させる中間投入を探索するため、移輸出と付随して変動する中間投 入を解析した。 また、 このような移輸出の活性化と関連してその経済波及効果を推定するために産業連 関分析を行った。 産業連関分析は、 経済波及効果に関する分析として、 移輸出額を与えた場合の生産額 の将来予測にも用いられている。最後に本研究の結果を、統計的因果推論(宮川, 2004)を参考にして考察 した。 84
2.解析内容 I 徳島県の移輸出産業を分析した。 この時に最新年である2011年の 108部門による産業連関表 を利用した。 1.1 「移輸出計(各産業)/移輸出計(合計)Jを「移輸出構成」として求めた。 これにより、 徳島 県の移輸出を支える産業を示した。 1.2 「移輸出計(各産業)/県内生 産額(各産業)」を「移輸出比率Jとして求めた。 これにより、 徳島県の移輸出への生産割合の高い産業を示した。 1.3 「移輸出計(各産業)×移輸出比率Jを「成長効率」として求めた(表 I)。 表1 には、 上位 20位までを示した。 これにより、 徳島県の各産業を一定の割合で成長させた場合の移輸 出の増大量を推定した。 成長効率の上位10位の産業は、医薬品、 電子デバイス、 その他 の電気機械、 無機化学工業製品、 食料品、 電力、 はん用機械、 パ ルプ・紙・板紙・加工 紙、 耕種農業、 飲料であった。 2 先の分析から得られたIO産業の内、医薬品、無機化学工業製品、食料品、 電力、 はん用機械、 耕種農業、 飲料の 7 産業に関し、 移輸出を活性化する中間投入の探索を行った。 そのために、 中四国の各県の産業連関表を利用した。 また、 以下では県内産業を総合した合計についても同 様の解析を行った。 2.1 2000・2005・2011 年の産業連関表の集計上 、 電子デバイス、 その他の電気機械、 パ ルプ・ 紙・板紙・加工紙の3 産業は2005年以前の産業連関表と対応していなかったため、 残り の 7産業に関し、 移輸出を活性化する中間投入の探索を行った。 その対応関係に関して は、 表2 とした。 2.2 中四国の各県の内、 愛媛県、 広島県、 島根県は他の都道府県と産業連関表の区分が対応 していなかったため、 香川県・高知県・岡山県・徳島県・鳥取県・山口県の 6 県の産業 連関表を利用した。利用した産業連関表は、2000年の104部門、2005年の108部門、2011 年の108部門によるものを利用した。 この6県の7産業に関しても移輸出比率を確認し た(表3)。 2.3 各7産業に関し2005・2011年の移輸出の変動と、各7産業の108部門の中間投入および雇 用者所得に関する変動との回帰分析を行った(表4)。2005年と2011年において、 産業区 分が対応していなかったものは除外して解析した。 2.4 同様に、 各7産業に関し2000・2005年の移輸出の変動と、 各7産業の104部門の中間投 入および雇用者所得に関する変動との回帰分析を行った(表4)。2000年と2005年におい て、 産業区分が対応していなかったものは除外して解析した。 2.5 上述の2005-2011年の相関係数のp値(pl)を両側検定により算出し、 2000-2005年の相関 係数のp値(p2 )を2005・2011年の相関係数と同方向の片側検定により算出した(表4)。 こ の時の有意水準は0.05 とした。 表4は、 plとp2が0.05 以下となった中間投入について 示した。 3 医薬品、無機化学工業製品、 食料品、 電力、 はん用機械、耕種農業、飲料の7産業に関し、2011 85
年の徳島県の産業連関表に基づいた産業連関分析により移輸出の経済波及効果を推定した(表 5)。 移輸出の経済波及効果は逆行列係数と同値であるため、 各産業の逆行列係数の列に各産業 の移輸出の成長効率をかけることで経済波及効果の程度を推定できる。 表 5では、 県内生産額 が 1%増加した場合の移輸出による経済波及効果を推定した結果を示した。 4 徳島県の県外への移輸出は、輸出を含めた圏内の需要と相闘があることが考えられるため、 国 内生産額と徳島県の移輸出とで回帰分析を行った。 この時、 圏内生産額を、 圏内の需要として みなした。 また、 ほとんど移輸出を行っていない産業に関しては、 県外移輸出と圏内の需要と の相関は見られないため、 徳島県の産業の移輸出金額で上位 30位の産業に関し回帰分析を実 行した。 この時の30産業は2000・2005-2011年の産業連関表で対応しているものに限定した中 での上位30産業である。 4.1 上記の30産業に関し、2000年から2005年の圏内生産額の変動比率(圏内生産額の変動額 2 / 000年の圏内生産額 )と、 2000年から2005年の徳島県の移輸出の変動比率(徳島県の移 輸出の変動額/2000年の徳島県の移輸出 )とで回帰分析を行った(図2)。 4.2 上記の30産業に関し、2005年から2011年の国内生産額の変動比率(圏内生産額の変動額 /2005年の圏内生産額 )と、 2005年から2011年の徳島県の移輸出の変動比率(徳島県の移 輸出の変動額/2005年の徳島県の移輸出 )とで回帰分析を行った(図2)。 5 最後にこれまでの結果を整理して考察した(図3)。 86
3.解析結果と考察 徳島県の移輸出産業を分析するため、 出比率」、 「 成長効率Jを表1に示した。 「 成長効率」で上位30産業に関し、 「 移輸 上位10産業で徳島県の移輸出の65.5%を占めるため、 こ れらの産業に注目し分析した。 ここでは、 し、 「 移輸出構成J、 「 移輸出計(各産業)/移輸出計(合計)」を 「 移輸出構成」と 「 移輸出計(各産業)/県内生産額(各産業)Jを 「 移輸出比率」とし、 率」を「成長効率Jとして求めた。 表1 87 「 移輸出計(各産業)×移輸出比
しかし、 2000-2005・2011 年の産業連関表では対応していない産業もあった。 2000・2005-2011 年の 産業連関表の対応を表 2 のような関係として以降の解析は行った。 先述の徳島県の移輸出 10 産業 の内 2000・2005・2011 年で産業連関表に対応のあった、 医薬品、 無機化学工業製品、 食料品、 電力、 はん用機械、 耕種農業、 飲料の7産業に関し、 移輸出を活性化する中間投入の探索分析を行った。 表2 産業連関表の分類の対応表 徳島県の移輸出産業でかつ 2000・2005・2011 年の産業連関表で対応のあった 7 産業に関し、今回集 計した香川県・高知県・岡山県・徳島県・鳥取県・山口県の6県における移輸出比率に関して確認 した(表3)。 表3より、 医薬品、 無機化学工業製品、 食料品、 電力、 はん用機械、 耕種農業、 飲料 の移輸出比率は 0.921, 0.839, 0.708, 0.304, 0.845, 0.599, 0.838 であり、全体の移輸出比率 0.408 と比較 すると電力以外の 6産業においては、 中四国においても移輸出産業であることを確認した。 逆に、 徳島県では電力が移輸出産業となっていることが興味深い結果となった。 88
表3
医薬品
!
移輸出
県内生産額
香川
I
65137
65卯8
言語画面尋寸0扇子一
香川
高知
27992
32822
j
)
食料品
|
間血一一」
215573
香川
!
Q
0
:...
高知
i
勾s�
:- 4085
1�0叩
務高画面亙-i 0.扇瓦ーっ
I
高知
5坦
里恒生産墾-�白三一上=._i_!_llQ?
0.738
I
0.574
移輸出比率!
i
'
岡山
徳島
型8. �
: -----1塑
!
362875
-
一 ←59413.9
「 -o�向一 ! o.100 一 r
•
;
無機化学田薫
塾塾血一_J
県内生産額 i
香 JII
10024
画土星空し-- 1
0,078
移輸出比率1
I
:
高知
!
0.0位
56521
8制白
0.639
:
坦
例19
0.989
電力
移輸出
各産業の移輸出比率(単位は百万円)
107
I
'
;
!
岡山
i
1
;
|
1旦,g.3
I_
·0:1允
r
坦Q657ぷ
一坐塑9.J_
0.717
!
97073,1
岡山
(
鳥取
I
i
22
,
|
鳥取
|
岡山
44153,6
!
山口
;
o扇Z ↑0函0 「 b♂5一
徳島
1��ι _[ ----2.!_8�
125901
i
1030
o.s9「
長十
o.
徳島
r
!
鳥取
I
1
i
|
計
型型 : 7勾旦L
315538 一一 ' 一一
803756.9
「 江函
山口
i
計
;
計
13竺g� I_ 36臼
--
175969___ I 436880.4
D.781 「 Cl.839
山口
l?_Z._�
I
;
堕28_<i _
_i塑し
!!_塑- _L__!'.哩!!_空 J
0.774
'
0.743
1
塑塑」__!Ll-438雪1}__ _
0.臼8
!
0.708
168143
!
0.620
し」
1
徳島
J_
;
,
鳥取
L
'
14?堕i
_ l. l但空白タ
山口
'
計
498
I
144626
,
367551.6
0.0仰
:
0.327
:
0.304
,
羽山
1598_72
0.845
垣王土)均二二�42_54i 二三豆函工二二位互二l 坐亙二L_1邦画亙
はん用機械 i
隆盛且一;
県内生産額;
移輸出比率 l
耕種農業
|
;
香川
;
\
I
高知
高知
_
O�t
型
_
」一一ー型土
ι
香川
'
0.188
岡山
�Z_44JJ��
186049
0.938
;
|
岡山
(
-
!
[
[
i
125752.8
14-:]813.1
0.874
I
-i
:
香川
1183
L
i
__j
}県内孟産扇 ;�()] -
i
1629
:
10制6 - て
0.703
;
高知
岡山
I
徳島
-��1_7_5
型QQ
0.744
徳島
一 33839
ド-両69
0.938
「
開玩�瓦62�1
l
高知
岡山
|
内生部門計
香川
6J4}_29
78204J6.3 I
移輸出ー__: 25ゆ制19 !
16910660.8 1
7359204 i一 3741965
県内生産額
一
忌「! 山「 向
開証言
7
徳島
�!�8で:
75537
!
0.823
l-��614.3
開
旦内生産塑」ーミ2哲三-�- ' - 8_5485.4
i
0.797
I
0.382
0.白0
移輸出比率|
飲料
移輸出
I
i__J_�_J
徳島
2031135
5075741
j
'
鳥取
|
山口
'- 塁�--_J哩
3032
,
98370
!.
1
0.812
i
0.862
|
鳥取
I
鳥取
I
[ j堕笠 j
[ _型1笠_ [
I
0后11
I
:
山口
23坦.l__
9些旦士一
o.599
-r1
1190田.8
213-6厄「
o:s38-
|
山口
!
i
8686
I
函 一 1 一 -16863----
| 面;証言
白
i4
:
i
鳥取
840687
325197�
;
:
i
lo扇 lo;亙5 I
計
_!_�}_
t
竺塑 -
o.354
1914- -
l�
!
1
!
計
山口
6098997
1289斜09
|
計
計
• 20悩紛43.3
_,i,9233952,8
I
0〔47「i
0.初
次に、各産業の移輸出と中間投入の相関関係を分析した(表 4)。表 4 は、2000・2005 年と 2005・2011
年に関し、移輸出の変動と 各 7 産業の 108 部門の中間投入および雇用者所得に関する変動とで回帰
分析を行った結果である。回帰係数で検定をしているため大体の項目で相関係数が 0.8 以上である。
表 4 より、移輸出の変動に付随して金額が大きく変動している中間投入は、移輸出との変動金額の
比率で、医薬品では研究で 14.4%、無機化学工業製品では雇用者所得で 9.4%、はん用機械では雇用
者所得と鋼材で 28.4%と 26.8%、耕種農業では農業サ ー ビスで 19.2%、 産業全体では鋼材で 10.2%
と特に大きく、いずれも産業の構造的にも妥当な結果で あった。食料品、電力、飲料に関しては相
、
関のある中間投入が検出されなかった。実際に産業を推進する上では、 各産業でこれらの中間投入
が円滑に行われることが重要と考えられ、その 各中間投入額の増減と移輸出額の増減は表 4 に示し
た比率で相関していることが示された。
89
表4 各産業の移輸出と、重要と考えられる中間投入の相関関係(単位は百万円) (相関係数 i 相関係数 l I1(2005・2011)\c2 I 000-2oos)\I 医薬品の中関投入産業 研究 その他の対事業所サ ー ビス p2 ・2011) 005 |変動金額の標準偏差。 Zご工ニニニt I 中間投入 | 移輸出 v v v I - ・ す認寸設 …,_ ,1�;器 トー主主主ー」 自動車整備 ・ 機械修理 建設補修 II I pl u V �J 56608 ヨ要事融専「ffi i i ・ 金額の標準偏差( 2005 I I I T 一一一一一一 | 移輸出 I 雇用者所得 L _」 20056 自動車整備 機械修理一二二仁旦.旦2-__J_Q吐血E亙江二亙二] 40 ! I o.906 I o.849 I o.oB 0.016 I 不動産仲介及び賃貸 iI 相関係数 lI 相関係数 Ii pl II p2 i 変動金額の標準偏差(20白・20112 食料品の中間投入産業 1(2 加・ 5 2011)1c2000-2oos)J I Iト 中間投入 「 I 移輸出 I - I - I ・ l ・ I I 29452 該当なし ・2011) 変動金額の標準偏差ο005 i 1 1 相関係数|相関係数 l 電力の中間投入産業 p 無機化学田業製品の中間投入産業 ・ |相関係数 相関係数 2 1 変動 1(2005-2011)1(2000・ 2005)1 pl I p 卜 I 中間投入 o.924 o.923 1882_ o.q�型旦 I I 仰05-201 仰伽2oos)! 該当なし はん用機械の中間投入産業 2011) I I 1 ・ l I川 ・ 1 I - : r- 中間投入!ゑ扇「 |変動金額の標準偏差。005-2011) I 中間投入 | 移輸出 o.柳川棚| 7481 Q.923 I o.987 o:ぬっ一画面こ長 瓦 _Z堕一- 1 相関係数|相関係数| 1 (200ふ 2011)\(2000 ・ 2oos)11 1 i I i o.990 I i o.925 pl | ii ooDo. P2 i i 0.000 . o.004 i 1987 亡思:�市�-� :ご 耕種農業の中間投入産業 |農業サ ー ビス 隔蚕雇主- 雇二二一一一一一一... イ七学最終製品(医薬品を除く。) |ガス ・ 熱供給 飲料の中間投入産業 該当なし 内生部門計の中間投入産業 鋼材 pl l 相関係数 相関係数 (2005 ・ 2011)[(200〔l-2005) ! | I pl o.郷 - 0.000 1.000 - 0.995 I ーo.991 o.99唱 I ・o.8s1 I o.996 -=c : l 川一 I 0.000 I 2011) 変動金額の標準偏差伽 一一一 中間投入 I 移輸出 ー 「証扇 0.0而可面01 恒仁!二極コ�I旦型L 0.000 0.000 鷹�!�)!(�:�:)! p |・ I - I ・ 相関 内向 向 pl (2加問 11) (別問的 l I I o.958 I o.8幻 I 0.016 I I 0.000 I 21886 5289 1730 1田 2 o 1142幻 j I 偏 川河語?手 差鍔許) I - I I 22脳 変動舗の標準 型二二L .!l 〓 鮭縦 同| 中関投入 i l o.om ! 0.010 I “ 506 ・2005 )の p 値を示した。 は相関係数( 2005-2011 )の p 値、 p2 は相関係数( 2000 90 26366 戸?漏古 i 4幻787
次に、表4の結果に基づいた中間投入により、 各産業において一 定の移輸出が向上されると想定
して、 徳島県の各産業の経済波及効果を産業連関分析により推定した(表5)。 表 5 では、 県内生産
額が 1% 増加した場合の経済波及効果を推定している。 また、表 5 は徳島県の 2011 年の産業連関表
を利用し、 2011 年の産業連闘が現状を反映していると想定した。
表5
経済波及効果の推定(単位は百万円)
耕種農業
I
列和
l
1.2s� i
1c3s6 1
4出
断。
529
1470
影ー饗左盤整一一」一一」旦」_l_ll_l
1% 成長効率
経済波及効果(推定)
列和×成長効率
無機化学工
飲料
食料品
医薬品
業製品
1.210
l祉
はん用機械
0.970:
1.011 •
1.261 !
1.011 [
1.211
i
0.97? i
384
1453
4446.
621
一ーム
?17
1152 i
511 i
3524 •
電力
_
1.229
0.985
1043
1282
次に、徳島県の県外への移輸出は、輸出入を含めた国内需要と相闘があることが考えられるため、
圏内生産額の変動比率と徳島県の移輸出の変動比率とで回帰分析を行った(図1)。 この時、 圏内生
産額を、国内需要としてみなした。徳島県の県外への移輸出は、輸出入を含めた国内需要との間で、
2000-2005 年と 2005 ・2011 年のどちらも相関係数の値が約 0.5 で、 そのp値についてはpく0.01 であ
った。
2000-2005 年
'
'
祖国係数0.496, p = 0.005
揮
Q
•
相関係数0.478, p = 0.008
蝋
爾
蝋
鵡
事
2005・2011 年
属
Q
φ
0.2
6
0.4
5
組
0.5
園内生産額の変動比率
囲内生産額の変動比率
図2
・・- "·
圏内生産額の変動比率と、 徳島県の移輸出の変動比率との相関関係
91
1
4.結論および考察 、 徳島県の主要な移輸出産業は、 医薬品、電子デ パイス、その他の電気機械、 無機化学工業製品、 食料品、電力、はん用機械、 パ ルプ・紙・板紙・加工紙、耕種農業、飲料であった。 医薬品では研 究、無機化学工業製品では雇用者所得、はん用機械では雇用者所得と鋼材、耕種農業では農業サ ー ビス、産業全体では鋼材が、移輸出の拡大のために特に大きな金額を要する中間投入であると思わ れ、その投入金額のスケ ー ルは表4からおよそ推察することができた。 このような中間投入の円滑 化により、移輸出が1%増加することを想定した時の経済波及効果の推定結果は表5に示された。 また、このような徳島県の移輸出は圏内生産との相関において相関係数が約 0.5 であり、 地域経済 、 の移輸出は圏内需要と相関していることが示された。 以上のことから、経済の円滑化のモデ ルは図 3のように整理される。 図3では、 圏内需要は徳島の移輸出に影響があるが、 徳島の移輸出は圏内 需要にあまり影響がないとした。 図3では、徳島の未来の移輸出が、現在の圏内需要の総合効果と中間投入の円滑化に依存するこ とを示している。 ここから、地域の移輸出の未来を予測および制御する判断材料として、本研究の 結果からは圏内需要と中間投入への介入の2点だけであると考えた。 よって、圏内の需要を考慮に 入れながら中間投入の制御を行うことは、円滑化という間接的な方法しかないものの、地域の移輸 出の活性化においては重要な役割を持っと考えられる(図3赤矢印)。その円滑化の方針を決定する 際には、本研究の表4や産業連関表の逆行列係数表などの利用が有用であると考えられる。 Japan 需主君現街 Japαn 需要(未来} Tokushimα 輸出(現在 Tokushima 輪出(未来} Tokushimα 投資(現在) Tokushima 投資{未来} Tokushima 円滑色 図3 行政による地域経済円滑化のモデル Reference [1 ]経済産業省. 地 域経済分析の考え方とポイント. Accessed at 20170531, Available at: http://www.meti.go.jp/policy/local_economy/bunnseki/point/bunsekipoint.pdf> く [2]総務省. 第 5 章 産業連関分析のための各種係数の内容と計算方法. Accessed at 20170411, Available at :く http://www.soumu.go 担/main_content/000290893.pdf> [3]総務省 . 第 6 章 産 業 連 関 分 析の 方 法. Accessed at 20170411, Available at: < htや ://www.soumu.go担/main_content/000290979.pdf> [4]宮川雅巳(2004)統計的因果推論一 回帰分析の新しい枠組み.朝倉書店 92
プログラムバグを見つけるための注目すべきSASログメッセ ー ジ 0吉野 祥 (株式会社クレスコ) SAS Log messag e forremove bugs Sho YOSHINO CRESCO LTD. 要旨 SASプ ロ グラムを実行したとき生成される ロ グには、SASプ ロ グラムのソ ー ス内容やプ ロ グラムより作成さ れたデー タセットの情報、 各ステップの処理時間、 使用したメモリ、 発生したERRORやWARNINGなどが出力 される。 ロ グに出力されたメッセー ジから、SASプ ロ グラムがどのような動きをしたかを知ることができる。 ログを確認することは、 デバッグ時にも有効である。 ロ グからは、 コー ディングミスがないか、 意図して いない動作をしていなし、かを確認することができ、 その原因を見つける手助けをしてくれる。 ERROR や WARNINGは強調して出力されるため、 メッセー ジを見逃すことはないだろう。 しかし、 ERRORやWARNINGのような明確なメッセー ジを確認するだけでは、 確認としては十分ではく、 そ れ以外にも注目すべきメッセー ジは存在する。 それらのメッセー ジを確認、することで、 ERRORやWARNINGを 、 見るだ けで、は気づかなかった動作にも気づくことができる。 また、 注目すべき ロ グメッセー ジを事前に把握しておくことは、 SAS プ ロ グラムの品質向上や作成効率化 に繋がると考える。 本稿では、 その注目すべき ロ グメッセー ジと注目すべき理由について紹介する。 キー ワ ー ド: ロ グ、 品質、 デノ〈ッグ 注目すべきSASログメッセ ー ジ WARNINや G ERROR 以外の注目すべきSAS ロ グメッセー ジについて、 実際のSAS ロ グを見ながら、 メッセー ジをひとつひとつ紹介していく。 ロ グlは、 欠損値を含んだ四則演算が実施されたときに出力されるメッセー ジである。 四則演算の中にI つの値でも欠損値を含んでいると結果が欠損値になる。 結果を欠損値にしないためには、 例えば、 プ ロ グラム1のような方法がある。 変数が欠損値かどうかを判 定するmiss ing関数を用いて、計算の前に欠損値を含んだ計算をしないようにする。coalesce関数を用いて、 欠損値の場合、 違う値に変換してから計算するようにする。 sum関数のように、 欠損値を含んでいても計算 処理を行ってくれる関数を用いる方法である。 95
プログラム1:欠損値を考慮したプログラム例 data TEST; set TEST; if not missing仏) then B = A+ 1 C = coalesce(A, 0) + 1 D = sum(A. 0) run ログ1:欠損値を含んだ計算により~ 60 data TEST; 61 A = . + 1 run ; 62 N OTE:欠損値を含んだ計算により、以下の箇所で 欠損値が生成されました。 (回数)(行:カラム) 61 :9 ログ2:変数~は初期化されていません 61 data TEST; 62 A= B; run; 63 N OTE:変数B は初期化されていません。 ロ グ 2 は、作成されていない変数を使用したときに 出力されるメッセ ー ジである。 例の場合、 変数 B には 欠損値が格納される。 このとき、 誤った変数名を記載しているか、 変数の初期化処理を記載し忘れている可能性がある。 ロ グ 3 は、 分母が 0 の割り算(除算)を実施したときに出力されるメッセ ー ジである。 行 61 と行 63 にあ るように、 計算式に変数があるかどうかでメッセ ー ジが異なる。 分母に 0 が入る可能性がある場合は、 事前 に0かどうかを判定しておくとよい。 ログ3 : 0による除算が発生しました data TEST; 60 A= 1 / 0; 61 ー ズの途中の行 61 カラム9で、0による除算が発生しました。 N OTE: コンパイルフェ 62 B = 1 63 A= B / 0; run; 64 N OTE:行 63 カラム9で、0による除算が発生しました。 A=. B=l _ERROR_=l _N」=1 N OTE:以下の箇所で演算式を計算できなかったため、結果を欠損値に設定しました。 (回数)(行:カラム) 1 63:9 ロ グ4、 ロ グ5は、 関数の引数に無効な値を含んだときに出力されるメッセ ー ジである。 ロ グ4 は臥.TA ステップにて、 ロ グ5はSQLプ ロ シジャにて出力され、 それぞれの関数の返却値は欠損値となる。 同じ引数 の無効という事象ではあるが、 DATAステップ、 SQLプ ロ シジャでメッセ ー ジが異なることに注意したい。 ログ4:関数~の第~引数は無効です 60 data TEST; A= substr("TESTぺ 1 , ー1) 61 62 run ; N OTE :関数SUBSTR(行 61 カラム7)の第3引数は無効です。 炉TEST _ERROR_=l _Nー=1 ログ5:~関数への引数が無効または欠落により/無効な引数~(関数~)です 66 proc sql select substr (A. 1 , -1) 67 68 , year(.) from TEST 69 96
70 NOTE: YEAR関数への引数が無効または欠落により、 関数が欠損値を戻しました。 NOTE:無効な引数3 (関数SUBST R)です。 欠損値が生成される可能性があります。 quit; 71 ログ6 の「数値を文字値に変換しましたJは、 文字処理に数値が含まれていた場合に出力される。 逆に、 「文字値を数値に変換しましたJは、 数値処理に文字が含まれていた場合に出力される。 ログ6:以下の箇所で~を~に変換しました data TEST 61 62 A= 1234567890123 B = "TEST" 11 A; 63 ” ” C = 123 + 456 ; 64 65 putlog A= B= C=; 66 run NOTE:以下の箇所で数値を文字値に変換しました。 (行:カラム) 63:17 NOTE:以下の箇所で文字値を数値に変換しました。 (行:カラム) 64: 13 A =l. 2345679E12 B=TEST1. 2345679E12 C=579 ログ6のメッセ ー ジの問題は、 値の変換が期待し ている値に変換されていない可能性があるという点 である。 特に数値は、bestl2. で変換されるため、 13桁を超えると、 指数表記で変換されてしまう。 ロ グ6のputlogステ ー トメントの結果のように、E付 きの数値で変換される。 暗黙的に変換されるため、 処理結果が期待された結果になっていることを確認 しなくてはならないだろう。 ログ7:文字型変数は以下の個所において、 デフォルトで200文字になりました 60 options msglevel=i ログ7は、options msglevel =i を設定していると 61 き、事前にlengthステ ー トメントで長さを指定して data TEST; 62 ” ” いない変数に対して、cat 関数などの文字関数の結果 A= ABC 63 64 B = cat (A. "DEF" を格納した場合に出力されるメッセ ー ジである。 長 run 65 さが指定されていない場合、 長さが200 バイトにな INFO:文字型変数は以下の個所において、 デフォル トで 200文字になりました。結果が切り捨てられる場 るため、200バイトを超える文字を扱っていた場合に 合があります。 文字が切れてしまう。本メッセ ー ジを確認した場合、 (行:カラム) 事前にlength 関数を指定すべきである。 64:3 B P ログ8は、 “ABCDE”EQのようにダ プツレクォ ー テー ションが閉じられた後、 半角スペースを付けず、EQ な どの演算子を記載したときに出力されるメッセ ー ジである。 ダブルクォ ー テ ー ションの後に、識別子を付けるパタ ーンとして、SAS日 付(例.“Ol]AN2017” d)、SAS時 刻(例. “os:01:23” t)、 SAS日時(例. “01JAN2011 os:01:23” dt)がある。 ログにあるように、 今後のリリ スで、 上記以外のパタ ーンが追加される可能性があるため、 ダブルクォ ー テ ー ションの後には半角スペー ー スを挿入するべきである。また、 コー ディングルー ル として、EQなどのニー モニック演算子を使用せず、=(イ コー ル) のような記号演算子を採用することも検討するとよいだろう。 ログ8:引用符で固まれた文字列の後の識別子の意味は~ 60 61 62 data TEST; A= "12345"; if "ABCDE"EQ A ; 49 97
NOTE 49-169:引用符で固まれた文字列の後の識別子の意味は、 将来のSASリリ ースで変わる可能性があります。 引用符で固まれた文字列と識別子の聞にスペ ースを挿入することをお勧めします。 63 run; ロ グ9は、 数値項目に対して、 put関数による文字列変換またはレポー ト出力(printプロ シジャなど)す る際に、 小さい出力形式が指定されたときに出力されるメッセー ジである。 例えば、 3桁の数値に対して、 3 桁未満の出力形式が指定されたときである。 このメッセー ジが出力されているとき、 実際の値とは異なる文字に変換またはレポート出力されている。 記載した出力形式を更に大きな値にして修正すべきである。 ログ9:数値をプPントするには小さすぎるW.D出カ形式がありました data TEST ; 60 61 A= 123; B =凶t (A, 2.) 62 run; 63 NOTE:デ ー タセットWORK. TESTは1オフザペ ー シヨン、2変数です。 NOTE:数値をプリントするには小さすぎるW.D出カ形式がありました。 " "BEST 出力形式によって小数点がシフトされる場合があります。 ロ グ10は、 行末に、 コロンを記載したとき出力されることがあるメッセー ジである。 本メッセー ジは、 goto 文の ラベルを書いているにも関わらず、 goto 文が記載されていないため出力される。 セミ コロ ンと コロ ンの書き間違いはよく起こることであるが、 この場合、 構文エラ ーにならない。 そのた め、 書き間違いを気付かず見逃しやすくなる。 セミ コロ ンの書き間違いではなく、 goto 文の書き漏れである 場合は、 プロ グラム2のように載することで、 本メッセー ジは出力されなくなる。 ログ10:~は未参照のラベル定義です プログラム2: goto 文の記載例 60 data TEST; A= 1 61 FORMAT: 62 63 run; NOTE: FORMATは未参照のラベル定義です。 data TEST ; A = 1 goto FORMAT ; FOR胤T : return; run ロ グ11、 ロ グ12は、 where ステ ー トメントが必ず ー るメッセ 0またはlとなる書き方をしているときに出力され ジである。 where句やDATAステップそのものが意味のない コー ドとなる。 テスト コー ドの消し,忘 れの場合もあるため、確認すべきメッセー ジである。lと Oのみを格納したマクロ変数を用いた場合も発生 するので、 書き方を見直すと良いだろう。 (例. where &TEST. →where &TEST. = 0) ログ11 : WHE阻o I•明らかにFALSEなWHE阻句で ログ12: WHERE 1 I•明らかにTRUEなWllE随句で す。 */ data TEST: 64 set TEST; 65 66 where O; run; 67 NOTE:データセットWORK. TESTから0オフザベーション を議み込みました。 WHEREOI* 明らかにFALSEな剛ERE句です。 */; す。 */ 69 data TEST; setTEST; 70 71 where 1 72 run; NOTE:データセットWORK.TESTからOオブザベーション を読み込みました。 附ERE1 /ホ明らかにTRUEなWHERE句です。 */; 98
ログ13:岡IBRE式を置き換えました data TEST ; 65 set TEST ; 66 where A= 1 67 where A= 2 68 NOTE: WHERE式を置き換えました。 69 run ; ログ13は、whereを2回以上記載したときに出力され るメッセ ー ジである。 最後のwhere ステー トメントが優先 されるため、 それ以前の where ステ ー トメントは意味のな い記述となる。 ifステー トメントの場合は、 複数記載していても、 それ ぞれの条件が適用される。しかし、whereステ ートメントでは記載できないため、 if ステー トメントを where ステ ー トメントに書き換えたときなどに発生することがある。 複数の絞込条件が必要であるかを検討し、 必 要であるならば、 if ステー トメントに書き換え直すか、1 つのwhereステ ー トメントに andを用い書き直 すべきである。 ログ14は、 DATA ステップにて、 無限ル ー プが発生したときに出力メッセ ー ジである。SASSの場合、 本メ ッセー ジは出力されず、 終わらない無限ル ー プが発生することになる。 ifOのように、 条件を必ず満たさな いサブセット化ifステートメントの中に、 setステートメントやinputステー トメントがある場合に発生す ることがある。 例のプログラムは、 デ ー タセットTEST_lの定義をコピ ーするためのプログラムである。 runステートメン トの前に、 st opステー トメントを記載し、 処理を中断することで回避できる。 ログ14:ルー プが発生したため、 DATAステップの実行を中止しました 64 data E T ST 2 ; 65 if O then set TEST_1 66 run ; NOTE:ル ー プが発生したため、DATAステップの実行を中止しました。 ログ15は、 環境設定に指定された文字コー ド以外の文字コー ドで作成されたデ ー タセットを扱ったとき に出力されるメッセー ジである。 メッセ ー ジにあるように、 処理パフォ ー マン スが低下する。 例えば、 シス テム更改で文字コー ドを変更したときなどに発生する。 頻繁に扱うデ ー タセットであるならば、文字コー ドを変えておくと良いだろう。文字コー ドの変換は、 CVP= オプションを使うのが簡単でーあるが、 文字の長さが自動的に変換される。 適切な長さにならない場合もある ので、 時間はかかるがデ ー タセットに応じて、 文字変数の長さを1つずつ指定し直すとよいだろう。 ログ15:デー タファイル~に他のホストにネイティプな形式が使用されているか ~ =、 data TEST(encoding j is") ; 60 61 A= 1 run 62 INFO:デ ー タファイルWORK. TEST.DATAに他のホストにネイティブな形式が使用されているか、またはエン コ ーディングがセッションエンコ ーディングと 一 致していません。 クロス環境デ ー タアクセスが使用される ため、 追加の CPU リソ ースが必要となり、 パフォ ー マンスが低下します。 ログ16における「変数~はデ ー タセットによって上書きされます」は、 mergeステ トメントによる結合時に、 byステ ー ー options msglevel=iを設定し、 トメントに記載していない変数をそれぞれのデ ー タセット にある場合に出力されるメッセ ー ジである。 同じ変数があった場合、 merge ステー トメントの後ろに書 いた デ ー タセットの値が格納される。 本メッセ ー ジはどのデ ー タセットの値が格納されたかを教えてくれる。 期 待していないデ ー タセットの値が格納される場合を防ぐため、 99 options msglevel=iは必ず設定しておくべ
きである。 ロ グ16におけるrMERGEステ ー トメントにBY値を繰り返すデ ー タセットが複数あります」は、 mergeス テ ー トメントによる結合時に、 n×nの結合がなされたとき出力されるメッセ ー ジである。 ログ16:変数~はデー タセット~によって上書きされます/阻RGEステ ー トメントにBY値を繰り返すデー タセットが複数あります data TEST 3; 88 merge TEST_l (in=SW1) 89 90 TEST_2 (in=SW2) 91 92 by A; 93 if SW1 and SW2: run; 94 INFO: 変数B (デー タセット WORK.TEST_1)はデ ー タセットWORK.TEST_2によって上書きされます。 NOT: E MERGEステー トメントにBY値を繰り返すデー タセットが複数あります。 NOTE:デー タセットWORK.TEST_lから5オブザペ ー ションを読み込みました。 NOT: E デ ー タセットWORK.TEST_2から7オフザベーションを読み込みました。 NOT: E デ ー タセットWORK.TEST_3は7オフザペ ー ション、2変数です。 mergeステ ー トメントによる統合は、SQLによる結合とは処理結果が異なる。 例えば、 表1、 表2のよう なデ ー タセットを、 ロ グ16のように変数Aで結合させた場合を考える。mergeステ ー トメントによる結果は 表3のようになる。 対して、 プ ロ グラム3のようにSQLプ ロ シジャで結合させた場合、 表4のような結果 となる。 その結果の違いにおいて、 特に注目すべきは件数である。 大きく結果が異なるのが分かる。 本メッセ ー ジを確認した場合、 作成されたデ ー タセットの内容が期待した内容になっているかを確認すべ きである。 期待しない内容であるならば、n×nの結合とならないように事前加工をするか、SQLやFEDSQLプ ロ シジャを用いることになるだろう。 表1:デ ー タ セット 表2:デ ー タセット 旭町一l TEST_2 表3: mergeによりn×nの結合 - -aqdndaqt4E-。t -aqt- 表4 : SQI,によるn×nの結合 2 2 2 2 2 2 3 3 2 2 2 2 2 2 3 3 3 2 3 3 2 2 5 4 11 14 14 13 12 12 13 15 15 - e-- -d----4・a4・・ 4・・・ - 41EtZ4zdEDFO E プログラム3: SQI,プロシジャによる n×nの結合 proc sql create table TEST_3_S0L as select Tl.A as Al • T2.A as A2 Tl.B as 81 T2.B as 82 frαn TEST_l as T1 inner join TEST_2 as T2 n Tl. A= T2. A order by T1. A 。 quit: 100
ロ グ17は、 libname ステ ー トメントにて存在しない場所を指定したときのメッセー ジである。 プ ロ グラ ムの初期開発時やライブラリの指定にマク ロ 変数を用いているときにはチェックすべきメッセー ジだろう。 ログ17:ライブラリ ~ は存在しません ” I ibname TEST /myfolder/wrong"; 61 NOTE:ライブラリTESTは存在しません。 ロ グ18は、 デ ー タセットがないとき、 datasetsプ ロ シジャにてデ ー タセットを削除しようとしたときに 出力されるメッセー ジである。 タイピングミスで意図していないデ ー タセット名を記載している可能性もあ るため、 開発当初は期待したデ ー タセットが削除されているか確認しておくべきである。 対して、 ー ロ グ19のように、 deleteプ ロ シジャを用いた場合、 NOTEメッセー ジではなく、 WARNINGメッセ ジとして処理される。 プ ロ グラムの用途に応じて、 どのプロシジャを使うか選択するとよいだろう。 ログ18:ファイル~ は見つかりませんが、DELETEステ ー トメントに存在します proc datasets I ib=work no I ist; 61 delete TEST ; 62 63 run NOTE: ファイルWORK. TEST (memtype=DATAlは見つかりませんが、DELETEステ ートメントに存在します。 ログ19:デー タセットがない場合のdeleteプロシジャのログ 60 proc delete data=TEST ; 61 run WARNING : ファイルWORK. TEST.DATAは存在しません。 ロ グ20、 ロ グ21は、 指定したデ ー タセットにオブザベ ーションがないときに出力されるメッセー ジであ る。 0 オブザベ ーションのまま処理が続くことが想定どおりであればよいが、 処理の場所によって想定どお りでない場合もある。 オブザベ ーション数が重要である場合は、 ロ グで判断せず、 自動マク ロ 変数SYSNOBSなどで、 オブザベ ー ション数を取得し、 プ ロ グラム上で判断させるとよいだろう。 ログ20:入力デー タセットは空です/デー タセット~からOオプザベーションを読み込みました 66 proc sort data=TEST; by A; 67 68 where A = . 69 run; NOTE: 入力デ ー タセットは空です。 NOTE: SASソ ートを使用しました。 NOTE:デ ー タセットWORK. TESTからOオブザベ ー ションを読み込みました。 WHERE A= . ログ21:デー タセット ~ にオプザペ ーションがありません 67 proc su剛ary data=TEST nway missing; class A; 68 69 output out=SUM; 70 run NOTE:デ ー タの要約には、 複数の同時スレッドが使用されます。 NOTE:デ ー タセットWORK. TESTにオフザベ ー ションがありません。 101
ログ22 は、 プログラム4を実行したときのログである。 における「~に対して、 無効なデ ー タが~にありますJは、 変数 Cが数値を指定しているにも関わらず、 文 字列を読み込んだときのメッセ ー ジである。 プログラム4の場合、 文字列klmnを読み込もうとしている。 このメッセ ー ジが出力された場合、 inputス テ ー トメントあるいは読込デ ー タに不備がある可能性がある。 ログ 22における「INPUTステ ー トメントが行の終端に達したので、 次の行を読み込みます」は、 読み込ん でいる行にinputステー トメントで指定した変数分のデ ー タがなく、 不足分を次の行から読み込もうとした ときに出力されるメッセ ー ジである。 変数A, Bはそれぞれ 1 行目の文字列abcde, fghijを読み込み、 変数Cは次の行、 2行目の文字列klmnを読み込もうとしている。 l行の項目数が 一 定ではない複雑なデ ー タレイアウトの場合には無視してよし、かもしれないが、 基本的に はデ ー タに不備がなし、かを確認すべきである。 ログ23は、 ファイルlを読み込むプログラム5を実行したときのログである。 ファイル1の長さは10 バイトあるが、 プログラム5にて指定している lrecl=の値は5バイトである。 そのため、 5バイトまでし か読み取られず、 6バイト以降は切り捨てられたため出力されたメッセ ー ジである。 本メッセ ー ジを確認し た場合、 デ ー 夕、 あるいはlrecl=の長さ、 inputステ ー トメントに指定した変数の長さを見直すべきであ る。 プログラム4:無効なデー タ data TEST infile cards input A $5. B $5. C: cards abcde fghij klmn ファイノレ1 プログラム5 : lrecl=が小さいプログラム data TEST infi le IN lrecl=5 : input A 8. run 1234567890 run, ログ22:~に対して、 無効なデ ー タが~にあります/INPUTステ ー トメントが行の終端に達したので、次 の行を読み込みます。 NOTE : Cに対して、 無効なデ ー タが行64カラム11-11にあります。 ーーー←一一1 一一一+一一2一一一←一一 3一一一←一一4一一一←一一 5 一一←--6一一→ー 一一7一一←一一 8 abcde fghij 64 A=abcde B=fghi C=. _ERRORー=1 _Nー=1 NOTE : LOST CAR D. 66 A=klmn B= C=. _ERROR_=l _N」=2 NOTE: INPUTステ ー トメントが行の終端に達したので、 次の行を読み込みます。 R UL E : ログ23:切り捨てられた行があります NOTE : 1レコ ー ドを入力ファイルINから読み込みました。 最小レコ ー ド長は5です。 最大レコ ー ド長は5です。 切り捨てられた行があります。 NOTE : INPUTステ ー トメントが行の終端に達したので、 次の行を読み込みます。 ログ2 4は、 SQLプロシジャにおいて、 noexecオプションが記載されているとき出力されるメッセ ー ジで 102
ある。 メッセ ー ジにあるとおり、SQLプロシジャは実行されない。 on execオプションは実行しないためのオ プションで、SQLの構文チェックに利用できる。 本メッセ ー ジを確認することで、 開発時のオプション削除 忘れが確認できる。 ログ24: NOEXECオプションが指定されているため、 ステ ー トメントは実行されません 60 proc sql noexec ; 61 select a 62 from TEST 63 NOTE: NOEXECオプションが指定されているため、 ステ ー トメントは実行されません。 ログ25は、SQLプロシジャにおいて、 case式にて、 else句を記載しなかった場合に出力されるメッセ ー ジである。メッセ ー ジのように、when 句に記載した条件をすべて満たさなかった場合、欠損値が出力される。 else句も含めて条件分岐を明示的に記載することで、 処理分岐の漏れを防ぐことができる。 ログ25: CASE式にELSE句がありません proc sql 67 select case when A= 2 then 1 end as A_l 68 from TEST 69 70 NOTE: CASE式にELSE句がありません。 すべての附印句の条件に合わなかった場合、 CASE式の結果は欠損値になります。 ログ26は、 SQLプロシジャにおいて、group by句に記載のない変数が、 select句の集約関数外にて記載 されていた場合に出力されるメッセ ー ジである。例のプログラムであれば、変数Bがgroup byになく、select 句にある変数である。 このとき、 メッセ ー ジにあるように、 再マ ー ジという処理が実行される。 ログ26:クエリは元のデー タに要約統計量の結果を再マ ー ジ 74 75 76 77 78 79 80 81 proc sq I ; select A B • sum(B) as B_SUM from TEST group by A order by A NOTE:クエリは元のデ ー タに要約統計量の結果を再マ ー ジします。 再マ ー ジは、 集計処理が行われた後、 集計結果を集計前のデ ー タと結びつける処理である。 表lのデ ー タ を変数 A で集計した結果が表2で、 その集計結果を再マ ー ジした結果が表3である。 再マ ー ジは、SAS独特のSQLの結果のため、 特にSQLを慣れ親しんだユ ー ザ ーにとっては期待していない 結果の場合がある。 再マ ー ジを許可したくない場合は、 optio ns nosql remergeを設定することで、 再マ ー ジ を抑制し、 ログ27のようにERRORにすることができる。 または、SAS9.4以降であるならば、SQLプロシジャではなく、FEDSL Q プロシジャを用いることでも再マ ー ジを防ぐことができる。FEDSQLプロシジャ は、 NA SISQL99に準拠しているため、 SQLユー ザ ー にとっては、 期待通りの結果になりやすくなるだろう。 103
表5:集計前 表6:;集計後、 再マ ー ジ前 表7:再マ ー ジ後 叩 一却 一却 一叩 一却 A 日 B SU市f 100 10 100 100 200 20 200 500 300 20 300 500 400 30 400 900 500 30 500 900 ログ 27: options nosqlr阻erge を設定して、 再マ ー ジをしたときのメッセ ー ジ ERROR :クヱリは、 要約統計量と元のデ ー タとの再マ ー ジを要求しましたが、 許可されません。 NOREMERGE プロシジャオプションまたは NOSQLREMERGE システムオプションが指定されています。 ログ 28 は、 SQL プロシジャにおいて、 group by 句が記載されているが、 select 句や having 句に集約関数 (sum や max, count など)が記載されていない場合に出力されるメッセ ー ジである。 group by が余分であ るか、 集約関数を追記すべきか見直す必要がある。 なお、 order by 句を記載しない場合、 NOTE ではなく、 ロ グ 29 のように WARNING が出力される。 ログ 28 :関連するテ ー ブルの SELE口句も臥.YING 句も要約関数を引用していないので~ 60 proc sql select A 61 62 from TEST 63 group by A order by A 64 65 NOTE :関連するテ ー ブルの SELECT 句も HAVING 句も要約関数を引用していないので、 GROUP BY 句は無視されました。 66 quit ; ログ 29 :関連するテ ー ブルの SELE口句も臥.YING 句も要約関数を引用していないので~(胃腿NING) WARN 川崎:関連するテ ー ブル式の SELECT 句も HAVING 句も要約関数を引用していないので、 GROUP BY 句は ORDER BY 句に変換されました。 ログ 30 は、 SQL プロシジャにおいて、 select 句にない変数を order by 句に記載していた場合に出力される メッセ ー ジである。 order by 句に、 誤った変数を記載していないか確認する必要がある。 ログ 30 :;指定したクエリには SELE口句にない項目によるソ ー トが含まれます 74 proc sql select A 75 76 fr叩TEST 77 order by B 78 NOTE :指定したクエリには SELECT 句にない項目によるソ ー トが含まれます。 quit; 79 104
ログメッセ ー ジを確認する上で気をつけなければならないこと 紹介した SAS ログメッセ ー ジの有無を確認することで、 パグの可能性がある箇所を発見しやすくなるだろ う。 しかし、 ログを確認する上で気をつけなければならない点がある。 1 つ目は、 ログメッセ ー ジの内容はパ ー ジョンとともに変化することである。 例えば、 SAS9.4 と SAS9.3 で分母が 0 の割り算のときのメッセ ー ジは異なる。 SASS のとき、 where ステ ー トメントが必ずlまたは0のときのメッセ ー ジは、 日本語ではなく英語であった。 そのため、 パー ジョンによっては、 本稿で紹介したメッセ ー ジはそのまま使えない。 それぞれのメッセ ー ジを出力するための SAS プログラムを実行し、どのようなメッセ ー ジが出力されるかを確認する必要がある。 また、 パー ジョンアップの都度、 メッセ ー ジが変化していなし、かを確認すべきである。 ツ ー ルなどで自動的 に検索するときは、 検索できなくなる。 確認しない場合、 意味のないメッセ ー ジの確認をすることになりか ねない。 また、 紹介したメッセ ー ジ以外にもパグになりうるメッセ ー ジはあるだろう。 パー ジョンアップによって 追加になるケ ー スも十分にありうる。 特に、 新しい技術を使う場合は普段見かけないログがないかを注視し ておくべきである。 そのためには、 普段出力されているログがどういうものかも慣れておくとより良いだろ フ。 2 つ目は、 閉じ処理でも DATA ステップ、各プロシジャによって、 メッセ ー ジの有無や内容が異なることで ある。 紹介したメッセ ー ジは、 主に DATA ステップや SQL プロシジャの処理中に出力されるメッセ ー ジであ る。 しかし、 他のプロシジャで閉じ処理をしたとき、 ERROR や W服NING になることもあれば、 NOTE メッセ ー ジも出力されない場合がある。 例えば、プログラム 6 では、 DS2 プロシジャにて初期化処理をしていない変数 B を使用している。しかし、 DATA ステップとは異なり、 特にログにメッセ ー ジは表示されない。 プログラム 7 は、 SQL プロシジャにおける欠損値の含む四則演算で、 特別なメッセ ー ジは表示されない。 これは、 FEDSQL プロシジャ、 DS2 プロシジャにおいても同様である。結果が欠損{直となることは同様である。 プログラム 8 は、 lua プロシジャにおける分母が O の割り算で、 特別なメッセ ー ジは表示されない。 結果 は欠損値となる。 プログラム 9 は、 FEDSQL プロシジャにて、 case 式に else 句がない場合も、 SQL プロ 、ンジャと異なりメッ セ ー ジは表示されない。 プログラム 6: DS2 プロシジャ初期化していない プログラム7: SQLプロシジャ欠損値を含む四則 変数の使用 演算 proc ds2 I ibs=work ; data TEST (overwrite=yes) dcl decimal (10, 0) AB ; method run O; A= B end; enddata; run quit; proc sql select. +Aas A from TEST quit; 105
プログラム8 : luaプロシジャ0割の計算 プログラム9 : FEDSQI,プロシジャelse句の記載 proc lua ; submit; local A= 1 local B= 0 A = A / 0 print("A= " .. Al print("B= " . . Bl endsubmit ; quit; なし proc fedsq I I ibs=work ; select case when A= 2 then 1 end as A 1 from TEST quit; 紹介したメッセー ジは、 あくまで紹介したステップやプ ロ シジャの中でしか出力されないことを注意しな ければならない。 3つ目は、 紹介したメッセ ー ジが出カされている=パグ、 ではないということである。 例えば、 ロ グ22 の「INPUTステー トメントが行の終端に達したので、 次の行を読み込みます」のように、 扱うデー タによって、 必ず出力されてしまうことがある。 メッセ ー ジは確認すべきではあるが、 ひとつひとつのプ ロ グラムに応じて、 判断すべき場合がある。 ただ し、 ルー ルに例外を多くつくると、 確認に漏れが生じることになりかねない。 あるプ ロ グラムでは確認すべ きであるが、 あるプ ロ グラムでは確認しない、 となると確認しなくなるパタ ーンが発生する可能性がある。 各々の環境に応じて、 例外は極力減らし、 確認すべきメッセ ー ジを選定し、 コー ディングルー ルを設定する べきである。 最後に、 ログだけではあらゆるパグを見つけることはできないということである。 見つけるための銀の弾丸ではない。2つ目で述べた通り、 紹介したメッセ ない。 したがって、 紹介したメッセ ー ロ グだけでは、 ー 成されたデ ロ グの確認は、 パ グを ジは特定条件下でしか出力され パ グかもしれない事象をすべて確認することはできない。 ジからできることは、 一部のパ グかもしれない箇所を見つけやすくしてくれることであ ロ グだけに注目して、 る。 ー デー タを見ることを疎かにしてはならない。 ロ グだけを確認するのではなく、 作 タの内容についても確認していかなければならない。 まとめ W服NINGやERROR以外の注目すべきSAS ロ グメッセ ー ジについて、 実際のSAS ロ グと共に紹介した。 紹介 したメッセ ー ジの有無をプ ロ グラムの実行後に確認することで、 ー たデ タから探すことも可能であるが、 なる。 ツ ー ルなどを用いて、 ロ グであれば、 ロ グを確認し、 パ グに気づきやすくなるだろう。 発生した箇所も特定できるので、 デバッグも容易に デバッグを容易にさせてくれるだろう。 しかし、 先述したとおり、 すべてのパグを ロ グから見つけることはできない。 ー れたデ 作成され ロ グも確認し、 タの内容も必ず確認することで、 より良い品質のプ ロ グラムになるだろう。 本稿が、 少しでもSASプ ロ グラム開発の 一 助となれば幸いである。 106 作成さ
実務の実際 タマネジメント業務と解析業務はどう変わったか ー SAS Drug Development (SDD) ー デ ー 0松山友映 1 、 O高沼正幸 l 、 兵頭洋平 1 、 長谷川優子 l 、 本山佳代子 l 、 山下昌洋 l (I 協和発酵キリン株式会社) 申請時電子デ ー タ提出に対応した医薬品デ ー タハンドリングプロセスを保証するには、一連のプロ セスのトレ ー サピリティが重要となる。 また情報資産管理の観点から、 電子デ ー タの堅牢なセキュ リティ対策も求められる。 一方で、 申請用電子デ ー タを作成するには、 デ ー タマネジメント部門、 解析部門、 臨床薬理部門、 バイオマ ー カ ー 解析部門、 安全性管理部門など関連部門との連携が不可欠となる。 さらに、 昨今は 国内外も含め外部リソ ー スの活用も進み、地政学的な壁を乗り越えた業務連携も日常茶飯事となっ てきた。 このような環境変化の中では、 PC-SAS(もしくはServer SAS)と社内のセキュアサ ー パの組み合わせ といった従前の仕組みでは、デ ー タハンドリングプロセスの信頼性担保の脆弱性や情報セキュリテ ィ管理の観点などから企業リスクが高まることが懸念される。 さらに、 セキュアかっシ ー ムレスな デー タ共有・プロセスの共有は不可能である。 そこで、 これらの課題を解決するためのシステムの 導入・運用が各社で始まっている。 当社では、 2013 年 12 月にSAS Drug Development(SDD)を本格稼働させ、 現在全プロジェクトの電子 デ ー タをSDD 上で運用管理している。 これまでの当社の経験を踏まえ、(1)プログラミング業務の効 率化、(2)情報資産の有効活用と保護の両立、(3 )シ ー ムレスな協業の促進 の3 つの観点でSDD 導入 の有用性を紹介する。 (1)プログラミング業務の効率化 (トレ ー サピリティの向上) プロジェクト横断的にファイルの保管場所が統 一 され、情報資産へのアクセスが迅速かつ正確に行 えるようになった。 さらにファイルのパ ー ジョンやプログラム実行のトレ ー サビリティなどが自動 的に記録されることによって、デ ー タセット作成プロセスの信頼性を保証するエピデンスを効率的 に取得できるようになった。 このトレ ー サピリティは実務面でも有用である。 例えば、 SDTMやADaM は、 申請前のバリデ ー ションチェックなどにより多少の「お化粧直し」が発生することが多い。 そ の際に、変更対象となったデ ー タセットの由来や使用されたプログラムなどが視覚的に特定できて いることで、 正確な修正対応が可能となる。 (2)情報資産の有効活用と保護の両立 臨床試験デ ー タは高度な営業秘密情報を含んでいるため、 インサイダ ー 情報になるリスクがある。 そのため臨床試験デ ー タは、許可された者のみがアクセスでき、 一方公開可能となった場合にはa情 報の有効活用のため、 適正な範囲で公開されなければならない。 このきめ細かな情報資産のアクセ ス権設定を手動で行うことは煩雑であるため実務的には不可能であり、 SDDのアクセス権設定機能 が情報資産の有効活用と保護の調整弁として活躍している。 (3 )シ ー ムレスな協業の促進 自社の海外拠点のみならず、国内外のCROとの協業はもはや製薬業界の常識である。 特にSAS 関連の 業務では、 所属、 国境に拠らず作業環境を共有できるメリットは計り知れない。 当社では海外拠点 および国内外のCROとSDDを介した協業を推進しており、 即実行可能なSASプログラムの共有、 成果 物の即時納品、作業進捗のリアルタイムな確認、標準マクロの共有など、その利点を享受している。 107
Jupyter Notebook を活用したプログラムライブラリ構築の検討 0吹谷芳博 l , 藤津正樹 l ( 1 あすか製薬株式会社) Examination of the program library cons仕uction using Jupyter Notebook 1 Yoshihiro F味iya , Masaki Fujisawa 1 1ASKA Pharmaceutical Co., Ltd. 要旨 プログラム開発とその周辺作業の効率化は, プログラム開発に欠かせない検討課題であり, 惜し みない努力と時聞が費やされている. 吹谷( 2016)は, R 言語の パ ッケ ージを用いて, SAS 言語の プログラムソ ー スと文書を 一 括作成・管理する方法を検討した. しかし, パ ラメ ー タ設定が煩雑で あり, PC SAS の環境のみに制限されていたため, 汎用性のあるツ ー ルとしての拡張性に欠ける. 本報告では, Jupyter Notebook でのプログラム実行環境下で, 文書, プログラムソ ー ス及びプロ グラムの実行結果を 一 括管理できる方法を提案する. また, R言語パ ッケ ージでの実装結果と比較 し, その利点と欠点を浮き彫りにする. Jup戸.er Notebook の利便性を活かして SAS マクロなどのナ レッジ管理ツ ー ルとしての使用事例を報告する予定である. その他の拡張ツ ー ルを導入することで, さらなる利便性の向上を図った内容も報告する予定である. キ ー ワ ー ド: Jupyter Notebook, P戸hon, markdown, 文芸的プログラミング 1. 序に代えて プログラム開発とその周辺作業の効率化は, プログラム開発に欠かせない検討課題であり, 惜し みない努力と時聞が費やされている. とくにデ ー タ解析で使用されるプログラムは汎用的に使用す るために,社内標準化のル ー ルや共通ル ー ルに基づくシステムを構築しても往々にプログラムの共 有化やメンテナンスで徒労に終わる. そこで効率の良いプログラムの標準化を目指すことを目的と して, 吹谷( 2016) [6]は, R 言語のパッケ ージ (knitr)を用いて, SAS 言語のプログラムソ ー スと 文書を 一 括作成・管理する方法を検討した. しかし, パ ラメ ー タ設定が煩雑であり,PCSASの環境 に限定されていたため, 汎用性のあるツ ー ルとしての拡張性に欠けていた. 近年, Jupyter Notebook [!]が, デ ー タの分析作業を円滑に進めるツ ー ルとして脚光を浴びている. 本ツ ー ルは, 以前に !Python Notebook と呼ばれていたツ ー ルであり, Python でのプログラム開発に 利用されていた. その利便性に着目した他言語のユ ー ザ ー により, さらにそれぞれの言語への移植 が行われた.その結果,多言語に対応した Notebook 形式の Web アプリケ ー ションとして開発され, 対応する主要な言語(Julia+ P同10n+ R)から Jup戸:er と名付けられた .SAS は 2016 年 4 月に Unix SAS v9.4 で利用可能となり, 同年の 7 月に SAS Univ釘sity Edition でも利用可能になった. 108
本報告では, Jupyter Notebook でのプログラム実行環境下で, 文書(軽量マ ー クアップ言語の markdown形式で記載), プログラムソ ースおよびプログラムの実行結果を 一 括管理できる方法 (Jupyter Notebookによる文芸的プログラミング[4])を提案する. また, R言語パッケ ージでの実 装結果と比較し, その利点と欠点を浮き彫りにする. Jupyt巴 r Notebookの利便性を活かした SASマ クロのナレッジ管理ツ ー ルとして,生物学的同等性試験の例数設計のプログラムへの適用事例を紹 介する. さらに, その他の拡張ツ ー ルやプログラムを導入することで, 一 括実行によるナレッジ管 理ツ ー ルの構築が可能となる. その適用事例にも触れる. 2. 方法 2.1. Jupyter Notebookの導入方法 Jupyter Notebookの導入には, 最低限以下のl言語および3個のパッケ ージのインスト ー ルを要 する. • Python3系:JupyterNotebookを使う上で必須の言語(Python 2系とPython3系があるがPython 3系をインスト ー ルが望ましし、). • Jupyter : Jupyter Notebookを動かすためのパッケ ージ. • SAS_ kemel[ 2] : Jupyter Notebookと SAS とをつなぐパッケ ージ. • SASPy[3] :Python上でSASを呼び出すパッケ ージ(SAS kernelと連携してJupyterNobebookに 対して機能する). Jupyter Notebookを導入する際はAnacondaを推奨する. Anacondaは ContinuumAnal戸ics社によ って提供されているPythonのディストリビュ ー ションである. Python本体に加え, 科学技術, 数 学, エンジニアリング, データ分析等, よく利用される Python パッケ ー ジが 一 括でインスト ー ル 可能である. また, 開発環境の構築が容易になり,Anacondaをインスト ー ルすることで町北hon3 系とJupyterを同時にインスト ー ルできる. ( 2bit版)OS およびPC SAS 本稿では, Windows7 3 た. インスト ー (v9.4)の環境下で構築のための設定を試み ル方法と設定方法の詳細は, SAS_kemelのドキュメント[2]に記載されているため, インスト ー ルから実装までのステップを簡潔に補遣に示した. 2.2. 動作確認 次の実行手順に従って動作確認を行った.動作結果をFi伊relに示した.動作確認の結果,文書, プログラムソ ースおよびプログラムの実行結果が 一つのファイルに表示されていた. 1. スタ ートからJupter Notebookを選択する. 2. ブラウザ上でJupter Notebookが立ち上がったら右上の「NewJを選択し, 「SAS」を選ぶ. 3. 以下の内容を入力し, 実行する. title ” Test ” ;proc print data=SASHELP.CARS(OBS=勾;run; 109
:ご Jupyter Fil: Ed ’ ·�•c: §SIS Loe冨’ 動作テスト出。閣制刷B由掴咽{園田..,, \,low hi;副 臼H i �.里土, ...r. -.厄-..- •. "問i h珂 出. :均一 Js倍。 i里旦JL平日竺R 竺 竺 In [lJ: | 且S Co岡町岡田宮由主1Dhecl S晦Z 憎” M 1o 1062 OUt;(lJ: ・ -- 'w 5 刊:.�:1 :j日間::tt/-:- J: �: ”I •初 調| l 羽岡| 岨 I 川| '創 叩 3. 実装結果 3.1. 実装した環境の性能評価 SAS_kernelのドキュメント[2]内の “ ” Getting 蜘rted (入門)を参照して, PC SAS環境下での出 力結果を評価した. 実装した環境の性能評価に利用したデー タは, Kaggle (予測モデ、ルの精度を 競うデー タ分析 コンペティションが多数開催される分析 コ ンペティションプラットフォ ームのサ イト:htゆs://www.kaggle.com/)から入手でき, 高収入者および高スキル者に早期退職が多いことの 原因を調査するために収集された8変数からなるデー タセットである. 本デー タは実デー タではな く, 乱数により生成されたシミュ レーション ・ デー タである[7]. レコード数は14999個であり, デ ー タに含まれる変数名は, 以下のとおりで、あった. · Last evaluation (最終学歴) ・Number of projects (担当しているプロジェクト数) ・Average monthly hours (月平均の勤務時間) ・Time spent at the company (会社で過ごす時間) ・Whether they have had a work accident (労働災害の有無) ・Whether they have had a promotion in the last 5 years (過去五年間の昇進の有無) ・Department (部署) ·Salary (収入) 出力結果をFigure2に示した. ①はMarkdown形式で記載された “ ” Ge悦 ing started の説明内容を 示したものであり, ②は csv 形式のデー タを取り込んだときのログの表示であり, ③は取り込ん だデー タの コンテンツ情報をテー ブル出力したものであり,④はヒ ートプロットのグラフ出力の結 、 果である. ②のようにプログラムの実行結果にグラフまたはテ ー プ ルが含まれなければ, ログの情 報が出力される. そのため, JupterNotebookの構成を考える段階では, プログラムソ ースをJupter Notebookのどの箇所に含めるかを十分に検討し, 余分なログの出力を制御することを要する. “ ” Ge仕 ing started を参照した実装結果をTable lに示した. 問題点として, 以下の2点を挙げる. 110
ご
JUpyter
Fil>Toe:t,
Gotti,g_S回回目叫
,;勘
<>"'-Y><
同
制
問
"++”・
Ol
'=圃
叫
e
"""'*''"'
V
周
回 ...地』陥・
v
..
抽叩
三Jupyter
|問。
'�'l'i
»
q
@回
Gotti,s_Start副』岨
叩
Cell
h>ffl
、-·‘ .. "
+ ψ
”•
V吋
C
.::<do
自国官、_,,,凶、,..
V
L串a
1
h凶
叫
,民。
»
Ge仕ing S随時:ed
帽回 SIS 畑町""'回l 町世、,�·但"'血ぜ甘
ゐ他
包・ ...・
E均
也
了句SAS陥作創’Cr.J.Jf隊創也命諸梅園畑 ..出順調旬W畑"""割問forS"6時h""卵r ""'也沼岡T同制巴庁官l
W官
�SASPD"8ffl
fmltotlsro!取衛官園出
dii.a�
崎,唱a
h重品目直川由ofP"oanm,Tお唱W愉 S
bo頃盛盆泊e l'nm,刷旬宵J 、細切怖”も冊mn,/1
g慣習・.
Load由旬加to SAS
I
町旬咽"'"’om 帽隠包岨凶旬可温 副町也...町
ITteFIL.E部抗i.Ei.ute
d命
冨..
也 岡崎'-=官官礼曾·-
印ヲ白日ロ
回目白叩
・d
主 ;。� """ '"'"--"'-"芭・ ・
-""'"""'
ヲ玄・,・
・ロロロコ cc:.;,, 世間"
田克冊目
=羽"""''"'""
‘‘'
(・
・..・
・' .
・ ,.・ 包
"
I
201"1CTN
’
e .. 1.0.... opt. 孟OD"
’
由回
d回定W け..挽E別
a由
aS"6,:1;1t
b・fault
砂町制…一
冒世泊n=旬....句
帽司u・ -同 ・圃 旬開喝別町
一一一一一刷出回向……陶旬…
TtuCCNTellS
u:odl.nq) 'l'.D.l
2
D
01 ,
.ya-:,\ll; Do.t.a\loca.l\'fct
副乃剛、...,
C!llOR!l
E 阻M R田宮 :HP EDV
.,.CCC
Con£19
C
c自国間=
C:\Pi°"9'1'lm n..len\ll5Ha:::>l,\s.J.91'oundat10ll\9
田町田正
I
1
E櫓
io-
0'f I Default
Z .,nee, '
企画?”.... "
E咽on, the
in.oc1<ec w
000 AU'l"OaEC Oi:DvOvD
z v
2己,wo :雰:r:i 10:i:Jsoo2 cs
eo 1) file冨
= ロZ'"·"'ロ
ロロロロ ロロ
'
ロ回目[
ロ ロ ロマ昭ロロロロロ ロ
�,,,,,.
-由 ・町-c,、·-·、白凪
mi::e ・mm cir:... 百由主ロロ" ・ ロ
目
得、-,-宅配�
[ロ,
ロ・,
rile
C, ロ, o�� :ロ臼巴 ・
叫,
,, ""
。,..q13
"
a
割問山口
b
t!U.SPY_I
z 1
2
z 3
岡町,,_凋白川富凶-·曹司・�命旬。,
le Tl'llllif>O
帥・ t師同副師凶比•=・.,,,, .....縄,
JII:C lOC
z 0
a lUIUng a .0$<,
ph:Lca 01> /
同
日叩由雫司S
:t,i-.,噌創刊,�『晴d’ m
pr,ic c,ptUu cpt.l
2017
C
I
�N由 :,okTI
+つ正面・
•••-・ ・, ’‘
・・
C
"°'
Pl.lAS
、 民'"-
……
T
d9
..・..・a
i 回。
白幽宵明.一除却、; ...
h刷
v
戸田噌,.,叫.....,r1r._.,..;
p・a e_e l=t.10ay-. a t;isfae包:1.on_1.._1,
血Z
Y
ln(2],
,=回目山由旬明白 p町
由叫問Varl•ble•;
procpu11eae-rk_...-.c
ロ
C NISUS
』,,,
ヲロシ,.,.
I .,,,1一一 一
+ … 一 一 一一一一一
. :
圃
.|愉同劇!
.,”’“旨一胃腎,嘱砂,..”
醐
"""冨D?!la.l回国防スm
耐!雌"
l 一 )一一一
,:
E叩
I
雌m
’
,民, 2
骸憧
Figure 2. シミュレ ー ション ・ デ ー タを用いた実装結果
Table 1. 実装結果の評価
評価結果
グラフ:画像
|オプションの指定なく椅麗に出力された.
グラフ:タイトル
|日本語を使用すると文字化けが起こった.
テ ー プル
|問題なく出力された. ただし, タイトルや変数ラベル及び文字列デ ー タに日
本語が含まれる場合は文字化けを起こした.
ログの出力
日本語が含まれる文字化けを起こすため,ログチェックは見読不能であった.
処理速度
通常の SAS の GUI に比して処理速度が遅かった.
l点目は,実行後のリストおよびログ関連の表記が設定されたエンコ ー ドの違いに起因して文字化
けしていることである. SASプログラムの実行はエンコ ー ドをUTF-8に設定したが,正確に出力さ
れなかった. SASUniversityEditionでは, こ のような現象が起こらなかったため, SASPyの設定に
由来する現象であるか否かの調査を要する. 2点目は,SASのGUIよりも処理速度が遅くなること
である(SASプログラム約8秒に対して約43秒). これはmarkdown のコンパル処理速度が含まれ
るため直接的な比較は困難であるが,それを加味しでも遅く感じられた. このことはWebブラウザ
111
を介して操作するSAS S tudioでも同様の現象が起こり(約23秒),PCのCPU,メモリ及びHDD/SSD 等の処理に影響する構築環境とWebブラウザの性能に依存する. 3.2. Jupyter NobebookとR(kintr)との性能比較 Jupyter Notebook と R パッケ ー ジ(knitr)との性能評価の対比表をTable2に示した. Jupyter Notebookの利点は,操作方法および文章構成の柔軟性がRパッケ ー ジ(knitr)に比して 高い.このた め,Jupyter Notebook環境が適切に設定されれば,特殊な操作なく使用 できる強靭なツ ー ルとなる. Rパッケ ー ジ(knitr)を用 いた場合の利点は, word形式で解析結果を出力する場合に, Jupyter Notebookよりも有用となる. 今後の展開を考慮に入れると, Jupyter Notebookは拡張性が高く, 様々な追加パッケ ー ジの開発 が活発であり , 有望である. 一方で,SAS UniversityEditionは, Jupyter Notebookが同時にインスト ー ルされるため,URLによる切り替えで Jupyter Notebook の使用可能となる. したがって,SAS University Editionでは, このような使用方法の普及が見込まれる. Table 2. 性能評価の対比表 操作方法 文章構成の柔軟性 出力形式:h加I 出力形式:word 出力形式:pdf*l Unix SASやSAS University Editionでの利用 拡張性 0 0 @ ム A O @ Jupyter Notebook R(knitr) ム D,. 。 ム × 。 @ *1 : PDF変換の際はTexのツ ー ル群を要する. 4. 事例検討 4.1. ナレッジ管理の事例 Jupyter Notebookを使用したナレッジ管理ツ ー ルは, lマクロにつき, lファイノレに纏めることを /レ ー ル化している.これは,マクロプログラムの更新と同時にドキュメントを更新するためである. また, 使用するデ ー タは, 出典先および簡単な前処理のプログラムを含む, 実業務に則した形式と した. こ れは, 方法論と実例を含めることで, 蓄積したナレッジの積極的な 活用を意図しているた めである. 112
] :I� 11 -- 1111 --n I @、E 的 - -[ �_ l ;�: !111村井 F[ I.I, i i � Ill�! � -I t dRwaaF dF eu・ -e菌加医録。,U酢 ! u II i ! ,ll t sg韻事 dwva闘幽明 . E E r E E噴 火事 X署 電 話 眼健盟 剛警 百 円 、F AE話事 会』孟福富 里町 - pgM曹、、品EVR錨現盟g’防富骨造泊明白漏淘伺闇蹴aa 凶gg’匪zg益事剖遍厄側mMmhv uzeuaua電’B曹司昏掴畠日 超 蹴 .P ;: i ,� 1n 世轄脚HQ 相 m越 ド u~ J A 出お AU uご間 ’小 川叩 u-o o a U HO Z 』 U Hh 門間口同 mu包凶出 . 舗 MR由wh相 ・ 叫踊制御 J I BI -首 --a aョa f ai : a-4 E i ji ---ag銅凪, ea h E 時 価幅H44 m h E h d 剛前副唱橿 却且留置 ga l MmH 一 , 一 弱 隙 . 。Z 一 組問 Mm岡 」『a声γ朝 一 山四 一 同リ川町司河川阿川 14M同一 一 割 「 asEJ Ba li- 三 eg 胃騎a ’S EE sg S凶 ・ε ZEdam-- si z Z Et E量
適用例は生物学的同等性の例数設定についてまとめたものをFigure 3に示した.文書構成は,要約, デ ー タの説明と前処理, 方法の説明, プログラムと結果, 留意点の五つからなる. 本事例の方法論 及びプログラムソ ー スの一 部は, 浜田[5]を参照した. 本適用例は薬物濃度デ ー タからC max 及び AUC似 を算出し, 各パラメー タについて分散分析結果を用いて, 例数設計を行う 一 連の内容を記載 した. Jup戸er Notebook の長所は再度実行可能な状態で記録することが可能であるため, 作成者以 外のプログラマがプログラム構造を理解するために一 部のプログラム実行により確認可能となる. また, 一 連の業務フロー に対応する説明をJupyter Notebookに含めることで, 使用するマクロプロ グラムの位置づけも明確になる. 4. 2. 拡張ツ ールの事例 Jupyter Notebookは, h加世形式で出力可能であることから情報共有用のドキュメントとして整備さ れている. ただし, h加l 形式単体では別途それぞれのリンクをつなぐフロントの h加lを構築しな ければならないため, ドキュメンテ ー ション ・ ツ ールとして既知であるSphinxの利用を検討した. とくにnbsphinx を利用して,JupyterNobebookをSphinxのドキュメントに 変換すること を試みた. JupyteNobebookファイル(.ip戸b)をnbsphinxで変換したh伽叫形式のドキュメントをFigure 4に示 した. 本ドキュメントは, 検索機能や章ごとのリンクが右側に表示される. ・・・・・・・・・・ .......... E哩圃, l[s..曲血 。O Nnl陣"' ー生絹宇瞥京情唖量国醐司剖q勘盤!It 〆 1罰百 82.ヂー開通雄閥繍暗雲10-:,.,,て a1i湯俗絢調 4,プログラム埠審串 豆 面白・生拍学問時等憧鼠脚=おける聞敏餓酎 Vlewp笥iesmuce 生物学的同等性鼠験における例数設計 1 喪約 τ 実施されるま鞠学的同容世(BE, .a い τ , 211$X2JNX21田タロス方 パ・デザインに畠づく必!!Iii伊111111を露出する聞 復員匡蹟晶@車曲学剛司寄世鼠障対イドラインJC世, -咽句nm)鼠醐 に智l用可S皆目 ト ー ルを糧供する ・ -量里鱈句 匪.田敏餓酢 Z データ@観現と前処理について 2.1.デ ー 虫の説明 今画壇鳳,Tcデー 釧iR宮居@バψケ ー ジ曲師面宥で理用され mco· 回,CD向拘置@臨写狩鳳、られτいた τいるデ ー タを聞いTc.こ@デ ー タliR宮 2.2霞雌堕量lごついて 以下@ステップでデ ー タを仲直する.’eデ ー タCDlll'Ji臨み. 2.C:恒温b AUQ,.,RiぴADc:..を耳畠する. 3附町Aを実f筑,.量小ニ鍵平均也亜量分監を>Rめる. 一一一ー一一一一一一一一← 一一ー 一 一一一 一一�" J'伊I• Figure 4 . Jup戸eNobebookファイノレ(ゆ,ynb)をnbsphinxで変換したh回l形式のドキュメント. 5. 結論 PC SAS環境下 においてJupyt 釘Notebookを実装可能であることが確認された. ただし, 日本語を 含むデ ー タセット, リスト及びログの表示が, エ ンコ ー ド設定に起因して文字化けしており, 使用 用途によっては注意を要する. PC SAS環境下におけるJupyter Notebookの実装の利点は, Jupyter の拡張がUNIX SAS やSAS U niversity Editionに比して容易なことである. 今後はJupyterNobebook で使うための日本語の表示の工夫を要する. 114
事例検討の結果から , プログラムソ ー スと説明文書を一 つのファイルで 一 元管理できることは マ クロプログラムのナレッジ管理でも有効である. また, ファイル 構造はJSONといわれる構造であ り, プログラムソ ー スと 文書が保存され ているため, 運用の用途によって別々に抽出して管理する ことも可能である. Jupyter Notebook は デ ータサイエンス業界で 活発に開発されているため, 今後 の拡張が期待される. 他の拡張ツ ー ルや プログラムを導入することで ,さらなる利便性の向上を検討した結果, nbsphinx を利用することで閲覧しやすい形式でJupyter Notebookの結果を整形可能となった. また, この拡 張ツ ー ルはとくにサ ー バ ーを立てることなく使用可能であるため,社内のナレッジ管理ツ ー ルとし ての役割を担うこともできる.ただし,現状のエンコ ー ド設定の場合,日本語を検索できない ため, search部分のカスタマイズを要する. 今後の課題は , SASPyの活用により SAS プログラムの資産を利用したインタ ー ラクティブな グ ラフの作成やDeep learningで使用されるTensorFlowのパッケ ー ジとの連携の検討である. SASを はじめとするデ ータ解析で 利用されるプログラムが, シ ー ムレスに拡張されることを期待している. 参考文献 [1]:勺 upyter.”Jul 6, 2017. Available at <http://jupyter.org>. [2]: “ sas_kemel.”May 10, 2017. Available at <htゆ:勾 ithub.com/sasso食ware/sas_kemel>. [3 ]: “ SASPy.”Jul 6, 2017. Available at く https://github.com/sasso食ware/saspy>. [4]: Knuth,Donald E. (1984).”Literate Programming” . The ComputerJournal. British Computer Society. 27 (2): 97-111. [5 ]:浜田知久馬( 2017). 新版実用 SAS生物統計ハンドブック. サイエンテイスト社, 382-387. [6]:吹谷芳博( 2016). SASにおける文芸的プログラミングへの試み. SASユ ー ザ ー 総会2016. [7]: “Human Resources Analytics/Why are our best and most experienced employees leaving prematurely? ” . Available at く https://www.kaggle.com/ludobenistan叶立-analytics>. 115
補遺 ①Jupyter Notebook 構築手順 1. Anaconda をサイト(https://www.continuum.io/downloads) からダウンロ ー ドしてインスト ー ルを行う.構築時は Anaconda 4.3.l/Python 3.6.0 のものを使用. 2. コマ ンドプロンプトを立ち上げて以下の コマ ンドを入力し,SAS_kemel と SASPy をインス ト ー ルする. A) pip install sas_kemel B) pip install saspy “ ” 3. 追加された SASPy のフォルダ、内にある sascfg.py 4. 次に以下の部分のフォルダ 先が構築したい PC の設定と合ってるか確認する. 5. 環境変数の Path に以下を追加する. を以下の設定にする. 、 “C:¥Program Files¥SASHome¥SASFoundation¥9.4¥core¥sasext 6. ” SAS 側の設定: C:¥….¥SASHome¥SASFoundation¥9.4 直下の sasv9.c告を以下のように修正 し, UTF・8 環境で実行されるように設定した. (この変更をするとパッチサブ‘ミットなど に影響があるので変更する際は取扱いに充分注意を擦る.) 》 修正前: C:¥…¥SASHome¥SASFoundation¥9.4¥nls¥,i!¥sasv9.cfg 〉 修正後: C :¥…¥SASHome¥SASFoundation¥9.4¥nls¥旦塁手sasv9.cf匡 ②拡張ツ ー ノレ( nbsphinx)の設定と使用例(Read the docs のテ ー マ設定を含む) l. コマ ンドプロンプトを立ち上げて以下の コマ ンドを入力し, nbsphinx と sphinx_rtd_theme をインスト ールする. 2. A) pip install nbsphinx B) pip install sphinx_rtd_theme コマ ンドプロンプトで sphinx ドキュメントを作成したいフォルダに移行し,以下の コマ ン ドを入力する. その後、 コマ ンドの指示通りにドキュメント名やヴァ ー ジン情報を入力す る. A) python 叩 sphinx.quickstart 116
3. :::,;· 実行後に作成された I “ conf.py”を以下の内容を追加し, 保存する. 'sphinx.ext.mathjax ' …… ニ ’ t ’_build ’ d i 本本.ipynb_checkpoints' 4. I 5. index.rst にや戸b ファイルのファイル名を記載する. 6. コマンドプロンプトで以下のコマンドを入力すると h回l 形式のドキュメントが作成され C H?:::e· “ .ipynb ファイルを conf.py”があるフォルダに入れる. る. A) python -m sphinx . _build/html 117
SAS厄Gプロジェクト実行時のエラ ー ハンドリングについて 一任意の処理単位で分岐処理を実行する方法 一 岩本光司 (武田P R A開発センタ ー 株式会社クリニカルデー タマネジメント&テクノロジ ー) SAS/EGで、複数の処理を組み合わせたSASプログラムを実行し、その途中で エ ラ ー が発生した場合 に、 対応した処理を行いたい場合がある。 プログラムの作成段階において、SASプログラマが、SAS/EGのログおよびログの要約を参照して エ ラ ー ハンドリングしながら、 SDTM変換プログラムをSAS/EG上でドメイン単位毎に作成する。 プログラムの実行段階において、 デ ー タマネジャ ー が、 SAS厄G上に配置されたプロジェクトを実 行してSDTMを作成する。 SAS厄G上に配置されたプロジェクトには数十のデ ー タセットを作成するプログラムが含まれてお り、また、それに付随する幾つかの処理が含まれる。 この実行時に、何らかの原因により不正なRaw デ ー タ(デ ー タセットや変数の欠落、 文字長が異なる、 文字・数値変数の違い、 Nullレコ ー ド等)が含 まれることにより、 処理実行途中で エ ラ ー が発生する場合がある。 SAS氾Gでは、 エ ラ ー が発生し ても最後の処理まで実行するか、 または、 途中で処理を停止するので、 エ ラー が発生時に、 後続の 処理のスキップ、 WORKとは異なる 一 時的に作成したデー タの削除、 エ ラ ー 処理などの分岐処理を 実施したい場合は、 エ ラ ー ハンドリング対応が必要となる。 これまでは、 デー タステップやプロシジャ単位で、 SYSERRをグロー パルマクロ変数に引継いで エ ラー 処理する方法を利用していた。 しかし、 この方法では、 個々のプログラム作成段階で組み込む 必要があり、 検証プロセスの負担となっていた。 また、 SAS/DIを利用していたこともあって、 プロ グラムの可読性にやや難があった。 今回は、 SAS/EGのWorkspace Serverログを参照する方法について検討した。 SAS/EGのWorkspace Serverログは、 SAS/EGを起動した際にユ ー ザ ー IDおよび起動ジョブID毎に作 成され、 起動中に実行したプロセスのログを蓄積し、 SAS/EGの終了時にクロー ズする。 このログ の中から、任意の処理単位(複数のデ ー タステップまたはプロシジャを含む)で、 エ ラ ー メッセー ジを検出して、 エ ラ ー が発生した場合に指定した処理を行う方法である。 上記で紹介したSDTM作 成プログラム実行した際、 各ドメイン作成するプログラムが終了する毎および各種処理終了後に、 Workspace Serverログを参照して、 エ ラ ー 検出を行い、 エ ラ ー が発生している場合は、 以降の処理 をスキップして指定した終了処理を実施するようなプログラムを挿入した。 このWorkspace Server ログには、 SAS/EGが生成するログとSAS厄G上で実行したSASプログラムのログがあるので、 エ ラ 発生の有無に係わらす、 SASプログラムの実行ログを抽出して、 保存できるようにした。 今回の検討の結果、 メリットとして、 Workspace Serverログを利用する方法では、 SYSERRで挟み込 ー まないのでプログラムがシンプノレになり、 可読性が向上する。 また、 個々のプログラムに組み込む 必要がないので、 個々のプログラムの検証プロセスに影響しないと考える。 また、 これらのことが 品質向上に繋がると思われる。 デメリットとして、 Workspace Serverログは、 SAS厄Gの起動後にプ ロジェクトを複数回実行した場合、 蓄積されてしまうので、 1回のログを保存するには実行毎に再 起動する必要がある。 118
医薬品開発におけるSASプログラムおよび関連ファイルのパージョン管理と共有について 0 川上貴弘 (電助システムズ株式会社) 1 はじめに 医薬品開発におけるSASプログラムの実行においては、 プログラムそのものだけでなく、 実行ロ グやデー タセット、 結果を出力するためのテンプレ ー ト、 出力帳票等、 多くのファイルが密接に関 連しており、 パー ジョン管理やその保管は非常に気を使う作業である。 、 これらのファイルの管理には、 1.フォルダ やファイル名を日付やパー ジョンで分ける、2. パー ジ ョン管理システム(主ersion !;.ontrol fur蹴m、 以下vcsという)を利用する等の方法がある。 フォルダやファイル名の変更による管理手法はルー ルさえ決めれば比較的容易に誰にでも実現 できるが、 人の手による作業のため、 ルー ル不道守や不注意による誤操作でミスが発生したり、 可 能性は低いものの、 悪意のある操作でファイルが失われてしまったりする可能性がある。 当社でも 重要なファイルが誤った操作により移動されてしまうというケ ー スが何度か発生しており、 フォル ダへのアクセス権管理やファイル操作に関するルー ルの徹底はもちろんであるが、根本的な対策が 必要で、 あった。 そこで、 プログラムの社内標準化に合わせて上記のファイルを安全に管理するために、 フォルダ やファイル名を日付で管理する手法から、 オー プンソ ー スのvcs及び自社製SASプログラム管理ツ ー ル「SPITSJの効果的導入を検討した。 vcsではプログラムのパー ジョン管理を目的としているため、 履歴参照や再現機能等、 プログラ ムの管理に秀でている。 2015年には「小さな組織がSAS Programのパー ジョン管理をするには」と 題したセッションにてGitLabの紹介があったが、 現在はクラウドをベー スとしてさらに多くのサ ー ビスがリリー スされており、手軽に始めることができる。しかしながら、当社では導入実績がなく、 新しいシステムを導入することによる学習コストやクラウドならではの問題が想定された。 また、 もうIつの選択肢であるSPITSは、 一般的なvscとは異なり、 SASプログラムのパー ジョン 管理のために開発された、 SASプログラム、 実行時ログ、 アウトプット、 デ ー タセット等を自動的 に保存する機能を有するツー ルである。 社内標準化プロジェクトを機に、 社内でより効果的に利用するための手段を合わせて検討した。 2 背景 当社では、 基本的に社内サ ー バの共有フォルダにSASプログラムが保存されている。 しかしなが ら、 前述の通り、 フォルダやファイル名による管理に不都合が生じてきている。 これは、 SASプロ グラムを使用(作成、 実行)する社員が増えたことにより、 ルー ルに対する意識レベルにバラツキ が生じたこと、 長期間の運用に伴って必要な修正が行われ、 過去パ ー ジョンのファイルが増えたこ と等が原因であると考えられる。 そこで、 プログラムを含めたファイルの管理のためにvcsの導入を検討した。 lつはgitおよび GitHub、 もう1つは当宇土のSPITSである。 gitはオ ー プンソ ー スのvcsとして最も有名な分散型VCS(プログラムの履歴情報がサ ー バだけで なく、 各ユ ー ザ ー の手元にもコピ ー されるため、 分散型と言われる)であり、 GitHubはgitを使用す 119
るための最もユ ー ザー 数の多い コー ドホスティングサー ビス( コー ド管理を共有するためのwebサ ー ビス)である。 また、SPITSは多くのプログラムの管理が必要な特定のプロジェクトにおいて使用されているが、 より多くの社員が共通利用するための手段を検討した。 3 gitを使用したパージョン管理環境の構築 gitを利用してパー ジョン管理を行うためには、まずgitのクライアントをインスト ー ルする。 イン ストー ルはインスト ー ラの手)I頂に従っていけばよい。 gitはプログラムの履歴情報がすべて保管されたデー タベー ス (リポジトリという)を管理するこ とができるが、 共有のためのリポジトリは別のサー ビスを利用して作成する必要がある。 このため に利用するのがGitHubである。 GitHubを利用するためにはまずwebからユー ザー 登録を行い、 PCにインストー ルしたgitと連携す るためのSSHキー の設定を行う。 設定完了後、 公開:無料/非公開:有料のいずれかを選択してリ ポジトリを登録する(リモートリポジトリという)。 リモートリポジトリを作成したら、まずはブラウザに管理対象のファイルをドラッグアンドドロ ップで登録した。 これ以降の操作はGitHubを離れ、 gitで行う。 なお、 当初はすべて コ マンドを入力して操作を行うCUI( .Character 1[ser Interface)であるgit bashを 利用したが、 使用する コマンドが多く短期間では覚えきれないため、 実際にはGUI版ツ ー ルである So町ceTreeを導入して評価をした。 4 gitを使用したパージョン管理 主な流れは以下の通りである。 4. 1マスター となるリモ ー トリポジトリから自分のPCにリポジトリを コ ピ ー (クロー ンとい う)する。 4.2クロー ンされたPCのリポジトリに対し、 プランチと呼ばれる作業用 コ ピ ー を作成する。 4.3ブランチのファイルに対して、変更を行う。 メモ帳等のテキストエディタでも、 SASでも 構わない。 4.4編集が完了したら編集を完了 ( コ ミット)する。 コ ミットが完了した直後はPC上のリポジ トリのブランチにのみ反映された状態である。 4.5ブランチに追加された情報をリモートリポジトリにも登録(プッシュ)する。 プッシュし た段階では、 リモー トリポジトリのプランチに変更が反映された状態である。 4.6変更情報をマスター に登録するために、 変更要求(プルリクエスト)を作成する。 4. 7変更をマスタ ー に反映する場合は、 取り込み(マー ジ)を行う。 4.8 作業を開始するときには、 最新の情報を取り込んで (プル)から行う。 ~ 4.8を複数回行った。 4.9手順4.2 5 gitを使用したパージョン管理の評価 5. 1課題 ・ SASのプログラムを実行するためには、 プログラムの 一 式が必要であるが、 プログラム内 で指定しているexcelファイルやincludeするプログラムのパス等は、 共有フォルダではなく、 120
・ git (Source Tree)が管理するPC上のフォルダとなるため、環境に合わせた修正が必要となる0 現在 一 般的にプ ロ グラムで使用されているファイルのエンコ ー ドはUTF-8であるが、 SAS のデフォルトはShiかJISであり、 文字化けの原因となる。 GUIアプリケ ー ション(Source Tree)をShift-JISに切り替えることは可能であるが、GitHubはShift-JISに対応していないので、 SASプ ロ グラムのエンコ ー ドを変更しない限り、 文字化けの問題はついてまわる。 • GitHubは無料で提供されているが、 履歴情報を保持するリポジトリがクラウド上に存在す ることになるため、 解析結果などの機密情報を管理するには適さない。 この点は社内のサ ー バやAWS,Azure等のプライベー トクラウドを用いて、専用のリポジトリをインスト ー ル、 構築することで解決できる。 • vcsはあくまでもプ グラムの ロ パー ジョン管理であり、 SASプ ロ グラムを実行した結果を 得ることはできない。 具体的には、 SASの実行結果と実行 ロ グは、 パ ッチ実行で生成され るものは管理対象として認識することができるが、 SASのDMS( .Qisplay盟anager ,System ) 上のものは認識できないので、 プ ロ グラム中で保存先を指定する等の対応が必要となる。 5.2評価できる点 • ・ ・ ・ 6 Source Treeを利用して管理を行うと、 4.3 ~ 4.5の手順について、 アプリケ ー ションがヒン トやアイコンで表示してくれるため、 複雑なコマンドや手順を考えることなく、 プログラ ムの作成と管理に集中ができた。 編集後には編集前後の比較(diぽ) が表示され、 変更箇所を容易に確認できることから、 不 要な変更等を防ぐことができ、 非常に有用であると感じた。 複数のユ ー ザ ー が同時に操作しても、 競合を検出する機能があるため、 排他制御を気にす る必要はない0 操作手順を理解してgitを利用すれば、PC上に不要な作業用フォルダやファイルを作成する ことなく、 安全にプ ロ グラムの編集ができると思われる。 SPITSを使用したパージョン管理環境の構築 SPITSを利用して パ ージョン管理を行うためには、SPITSのインスト ールが必要であるが、標準で はロー カル環境にすべてのファイルが構築される。 その為、 まずは共有フォルダを作成し、 SPITS 、 のデータベ ー スを共有フォルダ に設定してインストー ルした。 7 SPITSを使用したパージョン管理 主な流れは以下の通りである。 7. 1 SAS上でSPITSを起動する。 、 7.2プ ロ グラムを登録する。 この時、 SASのエデ ィタで編集中のプ ロ グラムや、 ファイルから 登録する等、 様々な方法で登録することが可能である。 、 7. 3プ ロ グラムを編集する。 この時、 SASのエディタだけでなく、 登録した外部エデ ィタ (デ フォルトではメモ帳) やファイルから再登録することも可能である。 7. 4 SASプ ロ グラムを実行する。 SAS上で起動されているので、 メニュ ー から実行を選べばそ のままプ ロ グラムが実行され、 ロ グが出力され、 結果が得られる。 プ ロ グラムの実行が 121
完了すると、 ログ、 結果、 およびその他の指定保存ファイルを自動的に認識し、 保存す ることができる。 7.5実行履歴を参照する。 いつ誰が実行したかを記録しており、 実行時の保存ファイルはいつ でも再現が可能である。 7.6 関連ファイノレの管理について。関連ファイル(例えば、 テンプレ ー トとして利用するExcel ファイル等)を保存するだけのプログラムを登録した。SPITS上で実行する際には保存さ れたファイルを参照/再現して使用するマクロを使用することもできるため、 関連ファ キ イルをSPITSに保存してしまえば、共有フオルタ 上のファイルを削除してしまうことも運 用上可能である。 7. 7 上記手順7.4 ~ 7. 7を複数回行った。 8 SPITS を使用したパージョン管理の評価 ・ ・ 8. 1課題 • プログラムの差分比較機能がない。 gitと異なり、大規模な開発体制は想定していないので、レビュ ー /承認などの機能はない0 すべてのファイルをバイナリとして保存するため、 リポジトリの容量は大きくなる(大き なファイルの場合で、 およそ元ファイルサイズの3倍程度)。 》 ・ ・ 現在で、もcompress=binary オプションで2倍程度に抑えることは可能。 8.2評価 9 ファイルは全てSPITSのデ ー タベ ー ス上に保存されているので、 オリジナルのファイルが どこにあるかは関係ない (削除してしまっても問題なし、) 使い慣れたSAS、 日本語環境で学習コストがかからない まとめ オ ー プンソ ー スで次々に新しい機能が取り入れられる gitには機能面で劣る部分もあるが、 SPITS の利点はSASに特化しているところであり、 SASプログラムおよび関連ファイルを管理するには一 日の長がある。 さらに、 差分比較、 承認の機能を取り入れる等により、 より安全なSASプログラム 管理ができるようになると期待できる。 10参考文献・サイト 1. 電助システムズ株式会社: SPITS使用の手引(121101A) 2. サルでもわかる Git入門: 3. git : About git htto://www.backlo2:.io/εit-2:Uide/ h抗os://2:it-scm.com/about 4. Qiita: git, GitHub, Source Treeに関するエントリ htto://aiita.com/ta2:s/2:it htto://aiita. com/ta2:s/2:ithub htto://aiita.com/ta2:s/sourcetr田 122
xmlv2 エンジンを用いた annotated CRF の作成と検証方法の検討 0三津喬 (日本たばこ産業株式会社 医薬事業部) 萱量 承認申請時の電子デ ー タ提出に必要な資料の ー っとして, 注釈付き症例報告書(Annotated CRF) が存在する。 これはCRFにより収集されるデ ー タの各項目と, SDTMデ ー タセットに含まれる変数を 対応させて関係を示したものである。 CDISC が発行した SDTM Metadata Submission Guideline (SDTM-MSG )に 一 定のル ー ルの記載があるものの,作成ツ ー ルや作成方法はスポンサに委ねられて いる。 自社で、作成プロセス検討の中で,PDFのAnnotation部分を FDF (Forms Data Format)やXFDF (XML Forms Data Format ) として書き出すことが可能であることが分かつた。 さらに, SAS 9.3 (TS1M2) よりMAPファイルを簡単に作成出来るようになり, XMLV2エンジンを用いることで, 瑚Lファイルを 容易にデ ー タセット化出来ることが分かつたため, 工数削減及び品質向上を目的とし, 手作業で Annotationを行うのでなく, プログラムを用いて作成する方法を検討した。 本資料では, XMLV2エンジンの活用方法として, PDFの注釈であるXFDF (XML Forms Data Format) 形式のファイルを取り扱う事例を紹介する。 実際の活用事例については,本発表のパワ ーポイント 資料及びサンプルプログラムを参照していただきたい。 XMLV2 エンジン及びXFDF ファイルの使用方法 1. XMLV2エンジンの使用方法 XML 形式とは, タグを用いて表現されるテキストファイルである。 製薬業界ではCDISCから公表さ れているdefine.xml が有名である。 プログラムはSASしか学んだことのない筆者は, SASデ ー タセッ ト以外の構造には疎く,以前はSASを用いてテキストとしてXML 形式を取り扱っていた。しかしXMLV2 エンジンの登場により瑚L形式のファイルを,取り扱いやすし、 SASデ ー タセットとして使用できるよ うになった。 このエンジンは, XML 形式のファイルの構造を指定したMAPファイルを用いることで, XML 形式のファイルを取り扱いやすし、 SASデ ー タセットに変換出来る非常に便利なエンジンである。 SAS 9. 3 以前では, MAPファイル自体を作成することが非常に困難であったが, 下図のようにSAS 9.3 (TS1M2 )よりMAPファイルを容易に作成出来るようになり, SASでXML形式のファイルを扱うことが 簡単になった。 123
断謀総隊泌総務総樹首!被談議出拙盤綿織l錨議妥協機器悩遡議機ii務総監間関陥猟線道花泌総総濁
’
’
Iibname leslf ile xmlv2 c:単temp単lemp.xml ;
ヨproe copy in=sashe Ip out=testf i Ie;
select class;
回目
雌議級協議踏織協鰍M断道路線機i側議議i側協蜘m1r.a1r•.,,網棚後継側議議自閣議機感際隣組省側t酬協翻鱗悩l�都昔話
’
’
f i Iename mapf i Ie ’ c:単temp単test.map ’ ;
f i Iename teslf i IB c:単temp半temp.xml ;
Iibname testf i Ie xm Iv2 xm Imap=mapf i Ie automap=rep Iace;
ヨproc copy in=testf i Ie out=work;
run;
a
阻
�とl
MAPファイルとはXMLの構造をSASデ ー タセットへ変換するためのファイルであり, 下図のような
構造をしている。
〈加叫咽事畑、」1.0"encα釘唱="Wlr喝g冊剖j1>
4抑制醐酬醐醐依田場開醐醐糊醐棚餅棚問問齢制欄静観捌 �・
<1 2017ベ誕与。6T 7:3!抗56
<!-SAS XML L蜘祖meE岬問Map�
<!-Ge同国岡by XML Map阿,904000.0.0.2。惜描2相田曲ー叫!40占
<1-S柑鍛鱒制維柑曾樹脂曲師醐M問時醐制審開醐醐醐例措書棚鰐摺替相醐開樹ー,
唱且EMAP,園田♂'AUTO_GEN・明書-下屯1
’
’
、
《純AMESPACESαm同ぜ3、
<NSl<I ・
昨明1l1p調官s
間暗闇哨S>
<NS惟4・W理ばix="司式Ip蜘柑w.w3.αV/1眠抱抽加l</NS>
•NS抽ゴすpre加咋儲可申1-:r.且0唱危d官1'13/Jc晶-dala/1邸吋NS>
<INAMESPACES>
=・1 開f
.a由国
日匂> AUTO_GEN
;盟 Iなし1
宇働省首空間
勤画xfdf
〔喝申出仁ORDINAL
‘COLUMNnam&,;::"主食ff
面丙詞1)x聞@湾祖国咽内iTH•
TY
OATATYPE》
<PATH叩薗Fヌ民曲
柑祖国担可 問》
咽
円前Ing吋
吐
地<11.ENGT}や
</COLUMN•
・<TYPE
ATATYPE
ENGTfl
←『唱�xfd仁叩臨
自..閤閉nn�
</TABLE>
ーから作成しなければいけなかったMAPファイルが容易に作成出来るようにはなったが, 現状は
、
ダブ ルバイトやブランクが含まれる場合, Lengthが短くなることがあり, 手作業で修正する必要が
あるため注意が必要である。
124
・圏岡田園・
(p !
>Sα>RRES・when・SOTESTOD = SUBJINIT
園田
(/p)!
圃園園置置彊・
〈 αlLUMN n細 e="p">i
<PATH syntax="XPathENR">/ {1 } xf df / {1 } annots/ {1 } f reel ext/ { 1
<TVPE>character</TVPE>↓
<DATATVPE>string</DATATVPE>」
〈ほNGTH>122</LENGTH>!
</Cf.制j曲目)!
園田
ただし, この自動作成した胤Pファイルを用いて蜘Lファイルを読み込むと, ログ画面にMAPファ
イルとXMLファイノレのLengthをWARNINGとして出力してくれるため,多くの時聞をかけることなく修
正が可能である。
WARNING:変数plこデー タトランケ ーションが発生しました:列長=122追加長=142
また自動で作成される胤Pファイルは, Element (要素)ごとにデ ー タセットが作成されるため,
必要に応じてMAPファイルを加工する必要がある。 下図のようなデ ー タをひとつのファイルとして
認識させるためには, 本発表のパワ ー ポイント資料p.46 ~47 にある修正が必要である。
SCORRES when SCTESTCO
(/p)↓
125
2. XFDFファイルの取り扱い FDF又はXFDFファイルを用いることで, 注釈の書き出しゃ取り込みを行うことが出来る。 本資料 では, XMLV2エンジンを用いてSASで扱えるように検討を進めたため, XFDFファイルの取り扱いを説 明する。 XFDFファイルは, 注釈が存在するPDFを聞き下図のように[注釈]→[注釈のリスト]→[オプショ 閣盤盤醐 僻す本棚E 害事 i •• 0 01i 伊国・ JJ 包即 名前 顧 !更新日時 倹索条件に一致す吾項目はありまぜん. 母近表示した塩所 圃 閣情 デスクト拶プ ’ @ 川一一川一川…ん…… 一一イ コンピュータ ー ネ拶トワ-タ フvイJ凶試刈: blar氷αfxfdf 7?イJI必種獄T正 l魚恕旬蚊盟習j昆烹思地暁歳封娘捌酬欄繊抑綿拠h織峨繍易酬蝉紙毘1ι ! 些里壁坦1王DF7,イ1!,_(*ld ” · 刈{句.....J畏E臣 川i 川叶よ山 川J i 轟柑包』島.ρ XML Forms Data Format Specification Ver.3.0によると, Annotation lこ必要な項目は, pageと 言うページを指定するattribute (属性)と, rectという場所を指定する属性が最低限必要である。 intent しかし, この二つを定義しただけでは, 枠のみが出来るだけで注釈が出来るわけではない。 126
"
<?xm I ve rs i on="l • O" encod i ng="UTF-8 ?>」
<xf df xm Ins=可目H. ;.//1り 恥.9'.d旦P.JL 肌h.f.ci.f. C xm I : space=可「eserveう」.
<annots>.r.
"’
くf reetext page="O" rect= 50,740,300,760" >↓
<If reetext> J
く/annots>↓
く/xf df >↓
.e.
皐
J!l(t;:ム三主主主:三三寸�二マ
→
寸二三三三乙: ムJ
i点薫贋烹で察要被;良川 ル品川川仇.;川川泌J
it.:�憲幸苧川 山/,, ; · ;; "'ノ ; ,;,'.;2}
1r;襲聾鰐��延長田iヤ;, ';,[;t )(«,;仏川己二三二三 ;;
I 札糠
|少も ・ 国・
国 ・
J
, ,
J
j
ド
f
~
,
ペ- :;; 1不問
本検証では, 注釈を作成するのに最低限必要な情報は下図の項目であると判断した。
なお, date と title という属性は, 注釈を確認する際に, 作成日と作成者があると確認が容易に
なるため必要と判断した。
FreEJtext .Elemenl
page
color
date
rect
title
”
IBQd;Y.. EIQroenl.
style
P' Element
k
今
〈表示する文字列〉
町
一・←ー
一
一.
.
-
’'
?四l ve rsion♂I • o· encod I nr- UTF-8 ?>!
xfdf四Ins=市lleu.Lr盟通量強�差臼工f x囚I :Space:"p r ese r ve"> l
〈叩nots> i
”
’
耳目FFFFF 」
<f r eelext co I or=
’
ド
M
date=”0:20170602185713+0! 日目
L
page: ”E
=
=
• J
n
l
rect 50,665,2日0,70日
”
titi• SAS_Taro"> l
<contents-rlchtext> I
(b叫州e子f叶slz
>(p l
<1 f r eetext> I
〈/田n叫s> l
/xfdf>↓
�Jmit
</contents- r I chte,t> I
2.0pt;ted- align:lef
lor:僻FO
o
日「
nt吋el由t制d;fo
o
st山n叩I ;f昨fa山:川
島田弘Ulk�J ⑤昼El:lL国民一一
三割側壁塑;
.陸空
.
匝亘旦E
一 一
T
SAS Taro•
ペー 引2017/'附'02 18:57:13
Al3PID
127
』
CDISCから発行されているdefine.xml v2.0に含まれるannotated CRFの注釈を見てみると, 2つの
方法で注釈が示されており, spanという要素で示される場合と, pという要素で示される場合が存
在する。 いずれの方法でも表現することが可能である。 本発表のサンプルプログラムでは, pとい
う要素を用いた表現方法を用いている。
. ><P d I r:" I lr" !
><span slyle="color:IIFFOOOO;fonl-f 細 i ly:Arlal勺
>SOORRES when SCTESTOD= SUBJINIT!
</span>!
τ「
>SOORRES when SCTESTOD: SUBJINIT
�
<IP>↓
↓
これらのXML形式の取り込み方法について,SASのホ ー ムペ ー ジや海外学会などの発表資料等を基
に調査を行ったが, まだ事例が多くはなく, いくつか解決で、 きない問題が発生した。 しかしSASテ
クニカルサポ ー トというSAS社のサ ー ビスを用いることで, 多くの問題を解決することが出来た。
多くの場合, 質問をした翌営業日には回答が来るため, 非常に有益なサ ー ビスである。 本資料の調
査で非常に丁寧な対応をして頂いた松井優作様にはこの場を借りて感謝を申し上げたい。
童盟主飽
本発表では, SDTM変数のAnnotation自動作成とAnnotated CRFとdefine.xmlの整合性チェックに
ついて記載をしている。 活用事例の具体例はパワ ーポイント資料を参考にしていただきたい。
今後の展望
近年,製薬業界でもdefine-xmlやdataset-xmlなどXML形式のファイルを多く取り扱うようになっ
て来たように感じる。 筆者が調べたところ, 現在のXMLV2エンジンでは, 本資料にあるXFDFファイ
ルのような複雑な構造のXMLファイルをimportすると複数のSASデ ー タセットに分かれるが,これら
の 一 部を修正した後に,元の形式通りの構造でexportすることは非常に困難であることが分かった。
今後もXML形式のファイルを使用することが増えてくることが予想されるため,SASデ ー タセットと
湖L形式ファイルを容易に変換できるようなプログラムを用意いただけると,よりSASが魅力的にな
ると考えている。
また, 今後本発表のようなSASを用いたXML形式ファイルの活用事例が多く発表され,瑚L形式の
ファイルがより身近になることを強く望む。
室盟査主主
Study Data Tabulation Model M 巴 tadata Submission Guidelines
(SDTM-MSG)
CDISC Define-XML Specification Version 2.0
XML Forms Data Format Specification Ver.3.0
Adobe® Acrobat® SDK 8.0 pdfmark Reference, Edition 1.0, November 2006
SAS® 9.4 XML LIBN馴E Engine: User' s Guide
Sample 47349: Create and use an XMLMap file in a SAS® session
128
Ver. 1.0
承認申請時の電子デ ー タ提出等に関する技術的ガイドについて 平成27年4月27日 SDTM Annotations: Automation by implementing a standard process (PharmaSUG 2015) Geo Joy, Novartis Merge multiple RTF files, convert to PDF and add bookmark (PharmaSUG China 2017) Xiang Wang 129
ODS Graphics Designer を用いたグラフの作成: SAS 9.4の機能を活用 0平井隆幸\魚住龍史 2 ( 1 日本化薬株式会社解析チ ー ム、 2 京都大学大学院医学研究科) Creating Graphs Using the ODS Graphics Designer with Advanced Features: Application Based on SAS 9.4 Takayuki Hirai I and R刈i Uozumi2 1Biostatistics Team, Nippon Kayaku Co.,Ltd, 2Kyoto University Graduate School of Medicine 要旨 Output Delivery System (ODS) Graphics Designerとは, SAS デー タセットに対して, Graphical User Interface (GUI)に基づくグラフ作成を可能とするツ ー ルであり, SAS 9.2 (TS2M3)から正規版として利用ができるよ うになった. ODS Graphics Designer では, グラフギャラリ ーに 様々なテンプレート が 用意されており, 作成 したいグラフの種別を選択し, GUIに基づくカスタマイズを行う ことができる. ODS Graphics Designerを用 いれば, プログラミン グを行う必要がないため, Graph Template Language (GTL)やテンプレートに関する知 識がなくても迅速かっ容易に グラフ作成ができ, 複雑なグラフ作成のためのカスタマイズ も可能である. ま た, 作成したグラフの コードについても, 確認することができるため, GTLを用いてグラフ作成を行うプロ グラマーにと っても, GTLの学習に役立つツ ー ルとなる. さらに , SAS 9.4 (TSIMO)から 自動チャ ート 機能 が拡張され, 解析対象となるデー タセットと変数を指定し, グラフの種類を選択すれば, 事前に 用意された グラフ テンプレートから該当するグラフを自動的に作成すること も可能となった. 本稿では, ODS Graphics Designerに よる様々な機能を用いたグラフ作成の活用例について報告する. キー ワ ード:ODS Graphics Designer, メインメニュ ー パー , グラフギャラリ ー , プロットレイヤ ー パネル , 挿入パネル , デー タの割り当 てダイアログ , ポップア ップメニュ ー , コ ードウインドウ, 自動チャ ート 1. はじめに SASを用いたグラフ作成 報告は, こ れ まで多くの報告が 行われている. Output Delivery System (ODS) Graphicsが評価版であった SAS 9.1.3 (SAS9.1 TSIM3)までは,一部評価版に おける報告(吉津ら,2005;長谷川, 130
2007)はされているものの, 多くは GPLOTプロシジャを用いたグラフ作成報告(林ら,2003)や, GREPL AY プロシジャを用いた 1ペー ジに複数のグラフを表示する報告(竹田,2004)等, SAS/GRAPHに基づく報告が 行われている. 2008年 9月にODS Graphicsが正規版となった SAS 9.2 (TSIMO)がリリースされた当初は,普 及段階であったせいか,あるいはODS Graphicsを利用するには SAS/GRAPHのライセンスが必要で、あったせ いか,ODS Graphicsを用いたグラフ作成報告はほとんど行われていなかった . しかし, 2011年に SAS9.3 (TSIMO)がリリースされ(SAS Institute Inc ., 2011 ),ODS Graphicsは SAS/GRAPHから BASE/SASの機能とし て組み込まれたため,BASE/SASのみのライセンスで利用が可能となった. また同年に, SASハンドブック (宮岡・吉津,2011)等においてODS Graphics の機能の解説も充実し始めたため, SAS 9.3 (TSlMO) リリース以 降,ODS Graphicsを用いたグラフ作成の報告が増加している. 特に, GPLOTプロシジャに代わる新たなプロ シジャとして,SGPLOTプロシジャによるデータの可視化の有用性について,多くの報告が行われている(魚 : また医薬品開発における実務的な応用として, 住・浜田,2011,2012;西本,2013,豊泉ら,2014;;魚住ら,2016). Statistical Graphics (SG)プロシジャやGraph Template L anguage (GTL )を用いたグラフ簡易作成ツ ー ルの開発 事例についても報告されている(高浪,2011,2012). さらに山崎ら(2016)は, 推移図や散布図等において, グラフで表現しきれなかった情報を付加した新たなグラフについて, SAS 9.4の SGプロシジャを用いた作成 方法を報告している. このように時代とともに, SAS/GRAPHからODS Graphics へ 移行し,ODS Graphicsの機能を利用したグラ フ作成の報告が増えてきている. しかしながら, その 多くは コードベースの報告である. SASのプログラミ ングに馴染みのない ユー ザーにとっては, データや解析結果の可視化および解釈を行うにあたって, コード ベースでグラフの作成方法を理解して作成することは難しく,時間を要するといった支障がある. 以上のような問題を抱えるユー ザーに対し,もう 一つのグラフ作成手段として,ODS Graphics Designerが 提供されている . ODS Graphics Designerでは,グラフギャラリ ーに様々なテンプレートが用意されており, 作成したいグラフの種別を選択し,Graphical User Interface (GUI)に基づくカスタマイズを行うことができる. ODS Graphics Designerを用いれば,プログラミングを行う必要がないため, SASのプログラミングに馴染み のないユー ザーにとっても有用なツ ー ルとなる.また,SAS 9.4 (TSlMO)から自動チャ ート機能が拡張され, 解析対象となる データセットと変数を指定し,グラフの種類を選択すれば, 事前に用意されたグラフテンプ レートから該当するグラフを自動的に作成することも可能となった(SAS Institute Inc .,2015). SAS 9.2がリリ スされた頃から, ODS Graphics Designerは有用なツ ー ルとして宣伝されていたが(SAS Institute Inc .,2009), ー SASユー ザー 総会における報告は行われていない. そこで, 本稿では,ODS Graphics Designerの利用方法に ついて解説を行い,ODS Graphics Designerよる様々な機能を用いたグラフ作成の活用例について報告する. 2. ODS Graphics Designerの基本的な利用方法 2.1 ODS Graphics Designerの起動 通常,ODS Graphics Designerは, SASプログラム・ウインドウ環境におけるメニュ ー パ ー からツ ー ルをク . もしくは,プログラ リックし, プルダウンメニュ ー からODS Graphics Designerをクリックして起動する ムエディタから%SGDES1GN;と コー ディングし実行することで起動する( SAS 9.2 (TS2M3)までは,起動方 、 法は コー デ イングのみ ). 他にも, SAS Enterprise GuideやSAS Studioを用いても起動できる. SAS Enterprise Guide 7 .1:メニュ ー パーのタスク当 グラフ=キODS Graphics Designerを開く. SAS Studio 3.5:自ボタン=宇ツ ー ル当ODS Graphics Designerで起動. 131
2.2 User Interface ODS Graphics Designerを起動すると, 図Iに示したウインドウが立ち上がる. 主な操作方法を下記に示す. い晶dい砕d凶晶d幽晶d 1il凶晶山謀総緩い品以い品以 ;11山静叫い晶幽j 也嘩響曲ぷぬ品配 い争以凶暴叫い轟ω山知d :11 1�十喝ム晶叫 命d い い轟岨j 凶器叫哨品以同長d 臨時山動内時ぷ山ゃ い勢判明島断樹齢紬観 樹輸措雌料品副議配 骨A 品構駒場事 図 I: ODS Graphics Designerの起動画面 ① メインメニュ ー パ ー ODS Graphics Designerで行う様々なタスクを実行するメニュ ー が用意されている. ファイル:グラフを新規作成, 開く, 閉じる, 編集, 保存, グラフギャラリ ー に保存, 印刷, 終了. 編集:元に戻す, やり直し, すべて選択, ー 表示:グラフギャラリ コ ピー . , 要素ベイン, グラフの コードを開くor閉じる. 挿入:タイトル, フットノ ー ト, 凡例(全般)の挿入, 行追加, 列追加. 書式:グラフのスタイルの変更, 各種プロパティからのカスタマイズ. ツ ール:スタイルエディタツ ー ル, プリファレンスダイアログ, 自動チャ ー ト機能の起動. ヘルプ: ヘルプトピックスからオンライン ヘ ルプODS Graphics Designerのペ ー ジリンクへ移動. ② ツ ールパ ー メインメニュ ー パー のファイル, 挿入メニュ ー のタスクを実行するアイ コ ンが用意されている. ③ 要素ベイン グラフの中に, プロットレイヤ ー パネルから様々なプロットや線を, 挿入パネルから凡例やヘッダー , フリー テキスト等をドラッグアンドドロップで挿入できる. ④ グラフギャラリ ー 事前に定義された 一般的に使用されるグラフのギャラリ ー である. ギャラリー はグル ー プ毎に分けられ 、 ており, 各グル ー プはTabで表示されている. デフォルトで図2に示す6グ ル ー プが用意されている. 132
一 宿準盟企当凶畳』童塾全巴 11 II o ・・. F ・ ・園 I II 敵布図 録到フa-,ト 亡豆コロ豆E 。ルーヲ化宣貴徳eヨヲ 医y�コ 固 ヂ�フ回予イル IEi:ヨ巨E三コ :JI S邑寄 亡互コ四重コ [」二 仁亙コ巨璽ヨ Ill 圏� 亡豆ゴヨ霊コ 図2:グラフギャラリ ー における6つのグル ー プ 3. ODS Graphics Designerを用いたグラフの作成方法 新規にグラフを作成する際は, ①空のグラフに全ての要素を挿入していく方法と, ②グラフギャラリ ー か ら事前に定義された 一般的に使用されるグラフを選択しカスタマイズする方法の2つがある. それぞれの作 成方法を, 例題を基に確認することで, ODS Graphics Designer を用いた作成方法の概要を説明する. ※③空の共有変数グラフに全ての要素を挿入してし、く方法もあるが, 内容が多岐に渡るため割愛する. 133
3.1 性別の投与群別積み上げ棒グラフ CDISCサンプルデ ー タセットADSL(S ubject-Level Analysis Dataset .被験者レベル解析デ ー タセット)を用 いて, 性別の投与群別積み上げ棒グラフを作成することで①空のグラフに全ての要素を挿入していく方法の 概要を説明する. ADSLは,被験者識別コー ド, 投与群,被験者背景情報等が含まれる1被験者lレコ ー ド 0 . のデータセットである. 事前にSAS社サポ ー トペ ー ジよりSAS(R) Macros to support Dat 溺 et-XML vl.0をダ ウンロー ドし,WORKフォルダ ー にデ ー タセットADSLを取り込む. その後,解析対象集団をFASに絞り, 性別と投与群で並び替えてから利用した(付録A). 1. 新規の空のグラフを作成する. メインメニュ ー パーから, ファイル=キ新規作成功空のグラフをクリックすると, ワ ー クス ペースに 空のグラフウインドウが立ち上がる. 2. 空のグラフウインドウ上に棒グラフアイコンを追加する. 棒グラフアイコンをドラッグアンドドロップする. !IIい轟叫協幹d; ]I 地長d !IIい轟d 11占主 図3:棒グラフ作成を選択する画面イメ ー ジ 3. M F Sex 134
4.
グループ変数を割り当て, グル}プ表示を変更し,性別の投与群別積み上げ棒グラフに変更する.
作成したグラフを右クリックし表示されるポップアップメニュ ー から, デー タの割り当てをクリックす
る. ダイアログが再度立ち上がるため,グル ープ変数:ARM,グループ表示:積み上げ=争OKをクリ
ックする. なお, グル ー プ表示にはクラスタ(グル ープ値を隣接する個別の棒として表示)も用意され
ている. またデ ータが投与群別に並び替えられていない場合は, 表示順が不揃いとなる.
i融醐.,,.,..&,.,.,,-
�,.,仙寺岡1
ヂ 働限蜘とお,
.•叫副
ライフヨ止
司
1
・
J
40
社 店街議頚ヲ5疋il
1 「扇Eこ3
\II
調I
30
量
1if割
引J応輯
=\ 担日砂-;1,
10
竺ご, __J
凡例の追加後, 棒の幅を調整し性別の投与群別積み上げ棒グラフの完成
5.
I.
メインメニュ ー パ ー から,挿入=争凡例(全般)をクリックする. 凡例(全般)ダイアログのプロ
ットを遺択から,barにチェックを入れ,OKをクリックする. グラフの下に凡例が追加される.
ll.
グラフを右クリックし表示されるポップアップメニュ ー から,プロットのプロパティをクリックす
る. セルのプロパティダイアログが立ち上がるため,プロットbarの棒Tabをクリックし,棒の幅
を0.4に変更しOKをクリックする. 性別の投与群別積み上げ棒グラフが作成できる.
圃時
凡倒ラベル@編集
}JJl,ーヲ化
・l
l!/,(川E阻止同咽曲師国
a,
l自動・・・・・・・・圃・1
l 自鋤!lmMS 同時的
コずJト妙《止 l 自範囲!l 7
'.>le卦フ提�
3刷、措刷f画面扇亙肩福一
図;'-!,蹄滝使用
量湯
t;J:
1\flll防=1扱ルベヲ
一一一
・i
・1
-;i
...
亡三�
!
図6:凡例表示,棒幅調整済, 性別の投与群別積み上げ棒グラフの作成
135
i
I
3.2 経時デ ー タの推移図 次に, 高浪(2011)で用いられたデ ー タセット_Sum_Gを用いて,平均値推移図を作成することで②グラフ ギャラリー からカスタマイズする方法の概要を説明する. 本稿では, 網掛けを設定する代わりに, 凡例を追 加し描図する. _Sum」Gには,ある臨床検査値(変数:VAL)について,VISπ:検査時点,TREAT:治療群, MEAN:平均, STD:標準偏差, VIS汀2:系列線用検査時点,_STDU仁STDL: ±標準偏差が含まれる. 公 開されているSASプログラムを実行し, WORKフォルダーにデ ー タSum Gを取り込み利用する. 1. グラフギャラP ー から, カスタマイズに用いる事前に定義されたグラフを遺択する. グラフギャラリ ー から分析Tabを選択し,平均をダブルクリックする. デフォルトデ ー タを用い て事前に定義された平均のグラフとデ}タの割り当てダイアログが立ち上がる. この時点で上部に タイトルプレ ースホルダー, 下部にフットノ ートプレ ースホルダーを持つ. プレ ー スホルダーをダ ブルクリックすると, 入力が可能となるため, タイトルとフットノ ー トを必要に応じて入力する. 一 … タイトルIt.Aカ... h脚+一一一一一一一一一一一一←『ト→一一一一一一一一一 r... +一一一一一一一一一一一一一一ートー-→ ’ IF 』T 一 剛 すト 411・E14E 帥J 由 醐+一一一一一一一一一一一一一-一一十4ー+一一 山+←一一・一一→h '"' DiiIJ[;ji璽ヨ 国王ヨ日盟主〕 -一一一一 .., 誕淘 袖省舗- ,..,ー与を""·· 図7:グラフギャラリー から平均のグラフ作成画面 2. 表示されるデータの割り当てダイアログに, ライプラPとデ ータ, 各変数を割り当てる. ライプラリ:WORK, データ:_Sum_G, 変数X: VisiιY:ー問ean, グルー プ:Treatを選択する. さ らにその他の変数をクリックし,その他の変数ダイアログから変数Yエラ ー 上部:_smu, Yエラ ー 下 部:_SIDLを選択し, OKをクリックする. デ ー タの割り当てダイアログ下部より,OKをクリックす る. 平均値±標準偏差の推移図が表示される. 陣鐘墨謹 + u司 一・ 図8:平均値土標準偏差の推移図作成画面 136 時‘ 切戯 T十↓↑卜I m E霊ヨ竪霊� ,,ト,ート..,.,,旬“ 一刊什UU件叫ん- 掲 5 竃漏電a- E 亙三ヨ 歪藍gJ 1, ーか叫" "一一“~町ー一一一J 寸nH付刊什μr l臼宝ー干郁i拘村岡ゅよ~ぃ烈1 』TEE--T1』l寸 I 図 X工ヨー止:mr:1立金笠主主品中学出� Tl小Jl十41ιll↓よ ,, 4E 舗 YIヨー下音量l@J甥望£d;ふれへ�-�' T」引付什村HFム一 ,イトルIt.A掬.目・ Vエヨー土留;l@...S:回世ふ.,.ーやぷι 郊1
3. 系列線の追加 作成した平均値±標準偏差の推移図において,平均値のVisit聞を系列線で結ぶことを考える. プロット レイヤ ー から系列を選択し, 作成途中のグラフにドラッグアンドドロップする. 一 一 戸 一 一 一一宮 主 午寸叶江主不 一 〒J1叶北一 一 - 一 一ftι 郎一 タ一 … 手主 ま社社主 叩三 ? 山岡田 ! 図9:平均値±標準偏差の推移図に系列線を追加する画面 4. 系列線 (Series)のデ ー タの割り当て 表示される系列に対するデ ー タの割り当てダイアログに, 各変数を割り当てる. ー 変数X : Visit2, Y : _Mean, グル プ:Treatを選択し, OKをクリックする. 書イトルを λカ .. 70 +- ーーーーーー 四ーーーー一一 ーーーーーーーーーーーーーーーーーーーーーーーーーーーー ーーーー ー ーーーーーーーーーーーーーーーーーーー ー 回+ ーーー ・ ーーーーーーーーーーーーーー 曲+ ート ー ト ーーーーーーーーーーーー ー-•- ーーーーーーーーーー ーー ・ ー 国+-1- - ・ ーー ーーーー ー ー ---•-<1 -ーー・ーーーーーーーーー ・ ー 岨 U-ーーーーーーーー ーーーー -1ごででー ーーーーー ーー 田 ー 円ヒ ー ーーー一一一一一 ーーー _J_ -ー ーーーー一ー ーーーーーー + ー ー ー 咽+ -ーーーーーーーーーーーーーーーーーーーー ーーーーーー ーーーーーーーー ・ーーー w・曲 2 目 ase!i同 輸防噛 4 Vlalt Wo曲 s w.... 図10:系列線のデ ー タの割り当てと割り当て後のグラフ画面 5. 凡例の追加後, 表示凡例を絞り, 平均値土標準偏差の推移園の完成 i. 3.1節では, 凡例をグラフセル領域の外側に挿入した. ここでは, 内側に挿入したい. 挿入パネル から凡例(個別)を挿入したい位置(下)にドラッグアンドドロップする.凡例(個別)が挿入される. 137
益. マ ー カ ー 記号と系列ともに表示されるため, 凡例上で右クリックし表示されるポップアップメニュ ー から,凡例の コンテンツをクリックする.凡例の コ ンテンツダイアログが表示されるため,Scatter のチェックを外す. 系列のみ凡伊jを表示させた平均値±標準偏差の推移図が作成される(図11). 』時幽国l 凶暴d い且4 白... ,『111 45 B掴ell同 謀説鼎 Week2 w・曲 e Week4 Visit 日l フットJー ト豊λカ川 Week8 図11:平均値±標準偏差の推移図に凡例を追加し表示凡例を絞る画面 4. GTL コ ー ドの確認 ODSGraphics Desi伊erでは, 作成したグラフのG1工 コー ドについても, 確認することができる. メインメ ニュ ー パー から,表示=キ コー ドをクリックする. コー ドウインドウが立ち上がり, ドウインドウを表示したまま, グラフに修正をかけると, 修正した部分の コー 確認できる. また コー ドが変更されるため, 直感的 にGTLを理解することも可能である. GTLを用いてグラフ作成を行うプログラマ ー にとっても, GTLの学 習に役立つツー ルとなる. コー ドウインドウは読み取り専用であるため, SASのエディタ ー にCopy&Paste し, SASファイルとして保存することで, コー ドベー スの編集並びに実行が可能となる. F M S酎 l圃T宵TA回TRT B圃T胃T Cl 図12:性別の投与群別積み上げ棒グラフのGTL コー ド 138
5. グラフの保存(ファイルorグラフギャラリ ー ) 5.1 SGDファイルへの保存 ODS Graphics Designerでは,メタファイルとなる SGDファイノレにグラフを保存する.SGDは,SAS ODS TL コー ド情報や Graphics D esigner用の拡張子である.SGDファイルは,グラフを再度編集できるように,G 関連するその他の情報を含んでいる.保存手順を下記に示す . .祖伝!.Ll望聖竺里担 国間 ※右の保存ダイアログが立ち上がる. 2. 保存からファイルの保存先を選択する. 明ド 3. ファイルの名を入力する. 4. ファイルのタイプからSGDファイルをリスト選択し, *'- 国,, ... _ 割問 1,m ’耐岬棚悼鞄面 三て 保存をクリックする. 録個回 町島・’H 5.2 当面目Eト 各 1. メインメニュ ー パーからファイル=寺保存 二ごヨ亡璽コ E士一二三ごヨ←肺·宣て竺ごででヨ 民自喝、 図 13: SGDファイル保存画面 Imageファイルへの保存 Imageファイルにグラフを保存することも可能である.ラスタ ー 形式としてPNG(デフォルトフォー マット), ー BMP, GIF, JPG, TIF,ベクター 形式としてEM F, SVG, PDF, PSといったフォー マットをサポ トしてい PNGに関しては,保存前にDots per inch (DPI)の指定が可能であり,高解像度の画像を得たい場合,DPI る. を大きい数値に変更して保存する. 保存手JI頂 1 ~ 3は 5.1 節と同様であるため,手JI頂4のみ下記に示す . 4. ファイルのタイプから希望の Im暇フォー マットをリス 5.3 }両側 一千→ーっ |均 ト選択し,保存をクリックする. 図14はPNGファイル i を選択し,DPIを 300 として画像を得る設定である. |解像度四kl掛 別刷例川胆制品同 占 Jーム 吋 剥畠ザ除|空 図14:PNGファイル保存画面 ,,,, •11, グラフギャラリ ー への保存 グラフギャラリーに保存も可能である.既存の6グループTabに追加は出来ないため,新規Tabを追加し, グラフを保存する. 新規Tabへの追加手順は,下記となる. 1. メインメニュ パ ー :ファイル=争グラフギャラリ ※グラフギャラリ ー に保存ダイアログが立ち上がる. ー に保存 ー 2. グラフを保存したいグループTabのグル ー プ名を入力する. 艦教欄民 田 新規の場合は,次の手順に従う . a.白をクリックする. アイコン・ ※ 新しいグループの作成ダイアログ が立ち上がる. b.新しいグループの名前を入力し,OKをクリックする. ※グラフギャラリーダイアログに名前 が表示される. 3. グラフ名を入力する. 図 15 :グラフギャラリー保存画面 4. アイコンは,デフォルトでは作成したグラフのイメー ジとなるが,変更したい場合は変更可能である. 参照をクリックし,変更したいイメー ジを選択し,開くをクリックする. 5. ツ ー ルチップは,デフォルトでは作成したグラフの名前を表示するが,変更したい場合は変更可能であ る. ツールチップに表示したい内容を記入する. 6. OKをクリックすると,新規Tabが追加され,コンテンツとして,グラフのアイ コンが表示される. 139
6. グラフのカスタマイズ グラフのカ ス タマイズは, グラフ上で右クリックし表示されるポップアップメニュ ーから, グラフのプロ パティをクリックし表示されるグラフのプロパティダイアログ(全般Tabとグル ー プ属性Tab) から行う. 主な操作方法を下記に示す. またセノレのカ ス タマイズも, プロットのプロパティダイアログ( 一般Tab, プ ロットTabと軸Tab)から行うことができるが, 本稿では説明を割愛する. 6.1 グラフ全般のカスタマイズ グラフを掲載する際, カラー印刷を許容されない場合, モノクロ印刷されても識別しやすいよう, ス タイ ルを変更したい場合がある. 全般Tabの ス タイルから, モノクロの場合はJournalを選択し, OKをクリック することで変更が可能である(図 16 左). また棒グラフや円グラフの塗りつぶし部分の表示の見栄えをよくしたい場合, データ ス キンを適用できる. 、 全般Tabのデータ ス キンから,変更が可能で ある.同様に全般Tabの背景色枠の色から背景色を変更できる. 外枠はチェックを外すことで変更できる. サイズ(ピクセル ) 枠の幅と高さから, サイズ変更ができる(デフ ォルトでは, 幅泊40ピクセル, 高さ480ピクセノレ ). 縦横比の維持はチェックを外すことで変更できる. サ ブピクセルは, より細かい表示が必要なグラフ等に用いると, 細部を詳細に表示できる. 例として, 全般Tab からデータスキン・光沢, 背景色:灰色に変更した性別の投与群別積み上げ棒グラフを示す(図 16 右 ) . ヨ央制旦竺旦三三旦旦 I ι 幽 初一色悶 I 口発御 1i 口智曳伶也J� I1 I i: l』 回圏r 図 16 ・ ス タイノレ変更画面とデータ ス キンおよび背景色を変更した性別の投与群別積み上げ棒グラフ 6.2 グルー プ属性のカスタマイズ コー ドベース においては, “ SAS9.4より追加されたStylea mステ ートメントにdatacolors=(色1色2 ...), datacontrastcolors=(色1色2 ...), datasymbols=(マ ー カ ー 記号1マ ー カ ー 記号2 ...), datalinepatterns=(線の パタ ー ン 1線のパタ ー ン 2 ...)を指定することで, グループ属性をカ ス タマイズすることが可能となった. ODS Graphics Designerにおいても, GUIベース において, 同様のカスタマイズを行うことが可能である. I. グラフ上で右クリックし, グラフのプロパティをクリックする. グループ属性Tabから, 種類:色, コ ントラストの色, マ ー カ ー記号, 線のパタ ー ンを選択し, 開始 ス タイノレをクリックするとデフォルトで 指定されている色, コ ントラス トの色, マーカー記号, 線のパター ンリ ス トが表示される. 140
上から順に設定されているため,1番上の色, コ ントラストの色, マーカー 記号, 線のパ タ ーンのリス 2. トボックスをクリックする. 色とコントラストの色の場合はパ レットが表示され, 表示したい色を選択 し, OKをクリックすることで, 変更可能である. ー マーカー記号と線のパ タ ー ンの場合は, 各種 マーカ 記号並びに線のパター ンが表示される為, 選択し変更可能である. さらに色とコントラストの色にお 担扇直益藍芝ヨ二ニニニニヲl E腫窪田E豆霊� II J�li l 自動一一一一’ l 回二 恒恒�.::�ヨロ Iletヨ i 国·�-��ヨ也事ー号、|| L ヱ 直長三三主王ヨロ寸 ケIi �使ヱヱニヱヱヱヱj E:J I _II [唖三�三lロ,|‘11'11 図17:グルー プ属性のカスタ マイズ画面手順l及び2 7. 複数グラフの表示 7.1 行・列挿入に基づきセル分割し, 複数のグラフ表示 セル(表示領域)に行列挿入を行い分割し,分割したセルにプロットレイヤ ーパ ネル等からグラフ要素を挿 入し,複数グラフを表示することが可能である.メインメニュ ー パー から挿入司行or列 でセルを分割し, 以降は3.1節同様, 分割した各セルに, プロットレイヤ ーパネル等から要素を追加しグラフ作成を行う. 7.2 パネル変数(分類変数)の水準に基づきセノレ分割し, 各水準に基づくグラフ表示 パネル変数(最大2変数まで)の水準に基づき, セル(表示領域)を分割し, 分割したセノレに各水準に基づ くグラフを表示することが可能である. この機能は, SASプログラムにおけるSGPANELプロシジャによる グラフ出力に相当する. レイアウトは格子あるいはパネルを選択することが可能である. 表示例がグラフギ ャラリーのパネルTab(図2)に示されている. 3.1節で作成したグラフを性別の投与群別積み上げ棒グラフで はなく, 投与群の 3 水準に基づきセルを分割し性別の棒グラフを表示したい場合は, 作成したグラフを右ク リックし表示されるポップアップメニュ ー から, デ}タの割り当てをクリックする. データの割り当てダイ アログが再度立ち上がるため, パネル変数Tabをクリックし, デー タ格子を選択し, 列変数にARMを割り 当てることで投与群の水準に基づく分割表示が可能である. パ ネル変数Tabから, デ ー タパネルを選択し, Classl変数にARMを割り当てた場合は, パネルレイアウトとなる. しかしながらパ ネルレイアウトは, 行 列の水準数は閉じと定義されているようで, 必要のないセルも表示されてしまう欠点、がある. 141
一- 省略ヌ 1 +\ 盟 「 ;,�::、 モ記盛二. �i TRTB TRTA 幽 TRTC 15.0 15 ,。 125 100 量 富田 。 15 00 M F M 8・ . F 10 一一 |田市川市B田市 M 。 F F cJ s.. ” |目前日明TB 13市 cJ 図18:投与群のデ ータ格子(左)orパネル(右)表示による性別の棒グラフ 8. Batchモ ー ドでのグラフの実行 SGDファイルとして保存したグラフは, SGDESIGNプロシジャを用いることによって, 通常のSAS環境 やパッチでの実行も可能である. プロシジャの基本構文は, 次の通りである. f*SGDファイルの保存先とファイル名を指定*/ ” ” Proc Sgdesign sgd= G:平SGD_Graph平Bar. sgd ; run: 同じ変数を持つ異なるデ ータに対して, SGDファイルに保存されているグラフを作成したい場合, すなわ ち, ある特定集団にデ ー タを絞り同様のグラフを作成したい場合には, Data = オプションを用いる. f*SGDファイルの保存先とファイル名を指定, jJIJのDataを指定*/ ” ” Data ADSL_C:set曲SL:where RACE= CAUCASIAN ; run: ” Proc Sgdesign sgd= C:平SGD_Graph平Bar.sgd ” Data=ADSL_C:run: さらに異なる変数を持つ異なるデ ー タに対して,SGDファイルに保存されているグラフを作成したい場合, すなわち, 臨床検査値からパイタルサインに, デ ー タ並びに変数を変更し同様のグラフを作成したい場合に は, 共有変数グラフを用いる. 共有変数は, GTLにおけるDYNAMICステ ー トメントで指定するDYNAMIC 変数のことで, Sgdesignプロシジャ実行時に値を与えることで, マクロ変数のように用いることが可能であ る. 本稿では, 共有変数グラフについての説明を割愛したため, こちらについても説明は割愛させて頂く. 142
9. 自動チャ ー トの利用方法 SAS 9.4 (TSlMO)から自動チャ ー ト(Auto Chart)機能が拡張され, 解析対象となるデ ー タセットと変数を 指定し, グラフの種類を選択すれば, 既存のテンプレー トから該当するグラフを自動的に生成することが可 能である. 操作方法における重要な点を下記に示す. 9.1 自動チャ ー トの起動 ODS Graphics Designerを起動後, メインメニュ ー パ ー から, ツ ー ル=キ自動チャ ー トをクリックすると, 自動チャ ー トウインドウが立ち上がる(図19). 笠l位。ヲコ{新規包 口&釘'ATl.6 4島民ATKl此EE 変数 臨� ll 図 里 白@)H田町 回@閉店開 ロ@回紹Ta」E 図@)S'ISTOUC ロ@回W 巴@s嶋4陥 園@縮問臨,TH 図@JC陥.ESTERa. 巴&由民間.Tl.6 白4与BP.STATl.6 ロ峰主主同.STAT頃 国里 JJ刃由種第脇遺書冊b 一 '"if雇亘 ー 図 JJ.ル ヲ S,泊ー但 87,515 ・ 7百5 匂ー宮司白 国, m寸前 82 ・ 置ll 67-2!薗 14,0 ・ 冊 58,, 掲ー関 捕 ー 盟諸 4 3 4 連続 ,I "t,ペて JI す珂て 』 連続 必 不連続 不連続 不連続 i 図2姐 ロ鮮細フロット 豆聖一コー··--•+ l!le__ ① i 図 19:自動チャ ー トウインドウ 上部にあるライブラリとデ ー タセットのリストボックスから, グラフ作成に用いるデ ー タのライブラリ とデ ー タセット名をリスト選択する. 左部には, 指定されたデ ー タセットに含まれる変数の選択欄並びにグラフの種類の選択欄が用意されて ② いる. 描図したい変数を1つ以上選択し, 描図したいグラフの種類を選択する. 選択後, グラフの生成 をクリックすると, グラフの生成が自動的に開始される. ③ 右部には, 自動チャ ー ト機能により, 生成されたグラフのアイコンが表示される. グラフの中に, プロ ットレイヤ ー パネノレから様々なプロットや線を, 挿入パネルから凡例やヘッダ ー , フリ ー テキスト等を ドラッグアンドドロップで挿入できる. 9.2 自動チャ ー トの使い方 自動チャ ー トを利用しグラフを作成する手順は, 2段階に別れる. はじめに, ①自動チャ ー ト機能を用い てグラフを生成する. その後, @生成されたグラフの中から適切なグラフを選択し詳細な部分をカスタ7 4互主豆. 次の例題を用いて, 概要を説明する. 143
9.2.1自動チャ ー トの使用例 例として, SASHELPライブラリに保存されているデ ー タセット HEARTを用いる. 心疾患の原因を探るた めに, フレ ー ミンハムにおいて行った疫学研究デ ー タである. 対象はフレ ー ミンハムに住む健康な男女5209 人(30 ・ 62歳) で2年に1度, 身体検査, 心臓に関する各種検査, アンケ ー トが行われ, 追跡中に心疾患を 発症した人のデ ー タをもとに心疾患の原因を探る研究が行われた. こちらのデ ー タに自動チャ ー トを用いて, 喫煙状況別の男女の死亡年齢の平均値に対する横棒グラフを作成する. <1 剖 step.> グラフ生成 1. メインメニュ ー パ ー からツ ール=争自動チャ ー ト を選択し, 自動チャ ー トウインドウを起動する. 2. 上部よりグラフ作成に用いるデ ー タのライブラPとデー タセットをリスト選択する.(図19①) a. ライプラヲからSASHELP選択 b. デ ー タセットからHEART選択 3. 左部に指定されたデ ー タセットに含まれる変数が表示されるため, 描図したい変数 SEX, AGEATDEATH, CHOLESTEROL, SMOKING_STATUSを選択する.(図19②) 4. 左下部より, 描図したいグラフの種類を選択する. 単変量, 2変量, グルー プを選択する.(図19②) グラフの種類を選択すると, グラフの生成ボタンが利用できる. 5. グラフの生成をクリック. 生成が開始され,右部に生成されたグラフアイコンが表示される.(図19③) 6. 全てのアイコンは, 単 一 のグラフであることがわかる. 7. 右上部の削除並びにすべて削除で必要のないグラフアイコンは削除できる. 1つのグラフアイコンをク リックし, 削除をクリックで1つのグラフアイコンを削除できる. 複数選択する場合は, Shift+クリッ クを用いて複数選択し, 削除をクリックで複数のグラフアイコンを削除できる. すべて削除をクリック すると, 生成されたすべてのグラフアイコンが削除される. 8. 左下部グラフの種類より, 詳細プロットにもチェックを入れ, グラフの生成を再度クリックすると, パ ネル分類されたグラフや複数のセノレを持つグラフ等より詳細なグラフを含むアイコンが追加される. SYSTOLIC, <2"d step>グラフのカスタマイズ 生成されたグラフの中から適切なグラフを選択(複数選択可)し, 詳細な部分をカスタマイズする. 9. 生成されたグラフアイコンの中からカスタマイズするものを選択する. ここでは, 喫煙状況別の男女の 死亡年齢に対する横棒グラフを選択する. 10. 選択されたグラフの作業領域が表示されるため,以降は3.2節同様,要素を追加しカスタマイズを行う. ここでは軸テ ー ブルを追加し, グラフに平均値を追加している(図20右). ・.�-.. A酔 otlleo SE拍 帽馳由緬( V岡崎割問。掴 ..... ....... 品ゐー-= .. 同• h, ""峰《’・唱同 陶崎。 II) ""'',・句 ーサ11 … 加胆,,-- ”’F劃楢- "'"°""' �至宝Eヨ 舗 l 川 ii I 11 I, @ 国 .. 拘... ..岨, � .・ 図 20:自動チャ ー ト機能による喫煙状況別の男女の死亡年齢に対する横棒グラフ 144 "'" I'
10.まとめ 本稿では, ODS Graphics Designer の操作方法を詳述し, 例として, 積み上げ棒グラフおよび経時デー タの 推移図を作成することで ODS Graphics Designer におけるグラフ作成方法について, 解説した. なお, より複 雑なカスタマイズを要する例として, Kaplan-Meier およひ’ Forest プロットを作成する方法を付録に掲載した. ODS Graphics Designer は, グラフの作成, カスタマイズや管理に関して, GUI に基づき操作可能なため, SAS プログラミングに馴染みのないユー ザー にとって, 迅速かっ容易にデー タを可視化および解釈するためのグ 、 ラフ作成支援ツ ー ルとして, 非常に有用なツ ー ルで ある. さらに, グラフの コ ー ドの確認やパッチモー ドで 、 の実行も可能なため, GTL を用いてグラフ作成を行うプログ ラマー にとっても, GTL の学習ツ ー ルとして役 立つといえる. SAS 9.4 では, 自動チャー ト機能, YAXISTABLE ステ ー コー ドベースにおける追加機能( トメント等)に対応するプロットレイヤ 力的といえる. 以上より, もう 一 ー XAXISTABLE 並びに の追加等, 様々な拡張も行われている点も魅 つのグラフ作成手段として, ODS Graphics Designer は今後有用なツ ー ルに なり得ると期待される. 参考文献 [!] Battiston C. SAS(R) ODS Graphics Designer -The Next Step in Amazing Data Visualization. Proceedings ofthe SAS Global Forum. SAS Institute Inc., Cary, NC, 20日. Available at htto://suooort.sas.com/resources/oaoers/oroceedin!!s13/248-2013.od王 [2] Cheng W. Statistical Graphics for Clinical Research Using ODS Graphics Designer. Proceedings of the SAS Global Forum. SAS Institute Inc., Cary, NC, 2013. Available at httos://suooort.sas.com/resources oaoers/oroceedin!!s13/380-2013.od王 [3] Matange S. ODS Graphics Designer: An Interactive Tool for C四ating Batchable Graphs. Proceedings of the SAS Global Forum. SAS Institute Inc., Cary, NC, 2009. Available at h託os://suooort.sas.com/resources/oaoers/oroceedin!!s09/331-2009ロdf. [4] Matange S. Quick Results with SAS⑧ODS Graphics Designer. Proceedings ofth直 SAS Global Forum. SAS Institute Inc., Cary, NC, 2012. Available at h甘os://suooort.sas.com/reso町ces/oaoers/oroceedin!!s12/153-2012.odf. [5] Matange S, Bo仕i仕a J. SAS ODS Graphics Designer by Example: A Visual Guide to Creating Graphs Interactively. SAS Institute Inc., Cary, NC, 2016. [6] Muller RD. Charting Your Path to Using the “New” SAS(R) ODS and SG Graphics Successfully. Proceedings of the SAS Global Forum. SAS Institute Inc., Cary, NC, 2017. Available at htto://suooort.sas.com/resources/oaoers/oroceedin!!s17/1369-20 I 7・ooster.odf. [7] Rebecca 0, Leanne G. Getting Your Hands Reproducible Graphs. Proceedings ofthe SAS Global Forum. SAS Institute Inc., Cary, NC, 2015. Available at httos://suooort.sas.com/resources/oaoers/oroceedin!!s15/3432-2015.odf. [8] SAS Institute Inc. SAS Technical News Summer 2009, 2009. Available at httos://www品s.com/offices/asiaoacific/Jaoan/oeriodicals/technews/odf709sum odf. [9] SAS Institute Inc. SAS(R) 9.3 ODS Graphics: Procedures Guide (2nd ednふSAS Institute Inc., Cary, NC, 20日. [10] SAS Institute Inc. SAS(R) 9.4 ODS Graphics Design釘:User ’ s Guide (3rd edn.). SAS Institute Inc., Cary, NC, 2015. [11] SAS(R) Macros to support D唱taset-XML v l.0.0 [12]魚住龍史・浜田知久馬. SG (Statistical Graphics) Procedures による Kaplan-Meier プロットの作成. SAS ユ ー ザー 総会論文集 2011, 185 199. [13]魚住龍史 ・ 浜田知久馬. がん臨床試験における腫蕩縮小効果の検討に有用なグラフの作成 -SGPLOT プロシジャの最新機能を活用 ー . SAS ユー ザー 総会論文集 2012, 151-165. [14]高浪洋平. SG プロシジャと GTL によるグラフの作成と ODS PDF による統合解析帳票の作成~ TQT 試 験における活用事例~ . SAS ユ ー ザー 総会論文集 2011, 201-219. [15]高浪洋平. SAS と HTML アプリケー ションによる CDISC ADaM 形式の解析用デー タセットを用いた有害 事象の解析帳票 ・ グラフ簡易作成ツ ー ルの開発事例 . SAS ユー ザー 総会論文集 2012, 185 205. 145
[16]竹団員GREPLAYプロシジャによる1枚複数掲載図の作成について.SASユー ザー 総会論文集2004, 465-474. [17]豊泉樹一 郎 ・ 財前政美 ・ 北西由武 ・ 都地昭夫. ODS GRAPHICS を用いた臨床試験デー タの可視化への挑 戦.SASユー ザ ー 総会論文集2014, 307-323. [18]西本尚樹.デー タの可視化を加速するSAS/JMP のグラフ新機能 一 ODS Graphics とJMPグラフピルダー 一 .SASユ ー ザ ー 総会20日. [19]長谷川要. ODS Statistical Graphics の臨床デー タへの適用事例.SASユー ザー 総会論文集2007, 377-380. [20]林行和 ・ 畑中雄介 ・ 小出起美雅 ・ 山口考ー.SAS/GRAPH入門~社内における教育研修事例~.SASユー ザー 総会論文集2003, 477-486. [21]平井隆幸・吉田早織 ・ 叶健 ・ 魚住龍史.ベクター 形式を用いたグラフの作成 と有用性.SASユー ザー 総会 論文集2015, 303-310. [22]宮岡悦良 ・ 吉津敦子.SASハンドブック.共立出版,2011. [23]山崎文寛 ・ 清水康平・ 高浪洋平.臨床試験におけるSGプロシジャ を用いた Graphic Design の考察.SAS ユー ザー 総会論文集2016, 233-249. [24]吉津敦子 ・ 小林丈二 ・ 緑川修一・ 高原佳奈・宮岡悦良.ODS Statistical Graphics の紹介.SASユー ザー 総会 論文集2005, 193-203. 連絡先 E-mail: takavuki.hirair@niooonkavaku.co.io 付録 付録A: 3.1節ADSL加工Pgm ” ” data ads I : set ads I ; if FASFL= Y ;run; proc sort data=adsl:by descending SEX ARMCD:run: 付録B : Kaplan-Meier プロット t1�/t章夫君: ODS Graphics Designer を用いた Kaplan ・Meier プロットとForestプロットの作成手順を紹介 する. 魚住らο016)で , コードベ ー スにおける作成方 法が報告されている. 本報告で用いられている ODS Graphicsによる出力デー タセット SurvivalPlot, 並びにForestdataを , ライブラリ !|一芸I: .. 一 一一 一 一 一 一 τ1mo WORKに取り込み利用する. ・ - 図 21 : Kaplan-Meierプロット 1. メインメニュ ー パー :ファイル=キ新規作成功空のグラフをクリック. 2. 空のグラフウインド ウ上にステッププロットア イ コン をド ラッグアンドドロップ する. 3. デー タの割り当てダイ アログへの割り当て. ライブラリ:WORK,デー タ:Surviva!PlotData, 変数X : Time, Y : Survival,グループ :Stra制m, 名前 をSurvival とし, OK をクリック. 4. 凡例 の追加 メインメニュ ー パー :掃入=キ凡例(全般)をクリック. 凡例(全般)ダイ アログのプロットを選択か ら,Survivalにチェックを入れ, OKをクリック. 5. タイトルの追加 メインメニュ ー パー :挿入=争タイトルをクリック. グラフ上にタイトルが挿入される. 再度タイトル をクリックすると2ndタイトルが挿入される. タイトルテキストの追加後2nd タイトルの フォントを小 さくしておく. 146
6. CENSORED の散布図を追加する. 7. プロットレイヤ ー から散布図アイコンを選択し, 作成途中のグラフにドラッグアンドドロップする. 散布図 (Scatter)のデー タの割り当て 変数 X: Time, Y: Censored , 名前:Censor とし, OK をクリック. 8. マー カ ー の記号を+に変更する. Censor の散布図が挿入された.作成途中のグラフ上で右クリックし,プロットのプロパティをクリック. セルのプロパティダイアログが表示されるため, プロットリストから, Censor を選択する. シンボルを Oから+に変更する. 再度グルー プ毎の CENSORED の散布図を追加する. プロットレイヤ ー から散布図アイコンを選択し, 作成途中のグラフにドラッグアンドドロップする. IO. グルー プ毎の散布図 (Sea恥r)のデー タの割り当て 変数 X: Time, Y: Censored, グルー プ:S国側m, 名前: CensorGroup とし, OK をクリックする. 9. ll. マー カ ー の記号を+に変更する. CensorGroup の散布図が挿入された. 作成途中のグラフ上で右クリックし, プロットのプロパティをク リック. セルのプロパティダイアログが表示されるため, プロットリストから, CensorGroup を選択す る. シンボルをグルー プから+に変更する. 12. Censor プロットに対する凡例の追加 挿入パネル から凡例(個別)を挿入したい位置(今回は右上)にドラッグアンドドロップする. 右上に 凡例(個別)が挿入される. すべてのプロットの凡例が表示される. 追加された凡例上で右クリックし 表示されるポップアップメニュ ー から, 凡例のコンテンツをクリックする. 凡例のコンテンツダイアロ グが表示されるため, Censor 以外のプロットのチェックを外し, OK をクリックする. 13. リスク集合の追加 プロットレイヤ ー パネルから軸テ ー プル但)を選択し,作成途中のグラフにドラッグアンドドロップする. 14. 軸テ ー ブル(町のデ ー タの割り当て 、 表示される軸テー プ ル(H )に対するデ ー タの割り当てダイアログに, 各変数を割り当てる. X: TatRisk, 値:AtRisk, 分類:Stratum, グルー プ:Stratum, 位置:下, 名前: AtRisk, OK クリック. 15. スタイルを Journal に変更し, Kaplan-Meier プロット完成 グラフ上で右クリックし表示されるポップアップメニュ ー から, グラフのプロパティをクリックする. グラフのプロパティダイアログの全般 Tab のスタイルから, Journal を選択し, OK をクリックする. 付録C: Forestプロット l. 2. 3. 4. 5. 6. メインメニュ ー パ ー :ファイル=キ新規作成=キ空の グラフをクリック. 空のグラフウインドウ上にプロットレイヤ ー パネルか ら, 散布図アイコンをドラッグアンドドロップする. デー タの割り当てダイアログへの割り当て. ライブラリ:WORK, デー タ:Forestdata, 変数 X: HAZARDRATIO, Y: SUBGRUOP, OK をクリック. その他の変数をクリック. その他の変数ダイアログか エラー 下部: ら変数 X エラー 上部: HRUPPERCL, X ‘ HRLPPERCL とし, OK をクリック. デ ー タの苦手lり当て ダイアログも, OK をクリック. Forest プロットが表示 される. マー カ ー の記号を・に変更する. 4単語埠ー ・- 調., 岨帥咽 ..・.静"・ ’-�”喝.. 、咽凶 岨.....,o t'岬 官ω@砂咽切 ..・・...’,. . 咽時咽 ’‘ザ・,a ・・ a II a ・ OH砂4絹 s 図 22: Forest プロット 作成途中のグラフ上で右クリックし, プロットのプロパティをクリック. セルのプロパティダイアログ が表示されるため,プロット Tab,プロット :Scatter の マー カ ー Tab のシンボルをOから・に変更する. X軸を対数スケ ー ルに変更する. Y軸を反転させる. 軸 Tab から軸 :X を選択し, 種類を線形から LoglO に変更する. 同様に軸 :Y を選択し, ラベルのチェ ックを外す. さらに Y 軸 Tab の 一 般 SubTab の反転にチェックを入れて, OK をクリックする. X軸の値Iに参照線(V)を追加する. プロットレイヤ ー から参照線(V)アイコンを選択し, 作成途中のグラフにドラッグアンドドロップする. 参照線のうは,l の位置にドロップすれば, 適切に 作成される. ずれた場合は, ドロップ後に表示される デー タの割り当て参照線ダイアログのパラメー タXを1に変更する. もし参照線の色や太さを変更した 147
い場合は, 作成途中のグラフ上で右クリックし, プロットのプロパティをクリック. セルのプロパティ ダイアログが表示されるため, プロットTabでプロット:Vrefの色と幅を希望のものに変更する. 7. HRと95%信頼区間の値 を追加 グラフ上で右クリックし, 列の追加をクリックする(通常右に追加される為, 左に追加したい場合は, 追加後再度作成途中のグラフ上で右クリックし, 列の移動で移動する). プロットレイヤ ー パネルから 積み上げプロックを選択し, 追加した領域にドラッグアンドドロップする. 8. 積み上げプロックのデ ータの割り当て 、 X : HAZARDRATIO, ブロック:HR, グ ル ー プ:SUBGRUOP, 軸: X2, OKをクリックする. 9. グラフ上で右クリックし, プロットのプロパティをクリック. セルのプロパティダイアログが表示され るため,プロットTabからプロット:group_blockを選択し,表示SubTabの塗りつぶし,外枠, ラベル のチェックを外す. 値SubTabの配置の横:を左から中央に変更する. 一般Tabの塗りつぶし,外枠の チェックを外す. 軸Tabの軸 :X2を選択し, 値と目盛りのチェックを外す. さらに, ラベルSubTabの フォントスタイルを標準から太字に変更しOKをクリックする. 10. Forestプロットと積み上げブロックで作成したHRと95%信頼区間の表の聞にカ ー ソルを合わせ, 移動 させることで, それぞれのグラフ領域での表示割合を変更し, 完成. 148
Report Writing Interfaceによるデ ー タステップでのHTML形式レポ ー ト作成の検討 遼 望戸 (イ ー ピ ー エス株式会社) keyword : HTML、 ODS、 RWI 1. 要旨 SAS9.4よりOutput Derivery System(以下ODS)に追加されたReport Writing Interface(以下RWI) を使用して、 HTML形式のレポ ー ト作成の実用性と可能性について検討する。 なお、 HTML出力には、 タグの締麗さから0DSHTML5ステ ー トメントを使用する。 2. RWI 2.1. RWI の基本的な記載 RWIはデ ー タステップ内に記載する。 RWIでのレポ ー ト出力の基本的なステップは以下の6ステ 、 ップである。 単純なテー プ ルで、 あれば、 これら6ステップで出力できる。 、 step 1. RWIのODSオブ ジェクトを定義 step 2. テ ー ブルを開始 step 3. 行を開始 step 4. セル(与列)を出力 step 5. 行を終了 step 6. テ ー ブルを終了 、 step lでは、 ODSオブジェクトを定義する。 オブ ジェクト名は 一 文字目はアルファベットから始 め32文字以内の英数字とする。 declare odsoutオプジェク外$0; ザ または、 dcl odsoutオア ジェク外多(); 、 、 step 2~6で、 はstep lで定義したODSオブ ジェクトを利用し、RWIのオブ ジェクトメソッドを用いて、 記載してし、く。 オブジェクト名.メソッド名LオプションL オプションZ斗1 1/ 12 149
以下に簡単な例を示した。 programOlり data _null ; set sashelp.class end=end; if n =I then do; /キ …step I*/ dcl odsout rO; /* …step 2*/ r.table_st訂t(); end; r.row_start(); /* …step 3*/ /* …step 4*/ r.format_cell(data:name); r.format_印ll(da匂: sex); r.format_,田ll(data:age); r品rmat_cell(data:hei�ht); r.format_cell(data:weight); r.row_end(); I キ …step 5*/ if end then do; r.table_end(); / * …step 6*/ 巴 nd; run; / 畠カイメージ1 合 刈tied M 14 6S JII,田 F 13 565 84 島市制 F 13 653 割 E掴姐 F 14 6宮S 1田5 Henry M 14 635 1田5 J冊es M 1包 573 田 JMe F 12 5SB 845 JMet F 15 625 1125 Je侭匝v M 13 625 84 Jclln M 1官 5S sss JQ\C氾 F 11 513 505 1125 Judy F 14 643 so L国語 F 1官 563 77 MO'y F 15 655 112 円叫Ip M 16 n 150 R出ert M 12 64B 128 R回,aid M 15 67 133 Thα... M 11 575 85 判Diam M 15 665 11包 programOlにデ ー タセット classをRWIで、出力するプログラムを、 上述のstep と併せて示した。 step IにてODS オブジェクト rを定義し、 step 21 こて匂ble_start メソッドを使いテ ー ブルを開始する。 、 ODS オブ ジェクトの定義とテ ー ブルの開始は l 回行えばよいため「 if _nー=I then do;」にて l obs 目だ けに処理を限定させる。 step 3にてrow_start メソッドを使い行を開始し、 step 4にてformat_cell メソッドのdata オプションよ りデ ー タセット classの各 変数のデ ー タを各セルへ出力し、 step 5にてrow_end メソッドを使い業を終 了する。 step 3~5で、は各 obs ごとに出力したいため 、 特段処理を絞り込む条件は必要ない。 、 最後にstep 6にてtable_end メソッドを使いテ ー ブルを終了する。 テ ー プ ルの終了は開始と同様に、 、 最後にl 回行えばよいため rif end then do;」にて最終 obs だ けに処理を限定させる。 programOIのままでは、 デ ー タセット classの変数の中身だけが出力さ れ、 変数名で、あったり変数 ラ ベ ル が無いが 、 「 r.table_start();」 ~ rend;」 の聞に「 r.row_start();」 を 一 度かませ 、 、 「 r.format_cell(data: ” 日XXX …”)」を変数分繰り返し記載すれば、 変数名や変数ラベルで も、 任意の列 ラベルを出力することが出来る。 2 / 12 150
、 入れ子にすることも可能である。 つまり、 セルの中にテ ー プ ルを入れ込むことが可能である。 /*program02り data null ; dcl odsout rO; r.table startO; r.row_startO; r.cell_startO; r.table startO; r.row_startO; r.format_cell(data: ”coll celll ”); r.format_cell(data: ”coll cell2”); r.format_cell(data: ”coll cell3 ”); r.row_endO; r.table_endO; r.cell_endO; r.cell_startO; r.table_startO; r.row startO; r.format_cell(data: ”col2 celll ”); r.format_cell(data: ”col2 cell2”); r.format_cell(data: ”col2 cell3 ”); r.row_endO; r.table_endO; r.cell_endO; r.row_endO; r.table_endO; run, |剖由111 I 剖1 僧問|国1 国間||!回凶11 I 副官剖 12 program02の例では、 行 I�IJ2のテ ー ブノレ(A)、 行 1 列3のテ ー ブル× 2 (B、 C)の3 つのテ ー ブルが 、 あり、 Aのテ ー ブ ノレの各セルにテ ー ブノレBとCが入 れ子になっている。 この時点で既存のプロシジャでは不可能であっ た出力が可能となった。 、 このようにRWIは、 step l のODSオブ ジェクトの 定義後、 step 2-6をデ ー タセットの条件による枝分 かれや入れ子を駆使して様々な形にハンドリング し、 レ ポ ー トを出力することが可能である。 I 2 cell 剖 3 / 12 151
2.2. RWIを使い HTMLを出力する
次に、 実用性をイメ ー ジした出力をRWIで行いHTMLファイノレを出力していく。
なお、 出力に用いたsas デ ー タセットは rawdata 品S プログラムより作成した base デ ー タセットを用
いた。
以下、 table l のような測定値及び変化量の要約統計量を出力するレポ ー トを考えていく。
table l要約統計量
full analysis set
P 紅白neter
tr,曲t ment
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
・..
chani嬰value
value
timing
n
999
999
999
999
・..
m甜1
999
999
999
999
・-.
std
999
999
999
999
・..
min
999
999
999
999
median m皿
999 999
999 999
999 999
999 999
・..
・..
n
m 伺n
std
min
median
max
999
999
999
999
999
999
999
999
999
999
999
999
・..
・..
・..
・..
tabk, l
’
目BS
宮
...咽
自茸恒
<11111
GI包
田恒
圃圃
国・5
回毎
mf1
m曹
国@
q宮北die Mαxi p問答ure(mπ-Hg)
treo旬、ento
、肩銅を1
10
1603
13.00
1拍
16W
181
2
前slt2
10
126.4
1507
担
1275
3
、rislt3
10
1官3S
11JO
1口7
1235
活stt1
10
1440
11弱
127
1唱5
167
雪国瞳
1
1
3
加atmentb
m旬。
個別
147
,。
-33S
盟国
1咽
1日
-36.4
13S4
m酒量
...・
3
m・4
GI也5
-74
-315
7
-55
-335
-12
官
、
冒
官
官
活sit包
10
136]
1331
11官
1360
154
1日
-73
13踊
-34
-80
笠宮
6
官
3
11isit3
10
1305
1825
1倒
1265
167
1日
司
·135
18.44
-41
-160
世E
1
3
、
、ristt1
10
1咽』E
12B6
t官3
1505
170
3
官
、,isit包
10
1田S
15B4
133
1505
173
10
2
世:74
-'11
-55
38
1
3
3
、rislt3
10
155B
15BO
134
1515
181
1口
6.2
2238
-'19
包。
58
包
1
4
冒
.
9
pla田b。
’
、、
、,,111
10
1C126
7S6
93
1問。
115
官
官
11isit官
10
81.1
12.71
65
835
100
10
-'l15
12
官
3
、nslt3
10
813
13.18
68
765
1由
10
-'113
13
包
2
"1Sit1
10
1田2
1056
83
1040
111
4
官
包
包
ulsit2
10
88J
1334
71
870
111
1口
15
官
官
3
llistt3
10
SOB
1101
76
880
111
10
,。
’
”
f&
,.
1
dia•出ic b同xi P'"'由re l)Tm同〉
,...旬、ento
,...旬、entb
’
5.46
-50
-'l40
官
円高
-46
-'l60
10
-1包1
21J5
-40
-80
27
-8.4
11.60
-'13
-11.6
1官
-'11
40
官6
OD
29
官
3
llisit1
10
S8.6
1官.40
79
970
117
包
3
包
叫sit包
10
103/J
11S3
90
100。
133
10
4B
17.67
2
3
3
llisit3
10
1005
818
85
100.6
112
10
1S
15�
向田b。
上記に、 出力したし、sas デ ー タセットtable lを示した。 これを元に出力してし、く。
4/ 12
152
→g
/*program03*/ proc template; define style onlyfontstyle; class Container / fontfamily= Times New Roman’ ,'MS Gothic'” fontsize= lOpt fontweight=medium "' , end; run; フォントを設定したテンプレ ー ト「onlyfontstyleJ を示した。 、 「ContainerJ Elementの設定が他のODS テ ー プ ルに使われる全てのElement へ 引き継がれるので、 ここでは簡単のため、 文字フォント(fontfamily)、 文字サイズ(fontsize)、 文字スタイル(fontwei悼のを program031 こ、 設定した。 /*p叩gram04*/ %let bb=borderbottomcolor=black borderbottomstyle=solid borderbottomwidth= lpx; 一 式を指定するマクロ変数「&bb.J を示した。 罫線はStyle A町ibute設定を用い、 左、 右、 上、 下のどれかを設定すればよい。 上記テンプレ ー ト では罫線の設定がゼロであるので、 罫線色を黒、 罫線スタイルを直線、 罫線幅を lpx へ 設定し、 可 視かさせている。 ここでは下線だけであるが、 他罫線を引きたいのであれば、 「bo低omJ を r leftJ r rightJ r topJ にすればよいだけである。 なお、 format_cell メソッドには罫線を指定するオプションがあるが、 Style Attributeを用いた方が program04 に罫線のスタイル 細かく設定できるので便利である。 5 / 12 153
/*program05*/
ods html5 file=” &output./table_l.html” style司nlyfon旬tyle;
data _null_;
set table 1 end=end;
by sortl sort2 so此3;
if n =1 then do;
dcl odsout rO;
r.table_sta此O;
r.head_startO;
r.row_sta此O;
” ”
r.format_cell(data: ”table_l要約統計量”,just: l ,column_span:16);
r.row_endO;
r.row_startO;
r.format_cell(data: ”full analysis set", just: ”l”,column_span:16, style_a:悦r:” &bb.");
r.row_endO;
r.row_自tartO;
r.format_cell(data-”parameter”,row_span:2,目tyle_attr:” &bb.'’)
r.format_cell(data: ’’treatment’’ ,row一span:2,自主yle_attr:” &bb.'’);
r.format_cell(data: ” timing”,row_span:2, style_attr:” &bb.”);
r.format_cell(data: ”'value”,just:"c", column_span:6, style_attr:喝bb. ”);
r.format_cell(data: ””);
r.format_cell(data: ”change value”,just:"c", column_span:6, style_a:枕r:” &bb.");
r.row_endO;
r.row_startO;
do i=l to 2;
r.format_cell(data:"n", just: ’Y’,style_attr: ” &bb.”);
’’
’
r.format_cell(data: ”mean”,just: ”r”,昌tyle_attr: &bb.’ )
’
’’
’
”
r.format_cell(data:’std
,just:’’,自tyle
attr:
&bb.’
;
)
一
”
” ”
r.format_cell(data: ”min”,just: r ,style_attr: &bb.'’),
”
” ”
”
r.format_cell(data: median ,just: r ,style_attr:” &bb.");
r.format_cell(data: ”max”,just: ’'r", style_attr:” &bb.");
if i=l then r.format_cell(data:"", style_attr:” &bb刀;
end;
r.row_endO;
r.head_endO;
r .body_sta此O;
end;
dmy=””;
array outs{*} outl·out9 dmy outlO ・ out15;
r.row_startO;
do i=l to dim(outs);
if i in(l,2) then do;
if i=l then span=9;
if i=2 then span=3;
if outs[i] A=”” then
r.format_cell(data=strip(outs[i]), row_span:span, style_attr:” &bb.”);
end;
else do;
if i=3 then do;
if last. sort2 then r.format_cell(data:strip(outs[i]), style_a:悦r:” &bb.'’);
else r.format_cell(data:strip(outs[i]));
end;
else do;
if last. sort2 then r.format_cell(data:strip(outs[i]), �ust:"r", styl e_attr:” &bb. ”);
’ ’
else r.format_cell(data:strip(outs[i]), just: Y );
end;
end;
end;
r.row endO;
if end then do;
r.body_endO;
r.table_endO;
end;
run,
ods html5 close;
’
-
6/ 12
154
program03
program04 での設定
を使い、 フォント、
罫線の設定を行っ
た program05 を示し
た。
青色太宇部分で、
program03 で作成し
た、
「 onlyfontstyleJ
を 使っ た HTML フ
ァイルを作成する
よう指定する。
赤色太字で示し
た
おrmat_cell.style_attr
オプションにて、
program04 マクロ変
数&bb. の下線設定
を反映させる。
program05 で出力
される HTML ファ
イルを以下に示す。
これで、目標とす
る table l イメ ー ジ
の出力が出来るよ
うになった。
次に以下table_2のような、 2パラメ ー タ(systolic blood pressure, diastolic bloodpressure)、 3群それぞ れのグラフを出力するレポ ートを考えてし、く。 l国画c_2スバグヲテイプ句与 姐軍曹富国 2DO 日、 ’‘・ …. v回全2 tiait1 ’岨 ヨ皿 f] i ,.. J 75 、..副t ミミ\ ’ ’咽 ・’ ‘ V初白色2 ・・a回"'虚 明sit3 訴.... 頃sit1 b i ミミ\ ベ \ミミ j 曲| 国 m tt 75 ,i1tt 3 ミご\ \ミミミ 活'"'' 凶.。a” visit3 1岨 \ミミミ ト| ・時’ …. 回 !::J \ミミ i ,.. J ミと\ !ィ !ベ j l 同 机創t3 2岨 w ‘...金 3 viait2 ・・S匂n・,,. ミミ\ \ミミミ 曲 viaitt 頃,... 凶・・a” 叫sit3 3列2行で各群各項目ごとにグラフを出力したいが、 例えばGREPRAYプロシジャやGTLの各種レ イアウトを使用しlファイルとして出力することも可能であるが、 HTMLファイルであれば1セルに lグラフを埋め込むことが可能なので、 本稿では3列2行のセルにlつずつグラフを埋め込んでし、く。 左記のように、Iパラメ ー タ1群ごと table_26.png)を用意した後、 出力イメ ー EEV E ZE望耳20・冨宮司 【f 2xESEE aE冒82aESaw 司ZEEE ZE官耳za官官E 2zESEat E 2息苦E 司まEEM9sa --a官事22宮古者 のグラフフ ァ イ/レ(table_21.png ~ ジに基づいて、table lのときと同様 に考えていく。 曲 vioit ’ visit 2 vis捻3 酬....狗 7 / 12 155
/*program06*/ ods htm.15 file=” &output./table_2.html ” style=o叫yfontstyle; data nulじ dcl odsout rO; r.table_startO; r.head_startO; r.row_st紅tO; r.format_cell(data:” table_2スパゲッティプロット ” ,column_sp四:3, just:”l”); r.row_endO; r.row_sta此O; r.format_cell(data,”full analysis set” ,column_span:3, just:”l”); r.row_endO; r.head_endO; r.body_startO; do p= l to 2; r.row_startO; do a= l to 3; r.cell_startO; r.国age缶le:則自(’'table_2 ” ,(p-1)*3+a,"・png'’}); r.cell_endO; end; r.row_endO; end; r.body_endO; r.table_endO; run, ods htm.15 close; 青色太字で示したimage メソッドが画像ファイルを貼り付けるメソッドとなり、HTMLファイルと F ‘ してはくimg>タグとなり、 image メソッド のfile オプションに指定したファイル名がくimg>タグ のsrc 属性となる。 ここで注意すべき点として、 画像ファイルの保存場所がどこかを考えることである。 ” 、 program06 ” の例では画像ファイル名 だ け を指定しているため、 ここで出力されるHTMLファイルと同じディ レクトリに存在するtable_21.png ~ table_26.pngを表示することになり、 つまり相対パスで記載して 、 いることになる。 もし、 画像ファイルが必ず l 箇所のデ イレクトリに存在する状況であれば、 絶対 パスで記載してもよいかもしれない。 program06で出力されるHTMLファイルを以下に示す。 併せて、グラフの画像ファイルを同じディレクトリに保存して table 2.htmlファイルを表示すれば、 目標とするtable 2イメ ー ジの出力が出来た。 8/ 12 156
最後に以下、 句.ble_3のような 一 覧表を出力するレポ ー トを考えていく。
table_3一覧表
品目 analysis set
parameter
tn泊.tment
subject
tuning
value
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
・..
xxxx
・..
・:baseline value.
色合.. a
・..
回世
田園
・..
mli
喝圃a
耳障盆
笥回盆
p""""5yslcllcbleed w問調...伽冒'He)
叫sit叫sK1
。吋帽,O"!o,管制}
d軍
回
6
3
2
1
err町
剖制措
P8"lffl
説鋪t叫sK包
a咽四g
d軍-'21
回
6
3
3
1
ann:
sub融
pa18m
叫sit叫sit3
@咽t調
d喝2・1官
60
6
3
包
""町
sub融
pal8町d毎回icblα>I W開聞・伽岬妨
前舗を叫slt1
a咽川市,pa,・}
d軍
同
6
3
包
包
..花
a岬d:
pa18m
凶sit叫slt2
.、組制
chg:-'27
回
6
3
3
官
ann:
a岬d:
pe18m
活sit叫slt3
.》d e。
d喝:-31
回
6
3
1
am芭
a血縁日目
pa18ms同cllcblcc姐p偲ssure加世母
滋sit頃slt1
a咽154"!o,即時
d唱:
回
6
3
3
1回
4・
1回
事
101
6
t四
ー
10\l
”
・..
閣官
1回
1田
包
1
..陀
sub帥
peram
叫sK泊sit包
a咽元37
d軍-17
回
6
3
10\l
3
1
師n:
副b陣
pe18m
叫sit泌sK3
飢層調3口
品g:-'14
曲
6
3
包
em主
subl抽
pe18mdias制!。ωα>I仰亀田咽琶伽fflt)
首sit由民’
a咽t曲、明per吟
品g:
60
6
3
2
2
ann:
sublld:
pel8m
治g怜叫sK2
e咽100
出g・4
同
6
3
1田
10
99.9
99.9
°
sub陣旧
’
8
99.9
99.9
99.9
間百1rea1n首,nt.
’
7
-
99.9
99.9
・四旬
由民......
t四
..園田
・..
99_9•
99.9
99.9
1
g圃陣
’
IB8
・..
change
企om
baseline
1田
’111
3
3国
包
’
ann:
sub陣
pe18m
‘
rislh血It官
色相d1&4
d軍帽
回
6
3
官司
3
3国
3
3
・nn:
subl地
pe18m
叫sit泌slt3
eVlll1咽
品。
回
6
3
宣車
3
S国
2
ann:
sub陣
pe18mc!I匝旭日。- w脳間四伽w・4旨〉
域sit前sK1
S咽1師事司per・}
chg:
回
6
3
’稽
3
筑ll
包
包
enn:
sub帥
pe18m
治sit,血K包
eVlll:89
曲g:・7
回
6
3
174
3
3曲
3
官
em芭
sub融
pa18m
由ib醐3
owlヨ98
cl,g:-8
回
6
3
2冒5
3
310
1
om芭
自国泌到。 pe18m町周cllc制oodpr田sure伽官'H;)
由,t,血削
a岨調39・h中er ’ }
d唱
同
6
3
11&
3
310
包
1
..町
副削cl:
pe18m
由民由民包
.、Id 171
由g:担
回
6
3
3
,,,
3
310
3
1
ann:
副聞d:
pe18m
唱It.I副3
航瑚137
制:4
回
6
’冒,
3
310
1
包
ann:
副b融
pe18mdlas刷lcblα>Ipl8創醐・h明世ii)
減sit泌sK1
a咽111、"'"'・}
由g:
回
6
3
118
3
310
包
2
onn:
subl地
pa18m
叫sit曲川
eVlll:SO
出g:-'11
60
6
3
180
3
31白
3
2
g聞
sub融
pel8m
減sit泌sK3
a咽却
曲g:-19
同
6
3
上記に、 出力したいsasデ ー タセットtable_3を示した。 これを元に出力していく。
9 / 12
157
/*progr宜m07*/
ods escapechar="-";
ods html5 file=”&output./table_3.html” style=onlyfontstyle;
data _null_;
set table_3 end=end;
by armn subjid paramn visitnum;
if_n_= 1 then do;
dcl odsout rO;
r.table_sta凶O;
r.head_startO;
r.row_st凶O;
r.format_cell(data : ”旬.ble一3 一 覧表 ’’, c泡lumn_span:6, just: ”l’,)
r.row_endO;
r.row_sta此.O;
r.format_cell(data : ”full阻alysis set", column_span:6, just : ”I”,
style_attr : ”&bb.”);
r.row_endO;
r.row_sta此O;
r.format_cell(data : ”treatment”, style_attr : ”&bb .'’);
r.format_cell(data : ”subject”, style_attr : ”&bb.");
r.format_cell(data : ”parameter”, style_attr : ” &bb.’’)
r.format_cell(data : ”’討血血g’’, style_attr : ” &bb.’’);
r.format_cell(data : ”value”, style_attr : ”&bb へ just : ’Y’);
r.format_cell(data : ”change I from I baseline”,
style_attr : ”&bb .'’,
split : ” l ・', just : ”r”);
r.row_endO;
r.
r.body_sta此O ;
end;
r.row_sta此O;
ぽray outs{*} outl ・out6;
釘ray spans{*} spanl可阻a;
do i=l to dim(outs);
if last. paramn then d醐目白明細(”也ss='",sc血(ou旬回, 1,": ”'),"'")11” &bb.";
else cla畠BS位司ate〔”d畠ss=’· ’
ifi i且(5,6) then juststr=”γ’ ;
else ifi=3 then justs位-’t”’ ;
else juststr=”’’’
ifi in(l,2,3) then do ;
ifscan(ou旬 [i],2, ”: ”') " =”” then
r.format_cell(data:s凶p(scan(outs 回, 2, 門う),
row_span-spans回
style_a世: s凶.p(,曲目sstr)11” &bb.”)
end;
else do;
r.format_cell(data:strip(scan(outs 剖, 2, ”: ”)),
style_attr:s国p(cl朗自制,
just:juststr);
end;
end;
r.row_endO;
if end then do;
r.body_endO;
r.foot_startO;
r.row startO
r.format_cell(data : 時 : baseline value人column_span:6, just : ”l”);
r.row_endO;
r.foot_endO;
r.table_endO;
end;
run,
ods html5 close;
10 / 12
158
赤色太字で示した
format_cell.splitオプショ
ンにて、 指定した文字 を
改行として扱うことが出
来きる。 HTML ファイルと
してはくhr/>タグとして出
力される。
青色太字で示した
format_cell.style_a町オ プ
ションは、 画面上に何か
出力 する設定ではない。
「classJ StyleAttributeを設
定 すると、町ML ファイル
として、該当セノレ(又は行、
body そのもの)へメタデ ー
タを埋め込むことが可能
である。 本稿では出力に
用いた元の変数名を格納
している。
緑色太字で示した
foot s飽託メソッドは必須
ではない が、 HTML に出力
すると、 <tfoot>タグ にな
、
り、テ ー プ ルの構造をよ
り明確に示すことが出来
るため 、 使用 することを
勧める。
out5 変数内に「~{ super
*}J と格納された箇所で
は 、 エ スケ ー プ文 字と
「 superJ インラインフオ
ー
ト関数を用い て「* J を
上付き にして出力してい
る。 HTML ファイ/レとして
はくsup>*<lsup>となる。
program07で出力されるHTML ファイルを以下に示す。 HTML であることを利用した出力 ここからはRWIを使ったノウハウではないが、 HTML ファイルであることを利用して、 より柔軟 なレポ ー ト出力を考える。 3. これまで出力したHTML ファイル、 table I.html、 table 2.html、 table 3.h加叫では、 それぞれ<table> ~く/table>の内容以外は共通であり、従って、 <table>~</table>までの内容をまとめて、新たにHTML ファイルへ出力すことにより、 一つのHTML ファイルへ統合することが可能である。 また、 まとめる際にリンクを埋め込めばクリックすれば目的のレポ ー トを参照できるし、 インデ 、 ックスのようなテ ー プ ルと実際のレポ ー トとをブラウザ上で2画面表示させればインデックスとレ ポ ー トを分割して表示も出来る。 以下に、 これまで出力した table 1 ~ 3.htmlをまとめ、 さらに左側にインデックスを、 右側にレポ ートを表示するようしたHTML ファイルを示した。 これらは全てsas 上でハンドリング可能であるた め、 HTML ファイルを直接手作業で修正する必要は無い。 11 / 12 159
4. まとめ RWIと既存のプロシジャのメリット ・ デメリットについて、 以下に 一 覧にまとめた。 一一一一一一一一 出力の柔軟性 。 既存のプロシジャ 的にほとんどの形のテ ー ブルを網 ため、 限界がある。 RWI ム da旬ステップを利用するため、 基本 プロシジャの機能に制限される s 羅でき、sa関数を利用しつつ出力が 可能。 プログラムの可読性 ム 、 。 sasオブジェクト形式の記載となる プロシジャの記載ルールに則れ ため、慣れが必要かもしれない。 ま ばよいので、 基本的には容易。 た、目的の出力とするためにコ ー デ ィング量が多くなる傾向がある。し かし、dataステップを利用するので アルゴリズムは理解し易い。 RTFファイノレへの出力 × 出力は出来るが、サポ ー 。 トされてい サポ ー トされているため出力可 ない。 使えないメソッドも存在す 能。 る。 HTML形式ではあるがこれまでの出力結果から、RWIを利用した出力と既存のプロシジャを利用 した出力とほとんど変わらない出力が可能であることを示せた。 プロシジャでは難しかったデ ー タの加工をしつつ出力をするという点は非常に意義のあること と考える。 RWIはRTFファイルへの出力がサポ ー トされていないため、 実務上ではすぐに活躍することは無 いのかもしれない。 今後、 RTFファイノレへの出力がサポ ー トされれば既存のプロシジャでの出力に 取って代わるかもしれない。 5. 参考文献 • SAS⑧9.4 Outout Deliverv SvstemAdvanced Tonic sSecond Edition 12 / 12 160
SASと外部ソフトウェアの連携:Windows GUI構築とExcelデ ー タの利用 O高田 一 行 1 、 迫田英之 1 、 阿部一 也 l 、 村松徳之 1 、 宮原秀夫 l 、 木村範昭 2 ( 1 株式会社タクミインフォメ ーションテクノロジー 、 2 専修大学商学部) 情報通信技術やコンビュ ー タ環境の進歩や革新により、業種を問わず人が行う業務も多様化して いる。 人が行う日々の業務の効率化や標準化を図り、作業量を軽減するためには、利用しているソ フトウェアやコンピュ ー タ環境を有効利用する方法を考え、 ユー ザーインター フェー スの工夫や作 業手順の合理化など、 様々な課題を解決する試みを続けなければならない。 さらに課題は環境だけ に留まらず分析対象のデー タについても容量増大、 品質保証、 特別な形式のデー タへの対応など、 多くの課題に向き合う必要がある。 SASは様々なコンビュ ー タ環境やデー タ形式、 外部ソフトウェ アとの連携など柔軟かっ豊富な機能を提供している。 ここでは、 業務を効率化するためのGUIメニ ュ ー の構築、外部ソフトウェアとのタスクやデー タの連携、様々な形式やレイアウトのデー タ利用 などの課題を、 SASを利用して解決するための事例を紹介する。 複雑なレイアウトのExcel帳票の形式で保存されているデー タ資産をデー タベー ス化して、 分析 に利用したいというニー ズは多い。 しかし明確な行と列の関係を持つテー ブル形式のデー タの扱い は比較的容易だが、複雑に設計されたレイアウトのExcel帳票からデー タを取り出すのは難しく、デ ータの利用を諦めてしまうケ ー スが散見される。 また様々な業務や機能に特化したソフトウェアを利用することは、専門性の高い業務を行うため には必要不可欠となっているため、 目的の業務を実施する際に、いくつかの外部ソフトウェアのタ スクを途中に入れ込みたい、または平行して外部ソフトウェアのタスクを実行したいというニー ズ も多い。 さらに使いやすい ユー ザーインター フェー スを利用して業務の効率化を図ることも重要である。 作業環境は特定できないため、 ユー ザーインター フェー スはいくつかの環境での利用を想定する必 要があり、 簡単に短期間で構築することも重要な条件となる。 SAS Integration Technologiesは、 これらの課題を解決するための機能を提供している。 ①SASと外 部ソフトウェアとのシー ムレスな連携、 ②他言語で構築したイベントドリブンの使いやすい Windows GUIメニュ ー とSASのタスクとの連携、 さらにWindows GUIメニュ ー はクライアントPC、 サー ノ〈一環境、 クラウド環境など環境を選ばず利用が可能である。 デー タの連携に関してもSASは多くのLIBNAMEエンジンをサポ ー トしているため、 様々なデー タ形式のファイルを利用することができる。LIBNAMEエンジンを指定したデー タファイルは、SAS デー タセットへの変換をすることなく、 そのままSASの分析機能で利用することができる。 SAS、 Windows GUIメニュ ー 、 外部ソフトウェアを連携するSAS Integration Technologiesを利用す ることにより、 課題解決の道筋を見出すことができる。 様々な環境やソフトウェアが持つ特徴を、 最大限に引き出すことができ、 利用を諦めていたデー タ資産の活用が促進される。 161
初/中級者が陥りやすいプログラミングエラ ー 井上貴博 (ノパルティス ファ ー マ株式会社) Programming errors伽t easily occ町on beginner/intermediate SAS programmers Takahiro Inoue Data Sciences & Scientific Operations Department, Novartis Pharma K.K. 要旨 初/中級者には理解し難く陥りやすいプログラミングエ ラ ー は多数ある。 エ ラ 一 発見 ・ 解消テクニツ クを紹介し、浮動小数点の丸め誤差、PDV など、理解していないと意図した結果が得られない事例 を紹介する。 キ ー ワ ー ド:プログラミング、 テクニック、 エ ラ ー 、 浮動小数点、 丸め誤差、 PDV、 Program Data Vector 1. はじめに 、 SASのパワ ー ユ ー ザ ー には当たり前になっているプログラミング エ ラ ー で、も、 SASを構文を覚え 慣れ始めた初/中級者に理解し難く、 陥りやすいエラー は多数ある。 しかし、 そのテクニックや内 部処理が体系的にまとめられた資料は少ない。 そこで、 本稿ではエ ラ ー 発見・解消に役立つテク ニックを紹介し、 その後、 浮動小数点の丸め誤差、 Program Data Vectorなど、 内部処理を理解して いないと意図した結果が得られない事例を紹介する。 なお、 本稿は、 SASOnDemand for Academics を使用した。 処理結果を再現できるようにプログラムも記載しているが、 他の動作環境を使用す る場合、 結果が異なる場合がある。 2. ロ グの確認 SASは、 プログラムを実行するとログを生成する。 このログには以下の情報が含まれている。 実行されたプログラム SASデ ー タセットに関する情報(変数やオブザベ ー ション数など) プログラム実行中に発生した警告・エ ラー メッセー ジなど プログラム実行に要した時間 162
プ ロ グラムが正常に実行されてない場合、 やプログラム修正のためのヒントは、 ロ グにWARNINGや ERROR が表示される。 ロ グから見つけることができ、 その原因 プ ロ グラムの実行後は、 意 図した通りに実行され結果が得られているかログを確認する必要がある。 詳細は後項に記載するが、 自動マクロ変数でERROR、 WARN別Gの有無を確認できる。 しかし、 ERROR、 WARNINGではないNOTE でも注意すべきメッセー ジが多数ある。 ロ グに確認する際の 一 キ ー ワ ー ドの 例を以下に示す。 ERROR WARNING BY値を繰り返すデ ー タセット (パ ー ジョンにより「BY値」とスペ ー スがないものもある) 欠損値を含んだ 初期化され 変換 範囲外 による割り算がありました ゼ ロ 割り 無効な LOST CARD 処理を中止 文字を超えています 実行を中止 切り捨て 表示が制限 ステ ー トメントの余分な情報を無視します 既にライブラリ 出力形式によって小数点がシフト 存在しません 演算式を計算できなかった 3. 変数がありません エ ラ ー のタイプ エラ ー が発生したプ ロ グラムを修正するには、 その発生したエラ ー のタイプを知ることで、 その エラ ー のタイプに合わせたプ ロ グラム修正ができる。 SAS 9.4 Language Reference [IJ の Types of Errors in SAS の項では、 以下のエラ ー のタイプが紹介されている。 構文エラ ー (Syntax errors) セマンティックエラ ー (Semantic errors) 実行時エラ ー (Execution-time e汀ors) デ ー タエラ ー (Data eηors) マク ロ 関連エラ ー (Macro-related Eηors)※ ※マク ロ コンパイル時および実行時に発生する。 または、 マク ロ から生成されたステ ー ト メント構文等のエラ ー だが、 本稿での解説は割愛する。 また、 Language Reference では紹介されていないが、 論理エラ ー (Logic errors)と呼ばれるエラ ー があり、 以下にそれぞれの具体例を示す。 3.1. 構文エラー(Syntax errors) SAS構文エラ ー に沿っていない場合に発生するエラ ー で、 以下のようなエラ ー がある。 スペルミス , ’)の不 一 致 引用符(“” ’ セミコ ロ ン(;)がない 無効なステ ー トメントオプション 無効なプ ロ シジャオプション 163
サンヲ瓦
プログラム
date temp;
set a
run
ログ
同
date t割問p;
14
幽RNING 14-169: date(JシンボJl,DATA<乃スペルミスであると潮路Tしました.
61
62
seta;
n >
問
由taをdateとスペルミス。SASでは一部のズλjレミスは自動的に変更し実行する。
data temp
I
data t田p
I 68
set a :
set a ;
I 61
run :
56
ERROR 56・185:オプション臥,TASTMTCHK..CORE隠Y同間的時、臥,TAAテー トメントに5ETtJ使用できません.
国τAステートメントにセミコロンb可書けていむいか、
またほDATASTMTCHK=NONEを使用してください.
62
run ;
data temp;のセミコロン(;)が抜けていた。SASのパ ー ジョンによっては、temp, set, aの3デ ー タセッ
トが作成されることがあり、SET文の参照デ ー タaが上書きされる場合もある。
3.2. セマンティックエラ ー (Semantic errors)
構文規則上は正しくても、使用意図として間違っているような場合に発生する。
サンプルプログラム
data temp;
array al I(*) xl - x5 ;
al I = 3
run
ログ
61
data temp;
62
arr・y all(・) xl ・ x5;
63
1
ER悶R: DtJIJal1へaの1 参 照が\ しくありません.
64
run;
S
i
附TE:エラ ーが発生したため、このステフブの処患を中止しました.
凶W4I陥:データセット嗣RK.T聞p(J未完成です.このステ::,ブは、eオブザペーション、
5嚢識で停止しました.
嚇よ品事二卒緯禅譲:�w:誤簿記立与
array al I (本) xl - x5;およびal I = 3 ;を各行で見れば、構文規則上、問題はない。
しかし、allは配列として定義されているため、変数としてallは使用できない。
3ふ実行時エラ ー (Execution-time errors)
コンパイル済みのプログラムを実行する際に発生する以下のようなエラ ー がある。
関数の無効な引数
無効な数学演算(0除算)
BY変数がSortされていない
ARRAY配列の引数が範囲外
町FINE/FILEステ ー トメントで指定したファイルのオ ー プンおよびクロー ズエラ ー
INPUT文での無効な引数(文字変数を数値変数として抽出)
164
3.4.データエラー(Data errors) ステ ー トメントは正しいが、デ ー タ値がステ ー トメントに適さない場合に発生する。 サンプルプログラム data tenp:’ ’ dtc = 2017-0哩-31 td = input(dt. c yy畑 d dl 0.) run ログ ‘ . . ‘ , ‘ -2 a avawava v 崎 data temp; dtc = ・ 2817 ・ 82 ・ 31 ・ 2 dt = input(dtc, yy耐d18.) ; run; 附TE:関酒食INPUT(行63カラム7)の苦闘は無効です. =;�e百鴇面持拡品宮店長会ふたたぬ結果樹胞 に臨しました ラム} } {回数 {仔:カ 1 63:7 . 明持孟桝結塊�也生担率通局長匂捧盤解a酷\唖宮初、明 構文に問題はない。しかし、2017-02-31は日付として存在しないため、引数が無効となりNull値が設定 される。 ロ グにはERROR, WARNINGではなくNOTEとして表示されないため、注意が必要である。 なお、2050・ 02・ 01のように日付として存在するが、未来の日付が入力された場合、SASのログには 表示されない。そのため、必要に応じて、入力デ ー タが適切であるかデ ー タレビュ ー 等を行う。 3.5.論理エラー(Logic errors) ここまで紹介したエラー 以外に SASのログからは発見できない論理エラー がある。例えば、以下 ’ ’ ’ のように年齢(age)を 10代 、 20代\ ’ ’ 30代以上 と分類するプログラムを作成したとする。プログ ラム(誤)では比較演算子に「=」がなく、age = 10,20,30は、agecがNull値となってしまう。 プログラム(誤) ’ ’ 庁10てageミ20 then ag国土工 10代’ : ’ else if 20くageく30 then agec’ = 20代 ; ’ else if 30< age then agec = 初代以上 ; プログラム(正) I if 10く=age< 20 then agec ’ ’ = 10代’ ’ = 20代 I else if 20<=ageく30 then agec’ ’ I else if 30<=age then agec = 30代以上 また、数値変数のN叫1値は最小値として扱われるため、IF文の比較演算には注意が必要である。 サンプルプログラム data temp: input age : if age<=1 then agec ニ 1 else if 2< age then agec =2. put age=agec =: c ards: ログ 2 age=. agec=l age=l agec=l age=2 al ec=. ア ー タ セット凶ORK. TEMP(l3オブザペー ション、語国kです. 間1TE: NOTE: 奨孟 run 68 61 62 63 64 65 data te聞p ; input age; i千age<= 1 then agec = 1; else i干 2< age then agec = 2; put age = agec =; cards; 3む、s 噌炉 興組�同静\ z age=.をagec=.とする場合if ageく= 1 then agec = 1,をif .くageく= 1 then agec = 1;とする。 論理エラ ーとして紹介した 2つの例では、 ロ グにERROR, WARNINGは表示されず、通常の NOTEのみである。そのため、作成したプログラムおよびデ ー タが意図した結果になっているか 確認の必要がある。 165
4. エ ラ ー 発見・解消のためのテクニック SASでは、 次のコンポ ー ネントをデノ〈ッグに利用することができる。 これを組み合わせることに より、 検証時のデー タ損失の予防や、 エ ラ ー 発生箇所の特定を容易にすることができる。 オプション(システム/デー タセット) ステ ー トメント 関数およびCALLルー チン 自動変数 以下にそれぞれの具体例を示す。 4.1. オプション(システム/デ ー タセット)を利用する obs = Oとnoreplaceオプションを同時に利用することで、 デー タセットや外部デー タを読み込まず Data s旬 pを実行し、 構文 エ ラ ー の確認ができ、 存在するデー タセットへの上書きを防げる。 設定 をデフォルトに戻すには「options obs = max replace ;」と記述する。 aU4・・司42J auEDζ日ζu サンプルログ(およびプログラム) option obs= 0 noreplace; data temp.b; set a, run, 大量の処理する場合、 必然的に実行時聞が長くなる。 そのため、 FISRTOBS=およびOBS=デー タ セットオプションを利用しデー タセットをサブセット化することで、 実行時聞を短くしコ ー ドレ ビュ ー を容易にすることができる。 また、WHERE=デー タセットオプションを利用することによ り、 サブグルー プごとにサブセット化することも可能である。 サンプルログ(およびプログラム) 61 62 63 data b; s武 a(firstobs= 10 obs= 15); run, 即時:デ ー タセット鵬RK.油、ら6オブザペー ションを鵠み込みました。 問1TE:デ ー タセット回1RK.B(l6オブザペー ション、 z変数です。 鴫匙拶続安- 掛事韓議欝場開捗喧h 炉""""� 64 65 66 data b; set a(whe問= (10 < age <20)); run ; NOTE:デ ー タセット回RK.Aから9オブザペー ションを読み込みました. 刷ERE (age>10 and age<20); NOTE:デ ー タセット回蹴.B(l9オブザペー ション、 1望書役です. 暢岨閥単説明餅鴨払静岡ムF 166
4.2.
ステ ー トメントを利用する
前項の方法ではデ ー タに偏りが発生する場合がある。 そのため、 ステ ー トメントを利用したサブ
セット化も有用である。
サンプルプログラム
data temp :
do pickup=l to tot刀bs by 100:
set a point=pickup nobs=totobs:
output:
end:
stop:
run.
また、 プログラムが正しくても、 不正なデ ー タにより処理に悪影響を受けることがある。 このよ
うなエラ ーを防ぐために Defensive coding が必要となる。 例えば、 以下のプログラムは、 未来日が
処理に悪影響があるとして ERROR を表示している。
サンプルプログラム
data t割問p ;
1制gth dtc事,18. ; input cite $ ;
cit= inp此(cite, yymmdd18.) ;
げtoday() < dt愉朗
p此 ’ ER' 'RI田z朱来Bi6 り ・ dt = yymmd,
cards;
ER陶R :未来日おり dt=2859 ・ 舵 ・91
即時 z デ ータセット回RK.TEMPl22オブザペー ション、 語国民です
E 横幅ξ威厳命甥鍾糊縄開品血.,.咽間d
run
4ふ
|ログ
E回
data temp
length dtc $10. : input dtc $ :
dt = input(dtc, yymmddlO.) :
if today() < dt then
・
' ’
’
put ER ROR :未来日あり dt = yy剛ddlO.:
cards:
2017-02-28
2050-02-01
mw
“ 鎚臼 制
1
関数を利用する
関数を利用して、 デ ー タセットの存在を確認することができる。 以下のプログラムは、 デ ー タの
存在を確認し ERROR が表示している。
サンプルログ{およびプログラム)
61
62
63
64
65
data _null_;
zaibuzai = exist( ・ 岡市.no ・ > i
i千zaibuzai ne 1 then
put ・ ER' 'ROR:デ ー タセットがa:, りません ・ 5
run;
ERROR:デ } タセットがありまぜん
即時:DATA.Aデ ー トメント処理{合計処理時間}:
?”ーさ高知厚生、嶋崎』炉開唖伊句駒場静<a..�惨噌嘩··品
また、 システムオプションの設定値によっては、 プログラムが意図した結果にならない。 この場
合、 GETOPTION 関数を利用して設定値を取得する。
サンプルログ(およびプログラム)
%LET p_size=%SYS刊NC(GETOPTION(PS)) ;
63
64
%PUT現在のPAGESIZE: め_size:
現在のPAGESIZE: 75
65
/市PAGESIZEが100未満なら100へ変更ホ/
66
略MACRO ps:
67
首IF &p_size < 100略THEN首DO:
68
OPTIONS ps=lOO:
69
70
首END:
蜘印 D:
71
72
覧ps:
唱しET p_size喝SYSFUNC(GETOPTION(PS)):
73
%PUT現在のPAGESIZE: &p_size:
74
現在のPA6ES1ZE: 100
167
4.4.
自動変数を利用する
SAS データセットでは、
いくつかの自動変数が用意されている。 以下は、 文字変数が不正日付で
数値に変換できなかった場合、 _ errorーを使用して_ n_(デ ー タ行)を表示するプログラムである。
サンプルプログラム
四圃「
24a時
令’・
---
a,ae
-eau
,,
,,
,,
,,
,,
data date:
length dtc $10.
input dtc $
cards:
2017-02-01
2017-02-30
run
data te臨p ;
set date •
dt = input(dtc, yymmdd旭.) ;
i千 error =1th伺
put 'ER' 'ROR:
・
・
_n_ 行邑に不正日付あり dtc =;
同n ;
data temp:
s et date;
dt= input(dtc, yynunddlO.) ;
if _error_= 1 then
’
put ’ER' 'ROR:
’
_n_,行自に不正日付あり dtc=:
引数の前に「?J または「??J をつけることにより、 _error_およびログの出力等を制御すること
ができ、 複数の別PUT 文を使用する際などに利用し特定の変数のみを確認することができる。
鈍健日 “ 四回“
サンプルログ(およびプログラム)
data t宮町P i
set dat河i ;
dt = in.明此(dtc, l yymmdd18.》s
i干_er聞に= 1then
p叫 ・ ER' 'ROR: ・ 3」・待自に不正日付あり ・ cite = ;
p・,n ;
ERROR: 2符固に不正日付ありdtc=2817-92・39
dtc=2817 -92-38 cit=. _E糊口1..=1 _N_=2
即TE:データ1:?,トWORK.OAT的内ら2オブザベーションを慎み込みました.
即時2データセット鴎RK.花IIP(;l2オブザベーション、2lt微です.
NOTEj�J若宮
エ 一一
そ:fよ塑盟盤盟問}二
一
-
ト
68
69
79
1
7
n
73
...
一
-...J
data te岬S
set date ;
dt =in帆it(dtc,n拘,mmdd18.) ;
if _er冊r_ = 1th佃
p叫 ・ ERグ ' ROR: ・ 3」・待自に不正日付あり ・ cite = ;
run ;
間TE:デー タセフト蹴!RIC.OAT防、ら2オブザベーションを畿み込みました.
即時gデータセフト眠IRK.T齢制;t2オブザベーション、 語盟主です.
記事露五議援態盟」時持品叫
168
W組NINGメッセ ー ジを格納する自動マク ロ 変数が用意されている。 ロ グに出力されるERROR、 サンプルログ(およびプログラム) dat temp 68 14 61 制ARNING set date, 56 14-169: datllシンボルDATA(/)スぺjレミスであると半l断しました. : DATAステ ートメントにSETは使用できません. ERROR 56・ 185オプションDATASTMTCHK=COREKEYWORDSの時、 DATAステートメントにセミコロンが掻けてい芯いか、 またはDATASTMTCHK=問慌を使用してください. 62 run; _..,穐単一-�.,- 即時:エラ ーが発生したため、 このステッヲの処理を中止しました. ー 附E: DATAステ トメント処理{合計処理時間): ,「凶曲屯- - .I J除、血 63 IPUT &sY 測ARNINGTEXT; 14-169: datはシンボルDATA(l)スペルミスでおると朝断しました. 制 定PUT &sYSERRORTEXT: 56-185:オプション臥,TASTMT佃K=COREKEY同問到〉時、 DATAステ ートメントlこSETは使用できまぜん. または臥J"ASTMT印K=NO NEを使用してください。 DATAステートメントiこセミコロンが按けていむいか、 これにより、 ロ グにERROR、 WARNINGが存在するか確認することができる。 5. 浮動小数点の丸め誤差 5.1. 2 進算術演算と 10 進算術演算の差異 コ ンピュ ー タは、 扱う場合、 有限精度の2進算術演算を使用している。 通常、 厳密な2進表現がない数値を コ ンピュ ー タによって生成される結果は 10 進算術演算で生成される結果とわずかに異 なる。 例えば、 10 進値の 0.1 および 0.3 には厳密な 2 進表現はない。 10 進算術演算の 3*0.l は厳密 に 0.3 になるが、 2 進算術演算ではこの等式は成り立たない。 次の例に示すように、 これらの 2 つ の値をSASに書き込むと、 同じ値のように見える。 ただし、 差異を計算すると、 値が異なること が告かる。 サンプルログ(およびプログラム) 61 62 63 64 65 66 67 68 data null, point_three=0.3; three_times_point_one=3句.1; diffe 問nce=point_three -th 問e_times_point_one; put point_th 同e=; put thr 国_ti 田s_point_one=; put difference=; run; point_three=0.3 three_times_point_one=0.3 di干干erence=-S.55112E・17 削除臥,TAステートメント処理{合計処理時間) 飢塑瞬間 e 9A勧 奄咽ぶ豆益事時句�鳴伊晶晴、�""晴瞬時F魚炉喝明 169
SASでは、IEEE準拠の浮動小数点表現 (倍精度浮動小数点表現) を用いて数値を取り扱ってい る。 この浮動小数点表現は、 効率よく実数を表現でき、 また表現可能なレンジが広いという利点 があるが、 10進数を 2 進数で格納するため、 10進数と 2 進数のマッピングに誤差が生じる場合が ある。 とくに10進数では有限小数点であっても、 2進数では無限小数点(循環小数)と な る場合が あり、 コ ンピュ ー タ内部では、 物理的な格納つま り有限桁に変換され、 精度が失われる。 5ム 丸め誤差の及ぼす影響 前項では、3*0. 1が厳密に0.3にならない例を示した。 このよう な差異がある場合、 IF 文で意図し た結果になら ない。 例えば、 以下のプログラムのように0.3超のとき企1に1を、 0.3以下のとき 企2 に1 を設定する IF 文を作成した場合、 意図した結果が得られないことがある。 o, - S3 a時 E2a, , ‘ a w盆u a uaw 邑日ζv サンプルログ(およびプログラム) data temp; a = 3 事 8.1; if8.3< a then千rl = 1; i干a<= 8.3 then千r2 = 1 , put a =千rl =千r2 =; ur n; a=8.3千r1=1千r2=. ー ー 附T 1 E:デ タセット附RK.TEMP(;t1オブザベ ション、 認盟Rです. F楢続調同耕場側勝絢鞠聴頼主場 ‘喝 5.3. 回避策 SASは、 プログラムで ” 0.3"を定数として示した場合、 値は標準の入力形式で3/10として計算され る。 変数は前項で示した丸め 誤差が生じるため、 ROUND関数を使用し丸め処理を行う必要があ る。 サンプルログ(およびプログラム) 61 62 63 “ 65 66 data temp ; a = 3 ・ 8.1; i干8.3< round(a, le ・ 8) thenfr1 = 1; 封round(a, le ・ 8)<= 8.3油制作2 = 1; put a =子r1 = fr2 =』 run , a=8.3干r1=.fr2=1 噂�ヰ伊騨噂盟議議論控訴ω 本稿では3*0. 1の算術式を例としたが、 SASが別の入力形式を使用して変数を読み込む場合や、 SAS以外のプログラムで変数を読み込む場合も、 10進値の厳密 な値が生成されない可能性があ る。 また、 厳密な2進表現ではない数値が計算に含まれている場合や、 浮動小数点表現が異なる 別の動作環境にデ ー タセットを移植する場合も、 正確な結果を得られない可能性がある。 170
5.4. ROUND 関数の注意点 通常、 ROUND 関数は、 結果の有効桁数が 9 以下で、 次のどの条件にも該当しない場合、 10 進算 術演算で期待される結果を生成する。 丸めの単位が整数である。 丸め単位が le ・ 15 以上の 10 のべき乗である。 (丸め単位が l よりも小さい場合、 ROUND は、 丸め単位の逆数が 10 のべき乗との違いが 最下位から第3または第4ピッドまでであれば、 丸め単位を 10 のべき乗として扱う) 10 進算術演算で期待される結果が小数第 4 位以下である。 多くのパッケ ー ジソフトウェアや表計算ソフトウェアでは、 内部的に暗黙の FUZZ 値を用いてこ の問題を回避しているが、 以前の SAS の ROUND 関数では引数の値をそのまま用いて処理を行う ため、 意図した結果が得ないことが多かった。 このような問題は、 FUZZ 関数を利用した構文を作 成することにより、 回避できた。[例 round (a. 1 e-5) : round ((a+(sign(a) *1 e-10)), 1 e-5)] 6. Program Data Vector (PDV) SAS は、 Program Data Vector (以下 PDV)に 一 度新しし、デ ー タセットを作成する。 どのように PDV で初期設定され、 情報が保持されているかを理解することが正確なプログラムを書く上で必要不 可欠となる。 本項では、 事例を使って PDV でどのような処理されているか紹介する。 V釘 1 varヨ al a2 /*プログラム*/ data C set AB. run 2 101 bl b2 b2 2 202 171 2 m id bl 叫 一則 一 Dataset: C B 一副 じ一V run 臨「l /*プログラム*/ data A: input id$ vart : cards: at 1 a2 2 u 一組 6.1. 使用するデ ー タセット 以下のデ ー タを使用し、 POV が影響する事例を示す。 /キプログラムキ/ data B: input id$ vart var2: cards: bl 1 101 b2 2 202 run
6ム PDV が影響する事例 Dataset: C に対して、 if var1 = 1 then var2 = 0 ;というE文を使用し、 Dataset: D を作成した 例を示す。 この例は意図通りの結果を得られている。 Da:蜘et:D id varl al a2 2 bl b2 2 V紅9 v-2 。 。 。 。 /*プログラム*/ data D; set C; if varl = 1 then var2 = 0; if varl = 1 then var3 = 0; run 202 次に Dataset: C を使わず、 Dataset: A と B を SET 文で読み込み、 同様のE文を使用した Dataset: E を作成した例を示す。 Da抱set:E id varl vatヨ 2 o• 2 202 al 泣 bl b2 V釘3 。 ’。F 。 。 M /*プログラム*/ data E; set AB; if varl = 1 then var2 = 0; if varl = 1 then var3 = 0; run Daぬset: E では、 id=a2 の var2 が 0 になっていることに注目していただきたい。 POV の処理を理 解されていない方にとっては、 意図していない結果になっていると思う。 6ふ 処理プロセス ・ 結果 POV では、 1 オプザベ ー ション毎にデ ー タが保持され処理される。 次のオプザベ ー ションの処理 に移った際、 新規変数はリセットされ(Null 値に変換)され、 読み込み変数は読み込みデ ー タで上書 きされる。 前項で示した Da回et: E の場合、 V釘 2 は読み込み変数、 var3 は新規変数である。 新規変数である V釘 3 は、 オブザベ ー ションが変わるたびに Null 値にリセットされる。 その上で、 町文の条件に合 致した id=al,a2 は V釘 3 に 0 が代入され、 条件が合致しない id=a2,b2 は Null 値が残る。 var2 は読み込み変数だが、 Dataset: A に v 釘2 がない。 そのため、 Dataset: B 由来の id=bl, b2 では 変数が読み込みデ ー タで上書きされるが、 Dataset: A 由来の id=al,a2 は読み込みされず上書きさ れない。 そのため、 id=a2 では上書きされず、 前オプザベ ー ションのデ ー タが残り、 0 となった。 PDV が影響した MERGE 文の事例 前項では SET 文の事例を示したが MERGE 文でも同様に POV が影響し、 意図しない結果が出る場 6.4. 合がある。 2 yyyy /*プログラム*/ data F input id varl $; cards; 1 xxxx 1 xxxx 2 yyyy 2 yyyy 2 yyyy run Da蜘et:F id V釘 1 xxxx xxxx Da:蜘et;G id 2 V釘 1 zzzz zzzz va:r宏 7777 9999 /*プログラム*/ data G input id varl $ var2; cards; 1 2222 7777 2 2222 9999 run 172
Da国紙:H id varl 2 zzzz xxxx zzzz 2 yyyy V創乏 7777 7777 /*プログラム*/ data H: merge F G: by id: run 9999 9999 var2 は Dataset: F になく Da陶et:G にのみ存在するため、 全てのオブザベ ー ションで読み込みが行 われる。 Dataset:F, G の両方に存在する varl は、 Datasets:F のデ ー タが読み込まれた後、 Dataset:G のデータで上書きされる。 その際、 Dataset:G のオプザベーションのみ上書きされるため、 varl は、 各 ID の 1 行目が Dataset:G、 2 行目が Dataset:F のデー タとなる。 6.5. PDV に対する対策 通常、 前項の事例で示したようなIF文で存在する変数の上書き、 変数が重複する状態での MERGE は行わないほうが適切である。 今回は、 PDV の処理プロセスの説明のため、 このような プログラムを事例として紹介した。 もし、 Dataset:E で示したように SET 文と IF 文を同一 Data step 内で処理する場合、 以下のプログ ラムで Dataset:D と同様の結果を得られることができる。 /*プログラム*/ data E_: set A ( i n = A) B : if varl = 1 then var2 = 0: else if A then var2 =. : if varl = 1 then var3 = 0: run /キvar2がないdataset:Aはvar2を初期化*/ 変数が重複する状態での MERGE に関しては、 「options msglevel = i ;」を指定することによ り、 ログに重複した変数の情報を表示できる。 設定をデフォルトに戻すには「options msglevel = N ;」と記述する。 サンプルログ(およびプログラム) 79 88 81 82 83 options msglevel=i; data H; 圃e rge F G; by id; run ; 173
7. おわりに
SAS のログでは、 ERROR、 WARNING が赤や緑などで目立つように表示される。 また、 SAS
OnDemand for Academics などをはじめとする最新の SAS
では、
エ ラー、
II
警告などの数をカテゴリで表示できるよ
凪
うになった。 しかし、 本稿で紹介した事例にようにログ
の NOTE でも注意すべきメッセ
ー
ジでも多くある。 意図
した結果を得るには、 まずはログの確認が重要である。
また、 どういった エ ラ ー があるか内容を理解し、 そのエ
ラ
ー
コード
II
…m ロ�;-····--1
!
結果
ea I晶I r.f :c
・エラ ー、 警告、 情報
I>@エラ ー (1)
I>&.警告
1>(D情報(1)
に合わせたプログラミング、 得られた結果が意図したものであるか、 実際に入力されたデ ー
夕、 出力されたデ ー タを確認することが必要である。
また、 SAS 初心者が SAS を学習する際、 構文を学習することに重点を置くことが多い。 しかし、
本稿で紹介した事例のように、 SAS がコンパイルと実行段階で、 どのようにデ ー タを処理するか
を理解せずプログラミングした場合、 意図した結果を得られないことがある。 SAS の構文を覚え
た初/中級者は、 正しい結果を作成できるように本稿で紹介したような SAS 内部のデ ー タ処理に対
しても、 理解を深めていただきたい。
8. 参考文献
[I] SAS 9.4 Language Reference: Concepts, Six白Edition
耳“
< h位。s://suooort.sas.com/document on/cdl/en/lrcon/69852/HTML/de危叫t/viewer.htm#titleoal!:e.htm>
(参照: 2017・6・19)
ロ] SAS Technical News
< httn://www.sas.com/offices/asianacific/ianan/neriodicals/technews/>
(参照: 2017・6・19)
[3] SAS 9.4 関数と CALL ル ー チン
リファレンス,第 4版
<h段o://suooort.sas.com/documentation/cdl altemate/ia/le白nctionsref/67960/HTML/default/titleoaE!e.htm>
(参照: 2017-6・19)
[4] SAS FAQ
<h仕OS ・//www.sas.com/ia io/suoo町t/technical/faa.h位nl>
(参照: 2017・6・19)
[5] Essentials of也e Progrョm Data Vector (POV): Directing the Aim to Un白rsぬnding the DATA S旬p!
Arthur Xuejun Li, City of Hope National Medical Center, Duarte, CA
SAS Global Forum 2013, Paper 125・2013
’
[6] The Use and Ab岨se of出店Program Data Vector
Jim Johnson, Ephicacy Corporation, North Wales, PA, USA
SAS Global Forum 2012, Paper 255-2012
174
Let ’ s start STDRATE Procedure 0堀田 真一 (ファイザ ー 株式会社) SAS/STAT 12.1から利用可能になったSTDRATEプロシジャは、疫学で一般的に用いられる指標であ る率と割合を計算するツ ー ルである。 STDRATEプロシジャは、 率と割合の要因聞の差や比、 それ らの信頼区間を計算することができる。 また、 層化や参照集団による標準化も可能である。 STDRATEプロシジャの入力デ ー タセットの基本的な形式や、 プログラム例、 計算結果の見方を紹 介する。 さらに、 使用上の注意点や、 割合の計算についてFREQプロシジャとの比較も紹介する。 175
Pinnacle 21 CommunityのADaMチェック機能を補完する、 XML Mappingを使用したプログラムの紹介 0西岡 宏 (シミック株式会社 CDM事業本部 統計解析部) 要旨: 無償版Pinnacle 21では行われない、 Define.xmlのValue-level Metadataのコ ー ドリストとADaMデー タ セットとの突合確認を行うSASプログラムを紹介する。 キー ワ ー ド: Define.xml, Value-level Metadata, XML Mapping, Pinnacle21 Pinnacle21は承認申請資料として提出されるADaMデー タセットのCDISC準拠状況を検証するツ ー ルで、 ある。 これには有償版のPinnacle 21 Enterpriseと無償版のPinnacle 21 Communityがあり、 機能に互換性があ るとされてはいるものの、 無償版(パー ジョン2.1.3および2.2)においては、 Value-level Metadataにお けるコ ー ドリストとADaMデー タセットのParameterごとの値との突合が行われない。 有償版の方は、 コー ドリストとADaMデー タセットに不整合があった場合、Rule ID: SD1228「Variable value not found in user-defined codelist when value-level condition occursJのErrorを出力することができ る。 そこで、 以下のような流れで、チェックするSASプログラムを作成した。 1. Define.xmlをSASデー タセットイじ: SASのXMLをMappingする機能を用い、 Value-level MetadataのあるADaMの変数情報および各変 数に設定されているコ ー ドリスト情報をDefine.xr凶から抽出しSASデ ー タセットにする。 2. ADaMデー タセットの変数内容を一 覧イ包: 、 各ADaMデ ー タセットの変数のうち、 Value-level Metadataを持つ変数の内容を 一 覧化する。 3. 突合: 1.のSASデー タセットと2.の 一 覧を突合し、Define.xmlに未定義の内容がADaMデー タセットに含 まれていなし、かチェックする。 承認申請時に申請者は有償版Pinnacleを用いたチェックを必須とされてはいないが、 PMDAは有償 版を使用して承認申請資料のチェックを行うため、 無償版によるチェックのみでは、 PMDAに承認 申請資料を提出した後になってDefine.xmlとADaMデ ー タセットの不整合が見つかるという状況が 発生する可能性がある。 本発表で提示したような、 無償版Pinnacleのチェック機能を補助する手段を用いることで、 事前に 対応が可能になると考えられる。 176
LUA プロシジャを起点としたビッグデ ー タ解析とチ ー ムコラボレ ーション ~LUA プロシジャと歩む, 初めての共同作業~ o木口亮, 北西由武 (塩野義製薬解析センタ ー ) Big Data Analysis and Team Collaboration Starting from LUA Procedure ~The First Team Programming Work with LUA Procedure ~ Ryo Kiguchi, Yoshitake Kitanishi Shionogi & Co., Ltd 生豆宣 Big Data とし、う言葉がパズワ ー ドと呼ばれた時代も過ぎ,各企業,団体が本腰を入れて Big Data の利活用 を推進している. Big Data 解析は,複数人で行われる場合が多く,関係者間で知識共有をすると同時に,ナレ ッジ として経験を蓄えてし、くことが重要である.これはプログラムにおいても同様である. Big Data 解析では, デ ータクリ ー ニング,欠測の扱いに関する検討(Ex. 補完/削除),正規化,解析手法の選択,モデリング, 解析,評価,考察,考察後の追加解析など,多くのステップを踏む. Big Data はデ ータ構造,種類などによっ て特徴が異なるため,解析のたびに各ステップの適切な手法等の選択はもちろん,ステップの組み合わせも 検討する必要がある.そのため,過去に実施した解析プログラムをナレッジとして蓄え,アクセス可能な状態に すること,さらには現在進行してし、る解析についてはそのプログラムを関係者間で可読性の高い状態で共有 する ことで,解析フロ ー を透明化し,集合知的な発想を促すことが重要とある.この 一 連の解析プロセスは, SAS ® 9.4 から正式に実装された Lua プロシジャを用いることで実現できる. Lua プロシジャは Big Data 解析に おける良いプログラムの条件の 一 つ である可読性の高いプログラムを記述でき,かっ最大の特徴と考える Tables(プログラムメタデ ー タ) とし、う柔軟なデ ー タ構造を有しており,このプロシジャを起点としたチ ー ムプログ ラミングを行うことで,チ ー ム内で同 一 認識のもとで最適な解析プロセスを構築でき,同時に知識共有/ナレ ッジの蓄積を行うことが可能である.本論文では,プログラム(Lua プロシジャ)を起点とした解析プロセスの最 適化の提案を行う. キー ワ ー ド: Big Data 解析, Lua プロ シジャ ,解析プロセスの最適化,チ ー ムプログラミング 1. はじめに BigData と し、う言葉が日本で流行しパズ ワ ー ド と 呼ばれた時期も過ぎて,各企業, 団体が本腰を入れ て BigData の利活用 を推進し てい る. BigData と 言って も, 構造化デ ー タ や非構造化デ ー タ に代表さ れ るように様々な構造を持ったデ ータが存在する. 製薬企業が保有するデ ータ もその例外ではな く , 例 えば, 縦長デ ータ(Ex. 医療ビッグデ ー タ , 副作用自発報告デ ータ)や横長デ ータ(ゲノムビッグデ ー タ)の構造を持ったデ ー タ を保有してい る. また, デ ー タの種類に関 しでも, 数値, テキスト, 画像, 音声,センサ ー など様々である. デ ー タ構造やデ ー タ の種類によ って, 当然解析アプロ ー チと解析手法 177
は異なる.加えて,これら以外にも,デー タクリー ニング,欠測の扱いに関する検討(Ex. 補完/削除), 正規化, 解析結果の評価, 考察, 考察後の追加解析など, Big Data 解析 では多くの解析プ ロ セスを 検討 する必要がある. それと同時に, 各プ ロ セス での適切な手法等の選択はもちろん, ステッ プの組み合わ せも検討しなければ ならない. こ のように多くの段階を踏ん で解析が実施されることもあり, Big Data 解析は通常複数人, 複数機能 で実施される. そ こ で, 重要になるのが 「 ナ レ ッ ジ 蓄積」 「 知識共有」と である. これはプ ロ グラムも同様であり, 過去に実施した解析プ ログラムをナレッジとして蓄え,アクセス可 能な状態にすること,さらには現在進行 している解析についてはそのプ ログラムを関係者間で可読性の高い状 態 で共有することで,解析フロー を透明化 し,集合知的な発想を促すことが重要 である.以上を踏まえると, Big Data 解析 では, 「 解析プ ロ セスの最適化」と 「 チー ムプ ロ グラミング」がキー ワ ー ドになるだろう. 上記のキー ワ ー ドを実現するために, SAS ® 9.4 から正式に実装された Lua プ ロ シジャの活用するこ とを考えた. 本論文では, 2 章で従来の SAS プ ロ グラムとLua プ ロ シジャのプ ロ グラムの比較を行な がら , Lua プ ロ シジャの特徴をまとめ, 3章では Lua プロシジャを起点と したチームプ ログラミングの在 り方と解析プ ロ セスのパラダイムシ フトについて議論し, 最適な解析プ ロセスの構築を提案する. 2. Luaプロシジャ L国プ ロ シジャは LUA 言語を基に している. LUA 言語は C 言語をベー スに したスクリプ ト言語で幅 広い業界で利用 されている言語である. このLUA 言語が組み込まれたこと で, SAS プ ロ グ ラミング が より簡便になった. 加えて, LUA のデー タ構造がサポー ト されたことで, これま での SAS マク ロ の限 界を突破し, より可読性の高いプ ロ グラムを構築 できるようになった. Lua プ ロ シジャの特徴は多々あ るが,最も特徴的なのは’r凶l白(プ ログラムメタデー タ)と呼ばれる柔軟なインメモリー のデー タ構造だろ う. こ の ’rabies は, 表 2 に示した Value タイプのデー タ を格納する こ とが出来る 仏nand, 2017). つ まり, どのようなデー タ形式 でも格納可能なデー タ構造である. 表 2. 百bles に格納可能な Value タイプ一 覧仏nand, 2017) 町pe Meaning Example Nil Represents absence of a value Nil (single value only) Boolean τ'rue or False True /False Number Double precision floating point 1.2356 String Sequence of characters “ Table Associative aηay x["key寸= 100, x[2] = “value” Function Represents a method typeO, printO Userdata Arbitrary C data lua_newuserdataO used thread Represents ’Threads of excecution Coroutine Hello World'” LUA のコ ー ディングは非常にシンプルである. 例えば ISO 国名コ ー ド USA, JPN, GBR, CAN, DEU を Tables に格納するプ ロ グラム を考える. ロー カルで定義した変数を Countryname_L, グ ロー パルで 定義した変数を Countryname_G とすると,下記のように書け る. submit ステー トメントと endsubmit ‘ ステー ト メントの聞で LUA 言語を記述できる.LUA のデー タ構造とシンプルなコ ー デ イングは非常に 便利であり, 可読性の向上に繋がっていることが分かる. 178
proc lua;
submit;
local Count「y_name_L = {'USA ’ , 'JPN ・ , e GBR B ’ ' CAN', 'DEU ’ }
ー ロ ー カルで定義Country_name_Lに文字値を格納
Country_name_G ={ ‘ USA ’ , 'JPN ’ , 'GBR ’ , ' CAN', 'DEU ’ }
ーグロ ー バルで定議Country_name_Gに文字値を格納
endsubmit;
run;
次に, この Tables を活用し,
SAS マクロ処理を簡略化したプログラムの例,
及びデ ータ状況を踏まえ
るプログラム(可変的なプログラム)の例を示す.この例を通じて従来の SAS プログラムと比較し, Lua
プロシジャの特徴を把握する.
2.1
SAS マクロ処理を簡略化したプログラム
LUA の Tables は任意のデ ータ形式でデ ータ格納が可能なため,
表2 で示したように,
当然 SAS プ
ログラムを変数として格納することが可能である. SAS プログラムをグロ パル変数として予め格納し
ー
ておき,
sas.submit 関数でその変数を呼び出し実行することで,
従来の SAS プログラムよりもシンプ
ルなプログラムで記述できる. 例えば, 以下の処理を行うプログラムを記述してみる.
Ubrarv : Work
ζ益&且
E霊
Exist only Datasetl
» run Elastic net’s Program
圏
Exist only Dataset2
’
» run Lasso s Program
白鐙A
圏
圏
Exist both/no datasets
>> run Stepwise’s Program
白鐙A
No dataset
従来の SAS マクロを使用して記述した場合と Lua プ口 、ンジャで記述した場合のプログラムを下記に示
す.可読性という観点で比較すると, Lua プ口、ンジャのプログラムの方が可読性に優れている.これは,
以下の3点が要因だろう.
1.
SAS マクロ処理を簡略化できたこと
2.
実行したい機械学習( Elastic net, Lasso, Stepwise)のプログラムをメタデ ータとして整理した状
態で, 事前に準備したこと(下記プログラムの破線枠内)
3.
機械学習プログラムのメタデ ータ作成プログラム(下記プログラムの Stepl )と,
Dataset の有無
を確認し各機械学習を実行するためのプログラム(下記プログラムの Step2)を切り分けたこと
179
・従来のSASマクロを使用したプログラム
屯MACRO ML_MACRO.(lib,data1, data2);
%IF (もSYSFUNC(EXIST(&lib••&data1.) ) = 1 and 屯SYSFUNC(EXIST(&lib••&data2.) ) = O)屯,THEN
屯DO
; proc glmselect data=wo「k.Data plots= all;
model OUTCOME= COL1・COL10 / selection= elasticnet(steps= 1000 L2= 0.1 choose= AIC) ;
「un ,
%END
;
%ELSE屯IF( %SYSFUNC(EXIST(&lib ••&data1.) ) = 0 and 屯SYSFUNC(EXIST(&lib••&data2.) ) = 1)屯THEN
%DO
; proc glmselect data= work.Data plots= all ;
model OUTCOME= COL1・COL10 / selection=lasso(steps=1000 choose= AIC) ;
run;
%END
;
%ELSE %DO
; proc glmselect data=wo「k.Data plots= all;
model OUTCOME= COL1・COL1O / selection= stepwise(select= SL choose=AIC) ;
「un;
%END
;
屯MEND
;
制L_MACRO (Work, dataset1, dataset2)
• Luaプロシジャを用いたプログラム
proc lua;
submit
;
- グローバル変数MLcodeを定強
MLcode= {}
- Step1. ML_codeの中でリストとして各機械学習プログラムを事前に格納しておく
- Elastic netの実行プログラムを格納
MLcode.elasticnet = [[
proc glmselect data=work.Data plots= all;
model OUTCOME= COL1・COL10 / selection= elasticnet(steps=1000 L2= 0.1 choose= AIC) ;
「un; 11
- Lassoの実行プログラムを格納
=
[[
MLcode.lasso
P「oc glmselect data=work.Data plots =all;
model OUTCOME= COL1・COL10 / selection= lasso(steps= 1000 choose = AIC) ;
「un; 11
- Stepwiseの実行プログラムを格納
MLcode.stepwise = [[
proc glmselect data = work.Data plots =all;
model OUTCOME = COL1・COL10 / selection= stepwise(select= SL choose=吟IC) ;
「un; 11
- - Step2. Datasetの有無を確毘しプログラムを実行する
if sas.exist("work.dataset1 闘 }白書 o and sas.exist { ” WO「k.dataset2 ” )== O then
sas.submit(MLcode.elasticnet)
elseif sas.exist { ” work.dataset1 闘 )== O and sas.exist { ” WO「k.dataset2 ” }ー= O then
sas.submit(MLcode.lasso)
sas.submit(MLcode.stepwise)
else
end
endsubmit
;
;
quit
180
2.2データ状視を踏まえるプログラム
デ ー タに依存したプログラムを記述することは効率的なことではなく, デ ー タに依存しないプログラム
を記述することが望ましい. つまり, デ ー タ状況を踏まえる, 可変的なプログラムで記述することが望
ましい. この可変処理もLuaプロシジャで実現可能である. 実装例を示す . 図3に示す国/エリア別の
lUSドルあたりの通貨とISO通貨コ ードが格納されたデ ー タがあるとする(2017/02/07時点). このデ
ータを基に,図4に示した各国/エリアの通貨を基準とした場合の他の通貨の値を算出するプログラムを
記述する. 従来のSASプログラムとLuaプロ 、ンジャを用いたプログラムを下記に示す. Luaプロシジ
ヤで記述したプログラムの方が長いが, 可変性の観点では優れている. 例えば, 新たに「Country/Erea
‘
’
8 というデー タが追加された場合, 従
= ‘NewZealand ,ISO CODE= NZD', Currency per USD = 1.3」
’
来のSASマクロを利用したプログラムはも肥W VAL URE (NewZealand )を追記する必要があるが,Lua
プロシジャは追記不要である. もちろん, For文等で記述すれば追記が不要なプログラムを書けるが,
Americaを除く処理を加味するど煩雑なプログラムになり, 可読性の観点から見劣りするだろう.
「::i---c;雨戸一1議 l 山部開
E
.
USOー」
, EU�
直面F
I KRW
__jONY
tごC J_Ja問、
Am首1回
Euro
�iitain
· •II時町a
J間,i.;問
i JPY
:
E
112.88,
1
0:98 :
o:s
1
118唱.O!:
.851
.J恒竺凶恒一一一一一←-'盟Q_;一一一___!!1"
•
IOanada
'CAD I
1.81
i OHF i
0.99 !
![二宮 i伽i1荷land
山由l
'ZAR I
i 「lO' .I加附旦一一
図3.国/エリア別のlUSドルあたりの通貨とそのISO通貨コ ードのデ } タ
1
;
一品一 一ふゴ竺-- ・
量二二ごて 二画面三こ了二ヨ:r:--唱す寸面白
7寸亘
如闘
曲"!"_
Australia
'·
ea,槍由
ヨご 画面両:
::1£二[Sol晶Afr回
E
r
,晶�'内面引 日韓両 句協同[“官皆吉岡融r""'I�°"'官官附ε門脇判明諮問時踊fi!"T拍蔀h
.�. �1日
印R「
K剛;
,CNY I
Al.ID !
CAD
o]s,
1133.02:
__
UI'
1.3
rn;
’
0脚;!
o.ilo 3
o.ooii
10.082
0.061]_
001171
00116:
;↓
ι
: 而:了二三型工二両
ZAR
_13.2
0.1183
占
:!:;: , 恒 - �;::; 噌::1
1
- 8
o�
1
_
_
9
1
I,
1.1625
0.00081
日1am
·0:1099
0}154,
0]394
o.oi
一
OJ6(f
…ニヲ二一二豆町T十三IE&.ai· 二 頑E:二二豆illI二二亙画I;二二二雨量言
12削011,
川叩5
1;
1刷044:
刷脚8_:
87_1_.6688,1
1111.ms:
_862帥
7J6 塑,
o,o恒 ;
1.1
0.5164
臼192
_ _6_2_6�2 J
_6229 ;
__8.6型s_:
1,
rno11.1
um
o.oes6
1.4086
1.6375
OD0121
0.19阻 ,
U978
1.625
M朗8,
D.9924
I
Ul31
OD918
- ODOll 1
---
IJIBIL二·_
ご o,nooij三-:0:1,,百十て喧直二二二:@:15]:てご 1·----0而
14.2903
16.5125'
日.0117 ·
印刷;
_IOJ45
1 2231,
13.4242
I
12
魁 · 目;m
1.2�
図4.各国/エリアの通貨を基準とした場合のデ
:!::�:
・
ー
タを付加したデ
ー
タ
・従来のSASマクロを利用したプログラム
%MACRO NE同一VALURE(Country);
data
null ;
set work.meta(where = (Country= ” 晶Country. ” )
call symputx ( ・・ value ” , value);
);
call symputx ( ” unit ” , unit);
run;
data work.meta;
set work.meta;
晶Country._value = round(value/&value.,
label &Country._value =
run;
”
10**-4);
Currency per &unit . ” J
-冨雌詔1d NEW VALURE;
制Erf_VAL四J:(Japan)泊四九四LURE'(Euro)主据えVALl7.賠(Britain)も畑町一VALURE'(Koria)亀据えVAL四J:(China)
明富吃VALURE'(Australia) 明n VALURE' C Canada)明W_VAL四J:(Switzerland) 叩W_VAL四J:(SouthAfrica)
_
181
:::
• Luaプロシジャを用いたプログラム(プログラム解説なし. 解説ありはAppendixに掲載)
※より簡略化したプログラムも記述できるが, 従来のSASマクロを利用したプログラムと同様の処理を行うように記述している
pr。c lua;
submit;
local data = sas.open( ” work.meta ” }
sas.where(data, ” Country not in ( ’ America ’ } ” l
while sas.next(data) d 。
sas.submit_([[data work.meta_@Country@; ]],{Country= sas.get_value(data, ” Country")})
sas.submit ([[set work.meta;]])
sas.submitー([[自 Country@_value = round(value/@value@, 10**-4);;]],
{Country= sas.get_value(data, ” Country ” ), value= sas.get_value(data,”value ” }}}
sas.submit_([[label @Country@_value = ” Currency per @unit@";]],
{Country= sas.get_value(data,”Country"), unit= sas.get_value(data, ” unit")})
sas.submit([[run;]])
end
sas.submit([[data Result; merge meta_:; run;]])
sas.close(data)
endsubmit;
run;
本章で述べたLuaプロシジャの特徴をまとめる.
,/
1油le副プログラムメタデ ータ1
任意のデー タ形式でデータを格納することが可能である
メ タデー タとして, 整理された状態でプログラミング属性を保持できる
,/
直己豆蓋盤
LUA言語でコ ー ディングすることが可能で, SASマクロ処理を簡略化できる
反復操作(処理)が容易である
プログラムを辞書形式で’fablesに事前格納することで, 実行プログラムを簡潔に記述できる
,/
ー
デ タ駆動型のプログラミング
解析対象デー タの状況を事前に定義することで, 変数やレコ ー ドなどが追加・削除されても,
プログラムの修正なしで, データの状況を踏まえた解析が実装できる
上記の特徴を踏まえて, 3章では, Luaプロシジャを起点としたBig Data解析のチ ー ムプログラミン
グの在り方と解析プロセスのパラダイムシフトを通じて, 最適な解析プロセスの構築について議論する.
3. Luaプロシジャによるチ ームプログラミングと解析プロセスのパラダイムシフト
本章では,Luaプロシジャを起点とした最適な解析プロセスの構築について議論する. BigData解析は,
1章で示したように多くの解析プロセスを踏む背景もあって,通常複数人,つまりチ ー ムで実施される.
そのため, 知識共有とナレッジ蓄積が重要となる. これらをキ ー ワ ー ドとして, まず3.1節でLuaプロ
シジャを活用したチ ー ムプログラミングの在り方と解析プロセスの構築の在り方について提案する. こ
の提案を踏まえた上で, 3.2節ではLua プロシジャを起点とした従来の解析プロセスからのパラダイム
シフトを述べる. なお, 以降の議論は, チ ーム単位でBig Data解析を実施することを前提としている.
3.1 Luaプロシジャによるチ ー ムプログラミングと解析プロセスの在り方
Big Data解析は, 多くの解析プロセスを踏む背景があると同時に, 探索解析の色合いが濃いため, 解
182
析対象デ ー タに 対して様々な解析手法を適用す る こ とになる.した がって,実際のBigData解析では, 過去に実施 した解析を適用 し たり, 異なるパック グ ランド(専門分野など)を持ったData Manager, Informatician, Statistician, Data Scientist等がチ ー ムにアサインされる こ とになる. これを勘案す ると, 下記の2つの観点が重要であ り, これらは Luaプロシジャを活用することで実現が可能 である. ./ 過去に実施した解析プログラムをナレッジとして蓄え,アクセス可能な状態にすること Tables を活用して,過去に実施した解析プログラムをリスト形式で格納することでナレッジを蓄積する (2.1節のLuaプロシジャを用いたプログラム内のS旬:plを参照) 格納する際,デ ー タ駆動型のプログラムで記載することで, いつでもアクセスが可能な状態にする 飾留 国!薗-:,薗!;。 ./ プログラムをチ ー ム内 で可読性の高い状態で共有すること Luaプロシジャは潜在的に可読性が高い 五hiesに格納しておくことで,チ ー ムメンバ ー が作成したプログラムを横並びで比較,共有できる 事前に各プロセスのプログラムを格納しプロセス内/聞で共有することで,最適な組み合わせの検証 が容易に行うことができるρ.1節のLuaプロシジャを用いたプログラム内のS句碑を参照) 解街担当 悼専門分野:樋積学習 チ ー ムで共有し . 同時にプロセスの組み合わせを考慮し,量適な解析プロセスを構築する 183
過去の解析プログラムのナレッジがアクセス可能になることで,逐次利用可能となり,さらにチ ーム内で可読性の 高い 状態で プログラムを共有することで,チ ームメンバ ーが同 一 認識の下,リアルタイムでプロセスの組み合わ せ等を検討 及び探索し,最適な解析プロセスを効率的に構築することができる. 3.2Luaプロシジャを起点とした従来の解析プロセスからのパラダイムシフト 3.1節で述べたように,Big Data解析は探索 解析の色合いが濃い. したが って, プログラムの観点 で見 ると, 「デー タ設計書などに基づきプログラムを組む」よりも 「実際のデ ー タに基づきプログラムを組 むjことになるだろう. つまり, 「 演揮的 プログラミング」よりも 「 帰納的 プログラミング」 をBig Data 解析では行 う ことになる. 一 方 で, 実際のBig D唱飽解析では, 「 演緯的解析プロセスJである ことが多 い. 解析対象デー タの選定後, 例え ばデー タクリ ー ニングをあるチ ームメンバ ーが行い, 次に別のチ ー ムメンバ ーが 欠測の取り扱い の検討と処理 を実施し, よう やくの解析担当のチ ームメンバ ー たちが探索 解析を開始する, と いった具合である. なぜ一 足飛びに解析を実施 できない のか?過去の解析プログラ ムやプロセスのナレ ッ ジ を 活用すれば, 実施は容易に可能 であるように思え る. 要因は様々あると思 う が, プログラムがデー タ駆動型で ないことが, 一因だろう. 過去の解析プログラムやプロセスのナレツ ジは大抵の場合迅速なアクセスが できないからだ. しかし,Luaプロシジャの プログラムでは,2.2節及 び3.1節で述べ たようにデ ー タ駆動型の プログラミングが可能 であ り 迅速なアクセスを実現できる.Lua プロシジャを起点とする こと で, デー タに基づ く解析プロセスの 構築が可能にな り, 解析を起点とした 解析プロセスの最適化を検討 できる. 爆発的に増え続けるBig Dataの解析を効率的に実施する上で 「 帰 納的解析プロセス」へのパラダイ ムシフトは今後直面する課題の ー っと思われるが,その 一 助としてLua プロシジャは強力なツ ー ルと言え る. 4. おわりに L国プロシジャは,2章で紹介したよう な従来のSASプログラムには ない特徴を多く有して い る. 本 論文では, Luaプロシジャの特徴を最大限活用する事例として, Luaプロシジャを起点としたBig Data 解析のチ ームプログラミングの在り方と解析プロセスのパラダイムシフトを通じて, 最適な解析プロセ スの構築 を 挙げたが, 2点補足する . 1点 目は, Luaプロシジャではデー タ駆動型の プログラムを記述 できるが, 解析対象デー タの 状況定義が不可欠である. 2.2節で述べたように変数やレコ ー ド などが追 加・削除されてもデー タ状況に合わせた可変的 な処理が可能 であるが, 想定されるデー タ状況 を プログ ラム内で網羅的に定義しておく必要がある. 例え ば, 変数が追加されたときの処理定義, レコ ー ドが 増 えたときの処理定義, 複数 のデー タセット をMergeする場合のKey変数が無くなったときの処理定義 などがある. こ の定義は 手聞のかか る作業であるが, ある解析プログラムで 一 度定義すれば他の解析プ ログラムへの転用が可能であるため, 継続的なタスクではない. 2点目は, 解析プログラムのナレッジ を アップデー トして い くこと である. 1点 目に挙げた定義 の見直しゃ, 新規の解析手法があればナレ ッ ジとして登録する など を, 定期的に行 う 必要がある. 1人のプログラマ 一 回線でSASを眺め ると,デー タハンドリングやプロシジャ活用による高度 な解析 など, プログラムの観点に目が行きがち であるが, 視点を 変 えて SAS を眺め ると 別の知見が得られる ことがある. 今回はチ ーム目線でLuaプ口 、ンジャを改めて眺めてみる こと で, Luaプロシジャを起点とし たチ ームビルディングの構築という新し い発見があった. 別の視点からSASを眺め ることで, 既存の機能 でも 新たな発見があるかもし れない. 184
委主主盤
Paul Tomas (2015).
”
Driving SAS⑧with Lua." SAS Global Forum 2015.
Anand Vijayaraghavan (2017).
”
”
A Comparison of the LUA Procedure and the SAS⑧Macro Facility SAS Global
Forum 2017.
Ryo Kiguchi (2017).
”N-Stage Machine Learning Analysis with LUA Procedure Helps Solve Big Data Analysis
Problems.”SAS Global Forum 2017.
Appendix
デー タ状況を踏まえたプログラム: Lua プロシジャを用いたプログラム(解説付き)
proc lua;
submit;
ー 解析対象のデ - 空を関数sas.openで処理可能な状態にする. 処理が終われば関数sas.closeを必ず実行する
一 世(Figure.3のデ- 11) を格納する
’ Tables (data) Iこmetaデ
local data = sas.open(” work.meta")
- Americaの変数付与は不要のため, 処理対象から除〈
sas.whe「e(data, "Count「y not in ( ’ America ・)” )
ー 関数sas.nextでSASデ -1'セット内の最初のレコ ー ドから最終レコ ー ドまで順番に見ていく
- while文と組み合わせることで, 最初から最終レコ ー ドまで1レコ ー ドずつ反復処理を行う宣言をする.
while sas.next(data) do
ー 関数sas.submitでdataステ ー トメントを実行する.
- @Country@のCountryは害|数. {}肉で指定したデ ー 告をCountryに格納する 関数sas.get_valueを用いてデ
-1'を指定し利用可能にする 関数sas.get_valueでは, 指定するデ -1'が格納されているTables(data), 及
び指定するデ ー 舎の変数名(今回はCountry)を引数として与える
sas.submit_([[data wo「k.meta @Count「y@; ]],{Country= sas.get_value(data ,” Country” )})
・ー解析対象デ- 1' (Figu「e.3)をsetする.
sas.submit_([[set work.meta;11)
ー 指定したCountryを基準とした場合の他の通を計算する
sas.submit_([[@Country串_value = 「ound(value/@value@, 10 *合 - 4);;)]
{Country= sas.get_value(data , ”Count「Y” ) , value = sas.get_value(data,"value")})
- -labelステ ー トメントで作成した変数にラベルを付与する
sas.submit_([[label @Country@_value = ” Currency per @unit@” ;II,
{Count「y= sas.get_value(data ,” Count「Y” ) , unit= sas.get_value(data ,” unit")})
ー-runステ ー トメントを実行する
sas.submit([[run;II)
- while文のend
end
- while文で作成した各国/エリアSASデ - 1'セットをmergeして処理終了
sas.submit([[data Result; me「ge meta_: ; run;11)
ーー全ての処理が終了したので. 関数sas.closeで終了を宣言する
sas.close(data)
endsubmit;
run;
J
185
ODS機能とREPORTプロシジャを用いた解析帳票の作成 一これから業務で利用を始める人のために - 太田 マルホ株式会社 裕二 デ ー タサイエンス部 Cre aton i ofTabel s su n i ODS g and REPO RT Pr o ec dure -For Use rs Be gin to Work n i EarnestYujOhta i Data Sc ienceDept.,Maruh o C o, Ltd. 要旨 SASにODS機能が導入されRTF形式のファイルに直接出力することができるようになって久しいが、 弊 社ではこれまで、総括報告書用の解析帳票はExcel形式で作成していた。 社内の業務フロー 検討の中で解析帳 票をRTF形式にする方針となり、RTF形式対応の解析帳票テンプレ ー ト集を作成することとなった。 今野ら(2011)では、 ODSRTF及び阻PORTプロシジャを用いてRTF形式の一 覧表を作成するプログラ ムが紹介されており、 比較的簡単なプログラムのみで体裁がコントロー ル可能であることがわかる。 しかし ながら、 これまでの私の経験ではDDE機能を用いたExcel形式の解析帳票の作成が中心であり、 ODSRTF 及びREPORTプロシジャに触れる機会が少なかった。 そのため、 体裁コントロー ルの概念や、 期待する体裁 にするためにどのようにスタイル定義を行うかを理解するために時間を費やした。 また、 多くの機能を備え たREPORTプロシジャの各ステー トメントやオプションの役割を理解することにも苦渋した。 Ver.9.4でODSRTF及びREPORTプロシジャを用いて解析帳票を作成する方法を整理した。 私と同様にこ れから業務で利用を開始する人を対象に紹介する。 キ ー ワ ー ド:ODSRTF、 REPORTプロシジャ、 スタイル要素、 スタイル属性、 インラインフォ ー マット 1. 背景 承認申請時の CDISC準拠電子デー タ提出の義務化を受けて、 CDISC準拠デ ー タを介した効率的な業務フロ ー a の検討を行っている。 総括報告書用の解析帳票が英語デー タで構成される AD Mから作成されることを考 慮して解析帳票の言語を英語にすることとなり、 解析帳票テンプレ ー ト集を全面的に見直すこととなった。 また、 このタイミングで従来からのWordとの親和性の高いRTF形式で解析帳票を提供してほしいというメ デイカルライティング部門の要望にも対応することとした。 これらの状況を踏まえ、RTF形式対応の解析帳 票テンプレ ー ト集を作成した。 186
解析帳票テンプレ ー ト集には、 第II相以降の試験を想定した被験者背景、 有効性、 安全性の解析帳票及び 症例 一 覧表を掲載した。 有効性については連続値、 カテゴリ、2値、 生存時間のデー タに対応したそれぞれ のテンプレ ー トを掲載した。 事前にメデイカルライティング部門と検討した解析I援票の要件を以下に示す。 ii +フォントはCou rieNew、8pt r +背景色は白、 文字は黒に統 一 総括報告書の本文中に +用紙の向きは原則縦向き(発現時期別の有害事豪嘉扇玩祝正吉証扉く) 編集なしで貼付できる +余白は上3cm、 下3cm、 左2.5cm、 右2.5cm +解析帳票の仕様(解析手法や値の 導出方法など)等を説明する脚注は表の直下 に表示(ただし、 ペー ジ番号等の情報はWo rd のフッター機能を用いて表示) lベ ー ジE元自元 デー タ +複数の出力項目を同 一 列に表示する を多くし、 出力ペ ー ジ +セル聞やセル内の余分なスペー スを省く +空白行ではなく、 罫線で行間の区切りを示す を少なくする 2. ODS機能 2.1 一 般的なSASプロシジャ ODS機能を使用することでプロシ テンプレートストア 臨璽週 ジャやD ATA ステップからの結果を RTF、HTML、PD F などの形式の外部 ファイノレに出力することができる。 大 離園田園圏 半のSASプロシジャは図1に示した プロセスで結果を外部ファイルに出力 する。 図1 SASプロシジャの出力プロセス( 一 部プロシジャを除く) SASプロシジャを実行すると、 まず、 プロシジャが導出したデー タ(数値や文字)で構成されたデー タコ ンポー ネントが作成される。 次に、 デー タコンポー ネントが出力構造を定義したテ ー ブルテンプレ ー トと結 合して出力オブジェクトとなり、その後出力オブジェクトがスタイルテンプレ ー トによって全体的な体裁(色、 フォント、 罫線、 マー ジンなど)が定義されたファイルに出力される。 出力ファイルの体裁は、スタイルテンプレ ー トで スタイル要素を定義することによってコントロー ルする。スタイル要素とは出力ファイルの特定の部 分に適用するスタイル属性を集めたものであり、図 2に示した「SystemTite l J 、 「Hea der」のような部 分ごとに定義する。( 全スタイル要素及び全スタイ ル属性はSAS 9.4 Outp岨t Del ivery System: U田内 1 で参照可能) G叫ideのChapter1 I及びChapter2 図2 UNIVARIATEプロシジャのHTML出力結果 スタイル要素の属性の数や種類は部分ごとに異なるため、 体裁をコントロー ルするためには各部分のスタ イル要素名や必要なスタイル属性を特定する 必要がある。 ODS MARKUPステ ー トメントを利用することで そのプロセスを簡略化することができる。 オプション(TYPE =STYLE POPUP)を指定した下記プログラム では、 ポインタをかざした部分のスタイル要素名が表示され、 さらにダブルクリックするとスタイル要素の 属性を表示したウインドウが開くHTML ファイルを作成することができる( 図3)。 187
’ 寸 7 7平出元Bodyヲティ�蚕 。面白而up子i 1e三 ODS MA隔UP.而目l ’ ’ / 出力スタイルシー トファイル名*/ stylesheet = StyleSheet.css * type = style__popup / スタイル要素表示オプションキ/ * style = Styles.HTMLblue, */ /*スタイルテンプレ ー ト名 ods select Moments proc univariate data = SASHELP.CLASS, var WEIGHT run ods markup close; 図8 ODSMARKUPステ ー トメントで作成した出カファイル 2.2レポート作成プロシジャ レポ ー ト作成プロシジャである テンプレートストア REPORTプロシジャ、 PR別Tプロ 、ンジャ 及びTABULATEプロシジャの出力プロ セスは少し異なっている(図4)。 これ 富田 らのプロシジャはテー ブノレテン プレ ー ト|圃醐櫨掴 を持っておらず、結果の出力構造はプロ シジャで定義される。 圏麗置 4酔 図4 睡盟副 レポ ー ト作成プロシジャの出力プロセス またプロシジャ内のステートメントで任意の出力構造に変更することもできる。出力ファイルの全体的な 体裁は他のプロシジャと同様にスタイノレテンプレートで定義されるが、プロシジャ内のステートメントでス タイル属性を変更することもできる。なお、スタイルテンプレートではスタイル要素名ごとにスタイル属性 を指定するが、レポ ート作成プロシジャでは Locationごとあるいは特定のセルごとにスタイル属性を指定す ることができる。Locationに関する詳細は0を参照。 3. 解析帳票作成プログラムの紹介 3.1 ODS RTFとREPORTプロシジャの主なステートメント RTF形式の解析I援票を作成するにはいくつかの方法があるが、 ODS る方法を採用した。この方法で 一 RTF及びREPORTプロシジャを用い 覧表を作成するためのプログラムが今野ら(2011)で紹介されているが、 比較的簡単なプログラムのみで体裁をコントロ ールした 一 覧表が作成できることがわかる。 本稿で紹介するステートメントの構文とその機能の概要を下に示した。ODS RTF及びREPORTプロシジャ にはこの他にも複数のステートメントやオプションがあるが、ここでは解析帳票テンプレート集の作成に用 いたものに限定している。 188
、
ods rtf fife三 出カファイル客も同le= スタイルテンプレー ト名
notoc data
*
/ 目次デー タの出力制御オプション*/
proc report data= ti:fカデータ:8 missing fl!!の才プショシ;
/*欠測値を有効値として扱うオプシヨン*/
columnレポート項目1レポー ト項§2・・
/ホレポー ト対象となる変数*/
おれmレポー ト項目iオプション二
/*レポー ト項目の役割と表示方法*/
ー
トメントを実行*/
キcompute-endcomp聞のSASステ
co問,ute場所もしくはレポー ト項目:
/
SAS.ステ ー トメント二
endcomp,
breakタイSシグブレー ク変毅/才プショシ;
/*ブレーク時(ブレーク変数の値が変わった時)に*/
/キオプシヨンに指定したアクシヨンを実行 */
run
ods rtf close.
a
注;ODS機能を用いて解析I援票を作成するとき、 事前に作成したユー ザー 定義スタイルテンプレ ー トをすべ
ての解析帳票に適用することで解析帳票を通じて書式を統 ー できるというメリットがある。したがって、
解析帳票聞で共通に使用するスタイルはスタイルテンプレ ー トで定義し、 個々の解析帳票の細かな体裁
の調整に必要なスタイルはプロシジャ内で定義するという方法をとることができる。
弊社でもこの方法を採用する予定であるが、 本稿ではそれぞれのステ ー トメントが影響を与えた出力箇
所を明確にするため、 ユー ザー 定義スタイルテンプレ ー トは用いずにREPORT プロシジャ及びグ‘ロ ー パ
ルステ ー トメントのみでスタイル属性を指定する方法を紹介する。 ユー ザー 定義スタイルテンプレ ー ト
を用いて同体裁の解析帳票を作成するプログラムは付録で紹介している。
3.2
有効性の解析帳票を例として
並行群間プラセボ対照試験における有効性の部分集団解析を例として、 プログラムを紹介する。 出力デ ー
タセットの詳細と目標とする解析帳票を以下に示す。 出力デ ー タセットにはすでに必要な統計量がすべて格
納されていることを前提とし、REPORTプロシジャが有する要約統計量を算出する機能は使用していない。
出カデ ー タセットの詳細
RIN 縦揺!l剛
1昨li(y帽叫
I12・1時閣時
I12・同開e叫
1昨1眠岡田〉
’昨1時帽.i
1昨1時帽・}
I12・1的晒叫
11制的岨叫
2 IH術開時
21H偽閣時
lRIPN
1RIP
1嗣同f陣g目1
I Acti t怯輔副
2 加t 同4惟輔9)
I I'<:絹訓@【地輔副
2 Pio曲面4惟輔帥
2 Pio曲師t昨曲師
2 Pio目白(N降臨時
2 Pio国旬t体制国
’Active (怯掴苗
1 I'<:駒叫削除輔9)
・>-I>・e剖
S師喝同省叫
2 V旬。_,”=智雄Ill
2 p旭国師{臨調9)
植田
咽
3
ペjをふ> .a 彊
AGEGRIN
AGEGRI
TRTPN
TRTP
AVISITN
AVISIT
TRT VISITN
TRT VISIT
LSMEAN
SE
LOWER
UPPER
CLSMEAN
CSE
CLOWER
C UPPER
AVE町II
AVISIT
lRT V国Ill
2v..� 2
8 v..時 S
• v...・
2v..民 2
1 v..詩 1
• v�•
2 V出 2
8
t V旬a・
I Vm:lt
) •••-;;••肉 腫 E
; 7F 〉治不:3
年齢カテゴリ (数値)
十 数値
年齢カテゴリ
文字
τRtV翻Y
10 師同俳999)
12v..詑 2
18 v..同 S
It Vm同‘
問陥属加 (N隊蝿時
22v..同 2
28 v..而 1
2・v..認‘
10 Act問【砕剖骨
’2v..栂 2
白紙E醐 6£ LOWER U押目 。
OJ;E O LOWE C UPPER
99却s 99S99 9・a・9 99S師 同怠掴 ggsgg 蝿S輔 個掴’
蝿S輔 制調,9U開 制踊9 9U掴 制踊, s・a・9 師胴9
同調9 闘訓9 99S開 制却9 9U曲 曲J99 9U99 帥S99
.
輔S99 99S99 99S輔 輔S99 8・S99 99S99 99S99 9U99 掴S岡 田s・8 開S闘 同調,.
曲S個
師掴’ 個S帽 制S曲 師S臨 調a輔
21 Vllid 8
田昌岡
田B副
田且曹司 刷B脚ー
2‘ V11ht
同S闇 師蹄g 帥S個 個掴,.
7々へ月五ぞ 弘済学講喜遊泳三 ?··;掛川
i!tt·.
数値
文字
数値
文字
数値
文字
投与群(数値)
投与群
解析時期(数値)
解析時期
投与群と解析時期の合成変数(数値)
投与群と解析時期の合成変数
文字
文字
文字
文字
文字
文字
文字
文字
投与群ごとの最小二乗平均
投与群ごとの標準誤差
投与群ごとの95%信頼区間下限
投与群ごとの95%信頼区間上限
投与群聞の差の最小二乗平均
投与群聞の差の標準誤差
投与群聞の差の95%信頼区間下限
投与群関の差の95%信頼区間上限
189
輔朗9 同S個
,
····:h� 明
I,2, 3
12・16 (years), 17-64 (years),65- (years)
l,2
Active (N=999),Placebo (N=999)
2,3,4
Visit 2, Visit 3, Visit 4
10, 12, 13, 14,20, 22,23, 24
Active (N=999), Visit 2, Visit 3,Visit 4,
Placebo (N=999),Visit 2,Visit 3,Visit 4
L 畠盟国国盤誼置留置醤醤盤湿留置盟国閤富島 同叩d d d 」 目標とする解析帳票 園櫨塑醐 3ユl 出力Ii慎 ・ 変数の 非表示 ・ヘ ッダ ーラベル AGEGRINと TRT VISITNのように、 デー タの出力順を指定するために使用するが解析帳票には表示させ ない 変数が ある。 このとき、これらの 変数を COLUMNステートメントでレポ ート項目として変数名を記載 する/勺叫さらに、 DEF悶Eステートメントでは当該レポ ート項目の 役割を ORDERとして定義するととも に、 NOP則NT オプションで非表示にする/吋 * んなお、 AGEGRI のように文字変数で役割を省略 する場合の デフォルトの役割 は DISPLAYである。 数値変数のデフォルトの役割はANALYSISである。 DEFINEステートメントのラベルオプションでは、 ヘ ッダ 一 部分に表示 するラベルを指定する !* 6 * /。 ラベ ルオプションを省略した場合には変数ラベル ( 変数ラベルが設定されていない場合には変数名) が 表示され る。ヘ ッダ ーラベルを任意の場所でセル内改行させて表示させるときは、/ 本 l */の SPLITオプションで指定し た区切り文字( デフォルトの区切り文字は’/' (スラッシュ))をテキスト内の改行させた い場所に挿入する/ * 7 */。 COLUMNステートメントでラベルを追加することができる。/ * 3 */では LOWERとUPPERの2つのレポ ー ト項目にわたるラベルを表示させている。/叫 */ではC_ LOWER、C_UPPERにわたるラベルと 、さらにその上 にC LSMEAN、 C SE、 C LOWER及びCUPPERの4つのレポ ート項目にわたるラベルを表示させている。 " style = Styles.Default; 目。ds rtf fi I e= "有効性の解析帳票ー01. rtf 『1otoc_data ’ ’ I* 1 *I | ; split= missing proc report data= D吟TA I* 2 *I column AGEGR1N AGEGR1 TRT_VISITN TRT_VISIT ’ ’ I* 3 *I LSM日N SE ( 95首Cl LOW回UPPER) ’ ’ ’ ( Comparison to Placebo' C二LSM日N C_SE ( 95首Cl CよO舵R C_UPPERl) : I* 4 *I I* 5本/ / order noprint, define AGEGR1N ’ ’ I* 6 *I / Age , define AGEGR1 define TRT_VISITN / order noprint ’ ’ I* 7 *I ; define TRT_VISIT / ’ TreatmentlVisit ’ define LSMEAN / LS M回n [了母語鮫:; define C_UPPER run ods rtf close ’ / Upper' : 190
3ユ2 セル結合・脚注 DEFIN E ステートメントで役割が ORDERとして定義されたレポ ート項目では、同じデ ー タ が連続してい る場合に行間で同じデ ー タを繰り返して表示することが 制御される/ *2叫また同時にPROCREPOR Tステー トメントでS P ANROWS オプションを指定することで制御されたセルを結合することができる/円引 /叩/ は 、 各出 力 ペ ー ジの最後に COMPU TE と ENDCOMPとの聞に記述さ れた SAS ステートメントを実行させる。 L刑E ステートメントで任意のテキストを 出力しており、こ こでは脚注を出力してい る/事4本ん 3.23 . 省略} '|: ιroe re ort data = DATA , •. (省絡} spanrows: 省略) define AGEGRt / order ’Age' ; :{省略) compute after _page_ ’ I ine 95略confidence interval' endcomp: run :; (費堕) u I* 1 *I /ホ2本/ I* 3 *I I* 4 *I スタイ/レ これまでに紹介した プログラムで作成さ れる結果を図5に示した。こ の結果 の色や フォント はPROC REPORTステートメント の STYLE オプションで指定されたスタイ ルテン プレート(STYLES. DEFA ULT)に従 っている。REPORTプロシジャではLocation ごとあるいは特定のセルごとにスタイル属 性を指定することができる。 (REPORT プ ロシジャで指定することができるスタイル 属性 はBaseSAS 94 . P rocedぽ es Guide の 図5 Loe柑on Table 55.9で参照可能) 本稿で取り扱うLocationは図5 に示した 「 Repo刷、 「 HeaderJ 、 「 C olumn」 及び 「LinesJ の4種類であ る。スタイル定義の記述方法にはいくつかの方法が あり、目的に応じて使い分けることができる。 PROCREPORTステートメントで記述 ー ) ブル全体に影響するスタイ PROC REPORTステートメントでは、STYLE正Locationオプションを用いてテ ル属性とすべてのレポ ート項目 に共通するスタイル属性を指定する。STYLEオプション の構文は以下の通り。 | 拘I e (Location) = {スタイル居住fスタイル鮒2 ・ . .} I /*1 * /のSTYLE(REPORT)オプションではLocation「 ReportJ 部 分、つま りテー ブル全体のスタイル属性を指 定している。日ust=l崎町ではテー ブルの表示位置をファイルの中 の左寄せにしている。 「 bordercolor=blackJ、 「 borderstyle=宮 olidJ及び 「 borderwidth= I pt」ではそれぞれテー ブル中で共通して使用する罫線 の色を黒、線 種を実線 、幅をlpt .!::設定している。 fframe= hsidesJではテー ブル枠の罫線を指定しており、テー ブノレの上 部と下部 のみの表示にしている。「 rules= groupsJではテー ブル内の罫線を指定しており、「 Head釘」と 「 C冶 lumnJ の問、 「 C olumnJとfLinesJ の聞のみの表示にしている。 f cellpadding= OJと れセル内の左右上下のスペ ー スとセル聞のスペ ースを削除している。 191 「 αllspac血g=OJではそれぞ
LinesJ部分のスタイル属性を指 /勺 * 人/勺灯、/* 4 */では、 それぞれLocation が「HeaderJ、 「ColumnJ、 「 定している。 指定しているスタイル属性の詳細は以下の通り。 I on I bottom I tσ back:脚und , whi black おreground |(℃冶凶er New' ,伽) font ho吋ぽbo伽mstyle none just as1s 、,just 先頭の空白と改行を無視せず表示する テキストの縦方向の位置揃えを下揃えにする テキストの縦方向の位置揃えを上揃えにする セルの背景色を白にする セルの前景色i主にテキストの色)を黒にする フォントを℃ouri 釘 New ’ 、 フォントサイズを8pt にする セル下部の罫線を表示しない “ I I I出ι テキストの横方向の位置揃えを左揃えにする テキストの横方向の位置揃えを右揃えにする 豆星空 ’ proc report data = DATA missing split =' I spanrows /• 1 •/ style(report) =Uust=left bordercolor=black borderstyle=solid borderwidth=lpt frame=hsides rules=groups eellpadding=O eel I spacing=喝} /• 2 •/ style(header) ={asis=on vjust=bottαn ’ ’ background=white foreground=black font=( Courier New ,Spt)) /• 3 •I style(column) ={asis=on vjust=top ’ ’ background=white foreground=black font=( Courier New , Spt)I /• 4 •/ style(I ines) ={asis=on just=left vjust=top ’ background=white foreground=black font=( Courier New' . 8pt) borderbottomstyle=none) IE!童聾� E ζ翠誼 DEF町Eステ ー トメントで記述 PRO C R EP O RTステ ー トメントで記述した場合はすべてのレポ ー ト項目に影響を与えるのに対し、DEFINE ステ ー トメントで記述した場合は該当するレポ ー ト項目のみに影響を与える。 両方のステ ー トメントで重複 してスタイル属性が指定されているレポ ー ト項目ではDEF別Eステ ー トメントでの指定が優先される。 * STYLE(COLUMN)オプションでは、 レポ ー ト項目A GEGRlのLocation 「ColumnJ部分、 つまりテ /*1/の ‘ 叫訓 B馴 l - 刷. ・ L 一 = 、, /• 1 •/ !•2 キ/ - i ms +L 例hw lL ・ 山 岡山 ・ ., HV eO L U & nt + n = tnHan- 幽町ahw ve --E J AH z t . t -l - EIT’ h’ - a c - 十』ゐL s-ST aGau U U 必U Mm -HU sd - 十』ゐL STET au-- eseg HUHU ’I o eagu HUHU 《u 晶L ストの表示位置を左揃えに l= l - - = z -L みL = るι +L 伺H 晶 TITI - - a- po - - uvuv -- 一 an・ 一 as TETE nHRH TETE JU nHnH i Sis- - u au a Jq -- £ - -Ed --Ed - ---Ed --Ed 1 1 - 11 - = = +L = = 品L 、.a, 、,, 阿H 、E, 、.J nHV’ -’ va - nH v’m叩ahw 閉山・9 VE Hu ・nu nuF Huonu nu-Eaa- ag RUF--- SEw nH au nu nu ’ (c( nH C Ln・ ιH ( ( - VBah-au VEVE aMau- aMau----E・agaO・B・-E- J n uJ n u ususe - -nuusus nvEるL v 4L LAa ・ v ・ nu 内U BO’s ’ nuaaeo ,,, ’’’ ’’’ ’’’ MN M開 au aM - - nRnR nunu FEFE 雌 随凶 嗣帽胤 属性を指定しており、 テキ 臨 車JOJ日 rHeaderJ部分のスタイル ’ 項目 A GEGRl の Location nunu --n am --ag 4nHnH -11l l i S SE オプションでは、 レポ ー ト hrh 一 /ホ2 */のSTYLE(H E ADER) i いる。 --E ープ ルのデ ー タ部分のスタイル属性を指定しており、 テキストの表示位置を左揃え、 セル幅を1.6cm にして している。 CALL DEF町Eステ ー トメントに記述 COMPUTEと ENDCOMPとの聞で、Eステ ー トメントと CALL DEF刑Eステ ー トメントを組み合わせて使 用することによって、 特定のセルのスタイル属性を指定することができる。 下のプログラムは年齢カテゴリ が変わるときと投与群が変わるときに罫線を表示させ、 かつTRT_VI SITのデ ー タのうちrvisit n」を表示す 192
るものにはインデント (字下げ)を施すプログラムである。なお、 出力デ ー タセット にはあらかじめOBSを
特定するための数値変数 LINE別Dを追加している(図6) 。
レ ポ ート
スタイル定義を行うCALL DEFINEステ ートメント の構文は以下の通りである。 対象カラム に、
項目名 あるい は Cn
(nは列数)を引用符で囲んで指定すること により列を特定でき 、 rowと 指定すること
ですべての列を対象にすることができる。
cal I define (対象カラム
’
'
style ,
’
style= [スタイル厚懲fスタイノル虜虚 2 • . . ]
’
)
LINE IND は解析帳票には表示しないが OBS を特定するために使用するため、 /川町で レ ポ ート項目と し
て 変数名を記載している。 /勺 * /では NOP則NTオプションで非表示にしている。なお、 _LINE_町Dは数値変
数であるため、 役割をデフォルト のANALYSIS から DISPLAY に変更している。
盛翠!IB1
2 17'・64 (y醐叫
2 17'・84加問】
2 17-・制加問】
2 Pia白血{昨999】
2 Pia回加{砕999)
2 p恒揖回{砕999)
,.,ー,..,唱、・
v一 ‘’‘’‘町,
i
I Act附(N:999)
I Act同【N:999)
I Act同【N=99的
12 v..匝2
13 Vmk3
1 Vmk4
‘’岨‘’、F’v.o,
3 86・b・s・3
. ・輔副_.、..・ ・.,
2 Pia国同{怯”9)
2 v..両・
0
図6
‘
‘
出力デー タセット(数値変数LINE_INDを追加)
CALL DEFINEステ ートメントを COMPUTEと ENDCOMP との聞に記述する。COMPUTEステ ートメント
には必ず場所もしくは レ ポ ート項目を指定しなければならず、 こ こでは一LINE_INDを指定している/勺 * /。
/勺 * 人 /*4 * /は一LINE_別D=IOであるOBSのAGEGRIのセルに幅lptの下部罫線を表示している。 こ こで、
罫線 の色及び線種は指定していないが、 P ROC REPORTステ ートメント の STYLE(REPORT)オプションで指
定し た属性に従っている。さら に、 LINE IND の値に注目 する。AGEGRIのグループ内の最後のOBS(図6
のSOBS目)ではなく最初のOBS(図6の!OBS目)に10が格納されていなければならない 。これ は、AGEGRI
は役割がORDERと して 定義されており、l行固から8行目までのセルが結合されていることが影響している。
/* デ/はLINE IND=! であるOBS の TRT VISITのセルにインデントを設定している。
/*6 * 人/円 * /は LINE別D=21であるOBSのTRT VISITのセルにインデントを設定するとと もに、TRT VISIT
以降のすべてのセルに下部罫線を表示している。
目三_,省循F
column AGEGRlN AGEGRl TRT_VISITN TRT_VISIT…{禽織} • _LINE_IND ;
define AGEGRlN
/ order noprint :
define _LINE_IND / display noprint :
:{省略)
I* 1 *I
/キ2 *I
compute _LINE_IND
I* 3 *I
ifムINE_IND = ’ 10 then’
'
’
I* 4 *I
calI define( AGEGRl
, style', 'style= [borderbottomwidth=lpt] ) :
if _LINE_IND = ’ 1 then ’ ・
’
calI define( TRT_VISIT . style', 'style= [marginleft=0.4cm] );
/キ5 *I
if _LINE_IND = ’ 21 then do
'
’
・
calI define( ’ TRT_VISIT', 'style ' , ’ style= [borderbotto附idth=lpt ’ marginleft=0.4叩1 ) : I* 6 *I
I* 7 *I
call白fine( LSMEAN' ,・style , style=白orderbottornwidth=lpt] ) ;
_: L省矯l
’
’
’
'
=
=
/本7 *I
caII define ('C_UPPER ,’style , style [borderbottomwidth lpt] );
end
endcomp;
:喧喧
193
3.2.4
インラインフォ ー マット機能 ・ テキストフィ ー ノレドでのスタイル定義
エスケ ー
プ文字とインラインフォ ー マット関数を用いてテキストとセルのスタイルを変更することができ
プ文字は ODS ESCAPECHARステートメン
る。インラインフォ ー マット関数の構文を 以下に示す。 エスケ ー
トで任意の文字を指定することができる。
I
.I;{ケー プ文字{ -(;.,ライシフt ー マ川勝タ/謝
主なインラインフォ ー マット関数は以下の通り。 (この他の関数は SAS 9.4 Output Delivery S ystem: U ser's
Guiおの Table 6.4で参照可能)
.ぷ関数�;�i:.; Ji.51数 : .·- ••• で 内容、 与三三
SUPER
|上付きにする文字|文字を上付きに設定
NEWL町E
|改行したい行数 |セル内改行を挿入
PAGEOF
|現在のペ ージと総ペ ージ数を挿入
| なし
TH隠PAGE !なし
|現在のペ ージを挿入
LASTPAGE !なし
|総ペ ージ数を挿入
n
また、 以下の構文によりラベル 、タイトル及びフットノ ートのようなテキストフィ ールドでスタイル定義
が行える。
‘エスケー プ文字』 1 スタイル属性1スタイル属性2
・
・
・
1 テキスド
/*I */では、 エスケ ー
プ文字に ’-' (チルダ)を指定している。
/*3 */では、テキストフィ ールドでヘッダ ーセルのスタイル (横方向表示位置と下部罫線)を定義するとと
もに 、 SUPER関数でテキストの 一部を上付きにして「95%C1 £•l」と表示させている。
/*2 *人/ * 4ホ人/ * 5りでは年齢カテゴリ変数をこれまでの AGEGRIから AGEGRIXに変更している。AGEGRIX
はNEWLINE関数を含むデ ータ( ’ 12・16~{newline 1}(years)\'17-64~{newline 1}(years) ' 、’ 65・~{newline 1}(years)')
で構成されていることから、 年齢単位が改行された状態で表示される。
五:ttl袋路LJ
’町
;
ods escapechar =
:.(盈i幅三
column AGEGR1N
AGEGR1X TRT_VISITN TRT_�JSIT LSM臥N SE
’
’”
( S={just=center borderbotto耐idth=1pt}95覧c1-(super[a]} LOWER UPPER)
,.�;_ 1省魁斗JNE_IND ;
define AGEGR1N
/ order noprint:
/ order
define AGEGR1X
sty I e (co I umn) = [just= I eft ce I lwidth= 1. 6cm}
’
sty I e (header) = [just= I eft l Age' :
二1袋路l
define I..INE_IND / display noprint;
compute _LINE_IN;
if _LINE_IN = ’1 then ’
’
’
ca11 define ( AGEGR1X , style , 、tyle= [borderbottomwidth= 1pt]づ:
ζ主省賂Y,
endcomp;
I* 1 *I
/本2 *I
/本3 *I
I* 4 *I
『
I* 5 *I
';_: E費蕗y
run
0董理主
3.2.5
ペ ージ設定 ・ タイトル ・ フットノ ート
OPTIONSステートメントで SASシステムの日時とペ ージを非表示にし 、用紙のサイズ、向き及び余白を
指定している。
タイトル及びフットノ ートは図5のいずれのLocationにも属してい ない。そのためREPORTプロシジャ
内ではなくTITLE、 FOOTNOTEステー トメント内でスタイルを定義している。
194
/*ス ー ヲ設定本/
options nodate nonum”ber”
/*日時非表示、ペー ジ番号非表示*/
papersize = A4
/*用紙サイズ;A4 *I
/本用紙の向き;縦(横はlandscape) *I
orientation = portrait
topm argin = 3cm bottomrnargin = 3cm
/*余白上下,;3cm *I
leftm argin = 2.5cm rightm argin = 2.5cm .
/本余白左右,2.5cm キ/
/*タイトル ・ フットノ ー トの指定(位置、フォント、サイズ、テキスト)ホ/
titlel
”
”
’ S= (just= I eft background=white foreground=b I ack font= ( Courier New". 8pt)}
Table 9.9.9 Subgroup Analysis. MMRM for Percent Change from Baseline in VAS by Age Group'
title2
”
・ S=(just=left background=white foreground=black font=("Courier New", 8pt)}Ful I Analysis Set'
footnotel
”
”
ight’ background=white foreground=b I ack font= ( Courier New", 8pt))
・ S= (just=r
陶
Page {pageof} ;/*インラインフォー マット関数*/
:(省略)
3.3複数ページにまたがる解析帳票を例に
3.3.1
改ペ ー ジの挿入
各OBS に表示したいペ ー ジ番号が格納された変数(ブレ ー ク変数)を追加し、BREAKステ ー トメントと
PAGEオプションを組み合わせることで、 ブレ ー ク時(ブレ ー ク変数の値の変更時)に改ペ ー ジを挿入する
ことができる。このとき、ブレ ー ク変数をCOLUMNステー トメントに記載するとともに、DEFINEステー ト
メントで役割をOR DER あるいは G ROUP にする必要がある。
[
break a伽ブレ ー ク鰍/叩;
3.3.2 ペ ー ジごとにヘッダ ー を変更する
臨床検査の解析帳票では臨床検査項目ごとに改ページし、臨床検査項目名は列として表示するのではなく、
ペ ー ジのヘッダ 一 部分に表示することがある。このとき、改ペ ー ジは上の方法で挿入することができる。さ
らに、BEFOREオプションと PAGEオプションを指定したCOMPUTEステ ー トメントと LINEステー トメ
ントを使用することで各ペ ー ジの最上部にテキストを表示することができる。下記プログラムでは臨床検査
項目が格納されたPAR AMNの内容を表示することができる。なお、LINEステー トメントで変数のデ ー タを
出力する際には出力フォ ー マットを指定しなければならないことに注意が必要である。
proc form at ;
j :姐略)
value’ F_PAR鮒N
’
com pute b仇re _p暇ー;
1 = ’ Param eter Nam e 1
!j
I ine PARAMN F_PARAMN.
2 = Param eter Nam e 2'
!
mp
:(省略)
� :
(
run
i
i J語;
3.3.3
Wordの表示機能を用いた改ペ ー ジ
任意の行で改ペ ー ジを行うためには各ペ ー ジに出力するOBS数を決めておく必要がある。症例一 覧表では
レングスが長いデ ー タが出力対象になることがあり、セル幅が十分に確保できない場合は自動的にセル内改
行が挿入される。その結果、出力OBS数字出力行数となり各ペ ー ジに出力するOBS数を決めることは難し
くなる。しかし、l症例の情報が2ペ ー ジにわたることは可能な限り避けたい。このとき、プログラム上で
は改ペ ー ジ処理は行わず、症例を識別するレポ ー ト項目の役割をORDER としてかつSPANROWSオプショ
ンを指定するのみとする。Wordの「表のプロパティ」 の「行の途中で改ペ ー ジする」オプションを無効にし
195
た状態で出力ファイルを閲覧することで、 1ペ ー ジに最大の症例数が表示され、 かっ1症例の情報が2ペ ー
ジにわたって表示されることを避けることができる。
4. 最後に
ODS Rl下 及び REPORT プロシジャを用いた体裁コントロ
ラムを紹介した。 弊社の解析帳票テンプレ
ー
ー
ルの概要と解析帳票を作成するためのプログ
ト集を作成するなかで使用したものを 一 通り網羅しており、 こ
れから解析帳票をR宵形式で作成することにチャレンジしようと考えている方々には参考になるのではない
かと思う。 実際には今回紹介した内容以外にも多くのステー トメントやオプションが使用可能であるため、
より効率的な方法もあるかもしれないが、 その点はご容赦いただきたい 。
5. 参考資料
+今野聡
富永 一 宏
高橋伸枝.
ODSRTF と REPORT プロシジャを用いた
一
覧表の出力.
SAS ユ ー ザ ー
総会 2011 論文集
令 SAS 9.4 OutputDelivery System: User's Guide, Fifth Edition
令 Base SAS 9.4 Procedures Guide, Seventh Edition
ODS によるレポ
ー
ー
ト作成 I
令 ODS によるレポ
ー
ト作成 2 (SAS セミナ ー ODS によるレポ ー ト作成コー スドキュメント)
令 Lori S. P釘sons.
(SAS セミナ
ー
令 ODS によるレポ
ト作成コー スドキュメント)
EnhancingRTF Output wi曲RTF Control Words and In-Line Formatting.
SAS G lobal Forum
2007 h鈴o://www2.sas.com/oroceed血es/ぬrum2007/151-2007.odf
6. 付録
I 1111 II 1111111 I II II I I I I I 1111111111111111111111111111111111111111111111 I 11111111/
/章子ストデ ' 11111 II 111 II 11111111
..
・ ・
”
”
• SE =
引et SET_VALUE1:.%str(LS目EAN =
; L日間部 =
; UPP回=
・ ・
”
・ ・
C_SE=
; C L慨R="
Cよ.SM臥肺=
; C_UPPER=
・
・
・
・
・
・
引et SET_V,札U包!:.%str(L釧臥N = 99.999 ;SE = 99.999 ;LOW田正99.999" ; UPPER = 99. 999
・
・
・
・
・
・
C_LS旺刷z 99.999' ; C_SE= 99. 999 :C_LO師団= 99. 999 ;C_UPP田正99. 999 :)
・
'
・
・
・
引et SET_VALUE3:.%str(LSMEAN = 99.999' ; SE = 99.999' ; LOW回= 99. 999· ; UPP回= 99. 999
’
・
・
. C_SE= ー’
; C_L凶ER= J
C_LSM臥N= J
; C_UPPERピ J
data DATA ;
length AGEGRl AGEGR1X TRTP AVISIT TRT_VISIT L舗臥N SE LO慌R UPPER C_LSM臥N C_SE Cム側四C_UPP四$200 :
do AGEGRlN=l to 3 ;
if AGEGR1N=1 then do : AGEGRl=' 12-16 (yearsγ;AGEGRlX=' 12-W 醐 line l 〔years)' ; end ;
j
if A使GR1N=2 then do : AGEGRl=' 17・64 (years)' ; AGEGRlX=' 17-64- ew Iine 1 (years)' ; end ;
・
・
if AGEGR1怯3 then do : AGEGR1= 65- (years)'
; end :
: AGEGRlX= 65--(newline l)(years)'
TRTPN=l ;
TRTP=' Active (N=999)'
・
; TRT_VISITN=TRTP蜘10
; TRT_VISIT=TRTP
:お訂J札UEl;ムINE.JNO=lO : output ;
AVISITN=. ; AVISITゴ
’
・
AVIS1TN=2 ; AVISIT= Visit 2 ;TRT_VISITN=TRTP恥10+AVIS1TN ; TRT_VISIT=AVISIT ; &SET_V,札制E2;ムINE.JNO= 1 : output ;
・
・
;TRT_VISI
TN=TRTP蜘10+AVIS1TN
:
TRT_VISIT=AVISIT;鈴ET_V,札UE2:ムINE_INO=
1 ; output :
AVIS1TN=3 ; AVISIT= Visit 3
AVISIT除4 : AVISITピVisit 4' : TRT_VISITN=TRTP恥10+AVIS1TN : TRT_VISIT=AVISIT:総訂J札目白;_LINE.JND=21 : output :
・
TRT円炉2 :
TRTP= Placebo (除'999γ
・
: TRT_VISITN=TRT附•10
AVISITN=. : AVISITピ
: TRT_VISIT=TRTP
:鈴町J札UEl:ムINE_INO= 0 : output :
・
AVIS汀陣=2 : AVISIT= Visit 2' ; TRT_VISITN=TRTPN*10+AVIS1TN ; TRT_VISIT=AVISIT:総ET_V,札UE3 : _LINE_IND= 1 : output :
’
AVISIT件屯:AVISIT= Visit 3' : TRT_VISITN=TRT附•10+AVIS1TN : TRT_VISIT=AVISIT;俗ET_V,札UE3 : _LINE_INO= 1 ; output ;
・
AVISIT桝;AVISIT= Visit 4' : TRT_VISITN=TRT附10+AV1SITN : TRT_VISIT=AVISIT;鈴ET_V,削E3;ムINE_削除21 ; output ;
end :
run :
/$前処理
/
’
options nodate nonu崎町papersize = A4" orientation = portrait to岡町gin = 3叩bott叩四argin = 3叩lef旬1&rgin = 2.5叩right問rgin= 2.5聞;
・
ds escapechar = 同;
ds path work t田IP Iat (update) sasuser.temp Iat (update) sashe Ip.旬甲hnst (read) ;
/
/牟ユザ定畿ス事イルテ ン ブ レ ト朱使用
/布告イトル ・ フットノ ート の 指 定 (位置、色、フォント、サイズ、テキスト}事/
’
”
titlel '・'S=(just=left background司hite foregrour昨black font=( Courier N脚 , Bpt)]Table 9. 9. 9 Subgroup加alysis,間醐for Percent 偽ange
fr叩Baseline in VAS by Age Group'
I�
。
。
196
”
’-
Set'
titI d S=(just=I eft background=white foreground北lack font=( Gour, er New·. 8pt) J FuI l加alys1s
”
’
footnote! ·"S={just=right background=white foreground=black font=("Gourier New". 8pt) IPage (pageof}
I* RTF出力開始ザ
”
”
ds rtf file = 有効性の解析帳票rtf notoc_data style = Styles.Default :
/本REPORTプロシジヤホ /
’ ’
proc report data = DATA missing split = | spanrows
style(r叩ort) ={just=left bordercolor=black borderstyle=solid borderwidth=lpt
background=white foreground=bI ack frame=hsides ruI e喝=
groups ce11padding=唱ce11spac mg=O}
・
vjust=bott四background=white foreground=bI ack font=( Gourier New·, 8pt) I
style(header) =Iasis司n
vjust=t叩
background=white foreground=bI ack font=('Gourier New·, 8pt) I
styI e(coI umn) =(asis=on
’
style(I ines) =(asis n just=I eft vjust=top
background=white foreground=bI ack font=( Gourier New·. 8pt)
borderbott棚styI e=none}
column AGEGRtN AGEGRlX TRT_VISITN TRT_VISIT LSMEAN SE
(""S={just=center borderbottomwidth=lpt}95% CI"(super[al I" LOWER UPPER)
山
( S=(just=center borderbott叩削dth=lpt}Co叩arison to Placebo" C_LS旧日N C_SE
(""S=(just=center borderbottomwidth=tpt} 95首CJ"{super[al}" Cよ.OWER C_UPPE附)斗INE_IND :
/ order noprint :
define AGEGR!N
define AGEGR!X
/ order style(column)=(just=left eellwidth=t. 6cm} style(header)={just=left} · Age' :
define TRT_VISITN / order noprint :
’
define TRT_VISIT / style(column)={just=left eellwidth=2. 6cm} style(header)=(just=left l Treatment I Visit'
define LSM臥N
/ style(column)={just=center eellwidth=t. 4聞l style Ch回der)=(just=center} ·LS Mean·
define SE
/ style(column)=(just=center eellwidth=l.4cm} style(h回der)=(just=center} ·SE':
define LOWER
/ style(column)={just=center eellwidth=t. 4cm} style(header)=(just=center} ·Lower':
’
define UPPER
/ style(column)={just=center eellwidth=l.4cm} style(he喝der)={just=center} Upper':
’
define C_LSM臥N / style(column)={just=c聞ter eellwidth=l.4cm} style(header)=(just=center} ·LS Mean
define C_SE
/ style(column)=(just=center eellwidth=t.4叩l style(header)=(just=center} ·SE':
’
’
/ style(column)=(just=center eellwidth=t.4叩l styI e(header)=(just=center} Lower ;
define C_LO旺R
’
define C_UPPER
/ style(column)={just=center eellwidth=t. 4叩l sty I e(header)= (』ust=centerI Upper':
define _LINE_IND
/ displ町n叩rint :
co叩ut沼 ーLINE_IND
’
'
’
・
, styI e', 'styI e=[borderbotto酬idth=lpt] )
if _LINE_IND = 10 then call define( AGEGRtX
・
’
’
if よINE_IND = 1 then ca11 define( TRT_VISIT' ’ style', 'style=[rnarginleft=O. 4c叫 )
if _LINE_IND = 21 then do :’
’
,
’
calI define('TRT_VISIT , style ’ ·style=[borderbottomwidth=lpt marginleft=O.4cm] )
・
’
’
N
’
目
. 'styl e J styI e=[borderbottomwidth=lpt] ) •
calI define('LSM臥 . style J styI e=[borderbott回開idth=lpt] ): call define('SE'
’
ca11 define('LOWER' .’style'. ·style=[borderbott町iwidth=lpt]'); calI define(' UPPER J styI e', • style=[borderbott剖nwidth=lpt]') :
’
’
'
'
calI define(' cよSMEAN . style ,’styI e=[borderbott叩iwidth=lpt]'); calI define('C_SE' . ·style'. ·style=[borderbotton醐idth=tpt] ):
’
’
’
’
'
ca11 define('C_LOWER ’ ·styI e'. • styI e=[borderbott叩iwidth=lpt] ); call define( C_UPP回 ,·style', • style=[borderbotto1附idth=lpt] );
end :
endcαmp.
compute after _page_
’
’
I ine [al 95首confidence interval
endcα叩.
run
ods rtf close
?苛林神林幹梓ず」一一ム・」ー-·』
/
/*ユ ー ザー定義ス'イル予ンプレ ート使用枠神神神特輯輔 】..-..................日-·
*
/ ユー ザ ー定議ス'イルテンプレ ートの作成本/
proc template ,
define style RTF_ORIGNAL :
/本ユー ザ ー定義ス世イルテンプレ ートのテンプレ ート名*/
parent = Styles.
Default’,/*継承もとのス聖イルテンプレ ート名*/
’
’
’
style fonts / docfont =(' Gourier New'. 8pt) headingfont' = ( Gourier New', 8pt)
’
’
・
’
·fixedfont =( Gourier New' , 8pt) b唱tchfixedfo旧t =('Courier New' . 8pt)
’
’
’
fixedstrongfont' = ('C?urier New'. 8pt) fixed即1phasisfont' = ( Gourier New'. 8pt)
・
’
’
聞phas, sfont' = ( Courier New·, 8pt) strongfont' = ('Gour, er New'. 8pt)
’
’
・
titI efont' = ('Gourier New'. 8pt) 'titI efont2 =( Gourier New'. 8pt):
’
’
・
’
style color_list / fgA' = black fg州· = black ・fgA2' = black fgBt' = black fg82' = black ’fgA4' = bI ack
’
’
’
’
・
’
・
’
’
。bgA =white bgAt =white bgA2 =white bgA3 =white bg泊4 =white
styI e output fr酬container / borderwidth = 1 bordercolor=black borderstyle=solid frame = hsides rules = group
celI spacing = 0 cellpadd1ng = 0 :
end.
run.
。
=。
Hキ円
/字書イトル ・ フットノ ートの指定{色、 フォント、 サイズはス告イルテンプレ ートで定議)事/
・
title! ・S=(just=I eft}TabI e 9. 9. 9 Subgro叩Analysis, 剛RM for Percent Change fr佃Baseline in VAS by Age Group'
・・
S=(just=left}FulI 加alysis
Set'
title2
”
’
’
footnote! 剛S={just=r ight}Page (pageof}
/本RTF出力開始事/
'’
ods rtf file = "有効性の解析帳票ーSTYLETEMPLATE.rtf notoc_data
styI e = RTF_ORIGN札,/*ユー ザ ー定議ス'イルテンプレ ート指定*/
/• REPORTプロシジャザ
・ ・
proc report data = DATA missing spl1t = | spanrows
/キ コメントアウトされているス空イル属性はス9イル子ンプレ ートで定義*/
style仕叩orり=(just=I eft /*1lorderco I or=red borderstyI e司alid borderwidth=lpt background=white foreground唱lackザ
/市frame=hsides rules=groups cellpadding=O eellspacing=0•/1
style(header) =Iasis司n vjust=bott四/•background=white foreground=bI ack font=(' Gourier New· . 8pt)市II
’
style(colunn) =(asis=on vjust=top ホbackground司hite
/
foreground=black font=( Gourier New', 8pt)ホII
’
竺並区E� 二回E竺旦必竺三!e_ft V出ド旬'e /*�C里!ound=white fore耳round=bI ack font=( Gourier New· , Bp伽/ borderbotto問tyI e=none} :
E童話弐源問鵬天事完玉事宮司軍事陵ii�一帯弓謹襲来愚:ル亨�書長肩帝拳使南沢長 �J量夜基調麗悩
-
197
EMBアルゴリズムを用いたMultiple Impu阻tion 0矢回真城 l ェイツ ー I 浜田知久馬 2 ヘルスケア株式会社開発戦略本部生物統計部 2 東京理科大学工学部情報工学科 Multiple Imputation with the EMB algorithm 2 Shinjo YadaI and Chikuma Hamada 1Biostatistics Department, Development Strategy Division, A2 Healthcare Corporation 2 Depα,rtment ofInformation and Computer Technology, Faculty ofEngineering, Tokyo Universii砂ofScience 要旨 多重補完法のひとつとして, MCMC法に基づく方法が知られている. Honaker 飢d King(2010 )は,新しいアプ ロ ー チとして,EMB(Expectation-Maximization with Boots回 pping)アノレゴリズムによる多重補完法を示した. これは, MCMCi:去に基づく方法において,事後分布からのモンテカルロ標本により欠測値を補完するプロセ スを, ブートストラップ法を用いた EMアルゴリズムによる補完に置き換える方法である. 本稿では, 解析 対象となるデ ー タが全て連続変数である場合に対し,EMBアルゴリズムによる多重補完法を適用し,SASを 用いて実行するための具体的な方法を紹介する. キ ー ワ ー ド:Multiple Imputation, Expectation-Maximization wi白Bootstrapping, MIプロシジャ, %BOOT 1. はじめに 多重補完法(multiple imputation) は,欠測値を,真の値に対する不確実性を反映させた値で置き換える方法 である(Rubin,1987). 多重補完法は,1)欠測値に対してなんらかの方法で生成した値で補完したデー タをM 組用意する (M>I), 2)M 組のデ ー タセットに対し標準的な方法で解析する,3)得られたM組の解析結果を1 つに統合する, という,3つの手順で構成される. MCMC( Markov Chain Monte Carlo)法は, 欠測デー タの事後予測分布から生成した標本を用いて欠測値を補 完する方法である. 観測デ ー タをYobs,欠測デー タをYmis,興味のあるパラメ ー タを 0とし,t番目の反復過 程におけるOの推定値を9(t)と表すとき, MCMC法の具体的な手順は以下のようになる. Impu匂 tion step (以 下 I stepと表記)として,Y山と 9 (1) 所与のもとでのYm1,の条件付分布PCY m1s lY伽,o町から欠測値Y�/,を生成 する. Posterior step (以下P stepと表記)として,Yobsと I stepにおいて生成されたY�/,から 一 時的に構成さ れる完全デ ー タY = (Yobs, Y�l,)に基づき, 事後分布p(0 IY01>s, Y::.>t, )からが附を生成する. このようにして形成 198
されるマルコフ連鎖 (Y�;ょがI う,(Y�� ,0<2>),…が収束するまでI stepとP stepを繰り返し, 反復過程の最後に得 られた標本を用いて欠測値を補完する. 解析対象となるデ ー タが全て連続変数の場合, それらが多変量正規分布に従うと想定し, 興味のある パ ラ メ ー タである平均ベクトル”と分散共分散行列Zに対して適当な事前分布を仮定したもとで,I stepとP step をマルコフ連鎖が収束するまで繰り返すことになる. ただし, 実務上の問題点として, 取り扱う変数の数が 増えるほど”とZの事後分布からのサンプリングが困難になることがあげられる .p 個変数がある場合, μで p個,Zでp(p+l)/2 個の合計p伊丹)/2 の パラメ ー タが存在するため,変数の個数が増えればそれだけ計算負荷 が急速に増大する. Honaker and King (20 I 0)は, この問題を解決するための新しいアプロ ー チとして, 興味ある パ ラメ ー タ 0の 事後分布からのサンプリングを, ブ ー トストラップ法を用いたEMアルゴリズムで置き換えるという方法を 提案した. 以下, Honaker et al. (2011) に従い, これをEMB(expectation-maximizationwith bootstrapping) アル ゴリズムと表記する. EMBアルゴリズムでは, 欠測デ ー タを含むデ ー タ(Yobs, Y mis)からブ ー トストラップ法 を用いて M組のデ ー タを生成し, 生成されたM組のデ ー タごとにEMアルゴリズムによりOを推定し, 推 定されたOと Y曲から欠測値を補完する. Honaker and King (2010)は, この方法の利点として, 扱えるデ ー タ の大きさは解析を行うPCのメモリ ーサイズのみに依存していることを挙げ, 時系列横断デ ー タのような巨 大なデ ー タを扱う社会科学の分野にて適用することを推奨した 本稿では, 解祈対象となるデ ー タが全て連続変数である場合をとりあげ,EMBアルゴリズムによる多重補 完法について示す. そして,SASを用いて行うための方法を, 具体的に説明する. 2. EMBアルゴリズムによる多重補完法とは EMBアルゴリズムによる多重補完法は,補完回数をM(>l )として,以下の 4つのステップから構成される. r 田 Stepl:欠測値を含んだ不完全デ ー タセットグ 伊 から,M組のブ ー トストラップ標本 D/ 中(i = 1,2,.. . ,M)を生 成する. Step2: D,問中(i ; = 1,2,…,M)に対し, EMアルゴリズムを用いて組ごとにμとZを推定する. Step3:組ごとに推定されたμとZを用いて, D;畑中の欠測値を補完したデー タセットD/m阿を生成する. Step4: D/ mp川(i = 1,2,…,M)に対し解析を実行し, これらの解析結果を統合する. EMBアルゴリズムを用いた多重補完法では, まず, 欠測値を含んだ不完全デ ー タセットから, ブ ー トスト ラップ法を用いて,M組のブ ー トストラップ標本を生成する. ブ ー トストラップ法とは, 観測されたデー タ からリサンプリングすることにより生成された擬似的なデ ー タを用いて, パラメ ー タ推定量の統計的誤差や 統計量の分布を推定する方法のことである. n 個のデー タが観測されたとき, 大きさnのブ ー トストラップ 標本とは, (0,1]上で発生させたn個の 一 様乱数 U1,U2,...,U n を用いて, 観測されたデ ー タから, [nui]+1番目, [nu2]+l番目,…,[nun ]+1番目にあたるデ ー タを抽出することで構成される(小西,2008). ここに日はガウス記 号である. 生成されたブ ー トストラップ標本を用いて, 観測されたデー タが従う確率分布に関する パラメ ー タを推定し, ブ ー トストラップ推定値を算出する. ブ ー トストラップ推定値は, リサンプリング回数(ブ ー トストラップ反復回数) をMとするとき, 大きさnのブ ー トストラップ標本をM組生成させ,各ブ ー トスト ラップ標本に基づき, モンテカルロ法によって数値的に近似することができる. 199
リサンプリング回数Mが有限である以上, ブ ートストラップ推定値には数値近似による誤差が含まれる. 釣り合い型ブ ー トストラップは, 数値近似による誤差を抑えるための方法のひとつである. ングを用いたブ トストラップ法に比べ, 同 ー きる u王 ・桜井,2011). 一 一 一 様リサンプリ のリサンプリング回数で推定量の分散を減少させることがで 様リサンプリングでは,n個の観測デー タ Xn )から大きさnのブ ー トストラ (X1,X2,…, ップ標本を生成する作業を, 独立にM回繰り返す. このため, 生成されたMxn個のブ ートストラップ標本 において, 観測デ ー タx,,xz, ...,x.が全てM回ずつ登場するとは限らない. これに対して, 釣り合い型ブ ー ト ストラップ法で、は,M × n個のデー タにおいてX1,Xz, ...,X.がいずれもM回ずつ登場するように,ブー トストラ ップ標本が生成される. Steplでは, 欠測値を含んだn個のデ ータから, リサンプリング回数をMとして大 きさnのブ ー トストラップ標本を生成するのみであり, ブ ートストラップ推定値の算出は不要である. Step2では, Steplで生成されたM組のデ ータセットに対し,EMアルゴリズムを用いて興味のあるパラメ ー タ0の推定値を算出する. EMアルゴリズムは,ExpectationStep( 以下E Stepと表記)とMaximizationStep 、 ( 以下M Stepと表記) の 2つのステップを繰り返すことで,。の最尤推定量を導くためのアルゴ リズムであ る. 具体的には,k回目の反復過程で得られた0の推定値をが防と表すとき,E stepでは, 観測デ ー タYobs と k+l がゆ所与のもとで, 完全デ ー タY= Y ( 蜘,Ym1,)の対数尤度の条件付期待値Q(O O I ( ) )を計算する. 続くMstep 肘I ) を最大化する8=8加。を求める.。(k+l)を更新後のパラメ ータとして, (k+I) では,E stepにて求めたQ(OIO ) 回目のE stepを行う. このようにして,E stepとMstepを反復過程の収東条件が満たされるまで繰り返し, 最後に得られたパラメ ー タ値を,。の最尤推定値とする. 解析対象となるデ ー タが全て連続変数の場合, これらが従う確率密度関数として多変量正規分布を想定す ると, 興味のあるパラメ ータ0は平均ベクトルμと分散共分散行列Zである. 多変量正規分布は指数分布族 であるため,E stepは, 観測デー タが与えられたもとでの十分統計量t(Y)の条件付き期待値E9(k) [t(Y) I y由 ]を 求めるステップと捉えることができる. また,Mstepは, 方程式E8 [t(Y)]=E8向 [t(Y) I v.... Jを最大化するOを 求めるステップとみなすことができる(小西,2008). 欠測値を含む多変量正規確率変数に対するEMアノレゴ リズムの適用例は,渡辺( 2008)に簡潔にまとめられている. Step3では, Step2にて組ごとに推定された平均ベクトル”と分散共分散行列I:の推定値を用いて欠測値を 補完する .p 個の変数からなるn個のデ ー タに対し,i番目のデ ー タ X;i,X,1, …,X;p を成分とする列ベクトルx,(p ,, �[:n:f::J ×1)が欠測に応じて以下のように分解されたとする. (I) ( 1)の欠測パタ ー ンに応じて”とZを I ・11." I I I:.. I:.. 山 I I I:=I 開 μ=| | I: L 10 I:11 L11,J (2) と分解する(渡辺,2008) . Step2にて求められたμとZの推定値匝,Zを 『11111」 nu ・且 ~FM~F- F“ ~ - - 叩 曲 ~ FL-~ FL- 「EEEEEEEEEEL 「111111114 00 ・且 u・ ~ 九同凶 = ( 3) と表すとき, X』にて欠測となっているX1,mlsの補完値主酬 を 200
王刷. = 匝。+主 Oi l:;: (X 抽一 恥)+高 (4) により算出する( i=l,2,…,n). p 個の変数に多変量正規分布を想定し,欠測である変数を目的変数,非欠測の変 、 ‘ 数を説明変数として線型回帰モデ ルをあてはめ,「 予測値」として欠測値を補完する. 線型回帰モデ ルにおい て,誤差項がEいに独立で平均 O,均 一分散をもっ正規分布に従うとき,回帰係数の最尤推定値は,解析対 象となるデ ー タの平均値及び分散・共分散を用いて求めることができる(竹内, 2011 ). この最尤解に Step2 にて求められた ii' I:を与えることで,(4)が導かれる. (4)において,五は根本的な不確実性(ぬndamental uncertainty) である(Honaker and King,20 I 0;高橋・伊藤, 20 日). 例えば,XtではXIIのみが欠測,X2ではX21のみが欠測であり,X1とおでは欠測以外全て同値である 場合,(4)にて高がなければ補完された値九と王21 は確実に同値となる. このように,欠測以外の変数が全て 同 一 であっても欠測である変数の補完値は不確実であることを考慮する必要がある. 本稿では,Step2 にて求 めた分散の推定値と標準正規分布に従う乱数をかけあわせた値を用いることとした. 以下,表lに示した不完全デ ー タを用いて,これら4つのステップについて説明する. 表1のデ ー タは, SAS/STAT(R) 14.1 User ’s Guide, η1e MI Procedure にて用いられているデ ー タセット Fi伯 essl から作成したもの ’ である. デ ー タセット Fitnessl は,SAS/STAT(R) 14.1 User s Guide,百1e REG Procedure の Example 97.2 にある デ ー タセット Fitness をもとに作成されており,格納されている 3 つの変数 Oxygen, RunTime, RunPulse には いずれも欠測値がある. Fitnessl は 31 個のデー タがあったが,ここでは説明を簡単にするため,10 個のデ ー タに絞った. 表 l で 「 NAJ が欠測値を意味する. 表 I : Aerobic Fitness のデ ー タ ID No. 2 3 4 5 6 7 8 9 IO Oxygen 44.609 45.313 54.297 NA 39.442 60.055 50.541 37.388 44.754 51.855 RunTime I 1.37 10.07 8.65 11.95 13.08 8.63 NA 8.63 11.12 10.33 RunPulse 178 185 156 176 174 170 NA 170 176 166 Step !では,欠測値を含んだ 10 個の不完全デ ー タに対し,大きさ 10 のブ ー トストラップ標本をM組生成 する. 生成されたM組のデー タセットには,欠測デ ー タが含まれず補完する必要のない組も考えらえるが, 欠測デ ー タが含まれている組が存在する可能性が高い. Step2 では, Step !で生成されたM組のデ ー タセットに対し,EM アルゴリズムを用いて μ と Z を推定する. 表 l の Aerobic Fitness のデ ー タにある Oxygen, RunTime, RunPulse の 3 変数に対する欠測値の補完を考えて おり,M組のデ ー タセットごとに μ と Z を推定するため,Step2 終了時には,3xl の列ベクトル μ と 3 × 3 の行 �lj Zの推定値がM組算出される. Step3 では,組ごとに Step2 で算出された μ と Z の推定値を用い,組ごとに,欠測値を補完した 10 個のデ ー タセットを生成することになる. 例えば,Step2 で生成されたM組のデ ー タセットのうち,l 組目では,表 2 のように,10 個のデ ー タのうち欠測デ ー タが,2 番目の Oxygen (X1), 5 番目の RunTime 伏})及び RunPulse (お) であったとする. 201
表2:リサンプリングされた Aerobic Fitness のデ ー タ 田 No. 2 3 4 5 6 7 8 9 10 Oxygen 45.313 NA 37.388 45.313 50.541 44.754 45.313 44.609 45.313 54.297 RunTime 10.07 11.95 8.63 10.07 NA 11.12 10.07 11.37 10.07 8.65 RunPulse 185 176 170 185 NA 176 185 178 185 156 1組目のデ ー タに対してEMアルゴリズムを用いて得られたμとZの推定値を σ12 IσII Iµ11 ii=I li2 I, I:= I CT 1 2 CT22 lσ31 σ32 \_µ3) σ13 J U2 3 I σ33) と表す. 2 番目のデ ー タでは欠測は Oxygen(X1 )のみで るため,(3)に従い欠測 パ タ ーンに応じて匝,主を分解 すると 恥=戸I• ii1 = IUl 2 ~ ,主 冊= au, l:01 = 伊12 p・ 3 II II U ~ lσ2l ~ lσ 1 n i:11 = 九], I:10 = 1 l l lσ I I I σ31 I, I I I σ2l 3 I σl I となり,2番目のデー タでの欠測 X2,mis の補完値王z,皿is を F句 ~ + 3 「EEEEEEEEEE」 2 2 ~μ3 5’ 一- rsilli--IL x2x 2 2 「111111」 3 3 2 ~円 ~円 ~円 ~司 3 ~ σ rill-L 2 + LV ~ μ’ = vh. ~ = 問 2 x ~ ρLw ea 印刷 h m R シ」 ρLW 仏 TA ー 崎川 司11111111J A 岬 Aj ~11 JI ( ~ m - AMu J -J ZA J ド 一 ~u・ h H Z drill--L Lh’ か る な と m R ~q ま 「 一 蜘 ~丸 欠 1L ま で ~q タ 一 払 を ァ = 醐 a E 目 ~何 F 回 i J , , Z I 日 比 寸パ-u b元 ~ σ 一 Jl 円 ~ 円補 一 泊付 つL 村山 ーペlリ + 「EEEEEEEEEE」 --」 Ill M ~ nh ~令 制 , M け』 刈 M ~ん ~υ門 で 「 f F A 弘 ~ | 1 L ! ”勺ろ 数を h H 一 :泣一 :ー 一 W ロ5 λ 明 乱~ 為 為 「11111111」 規 上 一~ 「ト寸lL 一 円 ~同 M 「Eli--J い 旬 ロn 初 旺引 ~円 ~司 遡・じ ~円 ~ σタ →日 イ 「 課 応 「」つL一 1bト」 μh ’ 」 ι l d「 引 引 L. ~σ ~σ 7 F F u- 「tlBIBI--L -ジ- ~z 馴 F m ur 』γL - 町 , コ44 - 「11111111」 ~ q ~門 H Uタ 官 一ん ~ん ~円 ~円 印。 、 = f rill -- rill L こ μ 1 5 = ← トw- ~μ 一測 ’1 トド」 1 卜|」 + る b ~ん ~門 H て db d ~ H門 - 欠| - |ドl - 、 向 、 向 、 ~門~向 江 「 l- u- = = HU 『 工 算 り る よ あ に で あ ~ ~ - FEEEEEEEEEE』 により算出する.ここに, Z2, Z3 は独立な標準正規乱数である. このようにして欠測値が補完されたM組のデ ー タセットに対し,個別に解析を実行する. 値と標準誤差を算出し,最終的な解析結果としてそれらをひとつに統合する. 202 パ ラメ ー タ推定
3. SASによる実装例 EMB アルゴリズムによる多重補完法は, 2. に示したとおり, I )欠測値を含む不完全デー タからブ ー トスト ラップ標本をM組生成する,2)M組のブ ー トストラップ標本に対し EM アルゴリズムを用いて”とZの推定 値を求める, 3) II と Z の推定値を用いて欠測値に対する補完を行う, 4 )補完されたデー タセットごとに解析 し得られた推定量を1つに統合する, という4つのステップから構成される. ブ ー トストラップ法に対応しているプロシジャは存在しないが, ブ ー トストラップ法に対応するサンプル マクロ%BOOT が公開されており, SAS Institute Inc. の Technical Support よりダウンロー ドが可能である (http://support.鈎s.com/kb/22/220.h回I). %BOOT を使用するにあたっては, まず, サンプルマクロダウンロー ド先にある%analyze を読みこんでおく必要がある. その上でブ ー トストラップ法を行いたいデー タセット名 をマクロ引数 data =により指定すれば, BOOTDATA という名前でリサンプリングされたデー タセットができ あがる. デフォルトではリサンプリングの回数が 200 であるため, 例えば, リサンプリングを 20 回行ないた い場合には鈎mples = 20 と指定する. %BOOT では, 特に指定しない限り, 釣り合い型ブ ー トストラップ法 を行う(表I). 表 1:%BOOT のマクロ引数 data = 入力デ タセット名を指定. ー samples = リサンプリング回数(ブ ー トストラップ反復回数)を指定. デフォルトは200. random = 擬似乱数を生成するときのシ ー ドを指定. size= ブ ー トストラップ標本の大きさを指定. デフォルトはdata =で指定される入力デー タセットのオプザ ベ ー ション数として処理される. balanced =デフォルトではsize =を指定しない限り l :釣り合い型ブ ー トストラップが適用される. size =を 指定すると0: 一 様リサンプリングが適用される. bi 飴∞汀 = デフォルトは l :ブ ー トストラップ偏り修正済み推定量 alpha = ブー トストラップ信頼区間の信頼係数を指定. デフォルトは0.05 (95% 信頼区間). print = デフォルトは1:ブ ー トストラップ推定値を出力, 出力しない場合にはOと指定. chart = デフォルトは 1 :ブ ー トストラップ分布を出力, 出力しない場合には0 と指定. SAS プログラム l は, %BOOT を用いてブ ー トストラップ法を行うプログラムの 一例である. デー タセッ ト Fitness I に格納されている 3 つの変数 Oxygen, RunTime, RunPulse に対しブ ー トストラップ法を行いたい 場合, %削 alyze の MEANS プロシジャにてこれらの変数をVJ昧ステ ー トメントで指定し, OUTPUT ステ ー トメントで指定する変数もそれにあわせて更新しておく必要がある. Fitnessl には欠測デー タを含めて 31 個 のデー タがある. SAS プログラム I では, %BOOT において sample = 20 と指定し, size = は特に指定してい ないため, デ ー タセット BOOTDATA には, 釣り合い型ブ ー トストラップ法によりリサンプリングされた 31 個のデ ー タが 20 組セットされる. 変数一OBSーは, リサンプリングされたデー タが Fitnessl のどのデ ー タから 得られたものかを表す.例えばーOBS = 24 ならそれは Fitness I の 24 番目のデ ー タに該当することを意味する. _OBSーの頻度集計を行うことで, リサンプリングされた 31 × 20 = 620 個のブ ー トストラップ標本において, Fitness I の 31 個のデ ー タがそれぞれ 20 回ずつ抽出されていることが確認できる. 203
SASプログラム 1 :% BOOTによるブートストラップ法の実行 %maαo analyz咲伽旬 = , out = ); proc m崎釦 s noprint data = &da飽 vardef= n; output out = &叩t(drop =一企eq__type_) var = Oxygen RunTime RunPulse; V釘 OxygenRunTime RunPulse ; %bys訂nt; run; %mend; %boot(data= Fitness1,samples =20 ,random =17 0723,pr泊t = 0,ch紅t =O); EMアルゴリズムによるμとZの推定値の算出には, MIプロシジャを用いる. MIプロシジャは, 欠測値を補完した完全デ ー タを複数組作成するためのプロシジャである. どのような方 法で欠測値を補完するかは, 欠測パタ ーンと補完したいデ ー タのタイプに依存する. 補完したいデ ー タが連 続量で欠測ノミタ ーンが単調で、あれば, 多変量正規性を仮定するパラメトリック回帰, あるいは傾向スコアを 用いたノンパラメトリック法のいずれかが適用される. 補完したいデ ー タが2値で欠測パタ ー ンが単調であ ればロジスティック回帰が適用される. 補完したいデータが連続量で任意の欠測パタ ーンのときには, 多変 量正規性を仮定するMCMC 法が適用される. またVer.93 . から, Fully C onditionalSpecificationによる多重補 2011;多国,2013). これは, 欠測パタ ーンや補完したいデー タのタ 完も実行可能となった(SAS Institute Inc. , イプによらず適用できる. 、 このように, MIプロシジャでは, 様々なアルゴリズムを用いて欠測値を補完することができるが, EMス テ ートメントを用いることにより, 多重補完は行わずEMアルゴリズムによりμとZの推定を行うことも可 能である. そこでこの機能を用いて, EMBアルゴリズムによる多重補完f去を行う際の2つ目のステップ (M 組のブ ートストラップ標本に対しEMアルゴリズムを用いてμとZの推定値を求める)を実装する. SASプログラム2はその 一 例である.MIプロシジャにて,EMステ ートメントにてオプション OUTEM = を 指定することにより, EMアルゴリズムを用いた平均値, 分散, 共分散の推定値を保存することが可能とな る. 前述のとおり, 多重補完なしでEMアルゴリズムを行いたいため, オプション nimpute= 0 と指定した. SASプログラム3.1 で作成されたデー タセットBOOTDATAでは, リサンプリ ングされた31個のデー タが20 組存在している. SASプログラム2では, 20組のデ ータがデータセットBOOTDATAの変数_sample_!こより 識別できることを利用して, 20組のデ ータそれぞれに対しpとZの推定値を算出させている. MIプ口、ンジャ では, ”の初期値として入力デー タセットの変数ごとに算出された平均値を用い, Zの初期値は, 非対角成 分を全てO, 対角成分を入力デー タセットの変数ごとに算出された分散として, E-stepとM-stepの反復計算 が行われる. SASプログラム2:EMアルゴリズムによる推定 %maαu m_miem(inds =,samples =,seed =,outem =,ou伽1i=); da包 m_wkstl ; run; data m_wkst 2; run; %do irep =1 %to &samples. ; data m_wrk; set &血血;if_sample_ = &irep. ;run; 204
proc mi data = m_wrk seed = &seed. nimpute = 0 noprint ; em outem = m outem out = m outmi initial = ac; var Oxygen RunTime RunPulse; run ., da旬m_outem;set m_outem; _sample_ = &irep.; run; data m_outmi;set m outmi; _sample_ = &irep.; run; data m_wkstl ;set m_wkstl m_outem ;if_sampleー/\=.;run; data m_wkst2 ;set m wkst2 m_outmi;if _sampleー/\=.;run; %end; data &outem. ;set m_wkst I ;run; data &outmi.;set m_wkst2 ;run; proc datasets library = work nolist nowarn; delete m outem m outmi m_wrk m_wkst I m_wkst2 ; run;qmt; 一 %mend m miem; %m_miem(inds = BOOTDATA, samples = 20, seed = 170723, outds = outem, outmi = outmi); MIプロシジャのEMステ ー トメントにてオプションOUT=を指定すると,欠測値が補完されたデ ー タセッ トが生成され,EMアルゴリズムに基づき算出された期待値が出力される(SAS Institute Inc., 2015).ただし, これはX1,mlsの補完値主 酬 を 王刷s =戸。+主01主;;(x 抽一 匝1) (5) により算出した場合に相当する. 従って,(4)により欠測値を補完するためには,五を加えるためのSASプロ グラムが別途必要となる. SASプログラム3としてその一 例を示す. SASプログラム3:EMBアルゴリズムによる補完 data m_outmi;set OUTMI;keep _sample_ Oxygen RunTime RunPulse;run; data m_outmi;set m_outmi;by _sample_;iffirst._sample_ = I then rep = 0;rep+ I ;run; data m_ind;set BOOTDATA; keep _sample_ Ml・M3; 紅ray aa Ml・M3;釘my bb Oxygen RunTime RunPulse; do over銅;ifbb = . then aa = 0;else ifbb匂. then aa = I ;end; run; data m_ind;set m_ind;by _sample_;iffirst._sample一= I then rep = 0;rep+ I ;run; data m_var;set OUTEM ;if_TYPE一=”COY ” ;run; data m_var;set m_v紅; keep _sample_ v紅no var; if_NAME_=” Oxygen ” 血en do;vぽno = I ;var = Oxygen;end; else if_NAME_=” RunTime ” then do;varno = 2 ;var = RunTime;end; 205
else if_NAME_= ” RunPulse” 血en do;v叩10 = 3;v:ぽ = RunPulse;end; run; proc transpose data = m_var out = m_v紅 prefix = var;var v釘;by _sample_ ;run; daぬm_ind; merge m_ind m_var(drop =_NAME_); by _sample_;run; da包m outr凶; merge m_ou凶i m_ind; by _sample_ rep; array aa Oxygen RunTime RunPulse; 釘ray bb !_Oxygen I_RunTime I_RunPulse; 町ay cc MI・M3; 紅ray dd varl・var3; do over鈍;ifcc = 1血en bb = aa;else ifcc = 0也en bb = 鈎+ sqrt(dd)*rand(’ normal'’ ) ; end; run; data outemb; set m_outrm ; keep _sample_ I_Oxygen I_RunT加e I_RunPulse; run; SASプログラム2まで実行した時点、で, 既にデ ー タセットOUTMIに欠測値に対し (5)により補完された値 が代入されている. このため, あとはデ ー タセットOUTEMに保存されている主と標準正規乱数からミを算 出し, デ ー タセットOUTMIに出力されている補完値に加えればよい. SASプログラム3では, デ ー タセッ トBOOTDATAから, 欠損tlならO, 非欠測なら lをとる欠測識別変数をもたせたデ ー タセットM刑Dを用意 し, この処理を行っている. 補完されたデ ー タセットごとに解析し得られた解析結果を1つに統合するステップは, SASプログラム4 のとおり,UNIVARIATEプロシジャと阻ANALYZEプロシジャを使って簡単に実行できる(SAS Ins蜘te Inc., 2015;石田 ・ 斉藤, 2014). SASプログラム4:パラメ ー タ推定値の出力 proc univariate da句 = OUTEMB noprint; var I_Oxygen I_RunTime I_RunPulse; output out = out mean = Ox鴻m RunTime RunPulse std即 = SOx沼en SRunTime SRunPulse; by _sample_; run; proc mianalyze data = out edf= 30 ; modele能cts Ox沼田RunTime RunPulse; 剣町SOxygen SRunTime SRunPulse; run; 206
4. おわりに EMB アルゴリズムによる多重補完法を把握し, 4 つのステップに分割した. 分割したステップに対応する プロシジャあるいは SAS マクロを探し, SAS プログラム上でどのような処理をしているかを確認した. その 上で, 対応するプロシジャあるいは SAS マクロと分割したステップとを比較し, 対応するプロシジャで必要 なオプションを指定, 足りない部分を実行するためのプログラムを用意した. 以上により, %BOOT, MI プ ロシジャ, DATA ステップによる加工プログラムを連動させることで, EMB アルゴリズムによる欠測値補完 の実装が可能となった. 代替案として SAS と R とを連動させる方法がある. R は, フリ ー で配布されている統計分析ソフトウェア であり, Ameliall パッケ ー ジを用いて, EMB アルゴリズムによる多重補完法を行うことができる. そこで, SAS で用意した欠測値を含むデ ー タセットを R にわたし, R に EMB アルゴリズムによる欠測値補完を行わ せ, 欠測値が補完されたデ ー タセットを SAS に返し, SAS を用いて解析結果を統合することが考えられる. SAS 上で R を動かして解析結果を得る方法については, 船尾(2009 )が詳しく紹介している. 本稿では, 多重補完法のひとつとして, EMB アルゴリズムによる多重補完法をとりあげた. この方法は, 既存のプロシジャでは実行できない. しかし, 対応するプロシジャがなくとも, SAS Institute Inc.より公開さ れている SAS マクロや関連するプロシジャを連動させることにより, 簡単に実装することができた. 参考文献 [I] Rubin, D. B. (1987). Multiple Imputation/or Nonresponse in Surveys. New York: John Wiley & Sons. [2] Honaker, J., King, G. (2010). What to do About Missing Values in Time Series Cross-Section Data. American Journal ofPolitical Science. 54: 561-581. [3] Honaker, J., King, G., and Blackwell, M. (2011). Amelia II: A Program for Missing Data. Journal of Statistical Softれも1are. 45:1-47. [4]小西貞則,越智義道,大森裕治(2008 ). 計算統計学の方法 ー ブ ー トストラップ・ EM アルゴリズム・ MCMC. 朝倉書店. [5]11:金芳,桜井裕仁(2011 ). ブ ー トストラップ入門共立出版 [6]渡辺美智子(2008). EM アルゴリズム. 21 世紀の統計科学. 日本統計学会 HP 版. h抗p://park.itc.u-tokyo.ac.jp/atstat/jss75shunen/Vol3.pdf (関覧日: 201 7 年 4 月 21 日). [7 ]竹内啓(監修),市川伸 一,大橋靖雄,岸本淳司,浜田知久馬,下川元継,田中佐智子(著) (2011 ). SAS によ るデ ー タ解析入門第3版. 東京大学出版会 [8]高橋将宜,伊藤孝之(2013 ). 経済調査における売上高の欠測値補定方法について~多重代入法による精度 の評価.~統計研究葉報 70(2):19 86. 、 [9 ]高橋将宜,伊藤孝之(2014). 様々な多重代入法アルゴ リズムの比較~大規模経済系デ ー タを用いた分析~. 統計研究集報 71(3):39-82. [IO]SAS Institute Inc. (2015). SASISTAT(R) 14.1 User's Guide, Car弘 NC, USA: SAS Institute Inc. [ll]SAS Institute Inc. (2011). SASISTAT(R) 9.3 User's Guide, Cary, NC, USA: SAS Institute Inc. 207
[12]多田圭佑(2013). MI Procedureによる多重代入SASver 9.3における新機能の紹介.SASユ ー ザー 総会論 文集,23・44. [13]石田和也,斉藤和弘(2014). PROC阻ANALYZEを用いた、 多重代入法による結果の統合.SASユ ー ザ ー 総 会論文集,627”640. [14]舟尾暢男(2009). SASでベイズ推定を行う方法-proc MCMC vs R&WinBUGSヘSASユ ー ザ ー 総会 論文集, 95-114. 連絡先 E-mail: yada-s@a2healthcare.com 208
Proc LuaによるSASマクロに依存しないプログラミングの提案 森岡 裕 イ ー ピ ー エス株式会社 Proc Lua Supersedes SAS Macro Yutaka Morioka Statistics Analysis Departmentl, EPS Corporation 要旨 SAS9.4M3より追加されたProc Luaは、 SASの中でLua言語のコ ー ドを実行することが可能なプロシジャである。 Lua言語は、 他言語に組み込まれることを前提として設計されて いるスクリプト言語であり、 簡素な記述に柔軟な 機能、 高速な処理を特徴として いる。 本稿では、ProcLuaの基本的な説明を行う。 そして、 従来SASマクロやcall executeで行って いた処理につ いて Proc Luaで実装することを提案する。 SASマクロやcall execute の利用を必要最小限に限定することでコ ー ドの 記述が簡潔かっ管理しやす いものとなり、他言語のプログラマや初心者にも理解しやす いプログラムが実現できる。 l. 具体的な使用例と既存機能との比較 ProcLuaにつ いて本稿では詳細の前に、 具体的な使用例から説明する。 [例 1]デ ー タセットの存在による処理の分岐 /*CODE 1 */ %macro test; %if %sysfunc(exist(TEST)) eq 1 %then %do; %put NOTE:WORK.TESTは既に存在します; %end; %else %do; %put NOTE: WORK.TESTを作成します; data TEST; set sashelp.CLASS; run, %end; %mend test; %test /*CODE 2り proc Lua; submit; if sas.exists( ” TEST'’) then print( ” NOTE: WORK.TESTは既に存在します ”) else print( ” NOTE: WORK.TESTを作成します ”) sas.submit([[data TEST; set sashelp.CLASS ; run;]]) end endsubmit; quit; %test 指定した名前のデ ー タセットが存在するかをチェックし、 存在しな い場合のみデ ー タセットを作成するための SASコ ー ドを実行すると い う処理について、 SASマクロで記述したのがCODE1、Proc Luaで記述したのがC0DE2と なる。 この例の場合、CODEl、C0DE2共に実行した い処理の記述部分は「data TEST;set sashelp.CLASS;run;Jで あり、 それ以外は全て制御のためのコ ー ドとなる。 SASマクロで記述したCODEl の場合、制御部分 (マクロ部分)は拡が接頭についた拓if、%elseなどを用い通常コ ー ド部分と区別する。 また、 いったん百macro test ~%mendの部分でマクロを作成した後、世testで実行する必要 1 209
がある。 例え、 汎用的に使いまわす必要がない 一 回きりの処理であっても、 一度 SAS マクロを作成してからそれを 実行する必要がある。 それは SAS マクロのデメリットのひとつといえる。 対して C0DE2 の場合、 SAS の実行 コ ー ドは sas. submit という命令文の括弧の中に記述することで制御文と区別 される。 Lua でも汎用的な処理を関数化して使いまわすことができるが、 そうでない場合は敢えて関数を定義して から実行するというステップを踏む必要がないため、 コー ドが簡素になる。 【例 2]文字型デ ー タのル ー プ /*CODE 3り %let DS1 = CLASS; %let DS2 = FISH; %let DS3 = IRIS; /*CODE4*/ proc lua; submit; local t = {'’CLASSヘ ”FISH", ’'IRIS”} %macro test; %do i = 1 %to 3; proc print data= SASHELP.&&DS&i noobs; run, %end; %mend; forkeぁvalue in p幻rs(t) do sas.submit[[proc print data = SASHELP.@value@ noobs; run, end endsubmit; quit; %test; 「 ]] CLASSJ 、 「 FISH」、 「 IRIS 」 という文字列を順番に処理部に渡すというルー プ処理について、 SAS マクロは文字列 をそのままル ー プ値に指定できないため、 工夫が必要になる。 Proc Lua では、 一 時的にテ を格納し、 テ ー ブノレの値を順に取り出して処理部に渡すことで実現ができる。 【例3]デ ー ー ブルを作って文字列 タセットの内容から実行 コー ドを生成する /*CODE6*/ proc lua; submit; sas.submit_([[proc print data= SASHELP.CLASS; var]]) local dsid = sas.open(”DS_l") while sas.next(dsid) do sas.submit_( sas.get_value(dsid ,”ITEM”)) end sas.close(dsid) sas.submit([[;run;]]) endsubmit; run, /*CODE 5り data NULL ; set DS 1 end=eof. if N =1 then call execute(”proc print data= SASHELP.CLASS; var”); else do; call execute(ITEM I I ””); end; if eof then call execute( ”加n;”); run, デ ー タセットが存在し、そこに格納されているデ ー タから コー ドを生成して実行する場合、既存の方法では C0DE5 のように call execute を利用していたが、 同様の機能を C0DE6 のように Proc Lua でも実現可能となった。 SAS では文字列はシングルまたはダブルの コ テ ション、 「 J か 「 J で括って表現される。 call execute ー で実行したい コ ー ド自体に コ ー テ ー ’ ー ” ションが含まれている場合などがあり、 SAS マクロはシングルコ の中では展開されないという仕様も加わり、 文字列生成部分のクオ ー ー テ ー ション ト処理が複雑になりがちである。 Proc Lua の場合は SAS マクロのような独特な規則がないため、 特に意識せずに コ ティングが可能となる。 ー 2 210
[例4] SASマクロの仕様に依存したコ ー ディング /*CODE 7匂 %macro test; %let mvar=O; %let mvar = A %自 val(&mvar + 10); %if &mvar ne %then %do; %let mvar=%sysfunc(reverse(&mvar)); %put mvar= &mvar; %end; %mend; /*CODE 8 */ proc lua; submit; local lvar=O lvar = lvar+10 if lvar ~=”” then lvar =string. reverse(lvar) end printOvar) endsubmit; quit; %test SASマクロはテキスト展開の機能であるため、 特別な規員I]が多く存在する。 例えば、 マクロ変数を整数値として 計算する場合には%eval関数が必要であり、特殊な文字のクオ ートには%strをはじめとした専用関数が必要である。 またSASマクロステートメントの中でSAS関数を使用する場合は%sysfunc関数が必要となる。 SASマクロを使ったプログラミングを行う場合は、 常にそういった点に注意せねばならず、 初心者にとっては大き なハ ー ドルとなる。 一方Lua言語にはそれほど特殊な規則がないため、 処理をより自然に記述することができる 2. Proc Lua及びLua言語の文法 2-1. コー ドと コ メントの記述 ProcLuaは基本的にC0DE9のようにproc lua; ~ quit;の間に記述する。 submit; ~ endsubmit;の聞にLua言語でコ ー ディングする。 ただし外部ファイルとして既に存在するLua言語のフ ァイルを読み込んで実行する場合は不要で、ある。 /*CODE 9 */ proc lua <オプ 、ンョン〉; submit; 一Lua言語による記述 ー endsubmit; quit; /*CODE 10り proc lua ; submit; --1 ffコメント --[[複数行 ー コメント]] print(“Hello World”) endsubmit; quit; CODElOはコメントのつけ方の説明と、 「 Hello WorldJとログウインドウに出力するコ ー ドとなる。 Luaではステ トメント区切りは改行になるため、 末尾に ー 「 『 ; Jは必要ないが、 つけることで明示的に区切ることができ、 マル ” 」または「Jで括って指定する。 また「[[」で括ると改行やエス チステ トメントも可能となる。 文字列は「 ー ケ ー プ文字「/で改行などjを含む文字列もそのままの形で格納できる。 submit; ~ endsubmit;の聞にはLua言語の規則に反するものは記述できないため、 通常のSASコメントステー トメント「戸川などを入れるとエラ ーになるため注意が必要である。 PrintはLuaの標準関数で、 指定した引数 のものを出力する。Lua言語にはいくつかの基本的な関数が用意されていて、ProcLuaでも利用できる。 ただし、 必要最低限なもので、 それほど数は多くなく、 ProcLuaでは利用できないライブラリもある。 必要に応じて自作するか、 ユー ザーで公開されているものを取得して、 読み込んで利用する、 或いはProcLua の場合、 r sas.関数名O」という記述で 一 部のSAS関数をそのまま利用できるので先にそちらを試すとよい。 3 211
2 2.変数のスコ ー プ Lua の変数は、ロ ー カル変数とグロ ー パル変数に分けられる。何も指定せずに値を代入すると、自動的にグロ ー パル変数となる。 変数の前に local とつけるとロ ー カル変数になる。 ロ ー カル変数は宣言されたブロックの中での み参照可能であり、グロ ー パル変数はどこからでも参照可能である。 CODEll の結果のログウインドウを見てみると、 最初の proc lua で·[NOTE:Lua initialized .]とメッセ ー ジがで ている。 これはLua の環境が新規に立ち上がったということを示す。一旦 procLua を quit で終了して、次に proc Lua を実行するときもその環境は引き継がれ、グロ ー パ/レ変数の値は保持されている。 ログに rNOTE:Resuming Lua state from previous PROCLUA invocation. 」というメッセ ー ジからもそのことが確認できる。 二番目の出力でグロ ー バル変数 x のみ 「 lJ と出力され y、 z については rnilJ と出カされている。出Iは変数が 未定義や欠損であることを示し、SAS の null と類似している。もし既に定義済みの変数を削除したい場合は「 x=n山 と凶l を代入すればよい。 /*CODE 11 */ options nosource; proc lua; submit; x = l ー グロ ー パル変数 local y = 2 local z = x + y print(x,y,z) endsubmit; quit; proc lua; submit; print(x,y,z) endsubmit; quit; options source; /申CODE 11申/ ロptions nosource; NOTE: Lua initialized. 2 3 11 NOTE: PR日CEDURE LUA処理(合計処理時間) 処理時間 CPU時間 秒 0.87 0.01 秒 [NOTE: Resl』ming Lua state from previous PR日C LUA invocation. 11 ni I ni I 同TE: PR日CEDURE LUA処理(合計処理時間): 処理時間 CPU時間 0.00 秒 0.00 秒 2-3.Lua 環境の初期化 /*CODE 12 */ proc luarestart ; submit; ー-XXX}江 endsubmit; quit; /*CODE 13 */ proc luaterminate ; submit; ー·XXXXX endsubmit; quit; C0DE12、 C0DE13 は共にLua 環境のリセットの方法を示している。 restart は proc lua の実行開始前に環境 を自動的にリセットし、 terminate は実行中については既存の環境を適用し、実行終了後に自動的にリセットを行 フ。 2-4.Lua の演算子 Lua における演算子について以下に示す。 4 212
算術演算子 比較演算子 + 加算 く 減算 〉 超 積算 く= 以上 除算 〉= * / ,、 累乗 % |仁ヨ and I or 以下 等しい ” 剰余 I I 未満 等しくない SASでは、割り当てステ ー トメントも、ifX=Ythen といった値の比較演算も閉じ 「 =」 を使用するが、 Luaで は比較演算子の等価は 「 ==」となっている点、不等はfA=jではなく「~=Jである点、及びSASでの文字連結「|| 」 が 「 ..」 となっている点についてSASプログラマは特に間違えやすいので注意が必要である。 2-5.Luaの変数型 I t*CODE 14 / 合 Luaの基本変数型 proc lua; submit; local x=”A” print(type(x)) Numbers Strings Boolean local x =1 print(type(x)) Tables Functions local x=” 1 ” local y=x + 1 print(type(y).. ” : ”.. y) nil values Userdata endsubmit; qu it; Luaは動的型付け言語であり、変数の型は格納されている値によって決定される。 れた後、type関数で型をチェックするコ ー CODE14は変数xに値を入 ドとなる。 xの値によって型が変わっていることが確認できる。 ” また、文字値 1勺こ+1した場合に結果が2 となっている。 これはSASの暗黙の型変換に似た機能で、数字とみな 、 せる場合は文字値であっても数値で処理される。 なお ” A ”+1などとした場合は、エ ラ ーとなる。 SASプログラマにとって注意が必要なのは、 Boolean、つまり真偽値型についてである。 Falseで定義されている。 SASの場合、数値の0と「 nullJを Boolean型はτ'rueと 偽 J、それ以外の数値を「真j とみなした処理が 「 記述できるが、Luaにおいては 「偽 Jは BooleanにおけるfFalse」と r nil」のみであり、Booleanにおける 「 τ旨ue」 と 「 凶l」 以外のあらゆる値が「真 J となる。 つまり、「 OJ も Luaでは真とみなされるため、注意が必要である。 2-6.多重代入・ スワップ /*CODE 15り proc lua ; submit; locala,b, c = 1,2, 3 locala,b =b,a endsubmit; qmt; LuaではSASの割り当てステ ー トメントと異なり、CODE15のような多重代入 や変数の値入れ替え(スワップ)を書く ことができる 5 213
2-7.Lua の制御コ ー ド
Lua における条件分岐とル ー プ処理について CODE16、 CODE17 に例示する。
SAS プログラマが間違えやすいのは、 前述の比較演算子「=J を「=J としてしまうケ ー スと if に必ず end が
必要になる点である。 また UNTIL 型の条件を書く箇所が下部にくることも SAS と異なるため間違いやすい。
/*CODE 16り
proc lua;
submit;
local i; local x=l;
.-条件分岐
ifx = 1 then
print(’マES”)
end
ール ー プ(単純ル ー プ)
for i = 1, 3, 1 do
print( ” FOR Loop”..i)
end
endsubmit;
quit;
/*CODE 17り
proc lua;
submit;
local i
日ル ー プ( WHILE 型)
i= 1
while i <= 3 do
print( ”WHILE Loop” ”。
i=i+1
end
ール ー プ(UNTIL 型)
i=1
repeat
print( ”UNTIL Loop’'..i)
i=i+1
until ( i > 3 )
endsubmit;
q凶.t;
2-10.Lua のテ ー ブル
Lua のデ ー タ構造は、唯 一「テー プルJ でのみ表現される。テー ブルは配列と連想配列の両方の性質を持つ。 SAS
プログラマの感覚では、array 配列とハッシュオブジェクトの両方の使い方ができる構造と捉えるとわかりやすい。
/*CODE 18り
proc lua;
submit;
/*CODE 19*/
proc lua;
submit;
local .tablel= {1,"A'” ,2,'’B’}
local .tablel = {a=l,b=”A” ,c=2,d=” B”}
一要素番号(キ ー )で取得
print(tablel [1])
print(table1 [2])
print(tablel (3))
print(table1 [4))
ーイテレ ー タ関数で順番に取得
ーキ ー で取得
print(.tablel.a)
p血t(tablel.b)
p討nt(.tablel.c)
print(.tablel.d)
一イテレ ー タ関数で順番に取得
for i, var泊ip泊rs(tablel) do
print(i,var)
end
for key, var in pairs(tablel) do
print(keぁvar)
end
endsubmit;
quit;
endsubmit;
quit;
CODE18 はテー ブルを配列のように使用している例である。 テー ブル名={値 1 ,値 2, … }で作成する。 Lua のテー
ブルは、 数値や文字型、 或いはテー ブルや関数型など、 国I 以外のあらゆる型を値として格納することができる。
SAS の array 配列が格納順に 1,2,3 … と要素番号を持つように、 CODE18 のように値を格納した場合、 1 からの
連番が自動的にキ ー となる。 Tablel.[1 ]と指定すると 1 をキ ー とする値 1 を指定したこととなる。
また数値のキ ー の場合 ipars 関数という特殊な関数(イテレ ー タ関数)を使ってル ー プを記述することでテー ブル
6
214
内の
値を順番に取得することができる。
?
CODE19はテ ーブルをハッシュオブ ジェクトのように使用している 例である。
‘
テ ー プ ル名={キ ー 1=値 1, キ ー 2=値 2,…}で作成する。 Tablel.aとすると aをキ ーとしてもつ値を取得することに
なる。 文字を含むキ ーの場合、 pairs関数でテ ーブル内のデ ー タを順次取得できる。
2-8.Lua の関数
Luaにおけるユ ー ザ ー定義関数はfunction~ end で定義する。 括弧内に引数を定義し、 return で戻り値を定義
する。 戻り値を持たない関数や、 関数を戻り値とする関数も定義可能である。 CODE20では s戸1taxl,2として 2
種類の書き方を行っているが意味は同じとなる。
CODE21のように複数の戻り値を設定することも可能である。
/*CODE 20り
proc lua;
submit;
/*CODE 21*/
proc lua;
submit;
··syntax!
local function add(a,b)
return a+b
end
print(add(2,l))
local function three(a)
local rl= a"2
local r2= a"3
local r3= a"4
return rl,r2,r3
end
··syntax2
local subtract =function(a,b)
return a·b
end
print(subtract (1,2))
endsubmit;
qmt;
outl,out2,out3= three(2)
p凶nt(outl,out2,out3)
endsubmit;
qmt;
Luaには標準ライブラリとして、 基本的な関数群が用意されている。 前述のprint関数や type関数等は基本ラ
イブラリに属する関数である。 他に「 ライブラリ.関数名Jのル ー ルで使用できる関数があり、 数学関連のmath
ライブラリ、 文字列操作のstringライブラリ、 テ ーブル操作のtable ライブラリなどがある。 CODE22ではその
一部の
使用例を示した。詳細は Luaのリファレンスを参照していただきたい。ただし明文化されていないが、Proc
Luaでは非対応のライブラリや関数も多し、(例:OSライブラリなど )。
またProcLuaには SAS ライブラリが実装されており、 基本的に「SAS.SAS関数名Jの既述で、 SAS関数を用
いることができる。 CODE23はその例になる。 ただし、 同じく明文化されてはいないが、 ProcLuaでは非対応ま
たは記述が通常のSASコ ー ドと異なる関数もある。
/*CODE 22り
proc lua ;
submit;
x= math.min(2,5,3,1)
print(x) ··1が出力される
y=string.reverse(”ABC’’)
print(y) 一CBAが出力される
z={5,3,1,2}
table.sort(z)
print(table.unpack(z))
··l 2 3 5が出力される
endsub;
qmt;
/*CODE 23り
proc lua ;
submit;
x= sas.mean(2,5,3,2)
print(x)
··3が出力される
y=sas.substr(”ABCDE'’ ,2,3)
print(y)
··BCDが出力される
endsubmit;
quit;
7
215
2-9.クロージャ /*CODE 24*/ %let total=O; /*CODE 25り /ま 関数定義部分*/ proc lua; submit; function L(ds) local nobs= 0 return function(ds) local dsid = sas.open(ds) nobs = nobs+sas.nobs(dsid) sas.close(dsid) return nobs end end endsubmit; quit; %macro cum(plus); %let total= %eval(&total + &plus); %put合計= &total; %mend; %cum(!) %cum(2) %cum(3) /合実行部分*/ proc lua; submit; Ll=LO ” ” print (合計= ,LI(” sashelp.class”)) ” ” print (合計= ,Ll(” sashelp.iris")) ” ” print (合計= ,LI(” sashelp.cars”)) endsubmit; quit; SASマク ロ に存在しない概念として、ク ロー ジャ があげられる。 SASの場合、 マク ロ 変数はグ ロー バル変数と ロー カル変数に分類されるが、ロー カル変数は マク ロ 実行時のみ保持され、そのマク ロ 内でのみ保持参照されるが、 、 実行が終わっ た 時点で消滅する。 そのため、 マク ロの実行をまたいで値を 保持するため に は、グ ロー パルマク ロ 変 、 数を使わざるを得ない 。しかしグ ロー パノレマク ロ 変数はどこからでも変更可能な ため、仕様上は予期せぬ干渉を防 ぐこと ができなくな っている。 例として CODE24は、 デー タセットを与えることで、 そのデー タセットのobs数 を累積カウントしていくマク ロであるが、 マク ロ 変数 tobs をグ ロー パルマク ロ 変数とすることで処理 が成立して し、る。 これ に対して、あるスコ ー プの中でしか 参照されずに、保持され続ける性質をもっているのがク ロー ジャである。 CODE25はLuaのク ロー ジャの例 になる。こ こで は local nobs=Oとしているが、このnobs は釦nctionLの中で、 実行時のみ存在、 保持されるイメ ー ジとなり、呼び出されるたびに加算されていく 。 そのため、関数が呼び出され ている箇所以外で print(nobs)としても結果は nil となり、 存在しない こと が確認できる。 Ll=LOのように関数を 変数に代入しているが、 例えばL2=L0として、L2 を使えばLlと平行して別カウントをすることも可能である。 このようにク ロー ジャ を使うことで名前の衝突を回避し、 より簡易に処理の構造化が行える。 3. Proc LuaでSASコ ー ドを実行する 3-1. sas. submit Proc Lua で SAS コ ー ドを 実行する場合、 sas.submit を利用する。 次頁のCODE26·CODE29 は全て「data OUTI;x=l;run;」とし、うSASコ ー ドをProcLuaの中で 実行するコ ー ドである。 CODE26のように引数に直接コ ー ドを既述しでもよいし、CODE27のようにLuaの変数に格納して引き渡しで もよい 。 実行コ ー ドに可変パラメ ー タ部分を作り、 実行時 に与えて実行する場合、CODE28、CODE29のように コ ー ド 8 216
中に@@でパラメー タ部分を括る。 CODE28 のように予め Lua の変数として定義するか、 或いは CODE29 のよう
に sas.submit 関数の第 2 引数で{パラメー タ変数=値,…}として実行する。
/*CODE 27り
proc lua;
submit;
code=[[data OUTl;
x=l;
run;]]
sas.submit(code)
endsubmit;
quit;
/*CODE 26り
proc lua;
submit;
sas.submit([[data OUT!;
x=l;
run;]])
endsubmit;
quit;
/*CODE 28り
proc lua;
submit;
local ds=”OUT ! ”
local var=”X”
sas.submit(
[[data @ds@;
@v訂@=1;
run;]])
endsubmit;
quit;
/*CODE 29り
proc lua;
submit;
code=[[data @ds@;
@var@=l;
run;]]
sa 自 .submit(code,
{ds=”OUT ! ”,var="x"})
endsubmit;
qmt;
3-2.SAS.submit
sas.submit は与えられた コー ドを即時実行し、 仮に実行 コー ドに run ステ ー トメントや quit ステー トメントが
存在しなかったとしても実行が完了状態になる。 それに対して sas.submit_(末尾にアンダー ス コ アがつく)は与え
られた コー ドを即時に実行せず、 sas.submit が実行されるまで保留させることができる。
これを用いれば CODE30 のように、 実行 コー ドを分解して実行し、 途中で動的に コー ドを生成するといった処
理を行うことができる。
/*CODE 30り
proc lua;
submit;
sas.submit_([[data OUT2;]])
for i = 1,5 do
sas.submit_([[x喝val@;output;]], {val=i})
end
sas.submit([[run;]])
endsubmit;
quit;
ata
= 1;output;
=2;output;
=3;output;
=4;output;
=5;output;
run;
3-3. マ クロ変数の取り扱い
SASでは、 グロー パルマクロ変数が定義されている場合、
コー
ド中のアンパサンド(&)のつく変数名は、 プログ
ラム実行時に展開される。
しかし、 ProcLua 内においては、 このマクロ変数の展開が起きないようになっている。 CODE31 を実行すると
「&mlJ は「AAJ に展開されず、 そのまま「&ml 」と出力される。
Peoc Lua 内にマクロ変数に格納されている値を持ち込むには以下の 2 つの方法がある。
/*CODE 31*/
%let ml =AA;
/*CODE 32*/
%let ml=AA;
/*CODE 33*/
%let ml=AA;
proc lua ;
submit;
print (”&ml”)
proc lua ;
submit ,
print(sas.symget (”ml”))
proc lua ;
submit”ml=’&ml "';
print(ml)
--AA と出力される
・・&ml と出力される
endsubmit;
quit;
一
--AA と出力される
endsubmit;
quit;
endsubmit;
quit;
/*CODE 34*/
proc lua ;
submit;
local x=l;
sas.symput (” m2",x)
endsubmit;
quit;
%put&m2;
/*1 と出力されるり
つ目は、 sas.symget 関数を使用する方法(CODE32 参照)、 もう一 つは submit ステー トメントに”Lua の変数名
9
217
=’ &マク ロ変数 ’ ”を加える方法(CODE33参照)となる。ただし submitを使用する場合、作成される Luaの変数は 必ずグ ロー パル変数になってしまうため、 ロー カル変数で持ち込みたい場合は local宣言した変数に sas.symget で値を代入する必要がある。 ProcLua内でマク ロ 変数を作成する場合については、sas.symput関数を利用する(CODE34参照)。 3-4.データセットから値を読み込む 「1. 具体的な使用例と既存機能との比較]の「[例3]デー タセットの内容から実行コ ー ドを生成する」でも例示 したが、ProcLua内でSASデー タセットから値を取得することができる。 /*CODE 35り proc lua; submit; local dsid = sas.open(” sashelp.class”) sas.where(dsid,'’age<= l3 ” ) while sas.next(dsid) do print(sas.get value(dsid,'’name”) , ass.get_value(dsid,'’age”)) end sas.close(dsid) endsubmit; quit; 3 アりス 3 旧 f』パラ ー 12 ジェ ムズ ー 2 γェ ノ ー 3 ジェフ 12 ジョン 11 ジョイス 12 ルイ』ズ 口J f』卜 12 11 υ f三空2 CODE35のように、sas.openでデー タセットを指定し、そのデー タセットを認識するためのID値を設定する。 その後、sas.whereで抽出条件を設定し、sas.nextで順次オプザベ ー ションを移動し、get_value関数に変数名を 刷 司 Height 身長(インチ) 白 Name 名前 12 Sex 性g1J 4 Age 年齢 目 /*CODE 6 3 */ proc lua; submit; local dsid = sas.open(” sashelp.class”) for var in sas.vars(dsid) do print(” 変数名: ” ,var.name) print(” ラベルペvar.label) print(”Length: ” ,var.length) end sas.close(dsid) endsubmit; quit; - - ou = トr 白 m B B E 2 8 S = H E 8 C 0 5 0 M - -z B D M Z B E - - o ; o R ; c o 古OHUB - o n o- O ] n 司 〆 l , , ァ i n υ ‘ 目 = Mw e - w 也 図 = M = MM 4 4 8 - 、 u- -= B M4 P ロ ]1 = m- l n h 2 :U 0 ]M = e I Ht h M手 ヨ 3 - n e M 3 H t 1 - - a a l g u S E J i s ト - - -占 1 1n cm h MM N e - - d eH ] Nu ha A c d = = C Y C e a - - t t el i= - - a - - t ta S= I E - - n v n υ ε d n u V E l a e - - 1 」 , ”W o a - - J w O u h u c = 」J 1 o a = uw J ロ w m C B I O U - b t eM I M i - - t - -a e - u i m - - t - h H 4 O = 1 = 1 a= l wm a r u t t t t d u l w r a t - 閣t t A 2 g N e e - = g m m m o - e e E Jd 司 m t e o - =』= 』 可 ・u 司 =」 ・ 』 :H m =』 m’’ r a e 1 e 1 M W n A E R Mr t n u a t ・r F Te r T n H1 」且 , 、 n v - m u z z, Tm , TR勘’v - - 1 ’ E ・ 0 MU M - E J MM - - m n H u g u n H n uv n H a u u m M u s a m n H n n H u n H a u a a M D b m ea b m m f t e E lU f i n i f - - e M f t i f - - n i f - - μ s M M M M oua a g a z a M M u g U M S M M U M M M U M e r rL rt m rL rL rt rt rL rt rL rL rL a rl rt rL rt rt rt rt rt &L n a s a nM r a M M - -司 E me4L - - n M au’M UM r- M-- -J rLrL 1J FlrL V It -s rL IL ’I n n M rL -- 2 M M rELE,.‘ ’忌』 LD ,目.‘ 『4目. ’‘』 ,.t ,aa ’島』 FEL,’L a{ } 指定することで値を取得することができる。 刷 翁 割削 川 Weight 体重(ポンド) 負 CODE36はデー タセットの値ではなく 出力するコ ー ドとなる。 司 ・U コ ー ドが実現できる。 命川 崎 持たせ、 その中に値をいれるといった 闘 テー ブルの中に変数ごとに子テー ブルを 輸 CODE35, 36のル ー プを組み合わせれば 向 ラベルやフォ ーマットなどの属性情報を /*CODE 7 3 り data temp; set sashelp.class; where age= 12; run, proc lua; submit; table A= sas.load_ds(” temp”) print(table.tostring(table_A)) endsubmit; quit; 目 指 また、別の方法として sas.load関数を使うことでSASデー タセットを決まった 形で Luaのテ ー ブルに取り込むことができる(CODE37)。この場合。obsごとに子テ ー プ、ルが作成される作りとな 10 218
、
り、obs番号が要素番号となる。また変数ごとに属性情報が テ ー ブ ル化( 変数名が テ ー ブルキ ー )となって同梱され、
デ ータセット名 (name),変数数(nvars)も同様に作成される。
3 5.データセットに値を出力する
Proc LuaからSASデ ータセットを作成、 或いはSASデ ータセットに値を追加することもできる。
!*CODE 38り
/*CODE 39*/
proc lua;
submit;
table_B = {}
table_B[l] = {X=”A”,Y=l}
table_B[2] = {X=”B ”,Y=2}
table_B.vars= {}
table_B.vars.X= {type =”C”,length=20}
table_B.vars.Y= {type =” N”,label=” ラベル ”}
sas.write_ds(table_B,”YY")
endsubmit;
quit;
proc lua;
submit;
一変のデ ータセットを作成
sas.new_table(”work.XX”,{
{ name="X", type=”C”, length=20},
{ name=”Y”, type=”N”, length=S, format=”yymmddslO. ”}
})
local A, B = 1 ,21035
--fj直を追加してデ ータセットを更新
local dsid = sas.open(”work.XX ”,’V ’)
sas.append(dsid)
sas.put_value(dsid, ”X ”,A)
sas.put_value(dsid, ” Y'', B)
sas.update(dsid)
sas.close(dsid)
||
日
』A
|
I
V
I
2017/08/04 I
I
ラペル
X
endsubmit;
quit;
CODE38はsas.new_tableで新規にSASデ ータセットを定義し、 作成されたデ ータセットを、 読み込みの時と
同様にsas.openで掴み 、sas.appendで行を追加し、put_valueで変数に値を挿入し、sas.updateで更新している。
sas.openの際に第二引数をuに指定し、 編集モ ー ドで開くことが必要となる。
CODE39はCODE37の真逆の処理であり、sas.write_dsにsas.load_dsの際に作成されるLua テ ー ブルと同じ
、
構造のテ ー ブルを与えることでLuaのテ ー ブ ルを作成している。
4. Lua でオブジェクト指向
4-1.メタテーブル
、
Luaではテ ー ブル ( 値 )にメタテ ー ブルを付与することができる。 メタテ ー プ ノレは値に影響せずに情報を保持で、 き
a凪1
nロ
H
H
e
LD
。q
、
.
’
.
AKU
円HM
のU
n[u
身
局品T
nE
O
白H
「E
nHν
v
『,,
白
司
U
MM
J,
』
H
m翁
日
M
M諸nuv-
MW M
-
『
翁
M
帥刷
”W
‘
出
fl
フ
”
i・nu
t-
/*CODE 40り
proc lua;
submit;
tb={l,2,3}
setmetatable(tb, {metal=”XXX ”, meta2=”yyy”})
mt = getmetatable(tb)
print(”thの中身 ”,table.tostring(tb))
.
print(”thのメタテ ー プ ル中身 ”,table.tostring(mt))
endsubmit;
quit;
中
M
MW
V《 MY
・-ν
M首HUYE
af
f
-nu
-
]-
]
一
ナ .
向
.
目
身 123 タ .’.、
.’.
中 ドドド メ Ee
m刷
の 日ロ臼 の [[
uLD
るほかに、 その値に対しての演算の挙動を既述することができる。
CODE40 はsetmetatableでテ ー ブルにメタテ ー プ ルに値を設定し、getmetatableで取得する例となる。
11
219
-- 一ρhv i a 一 ・4 nb EU 内t ==== 孟ぜ v£’ ky ajロ ーーテ ー ブル 一 阿川pa tbl ={a=1, b=2, C=3} tb2={a=4, C=5, d=6} ;i ,S2・・ 函』 M M MW H C LD 矛ιv M M M MW FEELFEELF--L E』唱’ p’aL /*CODE 41*/ proc lua; submit; . r +Jテ ー ブルマ ー ジを行う関数 function table_merge(a, b) local c={} for key, val in pairs(a) do c[key] =val end for key, val in pairs(b) do c[key] =val end return c end ·_add に関数を指定 setmetatable(tb 1,しadd司able_merge}) ··tbl のメタテ ー ブルにより、 +演算子の挙動において関数が参照される tb3=tbl + tb2 print (” tb3 の中身 ”,table.tostring(tb3)) endsubmit; quit; C0DE41 では、 メタテ ー ブルを利用して「+」演算子の挙動を再定義し、 SAS のマ ー ジに似せた機能を実装して いる例となる。 通常「+J演算子は、 単 一 の値の加算を行う機能であり、 テ ー ブル型を指定すると エ ラ ー になる。 しかし setmetatable で_add=に挙動を定義した関数をしてやればテ ー プソレ同士の演算にメタテ ー ブルが参照さ 、 れ、 実現可能となる。_add のようにメタテ ー プ ルで演算子の挙動を定義する場合、 アンダ ー パ ー 2 つにキ ー ワ ー ド(この場合 add)が決まった文法となる。 4-2._indexの利用 Luaのテ ー ブルにおいて参照しようとするフィ ー ルドが存在しない場合、 エ ラ ー となる。しかし 、 setmetatable でー index=にテ ー プ /レが指定されている場合、 指定されたテ ー ブノレのフィ ー ルドが参照される。 その特性を利用して、 オブジェクト指向言語における new 演算子と同様の機能をもっ関数を定義し、 クラスから インスタンスを生成する挙動を実装することができる。(次頁C0DE42参照) 12 220
/*C0DE42り
proc lua ;
submit;
rand ={}
function rand:setobs(obs)
self.obs = obs
end
function rand:setseed(obs)
self.seed = obs
end
function rand:create_dsO
print(” seed=”.. self.seed)
sas.submit([[
data out;
call streaminit(@seed@);
do i=l to @obs@ ;
x=rand('’uniform”);
output;
end;
run,
end
]], {seed=self.seed,obs=self.obs})
function rand:newO
local t ={}
t.seed=1234
t.obs = 10
setmetatable( t, Lindex = rand})
return t
end
三白面百両
data out;
cal I streaminit(1234);
do i= l tN白 10 ; '’
x= rand( uniform );
output;
end;
run;
���r lA誠学問型地il 秒
答翠盗品):�
ン、2変赦です。
0.04
0.01 秒
処理時閣
CPU略:
seed= 5678
data out:
cal I streaminit(5678)
do i= l to” 20 :
x= rand ( unifor帥 ):
白utput;
end;
run:
N
NOTE:デ ー タセットWORK.OUTは20オゴザペ ー ション、 2 変数です。
NOTE: DATAステ ー トメン卜処理( ..0..斗処理時間):
処王里E寄薗 I
o:-0日 tl
旧
日.01秒
CPU目寄聞
NOTE: PROCEDURE LUA処理(合計処理時闇):
0.92秒
処理E 闇
0.03 秒
CPU時閣
local randl = rand:newO
randl:create_dsO
local rand2 = rand:newO
rand2=setobs( 20 )
rand2:setseed( 5678)
rand2:create_ds0
endsubmit;
quit;
5. まとめ
Luaは意図的に限りなくシンプルに設計されており、 加えてテー ブルが著しく応用の利く構造を持つため、SAS
マクロに比べて処理を簡潔かつ柔軟に実装することができる。SAS マクロ特有のルールがなく、工夫を加えるこ
とで他言語の開発で 一 般的な概念を導入することができる。 特にオブジェクト指向を取り入れることで、 機能の体
系的な構築と管理が可能となる。
学習は比較的短時間ですみ、 他言語からの乗り入れはSASマクロに比べて敷居が低いと思われる。
一
方で、 シンプルさの代償として提供されている機能は最低 限となっているため、テー ブルという構造をうまく
利用してどの ように仕組みを構築するかというところに頭を使う必要がある。
またSASマクロは、S必コ ー ド中のどこにでも挿入することができ、テキスト展開によって 実行コ ー ドを生成
13
221
する強力な機能をもっているため、 そのまま全く同じ形でProcLuaに移植することは難しく、 コー ドの構造自体 を再考する必要があることが多い。 プログラム開発において、どのようにProcLua と SASマクロを取り入れれば、 パ フォ ーマンスを発揮するか、 また既存の SASマクロ資産との兼ね合いについては今後、 集団での経験と知見の積み重ねが必要と恩われる。 6. おわりに SAS9.4のリリ ース以降、Proc DS2やProc Luaが導入され、 それまで SASマクロのみで担っていたプログラ ム制御に選択肢が追加された。 SAS マクロは強力で便利な機能ではあるが、 プログラムの効率的な管理に向いて いるとは言いがたい。 他言語の経験が無く、 SASに熟練したユー ザーにとって、Proc Luaの導入と運用には多大 な抵抗と苦痛を感じるであろうことが予想される。 しかし SASマクロが 20~ 30年以上、ほぼ同じ機能で留まっている聞に、プログラミングの開発手法は大きく発 展を遂げている。 その中には学習 コストを支払ってでも、 キャッチアップすべき有用なものが多く存在すると考え る。 今後、 より実践的な例を研究、 発表していきたい。 7. 参考文献 (1) Base SAS⑧ 9.4Procedures Guide, Seventh Edition (2)Paulτbmas (2015), Driving SAS⑧with Lua,Paper SAS1561・ 2015 (3)Jiangtang Hu (2015), New Game inτbwn:SAS⑧ProcLua with Applications,Paper AD-133 14 222
SAS以外の言語を利用した、 SAS で実現困難なロジックや機能の実装について 0 川上貴弘 (電助システムズ株式会社) 1 概要 SASを利用するにあたっては、 多くの場合、 「バリデ ーション」という作業を行う。 計画を立て て期待された通りに動作することを検証することである。 これによって、 そのパー ジョンにおける 動作が保証されるが、 SASをパー ジョンアップする際、 再バリデ ー ションが必要となることから、 ノ〈 ー ジョンアップを容易に実施できなくなるケ ー スは少なくない。 SASのパー ジョンアップの目的 は、 パグフィックスだけでなく、 新しい機能の追加も含まれる。 しかしながら、 SAS9.4が最新であ る現在においても最新パー ジョンでのバリデ ーションが困難なため、SAS9.2、SAS9.3を使用せざる を得ず、 そのため、最新パー ジョンで追加された便利な新機能を利用できずにいまだに複雑なコー ドで実現しているケ ー スも散見される。 本発表では、 さまざまな事情でSASの最新パー ジョンを使用できないユ ー ザー 向けに、 旧パー ジ ョンのSASでは使用できない、 もしくは複雑なコ ー ドで実現している方法を簡略化する方法の 一 例 を紹介したい。 近年、 Heartblood, poodle等、 ベー スとなる技術自体の脆弱性や技術の危殆化によるセキュリティ インシデントが多く発生し、また、2017年2月にはGoogleがハ ッシュアルゴリズムSHA-I の対衝突性 司 を破ることに成功したことで、 暗号化方式は従来 一 般的であったSSLからTLSへ、 ハ ッシュアルゴ リズムはより安全であるSHA-256への移行が急速に進んでいる。 しかしながら、 SASにおいては SAS9.4TS1Ml でSHA-256ハッシュを生成する関数が追加されたものの、SAS9.3 以前ではすでに容易 に同 一ハ ッシュ値が得られると指摘されている MD5しか使用できない状況であった(SAS9.3の SAS/SECUREを除く)。 また、 ハ ッシュアルゴリズムは公開されているが、 SASでSHA-256ハッシュを生成するプログラ ムを作成することは 一 般的なSASユ ー ザ ー にとっては非常に困難であることは想像に難くない。 加 えて、Javaやruby、c++などで実現するコー ドは公開されているものの、 そのためのインタ ー ネット 接続環境やパ ー ジョン依存の実行環境を用意し、 SASとの連携ができるよう修正することも容易で はない。 そのため、 より少ないコー デイングで、 なおかつSAS9.3 以前のパー ジョンでもSHA-256ハ ッシュを生成する手段を実現できないかを調査、 検討した。 2 調査と遺定 調査の過程で、 インタ ー ネット接続環境が必要な技術は除外した。 また、 度々脆弱性が見つかっ ているOpenSSLライブラリを使用する方法も除外した。 その上で、 ハ ッシュを生成して結果を返す 仕組みがないか検討を行った結果、 クロスプラットフォ ー ム開発環境であるDelphiを採用すること とした。 近年のDelphiはクロスプラットフォ ー ム開発環境として、 頻繁なアップデー トによる機能追加が 著しい。 生成されるコー ドはdllや単体での実行が可能なexeファイルであり、 アプリケ ー ション聞 の連動に非常に都合がいいことも採用の理由として大きい。 余談だが、 行末がセミコロン「;」で 終わることはSASユ ー ザー にとって親近感を覚える仕様ではなかろうか。 223
今回は、2017年3月にリリー スされたDelphi 10.2 Tokyoを使用して、SASでハ ッシュ値を生成する
ためのプログラムを作成した。
プログラムは以下の通り、わずか14行である。
3
プログラム
1.
Delphiプログラム
ファイル名を「myHash.dprJとして以下を記述する。 作成したファイルをDelphiで、聞き、Ctrl+F9を
押せばコンパイルが完了し、myHash.dllが生成される。 dllとは、それ自体では動作しないが、汎用
的な機能がモジュール化され、アプリケ ー ションプログラムからその機能を呼び出せるようにした
ものである。
OJ Ii brary myHash:
02 uses System.SysUti Is, System .Classes, System.Hash:
03 {$R 本. res}
04 function GetHash(s:PAnsiChar):PAnsiChar stdcal I:
05 var
06 Hash: THashSHA2:
07 begin
08 Hash := THashSHA2 .Create(SHA256);
09 Hash.Update(trim(String(s))):
JO
Result:=PAnsiChar(AnsiString(Hash.HashAsString)):
11 end:
12 exports GetHash:
13 begin
14 end.
プログラム各行は以下の通りである。
01行目:却として宣言する
02行目:Delphiのライブラリを指定する
03 行目:
04行目: DelphiはUNICODEを扱うが、SAS(日本語)はANSIなので受け渡しの定義はANSIと明示す
る, GetHashは文字型「SJを受け取り、処理結果を返す関数(白nction)として定義している
05行目:関数内部で使用する変数を定義する
06行目:SHA-2ハ ッシュを実装するクラスを定義する
07行自:関数GetHashの開始を意味する
08行目:SHA-256を指定し、ハ ッシュを実装するオブジェクトを生成する(224~ 512も指定可能)
09行目:ANSI文字「s」を内部処理のためUNICODEに型変換してハ ッシュ値を生成する
10 行目氾NICODEとして生成されたハ ッシュ値をANSIに型変換し、更に文字型に型変換する
I 1行目:関数GetHashの終わりを意味する
12行目:外部から呼び出される機能名(04行自のぬnction名)を宣言する
13 行目:プログラムの開始を意味する
14行目:プログラムの終わりを意味する
224
2. プログラム作成後の問題点 SASでdllを読み込み、値の受け渡しをすることができなかった。 そこで、SASのMODULEC関数 ’ ' に コ ン トロール文字列 * E を加え、実行時エラ ー を逐 一 ログに出力することで状況を把握した。 I) ERROR: Module myHash could not be loaded. 2) ERROR: Routine GetHashX of module myHash could not be loaded. 3) WARNING: No a出bute table en町found for GetHashX. 4) ERROR: Module GetHash was given over its maximum argument count of I. 結果としては、 上記エラ ー 1)から、 dllをパスの通っているフォルダに コ ピ ー しておくこと、 dll とSASのbit数が 一 致していなければならないことが判明した。 dll 読み込みの問題は解決したが、 次は正しいハツ、ンュが得られない結果となった。 Delphi単体 では正しいハッシュが得られるものの、 SASで 実行すると異なる結果が得られたのである。 これは、Delphi側が扱う文字列はUNICODEであるのに対し、SASが扱う文字列はANSIであるた 、 めだ った。 Delphiは2009年にリリースされたパ ー ジョンからUNICODE化されているので、 まず dllではANSI文字型としてSASから受取り、 内部でUNICODE文字列に変換してからハッシュ値 を生成し、 再度ANSI文字型に変換してSASに返す、 とし、う処理を行うことで解決した。 dllを利用するためのsascbtblの a情報が少なく、マニュアルだけで、なく、過去のSUGIの情報も参考 にした。 3. SAS9訓こおける実行例 まず、 コ ンパイルで、生成されたmyHash.dllをパスの通ったフォルダに コ ピ ー する必要がある。 最 もわかりやすのはSAS起動用ショ ー トカットの作業フォルダに指定されている%USERPROFILE% である。 コ ピ ー した上で以下のプログラムを実行する。 ’ ’ OJ fi I ename SASCBTBL tmp. txt ; 02 data _nu I I 一 03 fi I e sascbtb I ; ’ ’ 04 put routine GetHash ; ’ ’ 05 put minarg=1 ; ’ ’ 06 put maxarg=1 ; ’ ’ MODULE=myHash ; 07 put ’ ’ 08 put stackpop=ca I I ed ; ’ ’ returns =char64; ; 09 put ’ put arg 1 char input byaddr format=$200. ;'. 10 11 run: 12 13 data nul I 14 length hash $64; ’ 15 source= ABC'; ’ ’ 16 hash = modu I ec ( GetHash , source); 17 put hash=: 18 run: 225
プログラム各行は以下の通りである。 01行目:属性テ ー ブルの作成。 作成済ならばfilenameの割当のみ 02行目: 03行目:dllを使用するためにはsascbtblを使用する必要がある 04行目:Delphiコ ー ド中のexportで指定されたdllの機能名 05行目:パラメ ー タは1個であるので、 最小も1 06行目:パラメ ー タはl個であるので、 最大も1 07行目:dll名を指定する 08行自:GetHashにはstdcall属 a|主を持たせているのでcalledとする 09行目:返り値(SHA-256)は64バイトの文字列である 10行目:dllに渡す文字列の長さ(ここでは200字としているが、 より長くすることも可能) 11行目: 12行目: 13行目: 14行目:64バイトの変数長を確保する 15行目: 16行目:modulec関数でdllを呼び出し、 文字列「ABCJのハッシュ値を生成する 17行目: 18行目: ログには以下のように出力される。 hash=b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78 なお、 一度実行済みで、 tmp.txtがすでに存在するのであれば、 以下だけでよい。 ’ ’ OJ f i I ename SASCBTBL tmp. txt ; 02 data _nu11_; 03 length hash $64; ’ ’ 04 source= ABC ; ’ 05 hash = modu I ec (' GetHash , source); 06 put hash=; 07 run; 4. SAS9.4における確認コ ー ド 以下を実行する。 01 data _nu 11一; 02 I ength hash $64; ’ ’ source= ABC ; hash = put (SHA256 (source), hex64. ); 04 05 put hash=; 06 run; αy 226
ログには以下のように出力される。 lh叩5附5C3附附F印6AB印詑A1師7 104叩6日酬E2789D円 大文字小文字の違いはあるが、 UPPER/LOWERで容易に変更できるので、 気にする必要はない。 4 まとめ さまざまな事 ’情で、 SASの最新パ ー ジョンを使用できないユ ー ザ ー向けに、 旧パ ー ジョンのSASで は使用できない、 もしくは複雑なコ ー ドで実現している方法を簡略化する方法として、 SHA-256ハ ッシュの生成を例に、J.lljのアプリケ ー ションと連携することで比較的容易に実現できることを示し た。 今回はdllを自作したが、 他にも、 WinAPIを使用するためのdllを利用したり、 xコマンドを使用 して外部アプリケ ー ションと連動させたりすることもよく行われている。実際に弊社でも、dllやexe ファイルをSASと連動させて複雑なパッチ処理を行う仕組みを構築している。 既存のソフトウェア資産等を利用し、 SASをより有効に活用する方法が広まることへの 一 助とな れば幸いである。 なお、掲載したコ ー ド はWindows版SAS9.3 TSIM2, SAS9.4 TSIM3, Delphi 10.2 Tokyoにて作成、実 、 行させたものである。 5 参考文献 1. 2. Embar℃adero Technologies: Delphi online help docwiki(Delphi 10.2 Tokyo) 3. SAS Institute Inc.: Windows版SAS⑧9.4第3版(2014) 5. SAS Institu旬 Inc.: SAS⑧9.4 Companion for UNIX Environments, Sixth Edition (2016) 4. 6. 7. 6 日向俊二: Delphi XE2 プログラミング入門,カットシステム(2012) htto://docwiki.embarcadero.c⑪m/Libraries/Tokvo/ia/Svstem.Hash.THashSHA2 SAS Institute Inc.: SAS⑧9.4関数とCALLル ー チンリファレンス第4版(2015) David H. Johnson.: SAS⑧with the Windows API (SUGI 30) Edward Fost怠r.: Using the WIN32 API from SAS (PhUSE 2006) 謝辞 1. SAS Technical Support (SAS Institute Japan Ltd.) 227
SASプログラムの可視化 - SASプログラムステップフロ ー チャ ー ト生成プログラムの紹介 一 0福田裕章 l ( i MSD株式会社) 近年、SASのデー タハンドリング機能は一 層進化してきているが、未だデー タステップやSQLプ ロ シジャがその主流で、ある。 、 統計解析プ ロ 、ンジャを含めた、こうしたステップの繰り返しはSASの 特徴の ー った と考えられるが、解析デー タセット作成プ ロ グラム等、多数のデー タセットから多数 の新規変数を導出するような場合、ステップ数が数百に達することもあり、そのプ ロ グラムをトレ ー スしていくことでさえ多くの労力を費やしてしまうことになる。 これを回避する 一 つの方策とし て、ステップフ ロー の可視化、すなわちSASプ ロ グラムのステップをフ ロー チャー ト化することを 考えた。 これまで、SAS ロ グからフ ロー チャー トを作成したような報告はあるが、 ロ グは必ずしも 利用可能とは限らず、また設定に依存して情報のアウトプットが制限されるため、SASプ ロ グラム 自体からのステップフ ロー 作成を実施することに注目した。 SASプ ロ グラムを読み取り、 どのコ ー ドがDATA/PROCステップで、インプットやアウトプットを指定しているのか判定するためには、 SASシステムがそれらを判定する ロ ジックと同様の処理をSASプ ロ グラム上で行えば良いと考えら れるが、それには自由度の高い文字列処理が必要である。 こうした柔軟な文字列処理は、デー タス テップ中で、Perl Regular Expression (PRX)及びハツ、ンュオブ、ジェクトを利用することで実現可能で ある。 一 方、 フ ロ ー チャー トにおいては、 SAS9.4より導入されたSGPLOTプ ロ シジャにおける POLYGON並びにTEXTステー トメントに着目した。 これらのステー トメントにより、Plot上に柔軟 な図形とテキスト配置を実現することができる。 本発表では、以上の機能を踏まえた、SASプ ロ グ ラムを可視化する手法の ー っとしての、ステップフ ロー チャー トの生成プ ロ グラムを紹介する。 228
ProcLUAを初めて使ってみた -SASでの処理を条件に応じて変えるー
0浅井友紀
ツ ーヘ
(エイ
ルスケア株式会社)
【はじめに]
これまで実行されるプログラムを分岐、 繰り返すにはSASマクロが用いられてきた。
本発表ではSASマクロではなく、PROCLUAを用いてSASのコ ー ドの分岐や繰り返し処理を、EXCEL
の情報を変数名、 変数ラベルとする0オブザベ ー ションのデ ー タセットを作成するプログラムを通
して紹介する。
[方法】
本発表では簡便な例として、変数名等の定義情報をexcelファイノレから読み込み、その定義情報の変
数を持つOオブザベー ションのsasデ ー タセットを作成するプログラムを取り上げる。
excelから読みこんだ変数名が8文字以上か変数ラベルが40字以上、 もしくは変数名が重複している
ならエラ ー をログに表示するようプログラムを分岐させた。
また複数のexcelシー トを読みこみ、1シー トにつきSASデ ー タセットを1つ作成するようプログラム
の繰り返し処理を行った。
【結果】
読みこむ予定のexcelファイルの例を図lに、 図lをもとに作成したsasデ ー タセットを図2に示す。
Name2
N置ne1
A
A
A
A
A
A
A
A
A
A
回
A1
A2.
P.J
A4
A4 1
AS
A6
A7
崎
La回
回
胞恒誠1
恒国12
胞担訓3
恒凶4
label 41
label 5
也肱訓6
抱匝17
la凶8
-
F町諸国
Type
祖措
館蝿
加姐
num
num
?<1ヲ,
1
...
。
。
名銅
皿屋n
YYMMDD10.
10
•
圃・・・・・・., m
奮訟
...
2A1
‘
l"
Al
eル札1
7"'
lヰj二
担畦
num
回調書
図l 読みこんだexcel(sheet3)
..
v..
樫
。祖
。歯車担
首相
種濁
,mer
a,,
a,,芭個
ぬ-
鰍-
。曹蔵相
。噂疎圃
。W艇幅
除-=at
I
......
..•
..""•
帥朝一月明日ル
• Y'l1醐国組
Z回
a’
回
旭国t
回調2
....
担Ml
匂同4
�41
瞳凶雌刻6
7
域刻.
図2作成したSASデ ー タセット(sheet3)
[総括 I
PROCLUAを用いることで実行するコ ー ドの分岐、 繰り返しを行うことが出来た。
本発表で取り上げた例は簡便な 一 例に過ぎない。 様々なプログラムの書き方が PROCLUAによって
実現できることを感じていただければ幸いである。
【参考文献I
Base SAS 9.4 プ口 、ンジャガイド第4版
(htto://www.sas.com/offices/asiaoacific/iaoan/service/helo/odflv94/oroc.odf)
229
SAS Tips. ToplO My Favorite SAS Functions. 0松沢享 (株式会社インタ ー サイエンティフィックリサ ー チ) SAS9から非常に便利な関数及びコ ー ルル ー チンが追加された。 本発表では、 その中から特に便利な ものを10個に厳選して、 簡単な使用例と共に紹介する。 233
PHREGプロシジャにおける 共変量調整解析に関連したオプション機能 0魚住龍史 l 矢田真城 2 浜田知久馬 Z 1 京都大学大学院医学研究科医学統計生物情報学 2 東京理科大学大学院工学研究科経営工学専攻 Investigating fascinating aspects associated with covariate-adjusted analysis using PHREG procedure Ryuji Uozumi 1 , Shinjo Yada2 ,佃d Chikurna Hamada2 1Depar,抑制ofBiomedical Statistics and Bioiゆrmati,α め1oto University Graduate School q川.fedicine , 2Depar加ent of地nagement Science, Graduate School of Engineering,, おか'O University of Science 要旨 PHREG プロシジャは Cox の比例ハザ ー ドモデルによる解析を実施するためのプ口 、ンジャであり, SAS/STAT のパ ー ジョンアップのたびに, 構文数およびオプション数が培加している. 本稿では,『生存時間解析応用 編-SAS による生物統計』で取りあげられている PHREG プロシジャにおけるオプション機能のうち, BASEL 別E文および LSMEANS 文に着目した. これらの有用なオプション機能として, B ASELINE 文におけ る DIRADJ オプションの機能および LSMEANS 文によるDi釘ogram の作成に対する理解をより深めるための 報告を行う. キ ー ワ ー ド:生存時間解析 生存関数 1 DIRADJ 比例ハザ ー ドモデル LSMEANS Di飴gram PHREG BASEL町E Mean-Mean sca恥r plot 生存関数 Breslow 法 調整 ODS GRAPHICS はじめに 大橋・浜田 (1995 )が刊行されてから 20 年もの歳月が流れ, 2016 年 7 月に姉妹本とし、う位置付けで,『生 存時間解析応用編-SAS による生物統計』が刊行された(大橋ら, 2016). 現在, SAS 9.4 が最新版としてリ リ ースされているが,LIFETEST プ口 、ンジャなどの生存時間解析に関連したプロシジャは SAS/STAT として提 供されており, ほぽ毎年メンテナンス版がリリ ースされている.『生存時間解析応用編-SAS による生物統 計』では, 主に SAS/STAT 9.2 以降に追加された最新機能の使い方を幅広く解説しており, 2016 年の SAS ユ ー ザ ー 総会の前夜祭の日に, SAS L earning Session として解説も行われた(浜田・魚住, 2016a). また,『生存 時間解析応用編-SAS による生物統計』で取りあげられていない生存時間解析に関連した最新機能も SAS 237
ユ ー ザ ー 総会で多く 報告されており(浜田 ・魚住,2016b;魚住ら,2016b;矢田 ・ 浜田,2016;矢田ら,2016, 2017), 今後も新たなプロシジャおよびオプション機能が追加されることが期待されている. 本稿では,『生存時間解析応用編-SASによる生物統計』の刊行後に, 読者から寄せられた質問のうち, PHREGプロシジャに関連した内容に焦点を当てること とする. PHREGプロシジャは C冶xの比例ハザ ー ドモ デル(Cox, 1972) による解析を実施するためのプロシジャであり, SAS/STAT のパ ー ジョンア ップのたびに, ステートメントおよびオプションの数が増加している.大橋 ・ 浜田( 1995)刊行時はIOのステートメント(文 ) が提供されているだけであったが, SAS/STAT 14.2においては 24 のステートメントが提供されている(SAS Institute Inc., 2016). 著者らは,PHREGプロシジャにおけるオプション機能のうち, ベースライン生存関数を 推定するための BASELINE文,および固定効果に対する最小二乗平均を求める LSMEANS文におけるオプシ ョン機能に着目した. BASEL町E文では, SAS/STAT 9.2よりDIRADJオプションが追加されており(SAS Institute Inc., 2009), 平均生存関数の推定が可能である. また, ODS GRAPHICS O Nの状態で, LSMEANS文 と,水準聞の対比較の結果を表すDi貸ogramが作成される. 本稿で を指定してPHREGプロシジャを実行する は, BASEL刑E文および LSMEANS文における指定方法および有用なオプション機能の解説を行い, 指定方 法によって異なる出力 結果が得られる点に関して, 理解をより深めるための報告を行う. 2 BASELINE文とオプション機能 PHREGプロシジャにおいて,BASEL町E文は大橋・浜田( 1995) が刊行された頃からサポ ートされている. BASEL町E文を指定することで, ベースラインハザ ー ド関数や ベースライン生存関数などの推定を行うこと が可能である. 本節では, BASEL別E文を用いて ベースライン生存関数の推定を行うことを考える. 対象デー タとして, 肺癌のデ ータ(デ ータセット名 :VALung)を用いる. デ ータセットVALung(Veterans Adminis回 tion Lung c阻 cer trial) は, Kalbfleisch andPrentice (2002) で使用されたデ ータ を 一 部抽出したものであり (n =137), SAS/STAT PHREGプロシジャのマニュアル, および大橋ら(2016)第3章においても用いられている. こ の研究の目的 は, 男性の進行性肺癌患者を対象としたランダム化比較試験であり, 治療法(変数名:Therapy)として, 試験 治療(Therapy='test’ )と標準治療(Therapy =‘ standard’ ) を比較するために行われた. 評価項目は死亡までの 時間(日)(変数名: Time) で,共変量のlっとして組織型(変数名:Cell) が挙げられる.組織型は 4 水準(Cell ='adeno' 「腺癌J, ’ small' r tJ、細胞癌J,加·ge’ 「大細胞癌J,’squamous’ 「扇平上皮癌J ) のカ テゴリカル 変 数である. なお,PHREGプロシジャの処理の都合上, 文字変数である百1erapy および Cellの代わりに, 治療 法を表す数値変数 Therapy2 (Therapy2= 1 r 試験治療J, 2「標準治療」), 組織型を表す数値変数 Celle (Celle = 1 「腺癌J, 2 「大細胞癌J, 3「小細胞癌J, 4「扇平上皮癌」)も用意した. 2.1 デ BASELINE文による生存関数の推定 ー タセットVALungに対して,LIFETESTプロシジャおよびPHREGプロシジャで生存時間曲線を描くと, SGPANEL プロシジャでパネルを代えて出力 する と図1のように示される. なお, 本稿において示すプロットは, モノクロ印刷されても識別しやすいよう, ODSの出力としてジャ ー ナルスタイル ” STYL E=JOURNAL” を指定している. 例えば, 群別のグラフを示す場合, デフォルトでは群 の違いが色で分けて出力されてしまう. ジャ ー ナルスタイルの場合, モノクロ印刷で群の違いを識別できる よう, 実線と破線で分けて出力される. 238
また, 図1のように, SAS/STAT のプロシジャの実行結果をデ ー タセットとして作成し, SG(Statistical Graphics)プロシジャで、出力する方法については, これまでのSASユ ー ザ ー 総会でも多くの報告が行われて いる(魚住・浜田,2011;魚住・浜田,2012;魚住ら,2016a). SGPANEL プロシジャによる図lの詳細なプログ ラムは付録Aを参照されたい. SASプログラム ods graphユcs on; (詳細は付録Aを ods output SurvivalPlot =lifetestOO; 参照) proc lifetest data=VALung plots = s method=breslow; 七工me Time 女 Censor(l); strata Cell; run; data DummyCell; do CellC=l to 4; output; end; run; ods output SurvivalPlot=phregOO; proc phreg data=VALung plots(overlay)= survival; CellC / param= glm; class model Time 安 Censor(l) = Celle; baseline out =phregoutOO survival= S covariates= DummyCell / nomean group = CellC; run; 出力結果 UFETEST 1.0 PHREG 0.9 0.8 0.7 0.6 ・� 孟 0.5 0.4 0.3 0.2 0.1 0.0 0 200 400 600 800 1000 0 200 400 600 800 1000 Time -一一ー一- adeno 一一一ー large - - - small -一一ー- squamous 図l : LIFETEST プロシジャ およびPHREGプロシジャによる作成プラグラムと組織型別の生存時間曲線 図lにおけるPHREGプロシジャのプログラムで は,BASELINE文におけるOUT=オプション, あるいは ODS GRAPHICSの機能を用いたODS OUTPUT SURVIVALPLOT =によって出力され る. いずれのデ ー タセ ットを用いても, 同様の生存関数の推定結果が得られている. 239
図1の生存時間曲線は,LIFE TESTおよびPHREGのいずれのプロシジャから作成しても,Breslow法によ る生存関数の推定を行っている. ここで, (T,D,X)を生存時間, イ ベントの有無, 説明変数を表す確率変数として, (t;,d,,x, )はこれらの実 現値を表し,i = I ,…,nは互いに独立であることを仮定する.ただし,d,= I はイ ベント,d=0 , は打ち切り , を表す指示関数とする.さらに,Y;(t) = l(t ミt) を個体 i が時点tにおいてリスク集合に含まれることを表 す指示関数,N,(t) = l(t, gげ'= I)を個体1の時点tにおけるイ ベントを表す指示関数とし,Y(t )= 工月 (t ) を 時点tにおけるリスク集合の大きさを表す指示関数, 万( t) = L,N,(t ) を時点tまでの累積イ ベント数, 企万( t ) を時点tにおけるイベント数とする. LIFE TESTプロシジャでは, デフォルトのKaplan-Meie r法による生存関数は TT S(t) = I I .L A 伊 ,) | fI Iーでア Mv(t ] 一一 L Y(t1 ) ) と推定される(Kaplan姐d Meier, 1958).一方,Breslow法による生存関数は,Nelson-Aalen法による累積ハザ ー ド関数(Nelson,196;9 Aalen, 1978) を用いて, f rdN(t] f " でア Mi'(t J ,) | ,) ー S(t) =expl - I --=-一 I"'expl一〉; ’ sr L l_ � Y(t,) ) , Y(t,) ) と推定される. ベクトノレXに対する比例ハ 一方,PHREGプロシジャを用いてBreslow法による推定を考える.説明変数 、 ザードモデ ル T λ (t IX)= ゐ(t)exp(β X) を考えると, ベースラインハザー ド関数が Mv(t) 一一一- λ..(t) • = 干「 ,T Y; (t)exp(β x,) _L, と推定される(Breslow,1974).このとき, 累積ベースラインハザー ド関数は Ao(市工伺 ゐ(ん) となり,Breslow法による生存関数は 。 S(t I x,,8)=exp(一λ (t)exp(.Bx) ) T r による生存関数も と推定される.また,Kaplan-Meie 法 S(t I x,.B=) TI,"' (1 一切(片 X) T ん (t,)) と同じように推定できる. 2.2 DIRADJオプションを用いた生存関数の推定 図lのPHREGプロシジャでは, 単変量の比例ハザードモデルに対して,BASEL別E 文を用いて生存時間 R AY) =SURVIVALと指定しているものの, 実際 S 曲線を推定した. P ROC PHREG文において,PLOT ( OVE L は4群がlつのプロットとして描かれない.しかし,BASL E 刑E 文において D IRADJオプションを指定する GRA PHICSによる機能として,4群を1つのプロットに集約し と,図2のようにPHREGプロシジャの ODS 240
、 た生存時間曲線が出カされる. なお, 図2においては, 単変量の比例ノ、ザ ー ドモデ ルであることから, BASELINE文においてCOVARIATES=を指定しなくても, 図lと同様の出力が得られる. BASELINE文でDIRADJオプションを指定して, 図2のように4群をlつのプロットに集約した生存時間 曲線が出力したが, DIRADJではCOVARIATES=で指定した変数で調整した生存関数を推定している. もし COVARIATES=を指定しないで実行した場合, GROUP=で指定した変数の各水準に対する調整生存関数と して, GROUP=で指定していない変数の情報に基づいた重み付き生存関数が推定される. SASプログラム ods output SurvivalPlot =ph工egOOdiradj; proc phreg data =VALung plots(overlay) =survival; / param =glm; class Cell model Time*Censor(l) = Cell; baseline out =phregoutOOdiradj survival = S / nomean diradj group=Cell; run; 出カ結果 直接調整済み生存関数 1.0 。 \品目、,,、、.)\, .8 \. t II: 時 制 \\、 山 0.6 、1 \ '- �‘ ..,_ 九 0.4 入 L 司、. ・\ ,_』 0.0 L L『弘二1」L 0.2 1 『 ,. ,. L守 、「-�=二さ工一一一一一一一一一一一一 ー-,.._ーーーーーーーーーーーーーーーーーーーーーーーーー 。 400 200 600 800 1000 Time 一一一一- adeno -一一· large - - - small 一一ー一- squamous I I Cell 図2: DIRADJオプションを用いたPHREG プロシジャによるプログラムとODS GRAPHICS による出力 なお, もし図2のプログラムにおいて,BASELINE文のオプションでMETHOD=KMを指定しでも,DIRADJ オプションはBreslow法による生存関数の推定のみ対応しており,自動的にMETHOD=BRESLOWと実行さ れる. DIRADJオプションはSAS/STAT 12.1 以降でサポ ー トされている機能である(SAS Institute Inc., 2012). 、 、 ここで, わかりやすく比例ハザ ー ド モデ ルの説明変数として, 組織型に加えて治療を表す2水準の変数も 加えた場合で考え, 各治療に対する調整生存関数を推定したいとする. このとき, DIRADJおよび COVARIATES=をともに指定した場合は図3のプログラムとなる. 241
data Dummy; do CellC= l to 4; do Therapy2= 1 to 2; output; end; end; run; proc phreg data=VALung plots(overlay) = survival; class CellC Therapy2 / param= glm; model Time*Censor(l) = CellC Therapy2; baseline out outOl survival= S covariates= Dummy = / diradj nomean group= Therapy2; run; 図 3: DIRADJ および COVA則ATES =オプションを用いた調整生存関数の推定プログラム 各治療 i において組織型 j 別に推定される(時点 t における)生存関数を為,例数を nij とすると,表 l のように表記できる. 表l :各水準における推定生存関数 図 3 のプログラムでは,時点 t における治療 i に対する調整生存関数は ミ = Iiij 1J と推定されていることになる.ただし,Jは調整する組織型の水準数であり,今回のデ ー タでは J=4 であ る. proc phreg data=VALung plots(overlay) =survival; class Celle Therapy2/ param= glm; model Time 女 Censor(l) = Celle Therapy2; baseline out out02 survival= S / diradj nomean group= Therapy2; = run; 図 4: DIRADJ オプションを用いた重み付き調整生存関数の推定プログラム 一方,図 4 のプログラムでは,時点 t における治療 i に対する重み付き調整生存割合は ミ= Lin}ijln と推定される.ただし, n_ はデ ー タセット VALung の総例数, n-i は組織型 j における総例数である.閉じ Pl恨EG プロシジャ内の機能で例えるならば,LSMEANS 文における OMオプションに該当する内容といえる. デ ー タセット VALung の場合,組織型を表す変数の各水準における例数は adeno: n.1 = 27 , lar.ge: n.2 = 27 , small: n.3 = 48 , squamous:町=おとなるため,時点 t における治療 i に対する重み付き調整生存割合は ~ 27 137 《 27 137 ii A 48 137 35 《 S. =-S,,+ 一-Sパ + 一-S刀 + 一一 S., 門 i· ii il 137 となる. 242
3
LSMEANS文とオプション機能
LSMEANS 文は GLM プロシジャや MIXED プロシジャにおいてサポ ー トされていた機能で, PHREG プロ
シジャにおいては SAS/STAT 9.3 から新たに追加された(SAS Institute Inc., 2011). GLM プロシジャからの類推
で LSMEANS 「 最小二乗平均」という言葉が使われているが, 推定は最尤法で行われている(大橋ら, 2016).
なお, LSMEANS 文ではすべての水準聞の最小二乗平均の対比較が行われるため, 対比較の数が多い場合は
LSMESTIMATE 文や ESTIMATE 文で特定の線型仮説を明示的に指定することが有用である(浜田, 2013;魚
住, 2014).
3.1
LSMEANS 文による Diffogramの作成
ODS GRAPHICS ON の状態で LSMEANS 文を指定して PHREG プロシジャを実行すると,
「
最小二乗平均」
の水準間の比較結果が出力される.『生存時間解析応用編-SAS による生物統計』の 3.2 節におけるプログ
ラム 3ユl および出力結果を図 5 に示している. 比例ハザ ー ドモデルの説明変数として, Kps, Cell, Prior,
Therapy, Therapy と Prior の交互作用を含めている. なお, Kps はカルノフスキ ー (Kamofsky)の Performance
Scale を表す連続変数, Prior は既往歴を表す 2 値カテゴリカル変数で、 ある.
SAS プログラム
ods graphics on;
ods select Diffs DiffPlot;
proc phreg data=VALung;
class Prior Cell Therapy/ param= glm;
model T工me*Censor(l) = Kps Cell Prior Therapy Prior*Therapy;
lsmeans Cell/ adjust= tukey cl exp;
run;
出カ結果
Time の比較: Cell
-0 5
aden。
\〈、
\
\
\、
\
、、
、
、、、
、、
、
'·.
\
\、
、 _.-
\
、、
·"
\
、
-1.0
'
ー1 5
"" ....'<'
、·,
...’
..
-20
large
J
squam。us
-2 0
small
J
\
la唱@
SQUamous
small
aden。
-1 5
-1.0
-0.5
alpha=0.05での差CTukey-Kramer翻襲)
ー一一・宥意でない ーーーー 有意
図 5 :LSMEANS 文を用いた Diffogram 作成プログラムとその出力
243
LSMEANS 文を指定して PHREG プロシジャを実行すると,水準問の対比較の結果が得られる.図 5 は ODS SELECT DIFFPLOT により出力の指定が行われており,Mean-Mean sea枕er plot あるいは Diffogram と呼ばれる (High, 2014). LSMEANS 文で 4 水準の変数 Cell を指定したため, 4C2 =6 通りの比較結果として, 各群の最 小二乗平均の 95%信頼区間として 6 本描かれている. 対角線が帰無仮説を表しており,信頼区間と交わって いるかで有意かどうか判定している. 有意な対比較の信頼区聞は実線, 有意でない対比較の信頼区聞は破線 で示されている. 図 5 の Diffogram より, adeno・ squamous 「 腺癌と扇平上皮癌J, small-squamous 「小細胞癌と扇平上皮癌」の 比較においては, Tukey Kramer 法による多重性の調整を行って有意な結果が得られている(多重比較につい 咽 ては, 浜田(2015) を参照されたい). なお, この結果は比例ハザ ー ドモデルで組織型以外の変数で調整を行 っているため, 共変量および多重性の二重の調整を行っていることになる. ここで, 表 2 は図 5 のプログラムを実行して得られる出力結果で, ODS SELECT DIFFS の指定により出力 された表である. しかし, 「 最小二乗平均の差Jと出力されており, 図 5 の Diffogram がどのように作成され たか疑問に思うのではないだろうか. 表 2 :LSMEANS 文による共変量を調整した推定結果 CeU の最小2乗平均の差 多重比較の調整:Tukey�Knuner 調整済 調整済 指数 下限 Exp 上限 Exp 2.1150 0.9670 4.6261 1.3586 0.6766 2.7277 1.9313 3.1916 1.4766 6.8983 -1.1149 0.2296 0.6423 0.3279 1.2581 0.3158 1.1387 1.5090 0.7292 3.1227 0.1632 1.545 2.3493 1.1773 4.6880 調整済 調整務 推定値 下限懐 上限値 0.7491 -0.03358 1.5317 small 0.3064 -0.3906 1.0034 adeno squamous 1.1605 0.3898 large small -0.4427 large squamous 0.4114 ・ small squamous 0.8541 Cell Cell adeno large adeno 3.2 LSMEANS文におけるオプション機能を用いたDiffogramの作成 図 6 は, LSMEANS 文において, 図 5 よりも多くのオプションを指定したプログラム, およびその出力結 果を示している. まず,LSMEANS 文において MEANS オプションを指定することで,「 最小二乗平均の差Jの出力に加えて, 表 3 の最小二乗平均の推定値を出力することができる. PH阻G プロシジャの場合,対数ハザ ー ドが推定され ていることを意味しており, 「 最小二乗平均の差Jは対数ハザ ー ド比を推定していることに相当する. 次に,LSMEANS 文における PLOT =で ODS GRAPHICS の機能で出力させるグラフを明示的に指定してい る. PLOT=DIFF を指定しているので,図 5 に示したような Diffogram が作成される. PLOT=DIFF はデフォ ルトの指定である. さらに, PLOT=DIFF のオプションとして, NOABS および CENTER を指定している. 図 5 の出力では,デフォルトである ABS オプションの機能により,最小二乗平均の推定値がすべて左上にプ ロットされるよう, 縦軸・横軸のいずれを対照水準とするか対比較ごとに変動させて出力させていた. これ 244
に対して, NOABS を指定することで,縦軸・横軸のいずれを対照水準とするか固定して出力している.また, CENTER オプションを指定することで, 最小二乗平均の推定値を O で特定して示している. 以上のように, MEANS オプションを指定することで, 表 3 の最小二乗平均の推定値が出力されるため, 図 5 および図 6 の出力で示した Di品gram がどのように作成されたか確認できるであろう. なお, MEANS オプションも指定した下で, PLOT = DIFF の代わりに PLOT = MEANPLOT を指定すると, LSMEANS 文で指定した変数に対する各水準の最小二乗平均の推定値とその 95%信頼区間のグラフを作成で きる(付録 B を参照されたし、). SAS プログラム ods graphics on; proc phreg data=VALung; class Prior Cell Therapy I param= glm; model Time*Censor(l) = Kps Cell Prior Therapy Prior 大 Therapy; lsmeans Cell/ plot = diff(noabs center) means adjust = tukey cl exp; run; !出カ結果 Time の比較: Cell -0.5 、 、 、 、 、 / \ 、 ー1.0 、 足 ...... 、. ノ\. ー1.5 -2.0 ’ J ’ / . / 、 、 、 人、父: 脚mous -2.0 、 / 、 、 、 -1.5 l町 、、 、 、 司 、 \\ 包刷 -1.0 、. -0.5 alpha=O.O唱での差(Tul悼y-l(ramer嗣聾} ーーー・有意でない ーーーーー 宥意 図 6: LSMEANS 文のオプション機能を用いた Diffogram 作成プログラムとその出力 表 3: LSMEANS 文による共変量を調整した推定結果 Cell の最小 2 乗平均 Cell 推定値 下限 上限 指数 Exponentia旬d Exponentiated Lower Upper adeno -0.5778 ー1.5253 0.3697 0.5611 0.2176 1.4472 large -1.3269 -2.2197 -0.4341 0.2653 0.1086 0.6479 small -0.8843 -1.8132 0.04472 0.413 0.1631 1.0457 squamous -1.7384 -2.4919 -0.9848 0.1758 0.08275 0.3735 245
3 まとめ 本稿では, 比例ハザ ー ドモデルによる生存時間解析を行うためのプ口、ンジャである PHREG プロシジャに 関して,『生存時間解析応用編-SAS による生物統計』の刊行後に読者から寄せられた質問事項として, ベ ー スライン生存関数を推定するための BASELINE 文, および固定効果に対する最小二乗平均を求める LSMEANS 文におけるオプション機能に着目した. BASELINE 文では, SAS/STAT 9.2 より DIRADJ オプショ ンが追加されており, COVARIATE =オプションと併用することで調整生存関数の推定が可能である. COY.成lATE = オプションを指定せずに DIRADJ オプションを指定すれば, 調整する変数の各水準における 例数で重み付けした調整生存関数の推定が行われていることに相当する. なお, ODS GRAPHICS ON の状態 で, PROC PHREG 文において PLOTS(OVERLAY) = SURVIVAL および BASELINE 文で DIRADJ オプションを 指定すれば, すべての群の生存関数の推定結果のグラフとして出力される. このような調整生存関数の推定 は観察研究の論文報告でよく用いられており, 例えば Yuan et al. (2017)において図として報告されている生 存時間曲線が該当する. 一方, ODS GRAPHICS ON の状態で, LSMEANS 文を指定して PHREG プロシジャ を実行すると, 水準聞の対比較の結果を表す Diffogram が作成される. Di品gram の縦軸・横軸の値には, 最 小二乗平均の推定値(PHREG プロシジャの場合は対数ハザ ー ドに相当する)が出力されており, LSMEANS 文において MEANS オプションを指定することで確認可能である. その他にも, Diffogram の解釈を役立てる 機能として, LSMEANS 文における NOABS および CENTER の有用性を示した. 本稿で取りあげたすべての出力結果は,付録 A を含めた本稿に記述されている SAS プログラムで再現可能 である. 生存時間解析に従事する国内外の多くの実務家にとって, 本稿の報告内容がお役に立てれば幸いで ある. 参考文献 [1] Aalen 0. Nonparame凶c estimation of partial回nsition probabilities in multiple decrement models. Annals of Statistics. 6:701-726, 1978. [2] Breslow N. Covariance analysis of censored survival data. Biometrics. 30:89-99, 1974. [3] Cox DR. Regression models and life-tables (with Discussion). Journal of the Royal Statistical Society, Series B. 34:187-220, 1972. [4] High R. Plotting Differences among LSMEANS in Generalized Linear Models. Proceedings of the SAS Global Forum. SAS Institute Inc., Cary, NC, 2014. Available at htto://suooort.sas.com/resources/oaoers/oroceedimzs14/1902 2014.odf. 司 [5] Kaplan EL, Meier P. Nonparametric estimation企om incomplete observations. Journal of the American Statistical Association. 53:457--481, 1958. [6] Klein JP, van Houwelingen HC, Ibrahim JG, Scheike TH. Handbook of Survival Analyiis. Chapman and Hall/CRC, Boca Raton, FL, 20日. [7] Nelson W. Hazard plotting for incomplete failure da匂. Journal of Quality Technology. 1:27-52, 1969. [8] SAS Institute Inc. SAS/STAT(R) 9.2 User's Guide (2nd edn.). SAS Institute Inc., Cary, NC, 2009. [9] SAS Institute Inc. SASISTAT(R) 9.3 User's Guide. SAS Institute Inc., Cary, NC, 2011. 246
[10] SAS Institute Inc. SASISTAT(R) 12.1 User's Guide. SAS Institute Inc.,Cary,NC,2012. [II] SAS Institute Inc. SASISTAT(R) 14.2 User's Guide. SAS Institute Inc.,Cary,NC,2016. [12] Yuan C,Morales・Oyarvide 玖 Babic A,Clish CB,Kraft P,Bao Y,Qian ZR,Rubinson DA ,Ng K,Giovannucci EL, Ogino S,Stampfer MJ, Gaziano JM,Sesso HD, Cochrane BB, Manson JE, Fuchs CS, Wolpin BM. Cigare恥 smoking and pancreatic cancer survival. Journal of Clinical Oncology. 35: 1822-1828,2017. [13]魚住龍史 ・ 浜田知久馬 SG (Statistical Graphics) Procedures による Kaplan-Meier プロットの作成 .SAS ユ ー ザ ー 総会論文集 20 日,185-199. [14] 魚 住 龍 史 ・ 浜 田 知 久 馬 . がん臨床試 験 に お け る腫蕩縮小効果の検討に有用なグ ラフの作成 -SGPLOT プ口 、ンジャの最新機能を活用ー.SAS ユ ー ザ ー 総会論文集 2012,151-165. [15]魚住龍史. LS・Means再考-OLM と PLM によるモデル推定後のプロセスヘ SAS ユ ー ザ ー 総会論文集 2014,449-463. [16]魚住龍史 ・ 森田智視. 生存時間解析における三種の神器. 呼吸,34: 1083-1089,2015. [17]魚住龍史 ・ 吉田早織・平井隆幸,浜田知久馬. Kaplan-Meier プロット ・ Forest プロット作成の応用:グラ フ出力範囲内 ・ 範囲外への数値出力 .SAS ユ ー ザ ー 総会論文集 2016a,216・232. [18]魚住龍史・矢田真城・浜田知久馬 .SAS プロシジャを用いた生存時間デ ー タに対する例数設計の変革 .SAS ユ ー ザ ー 総会論文集 2016b,250・267. ,ア [19]魚住龍史. 有名論文から統計の基礎を学ぶ: COURA GE 試験における生存時間解析の側面. Corona Intervention, 13: 38-43,2017. [20]大橋靖雄 ・ 浜田知久馬. 生存時間解析-SAS による生物統計東京大学出版会,1995. [21J 大橋靖雄 ・ 浜田知久馬 ・ 魚住龍史. 生存時間解析 応用編-SAS による生物統計. 東京大学出版会,2016. [22]浜田知久馬 .SAS 生存時間解析プロシジャの最新の機能拡張 .SAS ユ ー ザ ー 総会論文集 2013,3・72. [23]浜田知久馬. SAS による多重比較「美女と野獣」の統計学 SAS ユ ー ザ ー 総会論文集 2015,367・388. [24]浜田知久馬 ・魚住龍史.SAS による生存時間解析の拡張機能.SAS LearningSession 2016a. 配付資料. [25]浜田知久馬 ・ 魚住龍史.SAS による生存時間分布の予測「Death Note の統計学J .SAS ユ ー ザ ー 総会論文 集 2016b,297. [26]矢田真城・浜田知久馬. ガンマ過程を用いた比例ハザ ー ドモデルによる解析. SAS ユ ー ザ ー 総会論文集 2016,100-109. [27]矢田真城 ・ 魚住龍史 ・ 浜田知久馬. 生存時間デ ー タに対するベイズ流例数設計. SAS ユ ー ザ ー 総会論文 集 2016,268・278. 子 [28]矢田真城 ・ 魚住龍史 ・ 浜田知久馬. 区分指数モデル及びフレイルティモテ ルに対するベイズ流生存時間 解析 .SAS ユ ー ザ ー 総会論文集 2017. 連絡先 E-mail: uo宮umi(a),kuhv. kvoto-u. ac. iv 247
付録A:図lのSGPANEL プロシジャによる出力のためのプログラム詳細 脊======== ============================ ==============合. * フォ ー マット J pr c f ,:mat; value Cellf 1= ’ aden。 ’ 2= ’ large ・ 3= ’ small ・ 4= ’ squamous ・ z value procf 1= ’ LIFETEST ’ 2=’ PHREG run; 。 。 合一一一一一一一一一一一一一一一一一== === * , * L工FETESTプロシジャによる出力結果; 一一一一一一一一一一一一一一一「 ds graphics on; ds listing close; ads output SurvivalPlot= lifetestOO; pr c lifetest data=VALung plots=s method=breslow; time Tェme*Censor(l); strata Cell; run; 。 。 。 *==================================================*, * PH阻Gプロシジャによる出力結果J * ========= ===================== ==== ================ * , data DummyCell; do CellC=l to 4; output; end; run; ds output SurvivalPlot=phregOO; pr c phreg data=VALung plots(overlay)=survival; class Celle/ param= glm; model Time*Censor(1) = CellC; baseline out=phregoutOO survival=S covariates= DummyCell/ nomean group=CellC; ru且; ods listing; ds graphics off; 。 。 。 *=== ============== ===================== ============*, * SGPANELプロシジャによる図 l の出力 F *============================ ==== ==================*, data lifetestOO;set lifetestOO; proc=l; run; data phregOO;set phregOO; proc= 2; rename Vector_=StratumNum; run; data survivalOO; set lifetestOO phregOO; run; 。 ds html image dpi=400 style= journal; ods graphics/ reset noborder noscale width= 600px height=400px imagefmt=png; eds listing close; pr e sgpanel data= survivalOO noautolegend; panelby J?roc/ novarname; step x=Time y= Survival/ group=StratumNum n副ne=’ Survival ・ J scatter x= Time y= Censored/ group=StratumN田n markerattrs=(symbol=plus); rowaxis values=(O to 1 by 0.1) label=’ Survival’ z colaxis values=(O to 1000 by 200) label= ’ Time’ F keylegend ’ Survival ’ / noborder position=bottom; format Strat山nNum Cellf. proc procf.; run; eds listing; ods graphics off; eds html close; 。 最小 2乗平均: Cell 自脇信頗限界 0.5 o.o Eト -0.5 蝶 刷 毛 ー1.0 曜 j -1.5 -2.0 -2.5 adeno large smsll Cell squam。us 付録B :LSMEANS文のオプション機能を用いた最小二乗平均の推定結果のグラフ出力 248
、 区分指数モデル及びプレイルティモデルに対する ベイズ流生存時間解析 l 0矢田真城 魚住龍史 1 , 浜田知久馬 l 2 1 東京理科大学大学院工学研究科経営工学専攻 2 京都大学大学院医学研究科医学統計生物情報学 Bayesian survival analysis for piecewise exponential and企ailty models 1 1 Shin o Yada , R川i Uozumi ・ 2, and Chikuma Hamada 1 1Depα昨nent of Management Science, Gr,αduate School ofEngineering, Tokyo Universi砂ofScience 2Department ofBiomedical Statistics and Bioinformatics, Kyoto University Graduate School of Medicine 要旨 、 SAS では,比例ハ ザ ー ドモデ ノレによる生存時間解析を行うためのプロシジャとして,PHREGプロシジャが用 、 意されている. Ver.9.2 より BAYES ステ ー トメントが追加され, 比例 ハ ザ ー ド モデルによるベイズ流生存時 間解析が可能となった. また, Ver.9.3 よりRANDOMステ ー トメントが追加され,フレイルティモデルによ る生存時間解析が可能となった.フレイルティモデルは,非独立な複数の生存時間デ ー タを解析するために, 、 比例ハ ザ ー ドモデ ルを拡張したものである. 比例 ハ ザ ー ドモデルに対するベイズ流解析では, ハ ザ ー ドには 事前分布を想定せず, 部分尤度に基づいてパラメー タ推定値を算出するアプロ ー チと, ハ ザ ー ドにも事前情 、 報を付与してパラメー タ推定値を算出するアプロ ー チがある. 本稿では, 区分指数モデ ルとプレイルティモ 、 デ ルに対するベイズ流生存時間解析についてまとめ, SAS による適用例を報告する. 、 、 キ ー ワ ー ド:ベイズ流解析, 生存時間解析, 比例 ハ ザ ー ド モデ ル, 区分指数モデル,フレイルティモデル, PHREGプロシジャ, MCMC プロシジャ 1. はじめに ある基準の時刻からある目的の反応(観測対象とする個体に対し 一 度だけ非再起的に起きる事象であると する)が起きるまでの時間を解析対象とする解析手法の総称を, 生存時間解析とよぶ(大橋・浜田, 1995 ;大 橋ら, 2016). 、 生存時間解析においてよく用いられる手法のひとつとして,Cox (1972)の比例 ハ ザ ー ド モデ、ルによる解析が あげられる. 比例ノ、ザ ー ドモデルは, 生存時間(基準ノ、ザ ー ド関数)に特定の分布を仮定することなく共変 、 、 量の効果を推定することから, セミパラメトリックなモデ ルとよばれる. SAS では, 比例ハ ザ ー ドモデ ルを 249
行うためのプロシジャとして,PHREGプロシジャが用意されている. Ver.9.2より,PHREGプロシジャに BAYESステ ー トメントが追加され(SASInstitute Inc., 2008), 比例ノ、ザ ー ドモデルを用いて, ベイズ流に生存 時間解析を行うことが可能となった. 比例ハ ザ ー ドモデルを用いて ベイズ流に解析する場合, ハ ザ ー ド関数に特定の分布を仮定せず, 回帰係数 に事前分布を想定し, 部分尤度に基づき共変量の効果を推定するアプロ ー チがある(矢田ら,2016). これとは 別に, ハ ザ ー ド関数を複数のパラメ ー タでモデル化し, 回帰係数及び ハ ザ ー ド関数に対して事前情報を付与 した上で, 推論を行うアプロ ー チがある. 後者に属するアプロ ー チのひとつとして, 時間軸を幾つかの区間 ‘ に分割し, 各区間でハ ザ ー ドが一 定であるとみなした, 区分指数モデ ノレ(piecewise exponential model)による解 析手法がある. 、 また, 生存時間解析において, 比例ハザ ー ドモデルのほかに用いられるセミパラメトリックなモデ ルとし て, プレイルティモデル(frailty model)がある. フレイルティモデルは, 非独立な複数の生存時間デー タを解 、 析するために, 比例ハ ザ ー ドモデルを拡張させたモデ ルで、 ある. SASでは, Ver.9.3より,PHREGプロシジ ャにRANDOMステ ー トメントが追加され(SASInstitute Inc.,2011), フレイルティモデルを用いた解析が実行 可能となった. フレイルティモデルに対するベイズ流生存時閥解析では, クラスタ ー のフレイルティの分布 を規定するパラメ ー タに事前分布を想定し, 部分尤度を用いて推論を行う. 別のアプロ ー チとして, ハ ザ ー ドをモデル化するパラメ ー タにも事前分布を想定し, これらの同時分布を用いて推論を行う方法がある. 、 本稿では, 区分指数比例 ハ ザ ー ドモデ ルとフレイルティモデルに対する ベイズ流生存時閥解析をまとめ, 、 、 SASでの適用例を紹介する. 区分指数比例ハ ザ ー ドモデ ルについては, ハ ザ ー ド関数をモデ /レ化するパラメ ー タと回帰係数に事前分布を想定し, モデルパラメ ー タ推定値を算出する方法を説明する. フレイルティモ デルについては, 回帰係数とフレイルティに事前分布を想定し, 部分尤度に基づきモデルパラメ ー タ推定値 e を算出する方法を説明する. 最後に, プレイノレティモデルについて, 回帰係数とフレイルティに加えて ハ サ ー 、 ドにも事前情報を与え, これらの同時確率分布を用いてモデ ルパラメ ー タを推定する方法を示す. 2. 区分指数モデ、ル 以下, 解析対象となる時間を生存時間とよび, 対象とする事象をイベントとよぶことにする. i番目の被験者(i= l,2,吋n)に対して, イベント発現時間あるいは打ち切り時間を t,, 打ち切りを表す変数を円 (イベント発現のとき v; = l, 打ち切りのとき町 =O), p 個の共変量を xi = 仇 1, X1,,••• , X;p/と表し,判所与のもと 、 でのハ ザ ー ド関数をl,{tIXj)とおく. このとき, 比例ハザ ー ド モデルでは, 共変量X1 をもっ被験者のハ ザ ー ド 関数以tI Xj)に対し T (I) A正tIX1 )=lo(t)exp(p x1 ) を想定する. ここにλ。 (t)は基準ノ、ザ ー ド関数であり,P = 伯,P2,…, p /は共変量ベクトルX1に対する回帰係 p 数ベクトルである. また, 共変量ベクトルX1をもっ被験者の生存関数 S(t I X1)は, Ari(t)を累積基準ハ ザ ー ド関 数として (2) T S(t I X1 )= exp(-exp(p x1 )Ari(t)) となる. 比例ノ、ザ ー ドモデルに対する ベイズ流アプロ ー チとしては, 回帰係数に対して事前分布を与え部分尤度を 用いて推論を行う方法と,回帰係数のみならず ハ ザ ー ド関数にも事前情報を与えて推論を行う方法とがある. 前者の部分尤度を用いる方法については, 黒田(2010)がその数理背景とPHREGプロシジャによるSASプロ 250
グラムコ ー ドを紹介している.以下では,後者の方法として,時間軸を小さな区間に分け, 区間ごとに ハ ザ
ー
ドをモデル化することを考える.
時間軸を, 0 =ho< h1< h2 <…< h1.・l く h1とJ個の区間[O, h1), [hi, h2),…,[hJ.t,
h1Hこ分割し, te [hiー I , hj)のときん(の=み(j=I,2,...,J ) であると考える.これは,時間軸を小さな区間に分割し,
各区間内では基準ハ ザ ー ド関数が一定とみなすことを意味する.このとき, モデルパラメ
/
と基準ノ、ザ ー ド関数におけるパラメ ー タl = (,1.1,λ2,…,A.1 であり,累積基準ハザ
。
A (t)=
ー
ー
タは回帰係数 p
ド関数Ao(t)は
工 ;t/\ /t),
p 」
こ
v」
lnJ
j
Ln 一
-
I 2n j
AU
raEEEE’tl,、』tillh目、
=
)
t
(
j
a
(t<h j )
(3)
(h j-1 5,t<h j )
(tミh j )
である. n 人のデ ー タD= {f;,V;,X 1 }7= 1 が与えられたもとでの尤度は, ハ ザ ー ド関数以t I x1),生存 関数 S(t I X1)に
対応する確率密度関数をf;(t I x1)として,
L(IJ,l ID)=白五 ( 1; 1 x 1 r; s<i; 1 x 1 )
1
V;
1
=白(ム(t;I x 1 )S(t; I x 1 ))"; S(t; I x 1 ) -v; =白λ, (t; I x i )"; S(t; I x 1 )
と表すことができる.これに (I)から(3)まで代入し整理すれば
_
I
L(似ID)=f1Q(ム州IJ'x;))恥 吋 - oij {A/t; -hj_1)+
n
J
f主
司
(lg -hg-1)}
I
l
(4)
となる(Ibrahim et al., 2001).ここにoif は, i番目の被験者がj番目の区間(h1.1, h1]に てイ ベ ント発 現あるいは打
ち切りであればl,それ以外は O をとる関数である(i = I ,2,.. , n ;j = 1ム…,J). (4)の形式で表現されるセミパ
ラメトリックモデルは,区分指数モデルとよばれる(Ibrahim et al., 200 I). tJの事前分布として平均ベ クトノレ fl o,
分散共分散行列丸の多変量正規分布を, j番目の区間における基準ハ ザ ー ド関数みの事前分布として互いに
独立に 平均ai Iめ,分散句/ザのガンマ分布(以下Ga(aj,りと表記する)を想定すると, pとkの同時事後分
布 p(IJ, "'ID)は
p(IJ, "'ID)民 L(IJ, "'I D) p(IJ)p(l)
で与えられる.ここに p(IJ )はpの事前分布
p(IJ ) ぽ叫十(IJ- fl o) Tr.�• (IJ- fl o) / 2),
J
10
)
AAJ
(ny
x
e
JH 一円
内A
氏
i・、
p
、‘,J
fJ
であり, p(l )はkの事前分布
である.
PHREG プロシジャでは,BAYESステ ー トメントに よりベイズ流生存時間解析を行うことができる. SAS
プログラムl は,Gehan(1965)の急J性白血病デ ー タ(以下「Gehanのデー タ」とよぶ)に対し区間指数モデル
をあてはめ, ベ イズ流生存時間解析を行うためのSASプログラム例である.大橋ら(2016)に倣い,Gehanの
デ ー タから,再発 または打ち切りを表す変数Week,群を表す変数Drug(プラセボ群であれば0, 6・MP群で
あればI), 打ち切りを表す変数Remis(打ち切りであればO, イ ベ ント発生であれば I)をもっデ ー タセット
Gehanを用意した上での実行を想定している.
251
SASプログラムl :区分指数 モデルに対するベイズ流生存時間解析 data Covar; do drug = 0, 1; output; end; format drug drugf.;run; proc phreg data = Gehan; class drug; model weekキ remiss(O ) =合唱; hazardratio合唱; bayes seed = 1 234 outpost = outsample nbi = 1000 nmc = 10000 thin = 2 coeffprior = normal(var = l e+3) statistics =(則nmary interval) pi氾cewise = hazard(ninterval = 5 prior = gamma(shape = l e・ 2 iscale = l e・2) ); baseline covariates = covar out = out2 survival = Survival I nomean group = drug; format合ug合ugf.; run; BAYESステートメントにて, 乱数の シ ー ドを1234,事後分布からのモンテカルロ標本を保存する SASデ タセット名を Outsample, burn-in数を1,000,生成させるモンテカルロ標本数を10,000, モンテカルロ標本 ー のサンプリング間隔を2 と指定した .従って,5,000個のモンテカルロ標本が Outsampleに 出力される. coe時rior = normal(var = l e+3 )と指定したことにより, 回帰係数に対する事前分布として, 平均 O,分散1,000 の正規分 布を与えたことになる.オプションPIECEWISE=が区間指数モデルをあてはめるためのキ ー ワ ー ドである. piecewise = hazard と指定したことにより, 各区間の基準 ハ ザー ド関数に対して事前分布が あてはめられる. PIECEWISEオプション において,prior = gamma(shape = le・ 2, iscale = l e・ 2))と指定したこと により,各区間の基 準 ハ ザー ド関数の事前分布として, 平均l,分散100 のガンマ分布が用いられる. 事後分布からのサンプリ ングアルゴリズムとして,適応的棄却 メトロポリスサンプリング(adaptive 吋ection Me住opolis sampling; ARMS), ランダムウオ ー クメトロポリスアノレゴリズムのいずれ かが使用可能であり, 特に指定しない限り ARMSが適用される. ARMSは, Gilks et.al. (1 995 )により提案されたサンプリングアルゴリズムであり, メ 、 トロポリス ー へイステイングアルゴ リズムと適応的棄却サンプリング( Adaptive r吋ection sampling; ARS) と を組み合わせた方法である. 出力結果l及び出力結果2は, SASプログラムl により得られる出力結果から 一 部抜粋したものである. オプションPIECEWISE=において ninterval = 5 と指定したため,時間軸が 5個の区間 に分割され,基準ハザ ー ド関数は 5個の パラメ ータによりモデル化される. 出力結果lより, 時間軸を[0,4 .5), [4 ム6.5), [6ム 10 .5), ・ [10.5,15 . 5), [15.5, 00)の5つの区間に分割し,各区間の基準ハザ ー ド関数み0=lふ…,5)に対して事後更新が行わ れたことが確認できる. 区間数の代わりに分割したい区間を直接指定したい場合には, intervals = とすれば よい . BAYESステートメントにて statistics = (summary interval ) と指定したことにより, 事後分布からの要 、 約統計量として, モデルパラメ ータごとに,モンテカルロ標本数, 平均,標準偏差, パーセント点, 95%信 用区間, 95% HPD(田D : highest posterior densiザ)信用区聞が算出される(出力結果2). SASプログラムl のように, BAYESステートメントとHAZARDRATIO ステートメントとを同時に指定することで, ハ ザー ド 比に関する ベイズ流の推定値を出力することが可能である. OUTPUT画面にて「 ハ ザー ド比 drugJとタイト 252
ルされた出力結果から,対照群に対する 6・MP 群のハザ ー ド比の事後平均 0.1985, 95%信用区間(0.0764, 0.4049), 95%HPD 信用区間(0.0552, 0.3707)となることがわかる. 出力結果 1 :区間指数モデルをあてはめたときの時間区切り ノ、ザ ー ドパラメ ー タ 。 上限) N 事象 4.5 7 7 Lambda! 4.5 6.5 6 5 Lambda2 6.5 10.5 8 6 Lambda3 10.5 15.5 7 6 Lambda4 15.5 h食y 14 6 Lambda5 [下限, 出力結果 2 :区分指数モデルに対するベイズ流生存時間解析事後分布に関する要約統計量 パーセント点 信用区間 パラメ ー タ 平均 標準偏差 25% 50% 75% Lambda! 0.0712 0.0277 0.0514 0.0674 0.0870 0.0290 0.1366 0.0234 0.1256 Lambda2 0.1545 0.0718 0.1029 0.1439 0.1940 0.0482 0.3283 0.0388 0.2983 Lambda3 0.1209 0.0516 0.0841 0.1134 0.1502 0.0426 0.2408 0.0342 0.2217 Lambda4 0.1737 0.0745 0.1202 0.1630 0.2169 0.0594 0.3471 0.0454 0.3201 Lambda5 0.1752 0.0833 0.115 0.1619 0.2205 0.0556 0.3741 0.0457 0.3495 drug6_恥fP -1.7075 0.4307 -1.9982 -1.6939 -1.4078 ・2.5724 ・0.9042 ・2.5516 ・0.8901 1.0 -'L』『 0.9 -, __ 95% 信用区間 95%HPD ---, ·-1_. 』『 0.8 ーー「 ..『 -, __- 0.7 一一一一一一 『 l 一、 0.4 0.3 0.2 0.1 0.0 。 5 10 Week 一一一一 Control 15 20 一一一・ 6-MP 図1: BASELINEステ ー トメントによる生存時間曲線 253 25
図1は, BASEL別Eステ ー トメントにより出力された予測生存時間曲線をプロットしたものである. デ ー タセットOut 2 を用いて S GPLOT プロシジャにより作成した. BASEL刑Eステ ー トメントにおいて, DIRADJ オプションを指定することで,GROUP = で指定した変数 別に直接調整された生存時間曲線が可能である (大 橋ら,2016;魚住ら,2017). しかし, ベイズ流生存時閥解析を行う際には DIRADJオプションが無効となるた め,COY.刷ATES = では,別途用意した群を表す共変量の値をもたせたデ ー タセット Cova r を指定している. 3. プレイルティモデル フレイルティモデルは, 比例ノ、ザ ー ドモデルに変量効果をもたせたモデルである. 例えば,E艮に起こるあ る疾息をイ ベントとする生存時間デ ー タを解析したいとする. 眼を個体とすれば, 個体に生起するイ ベント は1つとなる. 患者をクラスタ ー と捉え, 右眼と左限でのイ ベントのおこりやすさは, クラスタ ー の異質性 に起因すると考える.クラスタ ー の異質性を変量効果とみなし(生存時間解析ではフレイルティとよばれる), 比例ハザ ー ドモデルに反映させる. フレイルティモデルは, 以下のように定式化される. T , ,Xyp ) , ハザ ー ド関数を i番目のクラスタ ー におけるj番目の個体に対して,p備の共変量をX1j= X ( y t,Xy2 ••• λ〆tJxq)とする( i =1,2,…,G;J =l,2,…,n;). i番目のクラスタ ー のフレイルティを W;として, 基準ハザ ー ド関数 Ao仰を用いて λy{tix1J) = Ao( t) w;exp(x1/ll) ( 5) とモデル化する. (5 )において叫が互いに独立に平均 l ,分散6のガンマ 分布 Ga(l/印刷を想定したモデルは, , ガンマフレイノレティモデルとよばれる. また,(5)においてy;=log mとおけば ゐ《tlx1i) = ん(t)exp('/;+x1/1l) 、 ( 6) となる. (6 )においてわが互いに独立に N(O, tt2)に従うと想定したモデ ルを, 対数正規フレイルティモデルとよ ぶ. llの事前分布をp(!l), T W = (Wi, W2 ,…,WG) の 分布を規定する パ ラメ ー タOの事前分布を p(の, パ ラメ ー タ 0所与のもとでのwの同時確率密度関数をg(w I 0),得られたデ ー タDに対する部分尤度を Lp(ll, w ID)と表す とき, モデルパ ラメ ー タの事後分布p(ll,w, 0 ID )は p(ll,w.,θ ID) はら(ll,w I D)g(w I 0)p(ll) p(め ( 7) で与えられる. フレイルテイモデルの適用例として, Lin 1 ( 994)の糖尿病性網膜症のデ ー タをとりあげる. このデ ー タ(以 下「糖尿病性網膜症のデ ー タJとよぶ) は, 糖尿病性網膜症患者に対するレ ー ザ ー 治療の効果を比較するた め, 失明までの時聞を評価項目として, National EyeInstituteで行われた試験の197名のデ ー タであり, 大橋 T(R )User ’ s GuideThe PHREG Procedu reにおいても用いられている. 患者には ら(2016)の第3章やSAS/STA , どちらかの眼にランダムにレ ーザ ー 治療が割付けられ, もう片方の限はレ ー ザ ー 治療なしの状態で, 失明ま での時聞が観察された. 本稿では, 失明または打ち切りまでの時聞を表す変数Time, 打ち切りを表す変数 St a 旬 s (打ち切りであればO, イ ベント発生であればl), レ ーザ ー 治療あり ・ なしを表す変数T reat (レ ー ザ ー 治療なしのときO, レ ー ザ ー 治療ありのときl), 基礎疾患の発症時期を表す変数Type(発症時期が20歳未満 なら0, 20歳以上ならl)をもっSAS デ ー タセット Di b a を用いる. 254
SAS プログラム 2 :フレイルティモデルに対するベイズ流生存時間解析
proc pl官官g data = Diab;
class ID Treat乃pe;
model Time*Status(O) = Treat Type T問at 傘 Type;
hazardratio Treat;
random ID / dist = lognormal;
bayes seed = 1234 outpost = outsample nbi = I 000 nmc = I 0000 thin = I
coeffprior = normal(var = le+6) stat包tics = (summary interval)
dispersionprior = igamma(shape = le-2 , sealほ = le-2 ) statistics = (summary ir巾rval);
format乃pe Typef. Treat Lazerf.;
run;
SAS プログラム 2 は, 糖尿病性網膜症のデ ー タに対し, 治療法, 基礎疾患の発症時期, 治療法と基礎疾患
の発症時期の交互作用を共変量とし, クラスタ ー (被験者)のプレイルティを含めた, 下記対数正規フレイ
ルテイモデルによるベイズ流生存時間解析を行うためのプログラム例である.
).-y{t I Xift , x92) = .-1.o(t) exp(J'; +P1 xif1+P2 X92+P3 xif1X92)
β1,ft2,P3
~
(i =1ム…,197;j = 1,2)
6
N(0,10 )
Jl;IB ~ N(O ,め
。 ~ /G(0.01, 0.01)
ここに, Xijt ,Xy2 は, i 番目のクラスタ ー (患者)の j 番目の個体(右眼あるいは左娘)における治療法, 基礎
疾患の発症時期を表し, 抗が i 番目のクラスタ ー (!患者)のフレイルティである.
RANDOM ステ ー トメントにてクラスタ ー を表す変数を指定し,オプション DIST =により分布を指定する
ことで, クラスタ ー がある特定の分布に従うものとして, モデルに反映することが可能となる. SAS プログ
ラム 2 では, デフォルトである dist = lognormal と指定しており,(6)によって表される対数正規フレイルティ
モデルが設定される. なお, dist = gamma と指定すると,( 5 )によって表されるガンマフレイルティモデルが
設定される. BAYES ステ ー トメントにおいて, パ ラメ ー タ O の事前分布 p (めを指定するオプションが
DISPERSIONPRIOR =である. gamma(scale =a, iscale = b)とすれば Gam(a,b) を, igamma(scale = a, scale = b)と
すれば平均 bl(a・ I ), 分散 b /((a-l } (a・2))の逆ガンマ分布(以下 IG(a,b)と表記する)を, それぞれ指定すること
2
2
ができる. PHREG プロシジャでフレイルティモデルに対するベイズ流生存時間解析を行うと, 事後分布から
のサンプリングには, ランダムウオ ー クメトロポリスアルゴリズムが適用される.
出力結果3 :フレイルテイモデルに対するベイズ流生存時間解析事後分布に関する要約統計量
パー セント点
信用区間
95% 信用区間
標準偏差
25%
50%
75%
・0.5056
0.2329
・0.6637
・0.5137
・0.3444
・0.9612
・0.0571
・0.9238
・0.0332
P2
0.4437
0.2725
0.2786
0.4409
0.6145
・0.1027
0.9984
・0.1125
0.9708
p3
-1.0518
0.3896
-1.3135
-1.0637
・0.8009
-1.7819
・0.2413
1.7892
・0.2686
8
1.1576
0.4267
0.8682
1.1247
1.4134
0.2398
2.0801
0.1642
1.9070
パラメ ー タ
平均
P,
255
95%HPD
司
出力結果 3 は,モデルパラメ ータの事後分布に関する要約統計量である. 事後確率 Pr(Pi> OID)(/=Iム3)は,
,
事後分布から生成されたR個のモンテカルロ標本をp/>,p ベ…,p,<R>として
Pr伶OID)=
主 r,J(βfl > 0 )
l{ r=I
により求めることができる( A lbe民2009). ここで,/(・ )はカッコの中が成り立てば1 を,そうでなければO
をとる指示関数である. SASプログラム2 によって得られる,事後分布からのモンテカルロ標本を出力した
I )=0.0004 とな
デ ータセッ トOut sa mp l eを用いて算出すると,Pr(P1>0ID)=0.0069 , Pr偽>OID)=0.9408, Pr(P3>0 D
った. OUT PUT画面にて「T reat の ハ ザ ー ド比」とタイトルされた出力結果から,レ ー ザ ー 治療なしに対する
レ ー ザ ー 治療ありの ハ ザ ー ド比は,20歳以降に発症した場合,
事後平均0. 2 2 11 , 95%信用区間(0.1163 ,0.3893 ),
95%HPD信用区間(0.110 1 ,0.365のであるのに対し, 20歳未満で発症した場合,事後平均0.6198, 95%信用区
間(0.38 2 4 ,0.9445 ), 95%HPD信用区間(0.3658,0.906のであった.
上記は, ハ ザ ー ド関数には事前情報を付与せず,回帰係数にのみ事前情報を与えて,部分尤度に基づいて
推論を行う方法である. 比例 ハ ザ ー ドモデルに対するアプロ ー チと同様に, ハ ザ ー ド関数及び回帰係数に事
前情報を付与し,これらの同時確率分布を用いて推論を行う方法がある.以降では,その 一例として, ハ ザ
ー
ド関数に事前情報を付与するため,時間軸を小さな区間に分け,区間ごとに ハ ザ ー ドをモデル化した,区
分指数フレイルテイモデル (piecewise expon entia l frailty model)について紹介する.
i番目のクラスタ ーにおけるj番目の個体に対して,イベントが観察 されるまでの時間 ら,観察打ち切りま
での時間匂に対し,uij = min(tij舟,}, w ij = I(tij 三玉 Cij)として,巧,{t)=/(ら=弘wq=l), Y9{の=/(匂ミt)とおく.ここにK・)
はカッコの中が成り立てば1 を,そうでなければOをとる指示関数である.プレイルティモデルにおける ハ
ザ ー ド関数λ抑Jx1』)を,強度関数以のでおきかえると
I u{t)= Yu{t)Ao(のw; exp(x1{P)
となる.打ち切りが non-inform ativeであるとき,生存時聞が互いに独立として尤度は
•,「
ldNq(I)
DUI IFit)J
n
e
, '°'必
-·uv1••
(8)
となる. ここで,dNu{t)は微小時間[t,t+dt)に対するNij の僧分であり, i番目のクラスタ ーにおけるj番目の個
体が dtの聞にイベントが生起すればしそうでなければOの,いずれかの 値をとる.累積基準ハ ザ ー ド関数
~{のの微小時間[t,t+dt)に対する増分をd�(のと表すとき,微小時間[t,t+dt)に対する強度関数の増分lu(t)dtは
lu(t)dt= 引のw; exp(x1{P) d~(の
ι
となり,尤度(8)は,(9)で表されるIu(t)dtを平均値とするポアソン分布の核[ �t)dt]
されることがわかる.
(9 )
判。>
exp(-以のめから構成
時間軸を,O=hoくんくん〈… < hK,・1<むとK個の区間[O,h1),[hi,h2),…,[hK.J,hK)に分割し,te [hk-h hρのとき
ん{の=lk (k=l,2,…, K )であると想定する. (8), (9)の微小時間[t,什dt)を区間[hk-1,hk)と置き換えることで,(8)
により表される尤度を算出することができる. フレイルティモデルの場合,pの事前分布,基準 ハ ザ ー ドλ=
, ,G)のフレイノレティにある特定の分布を想定し,
(1 1 ,A.2 ,, , ,,A.Klの事前分布のほか,i番目のクラスタ ー( i =1 ,2 ...
その分布を規定するパラメ ー タ0の事前分布を与えることになる.
現時点では,PHREGプロシジャで区分指数フレイルティモデルを実行することはできない.ただし, DATA
ステップを用いて入力デ ータを加工することで,MCMCプロシジャによる実行が可能である. SAS/STAT(R)
U ser’ sG uide,The MCMC Procedu reでは,糖尿病性網膜症のデ ータに対し,区分指数フレイルティモデル( IO)
256
をあてはめてベイズ流生存時間解析を行うためのプログラムコ ー ド(SAS プログラム 3)が紹介されている.
ly{t I x!i 1, xy1)= lo(t) exp(y; +P1 xiiけんXy1+P3Xij t勾2)
~
lk
Gam(0.01, 0.01)
(i=1,2,…,197;j= 1,2)
(k= 1,2,・..,8)
P1,P2,ん~N(0,10 )
6
y;IO
~
(10)
N(O,め
。~/G(0.01, 0.01)
SAS プログラム 3 では,時間軸を 0.1<6.545<13.95<26.47<38.8<45.88<54.35<62<80 と, 8 つの区間[ 0.1, 6.545),
[6.545, 13.95), [13.95, 26.47), [26.47, 38.8), [38.8, 45.88), [45.88, 54.35), [54.35, 62), [62, 80)に分割している. 分割
値(0.1, 6.545, 13.95, 26.47, 38.8, 45.88, 54.35, 62, 80) をもたせたデ ー タセット Partition を用意する. デ ー タセ
ット P釘tition と Diめから, 197 個のクラスタ ー(被験者) における 2 つの個体(右眼と左眼), 合計 197×2=
394 個のデ ー タに対し, 各分割値でのリスクセットを変数 Y に, 計数過程を変数 dN に, 区聞を識別する番
号を変数別T_別DEX に, それぞれ入力したデ ー タセット Inputdata を用意する. その上で, MCMC プロシジ
ャを用いてモデルパラメ ー タの推論を行う. MCMC プロシジャでは, RANDOM ステ ー トメントにより, ク
ラスタ ー のフレイルティ, 基準ハザ ー ド に対して想定する分布を指定し, クラスタ ーごと, 区間ごとに, そ
れぞれ互いに独立に分布をあてはめることを, オプション SUBJECT =を用いて設定している.
SAS プログラム 3 :区分指数プレイルティモデルに対するベイズ流生存時閥解析
data pぽtition;
input int_l・int_9;
datalines;
0.1 6.545 13.95 26.47 38.8 45.88 54.35 62 80
run;
data _a;set Diab ;
if_n_ eq 1 then set partition;
array int[*] int_:;卸ay Y[8]; array dN[8];
do k= I to (dim(int)-1);
Y[k]= (time - int[k] + 0.001 >= 0); dN[k]= Y[k]事( int[k+ I] - time・0.001 >= 0) * s旬卸s;
end;
output;
drop int一: k;
run;
data _b;set _a;
町·ay y[事] y:;町ay dn 門血:;
do i= I to (dim(y)); y_val= y[i]; dn_val =血[ i]; int_index= i;output;end;
keep Y一:血一: type佐eat int_index id;
run;
data _b;set _b ;rename y_ val= Y dn_val= dN;run;
257
data inputdata;set _b;ifY > 0 ;run; proc mcmc data = inputdata nmc = 10 0 0 0 outpost = postout seed = 12351 s匂ts = summ紅y diag = none; P訂ms betal・beta3 0 s2; prior beta: ~ normal(O, var = le+6); prior s2 ~ igamma(0.01, scale = 0.01); random lambda~gamma(0.01, iscale = 0.01) subject = int index; random u ~ normal(O,四 = s2) subject = id; bZ = betal*位eat + beta2 *type + beta3*treatホ type + u; idt = exp(bZ) * lambda; model dN~poisson(idt); run; 出力結果4:区分指数フ レイルティモデルに対するベイズ流生存時間解析事後分布に関する要約統計量 パー セント点 パラメ ー タ 平均 標準偏差 25% Pi ・0.4341 0.2290 -0.5882 P2 0.3552 0.2194 p3 ・0.3529 0.3434 。 信用区間 50% 75% 0.4274 -0.2873 -0.9034 0.0239 ・0.9658 ・0.0453 0.2194 0.2069 0.5000 ・0.0529 0.8053 -0.0536 0.8022 0.3477 ー1.0927 -1.0927 -0.6136 ー1.5162 0.1793 ー1.5600 -0.2312 0.2063 0.1999 0.3137 0.4547 0.0422 0.8143 0.0267 0.7158 明 95%HPD 95% 信用区間 司 出力結果 4 は, SAS プログラム 3 を実行して得られる結果をまとめたものである( SAS プログラム 3 で, stats = 釦 mmary を stats = all とすれば信用区聞が得られる). SAS プログラム 3 では, ないため, モンテカルロ標本から算出することになる. (IO)では, ハ ザー ド比は算出され レー ザー 治療なしのとき X l = O, レー ザー ij 治療なしのとき Xijl = 1,発症時期 20 歳未満のとき Xy2 = 0 ,発症時期 20 歳以上のとき xρ = l とコ ー ディングし ているので, 20 歳以降に発症した場合での レー ザー 治療なしに対する レー ザ ー 治療ありのハ ザー ド比 HR 1 は exp(P1 ×1 + β2 X 1÷β3 ×l×1) =exp(P1 + PJ ) X 1 + PJ X 0×I) exp(βI X O + P2 となる. 従って, 事後分布からの R 個のモンテカルロ襟本をあ ( > , P1 ci> ,..., p/ >として(/ = 1ム3), l R ハ ザ ー ド比 l ( ) 伏 伏) HR 1 の事後平均は, exp(P 1 )+p/\ exp(P1 c2>+p3 2 ),…,exp(P 1 >+ p 3 )の平均値として求めることができ, 95% 信 C 用区間はこれら R 個のモンテカルロ標本の 2.5% 点と 97.5% 点として求めることができる. 一方, 20 歳未満で 発症した場合での レー ザ ー 治療なしに対する レー ザー 治療ありのハ ザ ー ド比 HR2 は , exp(β xl + β2 x0 + β3 xlx0) exp(β1 xO+βi xo+p3 × OxO) =e叩(β1) となる. よって ハ ザ ー ド比 HR2 の事後平均は侃 p(Pi° >), exp伊i'2う,…,exp(P1 Rl)の平均値として, 95% 信用区聞 C はこれら R 個のモンテカルロ標本の 2.5% 点と 97.5% 点として, それぞれ求めることができる. SAS プログラ ム 3 により作成されるデー タセット Outpost を用いて算出すると, 20 歳以降に発症した場合での レー ザー 治 療なしに対する レー ザー 治療ありのハ ザー ド比 HR 1 の事後平均 0.2866, 95%信用区間( 0.1587,0.4645), 20 歳未 満に発症した場合での レー ザー 治療なしに対する レー ザー 治療ありのハ ザー ド比 HR の事後平均 0.6650, 95% 2 258
(0.4052, 1.0242)であった. 信用区間 4. まとめ 生存時間解析の手法として, 比例ハ ザー ドモデルとフレイルティモデルをとりあげ, ベイズ流アプロー チ 、 、 について紹介した. 比例ハ ザ ー ド モデ、ルについては, 時間軸をいくつかの区間に分割することで ハ ザー ドを 複数のパラメー タで表現する, 区分指数モデルをとりあげた. 区分指数モデルは, PHREGプロシジャの E EWISEオプションを用いることで実行可能である. なお, 区分指数 BAYESステ ー トメントにおいて, PI C モデルはパラメトリックに例数設計を行う際にも有用である(魚住ら,2009). フレイルティモデルに対して, 部分尤度に基づく推論を行し、たい場合には, PHREGプロシジャのBAYESステ ー トメントにおいて, COEFF PR ORオプションと I D SPE I RSION PRIORオプションを用いることで実行可能である. 一方, フレイル ティモデルにおいて, ハ ザー ド関数にも事前情報を与えて解析を行うというアプロー チも考えられる. その 、 、 一例として, 区分指数プレイノレティモデ ルをとりあげた. 区分指数プレイルティモデ ルは, 計数過程に対応 させた形式に加工した入力デ ー タを用いて,MCMCプロシジャのRANDO M ステ ー トメントにより実行する ことができる. ベイズ流生存時間解析には, これ以外にも多数の手法が存在する. 各区間での基準ハ ザ ー 本稿で説明した区分指数モデルでは, ド関数は互いに独立と仮定している. しかし, 隣接する区間でのハ ザ ー ドは同じよう な傾向をもっと想定し,基準 ハ ザー ド関数に対して相関をもっ事前分布を適用することも考えられる.また, 累積ハ ザー ドに対して事前情報を付与する方法も考えられる. ガンマ過程(Kalbfleisch,1978; Clayton,1991), 拡張ガンマ過程(Dykstra and La ud,1981),ベー タ過程(珂ort,1990)といった確率過程を用いた累積ハ ザー ド関数 、 のモデ ル化が該当する. 事前確率過程を用いる場合, 確率密度関数を明示的に導出できないため, 推論はシ ‘ ミュレ ー ション実験に基づくものとなる. このため, 各モデ ルに応じた事後確率過程からのサン プリングア ルゴリズムが開発 ・ 研究されている. ガンマ過程を用いたベイズ流生存時間解析は,MCMCプロシジャを用 いて実装が可能である(矢田 ・ 浜田,2016). 本稿では, 生存時間デー タに対するベイズ流解析のうち, PHR EGプロシジャやMCMCプロシジャの既存 の機能で実行可能な手法について説明した. PHREGプロシジャやMCMCプロシジャは, SAS/STATとして 提供されている. SAS/STATは毎年のようにパー ジョンア ップされ, そのたびに新規プロシジャの追加, 既存 プロシジャでの新機能搭載がなされている(大橋ら,2016;浜田 ・ 魚住,2016;魚住ら,2016). 今後,SAS/STA T の機能拡張が行われていく中で, ベイズ流解析の手法も組み込まれ, ベイズ流アプロー チがより身近になる ことを期待したい. 参考文献 [I]大橋靖雄 ・ 浜田知久馬(1995). 生存時間解析-SASによる生物統計東京大学出版会. [2]大橋靖雄・浜田知久馬 ・ 魚住龍史(2016). 生存時間解析応用編 SASによる生物統計東京大学出版会. [3]C ox,D .R .(l 972).R egression mo dels andlife ta bles (with D iscussion). Journal of the Royal Statistical Society, Series B. 34:187-220. [4]SAS Institute Inc.(2008). SASISTAT(R) 9.2 User's Guide, C ary, NC, USA: SAS Institute Inc. 259
[5]矢田真城・魚住龍史・浜田知久馬(2016). 生存時間デ ー タに対するベイズ流例数設計.SAS ユ ー ザ ー 総会論 文集, 268・278. [6]SAS Institute Inc.(2011).SAS1STA1i伺) 9.3 User's Guide, Cary, NC, USA: SAS Institute Inc. [7]黒田普吾(2010).Cox 回帰における Bayes 推定と PHREG プロシジャ.SAS ユ ー ザ ー 総会論文集, 23-44. [8]SAS Institute Inc.(2016).SASISTAT(R) 14.2 User's Guide, Cary, NC, USA: SAS Institute Inc. [9]lbrahim, J.G., Chen,M.H., Sinha,D.(2001).Bの·esian Survival Analyiis. Springer-Verlag, New York. [IO]Gehan, E.A.(1965).A generalized Wilcoxon test for comparing ar脱出ry single-censored samples.Biometrika. 52: 203-223. [11]Gilks, W. R., N.G.Best, and K.K.C.Tan.(1995).Adaptive Rejection Metropolis Sampling with Gibbs Sampling. Journal of the Royal Statistical Society, 44: 455-472. [12]魚住龍史・ 矢田真城 ・浜田知久馬(2017).PHREG プロシジャにおける共変量調整解析に関連したオプシ ョン機能 .SAS ユ ー ザ ー 総会論文集. [13] Lin, D.Y.(1994).Cox Regression Analysis of Multivariate Failure Time Data: The Marginal Approach.Statistics 初 M』dicine, 13: 2233-2247. [14]Albert,J.Bayesian Computation with R.Springer-Verlag, 2009. 石田基広・石田和枝(訳). R で学ぶベイズ統計学 入門. 丸善出版, 2012. [15]魚住龍史・水津純基・浜田知久馬(2009). 生存時間解析における Lakatos の症例数設計法の有用性の評価. SAS ユ ー ザ ー 総会論文集, 143-152. [16]Kalbfleisch, J.D.(1978).Non-parame甘ic Bayesian analysis of survival time da旬.Journal of the Royal Statistical Society: Series B. 40:214ー221. [l 7]Cla戸on, D.G.(1991).A Monte Carlo Method for Bayesian Inference in Frailty Models.Biometrics, 47:467-485. [18]0旅館a,R.L.and Laud,P.W. (1981).A Bayesian nonp紅ame凶c approach to reliability. The Annals ofStatistiα.9, 356-367. [19]同ort,N.L.(1990). Nonparame甘ic Bayes estimatiors based on beta processes in models for life history data. T売E Annals ofStatistics. 18, 1259-1294. 、 [20]矢田真城・浜田知久馬(2016). ガンマ過程を用いた比例ハザ ー ドモデ ルによる解析.SAS ユ ー ザ ー 総会論 文集, 100-109. [21]浜田知久馬・ 魚住吉量史(2016).SAS による生存時間分布の予測「 Death Note の統計学 J .SAS ユ ー ザ ー 総 会論文集, 297. [22]魚住龍史・ 矢田真城 ・浜田知久馬(2016).SAS プロシジャを用いた生存時間デ ー タに対する例数設計の変 草.SAS ユ ー ザ ー 総会論文集, 250-267. 連絡先 E-mail: yada-s@a2healthcare.com 260
ユーザー総会2017 抄録原稿 申請電子デ ータプロセスの効率化~メタデ ータ ・社内ツ ー ルを中心に o飯島 康浩, O 梶原 正幹, o小南真由美, 中嶋優 一 , 北原孝志 (ノパルティスファ ー マ株式会社) .抄録本文 PMDA (Phannaceuticals and Medical Devices Agency)は2016年10月より電子デー タ提出の受領を開 始した。 2016年11月から2品目の電子デー タを提出した経験より社内プロセスの標準化や社内ツ ー ルの有用性を実感した。 本発表では, ノパルティスのデー タ標準や申請電子デー タを準備する為の メタデー タ, 佃notationを効率化するツ ー ルやDefine氾nlの確認ツ ー ルを紹介する。 Part1. メタデー タの導入は, CDISC標準を前提としたデー タの更新・修正履歴の管理, 試験問で運用する デー タの整合性の確保, さらにはデー タ作成プログラムのテンプレ ー ト化など様々なメリットが考 えられる。 ノパルティスでは2009年より, 臨床試験デー タ管理を目的としたメタデー タの利用し, 症例報告書(Case Report Fonn)で取得されたデー タから申請電子デー タまでをEnd to endに管理し ている。 本Partではノパルティスのメタデー タを紹介し, さらにはそれを管理するガパナンス体制 を紹介する。 Part2. 注釈っき症例報告書(Annotated CRF)は, FDA (U.S. Food and Drug Administration)およびPMDAへ の新薬の承認申請では提出が必須である。 Annotated CRFには, CDISC標準のモデルの 一 つである Study Data Tabulation Model (SDTM)に格納される変数名および統制用語が表示され, これらの情 報を手作業で付与する場合, Data Managerや統計解析担当者にとって大きな負担となることが考え られる。 本Partで、は, SASを用いて効率的に注釈付けを行う方法を紹介する。 Part3. Define.xmHまSDTM, SEND, ADaM提出デー タセットのメタデー タを記述するためのODMに基づく XMLスキ ー マ仕様で、ある。 多くの申請では各臨床試験及びそれらの併合デー タにもDefine.xmlが必 要であるため,それら複数のDefine.xmlの整合性を確認することは多大な労力がかかる。本Partで、は, これらをより簡便に確認できるようにSASマクロを使用したDefine.xml確認ツ ー ルを紹介する。 メタデー タの活用, SASプログラムを用いたツ ー ルの利用は作業を包括的に標準化, 効率化でき, 解析プログラマ ー や解析担当者のリソ ースの負担を低減できる。標準化と簡便化は電子デー タ提出 の経験から重要な要素の1つであると考える。 261
SASによるベイズ流試験の成功確率の計算 0張 方紅 北原 (ノパルティスファ 孝志 ー マ) 製薬業界で研究開発コストが高騰している中で,試験の成功確率を評価することが求められてきた. 頻度論での古典的な検出力(Classical power)は,薬の効果を表すパラメ ー タを未知の固定値とみなし, 対立仮説としてある値を想定し,薬の効果がなしという帰無仮説を棄却して, 効果がありと判断す る確率となる. 古典的な検出力はパラメ ー タの特定な値に依存していることから, 条件付検出力 (conditional power)と言し、換えている(Brutti, et. al., 2009). 条件付検出力は対立仮説で想定したパラ メ ー タの値に完全に依存することとパラメ ー タの不確実性を考慮していないという指摘を受けて いる(Spiegelhalter et. al., 2004, Brutti, et. al., 2009).想定したパラメ ー タの値が真であることを保障す ることができなく, その値が楽観過ぎるかもしれない. ラメ ー 一方, ベ イズ接近法では, 関心のあるパ タを確率変数とみなし, その不確実性を事前分布p(0)で表現する. 古典的な条件付検出力に 対して, 事前分布p(0)で、 積分して得られた無条件確率が提案され, 平均検出力(expected power, average power), または, Assuranceと名つげている(Spiegelhalter et. al., 2004 ; 0 ’ Hagan, et. al., 2005). Assuranceは薬の効果を表すパラメ ー タの不確実性を考慮していることで,よりロバストな試験の成 功確率を評価することができる. 試験の成功確率として,Assuranceは海外で、既に開発計画段階で利 、 用され, 日本では石田・川崎・土居は2017年の第4回デ ー タサイエンスラウンドテ ー ブ ル会議で話 題として提起されているが, まだ実例はあまり見られない. そこで, 本発表は, 2値デ ー タを評価 項目と想定し,薬の効果があるかどうかの判定基準と成功確率の計算はそれぞれ頻度論とベ イズ流 があるということで, あわせて4つの場合, 試験の成功確率を計算する方法を示す. また, 実務者 のため, SASプログラムを与える. 【参考文献 I Bruttil P, Santis FD, Gubbiotti S. Mixtures of prior distributions for predictive Bayesian sample size calculations in clinical出als. Statist. Med. 2009; 28:2185-2201. Spiegelhalter DJ, Abrams KR, Myles JP. Bayesian approaches to clinical trials and health-care evaluation. Wiley: Chichester, 2004. 0 ’ Hagan A, Stevens J. and Campbell J. Assurance in clinical trial design. Pharmaceutical Statistics. 2005; 4: 187-201. 、 石田弘輔,川崎洋平,土居正明(2017)第4回デ ー タサイエンスラウンドテ ー ブ ル会議テ ー マ4 https://www.pmda.go.jp/files/000217616.pdf 262
SASによる傾向スコアマッチング 0魚住龍史 l 矢田真城 2 1 京都大学大学院医学研究科 山本倫生 3 川口淳 4 医学統計生物情報学 2 東京理科大学大学院工学研究科経営工学専攻 3 岡山大学大学院環境生命科学研究科 4 佐賀大学医学部附属地域医療科学教育研究センタ ー Propensity score matching using SAS 1 2 3 4 Ryt』�i Uozumi , Shinjo Yada , Michio Yamamoto , and Atsushi Kawaguchi 1Department ofBiomedical Statistics and Bioi;ゆrmatics, Kyoto Universi勿Graduate School of Medicine Department ofMαnagement Science, Graduate School of Engineering, Tokyo Universi砂ofScience 2 3Graduate School of Environmental and L 酔Science, Ok句�ama University 4F.αculty of Medicine, Saga Universi,砂 要旨 競床研究では,ランダム化比較試験によって得られたデ ー タの場合,群間比較を行う際の比較可能性が担保 される. しかし,ランダム化比較試験でなく,観察研究によって得られたデ ー タの場合,比較可能性が担保 されず,群間比較としてはバイアスが混在した結果となってしまう場合がある. 比較可能性を担保する方法 のひとつとして,傾向スコアによる マ ッチングがよく行われている. これまで,SAS/STATで提供されている LOGISTICプロシジャで 傾向スコアを算出して,マ ッチングに関してはDATAステップでプログラムを構築 しなければならなかった. しかし,SAS/STAT 14.2 (SAS9.4 TSIM4)では,新たにPSMATCHプロシジャが追 加され, 傾向スコアによる分析を行うためのさまざまなツ ー ルが提供された. 本稿では,PSMATCHプロシ ジャを用いて, 傾向スコアによるマッチングを行う方法に関して解説を行い,JMPやRを用いて実施する場 合との比較に関しても報告する. キ ー ワ ー ド:観察研究 PSMATCH キャリパ ー 傾向スコア 平均治療効果 PSMODEL MATCH ATE ASSESS Aπ マッチング ODS GRAPHICS 最近傍マッチング 箱ひげ図 度数分布 クラウドプロット 1 はじめに 臨床研究では,ランダム化比較試験によって得られたデ ー タの場合,群間比較を行う際の比較可能性が担 保される. しかし,ランダム化比較試験でなく,観察研究(observational study)によって得られたデ ー タの場 263
合, 比較可能性が担保されず, 群間比較としてはバイアスが混在した結果となってしまう. 比較可能性を担 保する方法として,マッチング,層別解析,および回帰モデルによる解析などが挙げられる(Faries et al., 2010) . 近年, 観察研究において傾向スコアによる解析がよく行われている. 著者らも, 臨床研究者から傾向スコ アマッチングや重み付きの調整解析に関する統計相談に対応した経験を有している. 本稿では, 傾向スコア 、 マッチング (propensity score matching)による調整解析に焦点を当てることとする. 観察研究において, 試験 治療と対照治療の比較を行うと仮定すると, 背景悶子で条件付けたもと, 試験治療を受ける確率が傾向スコ アである . SAS/ST AT では, LOGISTICプロシジャにおけるOUTPUT ステートメントのオプションを指定す れば, ロジスティックモデルによる予測確率が出力される. すなわち, 応答変数として治療を表す変数を指 定すれば, 傾向スコアを出力させることが可能である. しかし, 傾向スコアによるマッチングを行う場合, ‘ SAS/STATのプロシジャで処理することはできず,DATAステップでマッチング を行うためのプログラムを構 築しなければならなかった. このため, 傾向スコアによるマッチングを実施している臨床研究では, SAS以 外の統計解析ソフトとして,例えばRのパッケ ージ “ M atch” を用いた結果が報告されている(Hamatani et al., 2016; Hida et al., 2017). また,JMPのアドインを用いた傾向スコアによるマッチング解析の結果も報告されて いる(Y:阻ashita et al., 2017). しかし,JMPのアドインを用いたマッチングでは,JMPスクリプト言語を用い 、 ない限りプログラムによる効率化ができない. 加えて,JMPのアドインによる方法では, マッチング の条件 指定の定義が特殊であることに留意しなければならない. したがって, SASユ ー ザ ーであれば, SASを用い 、 て傾向スコアマッチング を行うことができれば, より効率的に実施できるといえる. (SAS9.4 T S1M 4)では,新たにPSMATCHプロシジャが追加され, 傾向スコアによる分析を SAS/STAT 14 .2 行うためのさまざまなツ ー ルが提供された(SASInstituteInc ., 2016). 本稿では,PSM ATCHプロシジャを用い 、 て, 傾向スコアによるマッチング を行う方法に関して解説を行い,JMPやRを用いて実施する場合との比較 に関しても報告を行う. 2 傾向スコアとマッチング 本節では, ランダム化比較試験および観察研究における平均治療効果の推定について考えたもとで, 傾向 スコアおよびマッチングに関して解説する. 2.1 観察研究における平均治療効果の推定 2値の指示変数Zとして, Z=Iを治療群, Z=O を対照群とする. さらに, 潜在的結果変数(potential OU総ome)として, 治療群であった場合の結果変数Y(I), 対照群で、あった場合の結果変数 Y(O) のいずれかをと り, 観察される結果変数は IY(O) (Z=O) Y = ZY(l)+(l-Z)Y(O)=� [ Y(I) (Z = I) 、‘,, l ,a・、 となる. このとき, ATE=E[Y(l)-Y(O)J は平均治療効果(average田atment e挽ct;ATE)は呼ばれ, ATT=E[Y(l)-Y(O)I Z =I] (2) は治療群に対する平均治療効果(average田atment effect on the出ated;ATT )と呼ばれる. 264
ランダム化臨床試験のもとでは,{Y(l), Y(O)} 上Zであり, AT E はATT に 一 致する. このとき, 観測デ ー タか ら, ATE および AπはE[Y(I)I Z =1ト司Y(O)IZ=O]と表せ, 平均治療効果の不偏推定を可能とする (Lunceford and Davidian,2004). 一 方, 観察研究のもとでは,{Y(l), Y(O)} ムZが成り立たず, AT E は ATT と異なる. さらに, 結果変数は直 接的に治療効果を推定できない. ここで, ATTは, ATT=E[Y(I)-Y(O)I Z =1] =E[Y(I)I Z =I卜 E[Y(O)I Z =O] + E[Y(O)I Z =O]- E[Y(O) J Z =1] と分解することができ, E[Y(l)I Z =1ト E[Y(O)I Z =O]は推定可能である 一方, 選択バイアスである E[Y(O) I Z = O]-E[Y(O) I Z = I]は推定不能である. 観察研究において,治療効果を正しく推定する方法として, 傾向スコアに基づく調整解析が挙げられる. 2.2 傾向スコアとモデルによる推定 X ; を被験者iε{1, 2,…,N}において観測される共変量ベクトル, Z; を被験者iの群を表す指示変数とする と, X,で条件付けたもとで治療群である確率e; =Pr(Z; =llX; )が傾向スコアと定義される(Rosenbaum and Rubin,1983). 2群間で割付比が1 : Iのランダム化比較試験の場合, 傾向スコアは町= 1/2となる. また, 傾 向スコアはバランススコア(balancing score)とも呼ばれており, 傾向スコアで条件付けたもとで, 各群で観 察される共変量の分布が似通っていることが望まれる(Z; ..lX; le). 傾向スコアは, 治療群を表す変数を応答変数としたロジスティックモデルから推定され, SA S/STATでは LOGISTICプロシジャによって算出可能である. ここで, 群を表す変数をZ(Z= I:治療群,Z=O:対照群 ), 調整する共変量として, 性別, 年齢, BMIを表す変数をそれぞれG ender, A ge, Bmiとする. このとき, プ ログラムlを実行させることで傾向スコアe; を推定することが可能であり,傾向スコアを表す変数 PSを含ん だデ ー タセットが出力される. 傾向スコアを算出するためのロジスティックモデルは 「傾向スコアモデル (propensity score model)」 と呼ばれる. プログラム1 : LθGISTICプロシジャによる傾向スコアの算出プログラム例 proc logistic data= <入力デ ー タセット名>; class Gender; model z(event= ’ 1 ’ )= Gender Age Bmi; output out= <出力デ ー タセット名> pred=ps; run; なお, 傾向スコア推定の際のロジスティックモデルの説明変数として, どのような変数を指定するかにつ いてはコンセンサスが取れていない. Ronsenbaum (2010)は, 「傾向スコアによるマッチングでバランスを取 りたい変数で考えるべきである.」と述べている. A ustin et al. (2007)は, 「ランダム化比較試験と同じように 被験者背景の表を群別に作成し, アンバランスなベースラインの共変量を選択する. 選択する共変量は重要 な予後因子であるべきであり, この手順は傾向スコアによるマッチングでも用いると効果的である.」と述べ ている. 傾向スコアe; を用いて, マッチングや重み付きの調整解析を行うことが可能である. 重み付きの調整解析 に用いる「重みJとして,傾向スコアの逆数で表されるIPTW ( inverseprobability of treatment weighting)やATT Weightingがよく用いられ, それぞれ 265
- -- 一 IPTW 一Z; ''IP1Wi - ATT Weighting ATI,, e; ' 1-Z; (3) ’ l一角 e;(l-Z;) =Z,.+ 一一一一一一 , 1-e, (4) として表される. なお,IPTWはATEを推定するために, ATT WeightingはA打を推定するために用いられ る. SASによる傾向スコアを用いた重み付き解析として,IPTW法による解析方法について,SASユ ー ザ ー 総会においても報告されている(古川, 2011). 2.3 傾向スコアによるマッチング 傾向スコアによるマ ッチングでは, 治療群と対照群における被験者のうち, 傾向スコア が似通った被験者 をベアとして, 新たな解析対象集団を構成する( “ matched sample” と呼ばれる ). マ ッチングにより解析対象 集団 が構成された後 , 群聞の治療効果を推定すれば,AT Tの推定 を可能とする. なお, 本稿では, 治療群 よ りも対照群の被験者数 が多い状況を想定する. 傾向スコアによるマ ッチングを行うためには, 被験者の傾向スコア聞の差異を測るための尺度 が必要とな る. その理由は, 傾向スコアモデルに連続変数を含め た場合, ある被験者と全く同 一の傾向スコアを持つ被 験者を見つけることは困難であるためである. 被験者iと被験者jの傾向スコア間の差異を測る尺度として, - 傾向スコア自体の差同 ejIや, 傾向スコアのロジット変換した値の差Ilogit (e; )一logit(e)Iが用いられる. 傾向スコアによるベアを構成するために, よく用いられる方法として, 最近傍 マ ッチング (greedy nearest neighbor matching) が挙げられる(Rosenbaum and Rubin, 1985 ). 最近傍 マ ッチングでは, 治療群の被験者に対 して最も差異の小さい被験者を対照群から選択してベアを構成する. 例えば, 治療群1名に対して対照群か ら1名を選択する方法 はI : I マ ッチングと呼ばれる.対照群から k名を選択するk: I マ ッチングとして実施 することも可能である. 最近傍 マ ッチングによってベアを構成する場合,特定 のキャリバ ー ( caliper)を指定し, キャリバ ーの値に 基づいて算出される幅以下であればベアの構成が行われる. 傾向スコア マ ッチングの場合、 キャリバ ーの値 として, 傾向スコアの推定値をロジット変換した値の標準偏差に 0.25を掛けた値を推奨する報告がある (Rosenbaum and Rubin, 1985 ). 近年の報告としては, 傾向スコアの推定値をロジット変換した値の標準偏差に 0.20を掛けた値を用いること で, 多く の状況下でバ イアスが小さくなることが示されている(A ustin, 2011). キャリバ ー が傾向スコアの推定値をロジット変換した値の標準偏差に 0.20を掛けた値で設定された事 例は多 く報告されており,例えばBangalore et al. (2015 )とその解説記事として回栗( 2017 )を参照されたい.ただし, か確認するこ 実際にマ ッチング 実施後に, 傾向スコアで調整した変数の分布に群間で、 バ イアスがなくなった には, キャリバ ーの値を再考する必要 がある(山本・森 とが重要であり, バ イアスが生じたま まである場合 田, 2015). SASを用いて傾向スコア マ ッチングを行う場合,プ ロシジャでサポ ー トされていない分析手法であるため , DATAステップで最近傍 マ ッチングのアルゴリズムを組ま なければならなかった .DATAステップで傾向スコ ア マ ッチングを行うためのSAS マ クロ が報告されているが(Coca手erraillon, 2007; Lanehart et al., 2012 ), キャ リバ ーの設定値 が傾向スコアの推定値をロジット変換した値の標準備差を掛けた値となっていない. そ こで, 3節で解説する プ ロシジャの動作を理解する手助け となるよう, 過去に報告されたSAS マ クロを改良して, SASの DATAステップ上で,傾向スコアによる最近傍 マ ッチングを行うためのSAS マ クロを開発した.詳細 は, 付録Aを参照されたい. 266
2.4 JMPを用いた傾向スコアによる1 : 1最近傍マッチング SASの代わりにJMPで分析を行う場合,次のURLからアドインをダウンロー ドすれば,傾向スコアによ るI : I 最近傍マッチングを行うことができる. ただし,JMP11.0以上のパージョンでなければならない. アドイン入手URL: htto://www.imo.com/content/dam/imo/documents/io/suooort/orooensitvaddin.zio 傾向スコアによるI : 1 最近傍マッチングを行うにあたっては,事前に傾向スコアを表す変数もデータセッ トに用意する必要がある. SASを用いる場合はLOGISTI Cプロシジャの OUTPUTステ ー トメント,九fl'を用 いる場合は「名義ロジスティックのあてはめjのオプション「確率の計算式の保存」で対応できる. 以下の手順でI : I最近傍マッチングを行うことができる. I. [アドイン]→[最近傍マッチング]→[最近傍マッチングの実行]を選択して,図lの入力画面を表示 させる. 2. 「Y,応答変数J に適当な変数を指定する. 3. 「工処置変数(2水準)Jに群を表す変数を指定する. 4. 「マッチングに使うスコア(数値)Jに傾向スコアを表す変数を指定する. 5. 「乱数シー ド値Jを設定する. 6 . 「Caliper係数:a Jを設定する. 7. 「元デ ー タにマッチング結果の列を追加するJにチェックする. 8. 「OK」をクリックして出力結果を示す. ‘a ‘ ‘旬叫百 4 勾e 彊掴. Dn哩 4同ti回世D Res阿国Value d陪 オプシヨ〉 r乱叡長ード信一「 r巨「 [町 [園 o~ f…一 :ffi 図元デー タにマ.,,チ〉ク寵患の列を温卸す吾 一削掛 且勾/勾』鴫ほ す. 日以下の笹が指定された甥合位、白Ii開r�笹川ま世ん. N田re誼a咽l陥ble matchlr唱というマ.,,チン夕方審で 1対1のマ拶チ〉タ置します. 2鮮のうち宿本ザイズが次官い帽の群から‘ 小品切の鮮に泌,喝のを『貧窓』に選び出レます. 結果弘由..に依存します. 図l: JMPアドインによる最近傍マッチング実行画面 なお, 手順6におけるキャリバーの値は0.20とすることが推奨されている(JMPジャパン事業部,2014). ただし,Austin (2011 ) は傾向スコアの推定値のロジット変換後の標準偏差を0.20倍した値をキャリバ ーとし て利用することが推奨している一方,JMPアドインの実行画面で指定するキャリバ ー の値は群別に求めた不 偏分散の平均値の平方娘である. そのため,手順6のキャリバーの値を0.20と指定することは,Austin (2011) によって推奨されている0.20とは異なる. 267
以上の手順で, マ ッチングの結果として, マ ッチング前 後におけるロジット変換後の傾向スコアの分布を 確認でき, 元デ ー タのすべてのオブザベ ー ションに対して, 「マ ッチしたJあるいは 「マ ッチなしJを表す変 数が追加される. SASプログラムに関する素養がなく,JMP で統計解析を行っているユ ー ザー であれば, 上記の方法によっ て, 傾向スコア マ ッチングを行う選択肢もある. ただし,JMPのアドインでは I: Iマ ッチングのみで, k: I マ ッチングはサポ ー トされていない. また, SASに限らず, 例えばRプログラムに関する素養があれば,R のパッケ ー ジ “ Match” を用いて, 傾向スコア マ ッチングを行うことが可能である. 付録B には,Rのパッ 、 ケ ー ジ “ Match” を用いて,傾向スコアによる最近傍 マ ッチング を行うための詳細を示している.しかし,SAS ユ ー ザ ー であれば, SAS上のDATAステップあるいは SAS/STATのプロシジャを用いて傾向スコアマ ッチン グを行いたいと考えるであろう. 3 PSMATCHプロシジャを用いた傾向スコアによるマッチング 傾向スコア マ ッチングは, SAS/STATのプロシジャでサポ ー トされていない分析手法であるため, SASで 対応するためには,DATAステップで最近傍 マ ッチングのアルゴリズムを組まなければならなかった. しか し, SAS/STAT1 4.2 (SAS9.4 TSIM4)から PSMATCHプロシジャが追加され, 傾向スコアマ ッチングができる ようになった(SASInstituteInc., 2016). PSM ATCHプロシジャを用いれば, 傾向スコア推定後の最近傍 マ ッチ ングを行う場合に, 前節で述べたようなJMP あるいはRにデ ー タセットを移動させて, マ ッチングを行う必 、 要がなくなる. また, SASのDATAステップでマッチング のアルゴリズムを組むことなく, 傾向スコアの推 定からマ ッチングまで, SASのプロシジャですべて完結できる. 本節では,PSMATCHプロシジャを用いて,傾向スコアによる マ ッチングをどのように実施するか解説し, 出力結果の解釈を述べる. 傾向スコアによるマ ッチングを行うための対象デ ー タとして, 観察研究のデ ー タ (デー タセット名:Drugs)を用いる (n =486). デー タセットDrugs は, 新規治療を行った「治療群」(変数: ’ ’ ー 「対照群」(変数:Drug =‘Drug_A)を比較するために収集されたデ Drug = ‘Drug_X)と標準治療を行った タであるが,被験者あるいは主治医がどちらの治療を行うか選択できたため,観察研究のデ ー タとして扱う. ベ ー スラインの被験者背景として,年齢(変数名:Age),性別(変数名:Gender; Gender =‘ Male’「男性j,’Female' 「女性」) ,BMI(変数名Bmi)が挙げられる. 3.1節から3.3節では,PSMATCHプロシジャの主なステー トメントによる機能を詳述する. 図2は, 傾向 スコアマ ッチングの手順におけるPSMATCHプロシジャの主なステー トメントの役割を概念図として示して いる. マ ッチング後の デ タセット出力 OUTPUT MATCH PSMODEL ー 、 共変量の バランスの確認、 ASSESS 図2:傾向スコアマ ッチング の手順におけるPSMATCHプロシジャの主なステ ー トメントの役割 268
3.1 PSMODELステ ー トメントによる傾向スコアモデル LOGISTICプロシジャでサポ ート されている MODELステ ートメントと同じように, PSMODELステ ート メントで傾向スコアモデルを指定すれば, 傾向スコアの推定結果が出力される(プログラム2). プログラム2: PSMATCHプロシジャにおける PSMODELステ ートメントの利用例 proc psmatch data= drugs region=allobs; class z Gender; psmodel z(treated= ’ 1 ’ )= Gender Age Bmi; output out(obs= all) =psoutOO ps=ps attwgt =attw atewgt=atew; run; • PROC PSMATCHステ ートメント PSMATCHプロシジャでは, REGION=で層別やマッチングを行う場合のオブザベ ーションのサポ ート範 囲を指定できる. プログラム2では, 簡便にREGION = ALLOBSと指定し, すべて のオブザベ ーションをマ ッチングのサポ ート範囲として取り扱っている. デフォルトはREGION = CSであり,治療群 および対照群に おける傾向スコアについて, 共通のサポ ート(common support)範囲 が選択される. • PSMODELステ ートメント 、 傾向スコアモデ ルの指定を行っている. LOGISTICプロシジャなどのMODELステ ートメントにおける指 定と異なり,PSMODELステ ートメントの傾向スコアモデルで指定する応答変数も CLASSステ ートメントに 指定する必要がある. また, 応答変数の水準指定に は, TREATED=“治療群の水準 ” を指定する. なお, LOGISTICプロシジャなどで予め傾向スコアを 含んだデ ー タセットを用いれば, PSMODELステ ートメント の代わり にPSDATAステ ートメントを指定する方法もある. • OUTPUTステ ートメント プログラム2では, OUTPUTステ ートメントにおいてOUT = PSOUTOOと指定し, 出力させる デ ー タセッ ト名を指定している. ここで , PSMATCHプロシジャでは,マッチング後の対象デ ー タを出力デ ー タセット として保存することもできる ため, OUT=のオプションとして OBS= が指定できる. OBS = ALLと指定す ると , PROC PSMATCHステ ートメントの DATA=で指定したデ ー タセットすべてが出力される. (最初の 3 オブザベ ーション) 表l :プログラム2を実行させて得ら れたデ ー タセット PSOUTOO PS ATEW 284 0.36444 2.744 1 Drug A 201 0.22296 1.2869 0.28694 Drug A 147 0.11323 1.1277 0.12768 Age Bmi Drug PatientID Male 29 22.02 Drug X Male 45 26.68 Male 42 21.84 Gender ATTW さらに, OUTPUTステ ートメントにおいて, PS=を指定すれば,指定した変数名で傾向スコアの推定値が 出力デ ー タセットに含まれる. また, ATEWGT=やA廿WGT=を指定すれば, 式(3) および(4)で示した IPTW および ATT Weightingが指定した変数名で出力デ ー タセットに含まれる(表I). 269
3.2 MATCHステ } トメントによる傾向スコアマッチング PSMATCH プロシジャにおいて, MATCH ステ ー トメントを指定すれば,傾向スコアによる マ ッチングがで 、 きる. 図 3 は, PSMATCH プロシジャでサポ ー トされている マ ッチング、方法で、 ある. デ フォルトは METHOD = OPTIMAL である. 入力デ ー タセットとキャリバ ーの値の指定によっては, マ ッチングができない場合もあ る. 例えば, キャリバ ーの値が小さすぎると, ベアの構成数が少なくなってしまうため, 治療群と同じ数の 対照群をベアとして構成することが困難となる. このような場合に METHOD= OPTIMAL を指定して Fixed Ratio Matching を実行すると, ” A feasible optimal fixed ratio matching that has the specified parameters does not 、 exist. ”というエラ ー が出て, マ ッチング できない. Replacement Matching METHOD= REPLACE Greedy Nearest Neighbor Matching METHOD = GREEDY Fixed Ratio Matching METHOD = OP 工M瓦L '!'. Variable Ratio Matching METHOD Full Matching = 玖為RRA'l'IO I METHOD = FULL 、 図 3 :MATCH ステ ー トメントで指定可能な マ ッチング 方法 、 デー タセット Drugs に対する傾向スコアマッチング として, プログラム 3 は, 前節で取りあげた最近傍マ ッチング “Greedy Nearest Neighbor Matching,, を行うためのプログラムである. MATCH ステ ー トメントにお いて METHOD= GREEDY を指定したプログラム 3 を実行すると, 表 2 の出力デ ー タセット PSSORTOO が得 、 られる. オプションで k=l を指定することで l : 1 マッチング を行っている. また, ORDER= DESCENDING を指定することで, 治療群における傾向スコアが大きい順に対照群のベアを探している. ORDER= RA NDOM(SEED =乱数シー ド)と指定すれば,乱数シー ドに基づき治療群における傾向スコアのランダムな 順で対照群のベアを探すことが可能である. なお, デフォルトは k=l, ORDER= DESCENDING である. ・ キャリバ ー の指定 プログラム 3 では,キャリパ ー として CALIPER= 0.20 と指定している. STAT=LPS および CALIPER のオ プションとして MULT= STDDEV と指定することで, キャリパ ーの値としては, 推定された傾向スコアのロ 270
ジット変換した値の標準偏差に 0.20 を掛けた値を用いることを意味しており, Austin (20 日)において推奨さ れている値に相当する. なお, STAT = LPS および MULT = STDDEV は指定しなくてもデフォルトとして実行 される. プログラム 3: PSMATCH プロシジャによる最近傍 マ ッチング proc psmatch data= Drugs region=allobs; class Drug Gender; psmodel Drug(treated= ’ Drug X ’ )= Gender Age Bmi; match method = greedy(k= l order= descending) stat= lps caliper(mult= stddev) = 0.20; output out(obs =match) = psmatchOO ps= ps lps= lps matchwgt =match matchid =matchsort; run; ハベアの確認のために並び替えり proc sort data= psmatchOO out=pssortOO; by descending ps; run; ・ OUTPUT ステ ー トメント プログラム 3 のように, OBS = MATCH と指定することで, マ ッチングされたオブザベ ー ションのみを含 んだデー タセットが出力される. なお, OBS = ALL と指定した場合, MATCHWGT =で指定した変数で, e ッチングされたオブサ ベ ブザベ ー ー ションを識別することが可能である. プログラム 3 の場合, マ マ ッチングされたオ ションのみが変数 MATCH = 1 と出力される. さらに, MATCHID =で指定した変数 MATCHSORT で, マ ッチングした順およびベアの構成を確認するこ とができる. そのために, 出力デー タセットを傾向スコア順に並び替えたデー タセット PSSORTOO で確認す ると, 最初の 5 オブザベ ー ションは表 2 のようになる. 傾向スコアの大きい順に マ ッチングが行われ, 被験 者番号(変数名: PatientID )として 87 と 123, 200 と 349 のベアが構成されたことがわかる. 表 2 :プログラム 3 を実行させて得られたデー タセット PSSORTOO (最初の 5 オブザベ ー ション) Gender Age Bmi Drug PatientID Male 27 25.87 Drug X 87 Male 27 25.76 Drug A Female 30 27.75 Male 33 Male 27 PS match matchsort 0.64115 1 1 123 0.63513 1 1 Drug A 200 0.61831 1 2 28.06 Drug X 349 0.60481 1 2 25.14 Drug_X 114 0.60047 1 3 271
3.3 ASSESSステ ー トメントによる変数の群間差の評価 PSMATCHプロシジャの A SSESSステ ー トメントで, すべての解析対象デ ー タセット, あるいはマッチさ れた対象デ ー タセットに対して, 指定した変数の群間差を評価できる. プログラム4では, MATCHステ ー トメントに関して3.2節と同様の指定を行ったもとで, ASSESSステ ー トメントで LPSを指定して,傾向スコアをロジット変換した値の群間差を評価する.もしPSも指定すれば, 傾向スコアの群間差も評価可能である. さらに, VAR=で指定した変数についても, 群間差の評価を行う. また, V政INFOオプションを指定することで, 各群に対する変数情報を出力させる(表4). もし W EIGHT= オプションで重みを指定すれば, 式(3), (4) で示した P I TW, ATT Weightingを用いた重み付きで変数の評価 を行う. プログラム4では, 最後に, PLOTS=でODSGRAPHI CSによる出力結果を得ている. プログラム4: PSMATCHプロシジャにおけるASSESSステ ー トメントの利用例 ods graphics on; proc psmatch data= drugs region= allobs; class Drug Gender; psmodel Drug(七工eated=’ Drug x ’ )= Gender Age Bmi; match method= greedy(k=l order= descending) stat= lps caliper(mult= stddev)= 0.20; assess lps var= (Gender Age Bmi) / weight= none varinfo plots= (all); run; 表3 :傾向スコアの情報 Propensity Score lnforma伽n Observations C佃位。l(Drug=DruιA) T悶ted (Drug= Drug_X) N Mean Std Dev N Mean S凶Dev All 113 0.310773 0.132467 373 0.208801 0.131969 Region 113 0.310773 0.132467 373 0.208801 0.131969 Matched 113 0.310773 0.132467 113 0.308755 0.130 649 表 3 では, 傾向スコアの情報を示しており, 紙面スペー スの関係上, 一 部の統計量に関しては出力を省略 OCPSMATCHステ ー トメントで している. Observation= Regionである出力結果も示されているが, PR REGION = ALLOBSを指定しているため,Observation= Allと同様の結果となっている.次に,Observation= All とObservation= Matchedの結果を比較すれば, デ ー タセットのうち, どの程度のオブザベ ーションでベアが 構成されたか確認できる. デ ー タセット Drugsの場合, 治療群:113名, 対照群:373名のうち, 治療群:113 名, 対照群:113名がマッチされたことがわかる. 3.2節のプログラム3 を実行させて出力したデ ー タセット PSMATCHOOとオブザベ ー ション数が 一 致していることを確認できるであろう. 表4はVARINFOオプションを指定して出力される内容で,ASSESSステ ー トメントで指定した変数情報の 要約統計量が出力される. 性別のようなカテゴリカルデ ー タの場合, Meanの列には, 平均の代わりに, 最初 272
の順番のカテゴリにおける割合が出力される. 表4における性別Genderでは, Female 「女性」の割合が出力 されている. 表4:変数情報 Var旭hie lnformatio也 Variable LPS Age Bmi Gender Tl)抑制助ug=Dn弘司 白蜘I C防曙 =防《) N Mean Std Dev N M伺且 Std Dev All 113 -0.880615 0.681761 373 ・1.520586 0.844486 Region 113 -0.880615 0.681761 373 ー1.520586 0.844486 Matched 113 -0.880615 0.681761 113 ー0.889200 0.674687 All 113 36.309735 5.534114 373 40.404826 6.579103 Region 113 36.309735 5.534114 373 40.404826 6.579103 Matched 113 36.309735 5.534114 113 35.884956 5.468664 All 113 24.492566 1.863797 373 23.753271 1.980778 Region 113 24.492566 1.863797 373 23.753271 1.980778 Matched 113 24.492566 1.863797 113 24.309027 1.882123 All 113 0.433628 0.495575 373 0.458445 0.498270 Region 113 0.433628 0.495575 373 0.458445 0.498270 Matched 113 0.433628 0.495575 113 0.495575 0.499980 Ob鈎rvations 屯 表5では, ASSESSステートメントで指定した変数に対して, 標準化した 群間差 が出力される. Mean Differenceは単純な 群聞の平均値の差であり, Standardized Mean Di能renceはMean Di臨時nee / Divisorの計算 結果である. Divisor 「除数」は各群の標準偏差 をプ ー ルした 標準偏差で構成される. 例えば, 年齢を表す変 数Ageの All Obs「すべてのオプザベ ー ション」を対象とした 出力の場合,表4で求めた各群の標準偏差から, (5.5341142 +6.5791032 ) = 6.079104 2 が Divisorとなり, 表5に 出力されたMean Differ,官neeより, M伺nDifferen随 一 4.095091 = 一一一一一一 =-0.673634 6.079104 Divisor が StandardizedMean Di島問iceとして 出力されてし、る. なお, ASSESSステートメントで WEIGHT= NONEと指定したため, 表5は重みを付けない 計算結果が出 力されている. 例えば, WEIGHT= ATEWGTと指定すれば, 式。) のlP TWで重み付けたした 計算結果が出 力される. また, ODS GRAPHICS ONの状態で実行しているので, 表5で示した各変数に対する標準化した 群間差に対応する図も出力される(付録C). 付録Cでは, ±0.25がカットオフ値として参照線が出力され, [-0.25, 0.25]であればバランスが取れているという目安として表している(SASlnstitu崎Inι,2016). なお, カ ットオフ値として±0.10を推奨した報告も行われている(Normand et al., 2001). 次に, ASSESSステートメントで PLOTS=ALL を指定することで, ODS GRAPHICSによる出力結果を得 ること ができる. ODS GRAPHICSによる出力として, ASSESSステートメントで指定した変数に対する群聞 の分布として, クラウドプロットが出力される(図4). 273
表5:各変数に対する標準化した群間差 S凶必rd国d VariableD託勘明.ces(Trea制・白曲。I) S泊a也rdized M回a Di貸出,nee Variable Divisor 協阻四倍rence �鈎:hed �説。nObs All Obs M儒a Difference l Al Obs Regii1n M斜路hed Obs 'Obs Obs LPS 0.639971 0.639971 0.008584 0.767448 0.833894 0.833894 O.Ol ll85 Age -4.095091 -4.095091 0.424779 6.079104 -0.673634 ・0.673634 0.069875 Bmi 0.739296 0.739296 0.18354 l.923178 0.384414 0.384414 0.095436 Gender -0.024817 -0.024817 ー0.061947 0.496925 ・0.049941 -0.049941 ・0.124661 年齢 ロジット変換後の傾向スコア LPSCI叫els Age Clouds ”2 -4 Logit of Pr叩ensity Sc町・ 1�・� 叫 。 叩 制調鳳瞬間μ 。 -樹蜘明与:: 8 犠揮園盟静ロb 山 叩 g - E晋Ega o 叩 Jλ鱒鞍・ 20 30 40 切 Age Ii 瀧1智品弘同| 蜘 tM 制(No O抑m a押凶蹴,ad&恥 目chad) :. l性別 B恥fl Gender Clouds Bmi Clouds 「 れ制It'. . 1 20 22 24 Bmi 28 28 Ii 締結お町一一| E ・20 18 aph O 室” … l論輔副観劇際.. 。 綿織 錦織 30 F町祖1 x I’ ・ Male G朗自v 叩白山吋聞 0 Su陣art Real凹【H叫Ma恒hedl M品。hed Obs 図4 : ODS GRAPHICSによる各変数に対する群別のクラウドプロット 274 80
クラウドプロットでは, 縦軸に群, 横軸に対象となる変数の値をとって散布図を描いており, マッチされた デ ー タとマッチされなかったデ ー タの記号を変えて出力している. クラウドプロットをみれば, 傾向スコア がどの程度の値のデ ー タでベアが構成できなかったか, 各変数がどの程度の値をとるデ ー タでベアが構成で きなかったか, 視覚的に確認することができる. ロジット変換後の傾向スコア 年齢 Di坑rib坑ion of LPS 80-j 仁== 仁士三苫= cW:::: g::::宏| g:::.,a.;?I ーしト守4 l I HT L「 I 島 ω I 」『 l 」ー| 同「」「 L了 門 同山 L了 門 l l 30 『 トiT Lr _Lト守4 ll寸I ll111J + E T--ム l 50 』- EO O 帥主EEE弘吉#BS 。 �=fg:::: Distri臥北ion of Age ・4 20 刈l 恥Ilion Ob回同副。ns 刈l M脱出ad BMI R,駒伺 Ma恒had Region Matcl抽d Ob田,咽U。問 性別 Di民同b叫ion ofBmi 30 l一一一-6::WtlEj:o四 ι I 回 型 & 400 T 28 l t., 寸d ・ 22 制 ! 24 抑 官ESEhh hE 0 28 司 100 初 a』 18 All Region Obs・同宿世。ns M凪ched 刈1 O脇町四,tions 図 5 : ODS GRAPHICSによる各変数に対する群別の箱ひげ図・度数分布 また, ODSGRAPHICSによる出力として, 連続変数に対しては箱ひげ図, カテゴリカル変数に対しては度数 分布が出力される(図5). 図5では, プログラム4において PLOTS = ALLと指定するだけでなく, PLOTS(ORIENT =VERTICAL)= ALLと指定し,縦軸に対象となる変数の値, 横軸に群をとったグラフを描い ている. なお, デフォルトはORIENT=HORIZONTALである. 図5の箱ひげ図および度数分布より, 各変数 におけるマッチング前後で群聞のバランスが視覚的に確認できる. なお,MATCHステートメントにおいて, 275
EXACT =<カテゴリカル変数〉と指定すると, 指定したカテゴリカル変数は群聞で完全にバランスが取れる. Some 蜘.ted units have less プログラム 4 の MATCH ステ ー トメントにおいて, EXACT = Gender と指定すれば,” 曲組曲e specified K=l matched controls because there are not enough available controls for these 回ated units. ”と b う警告が出て, マッチされた対象デ ー 、 タは結果的に 113 名から 112 名に減少してしまう. しかし, 群聞の性 別の度数分布は完全にバランスが取れていることが視覚的に確認できるであろう(付録D). なお, 図4および図5で示した箱ひげ図やクラウドプロットの出力では, モノクロ印刷されても識別しや すいよう, ODS の出力としてジャ ー ナルスタイル ”STYLE = JOURNAL2” を指定した. 特に, 図 5 において は群別のグラフを示す場合, デフォルトでは群の違いが色で分けて出力されてしまうが. ジャ ー ナルスタイ ノレを指定したことで, モノクロ印刷に対応できるよう出力されている(魚住ら, 2016a,2016b ;大橋ら, 2016). 4 まとめ 本稿では, 観察研究デ ー タに対する統計解析手法として, 傾向スコアによるマッチングに着目した. 傾向 スコアマッチングを SAS で実行する方法として, SAS/STAT 14.2 から追加された PSMATCH プロシジャによ るプログラムについて解説し,実行結果の解釈に関して詳述した. PSMATCH プロシジャにおける PSMODEL ステー トメントで, 傾向スコアモデルにおける目的変数と説明変数を指定でき, MATCH プロシジャで様々 なマッチングがサポ ー トされている. 3 節では,特に最近傍マッチングをについて取りあげ, PSMATCH プロ シジャによるアウトプット画面および ODS GRAPHICS による出力結果について解説した. なお, 2 節におい て, 観察研究における平均治療効果の推定について整理したもとで, 傾向スコアによる最近傍マッチングに 関しても解説している. さらに, SAS のプロシジャで傾向スコアマッチングが実施できなかった状況下で, JMPやRで実行できることを述べた.そして,JMPで傾向スコアマッチングを行う場合の留意点を取りあげ, 加えて R による最近傍マッチングの実行プログラムを付録 B に示した. また, PSMATCH プロシジャで実施 している傾向スコアマッチングのアルゴリズムを理解する手助けとなるよう, DATA ステップで最近傍マッ チングを実施するための SAS マクロを開発した(付録 A). この SAS マクロは,キャリバ ー の設定値として, 臨床論文でよく報告されている, 傾向スコアの推定値をロジット変換した値の標準偏差を掛けた値となって いる点で有用である. SAS ユ ー ザ ー 総会においても, これまで傾向スコアを用いた IP TW 法などに関して, SAS を用いた研究報 告が行われている(古川・杉本, 2010;古川, 2011).また,SAS/STAT 14.2 では PSMATCH プロシジャに加えて, 平均因果効果を推定するためのプロシジャとして, 新たに CAUSALTRT プロシジャも追加されている(SAS Institute Inc.,2016). PSMATCH プロシジャや CAUSALTRT プロシジャが新たに追加されたことによって, 今 後 SAS による傾向スコアを用いた統計解析が多く実施され, さまざまな分野におけるデ ー タ解析に応用され た結果が, 論文・学会発表を通して報告されると予想される. 傾向スコアによるマッチングを用いた調整解 析を行う実務家にとって, 本稿の報告内容がお役に立てれば幸いである. 参考文献 [l] Austin PC, Grootendorst P, Anderson G M. A comparison of 白e ability of di 能rent propensity score models to balance measured variables between 田ated and untreated subjects: a Monte Carlo study. Statisti,αin Medicine. 26:734ー7 53,2007. 276
[2] A凶出PC. Balance diagnostics for comparing the dis住ibution of baseline covariates between町atment groups in propensity-score matched samples. Statistics in Medicine. 28:3083-3107, 2009. [3] Austin PC. Optimal caliper widths for propensity-score matching when estimating differences in means and differences in proportions in observational studies. Pharmaceutical Statistics. 10:150ー161, 2011. [4] Bangalore S, Guo Y, Samadashvili Z, Blecker S, Xu J, Hannan EL. Everolimus-eluting stents or bypass s町gery for multiv総sel cororn紅y disease. New England Journal ofMedicine. 抑止1213-1222, 2015. [5] Coca-Perraillon M. Local and global optimal propensity score matching. Proceedings of the SAS Global Forum. SAS Institute Inc., Cary, NC, 2007. Available at h虻o://www2.sas.com/oroceedin!!:s/forum2007/185-2007.odf. [6] Faries D, Leon AC, Haro JM, Obenchain RL. Analysis of Observational Health Care Data Using SAS(R). SAS Institute Inc., Cary, NC, 2010. [7] Hida K, Okamura R, Sakai Y, Konishi T, A同gi T, Yamaguchi T, Akiyoshi T, Fukuda M, Yamamoto S, Yamamoto M, Nishigori T, Kawada K, Hasegawa S, Morita S, Watanabe M. Open versus laparoscopic surgery for advanced low rectal c叩cer: a large multicenter propensity score matched cohort study in Jap叩. Annals of Surgeη . ,2017. DOI:10.1097/SLA.0000000000002329. [8] Hamatani Y, Ogawa H, Uozumi R, lguchi M, Yamashita Y, Esato M, Chun YH, Tsuji H, Wada H, Hasegawa K, Abe M, Morita S, Akao M. Low body weight is associated with the incidence of s汀oke in a凶al fibrillation patients: Insight企om the Fushimi AF Registry. Circulation Journal. 79: 1009-1017, 2015. [9] JMPジャパン事業部. JMPによる傾向スコアを用いたマッチング、層別分析、 回帰分析. SAS Institute Japan 株式会社, 2014. Available at httos://www.imo.com/cont巴nνdam/imo/documents/io/suooort/orooensitvscore201412.ndf. [IO] Lanehart RE, de Gil PR, Kim ES, Bellara AP, Kromrey JD, Lee RS. Propensity score analysis and assessm削of propensity score approaches using SAS(R) proced町es. Proceedings of the SAS Global Forum. SAS Institute Inc., C紅y, NC, 2012. Available at htto://suooort.sas.com/resources/oaoer・s/oroceedin!!:s12/314-2012.odf. [11) Lunceford JK, Davidian M. S回tification and weighting via the propensity score in estimation of causal treatment e能cts: a comparative study. Statistics in Medicine. 23:2937-2960, 2004. [12) Normand ST, Landrum MB, Guadagnoli E, Ayanian JZ, Ryan TJ, Cleary PD, McNeil BJ. Validating recommendations for coronary angiography following acu旬myocardial in勉氏tion in the elderly: a matched analysis using propensity scores. Journal ofClinical Epidemiology. 54:387-398, 2001. [13] Rosenbaum PR, Rubin DB. The central role of the propensity score in observational studies for causal effects. Biometrika. 70:41-55, 1983. [14) Rosenbaum PR, Rubin DB. Constructing a con位ol group using multivariate matched sampling methods that incorporate the propensity score. The American Statistician. 39:33-38, 1985. [15] Rosenbaum PR. Des忽η o/Obsen叫ional Studies. Springer-Verlag: New York, NY, 2010. [16] SAS Institute Inc. SA以STAT(R) 14.2 User's Guide. SAS Institute Inc., Cary, NC, 2016. [17] S側副EA. Matching methods for causal inference: A review and a look forward. Statistical Science. 25:1-21, 2010. [18) Yamashita Y, Uozumi R, Hamatani Y, Esato M, Chun YH, Ts吋iH, WadaH,H悩.egawa K, OgawaH, Abe M, 277
Morita S, Akao M. Current s切知S阻d outcomes of direct oral anticoagulant use in patients wi血atrial fibrillation in the real-world: The Fushimi AF Regis町. Ci,叩lation Journal, 2017 DOI: l0.1253/circj.CJ・16・1337. [ 1 9]魚住龍史 ・ 吉田早織 ・ 平井隆幸,浜田知久馬. Kap !叩・Meier プロット ・ Forest プロット作成の応用:グラ フ出力範囲内・範囲外への数値出力 .SAS ユ ー ザ ー 総会論文集 .2 16ー232 , 2016a. [20]魚住龍史 ・ 矢田真城 ・浜岡知久馬 .SAS プロシジャを用いた生存時間デ ユ ー ザ ー ー タに対する例数設計の変革 .SAS 総会論文集 .250ー267, 2016b. [2 1]大橋靖雄 ・ 浜田知久馬 ・ 魚住龍史. 生存時閥解析応用編-SAS による生物統計. 東京大学出版会,2016. [22 ]田栗正隆. 有名論文から統計の基礎を学ぶ:プロベンシティスコア. Coronary Intervention, 13:63 -69, 2017. [2 3 ]古川敏仁 ・ 杉本典子. Propensity Score 法によるバイアスの調整法に関する実務的な問題点 .SAS ユ ー ザー 総会論文集. 101 -108, 2010. [24 ]古川敏仁.観察研究において選択 bi鎚を制御するために用いられる Propensity Score IPTW 法の、 頑健性の観点からの使い分けについて .SAS ユ ー ザ ー 総会論文集. 409-4 1 6, 201 1. [25 ]山本倫生・森田智視. 傾向スコアによる調整解析. 呼吸. 34:1187-1193, 2015. 連絡先 E-mail: uo四mi(@kuho.kvoto-u.ac.iD 付録A:DATA ステップによる最近傍マッチングを行うための SAS マクロ *============== ===== == ======= ===== == === ===== ======= *; *群を表す数値変数を準備; data DrugsO;setDrugs; if Drug= ”Drug_X ” then Group= l;else if Drug= ”Drug_A” =O; then Group run; * === =========== === == ================== ====== == == ===*, *傾向スコアを含んだデ ー タセットを準備; ads listing close; =DrugsO; pr c l gi.stic data class Gender; model Group(event= ” l ” )=Gender Age Brni; = ps xbeta= ps_xb stdxbeta= ps_sdxb; = psOO pred output out run; ads listing; 。 。 *=================== ========== ========= == ================= == ===== ==== =============*, * MACRO: PSMATCHING; * =============================== ================== === ========= ============ ========*, *傾向スコアによるマッチング後の被験者番号リストを作成する; *傾向スコアによる"? 'Yチング後のデ ー タセットを作成する; *== ========== == == ====== ============= == == ===== ====== ======= == == === =================*, * 引数の説明; 書=================================================================================* , • * 合 世 * * * data:入力対象デー タセット[傾向スコアなどを変数に含めたデ ー タセットとする] id:被験者番号を表すカテゴリ変数; grp:群(治療群と対照群)を表すカテゴリ変数; tgrp ind:治療群を表す値; cgrp_ind:対照鮮を表す値 J ps_pred:傾向スコアを表す変数; sort: マッチングを行う傾向スコアの順を指定 J * ーー- sort= descending :傾向スコアの大きい順 F * ー-- sort= ascending z 傾向スコアの小さい順 J 278 と層化調整
* ーー- sort = random ランダムな順; * caliper:キャリバーの値(傾向スコアのロジット変換した値の標準偏差に掛ける値}を指定1 * seed :乱数のシ ー ドを指定(sort = random) * outid:マッチングされた被験者番号を群ごとに出力したデ ー タセットJ * outdata:入力対象デ ー タセットから7ツチングされなかった被験者番号を削除したデ ー タセット; *=================================================================================女., ーー ー---- ー ーーーーーーーーー ーーーー一一一一ー ----, *ーーー 一一一ーー ーーーーーーーーーーー ーーーーーーーーーーーー ーーーーーー 合 マクロ開始J %macro ps皿atching(data,id,grp,tgrp ind,cgrp_ind,ps_pred,sort,caliper,seed,outid,outdata); 安ーーーー一一一一一一ー『ーーーーーー一一一ー ー一ー・ーーーーーー ーーー ーーーーーーーーーーー ーーーーーー ー ーーーーーーー ーーーー一一ーーー ー *傾向スコアの変数名・傾向スコアのロジット変換した変数を準備; data ps p;set品data; ps_pred =&ps_pred; l_ps_pred =log(ps_pred/(1-ps_pred)); run; *ーーーーーー一一一一一ー ー『ーーーーーーー一一一ーーーーーーーーーー 一一ーーー ーーーーーーーーーー ーーーーーーーーーーー ー司ーーーー ー ーーー ー *各群のデ ー タ数を読み込みJ ods listing close; ods output summary =grp_N; proc means data =ps_p n; class晶grp; var ps_pred; run; ods listing; data _null一’set grp_N; where &grp =晶tgrp_ind ;毛global tgrp N; call symput ( ”tgrp_N ” , ps_pred_N); data _null_;set grp_N; where 晶grp =晶cgrp_ind ;主global cgrp N; call symput ( ”cgrp_N ” , ps_pred_N); run; ー ーーー ー ーーーーー 常ーーーーーー ー一一一一ーーーーー ーー ーーーーーーーーーーーーーーー *傾向スコアのロジット変換した値の標準偏差を準備; ods listing close; ods output summary=lps_p; proc means data ps_p stddev; var l_ps_pred; run; ds listing; 。 ーーー ーー---ーー ーー ーー 酉 *ーーー ーーーー一ーーーーーーー---ーーーー ーーーーーーー ーー ーーーーーーーーーーーーーー 一一一一一一一ー ーーーーーーー一一一一一一一ー ーーー, * マッチングをランダムに行う場合の乱数を準備J data one;set ps_p; seed =晶seed; call streaminit(seed); ranvar =rand ( ”uniform ” ) ; run; *ーーーーー ー一一ーー ーー ーーー ーーーーーーーーーーーーーーーーーー ーーー ーー ー ー司自由ーーー ー ーーーーー ーーーーーーーー ー ーーーー 世 マッチングを行う傾向スコアのJI慣を指定; もif ” &sort '’ = ”descending ” 告then もdo; proc sort data=one out =one; by晶grp descending ps_pred; proc transpose data =one out = datal; by &grp; run; もend; もelse も工f ”&sort ” = ”ascendェng ” もthen もdo; proc sort data=one out =one; by &grp ps pred; proc transpose data=one out = datal; byιgrp; run; %end; 者else もif ” 岳sort ” = ”random ” もthen もdo; proc sort data =one out=one; by晶grp ranvar; proc transpose data =one out = datal; by晶grp; run; もend; *ーーー 一一一一ーーーーーーーーーーー一一一一一一一ーー ーーーーーーーー一一一一一ー ーーーーー ーーーー ーー 一一一ーー ーーーーーー 一一一一一ーー---- 安 マッチングを行うために各群のデ ー タ数だけ変数を準備; data id_t (rename=(COLl-COLもeval (晶tgrp_N) =tidl-tidもeval(&tgrp_N)));set datal; if 晶grp =晶tgrp_ind and _NAME_= ” PatientID"; data ps t (rename =(COLl-COLもeval (晶tgrp N)=tpsl-tpsもeval(&tgrp N)));set datal; if &grp =&tgrp_ind and _NAME_= ” &ps_pred ” ; data id c (rename =(COLl ー COLもeval (晶cgrp N)=cidl-cid毛eval(&cgrp N)));set datal; if &grp =晶cgrp_ind and _NAMEー= ” PatientID ”J data ps c (rename =(COL1-COL%eval(&cgrp_N) =cpsl-cps%eval(&cgrp_N)));set datal; if &grp =晶cgrp_ind and NAME_= ” 晶ps_pred ” ; run; *ーーー ー ーーーーーーーーー ーー ーーーーーーーーーーー ーー ーーーーーー ー *キャリバーを指定して傾向スコアマッチングを実施J data all; 279 ーー ーーーーーー ーーーーーーーー
merge 1d_t ps_t id_c ps_c lps_p;
caliper =&caliper;
array t_id {*) tidl-tidもeval (晶 tgrp_N); array c_1d {*) cidl-c1dもeval (晶 cgrp_N);
array t_ps {*) tpsl-tps宅eval(&tgrp_N); array c_ps {*) cpsl-cpsもeval (晶 cgrp_N);
array used i {*) usedl - usedもeval(&cgrp_N);
array matched_t {*) m_tidl-m_tidもeval(&tgrp_N); array matched_c {*) m_cidl-m_c1dもeval(&tgrp_N);
array min_diff_i {安) min d1ffl-m1n_diffもeval(&cgrp N);
match N =O;
do i=l t。晶tgrp N;
min d1ff=l; best match=O;
do j=l to晶cgrp_N;
if used i[j]= . then do;
if abs(log(t_ps[i]/(l-t_ps[i]))-log(c_ps[j]/(1 c ps[j])))
< cal工per*l_ps_pred_StdDev then do;
if abs(log(t_ps[i]/(l-t:-!'s[i]))-log(c_ps[j]/(l-c:-!'s[j]))) < min_diff then do;
mrn_d1ff=abs(log(t_ps[i]/(l-t_ps[1])}-log(c_ps[j]/(l-c_ps[J])));
min d1ff_1[j]=abs(log(t_ps[i] / (l-t_ps[1]}}-log(c_ps[j]/(l-c ps[j J})};
best match=j;
一
一
ー
end;
end;
end;
end;
if best match> 0 then do;
match N=match N+l; used i[best match] =l;
matched t[match N]=t id[i]; matched c[match N]=c id[best match];
end;
end;
run;
data all;set all;
max_min一d1ff= max(of min一d1ffl-min一d1ffもeval(&cgrp_N}};
sum_min_diff=sum(of min_diffl-min_d1ffもeval(&cgrp_N});
run;
* ー一一一一ーーーーーーーーーーー一一一一一ーーーーーーー勾ーーーーーー一一ーーーーーーーーーーーーーーーーーーーーーーーーーーーー一一ーーーーーーー
* マッチングされた被験者番号を群ごとに出カしたデ ー タセット
data &outid;set all;
array matched_t {*) m_t1dl-m_tidもeval (晶 tgrp_N}; array matched_c {安} m_cidl-m_c工dもeval (晶 tgrp N);
do match = l to match_N; treat 1d=matched_t[match]; control_id=matched_c[match]; output; end;
keep match treat id control id;
run;
* -一一一一一一ーーーーーーーーーー一一一一一一ーーーーーーーーーーーーーーーーーーーーーー
ーーーーーーーーーーーーーー
ーーーーーーー ,
*群を表す変数を準備;
proc transpose data=&outid out=psmatchOO; by match; var treat id control id;
data psmatchOO;set psmatchOO;
if NAME_= ” treat 工d ” then &grp= &tgrp_ind; else if NAME_= ” control_id" then &grp=晶 cgrp_1nd;
&id=COLl; keep match &grp &id;
proc sort data=psmatchOO out=psmatchOO; by &grp晶id; run;
proc sort data=psOO out=psOOsort; by &grp邑1d; run;
,
会一一一一一ーーーーーーーーーー一一ーーーーーーーーーーーーーーーーーーーー
*入力対象デ ー タセットからマッチングされなかった被験者番号を削除したデ ー タセット
data晶outdata; merge psOOsort psmatchOO(in=inl}; by &grp &id; if inl=l then output;
proc sort data=晶 outdata out=晶 outdata; by match &grp邑1d; run;
* 一一一ーーーーーーーーーーーーーーーーーー【
ーーーーーーーーーーーーー
ー
* マクロ終了;
もmend psmatching;
* 一一一一一一一一一一一ーーーー一一一一一一ー一一一一ーーーー一一一一一一ーー一一一一一ーー一一一一一一一ー一一一ーーーー一一一一一一一ー-ー一一一一一一一一一一一 *
* ランダムなJI闘に 4頃向スコアマッチング;
*====================巴============================================================ * ,
もpsmatching(psOO,PatientID,Group,l,O,ps,random,0.20,123456,matchesr,psmatchdatar);
*============ =====================================================================*,
* 傾向スコアの大きい順にマッチングJ
’骨================================================================================= 安 ,
もpsmatching(psOO,Patient工D,Group,l,O,ps,descending,0.20,123456,matchesd,psmatchdatad);
280
付録 B:R による最近傍マッチングの実行プログラム 付帯パッケージを使用料非 library(Matching) 付#傾向スコアの推定結果が含まれたCSVファイノレPSOUTOO をデー タセットとして読み込み付帯 data - read.csv ( ” psoutOO.csv ” } 井##傾向スコアモデルの分子(治療群のカテゴリ)を指定村井 Trt = data$Drug == ” Drug X ” 村普キャリバーの値を指定#村 caliperO = 0.20 付帯傾向スコアのロジット変換村井 data く - transform(data, ps.logit = log(ps / (1 - ps))) 村井乱数のシ ー ド付者 set.seed(1234 56) 村井1:1最近傍マッチングを非復元抽出で実行村非 Matching = Match(Y = NULL, Tr = Trt, X =data$ps.logit, M=l, どeplace = FALSE, caliper = caliperO); summary(Matchinq) Standa吋ized Variable Di仔'erences U附re叫判 Uppet C叫判 Gender . Bmi A胆 I o・| | I Io I I JO I ・ . . LPS PS -15 -10 -0.5 0.0 1.0 0.5 1.5 Di偽rence作間a旬d-C。n廿。I) I X All Obs O Suoo町t Relli。,n OM凪ched Obs I 付録 C:各変数に対する標準化した群間差(ODS GRAPHICS) 4国 制 3U@ 』比 L @唱 z eo - hoc 抑 1国 刷l Re.,.拘 Obse阿ations Mo恒hod 付録 D: MATCH ステ ー トメントで EXACT= Gender とした場合の性別の度数分布 281
Mantel-Haenszel法により調整したリスク差の信頼区間に関する 一 考察 0佐々木英麿、舟尾暢男 武田薬品工業株式会社日本開発センタ 一 生物統計室 A Consideration of the Confidence Intervals for Mantel-Haenszel Estimate of Common Risk Di能rence Emma Sas北i, Nobuo Funao Takeda Pharmaceutical Company, Ltd. 要旨 Mantel-Haenszel法により調整したリスク差に関する信頼区間の算出方法(Greenland信頼区間、Sato信頼区間、 及びNewcombe信頼区間)を紹介し、各信頼区間の被覆確率をシミュレ ー ションにより確認することで性能 評価を行う。 キ ー ワ ー ド:Mantel-Haenszel 法、調整済みリスク差、信頼区間、被覆確率、FREQ プロシジャ、STDRATE プロシジャ 1. はじめに 2値応答変数を主要評価項目とした2群の並行群間比較試験では、主解析として割合の群間差(以下、リス ク差)の評価を行い、感度分析として背景因子で調整した解析を実施するのが 一 般的である。また、治験薬 の割付において層別割付を行った場合、主解析として層別因子で調整した解析を計画することがあるが、そ の際、Cochran-Mantel-Haenszel検定(以下、CMH検定)等を用いて群間比較を実施するとともに、 Mantel-Haenszel法により調整したりスク差(以下、調整済みリスク差)に関する推定量を算出することが 一 般的である。いずれの場合においても、調整済みリスク差を算出する場合は、対応する信頼区間を合わせて 算出することとなるが、信頼区間の算出方法についてはいくつか選択肢がある。 SASでは、リスク差に関する様々な 信頼区間の算出が可能となっている。SASV9.3で算出可能な 信頼区間に ついては飯塚、 浜田 (20日) が性能評価を行っており、SASV9.4 で新たに追加された信頼区間については飯 塚、魚住、浜田(2014)が性能評価を行い、いずれもNewcombeスコアに基づく信頼区間を推奨しているが、 調整済みリスク差に関する信頼区間の考察は、本ユ ー ザ ー 総会ではなされていない 。 本稿では、FREQプロシジャに加え、SASV9.3で新たに追加された STDRATEプロシジャを用い、調整済み リスク差に対する信頼区間の算出方法(Greenland 信頼区間、Sato信頼区間、及びNewcombe信頼区間)を紹 介し、これらのプロシジャを用いて調整済みリスク差の信頼区間を算出する際の留意点を示すとともに、そ れぞれの信頼区間の被覆確率をシミュレ ーションにより確認し、性能評価を行う。 2. Mantel-Haenszel法による調整済みリスク差の算出 まずは、表2.1の分割表を考える。 282
表2.1 2×2分割表 ,g、雪ロt イベントの有無 投与群 あり なし 群l X1 γ!1 -Xi η1 群2 Xz nz -Xz nz n+ このとき、群jの被験者のイベント発生割合(リスク)をPjとすると(j=l 2 , )、各群のイベント発生 ( 数に関する確率変数持は二項分布B(町,Pj) に従うが、漸近的には正規分布N 叩川iPj(l -pj)) に従う。 よって、各群の割合(リスク)に関する確率変数ちは以下のように示すことができる。 、‘,, l ,,.‘、 吟旦) ち = 子N(pj, 2群の並行群問比較試験において、群1と群2の割合(リスク)に関する確率変数 九とちはそれぞれ独立 した正規分布に従うため、群lと群2のリスク差(九一九)の分布は以下の通りとなる。 P1 Cl-P1) Pz(l-pz)\ D = ..1 - .. , Yz ~ N (IP1 -Pz一一一一一 +一一一一一l ’ι2 ’ι 1 1 / (2) 次に調整済みリスク差を考えるため、表2.2の分害1]表を考える。 表2.2 層iの2x2分割表(i=l,.. ·,k) イベントの有無 投与群 合計 あり なし 群l x,1 n,1 - x,1 n,1 群2 x,z η t2 -X,z τ!,z ηi + k個の層を有する、ある層別項目を考えた場合、層iの群jにおける被験者のイベント発生割合(リスク) 一一一ー , )、層iにおける各群のイベント発生数に関する確率変数xij は をP,jとすると(i= 1, … , k;j=l2 二項分布B(n n柿j(l P, i j) に従い、漸近的には正規分布N(n;P -pij )) に従う。よって、層tにおける ,j j i j, 各群の割合(リスク)に関する確率変数%は以下の分布に従う。 p N r’’Ett\ SJ 巧 X一n 一 一 (3) よって、層iのリスク差<Yi1 - Yiz)の分布は以下の通りとなる。 P,1(l-p,1) P,z(l-P,z)\ D, = 九 - Yiz ~ NI(P,1 -p,z一一一一一 , +一一一一一 l ’ι il ’ιi 2 1 / 283 (4)
式(4)より、 Mantel-Haenszel 型の重みwi = nil niz/Cηi1 + ni2 )を用いて重み付き推定量を求めると、 Mantel-Haenszel 法により調整したりスク差 (調整済みリスク差)が得られる。 応MH 一 - 茎f己主 Lf=1Cxi1 i - Xi i1)/ηi+ Lf= i w, n2 一 2n Lf= 1 ni1ni2 /ni+ (5) 次項では、 調整済みリスク差の信頼区間を考える。 3. 調整済みリスク差の信頼区間の算出方法 3.1 Greenland信頼区間 τ 調整済みリスク差の信頼区間を算出するにあたって、 まず、 Greenland and Robins (1985)の方法に基づいた 信頼区間(以下、 Greenland 信頼区間)を考える。 本方法では、 式(6)に従って調整済みリスク差の分散を計 算し、 この分散に基づいて信頼区間を算出する。 吋 1 w/ 廿)=立 X ( (6) Sato (1989)では、 Greenland 信頼区間はデ ー タが疎な場合に 一 致性を持たないことを指摘している。 これに 対して Greenland & Robins は指摘を認めており、 Greenland 信頼区間は層の例数が多い場合にのみ一 致性を持 っと訂正をしている。 一方、 Rothman, Lash, and Greenland (2012b)では、 各層の各群の分母が全て 2 以上で あれば、 Greenland 信頼区間を用いることが可能だとしており、 Greenland 信頼区間を使用する是非の判断が 難しい状況である。 今回の検討ではこの点も含めて確認を行う。 3.2 Sato信頼区間 Sato (1989)では、 Greenland and Robins (1985)の方法を改善し、 層の数が多くデ ー タが疎な場合でも妥当 となるような調整済みリスク差の分散の推定方法を提案している。 Sato (1989)の方法に基づいた信頼区間 (以下、 Sato 信頼区間)は式(7)に従って調整済みリスク差の分散を計算し、 この分散に基づいて信頼区間 を算出する。この信頼区間は、すべての場合のデ ー タにおいて妥当であることが Ro位1man, Lash, and Greenland (2012b)に記されている。 var•(JWMH) = (IWMH Lf= 1 Pi + Lf=1 Qi)/(Lf=1 w;) 2 (7) このとき、pi 及び Qi はそれぞれ / 2 2 白”し(η . 一網-、、 22 pi = ( nf1Xi2 一 n在xil + 且iずL一」) /(ni1 + ηi2) , Q i = (xi1 (ηi2 一 Xi2 )一 Xi2 Cηil 一 Xi1))/2(ni1 + ηu (8) となる。 3.3 Newcombe信頼区間 Yan and Su (2010)の方法で s回.tified Wilson 信頼区間に基づいて構築される s回tified Newcombe 信頼区間(以 下、 Newcombe 信頼区間)では、 調整済みリスク差(震D MH )の 100(1 - α)%信頼下限と信頼上限 (L,U) は 以下の通りとなる。 284
L =応MH - Za1z ../んL1(l-L1) +んU2(1- U2), (9) U = JfjjMH + Za1z ../ λiU1(l ー U1) + il2L2(l ーLz) このとき、ん とんは λ1 = rr=lwl /nil, λ2 = rr=lwl /n12 (10) であり、Li ,U1 は群1の割合(リスク)の s回tified Wilsonscore信頼上限と信頼下限を表し、Lz ,Uz は群2 の割合(リスク)の甜·atifiedWilsonscore信頼上限と信頼下限を表す。 冒頭でも述べたが、 層を考慮しない リスク差の信頼区間の性能評価の結果、飯塚、浜田(2013)及び飯塚、魚住、浜田(2014)は、いずれもNewcombe スコアに基づく信頼区聞を推奨している。 3.4それぞれの信頼区聞を算出するSASプログラム それぞれの信頼区聞を算出する例を紹介するため、 表3.1を考える。なお、 下記サンプルデ ー タはRothman (2012a)から引用している。 表3.1 投与群 層l:イベントの有無 サンプルデ ー タ 合計 投与群 あり なし 群1 8 98 106 群2 5 115 120 層 2:イベントの有無 合計 あり なし 群1 22 76 98 群2 16 69 85 183 226 まず、Greenland信頼区聞 はSTDRATEプロシジャにより 算出が可能である。Greenland信頼区間の 算出プロ グラムをプログラム3.1に、 実行結果を出力結果 3.1に示す。 プログラム3.1 data SAMPLEDATAl input TREAT STRATA X TOTAL ; cards ; 1 1 8 106 1 2 22 98 2 1 5 120 2 2 16 85 run , ods graphics on; proc stdrate data= SAMPLEDATAl method司出 stat = risk effect= diff plots = all ; population group=TREAT event=X total=TOTAL; strata STRATA/ order= internal stats( cl= normal) effect ; run, ods fil"型llics off; 285
出力結果3.1 (抜粋) Risk Effe氾 t Estimates 一一一一TR日T一一一一一 一 1 2 0.1421 0.1072 Risk Differenoe 0.0349 95目Normal Confidenoe Limits ー .027619 0.097419 Standard Error 0.0319 Z 1.09 Pr > IZI 0.2739 次に、 Sato信頼区間及びNewcombe信頼区間はFREQプロシジャにより算出が可能である。 Sato信頼区間は riskdiffオプションへ「commoncolumn= l J を加えることによって算出が可能で、あり、 Newcombe信頼区聞は さらに 「cl- ewcombe」を追記することによって算出可能となる。 Sato信頼区間及びNewcombe信頼区間の 算出プログラムをプログラム3.2に、 実行結果を出力結果3.2に示す。 なお、 Greenland信頼区間をSTDRATE プロシジャで算出する際とは、 デ ー タセットの形が異なることに留意されたい。 プログラム3.2 data SAMPLEDATA2 input STRATA TREAT X N; cards ; l 1 l 8 l l 2 98 1 2 l 5 1 2 2 115 2 1 1 22 2 1 2 76 2 2 1 16 2 2 2 69 run, proc freq data=SAMPLEDATA2 ; table STRATA本TREAT*X I riskdiff(cornrnon column= ! cl=newcombe) nocol nopercent ; weight N; run, 出力結果3.2 (抜粋) 手法 Mantel 一Haenszel Newcombe 要約スコア 共通比率(リスク)差 値 0.0349 0.0349 0.0372 標準誤差 0.0319 0. 0299 95弘信頼限界 一0.0276 0.0974 0.1000 -0.0302 0.0959 -0.0215 現lj 1α = 1) 3.5プログラムに関する注意点 前項では、 調整済みリスク差とその信頼区間をSTDRATEプロシジャ又はFREQプロシジャを用いて算出す る例を紹介したが、 デ ー タの状態によっては、 いくつかの信頼区間が算出されない場合があるため注意が必 要である。 まず、表3.2のように、 全ての層において、 「全ての群が0%J又は 「全ての群がl00%Jとなった場合、STDRATE プロシジャ又はFREQプロシジャを実施してもいずれの信頼区間も算出されない。 すなわち、 表3.2のよう な場合は全ての信頼区聞が算出できない。 286
表3.2 全ての信頼区間が算出できない場合 投与群 群l 群2 層l:イベントの有無 あり 。 。 合計 投与群 50 50 群l 50 50 群2 なし 100 層2:イベントの有無 あり 。 。 なし 合計 40 40 60 60 100 次に、 表3.3のように、 全ての層において、 「全ての群が0%又はI00%Jとなった場合、 FREQプロシジャ によって算出 されるSato信頼区間のみ出力され、 他の信頼区間は出力されない。 表3.3 Sato信頼区間のみ出力される場合 投与群 層1:イベントの有無 あり 群l 。 群2 50 なし 50 。 合計 投与群 50 群I 50 群2 層2:イベントの有無 あり 40 。 なし 。 60 100 最後に、 表3.4のように、 いずれかの群において、 合計 40 60 100 「 全ての層が0%又は100%」となった場合、 FREQプロシ ジャによって算出されるNewcombe信頼区間は出力されない。 表3.4 Newcombe信頼区間が出力されない場合 投与群 層l:イベントの有無 あり 群I 。 群2 20 層2:イベントの有無 合計 投与群 50 50 群l 40 30 50 群2 30 なし 100 あり なし 。 30 合計 40 60 100 次項のシミュレ ーションでは、 いずれかの群で「全ての層がO%J又は 「 全ての層がI00%Jとなった場合を 除外して検討を行った。 4. シミュレ ー ションの設定 本項 では、 Greenland信頼区間、 Sato信頼区間、 Newcombe信頼区間のそれぞれの被覆確率をシミュレ ーショ ンにより算出し、 性能評価を試みる。 層別項目の層の数は2層、 4層、 8層の場合 に分けて、 各群の例数やイ ベント発生割合について以下のようなシミュレ ーションを設定した。 なお、 信頼区聞を算出するための信頼 係数は95%、 シミュレ ーション回数は10000固とした。 287
・ 2 層の場合のシミュレ ーション(表 5.1: No. 5.1.1.1~ 5.1.7.9) ・ ・ 例数については大きく分けて以下の2パタ ー ンを設定した。 + 等例数:各群において各層の例数が等しい場合として、 20 例、 50 例、 100 例とした場合 + 不等例数:各群において(20 例、 10 例)、 割合については大きく分けて以下の2パタ ー (50 例、 25 例)、 (100 例、 50 例)とした場合 ンを設定した。 + 等割合:各群において各層の割合が等しい場合として、 10%、 30% 、 50%とした場合 + 不等割合:各群において、 一方の層を 50%、 他方の層を 5%、 20%、 40% とした場合 2 層の場合のシミュレ ーション{表 5.1: No. 5.1.8.1~ 5.1.8.14) ・ ・ 例数については大きく分けて以下の2パタ ー ンを設定した。 + 等例数:各群において各層の例数が等しい場合として、 10 例とした場合 + 不等例数:各群において(10 例、 50 例)とした場合 割合については大きく分けて以下の2パタ ー ンを設定した。 + 等割合:各群において各層の割合が等しい場合として、 10%、 50% とした場合 + 不等割合:各群において、 一方の層を 50%、 他方の層を 10% とした場合 4 層の場合のシミュレ ーション(表 5.2: No. 5ム1.1~ 5.2.7.9) ・ ・ 例数については大きく分けて以下の2パタ ー ンを設定した。 + 等例数:各群において各層の例数が等しい場合として、 20 例、 50 例、 100 例とした場合 + 不等例数:各群において 3 つの層を 20 例、 50 例、 100 例、 残りの層をその半分の例数とした場合 割合については大きく分けて以下の2パタ ー ンを設定した。 + 等割合:各群において各層の割合が等しい場合として、 10%、 30%、 50%とした場合 + 不等割合:各群において、 3 つの層を 50%、 残りの盾を 5%、 20% 、 40% とした場合 4 層の場合のシミュレ ー ション(表 5.2: No. 5.2.8.1~ 5.2.8.18) ・ ・ 例数については大きく分けて以下の2パタ ー ンを設定した。 + 等例数:各群において各層の例数が等しい場合として、 10 例とした場合 + 不等例数:各群において半分の層を 20 例、 残りの半分の層を 10 例とした場合 割合については大きく分けて以下の2パタ ー ンを設定した。 + 等割合:各群において各層の割合が等しい場合として、 10%、 50%とした場合 + 不等割合:各群において、 半分の層を 10%、 残りの半分の層を 50% とした場合 8 層の場合のシミュレ ーション(表 5.3: No. 5.3.1~ 5.3.18) ・ 例数については大きく分けて以下の2パタ } ンを設定した。 + 等例数:各群において各層の例数が等しい場合として、 10 例、 20 例とした場合 + 不等例数:各群において半分の層を 10 例、 残りの半分の層を 20 例とした場合 割合については大きく分けて以下の2パタ ー ンを設定した。 + 等割合:各群において各層の割合が等しい場合として、 10%、 50%とした場合 + 不等割合:各群において、 半分の層を 10%、 残りの半分の層を 50% とした場合 288
・ 8 層の場合のシミュレ ー ション(表 5.3: No. 5ふ19 ~ 5ふ22) 例数及び割合について、以下のパタ ー ンを設定した。 + 不等例数:各群において半分の層を 10 例、残りの半分の層を 20 例、 30 例、 40 例とした場合 + 不等割合: 各群において、 半分の層を 10%、残りの半分の層を 40%、 50%とした場合 各群において、 半分の層を 5%、残りの半分の層を 50%とした場合 5. 被覆確率の比較 各シミュレ ー ションの設定に基づき出力した結果を、層ごとに表 5.1 から 5.3 にまとめた。表には、 Greenland 信頼区間、 Sato 信頼区間、 Newcombe 信頼区間のそれぞれにおける被覆確率を示している。また、各層の群 間差が全て 0 である設定(真の群間差が 0 になる設定)においては、 CMH 検定の結果「有意差なしJとなっ た割合( 1 ー α)も併記した。なお、結果が 94.5% 未満のものは格子掛け+太字(醸翻)、 97.5%を超え たものは網掛け+下線(匡茎墨)にて表示した。 2 層の場合のシミュレ ー ション(表 5.1 : No. 5.1.1.1 ~ 5.1.7.9) まず、 Greenland 信頼区間においては、例数が小さい場合に被覆確率が 94.5%未満になることが多い傾向がみ られたが、 Newcombe 信頼区間では例数の影響はなかったo Sato 信頼区間においても、例数が小さい場合に 被覆確率が 94.5%未満になることがあったが、 Greenland 信頼区間よりも傾向は弱かった。 また、 Sato 信頼区間は層内の割合の差が大きい場合(No. 5.1.3.1、 5.1.3.4、 5.1 ふ 7 等)に被覆確率が 97.5%を 超える傾向がみられた。Newcombe 信額区間では、層間の割合の差が大きい場合(No. 5.1ユ 1、5.1.2.4、5.1ユ 7、 5.1.6.1、 5.1.6.4、 5.1.6.7 等)に被覆確率が 97.5%を超える傾向がみられた。 2 層の場合のシミュレ ー ション(表 5.1 : No. 5.1.8.1 ~ 5.1.8.14) No. 5.1.1.1 ~ 5.1.7.9 のシミュレ ー ション結果より、 Greenland 信頼区間や Sato 信頼区間において例数が小さい 場合に被覆確率が 94.5%未満になる傾向が示唆され、 Sato 信頼区間や Newcombe 信頼区間においては割合の 差が大きい場合に被覆確率が 97.5%を超える場合があったため、追加のシミュレ ー ション No. 5.1.8.1 ~ 5.1.8.14 を行った。まず、 G閃enland 信頼区間においては、例数が小さい場合に被覆確率が 94.5%未満になることが多 し、傾向が明確になった。Sato 信頼区間も Greenland 信頼区間と同様の傾向がみられた 一 方、Newcombe 信頼区 間では例数が小さい場合でも被覆確率が 94.5% 未満になることは少なかった。 また、 層内の割合の差が大きい場合のうち、 No. 5.1.8.4、 5.1.8.9 及び 5.1.8.14 等では、 Sato 信頼区間にて被覆 確率が大きくなる傾向がみられ、 層間の割合の差が大きい場合のうち、 No. 5.1.8.3, 5.1.8.8 及び 5.1.8.12 等で は Newcombe 信頼区間にて被覆確率が大きくなる傾向がみられたが、 No. 5.1.8.13 の様に全ての信頼区間につ いて被覆確率が 94.5% 未満となる場合もみられることから、例数と割合のパタ ー ンにより結果が変わりうる 点に注意する必要があることが分かる。 4 層の場合のシミュレ ー ション(表 5.2 : No. 5.2.1.1 ~ 5.2.7.9) 4層の設定のシミュレ ー ションの結果では、各群の各層にある程度の例数がある場合、 割合の設定に関わら ず、 3 種類の信頼区間のいずれにおいても被覆確率は概ね 94.5% ~ 97.5%の範囲内であったが、例数が少ない 場合に Greenland 信頼区間のみ被覆確率が 94.5%未満となることが多かった。 289
4 層の場合のシミュレ ーション(表 5.2 : No. 5.2.8.1 ~ ゑ2.8.18) シミュレ ー ション No. 5 ユ8.1 ~ 5 ユ8.18 では各群の各層で例数が小さい場合に着目した。 まず、No. 5 ユ1.1 ~ 5 幻 .9 の結果と同様、例数が小さい場合に Greenland 信頼区聞は被覆確率が 94.5% 未満となることが多かった。 次に、Sato 信頼区間は、2 層の際と同様、層内の割合の差が大きい場合(No. 5.2.8.4、5 ユ8.9、5.2.8.11 等)に 被覆確率が 97.5%を超える傾向があった。 また、Newcombe 信頼区聞は、2 層の際と同様、層聞の割合の差が 大きい場合に被覆確率が大きくなる傾向があることに加え、各群の各層の割合が小さい場合(No. 5 ユ8.1、 5 ユ8.5、 5 ユ8.12 等)に被覆確率が 97.5%を超える傾向があった。 なお、シミュレ ー ション No. 5 ユ8.2 のよう に、各群の各層で例数が小さく、割合が大きい場合には、 どの信頼区間も 94.5%未満の被覆確率となった。 ちなみに、 CMH 検定の結果も 94.5%を下回った。 8 層の場合のシミュレ ー ション{表 5.3 : No. 5.3.1 ~ 5.3.22) 最後に、8層の設定のシミュレ ー ションでは、網羅的にシミュレ ー ションを実施すると場合の数が膨大にな るため、2層と4層の場合のシミュレ ー ション結果を踏まえ、例数が小さい場合に着目して検討を行った。 まず、 Greenland 信頼区間においては、 2 層や 4 層の検討結果と同様、各群の各層の例数が小さい場合は、 ほ とんどのシミュレ ー ション設定において被覆確率が 94.5%未満となったが、 Sato 信頼区間及び Newcombe 信 頼区間の被覆確率は、概ね例.5% ~ 97.5%の範囲内であった。 また、Sato 信頼区間は、層内の割合の差が大き い場合( No. 5.3.4、 5.3.8、5.3.13 等)に被覆確率が 97.5%を超える傾向があった。 なお、層内の割合の差が縮 まれば、被覆確率は名義水準( 95% )に近づくことが No ふ 3.19 より示唆される。 さらに、No. 5.3.20 や 5 ふ 21 からは例数を増やすことにより、被覆確率が名義水準に近づく傾向であることが確認できる。 Newcombe 信 頼区間においては、 2 層や 4 層の検討結果と同様、層聞の割合の差が大きい場合(No. 5.3.18、 5.3.22 等)に 被覆確率が大きくなる傾向があった。 シミュレ ー ション結果のまとめ 各群の各層の例数が小さい場合には、Greenland 信頼区間の被覆確率は名義水準を下回る可能性が高くなる 一 方、 Newcombe 信頼区間は層の数や例数によらず被覆確率を名義水準以上に維持することが示唆された。 Rothman, Lash, and Greenland (2012b)では、各層の各群の分母が全て 2 以上であれば、Greenland 信頼区間を 用いることが可能だと述べているが、シミュレ ー ションの結果からは必ずしもそうではなく、例数が少ない 場合においては Greenland 信頼区間の適用は注意が必要であるといえる。 また、Sato 信頼区間は、 Greenland 信頼区間と比べて、層の例数が小さいことによる影響を受けにくいことが示唆されたが、層内の割合の差が 大きい場合、名義水準を上回る傾向も見受けられた。 さらに、Newcombe 信頼区間においても、層聞の割合 の差が大きい場合には、名義水準を上回る傾向であった。 ちなみに、本項のシミュレ ー ションは SAS マクロ %MH()にて実施した(SAS プログラムは本稿の最後で紹 介)。 前項のシミュレ ー ションで設定した状況以外の場合においても、 本マクロを使用することで3種類の 信頼区間の被覆確率を計算することが出来る。 実際の臨床試験計画時等で活用いただければ幸いであるP 290
表5.1 No., 等 例数 、等割合 5. 1. 1. 1 5. 1. 1.2 5. 1.1.3 5. 1. 1.4 5.1. 1.5 5.1. 1 .6 5. 1. 1.7 5. 1. 1.8 等例数、層 内 で等 割合 、層 間 で不等 割合 5. 1. 1.9 5. 1.2. 1 5. 1.2.2 5. 1.2.3 5. 1.2.4 5. 1.2.5 5. 1.2.6 5. 1.2.7 5. 1.2.8 等 例数、層 内 及び層 間 で不等割合 5. 1.2.9 5. 1.3.1 5.1.3.2 5. 1.3.3 5. 1.3.4 5. 1.3.5 5. 1.3.6 5. 1.3.7 5. 1.3.8 5. 1.3.9 ※各行の上段: (n11, n12) 。 2層の場合の各設定における信頼区間の被覆確率 0 , 20 ) 20, 20) (20, 20) 20, 20) (20, 20) 20, 20) (50, 50) 50, 50) (50, 50) 50, 50) (50, 50 ) 50, 50) (1 00, 100) 1 00, 100) ( 100, 100) 100, 100) (JOO, 100) 100, 100) 0, 20) 20, 20) (20, 20) 20, 20) (20, 20) 20, 20) (50, 50) 50, 50) (50, 50) 50, 50) (50, 50) 50, 50) (100, 100) JOO, 100) ( 100, 100) JOO, JOO) (JOO, JOO) JOO, JOO) (20, 20) 20, 20) (20, 20) 20, 20) (20, 20) 20, 20) (50, 50) 50, 50) (50, 50) 50, 50) (50, 50 ) 50, 50) (JOO, 100) 1 00, 100) (100, 1 00) JOO, 100) ( 100, JOO) JOO, JOO) 。 設定常 側費量 • •·.• •• 以 割合 (10% 、 10%) ( 10% 、 10%) (30%、30%) (30%, 30% (50%, 50%) (50%, 50% (10%, 10%) (10%, 10% (30%, 30%) (30%, 30% (50% , 50%) (50%, 50% ( 10%, 10% ) (I 0% , 10% (30%, 30%) (30%, 30% (50%, 50%) (50%, 50% (50%, 5%) (50%, 5% (50%, 20%) (50% , 20% (50%, 40%) (50%, 40% (50%, 5%) (50% , 5% (50%, 20%) (50%, 20% (50%, 40%) (50%, 40% (50% , 5% ) (50% 、5% (50%, 20%) (50% , 20% (50%, 40%) (50% 、40% (50% 、5%) (5%, 50% (50% 、20%) (20% , 50% (50% 、40%) (40% 、50% (50% 、5% ) (5%, 50% (50% , 20%) (20%, 50% (50% 、40%) (40% 、50% (50%, 5%) (5%, 50% (50% 、20%) (20% 、50% (50%, 40%) (40% 、50% (p,,.p12 )、 各行の下段: (n21, n22) I �·型崎勤M 目 95.67 ふ?ノ被覆縮率 $a•ぬ 95.77 盟誕 96.62 95.40 95.31 94.60 94.64 94.64 94.64 94.82 94.85 95.78 94.9 1 94.80 94.89 95.0 9 95. 1 9 94.55 94.55 94.55 94.55 95.03 95.12 95.49 95.46 95.02 95.06 95.20 95.25 95.20 95.20 95.20 95.20 94.74 98.17 95.0 7 94.55 96.49 95.46 94.61 94.78 94.87 94.86 94.52 94.83 盟主1 95.08 94.87 94.96 96.43 95. 1 7 94.93 94.94 94.95 94.95 94.88 94.99 97.77 95.04 94.93 95.01 96.28 95.21 95.34 95.38 95.43 95.42 盟A丑 盟主主 96.57 96.47 94.70 94.94 94.93 94.59 盟遁Z 97.68 94.82 96.84 96.38 94.79 94.87 94.80 94.88 98.83 泣主Z 94.94 96.98 96. 1 8 95.36 95.46 95.45 <P21,pn)、α;Type I error rate 291 1・a Ne糊mit' じ閥横室
表5. 1 l\lt;>; 不等例数、等割合 5. 1.4. l 5.1.4.2 5. 1 .4.3 5.1.4.4 5. 1.4.5 5. 1 .4.6 5. 1 .4.7 5.1.4.8 不 等 例 数、 層内 で等割合、 層間 で不 等 割合 不等例数、 層内 で等 割合、 層間 で不等割合 ※各行の上段. 5. 1.4.9 5. 1 .5. 1 5.1.5.2 5. 1 .5.3 5. 1 .5.4 5. 1 .5.5 5.1.5.6 5. 1.5.7 5. 1.5.8 5. 1.5.9 5. 1 .6. 1 5. 1 .6.2 5.1.6.3 5. 1.6.4 5. 1 .6.5 5.1.6.6 5. 1 .6.7 5.1.6.8 5.1.6.9 (n11,nd 2層の場合の各設定における信頼区間の被覆確率(続き) 議 山 -� �1ヲE 被覆擁率 占 与よムム;;;冒擁 ー $at� _ N阿国tb居 - �.M車並意 山一割襲警G_� �---�-重隆一-�'�臨叫阻d 仰, 10) oo%, IQ%) 91.19 97.33 抑.26 盟Z宣 ( 10 %, 10%) ’ 20, 10) (30 %, 30%) (20, 10) 95.14 95.24 (30 %, 30% 20, 10) (50%, 50%) (20, 10) 95. 1 5 94.98 95. 1 2 94.57 (50%, 50% 20, 10 ) (10 %, 10 %) (50, 25) 95.28 95.95 94.93 94.80 ( 10%, 10% 50, 25) (50, 25) (30%, 30%) 94.84 94.60 95.3 1 95.34 (30%, 30% 50, 25) (50%, 50%) (50, 25) 95.36 50, 25) (50%. 50% (10%, 10 %) (10 0, 50) 95. 1 5 (10 %, 10 % 100 , 50 ) (30%, 30 %) (100, 50) 95. 1 7 100, 50) (30 %, 30% ( 100, 50) (50%, 50%) 94.97 100, 50) (50%. 50 % (50 %, 5%) 0, 10) 95.52 20, 10) (50%, 5% (50 %, 20%) (20, 10) 96.20 95.42 20, 10) (50%, 20 % (50 %, 40%) (20, 10) 95.2 1 95. 1 7 20, 10 ) (50%, 40% (50, 25) (50%, 5%) 94.95 97.24 95.32 50, 25) (50%, 5% (50, 25) (50 %, 20 %) 94.91 95.7 1 95.27 50, 25) (50%, 20 % (50, 25) (50%, 40 %) 94.50 94.98 50, 25) (50 %, 40% (50%, 5%) ( 100, 50) 94.86 94.99 97.47 95.0 7 100, 50 ) (50%, 5% (50 %, 20 %) ( 1 00, 50) 94.72 94.82 95.87 95.0 6 100 , 50) (50%, 20% (50%, 40 %) ( 100, 50) 94.70 94.67 94.80 100, 50) (50%, 40 % (50 %, 5%) ( 10, 20) 95.37 盟必 10 , 20 ) (50%, 5% (10, 20) (50 %, 20 %) 96.30 95.35 (50 %, 20%) ( 10, 20) (50 %, 40%) ( 10, 20) 94.78 95.27 95.2 1 10, 20) (50%, 40% (50 %, 5%) (25, 50) 94.97 94.94 98.18 25, 50 ) (50%, 5% (50%, 20%) (25, 50) 96. 1 5 95. 1 6 (50%, 20% 25, 50) (25, 50) (50 %, 40%) 94.77 (50 %, 40 % 25, 50) (50 %, 5%) (50, 100) 95.10 94.75 95. 1 2 盟盟 50, 10 0) (50%. 5% (50 %, 20%) (50, 100) 95.0 9 96.15 95.0 3 95.25 (50%, 20 % 50, 100) (50 %, 40 %) (50, 100) 94.85 94.85 94.86 94.85 50, 100) (50%, 40% 伊11,pn) 、 各行の下段: (町 1, n,,) (p,., Pnl 、 α : Type I error ra白 I 。 292
表 5.1
N.o.
不
等
例
数
層
内
及
5.1.7.1
5.1.7.2
5.1.7.3
5.1.7.4
層
5.1.7.5
で
5.1.7.6
害lj
5.1.7.7
間
不
等
i口
:,,.
5.1.7.8
5.1.7.9
追
5.1.8.1
検
討
5.1.8.2
力日
5.1.8.3
5.1.8.4
5.1.8.5
5.1.8.6
5.1.8.7
5.1.8.8
5.1.8.9
5.1.s.10
5.1.8.11
5.1.8.12
5.1.8.13
5.1.s.14
※各行の上段:
(n11, n12l
2 層の場合の各設定における信頼区間の被覆確率(続き)
設
·�e,里(lpptbe
調整ー::-璽金
(20,10)
(50%,5%)
'17,99
20,10
5%,50%
(20,10)
(50%,20%)
96.14
96.36
20,10
20%,50%
(20,10)
(50%,40%)
95.11
95.28
20,10
40%,50%、
(50,25)
(50%,5%)
盟�
笠忍
5%,50%
50,25
(50,25)
(50%,20%)
94.67
96.62
96.12
20%,50%
50,25
(50,25)
(50%,40%)
94.93
95.35
95.44
40%,50%、
50,25
(100,50)
(50%,5%)
94.80
笠�
盟主重
5%,50%
100 50
(100,50)
(50%,20%)
94.70
96.80
96.13
{100,502
{20%,50%2
(50%,40%)
I (100,so)
94.82
94.65
94.65
{40%,50%}
{100,502
(10,10)
(10%,10%)
盟J1
盟主連
| 箆鐙
10%,10%
10,10
(10,10)
(50%,50%)
96.00
50%,50%
10,10
(10,10)
(50%,10%)
97.31
{50%,10%)
{10,102
(50%,10%)
I (JO,10)
97.43
97.39
υ0%,50%}
{10,102
(10%,10%)
I (50,10)
96.94
94.57
{10%,10%2
{50,102
(50%,50%)
I cso,10)
94.50
94.50
{50%,50%}
{50,102
(50%,10%)
I (50,10)
95.96
94.62
{50,102
{50%,10%}
(10%,50%)
I cso, IO)
96.89
94.85
{10%,50%}
{50? 102
(50%,10%)
I cso,10)
96.50
97.02
{50, 102
{10%,50%}
(10%,10%)
I (50, IO)
95.12
94.75
盟:J1.
{10%,10%}
(10,50)
(50%,50%)
I (50, IO)
94.58
臨機器臓器器器器泌総融機
{50%,50%}
{10,50}
10%)
(50%,
I c5o,10)
97.30
{50%,10%}
{10,50}
(10%,50%)
I (50,10)
{50%,10%}
(10,50)
(50%,10%)
I (50,10)
里担1
際綴織議室 99.37
{10%,50%}
'10,50)
<P11, P12)
、 各行の下段:
(n21, n22)
(p,1, p22)
293
、 α : Type I error 悶te
1-a
c�検定
等例数 、層内 で等割合、層間 で不 等割合 等例数 、層内及 び層間で不等割合 5.2.3.9 ※各行の上段: (10%,10%,10%,10%) (20,20,20,20) (I 0%,10%,10%,10% 20,20,20,20) (30%,30%,30%,30%) (20,20,20,20) (30%、30%,30%,30% 20,20,20之助 (50%、50%,50%,50%) (20,20,20,20) (50%、50%,50%,50% 20,20,20,20) (10%,10%,10%,10%) (50,50,50,50) (10%,10%,10%,10% 50,50,50,50) (30%,30%,30%,30%) (50,50,50,50) (30%,30%,30%,30% 50,50,50,50) (50%,50%,50%,50%) (50,50,50,50) (50%,50%,50%,50% 50,50,50,50) (100,100,100,100) (10%,10%,10%,10%) 100,100,100,100) (10%,10%,10%,10% (100,100,100,100) (30%,30%,30%,30悦) 100,100,100,100) (30%,30%,30%,30% (100,100,100,100) (50%,50%,50%,50%) 100,100,100,100) (50%,50%,50%,50% (20,20,20,20) (50%,50%,50%,5%) 20,20,20,20) (50%,50%,50%,5% (50%,50%,50%,20%) (20,20,20,20) 20,20,20,20) (50%,50%,50%,20% (50%,50%,50%,40%) (20,20,20,20) (50%,50%,50%,40% 20,20,20,20) (50%,50%,50%,5%) (50,50,50,50) 50,50,50,50) (50%,50%,50%,5% (50%,50%,50%,20悦) (50,50,50,50) 50,50,50,50) (50%,50%,50%,20% (50%,50%,50%,40%) (50,50,50,50) 50,50,50,50) (50%,50%,50%,40% (100,100,100,100) (50%,50%,50%,5%) 100,100,100,100) (50%,50%,50%,5% (100,100,100,100) (50%,50%,50%,20%) 100,100,100,100) (50%,50%,50%,20% (100,100,100,100) (50%,50%,50%,40%) 100,100,100,100) (50%,50%,50%,40悦 (20,20,20,20) (50%,50%,50%,5%) (5%,50%,50%,50% 20,20,20,20) (50%,50%,50%,20%) (20,20,20,20) 20,20,20,20) (20%,50%,50%,50% (50%、50%,50%,40%) (20,20,20,20) (40%,50%,50%,50% 20,20,20,20) (50,50,50,50) (50%,50%,50%,5%) (5%、50%,50%,50% 50,50,50,50) (50%,50%,50%,20%) (50,50,50,50) (20%,50%,50%,50% 50,50,50,50) (50%,50%,50%,40円lo) (50,50,50,50) ( 40%,50%,50%,50% 50,50,50,50) (100,100,100,100) (50%,50%,50%,5%) 100,100,100,100) (5%、50%,50%,50% (100,100,100,100) (50%,50%,50%,20悦) 100, I 00,100,100) (20%,50%,50%,50% (100,100,100,100) (50%,50%,50%,40%) I 00, I 00, I 00,100) (40%,50%,50%,50% (n,,, n12, n13, n,,) (p11,P12,p13,p14) 、 各行の下段: 94.53 95.00 94.97 94.81 94.92 94.91 94.78 95.04 94.97 94.54 94.69 94.78 94.85 94.83 94.85 94.85 94.85 94.58 94.75 94.83 94.81 94.87 94.95 94.96 94.98 94.70 94.70 94.70 94.70 94.99 97.11 95.49 94.54 96.05 94.90 94.87 95.09 95.06 95.29 96.80 95.33 94.81 94.88 95.93 95.02 94.90 94.94 94.95 94.95 94.96 95.05 96.84 95.17 95.01 95.05 95.95 95.06 94.89 94.89 94.89 96.86 96.77 95.83 96.06 94.84 95.01 96.91 96.76 94.67 95.80 95.77 94.81 94.90 94.90 94.70 96.98 96.65 94.74 95.72 95.67 94.87 94.87 94.87 (n21, n22, n,,, n24) 294 (p2,,JJn,p23,p24) 、 α: Type I error 田te
表5.2 4層の場合の各設定における信頼区間の被覆確率(続き) 設定号車 棋思議蝿 Sa穆 一雪量蜘E雌臨 種階 例数 級紙電制 (20,20,20,10) (10%,10%,10%,10%) 95.11 盟主全 20,20,20,10) (10%,10%,10%,10% (20,20,20,10) (30%、30%,30%,30悦) 94.73 94.94 20,20,20, I 0) (30%,30%,30%,30% (20,20,20,10) (50%、50%,50%,50%) 94.93 94.97 20,20,20,10) (50%,50%,50%,50% (50,50,50,25) (10%、10%,10%,10%) 94.78 94.92 95.47 50,50,50,25) (10%, I 0%, I 0%, I 0% (50,50,50,25) (30%,30%,30%,30%) 94.78 94.91 95.03 50,50,50,25) (30%,30%.30%.30% (50,50,50,25) (50%,50%,50%,50%) 94.94 95.21 95.27 50,50,50,25) (50%,50%,50%,50% (100,100,100,50) (10悦,10%,10%,10%) 94.91 95.02 95.20 100,100,100,50) (10月lo, I 0%, I 0%.10% (100,100,100,50) (30%,30%,30%,30%) 94.91 95.08 95.00 I 00,100, I 00,50) (30%,30%,30%,30% (l 00, I 00,100,50) (50%,50%,50%,50%) 94.69 94.67 100,100,100,50) (50%,50%,50%,50% (20,20,20,10) (50%,50%,50%,5%) 94.69 96.57 (50%,50%.50%,5% 20,20,20,10) (50%,50%,50%,20%) (20,20,20,l 0) 94.98 95.56 (50%,50%.50%,20% 20,20,20,10) (20,20,20,10) (50%,50%,50%,40%) 94.95 95.03 20,20,20, I 0) (50%,50%,50%,40% (50%,50%,50%,5%) (50,50,50,25) 96.54 94.84 95.21 (50%,50%.50%,5% 50,50,50,25) (50%,50%,50%,20%) (50,50,50,25) 94.91 95.82 94.74 (50%,50%,50%,20% 50,50,50,25) (50%、50%,50%,40%) (50,50,50,25) 95.32 94.77 95.20 (50悦,50%,50%,40% 50,50,50,25) (100, I 00,100,50) (50%,50%,50%,5%) 95.34 96.15 95.40 100,100,100,50) (50%,50%,50%,5% (100,100,100,50) (50%,50%,50%,20%) 94.97 95.16 95.34 100,100,100,50) (50%,50%,50%,20% ( I 00,l 00,100,50) (50%,50%,50%,40%) 94.79 94.79 100,100,100,50) (50%,50%,50%,40% (50%,50%,50%,5%) (10,20,20,20) 95.07 97.14 (50%,50%,50%,5% I 0,20,20,20) (50%,50%,50%,20%) (10,20,20,20) 94.69 96.06 (50%、50%,50%,20% 10,20,20,20) (50%,50%,50%,40%) (10,20,20,20) 94.73 94.80 (50%,50%,50%,40% I 0,20,20,20) (50%,50%,50%,5%) (25,50,50,50) 95.10 96.89 25,50,50,50) (50%,50%,50%,5% (25,50,50,50) (50% 》50%,50%,20%) 94.89 95.87 25,50,50,50) (50%、50%,50%,20% (25,50,50,50) (50%,50%,50%,40%) 95.19 94.91 (50%,50%,50%,40% 25,50,50,50) (50,100,100,100) (50%,50%,50%,5%) 96.99 95.13 50,100,100,100) (50%,50%,50%、5% (50,100, I 00,100) (50%,50%,50%,20%) 94.84 94.88 95.75 50,100, I 00,100) (50%,50%,50%,20% (50,100,100,100) (50%,50%,50%,40%) 94.74 94.74 94.74 50,100,100,100) (50%,50%,5 0%,40% 」 : 不等例数、等割合 N唖h 5.2.4.1 5.2.4.2 5.2.4.3 5.2.4.4 5.2.4.8 5.2.4.9 不等例数、層内で等割合、層間で不等割合 5.2.4.l 5.2.5.2 5.2.5.3 5.2.5.4 5.2.5.5 5.2.5.6 5.2.5.7 5.2.5.8 5.2.5.9 不等例数、層内で等割合、層間で不等割合 5.2.6.l 5.2.6.2 5.2.6.3 5.2.6.4 5.2.6.5 5.2.6.6 5.2.6.7 5.2.6.8 5.2.6.9 ※各行の上段: (nu, n12, n13, n14) 伊11,P12,Pll,P14 )、 各行の下段. (n21, n払n日n,.) 295 linci 1・u CMB藍 (p,,, pi,, p23, p24) 、 αType I error rate 95.70 95.09 94.97 95.15 95.11 95.27 95.08 95.10 94.68 95.12 95.44 95.02 95.54 95.10 95.29 95.41 95.23 94.79 95.58 95.16 94.80 95.31 94.99 95.12 95.19 94.95 94.74
不等例数、層 内及 び層 間で不等割合 。 0,20,20,10) 辺辺dQ,lQ (20,20,20,10) 辺� (20,20,20,10) 盟主主笠J.Q (50,50,50,25) 旦型型� (50,50,50,25) 笠型� (50,50,50,25) 5.2.7.7 5.2.7.8 5.2.7.9 追加検 討 5.2.8.1 5.2.8.2 5.2.8.3 5.2.8.4 5.2.8.5 5.2.8.6 5.2.8.8 5.2.8.9 5.2.8.10 5.2.8.11 5.2.8.12 5.2.8.13 5.2.8.14 5.2.8.15 5.2.8.16 5.2.8.17 5.2.8.18 盟4生盟J.Q (10,10,10,10) 盟斗生盟J.Q (10,10,10,10) 盟必』』 (10,10,10,10) 盟』』J.Q (20,20,10,10) 型辺必,lQ (20,20,10, l 0) 辺辺』4立 (20,20,10,10) 盟主生盟,lQ (20,20,10,10) 盟主必,lQ (20,20,10,10) 笠辺』4立 ο0,20,10,10) 笠担』,lQ (20,20,10,10) 笠辺』,lQ (20,20,10,10) 盟些些dQ (20,20,10,10) 盟必dQdQ (20,20,10,10) 盟4生笠♀2 (20,20,10,10) 盟必よ生� (20,20,10,10) 盟』よ生担 (20,20,10,10) 盟』dQdQ (20,20, 10,10) (10,10,20,20) 5%,50%,50%,50% (50%,50%,50%,20%) 20%,50%,50%,50%) (50%,50%,50%,40%) 40%,50%,50%.50% (50%,50%,50%,5%) 5%,50%,50%,50% (50%,50%,50%,20%) 20%,50%,50%,50% (50%,50%,50%,40%) 4 (10%,10%,10%,10%) 10%,10%,10%,10% (50%,50%,50%,50%) 50%,50%,50%,50% (50%,50%,10%,10%) 50%,50%, l 0%, l (50%,50%,10%,10%) 10%,10%,50%,50% (10%,10%,10%,10%) 10%,10%,10%,10% 50%,50%,50%,50% (50%,50%,10%,10%) 50%.50%,10%.10% (10%,10%,50%,50%) 10%,10%,50%,50% (50%,50%,10%,10%) 10%,10%,50%,50% (50%,10%,50%,10%) 50%,10%,50%,10% (50%,10%,50%,10%) 10%,50%,10%,50% (10%,10%,10%,10%) (50%,50%,50%,50%) 50%,50%,50%,50% (50%,50%,10%,10%) 50%,50%, l 0%, l (50%,50%,10%,10%) (10%,10%,50悦,50%) 50%,50%, l 0 (50%,10%,50悦,10%) 50%, l 0%,50%,10% (50%,10%,50%,10%) (10%,50%,10%》50。ん) 296 96.23 95.57 95.71 95.02 95.05 94.67 96.66 96.55 94.73 95.70 95.62 94.81 94.83 94.81 94.71 96.64 96.37 94.85 95.77 95.60 94.77 94.82 94.77 盟週 97.37 94.84 盟主主 95.59 94.64 94.61 94.61 94.85 96.99 95.20 97.30 95.03 町一一四一 5.2.8.7 望星� (100,100,100,50) 100,100.100,50 (100,100,100,50) 100,100,100,50 (100,100,100,50) 100,100,100,50 (10,10,10,10) ;]事的,�ihb,e·�•τc事 σ0%,50%,50%,5%) 5ろも,50%,50%,50% (50%,50%,50%,20%) ·20%,50%,50%,50% (50%,50%,50%,40%) 40%,50%,50%,50% 97.02 95.01 97.42 聖護E 97.08 95.41 鐙盤 95.67 95.26 95.20 97.39 95.17 � 98.58 96.49 95.73 97.41 97.21 95.29
表5.3 No. I 5.3.1 I 5.3.2 I 5.3.3 I 5.3.4 I 5.3.5 I 5.3.6 I 5.3.7 I 5.3.8 I 5.3.9 I s.3.IO I 5.3.11 I s.3.12 I 5.3.1 3 I 5.3.14 I 53.1 5 I 5.3.1 6 I 5_3.1 7 I 5.3.18 I 5.3.1 9 I 5.3.20 I 8層の場合の各設定における信頼区間の被覆確率 ”。 設定畿 5.3.21 I t斗U, … ,斗り, lU, … , IU) 40,ド.….日.,4 0, 10, … ,102 5.3.22 I (20, … ,20, 10, … , 10) 20, … ,20, 10, … ,10 ※各行の上段: (nu, .. ,n,.,n出・・,n,sl α : Type I error 田te 1唱 被覆韓串 s 例数 (10, … ,10, 10, … ,10) ‘ (’10, … ,10, 10,… ,10) (10, … ,10, 10,... ,10) 10, … ,10, 10, … ,102 (10, … ,10, 10, … ,10) {10, … ,10, 10, … ,102 (10, … ,10, 10, … ,10) {10,... ,10, 10,... ,102 (20,... ,20, 20,... ,20) {20, … ,20, 2 0,... ,202 (20, … ,20, 20, … ,20) 20,... ,20, 20,... ,2句 (20,... ,2 0, 20,... ,20) 20, … ,20, 20, … ,202 (20,... ,20, 20,... ,20) 20, … ,20, 20,ド.….一.ユ02 (20,... ,20, 10,... ,10) 20,... ,20, 10, … ,102 (20, … ,20, 10, … ,10) 20, … ,20, 10, … ,102 (20,... ,20, 10,... ,10) 20, … ,20, 10, … ,102 (20,... ,20, 10,... ,10) 20, … ,20, 10, … ,102 (20, … ,20, 10, … ,10) 20,... ,20, 10,... ,102 (20, … ,20, 10, … ,10) 10ぃ.,10, 20,... ,202 (20,... ,20, 10,... ,10) 10, … ,10, 20, … ,202 (20,... ,20, 10,... ,10) 10,…,10, 20, … ,202 (20,... ,20, 10,... ,10) 10,... ,10, 20,... ,202 (20, … ,20, 10, … ,10) 10,... ,10, 20,... ,202 (20, … ,20, 10, … ,10) 20, … ,2 0, 10,... ,102 (3 0,... ,3 0, 10,... ,10) 95.55 盤斗重 95.90 94.90 95.25 95.23 94.73 97.2 9 95.2 1 皇位Z 97.4 1 95.06 95.94 95.20 95.11 95.11 95.1 1 94.67 95.18 97.17 95.3 1 94.62 98.36 97.4 7 94.91 96.60 95.3 1 94.99 95.66 95.5 1 95.01 96.62 95.14 94.85 97.42 95.10 盤畠量 97.14 95.01 96.84 95.1 4 94.68 94.99 94.96 97.3 0 94.84 94.68 97.24 95.12 盟』宣 盟� 97.16 96.70 94.74 盟主重 97.00 94.67 盟必 96.68 98.84 盟主主 伽 h ・・,p,•• p,,,・,Pis)、 各行の下段: (n,,,…,n24,n,s,…,n2sl 297 New側,..� O\l8.検定 (p21,…,p24,p25,…,P2s)
6.
まとめ
本稿では、 調整済みリスク差に対する信頼区間の算出方法を3種類紹介した 上で、 それぞれの信頼区間の性
能評価を行った。 シミュレ ーション結果より、 Greenland信頼区間、Sato信頼区間、Newcombe信頼区間のう
ち、 層の数や例数によらず被覆確率が名義水準を維持したのは Newcombe信頼区間であった。 各群の各層の
例数が小さい場合、Greenland信頼区間は被覆確率が名義水準を下回る可能性が高いため、注意が必要である。
Sato信頼区間や Newcombe信頼区間は、Greenland信頼区間ほど例数による影響を受けないが、層内や層聞の
割合の設定によっては、被覆確率が名義水準を上回ることがあるため、 層内及び層聞の割合の差を考慮し、
適用する信頼区聞を選択することが望ましい。
参考文献
GreenlandS. and Robins J. M. (1985),“Estimation of a common e能ct parameter企om sparse follow-up data,”
Biometrics, 41(1): 55 ・68.
Sato T. (1989),“On variance estimator for 也e Mantel-
・
1323-1324.
Y阻 X. andSu X. G. (2010),”S館前 ified Wilson andNewcombe Confidence Intervals for Multiple Binomial
Proportions,”Statistics in Biopharmaceutical Research; Vol. 2, No. 3: 329・335.
•
Ro曲man K. J. (2012a),“Epidemiology: A n In位uduction, 2nd Ed.,'’ Oxford University Press.
Ro也man K. J., Lash T. L., and GreenlandS. (2012b),“Modem Epidemiology, 3rd Ed.,'’ Lippincott Williams &
Wilki.
SAS/STA T(R) 14.1 User’ s Guide.
飯塚政人,浜田知久馬(2013),”2群の割合の差における信頼区間の構成法の比較,”SASユ ー ザ ー 総会.
. 飯塚政人,魚住龍史,浜田知久馬(2014),”FREQプロシジャによる割合の差の信頼区間J SASユ ザ
’
ー
一総会.
参考: 5章のシミュレ ーションを実行するSASマクロ
_NI :群1の各層の例数をスペ ー ス区切りで入力;
* _N2:群2の各層の例数をスペース区切りで入力;
* _p1:群lの各層の割合をスペ ー ス区切りで入力;
* _P2:群2の各層の割合をスペ ー ス区切りで入力;
* ー ITE:シミュレー ション回数
%macro MHLNl=’ 10, 2ゆ,30ぺ_N2= ’ 10, 20, 30", YI = ’ 0. l, 0. 2, 0. 3", _P2= ’ 0. 1, 0. 2, 0. 3ぺ_ITE =lOOOO) ;
options n岨 source no目白 tes;
ods listing close;
本
data_NU L L_;
STR=O; FLAG=l
do油ile (FLAG=l)
if (scan(&_Nl. , STR+l,ぺ ’ )= u ) then FLAG=O;
else STR=STR+l;
e泊1d ;
call 町mputx(二STR",STR) ;
run;
data SAMPLE
W=O; TRUE_D=O;
array Nl {&_STR.} ; array N2 {&_STR.} ;
298
array Pl {&_STR.} ; array P2 {&_STR.}
array XI {&_STR.} ; array X2 {&_STR.}
do I=l to & STR.
’
Nl[I]=input(scan(& NL, I, n , ) , best12.)
’
N2[I]=input(scan(& N2., I, ぺ ) , best12.)
Pl[!]=input(scan(& Pl., I, n, n), best12.)
P2[I]=input(scan(&_p2., I, n, n), best12.)
=W+(NI[I]*N2[I])/(Nl[I]+N2[I]);
W
end
do I=l to & STR.
TRUE_D=TRUE_D+(Pl[I]-P2[I])*(NI[I]*N2[I])/(Nl[I]+N2[I])/W ;
end;
”
call symputx ( TRUE DぺTRUE_D);
J=l
do while (J<=&_ITE.)
do I=l to &_STR.
Xl[I]=ranbin(777, Nl[I], Pl[!]);
X2[IJ=ranbin(777, N2[I], P2[I]);
end
if (sum(of XI[*]) ne O and sum(of X2[*]) ne O and
and sum(of X2[*]) ne sum(of N2[*])) then do;
sum(of Xl[*]) ne sum(of Nl[*])
do I=1 to &_STR.
NO=l; TREAT=! ; X=Xl[I]; N=Nl[I]
; output;
NO=l; TREAT=2; X=X2[I]; N=N2[I]
; output;
; output;
; N=Xl[I]
N0=2; TREAT=! ; X=l
; N=Nl[I]-Xl[I]; output;
N0=2; TREAT=l; X=2
; N=X2[I]
; output;
N0=2; TREAT=2; X=l
; N=N2[I]-X2[I]; output;
N0=2; TREAT=2; X=2
end
J=J+l
end
end
keep J NO TREAT I N X;
run ,
ods output Effect=CI
proc stdrate data=SAMPLE
method=mh
stat =risk
effect=diff
plots=none;
where NO=l
by J;
population group=TREAT event=X total=N;
strata I/ order=internal stats(cl=normal) effect;
run ,
ods output close;
data CP STDRATE;
set CI ;
if (LOWERCL <= &ーTRUE_D. <= UPPERCL) then CP_WALD+(100/&_ITE.);
if (_N_=&ー!TE.);
keep CP_IVALD;
run ,
ods output CommonPdiff=CI C阻=C附;
proc freq data=SAMPLE;
where N0=2;
299
by J;
table I*TREAT*X / riskdiff(common column=l cl=newcombe) cmh nocol nopercent plots=none;
weight N;
run ,
ods output close;
data CP_SATO;
set CI
n
’
where (Method= Mantel一Haenszel ) ;
if (LOIVERCL <= &_TRUE_D. く= UPPERCL) then CP_SATO+(lOO/&_ITE.)
ifし札せ_ITE.)
keep CP_SATO;
run ,
proc sql noprint;
select count(*) into: ITE NEW from CI where Method="Newcombe";
quit ;
d ata CP_NEIV
set CI
’
’
where (Method= Newco皿be )
if (LOIVERCL <=ιTRUE_D. <= UPPERCL) then CP NEや(100/& ITE_NEIV.)
if (_N_=&_!TE一郎IV.) ;
keep CP_NEIV;
run ,
data CP_C附j;
set CMH
where (Statistic=l)
if (Prob)=0.05) then CP_C附I+(100/&_ITE.)
ifしN_=&_ITE.)
keep CP_C服j;
run
options source notes;
ods listing;
data CP;
merge CP_STDRATE CP_SATO CP_NEIV CP_CMH;
run
’
" N2 =" & N2.
titlel "Nl= & NL ;
”
’
" P2 = &_p2.;
title2 "Pl= &_pl. ;
title3 "True Difference=& TRUE_D.";
proc print; run;
山’
titlel nH ; title2 ""; title3
;
始nend;
* 2層の指定例;
略雌l LNl= 20, 20ぺ _N2=" 20, 20ぺ
”
’
_p1= 0.1, 0. 1ぺ_P2= 0. 1, 0. l")
H
* 4層の指定例;
’
首MH(ーNl=" 20, 20, 20, 20 : _N2=" 20, 20, 20, 20ぺ
_Pl="O.1, 0.l, 0.l, 0.l", _P2="0.l, 0.l, 0.1, 0.l")
* 8層の指定例;
'’
首脳l(_Nl=" 10, 10, 10, 10, 10, 10, 10, 10ぺ _N2= 10, 10, 10, 10, 10, 10, 10, 10ぺ
n
.Pl="O.l, 0.1, 0.1, 0.1, 0.l, 0.1, 0.1, 0.l ’ _P2="0.1, 0.1, 0.1, 0.1, 0.l, 0.1, 0.1, 0.1 H) ;
以上
300
ベイズ流の単群第H相試験デザインのSASマクロの作成 0橋本大哉、 嘉田晃子 (国立病院機構名古屋医療センタ ー 臨床 研究センタ ー ) Thall and Simon(1994,Biometrics) によって提案された事後確率によるベイズ流の単群第II相試験デ ザインは、 主要評価項目である2値データを連続的にモニタリングし、 試験治療と標準治療の反応 率の事前分布および試験デー タから得られる尤度から、試験治療が標準治療に優る事後確率を求め る。 事後確率があらかじめ定めた上側の確率を超えれば試験治療が有効と宣言して試験を中止し (有効中止)、あらかじめ定めた下側の確率を下回れば試験治療が無効と宣言して試験を中止し(無 効中止) 、いずれにも当て はまらなければ試験を継続 する。 この手順は連続モニタリングする必要 があるが、試験治療が標準治療と比べて極めて高い反応率を示す場合、 あるいは低い反応率を示す 場合に少数の評価で早期に試験を中止できるメリットがあり、希少疾患を対象とする単群の臨床試 験を立案する際の選択肢の1つとなっている。 一方、 反応率の事前分布や中止確率及びモニタリン グを開始する例数と終了する例数に関して 、複数のシナリオを検討する必要があるため、 マ クロ化 することで効率的な研究計画の立案ができる。 SASでこのデザインに基づくプログラムの作成を検討したとき、 事後確率 (ベ ー タ分布の確率密 度関数と分布関数の積を積分した値で算出する) の計算が、試験治療の反応率の確率密度関数の形 状が急峻な場合に 、収束せずに誤った値を返すことが起こった。発表者らは、PRC O IMLのSubmit ー ステ トメントを用いてR上で積分計算を実施することで、 直接Rを起動することなくこの問 題を回避し、SAS マ クロの作成に成功したので報告する。 参考文献 , R.Pract icalBayesianguidelinesr fo phaseIIB clinical佐i als. Biomet,・ics 1994; 50: [l] ThallPFSimon 337-49. [2]手良向聡, 大門貴志訳. 臨床試験デザイン ーベイズ流・頻度流の適応的方法. メディカノレ・パ ブリケ ー ションズ. 2014 301
公開医療ビッグデ ー タを活用した 医薬品マ ー ケティングの可能性 武藤 猛 MarkeTech Consulting代表 Possibility ofpharmaceutical Marketing Using句enMedical BigData TakeshiMuto President, MarkeTech Consulting 要旨 近年、医療の分野でもビッグデ ー タとその活用の議論が盛んになっている。 医療機関で発生した多種 多様な医療デ ー タが関係機関に集約され匿名化の上で、医療費の適正化や医療の質向上など様々な目的 で活用され始めている。 一方、 製薬企業という民間の立場から医療ビッグデ ー タを眺めると、 デ ー タの オ ー プン性とデ ー タ内容・粒度(医薬品別、 医療機関別など)から判断して、 医薬品マ ー ケティングに 活用できるものは、 従来から公開されているDPCデ ー タや、 昨年初めて公開された NDBオ ー プンデ ー タにほぼ限定される。 本論文では、 後者の NDB オ ー プンデ ー タをどのように医薬品マ ー ケテイングに 活用できるかを検討した。 NDBオ ー プンデ ー タを活用した第一の事例は、医薬品市場構造の分析である。デ ー タが薬効領域別(大 分類:8、 中分類:33、 小分類:137)であることに着目し、 特に薬効領域(小分類)単位の市場構造を 分析した。 第二の事例は、 都道府県単位の競合分析(エリアマ ー ケテイング)である。 都道府県単位の 競合状況を上位製品のシェアやシェア比率を算出し可視化することにより、今後打つべき エリア戦略が 明確になる。 結論として、NDBオ ー プンデ ー タは、目的は限定されるが、医薬品マ ー ケテイングに十分活用可能で ある。 ただし、NDBオ ー プンデ ー タは今後公開されるとしても年単位であること、およびデ ー タ公開時 期とデ ー タ収集時期との時間差がかなり大きいことから、 支店や営業所の業績評価には適さず、 本社の 中長期戦略立案のためのマ ー ケティング向きと考えられる。 キ ー ワ ー ド:医薬品マ ー ケティング、医療ビッグデ ー 夕、NDBオ ー プンデ ー 夕、市場構造分析、 エリア マ ー ケティング、 公開デ ー タのメリットと限界 1. はじめに 1.1医療ビッグデ ー タについて 最近、 ビッグデ ー タの話題が盛んである。 医療分野も例外ではない。 302 「 ビッグデ ー タ」の定義は必ずしも明
確ではないが、 量(Volume )・ 迅速性(Velocity )・多様性(Vi紅白砂)・正確性(Veracity )という 「 4VJ を備え 1 たものを 「 ビッグデ ー タ」 と称するのが 一 般的である( )0 ただし、 医療分野ではこの定義がそのまま当ては まるとは限らない。 例えば、 電子カルテ情報やレセプト情報は、 そのままでは 一 般公開されることは決して なく、 プライパシ ー に対する厳格な配慮をした匿名化の上で、 集計デ ー タのみが公開される。 一 方、 最近リ アルワ ー ルドデ ー タ(RWD)という用語もよく用いられる。 RWDは、 RCTなど臨床試験デ ー タと対比され る、 実診療行為に基づくデ ー タベ ー スであり、 上記の医療ピッグデ ー タと同義語と考えられる。 一般のビッグデ ー タでは、 インタ ー ネット上のデ ータや画像デ ー 夕、 センサ ー の言十数値などを無差別に大 量収集したものも含まれる。 これに対して医療ビッグデ ー タは、 前述のように関係機関が 一 定ル ー ルの下で 開示する大規模医療デ ー タベ ー スである。 図表lは、 大規模医療デ ー タベ ー スの 「 発生元」、 「集約機関心お よび利用に供される「デ ー タベ ー スJの流れを図示したものであるべ 図表, .大規模医療デ ー タベ ー ス(DB) 介護保険総合DB 介護保険総合DB DPC調査DB 全国がん雪量録DB 副作用DB 医療情報DB 基盤整備事業システム 地域医療晴報DB (ゲノム)コホー トDB 厚生労働省 人口動態統計DB [出典】国会図書錨.ライフサイ:i::,ス由コロンティ7(鏑3寧:医嘩データ等由利活用}.却15などを舎宥l=L..て作成 大規模医療デ ー タベ ー スの活用は、 医療保険業務、 医療 ・介護の質向上、 医療機関の経営改善、 副作用の 早期発見とその対策、 地域医療改善など医療や介護本来の目的がその主なものである。 製薬企業など民間企 業の立場から医療ビッグデ ー タを眺めると、 デ ータのオ ー プン性とデ ー タ内容 ・ 粒度(医薬品別、 医療機関 別など )から判断して、医薬品マ ー ケティングに活用できるものは、従来 から公開されているDPCデー タや、 昨年初めて公開されたNDBオ ー プンデ ー タに限定される。 本論文では、 後者のNDBオ ー プンデ ー タをどの ように医薬品マ ー ケティングに活用できる かを検討した。 1.2 本論文の目的 昨年公開された NDB オ ー プンデ ー タにおいて、 医薬品別処方件数が公開されたことは朗報であり、 このこ とにより医薬品マ ー ケティングへの応用の道が関かれた。 本論文の目的は、 NDB オ ー プンデ ー タを活用し た医薬品マ ー ケティングの可能性について、 医薬品市場構造分析と特定薬効領域内競合分析とし、う具体的な 分析例を通じて検討することである。 2. 公開医療ビッグデ ー タ活用の基本的な考え方 303
2.1 第1回NDBオープンデータの公開内容 201 6年秋に公開された、 第 1回NOBオ ープンデ ー タの内容を紹介するべNOBデ ー タベ ー スとは、 図表 1に示されている「ナショナルレセプトOBJのことであり、 レセプト(H21.4~27. 1診療分)約92億 5, 000 万件、 特定健診・特定保健指導(H20~25年度分)約1 億4,200万件から構成される。NOBオ ープンデ ー タ 作成の目的は、 このレセプト情報・特定健診等情報デ ー タベ ー ス(NOB)の有効活用である。 NOB オ ープンデ ー タの対象・公表形式( 医薬品の場合)は、 対象期間は 2014 年度(H26.4~H27.3 )のl 年間であり、 内服・外用・注射それぞれにつき、 外来院内・外来院外・入院別に集計され、 薬価収載の基準 単位別に薬効別上位処方数 3 0位までの処方数が公開される。 公開形式は、都道府県および性別 ・ 年齢別集計 表である。 患者のプライパシ ー へ配慮して、 最小集計単位を 1 000としているので注意が必要である。 2.2 NDBオープンデータ活用の基本的考え方 第l回NOBオ ープンデ ー タは、多数のEXCELシ ー トとして公開されている。デ ー タ分析上重要なことは、 デ ー タ薬価収載の医薬品名毎の処方件数が示され、 また薬効領域(大分類:8、 中分類:33、 小分類: 13 7) が付与されていることである。 そこで、 図表2に示す考え方で NOBオ ー プンデ ー タを活用することとする。 図表2. NDBオ ー プンデー タ活用の基本的な考え方 医薬品マーケ ティングへの活用 (市場構造分析、 エリアマーケティング等) ・都道府県j]IJ 薬剤集計表 .性年齢別薬剤集計表 (薬価コ ー ドjjll) ・薬効領域別 ・医薬品別 ・都道府県別 ・性年齢男I] 先発品・長期収載品・ 後発品の区別 薬価基準収載 品目11Aト 図表2に示すように、補足的に2 種類のデ ー タをNOBオ ープンデ ー タにマッチングさせて分析用デ ー タベ ー スを作成した。 まず第 一 に、2014年度薬事工業生産動態統計調査デ ー タと薬効領域コ ー ド(大・中・小分 類)でマッチングさせ、 薬効領域別の金額推移(成長率)を追加した。 第二に、 薬価基準主催品目リストと 薬価基準収載医薬品コ ー ド(薬価コ ー ド )でマッチングさせ、 先発品・長期収載品 ・ 後発品のフラグを取得 した。 ただし、 この薬価基準主催品目リストには、 先発品・長期収載品・後発品の区別が示されていない品 ‘ 目も多数あることに注意が必要である。上記2種類の 補足デ ー タをマッチング させたNOBオ ー プンデ ー タは、 薬効領域別、 医薬品別、都道府県別、性年齢別など多彩な分析が可能になる。 なお、 デ ー タ加工にはSAS、 デ ー タ分析にはJMPを主に用いた。 304
3. 公開医療ビッグデ ー タの活用①:医薬品市場構造の分析 3.1 NDB オ ープンデ ー タの概要 完成した分析用デ ー タベー スを用いて、 NOB オ ー プンデ ー タの基本的内容を確認した。 NOB オ ー プンデ ー タには、 医薬品別の処方件数と薬価デ ー タが含まれる。 これらを用いれば、 医薬品別の金額 (=処方件数 ×薬価)が求められる。 今回の NOB オ ー プンデ ー タから求められた 2014 年度の薬剤費合計は、 7 兆 2529 億 円となった。 一方、 2014 年度薬事工業生産動態統計調査によれば、 「 生産+輸入」の医薬品金額は 9 兆 384 億円となり、 NOB オ ー プンデ ー タの 2014 年度の薬剤費合計はこの金額の 80.2%に過ぎない。 NOB オ ー プン デ ー タにおいては、 前述のように最小集計単位を設定しているので、 このようにデ ー タ値が実際の金額より 低くなったと考えられる。 次に、 先発品 ・ 長期収載品 ・ 後発品の数量比率と金額比率を求めたところ、 各々 45.4% ・ 30.3% ・ 24.3%、 および 52.1% ・ 40.2% ・ 7.8%となった。 ただしこの比率は、 先発品 ・ 長期収載品 ・ 後発品の区別が明確なもの だけを対象にしており、 区別が不明な医薬品は含まない。 3.2 医薬品市場構造分析のアプロ ー チ 医療用医薬品市場は、 年間売上高が 10 兆円近くの巨大市場であるが、 「 競合」という視点からは、 「 薬効市 場Jに細分化された多数の競合市場の集合体である。 NOB オ ー プンデ ー タには前述の通り、 薬効領域(大 ・ . 中 ・ 小分類)のフラグが付与されているが、 「 競合」(つまり医師により代替処方の可能性のある医薬品グ ル ー プ)が小分類 レベルで、 行われているとは限らず、 場合によっては適応症や作用機序レベルに更に細分化す る必要がある。 ただし、 このような細分化は現在のところ手作業によるしかない。 4 医薬品市場構造について、 以前著者が発表した論文( ) を参照すると、 図表3の仮説にまとめられる。 図表3.薬効市場のライフサイクルと市場盛衰のメカニズム(仮説) 直面 今時間 [出典]武麗猛:医療用医譲晶田市構構造に闘する考察、且Sユーザ総会(2010) 図表3に示すように、医薬品を含む多くの商品 (消費財 ・ 生産財)について観察されるライフサイクルは、 単独の医薬品だけでなく、 薬効領域レベルでも観察される。 薬効市場については、 新興(エマ ー ジング)薬 効領域は、 領域の特性によって「激戦型」(参入企業・類似効能品が多い場合)または 「 ー強型J (参入障壁 305
が高かったり効能上突出した製品がある場合) として成長し、 市場の主力製品の特許切れに伴う後発品参入 時期以降は成熟期および衰退期に入る。 重要なことは、 成熟期 ・ 衰退期にも 「激戦型」または 「 一強型」の 特性が持ち越されることである(少なくとも後発品のシェアが圧倒的になるまでは)。 3.3 医薬品市場構造分析の結果 医療用市場構図分析のいくつかの結果を紹介する。 まず薬効領域の大分類 ・中分類 ・ 小分類の3レベルで、 「 市場規模対成長率」を分析した。 、 いずれのレベルで も市場規模が大きくなると(有意に) 成長率が下がる ことが分かつた。 次に薬効領域(小分類)別に、 先発品 ・ 後発品比率と成長率との 関係を分析した。 その結 果、 薬効市場の拡大期は先発品が 60%以上で成長が見られ、 一方、 後発品が 10%程度以上を占めるようにな ると市場は縮小期に入るという興味深い事実が観察された。 次に上位製品のシェア分布と医薬品市場の特質との関係を検討する(図表4)。 川 一 ー 図表4. 上位製品のシェア分布と医薬品市場の特質 議劫領樽{小分Jl)l位町S位製品のシヱ7合計 瑚 酬 刑 制 醐 叩 叩 棚 随 li-- 田 叩 一 一 哨 棚 ェ ア 醐 50 副 シ 叩 シ 捌 40 輔 叩 醐 N=109 30 剛 酬 品 酬 l 20 mm 酬 酬 恥 製 な 珊 一一一 10 醐 品 叩 隅 30%-35'’‘ 25’‘ー”筑揃 滋病 お’‘ ‘ 15%-20’ ,.’‘-“IS’‘ s’‘ 10’‘ 町褐剛s’‘ 30 ..町 副 製 7 位 叩 隅 � - ’‘ 盟諸_い,,,’‘ 15’~2踊 ""' 盟諸 10強 闇均四 Jr--- 恥 輔 位 品 y ‘ γ ・ E 製 7 品 叩 四 製 叫 叩 蜘 四 ー圃 .劫領塙{小分担}上位3製品のシヱ7分布 N=109 国 6 8 10 12 14 薬効領鳩【小分担}件数 議論領峨{小分顕}件数 図表 4 の左側は、各薬効領域の上位 3 製品のシェア分布を示している。 分析対象の 109 の薬効領域(小分 5 類)中の 24 薬効領域では、 第 l 位製品の安定的シェア目標値 40%(ランチェスタ ー 理論( )による) を超え、 かっ第 2 位製品のシェアは 40%未満という 「一 人勝ち」状態である。 図表 4 の右側は、各薬効領域のl位~ 3 位製品のシェア合計の分布を示す。 109 の薬効領域(小分類)中の実に 104 (96%) の領域が、 l 位~ 3 位製 品合計シェアが 40%を超えているという寡占市場であることが分かる。 最後に、 市場構造をより鮮明にするために、 薬効領域(小分類) を対象に、 因子分析とクラスタ ー 分析を 行った。 分析に用いた変数は、 市場規模(億円)_2014、 領域の薬剤数、 成長率、 金額比率 l 先発品、 金額比率 2一長期収載品、 金額比率3一後発品、 製品シェアーl位製品、 製品シェアー2位製品、 製品シェア_3位製品、 製 品シェアー I 位~ 2 位製品、 製品シェアー l 位~ 3 位製品、 製品シェア比率一 I 位 ÷2 位製品、 製品シェア比率 l 位 ÷3 位製品、 である。 これらの変数デ ー タが揃っている 74 領域が分析対象である。 因子分析およびクラス タ ー の要約を図表5および図表6に示す。 クラスタ ー を可視化したものを図表7に示す。 図表5に示すように、 因子分析の結果抽出された2つの因子を、 「成熟因子」および 「 競合因子」と命名し た。 また、 図表6 に示すクラスタ ー 分析の結果、 前述の 「一 強型」 「激戦型J 「成熟型jクラスタ ー が鮮明と なった。 「一 強型」 「激戦型J 「成熟型」クラスタ ー に分類される薬効領域(小分類) の数(比率) は4 (5.4%): 23 (31%): 47 (64%)と、 「成熟型Jが圧倒的に多 く、 「 一強型」が非常に少ない。 「 ー強型J「激戦型Jだけに限 れば両者の数(比率) は 4 (15%) : 23 (85%) となり、 「激戦型Jが圧倒的に多い。 3 つのクラスタ ー を図示 306
した図表7によれば、 「 成熟因子J× 「 競合因子」という2次元図上で、各クラス ター はかなり鮮明に分離さ れていることが分かる。 今回の分析だけでは十分でないが、 多年度分のデ ータが集積されていけば、各クラ スタ ー 内の薬効領域の動き(Y字を横向きにした 「 一強型」 「 激戦型J各分枝から根元の 「 成熟型」に向かう と考えられる)も明らかになると予想される。 図表5. 市場構造の分析:因子分析 ・医療用医薬品市場の因子構造 項目 因子1 4.768 0.367 0.367 成熟因子 -0.498 -0.595 -0.329 固有値 寄与率 累積寄与率 因子名称 rl市場規模(億円)_2014 領域の薬剤l数 成長率 金額比率1先発晶 困 ||金額比率2長期収載品 金額比率3_後発品 J J 製品シェアー1位製品 夕、 製品シェアー2位製品 製品シェア_3位製品 ン 製品シェアー1位~2位製品 製品シェアー1位~3位製品 製品シェア比率ー1位÷2位製品 l 製品シェア比率ー1位÷3位製品 因子2 2.735 0.210 0.577 競合因子 一0.319 一0.406 寸:、 I I 、 図表6.市場構造の分析:クラスタ ー分析 元の変数の 噛 山一 値 クラスタl分析に用いた ・医療用医薬品市場の?ラス9 ー構造(元の変数使用) ウラス宇 一3 ヴラス事 - 1 ヲラス1'-2 ヴラス告一番号 | 一 ー 激聡クラス事 ー 成婚クラス� ー クラス聖 一名称 | 強ヲラス脅 4 47 23 I 薬効領域数 183 501 市場規豊島(億円)_2014 42 24 領域の薬剤数 -0.166 -005 5 成長率 0.344 金額比率 1_先発品 0.436 金額比率2 ー長期収扱晶 0.133 金額比率3_後発品 品シェア1位製品 0.122 製品シェ.7_2位製品 0.096 製品シコビアJ位製品 03 17 製品シ正ア1位~2位製品 製品シェアj位~3位製品 製品シェア比率j位÷2位製品 2 .132 2.6 5 9 製品シ正ア比率j位÷3位製品 I 他に沿頭書れf.i:L'代謝性医誕晶 i消化性潰揚用創 具体的な薬効領綾{小分頬}の例 |ピ告ミンA及びD銅 その他の腫癒用薬 l 鎮痛.鎮葬.収鍛,消炎剤|機能綾登用鼠譲 血圧降下剣 |解熱鎮痛消炎剤 |刺激療法剤 |合成抗菌剤 結尿病用剤 |ピ書ミンK剥 精神神経用制 l 抗てんかA,剣 l 脳下垂体ホルモン剤 高脂血症用剤 |気管支拡張剣 鰻科用剤 その他の血液・体液用諜 |耳鼻科用線 その他のアレルギー用薬 l 解毒剥 その他の中枢神権系用築 l 痛風治療剤 そ@偽の耐同シ剥【添削同シ輔を合制 銃ウイルス翻 血管鉱張剤 307 l 主比て·:1,,!10作用する抗生曲目盟嗣 骨格筋弛緩剣
図表7.市場クラスタ ー の可視化 薬効領域(小分類)のクラスター分析 ・ 2 (成熟クラスター) @クラスタ ー 2 (激戦クラスター) 主として抗菌薗に作用する抗生物質虫剤 Aクラスタ ー 3 ( 一 強クラスター) 混合ホル宅ン剤 @ @@ . . .. 血E降下剤・. E その憾のIIUI周叢 ー 10他代謝医JI!品 骨格筋弛健婦 @@ 匂 @ . 鏡合大) ( 国 3 ・クラスタ ー 1 -2 ... 3 画唾雪自 ...樋飽樟査用鼠擁 EタミンA且ぴD鋼 剥1111法制 ( 蟻合小 V -3 2 . 画画整E @ ビタミンK剥 lo. N=74 最後に、 図表6から導かれる実用的な知見として、 薬効領域の 「 一 強型」または 「 激戦型」の簡便な判別 法を紹介する。 図表 3 にも記入済みではあるが、 ① 「第 1 位製品のシェアJが 40%以上で、 かつ② 「 第 l 位 製品のシェア」÷「第2位製品のシェア」が2以上の場合、 「一 強型」と判断できる。 このような薬効領域(小 分類) では、 第1位製品が独走状態にあり、 第2位製品以下はキャッチアップが困難と考えられる。 薬効領 域(小分類) の圧倒的部分が 「 激戦型」である。 製品力で圧勝している 「 ー 強型」に対して、 「激戦型」にお いては、 マー ケティングおよび営業戦略によっては第2位以下の製品にも第l位を奪取する機会がある。 3.4 医薬品マ ー ケティングへの示唆 市場規模と成長率との関係について、 ①薬効領域の大・中・小分類の各段階で、 規模↑と成長率↓の関係 が見出された。 また、 ②単独製品および薬効市場は、 ベル曲線型ライフサイクルを辿ると推測される。 薬効領域 (小分類)内の競合状況について、 ①薬効市場の拡大期は先発品が 60%以上で成長が見られる。 一 方、 ②後発品が10%程度以上を占めるようになると、 市場は縮小期に入る。 ③薬効市場の多くは寡占状態 であり、 上位 3 製品の合計シェアが 40%を超える。 @拡大期の市場は「激戦型」または 「 ー 強型Jのいずれ かに分かれる。 ⑤「激戦型」や「一 強型」の市場構造は、 ライフサイクルを通じて固定される(少なくとも 後発品が圧倒するまで)。薬効市場の大部分は 「激戦型jであり、医薬品 マ ー ケティングの役割が重要である。 4. 公開医療ビッグデ ー タの活用②:特定薬効領域の競合分析 4.1 エリアマ ー ケティングの基本的な考え方 医薬品の マー ケティングにおいては、 特定薬効領域における競合分析が主要な役割を果たす。 近年、 地域 308
医療のネットワ ー ク化 が進展するにともない、エ リアマ ー ケティングの役割が従来以上に重要になっている。
今回公開されたNDBオ ー プンデ ー タには、都道府県別集計デ ー タが含まれているので、エ リアマ ー ケテイン
グの目的には好都合で、ある。
前述のように、薬効市場は 「 激戦型」または 「 一強型」に分類される寡占市場である。薬効市場における
製薬企業の立場は強者または弱者のいずれかであるが、自社の保有するすべての製品がトップシェアである
ことは考えられず、基本は 「 弱者 J (つまり2位以下)の立場で競合戦略を立案することになる。医薬品市場
における弱者の戦略とは、 「 タ ー ゲティングを精激化し、トップシェア獲得可能な細分化市場に注力する」こ
とと要約できる。著者の考案した具体的な エ リア戦略立案手Ji慎については、 以前に発表している(6)。
4.2
競合分析の対象(抗ウイルス剤)について
以下の事例では、薬効領域(小分類)の 「625:抗ウイルス剤Jを対象とする。細分類レベル(適応症)
として、B型肝炎、C型肝炎、HIV、RSウイルス、インフル エ ンザ、サイトメガロウイルス、 へ ルベスが含
まれる。 「抗ウイルス剤」は 「 激戦型」であるが、細分類レベルで、は 「 激戦型」と 「 一 強型jの両方が含まれ
ることにが興味深い。
4.3
抗ウイルス剤の競合分析結果
エ リアマ ー ケティングの基本前提は、 「 医薬品市場は人口(患者数)に比例するJことである。抗ウイル
ス剤について、 「 都道府県別人口(患者数)対薬剤費」の相関関係を6段階で分析したのが図表8である。
図表8. 医薬品市場は人口(患者数)に比例する
m
醐府県川対
議剤費合計(億円)
I =
i
=l
y,; ;0邸付詞
�.際= o �sos r
里四)
'.
1高明j
品
|合1皿j
.,ノ
|針
l 《 句皿 1j
l!'l
I
I
I
'皿i
'·"' i
•"・ v
,-4"
llll ,・- I
i
②都道府県別人口対領減6[病原生物
に対する医薬品]薬剤費(億円)
i
d"'
〆
-
Sx-flJイ
- ::: j� =刷
'
! ;: li. R� '= Q;弱竪J,/
二/
車
割
-
N=47
人口
j
s '山令: Y三匝;0019正:予雪す·:1雲 . |
R = 0,�主京
-
主.…:
里"-"':
! ''
南 日戸山
2
·�ノ・
/
• _,,,-- . ・
6,
--:
- -
--
�
-
・
・/
ノ’
タJ
d・
N=47
人口{人〉
④鮒県llU人
[抗ウイルス剣]薬剤費(百万円)
一
._・
/〆・
ω
[ 剛凶
:
1
問1
証制j
画制1
El '" I
-'":.
I
I
l
|
5 ::�二一一一5
v = e,eoo3x + s主;S54:
I
嵐山
, :::
剤""
車日加
費 s
百
f向)
R2 =�0.・?�l} -� /’
、
” ・
人口〈人}
図表 8 によれば、④抗ウイルス剤のレベルまで、はばらつきが小さいのに、⑤および⑥の B 型肝炎治療薬の
レベルになるとぱらつきが急に大きくなる。これは、この段階では エ リア戦略の良否が重要であること を示
唆している。
抗ウイルス剤の細分類レベルで、B型肝炎治療薬は 「 一強型Jであるのに対して、 ヘ ルベス治療薬は 「 激
戦型 J である。 都道府県レベルで、 の両者の競合状況を可視化するために、都道府県内シェアを比較したのが
図表 9 である。また、 「 都道府県内 1位シェア ÷2位シェア」の比率を図示したのが図表 10 である。
309
図表9.都道府県内シェアの比較:「ー強型』対「激戦型」 よ位3製品の都道府県肉シェア[B型肝炎治療議] 上位3製品の都道府県内シェア[ヘルペス治療譲] 国製品シェY_l位製品 a製品シェアー1位製品 25 20 E製品シェアー2位製品 尽d 都 道 府 都 道 府 田製品シェアJ位製品 国製品シェアー2位製品 贋製品シェアJ位製品 nu 県 教 県 教 或62t 渓臣 求oat 渓昌一 t 求。m 認的aw t 求担i ω t 求。” 双訓mw 求。 訴mht 求。h門 t 渓間的W hn t吉 凶 ア 訳出 渓ロ 求omw t 求凶凶ヱ ま?苦闘日防 T 草ぜ県 署 富7 苦 マ 府 浪。?器問暗 京o t 唱が同 渓凶mt 求。同 -m t t 求目 N 択的同 認。刊 求mHt 求。H 求。 t 認凶 認。 認。Ht 渓凶 nu 渓B Ht 求自 t 認mmt 求。m 叫が由 t 求。ω 目 求。。 岨節 求 t 求目 S R 求 t 求。民円 除 tEω ア 渓由 求oht 求的。 求。也、4渓凶凶Z ま?5 t 求。伺 求問 叫が凶mm t 芯om 訳詞 t 渓。内 t 京一目 渓mHt 求。」円 武田 t t 次的 求。 求。刊 求 的 草? まマ県 富7Eq 府 求。7草川崎 。 図表10. 「ー強型」対「激戦型」シェア比率の比較:比率の分布 5 都道府県内1位シェア÷2位シェアの比率 H叩 初 aB型肝炎治療薬[ ー 強] 圃ヘルペス治療薬[激戦] 3 初 2 初 都道 府 県 教 日 nU 44 F3 . 議t 的m H「 m t 問 同. m t 凶 .N m N 3‘N HtH N 3‘凶 . H 凶. Ht 凶 .ロ nU 1位シェア÷2位シェアの比率 図表 9 および図表 10 から、 「 一強型」または 「 激戦型j の競合状況が鮮明に読み取れる。 さらに、 製薬企 業が各都道府県単位でどのようなエ リア戦略を取るべきかについては、 エ リアバリュ ーマトリックス(AVM) を作成し、 地図上で表示することで明らかになるぺ 4.4 医薬品マ ー ケティングへの示唆 医薬品マー ケティングへの適用可能性について、 ① エ リア間の患者移動を考慮すると、 310 「 都道府県」 とし、
う集計単位は(患者フロ ー がほぼ閉じているので)、エ リアマ ー ケティングに適している。 ただし、②最小集 計単位が 1000であることから、処方数の少ない医薬品の分析は精度が悪くなる。③男女別 ・ 年齢別デ ー タは、 競合医薬品開の 患者プロファイルの比較に応用可能である(今回は分析しなかった)。 エリア単位の競合状況について、地図を用いて可視化することが有用である。 都道府県単位で、 「 激戦型J や 「一 強型Jの市場構造を可視化することは、 エ リア戦略立案や評価に役立つ 向。 5. まとめ:公開医療ビッグデ ー タ活用のメリットと限界 公開医療ビッグデ ー タ活用のメリットと限界 5.1 公開医療ビッグデ ー タ活用のメリットは次の通りである:(1)無償である、(2)このため自社の製品がなくて も将来の進出予定領域など関心のある薬効領域について分析ができる、(3)医薬品デ ー タ分析の教育などに活 用可能である。 一 方、限界は次の通りである:(I)公開時期が年単位であること、(2)デ ー タ公開時期とデ ー タ収集時期との 時 間差がかなり大きいこと、(3)薬剤デ ー タは一定条件を満たしたものに限られ悉皆デ ー タではないこと(特 に後発品の品目はごく限られている)、(4)このため支店や営業所の業績評価(四半期・半期 ・ 年間) には適さ ず、(5)本社の中長期戦略立案のためのマ ー ケティング向きである。 5.2 公開医療ビッグデ ー タへの今後の期待 NOB オ ープンデ ー タに関しては、 今後毎年 1回の定期的公開が期待される。 時系列デ ー タが蓄積される ことにより、医薬品マ ー ケティングへの応用も格段に広がると考えられる。 参考文献 (I) 中山健夫:医療ビッグデ ー タ時代の幕開け、週刊医学界新聞(2015年1月5日) 。)国会図書館:ライフサイ エ ンスのフロンティア(第3章:医療デ ー タ等の利活用) (2015) (3)厚生労働省ウェブサイト : 第1回NOBオ ープンデ ー タ(2016年IO月) (4)武藤 猛:医療用医薬品の市場構造に関する考察、SASユ ー ザ総会(2010) (5)福田秀人:ランチェスタ ー 思考 一 競争戦略の基礎、東京経済新報社(2008) (6)武藤 猛:医薬品 エ リアマ ー ケティングへの新しいアプロ ーチ、SASユ ー ザ総会(2015) 311
医薬品開発の意思決定における Bayesian Posterior Probabilityの適用例 ~Random-Walk Me仕opolis vs. No-U-Turn Sampler ~ 0作井将、 清水康平、 舟尾暢男 武田薬品工業株式会社日本開発センタ 一 生物統計室 Using Bayesian Posterior Probability for Go/No・Go Decision Making in Clinical Development Sho S紘ui, Kohei Shimizu, Nobuo Funao Takeda Pharmaceutical Company, Ltd. 要旨 2 つの薬剤効果を比較する並行群間/クロスオ ー バ ー デザインにて Bayesian Posterior Probability の算 出と意思決定への適用例を紹介するとともに、 mcmc プロシジャ の random-walk Metropolis と No-U-Turn Sampler の結果を比較する。 キ ー ワ ー ド:意思決定(Go/No・ Go Decision)、 Bayesian Posterior Probability 、 並行群問デザイン、 クロスオ ー バ ー デザイン、 mcmc プロシジャ、 No-U-Turn Sampler (NUTS) 1 はじめに 医薬品開発では様々な場面で意思決定を行う機会があるが、 重要なものとしては早期臨床試験終了後に 次相以降の臨床試験実施の要否を検討することが挙げられる。 特に、 第2相試験や第3相試験(後期臨 床試験)での失敗は、 多くの患者さんに対して有用性が乏しい化合物を曝露したことへの倫理的問題が 生じ、 臨床試験に携わっていただいた医療機関の方々の多大な努力が無駄になり、 医薬品開発コストの 高勝や他の新薬候補の開発 の遅れにも繋がることから、 後期臨床試験への移行に関する意思決定 ( Go/No-Go Decision ) が非常に重要となることは本稿で詳述するまでもない。 この問題を解消する方法 として、 Go/No・ Go Decision を行うためのデ ー タを早期臨床試験にて取得することが挙げられる。 そのた 。 めに例えば、 後期第 2 相試験の前に、 有効性評価を主目的とした Prooι ιConcept (PoC )試験を実施す ることや、 第I相試験において有効性評価項目に関するデ らを実施した場合でも、 従来の頻度論にてデ となり、当該試験のデ ー ー ー タを収集することが行わ れる。 ただ、 これ タ解析を行ってしまうと、 被験者数が少ないことも遠因 タの記述に終始してしまうことが多く、 Go/No-Go Decision に繋がる材料が得ら れにくい。 一方、 FDA (2010) や Walley et. al. (2015 )では Bayesian Posterior Probability による意思決定 方法が提案されており、 後者では、 PoC試験終了後に有効性評価項目に関して「被験薬の効果がプラセ 312
ボに対して闇値以上の差があるJ 確率を Bayesian Posterior Probability として算出し、 後期臨床試験への 移行に関する Go/No-Go Decision の材料とすることを提案している。 本稿では、 2 つの薬剤の有効性に関する効果を比較することを想定し、 PoC 試験において良く用いられ 、 る並行群間デザインに加え、第l相試験においてしばしば適用されるクロスオ ー バ ー デ ザインについて Bayesian Posterior Probability を算出する例を紹介する。 それぞれのデザインにおいて、 まず解析的又は 漸近的に Bayesian Posterior Probability を算出する SAS マクロを紹介した後、 次に Markov Chain Monte Carlo (MCMC ) にて同様の計算を行うための mcmc プロシジャの記述例を紹介する。 mcmc プロ 、ンジャ にて解析を行う際、 random ステ ー トメントによるコ ー ディングを行うことがあるが、本ステ ー トメント を用いると乱数列の収束やサンプリング効率が 一 般的に落ちる。 そこで、比較的新しいサンプリング手 法である No-U-Tum Sampler (NUTS) にて解析を行う例を紹介し、 mcmc プロシジャにてデフォルトで 用いられているアルゴリズム( random-walk Metropolis ) との結果の違いも併せて考察することにする。 解析的/漸近的アプロ ー チによる Bayesian Posterior Probability の算出例 2 早期臨床試験において2つの薬剤(1:被験薬、 2:対照薬) の有効性に関する効果を比較することを考 える。治験デザインは並行群間試験又はか 2 クロスオ ー バ ー 試験を想定し、 有効性に関する応答に関し て「対照薬に対する被験薬の平均値の差又は薬剤聞の効果の差が2以上」となれば被験薬に関する臨床 的な効果があると判定し、 後期臨床試験へ移行することとする。 実際の手順としては、 例えば治験終了 時に後期臨床試験への移行に関する Go/No ・Go Decision のために Bayesian Posterior Probability を算出し、 本確率が 「 あらかじめ設定した闘値( 例えば 60%、 70%、 80%)J を上回った場合は後期臨床試験へ移行 するものとする。 頻度論に対するベイズ解析の利点として、 事前情報を事前分布として設定し、 解析に 加味することが出来ることが挙げられるが、 本稿ではこの点については議論せず、 無情報事前分布を用 いることとする。 並行群間デザイン 有効性に関する応答として、 被験薬xl i ~ N(µ 1 , σn、 対照薬X2j~ N(µz , σD. i = 1 , … , nv j = 1 , …, n2 、 薬剤の平均値の差 δ = µ1 一 µ2に興味があり、 平均値の差δの事後分布( σf = σ1 = σ 2 だが σ 2 は未 - 知)を求めることを考える。事前分布として無情報事前分布σ Cn1+n2+2 ) を設定すると、δ = µ 1 -µ2の 事後分布は以下の Shi 食ed & Scaled t 分布に従う( 計算過程は繁桝( 1985 ) を参照)。 - T= xk. 8-(x1.-x,.) (n 1 1 +n 1 2 )(sf +sfl/v は自由度 v = ηi + n2 - 2 のt分布に従う = n;; 1 L�!1 xki, si = L�!ρki - xk.) . k = 1. 2 2 数値例として、 各薬剤の例数は 20、応答に関する各薬剤の平均値はそれぞれ 3 と 0、 標準偏差はそれぞ れ 4 と 5 、 「 平均値の差が 2 以上となる確率 J を算出すると、 Bavesian Posterior Probabilitv は 75.54% とな る。 約nacro PROB1 し.DELTA=2. _N1=20. _N2=20, _MU1=3. _MU2=0, _SD1=4, _SD2=5, _LOWER="Y") data PROB1 T=(&_DELTA.一(品_MU1.-&_MU2.))/ sqrt( (1 / ιNl.+1 /&_N2.)* (( ιNl.ー1 )吋_SD1.**2+( ιN2.-l)*&_SD2.榊2)/(&_Nl.+品_N2.-2) ) if(品_LOWER.="Y") then PROB= cdf (''t", T. &_Nl.+& N2.-2) " else PROB=l-cdf(冗 , T. & N1.+&_N2.-2) 313
run
proc print noobs ; run ;
伽,end ;
’ ’
’ ’
話PHOBI しLOWER= V );
*引数_LOWER= γ にて分布の下側確率を算出する;
PROB
0.75542
図2・1 %PROB1の実行結果とBayesian Posterior Probabilityのイメ ー ジ
2×2クロスオ ー バ ー デザイン
?
有効性に関する応答を�jk とし、 下
以 の2×2クロスオー バ ーデ ザイン(AB/BAデザイン ) を想定する。
表2-1 2×2クロスオー パ ー デザインの例
タ21· = 2
Y22- = 5
、
解析するモデル式は�jk = µ + 11) + 'd[i,j] +λd[i.j-l] + S;k + eijk なる分散分析モデ ルとする。 また、
Wi白in-subjects residual SSをSSE、Between-subjects residual SSをSSPと略記する。
μ:
切片項
-
Trj •
時期jの効果 j
( = 1, 2)
-
順序i 、時期jの薬剤効果(i= 1, 2;薬剤 d[i,j] = 1, 2)
-
'd[i,j] :
’
・
ILd[i,J-l]・
薬剤 d[i,j - 1 ]の持ち越し効果 (d[i, O] = 0 とする)
-
Sik :
順序iの被験者kの効果(i= 1,2; k = 1,…,n; )、 平均0、 分散σfの確率変数
-
eijk:
誤差項(平均 0 、 分散σ 2 )
-
SSE:
ー
SSP:
If= 1 IJ=1 I之 1Y0k - Lt=l
;
r:� Yt. /2 - Lf: L]=lY°b./n; + Lf= Yt../ (Zn;)
k
1
1
1
Lf= 1 L � 1Yh /2 - Lf= 1Yt../(Zn;)
(yか
=
:
L �1Y俳,y同 = LJ=1Yijk • Yi··= LJ=1Yij- , Yij · = ηi" I之 1 Yijk )
1
ここ で、 T = 日 = -r2, R =λ1= ーんなる制約をおくと(すなわち、τ1 一 τ2 = 2T,λ1 ー ん= ZR)、 確率
変数TとRの推定値はそれぞれf= 仔11· -Y12・-y21・+ Yzz.)/4, R = 仔11・+タ12· -Y21・-Y22・)/2とな
る。Bayesian Posterior Probability を算出するためにはT y
l の分布に興味をもつことになるが、この計算
は結構大変なので、Grieve (1994)の漸近式を用いる。 TとRの無情報同時事前分布を(σ 2(2o} +σ 2 )f
の定数倍とし、m = (n1 +n2)/π1冗zと おくと、各事後分布は以下の分布に従う。
Rly :
I
mSSP
R-ii
は自由度n1 +n2 -2のt分布に従う
/2(η1 +均 一 2)
314
l
TIR,y J T f R/2 mSSE/8(川+均 一 2) は自由度同+町一2のt分布に従う 、- - b, = (SSE��2-6) + 4 bn = (bi-2)(SSE�SSP)) Tly :手三三�は自由度b, のt分布に従う( / nけn -4 SSlf'+SSP' J m b0/8b1 ·· 2 数値例として、 各順序の例数は 20、各順序・各時期の応答に関する平均値は上表、SSEとSSP はそれ ぞれ250 と480、「 薬剤の平均値の差が 2以上となる確率Jを TIR,y 及び Tjy の分布から算出すると、 いずれもBavesianPost疋 riorProbabilitvは 50%となる。ただし、実際の場面では、 TIR,y と Tjy のどちら の分布を使用するかは判断が難しく、 結果も大きく異なる場合があるので注意が必要である。 伽,aero PROB2しDELTA=2. _N1=20, _N2=20, _Y11=6. _Y12=3, _Y21=2, _Y22=5, _SSE=250, _SSP=480, _LOWER="Y勺 data PROB2; M =(&_Nl.+&_N2.)/(&_Nl. * 品_N2.) R =(&_Yl1.+&_Y12.一·&_Y21. 一品_Y22.)/2 T =(品_Yl1.-&_Y12. -& Y21.+品Y22.)/4 . Tl=(品一DELTA.-R)/sqrt((M叫_SSP.)/(2*(ιNl.+ιN2.-2))) T2=(ιDELTA.-T-R/2)/sqrt((M*&_SSE.)/(8*(&_Nl.+&_N2.-2))) ; + ーSSP.)**2/(ιSSE. 林2+ιSSP. 料2)+4 ; Bl=(品_Nl.+&_N2.-6)*(ιSSE.&. BO=(Bl-2)*(ιSSE. +&_SSP.)/(&_Nl. + 品一N2.-4) ; T3=(ιDELTA.-T-R/2)/sqrt((M*BO)/(8*B1)) if (品一LOWER.="Y") then do ; PROB1=cdf(''t". Tl. &_Nl.+ ι.N2.-2) '’ PROB2=cdf("t ,T2. &_Nl.+ ι.N2.-2) PROB3=cdf(''t", T3, Bl) end else do PROB1=1-cdf("t", Tl. &_Nl.+&_N2.-2) PROB2=1-cdf("t", T2. &_Nl.+&_N2.-2) PROB3=1-cdf("t", T3, B1) end run proc print noobs ; run ; 伽聞d ” *奇|数_LOWER="Y"にて分布の下側確率を算出する; 協用四�(_LOWER= N"); M 0.1 3 R 1 T 1.5 Tl 1.25831 T2 0 Bl 65.8593 BO 1294.93 T3 0 PROBl 0.10798 PROB2 0. 5 PROB3 0. 5 Markov Chain Monte Carlo による Bayesian Posterior Probability の算出例 前項では、 並行群間デザインと2 ×2クロスオ ー バ ー デザインにおいてBayesianPosteriorProbabilityを算 出する例を挙げたが、並行群間デザインの場合は共変量の追加や経時デ ー タへの拡張、クロスオ ー バ ー デザインの場合は高次の デザインへの拡張を行う等、デザインをより複雑にすると解析的/漸近的に事後 、 分布を求めることが困難となる。 また、2x2クロスオ ー バ ー デ ザインにてGrieve (1994)の漸近式を用 いた場合、 TIR,y と Tjy の分布の選択が難しい。 そこで、 先程と同様の設定で、 今度はmcmcプロシ ジャによるBayesian PosteriorProbabilityの算出を試みる。 なお、2 ×2クロスオ ー バ ー デザインにおける 、 mcmcプロシジャのモデ ルには持ち越し効果の代わりに順序効果を指定した。 315
並行群間デザイン
まず、 各薬剤の例数は20、 応答に関する各薬剤の平均値はそれぞれ3と0、 標準偏差はそれぞれ4と5
と想定し、 乱数にてデータを生成した後、 glmプ口 、ンジャにて頻度論の枠組みで解析を行い、 各薬剤の
平均値とその95%信頼区間及び平均値の差の点推定値とその95%信頼区聞を算出する。
data MYDATA;
do GROUP= l to 2;
do ID= l to 20;
Y=3*但-GROUP)+(3+GROUP)*normal(7777) ; output;
end
end
run
proc glm data=MYDATA
class
GROUP;
model Y = GROUP/ solution ss3;
lsmeans GROUP
/ cl pdiff;
run
GLMプロシジャ
Yの最小2
95自信頼限界
乗平均
0.677707
2.725909
4.774111
-2.267708
-0.219506
1.828696
GROUP
2
2
効果GROUPに対する最小2乗平均
LSMean(i)ーLSMean(j)の
95弘信頼限界
平均の差
2. 945414
0.048819
5.842010
次に、mcmc プロシジャにより解析を行った後、 「 平均値の差が2以上となる確率Jを算出すると、E壁笠盟旦
Posterior Probabilitvは75.95%となる。 各薬剤の事後平均とその95%確信区間及び平均値の差に関する事
後平均とその95%確信区間は頻度論の結果と同様であるが、 Autocorrelation TimeやEfficiencyの結果を
見ると、 サンプリングの効率が良くなく、 自己相闘が残っていることが伺える。
proc mcmc data=MYDATA outpost=OUT seed=777 nmc= lOOOO monitor=(_parms_ DIFF)
statistics(alpha=0.05) ;
parm mul O mu2 0,
parm sig2 1
prior mu: -” generaI (0) ;
prior sig2
generaI (ーI og(sig2), I ower=O)
diff = mt』1 - mu2;
if (GROUP= l) then mu = mul
mu = mu2;
else
仰
normaI (mu. var=sig2)
model Y
run
proc format;
”
value diff f low-< 2 = "Diffく2
”
”
-
2 くhigh= Diff >= 2 ;
run
proc freq data=OUT;
tables diff/ nocum;
format diff diff_f.
run
316
Parameter mu1 mu2 sig2 diff The MCMC Procedure Posterior Summaries and Intervals Standard N Mean Deviation 95首HPD Interval 10000 2.7678 0.9947 0.8838 4.7515 10000 -0.2749 1. 0316 -2.3385 1.7203 10000 21.6602 5.1779 12.6395 31.5817 10000 3.0428 1.4397 0.4024 6.0471 Effective Sample Sizes Autocorrelation ESS Time 1361.9 7.3427 1529.0 6.5402 1323.4 7.5563 7.0528 1417.9 Parameter mu1 mu2 sig2 diff FR印ヲロシジャ diff 度数 パ ー セント Diffく2 Diff >= 2 2405 7595 24.05 75.95 Efficiency 0.1362 0.1529 0.1323 0.1418 そこで、 mcmc プロシジャにおけるBum-in、thinning及びサンプリングの数を5倍(nbi=5000、thin=5、 nmc=50000)にして再実行する。 結果として効率はある程度上がるが、 計算時聞が増えてしまう。 proc m叩c data=MYDATA outpost=OUT seed=777 nbi=5000 thin=5 nmc=50000 monitor=(_parms DIFF) statistics(alpha=0.05) (以降は前プログラムと同 ー の命令) Parameter mu1 mu2 sig2 diff Effective Sample Sizes Autocorrelation Time ESS 1.7946 5572.2 6005.7 1.6651 5909.9 1.6921 6085.1 1.6434 Efficiency 0.5572 0.6006 0.5910 0.6085 参考までに、 上記2つのプログラムの診断プロットを次頁に示す。 【参考】前掲のプログラムでは、薬剤を表すカテゴリ変数GROUPの値によって条件分岐を行うことで、 modelステー トメントで使用するパラメ ー タmuの値を指定していた。 切片項を表すパラメ ー タ とrandomステー トメントを併用することで、 カテゴリ変数GROUPの値による条件分岐を行う 必要が無くなりコ ー ディングが簡便となる(ただし、 サンプリングの効率が落ちる)。 次項の2 ×2クロスオ ー バ ー デザインにてこのコ ー ディング方針を適用する。 proc m叩c data= MYDATA outpost=OUT seed=777 nbi=5000 thin=5 nmc=50000 statistics(alpha=0.05) parm int O : parm sig2 1” genera I (0) ; prior int prior sig2 general (一I og (sig2) , I ower=O) . ” random mu e:eneral (0) subject=GROUP monitor=(mu) init=O zero=last; 州 model Y - normal (担主mu, var=sig2) run Effective Sample Sizes Autocorrelation ESS Time Parameter 3.3459 int 2988. 7 4802.6 2.0822 sig2 2806.7 3.5629 mu 1 317 Efficiency 0.2989 0.4803 0.2807
2
0
E
N
3
4
師
a
A噌
唱
c
e云M2
9h
a
”a
q4d‘
曲
a
d
・
E 稲E 8“主
a
o
,.
初
,.
"噂
s
e
取E司
a- -a0
4
図3・1
‘a
g
4
副"
a
a
・・
,ヨ〈
.
EMM3E o
C
s
a
s。
U唱
5・
20
....
,.
mcmcプロシジャの実行結果(nbi=!OOO、 thin=!、 nmc=!OOOO)
榊榊酬州
0"'8ncstlco fc, mu1
' :1 ’
20IXIO
300馴B
良町抵均a
a
塁。
bEa 主 i
..
U泊。
20
....
,.
..
,..
関
ーを
“
mα》
.
50000
Oiagnostlca章。v mu2
41
I
Hh,山 J" 』 IIJJ. 恥居t
l
白‘I.I
,1Hlfl!
.tlM1.!lll,Jll,ldH
1111
] ·i-・・・・・・・・・圃・・・・・・・・・・・・・・|
-2-!lltl・四町四M摺.怖町田町官官司川rnnrnr明恒間司閣官l医am!J't,1 ffl岡田nn町·1m1r111•,明目・1附置11
1
4寸
10000
"
剛1
20000
.. .... ..
30000
""出国
40
回
l
‘X泊0
50000
.
m"2
ω
耳-
鍋嶋
事
m
t
回
引
g匂4
te
--
EA
個
j柵酬
I
4
... ..
..
I
I
。
,. .. ..
....
mcmcプロシジャの実行結果(nbi=§OOO、 thin喝、 nmc=§OOOO)
318
2.5
Ml
d符
2×2クロスオーバーデザイン まず、 各順序の例数及び各セルの応答に関する平均値 は表2・1と同様、 各セルの応答に関する標準偏差 は全て3と想定し、 乱数にてデー タを生成した後、 giroプロシ、ジャにて頻度論の枠組みで解析を行い、 薬剤効果の値の差の点推定値と その95%信頼区間を算出する。 data MYDATA; GROUP= l do ID= l to 20 PERIOD= ; l TREAT= l; Y=6+3*norma I(7777); output; PERl0D= 2: TREAT=2: Y=3+3*normal(7777); output; end GROUP=2; do ID=21 to 40; PERIOD=l; TREAT= 2: Y=2+3*normal(7777); output; P宣R10D=2 ; TREAT=1 ; Y= 5+3*norma I(7777); output; end run proc glm data=MYDATA; ID GROUP PER !OD TREAT; c Iass model Y = GROUP ID(GROUP) PERIOD TREAT / solution ss3 ; h=GROUP e=ID(GROUP) test lsmeans TREAT/ cl pdiff; run GLMプロシジャ 効果TREATに対する最小2乗平均 LSMean(i)-LSMean(j)の 95弘信頼限界 j 平均の差 2 2. 834587 1. 657083 4. 012091 次に、 mcmc プロシジャにより解析を行った後、 「 薬剤効果の差が2以上となる確率」を算出すると、 Bavesian Posterior Probゆilitvは91.16%と なる。 薬剤効果の値の差の点推定値とその95%確信区間は頻度 論の結果と同様である。 しかし、 mcmcプロシジャにおけるBurn-in、 thinning及びサンプリングの数を それぞれ5000、5、50000にして実行したにも関わらず、 Autocorrelation TimeやE伍ciencyの結果を見る と、 サンプリングの効率が良くなく、 自己相闘が残っていることが伺える。 この原因としては、 モデル に複数のrandomステ ートメントが含まれていることが挙げられる。 proc memo data=MYDATA outpost= OUT seed= 777 nbi= 5000 thin= 5 nmc= 50000 statistics(alpha= 0.05) parms residual 1 sig2 1 prior residual -igamma(0.001. scale= 0.001) prior sig2 -igamma(0. 001, sea Ie=O. 001) -normal(0, var=1000) subject=GROUP monitor= (seq) zero=last; random seq -normal(0, var= 1000) subject=TREAT monitor=(tau) zero= last; random tau -normal(0, var=1000) subject= PERIOD monitor=(pi) random pi random s -normal(O, var=sig2) subject= ID; run model y ~ norma I(seq + tau + pi + s, var=residua I) proc freq data= OUT; tables tau_1/ nocum; format tau 1 diff f. run 319
Parameter residual sig2 seq_l tau_l pi_l pi_2 The MCMC Procedure Posterior Summaries and Intervals Standard 95協HPD Interval Mean Deviation N 1.9739 4.5591 11.9088 8.0493 10000 0.00362 1.7767 5.3782 10000 2.0339 -0.9330 0.7792 2.0854 0.5742 10000 1.6619 0.6341 2.8447 10000 4.1611 0.5419 0.7208 2.0109 3.3974 10000 1.1777 0.7194 2.6627 10000 3.9717 Parameter residual sig2 seq_l tau_l pi_l pi_2 4 Effective Sample Sizes Autocorrelation ESS Time 245.0 40.8182 153.8 65.0369 1470.4 6.8010 2486.9 4.0210 1430.4 6.9912 1482.3 6.7462 FREQ 7ロシジャ diff 度数 パ ー セント Diffく2 Diff >= 2 884 9116 8.84 91.16 Efficiency 0.0245 0.0154 0.1470 0.2487 0.1430 0.1482 No-U-Turn SamplerによるBayesian Posterior Probabilityの算出例 Hamiltonian Monte Carlo Method (H MC) は、 解析力学等で用いられる Hamiltonianの概念を利用し、 Leap-企og Methodと呼ばれる 手法で乱数を生成する。 アルゴリズムの詳細は豊田(2015)が詳しいため 本稿では詳述を避けるが、 H MC は従来の手法と比較 して収束が速く、 乱数聞の相聞が低いため、 通常 の MCMC ( 例えばmcmcプロシジャでデフォルトとして用いられる random-walk Me 仕opolis)より もサ ンプリング数が数十分のーで済む場合があると言われている。また、No-U-Tum Sampler ( NUTS )はHMC の 変法で、HMCの計算で必要となる各パラメ ー タを自動で調整しつ つ サンプリングを行うため、 より 実践的 な手法である。 NUTS はmcmcプロシジャの他、 S闘とし、う確率的プログラミング言語で実装さ れている。 Stanの実装例としては例えばRのパッケ ー ジのひとつである RStanがあるが、 RStanでは解 析を実行する度に、 RやS刷のコ ー ドをC++に変換してコン パイルを行った後、 C++上でサンプリング を行うため、 簡単なモデルで、 も実行時聞がかかる。 一方、 mcmc プロシジャではアルゴリズムを random-walk Metropolis からNUTSに変更しでも実行環境や動作 は大きく変わらないため、実行時間はそ れほど増えず、動作が軽い印象がある。本項では、先程紹介したmcmcプロシジャを NUTSで再実行し、 効率等の観点から通常の MCMC (random-walk M 甜opolis)と比較を試みる。 以下 、 前項の mcmcプロ、ンジャのプログラムにつ いて、 アルゴリズムをNUTSに変更して再実行した結 果を紹介するが、 アルゴリズムの変更方法 はmcmcプロシジャの 1 行自に「alg司uts」を追加するのみ である。 日両 me data=MYDATA outpos同UT seed=777 .. S 凶sties (a I pha-町庄盟主; 並行群間デザイン 前項のmcmcプロシジャのプログラムを 再実行するが、その際、Bum-in及びthinningの 数をそ れぞれ5000 と 5、 アルゴリズムを 「 デフォルト(random-walk Me 回polis)」と「NUTSJの両方、 NUTSの場合 はサ 。 まず、 事後分布 ンプリング 数を「50000」「5000」「500」の3通り 、 計4通りの実行結果を以下に示す に関する要約統計量はいずれも同様の結果となった。 320
alg=normal {デフォルト) nbi =SOOO thin =S nmc=50000 mul mu2 sig2 diff N 10000 10000 10000 10000 Mean 2.7263 -0.2373 21.7136 2.9636 mu2 sig2 diff N 10000 10000 10000 10000 Mean 2.7142 -0.2074 21.6331 2.9215 mu2 sig2 diff N 1000 1000 1000 1000 Mean 2. 7291 -0.2457 21.7164 2.9748 mu2 sig2 diff N 100 100 100 100 Mean 2.6088 -0.2433 22.3600 2.8521 alg=盟� nbi=SOOO出in= S nmc=50000 alg=盟� nbi =SOOO thin =S nmc=5000 alg=盟主E nbi =SOOO thin=S nmc=500 Deviation 1.0324 1.0241 5.2970 1.4399 Standard Deviation 1. 0440 1. 0590 5.3229 1.4892 Standard Deviation 1.0202 1.0474 5.4621 1.4814 Standard Deviation 1. 0192 0. 9066 5.5752 1. 3400 95弘HPD Interval 0.7039 4. 8101 ー2.3522 1.6881 12.9774 32.6929 0.0918 5.7872 95唱HPD Interval 0.7138 4.8019 -2.2917 1.7970 12.2837 31.9301 -0.0224 5.8308 95目HPD Interval 0.9364 5.0202 -2.3428 1.7765 12.4431 32.1279 0.1426 6.0151 95覧HPD Interval 0.4052 4.4017 一1.7168 1.4576 34.6725 13.8750 5.2955 -0.1079 次に、 効率(Effective Sample Size)に関する結果は、 アルゴリズムをNUTSに変更するだけでサンプリ ングの効率や自己相聞が改善した。 また、 前表の結果も踏まえると、 アルゴリズムをNUTSにした場合 はサンプリング数を1/10程度に減らしても推定精度がある程度維持されていることが分かる。 alg=normal (デフォルト) nbi =SOOO thin=S nmc =50000 alg=_盟ll nbi =SOOO白in=S nmc=50000 alg=盟ll nbi =SOOO thin=S nmc=盟盟 alg=,盟ll nbi =SOOO thin= S nmc=500 Parameter mul mu2 sig2 diff ESS 5572. 2 6005. 7 5909. 9 6085.1 Parameter 『nul mu2 sig2 diff ESS 9641.5 10000.0 5277.5 10000.0 Parameter mul mu2 sig2 diff ESS 936. 5 1066. 6 379.9 1000.0 Parameter mul mu2 sig2 diff ESS 91.9 78.0 33.5 107.0 321 Autocorrelation Time 1.7946 1.6651 1.6921 1.6434 Autocorrelation Time 1.0372 1.0000 1.8948 1.0000 Autocorrelation Time 1.0678 0.9375 2.6320 1.0000 Autocorrelation Time 1.0881 1.2818 2.9817 0.9349 Efficiency 0.5572 0.6006 0.5910 0.6085 Efficiency 0.9642 1. 0000 0.5278 1.0000 Efficiency 0.9365 1.0666 0.3799 1.0000 Efficienc}'. 0.9191 0.7801 0.3354 1.0696
参考までに、Gewe:kJ出Convergen閣 Diagnosticの結果と、2~3番目のプログラムの診断プロットを以下 に示す(なお、1番目のプログラムの診断プロットは図3-2に掲載済み)。 nbi=5000 thin=5 nrnc=50000 alg=盟� nbi=5000 thin=5 nmc=50000 叩一 m n Lu n - ∞ s Eo -5 n fp d d alg=盟� nbi=5000出in=5 nmc=500 20XIO NZE 10000 .,.oRtlosfor•削’ 白 ,e.i:泊00 滋XIOO 5IX泊。 I 凶 .術援胞の ID 曲 目 4 Z幅 一室 50 2司誕 咽 a - .. 害” .. 回 曲 e SSEEsa 間 ,。 I111 11h4uf 」f ill-- 4 4 ' :柵酬 D z 0.4399 0. 1195 0.0847 0.0772 肝>lz 0.5412 0.4786 0.7682 0.3242 宵プ石I 0.3005 0.8239 0.4183 0.5805 宵>TzT 0.6479 0.2069 0.4450 0.9435 z 0.7724 -1. 5570 1.7239 1.7669 z 0.6110 -0.7086 0.2948 0.9859 z -1.0353 -0.2225 0.8094 -0.5526 z 0.4566 1.2622 -0.7638 -0.0709 Parameter mu1 mu2 sig2 diff Parameter mu1 mu2 sig2 diff 両日meter mul mu2 sig2 diff Parameter I『1ul mu2 sig2 diff alg=normal (デフォルト) .. ヨ. ー,E U同E 10 .. 図4・1 2・ .. .... 網 ” | | 。 ,. .. ... ,. .. .. ... .. 自 制 mcmcプロシジャの実行結果(nbi =5000、thin=5、nmc=,盟盟皇、alg=,盟�) 322 ..
2
-
0
M
E
E
F
E
2
. .".
‘。
o
0
.
‘4
巴旦箇 言と@0
占
O
'
ロ
g
g
4
l ...
箇
‘
Lo
'
,0
・‘
20
..
30
YI
剛1
。·"'
D凶加。国ics fa, a;s2
-
..
.,抱
易管Bah-c‘““a
..
.' .
’·町-
:榊州�州-州
似"'
]
苦
i
・
g
互 ...
..
....
図4・2
30
関
I
”|
,。
..
l ...
•
,,
初回路
舗
1人
騎
4
0
酬
s
mcmc プロシジャの実行結果( nbi=SOOO 、 thin=S 、 nmc=.盟盟、 alg=,盟主主)
2×2クロスオ ー バ ー デザイン
前項の mcmc プ口 、ンジャのプログラムを再実行するが、 その際、 Burn-in 及び thinning の数をそれぞれ
10000 と 10、 アルゴリズムを「デフォルト( random-walk Metropolis)」と「NUTSJ の両方、 NUTS の場
合はサンプリング数を「IOOOOOJ 「10000」の 2 通り、 計 3 通りの実行結果を以下に示す。 まず、 事後分
布に関する要約統計量はいずれも同様の結果となった。
�曾st喧ri。r 伽帥-�!堅一組制時間ゐ
メ完ラメータ
alg=!!ormal (デフォルト)
nbi= IOOOO thin= IO nmc= lOOOOO
alg=盟!!
nbi= lOOOO thin= lO nmc= lOOOOO
Parameter
residual
sig2
seq_1
tau 1
p1_1
pi 2
N
10000
10000
10000
10000
10000
10000
Mean
8.0683
2.0432
0.5564
2.8352
2.0284
2.6823
Parameter
residual
sig2
seq_1
tau 1
pi_1
p1_2
N
10000
10000
10000
10000
10000
10000
Mean
7.9362
2.1671
0.5342
2.8416
2.0477
2. 7046
323
Standard
Deviation
1.9779
1.8148
0.7843
0.6388
0.7149
0.7229
Standard
Deviation
1.9161
1.7581
0.7850
0.6290
0.7023
0.7082
- -『ー {
95略HPD Interval
4.5044
11.9148
0.00182
5.4304
-0.9888
2.0990
1.6269
4.1330
0.5868
3.4007
1.2121
4.0507
95弛HPD Interval
4.4868
11.6854
0.0305
5.4274
-0.9584
2.1152
1.5967
4.0575
0.6432
3.3944
1.3497
4.1421
alg=,盟� nbi= lOOOO出in= lOnmc=盟皇盟 Parameter residual J sig2 seq_l tau 1 pi_l pi_2 N 1000 1000 1000 1000 1000 1000 Mean 7.7681 2.3257 0.5792 2.8499 2.0556 2.7097 Deviation 1. 8430 1.7355 0.8020 。 目 6397 。 目 7144 0.7136 95覧HPD Interval 11.1698 4.4485 5.4617 0.0405 2.2719 -0.8966 4.0941 1.5788 3.3252 0.5593 4.1274 1.3508 次に、効率(EffectiveSample Size)に関する結果は、 アルゴリズムをNUTSに変更するだけでサンプリ ングの効率や自己相聞が改善したが、 並行群間デザインの場合と比較すると、改善の度合いは小さく、 特にばらつきに関するパラメー タについては満足出来る結果とはいえない。 原因としては、 やはりモデ ルに複数の randomステ ートメントが含まれていることが挙げられる。 この状況下では、 アルゴリズム をNUTSにしたとしてもサンプリング数の減少まで期待することは出来ないようである。 alg=normal (デフォルト) t in=10 nmc=盟盟盟 nbi=10000 h alg=盟主主 t in= lOnmc=辿皇盟皇 nbi= lOOOO h alg=,盟益 nbi=10000 thin=10 nmc=辿盟皇 Parameter residual sig2 seq_1 tau 1 pi_1 pi 2 ESS 395. 1 271.7 2772.2 4808.7 2693.1 2844.0 Parameter residual sig2 seq_1 tau 1 pi_1 pi 2 ESS 1169.3 700.3 9401.5 8551. 2 9519.5 9452.7 Parameter residual sig2 seq_1 tau 1 pi_1 pi_2 ESS 160.1 82.4 859.6 704.1 577.8 659.0 Autocorrelation Time 25.3128 36.8032 3.6073 2.0796 3.7132 3.5162 Autocorrelation Time 8.5525 14.2789 1.0637 1.1694 1.0505 1.0579 Autocorrelation Time 6.2452 12.1287 1.1634 1.4203 1.7307 1.5175 Efficiency 0.0395 0.0272 0.2772 0.4809 0.2693 0.2844 Efficiency 0.1169 0.0700 0.9402 0.8551 0.9520 0.9453 Efficiency 0.1601 0.0824 0.8596 0.7041 0.5778 0.6590 参考までに、 全てのGeweke’ sConver g ence Dia gnosticの結果と、1 ~ 2番目のプログラムの診断プロット を以下に示す。 alg=normal (デフォルト) nbi= lOOOO thin= lOnmc=盟盟盟 Parameter residual sig2 seq_1 tau 1 pi_1 J:)i_2 324 z -0.6721 -0.0806 1.5806 -0.1310 -1.4010 -1.2311 Pr>同 0.5015 0.9358 0.1140 0.8957 0.1612 0.2183
alg=,盟�
nbi=lOOOO thin=lO nmc=盟盟盟
同
一∞
h
u
-0
叩一
pu
m
n
nu
LU
n
nu
1寸
E
i
L
品
、 hu
a n
/;榊州酬l
BEa昌 一2a
田
星
a
00
g
l ..,
"
..
.! "
l ..,
30
5 4 s a
’
2
0
J--
F
dz
,
皇
喜
2
'"
国
;
g
..
主:
00
l ..,
唱
"
30
l酬酬
Loe
"'
主 2
I
"
i ••
5
2
�-'
図4-3
・
剖
I • ..
I
m
国” “ ”
。
2叫
mcmcプロシジャの実行結果(nbi=lOOOO、 th姐=10、 nmc= lOOOOO、 alg=,盟盟主!)
325
0-o凶田ro,説d m m -h 有司君” s ’ 凹 ・ -“坦〈 u ea省ata 帥 剖 剖 4 o.喝,z・sticsf,固r aoq_ ’ a- FE謂句 dg p JIll寸1UUU4U引ri--L a- -a o a z ’. II I1 1 }1 川 "'陣。 ..畑O R町- ‘噂飼註 100000 .舗櫨a ・u m ,.,噂 0-ostico fo, in.1 ・ 咽 30 国 ESE-E2 5 4 .. 同 0 0 ag耳Eh・2匂4 5 0 ,。 E - ,;・-・ ・・・・・・・・・・・・・・・・・・・四・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・-・・岡田・・聞・・圃・・・・・・・・・・・・・・・・・・・・・・・田岡田町 ぜ I 0-1 1 I f.0000 可 coooo a t’ . ' GOOCX) u泊ω , I t 償却ω E 図4-4 5 .. .. ’J I I I I 骨 2・ lac 国 量一E Ega h制 2・ .. 師 ?”,。‘at.“・ea ’. l E o 10 2・ .._ .. ・. .. 0 •-' mcmcプロシジャの実行結果(nbi= lOOOO、thin= lO、 nmc= lOOOOO、 alg=盟益) まとめ 臨床試験終了後にBayesian Posterior Probabilityを算出することで、 後期臨床試験への移行に関する意思 決定(Go/No-GoDecision)のための材料が得られることを示した。 早期臨床試験においては並行群間デ ‘ ザインに加え、 クロスオ ー バ ー デ ザインもしばしば適用されるが、本稿ではいずれの場合においても本 確率を計算することが出来る。 また、 mcmcプロ、ンジャを適用して Markov Chain Monte Carlo (MCMC) 、 による解析が可能となることも紹介したが、解析対象となるモデ ルや仮定が変わっても、 mcmc プロシ 、 ジャであれば柔軟に対応できることも申し添えておく。 ただし、解析するモデ ルによっては乱数列の収 束やサンプリング効率が良くない場合があり、 特に randomステ ートメントを含むモデルを定義した場 合は、乱数列の収束やサンプリング効率が 一 般的に落ちる。 このような場合はNUTSによるサンプリン グにより乱数列の収束状況や効率をある程度改善出来る場合があることを示した。 326
参考文献 FDA(2010) ” Guidance for the use ofbayesian statistics in medical device clinical trials." httos://www.fda.e:ov/MedicalDevices ucm07 l 072.htm Grieve AP (1994) ” Bayesian analyses of two-treatment cro喧sover studies, ” Statistical Methods in Medical Research; 3, 407・429. Jones B, Kenward MG (2014) ” Design and Analysis of Cross-Over Trials, Third Edition, ” Chapman & Hall/CRC. SAS Institute Inc. (2015) ” SAS/STAT(R) 14.1 User’ s Guide. ” Walley RJ. et. al. (2015) ” Advantages of a wholly Bayesian approach to assessing e節cacy in early合ug development: a case study, ” Pharmaceutical Statistics, 14: 205・215. 繁桝算男(1985) ” ベイズ統計入門 ” 東京大学出版会 豊田秀樹(2015) ” 基礎からのベイズ統計学 ” 朝倉書店 松浦健太郎他(2016) ” Stan と Rでベイズ統計モデリング ” 共立出版 以上 327
Rプログラムも使えるJMPの活用法 ~JMPに手法がない場合~ 0原茂恵美子、 佐藤拓哉、 篠津和夫、 佐藤耕 一 (株式会社タクミインフォメー ションテクノロジー ) 医薬品が市販されるまでには、 創薬研究から動物を対象とした非臨床試験、 ヒトを対象とした臨 床試験を経て、 それらが審査されたのち市販されるという流れがある。 統計ソフトは、 非臨床試験 ではSASやJMP、 臨床試験ではSASが主に使われてきた。 薬物動態、 薬効 ・ 薬理、 毒性試験といっ た非臨床試験では、近年、探索的なデータ分析を行う必要性から操作性やデー タの可視化などにお 、 いて優れた機能を持つ品。のニ ー ズ が高まっている。 JMPIま探索的なデータ分析ができるソフトフェアで、 プログラムを書くことなく、 マウス操作に よりさまざまな統計解析を行うことができる。 しかし、非臨床試験に必要とされる統計手法の全て がJMPIこ搭載されているわけではない。 爪tlPスクリプト言語(以下、JSL)を使用してプログラムを 組むことによりカスタマイズすることができる。 そのため、 未搭載の解析手法を利用するための解 決方法として ① JMPスクリプト言語の利用 ② JMP から R 言語など他の言語のコ ー ドを実行 という方法が挙げられる。 そこで今回、 上記①および②の方法により、 現在JMPIこ搭載されてい ないノンパラメトリックDunnett型多重比較のアドイン開発を行った。 ノンパラメトリックDunnett型多重比較は、 要因が2群以上の場合に、 対照群とその他の比較群の 聞に差があるかを、 順位デー タに変換して比較する。 本手法では、 検定の初めに全群に対して元デ ー タの順位データへの変換を行う、 ジョイントランキング法を採用した。 JSUこはDunnett型多重比較のp値および分位点を戻す関数が存在しているが、両側検定のみであっ た。 そこで、 両側検定にJSL、 片側検定にR言語を使用し、 アドイン「ノンパラメトリックDunnett 型多重比較(ジョイントランキング法)Jを開発し実装した。 値の検証は、 SASのPROBMC関数で 両側検定と片側検定を行い、 それぞれJMPとRの出力結果と 比較を行った。 小数点以下5桁で比較した結果、 pfi直および棄却限界値が全て 一 致した。 以上から、 開発したアドインでの解析結果に問題はなく、 SASと同等の利用ができると判断した。 JMPは、 Rプログラムを起動するJSLを実行することでR言語を利用することができる。 ユー ザー は、 Rプログラムを利用していることを意識することなく、 既存の品tlPの手法同様に操作し、 解析 をおこなうことができる。 JMPに搭載されていない解析手法は、 JSLを使用してアドインを開発す ることによりJMPの操作性を損なうことなく利用が可能である。 非臨床以外の他の分野においても、 必要な手法がJMPIこ搭載されていない場合には、JSLや他言語を利用することで、JMPを効果的かっ 有効に利用されることが示唆される。 参考文献 浜田 ・ 岸本(1995) SASによるノンパラメトリック多重比較.計算機統計学会,8, I, 83-89 Yoshida, M. (1988) Exact probablities assiociated with Tukey’ s and Dunnett's multiple comparisons procedures in imbalanced one-way ANOVA. Journal of the Japanese Society of Computional Statistics 1, 111-122 328
第I相臨床試験デ ー タの薬物濃度-QTc解析 渡橋靖、 O塩境 一 仁 (第 一 三共株式会社デ ー タサイエンス部) Analysis of Concen住ation-QTc Models for Phase I Clinical Data Yasushi Orihashi and Kazuhito Shiosakai Biostatistics & Data Management Department, Daiichi Sankyo Co., Ltd. 要旨 ICH・El4 ガイドラインでは、 一般的に「QT/QTc 評価試験(thorough QT/QTc S旬dy)J (以下、 TQT 試験) を実施し、薬物の催不整脈作用の潜在的可能性に関する臨床的評価を行うことが求められている。 また、 ICH E14 Q&A(R3)(2017) では、 薬物濃度 - QTc 解析が、 TQT 試験の時点、毎の解析を代替する可能性を述べ ている。 TQT 試験では、 QTc のベ ー スラインからの変化量(企 QTc )について、 時点毎に被験薬とプラセ ボの差(MQTc)とその 95% 片側信頼区聞を計算し、 全ての時点でその上限が lOms を下回れば、 陰性 と判定される。 TQT 試験の代替として、第 I 相試験の QTc デー タを用いて薬物濃度 - QTc 解析を行う場 合、 単に被験薬投与例のデー タを用いて薬物濃度 - QTc 解析を行うだけでは、 QTc の日内変動を考慮し ていないため、薬物濃度デー タのないプラセボ投与例の QTc デー タを含めて日内変動で調整した薬物濃 度と QTc の関係をモデル化し、 TQT 試験の企aQTcに相当する評価を行う必要がある。 薬物濃度 - QTc 解 析による陰性/陽性の判定は、臨床的に関連のある薬物への最大曝露量における QTc 延長を信頼区間で 評価する。 本発表では、 最初に ICH・E14 ガイドラインと、 その Q&A 作成の過程で行われた研究の概略 をレビュ ー する。 次に、 実例に基づく仮想デー タを用い、 Garnett et al.(2016)のモデルを SAS で実行す る方法、 モデルや利用デー タによる結果の違い、 および解析やデザイン上の課題や留意点などについて 議論する。 キ ー ワ ー ド: ICHE14,QT 延長, concen回tion-QT model, proc mixed 1. ICH E14ガイドライン 1.1 E14ガイドライン El4 ガイドラインでは、 一 般的に「QT/QTc 評価試験(由orough QT/QTc study)」 (以下 TQT 試験)を実施 し、 薬物の催不整脈作用の潜在的可能性に関する臨床的評価を行うことが求められている。 TQT 試験の中心 傾向の解析は、 E14 ガイドラインでは「時聞を 一 致させた被験薬群とプラセボ群の平均値の差(ベースライ 329
ン値による調整後 ) の収集の全期間を通じた最大値を用いて行われる」と記載されている。 例えば、 ベース ライン値(並行群間比較試験では時聞を 一 致させた投与前日の値(time-matched baseline)、 クロスオーバー 試験では投与日の投与直前の値(pre・dose baseline ) ) からの変化量(aQTc ) について、 時点毎に被験薬とプラ セボの平均値の差(aaQTc ) とその信頼区聞を計算し、 95%片側信頼区間の上限が !Oms を下回れば陰性と判 定される。 この解析方法は、 薬物濃度情報を使わない機械的な評価であり、 薬物濃度と QT 延長作用との聞 にヒステリシスの可能性がある場合や代謝物によって QT 延長作用の有無や程度が変わる場合などにも対応 可能な頑健な方法である。 しかし、 複数時点、のMQTcの最大値を用いるため、 例数、 時点数、 時点聞の相関 などに依存したバイアスが存在する保守的な評価法であることも知られている(日本製薬工業協会 2007 ) 。 - El4 ガイドラインやその Q&A(R2 において、薬物濃度 ) QTc 聞の評価は、用量選択のための情報、TQT 試験 の解釈の明確化、 QT 延長評価の信頼性向上など、 総合的な評価の中で補助的な位置付けとされている。 1.2 Q&A (R3) Q&A(R3 では、 ) 薬物濃度の QTc への影響を検討する薬物濃度 - QTc 解析が、 TQT 試験の時点ごとの解析 (in飽,rsection-union test )の代替となる可能性を述べている。但し、薬物濃度 - QTc 解析だけで被験薬による QT 延長リスクを評価し、 後期臨床試験における QTc 評価方法を判断するのではなく、 非臨床デー 夕、 QT 延長 の経時的変化、 QT 延長の程度、外れ値のカテゴリカル解析、および潜在的な催不整脈作用のシグナルとなり 得る特定の有害事象などを含む包括的な評価が必要である点も喚起されている。 薬物濃度 一 反応デー タのモデルには、 異なる仮定に基づく、 多種類があり、 同 一 デー タに対して、 モデル 間で 一 致しない結果が得られる可能性があることが知られている。 従って、 モデル化の方法や仮定、 モデル 選択の基準、 モデルの要素の根拠、 および複数の試験で得られたデー タを併合する可能性などを、 解析に先 立って事前規定し、 バイアスを低減することが重要である。 解析にあたっては、 モデルの仮定、ヒステリシ ス、 およびモデルの適合度などを検討し、 その結果を文書化する必要がある。 後期開発の患者対象の臨床試 験において心電図を用いたより詳細な安全性評価が不要であると結論するためには、 臨床的に意味のある最 大の曝露状況において、薬物濃度 - QTc 解析で推定された、薬物の QTc 間隔 へ の作用の片側 95% 信頼区間の 上限が、 !Oms 未満である必要がある。 2. 薬物濃度 - QTcモデル 2.1 QT/QTc 評価試験での薬物濃度 - QTc 解析 Game仕 et al. (2008 )によると、 FDA が TQT 試験をレビュ ーする際、 薬物濃度 - QTc 関係を検討するのがル ー チンになっている。 そのほとんどの場合において、 ベースラインで調整し、 時間を 一 致させた被験薬とプ ラセボの QTc の差 、 aaQTcを反応変数とし、 切片と薬物濃度に対する傾きを固定効果、 および個人毎の切片 と傾きを変量効果とする線形混合モデルが用いられている。 Garnett et al. (2008) の Appendix B には薬物濃度 と QTc の関係を検討するための SAS プログラムが載っており、 変量効果の分散構造は unstructured が指定さ れている。 2.2 IQ-CSRC の研究 Innovation and Quality in Pharmaceutical Development(IQ )と Cardiac Safety Research Consortium(CSRC)の臨 床薬理のメンバーが協力し、 ヒトに初めて投与される単回投与試験で頑健で質の高い心電図の測定を行い、 薬物濃度 - QTc 解析を行うことで TQT 試験に置き換えることができるかどうかが研究された(Darpo et al. 2014)。 QTc への影響がよく知られている 5 つの市販薬(偽陰性が重要なため、 いずれとも規制当局が関心を 330
もつ基準値を超えるQT延長作用ありの薬(陽性の薬)))とQT延長作用なしの薬(陰性の薬) lつを選び、
20名の健康成人に対し、 プラセボ対照、 ランダム化、 3期の不完備型デザインのクロスオーバー試験が行わ
れ、 6つの実薬で各9名、 プラセボ6名のデー タが得られた。 各期においてDay lに低用量、 Day2に高用量
の投与が行われた。 各実薬9名とプラセボ6名に対し、Fridericia補正後QTcのp問・dose baselineからの変化
量LlQTcFを反応変数とし、 薬物濃度を連続量の共変量、 投与群と投与後の計画された測定時点 (プラセボで
、
有意差なしの時点を統合) をカテゴリカルな固定効果とする線形混合モデ ルが当てはめられた。 投与後の時
点を固定効果とすることで、 日内変動で調整された時点毎のプラセボとの差に近い推定値が得られることが
過去の経験から分かっていた。 線形混合モデノレからQTc延長の両側90%信頼区聞を求め、 陽性の薬では、 薬
物濃度に対する傾きの信頼区間下限値がOより大きく、 かっ、 低用量投与での最高血中濃度 (Cm似)幾何平
均値でのQTc延長の信頼区間上限値が!Omsを超えていること、 陰性の薬では、 高用量投与の Cmax幾何平
均値でのQTc延長の信頼区間上限値が!Oms より下回ることを評価の基準とした。 その結果、 5つ全ての陽
性の薬で陽性、 lつの陰性の薬で陰性の判定結果となり、 小規模な試験の薬物濃度 -QTc解析で、!Omsを超
えるQT延長を検出でき、 早期臨床試験の頑健で質の高い心電図デー タを用いた薬物濃度 -QTc解析がT
QT
試験の代替となり得ることが分かった(Darpo et al. 2015)。
2.3 Game仕et al. (2016)のモデル
Garnett 制al. (2016)では以下の4つのモデルの検討を行ってし、る。
Table.2・l線形C-QTcモデルの推定とLlLlQT1ら聞の予測
‘
モデ ル名
モデル
MQTcm回の予測
企LlQTc
LlLlQTc 1kt = µ + wk + (9 + Dk )C 1kt + E1kt
MQ'I Cmax = µ + ec;;;;;;:
LlQTcl
LlQTc1kt = µ + Wk + (9 + Dk )C1kt + E1kt
LlLlQTCmax = ec;;;;;;:
LlQTc2
LlQTc 1kt = µ + W仏+ Pt + (9 + Dk )C1kt + E1kt
LlLlQTc max = 9Cm田
LlQTc3
LlQTc 1kt = µ1 + W仏+ Pt + (9 + Dk )C1kt + E 1kt
・
LlLlQTcm町
=
。
ニ
µ1 一 μ + 9Cm
処置I= 0,1、 被験者k、 時点tに対し、 薬物濃度C 1kt、 固定効果:切片μ(共通または処置毎) 、
傾き0、 時点Pt 、 変量効果:切片wk、 傾きDk、 誤差項E ikt (Garnett e旬al. (2016)Table lを改変)
全てのモデルは個人毎の切片と傾きを変量効果として入れた線形混合モデルである。 LlQTclモデルは時点、
効果を含めておらず、 日内変動を無視した最も簡単なモデルであり、 プラセボ効果は切片に含まれるo LlQTc2
モデルとLlQTc3モデルは日内変動のための時点効果が入っており、 LlQTc2モデルはプラセボと実薬で共通の切
片、LlQTc3モデルは別々の切片を用いているo LlQTcを求める際、クロスオーバー試験ではpre- dose baselineを、
並行群間試験では time-matched baselineが用いられた。 並行群間試験でLlLlQTcを計算する方法は記載されてい
ないが、時点毎にプラセボのLlQTcの平均値を差し引くのが自然であると思われる。これらのモデルについて、
QT延長の有無やヒステリシスの有無などの7つの条件、被験者数が12例から60例などの様々な条件を変え
てシミュレ ーションを行い、 偽陰性の割合、 検出力、 バイアス、 などの評価が行われた。 その結果、MQTcモ
デルは並行群間試験で偽陰性が多くなり、3つのLlQTcモデルの中ではLlQTc3モデルが最も好ましいとし、う結果
であった。
3. 薬物濃度 - QTc 解析例
3.1 解析デー タ
331
本事例で用いる解析デー タは第 一 三共(株)内で実施したある治験を元に作成しているが、 時点数、 薬物 濃度、及び QTc 等を加工している(息者に投与した時の最大曝露量の算術平均値での QTc が若干延長するよ う加工)。 なお、 投与経路は経口投与であり、 ヒステレシスは無いという前提である。 試験デザインは、健康成人を対象とした、 単回投与用量漸増試験(被験者の重複なし)、 コ ホ ー トは計7 コ ホ ー ト、 および各 コ ホ ー トの被験者数は8名(実薬6名、 プラセボ2名) である。 投与前日、 投与日ともに 投与直前 0、 投与後 0.5、 1 、 2、 3、 4、 6、 12 時間に薬物濃度、 及び 1 分程度の間隔で 3 回心電図を測定しそ の平均を取る triplicate ECG が得られている。 本事例で示す解析デー タセット r cqtcJ を Table.3・1 に示す(代表として 2 被験者分)。各々の変数は 「 subjid: 被験者番号J 、 「 cohort :漸増 コ ホ ー ト、 1 ~ 7 」、 r trt:実薬/プラセボ、 0 プラセボ、 I 実薬j、 「 dosage: 0 プラ セボ、 1(最小用量) ~ 7(最大用量)J f time :時刻(hr)」、 r cone :薬物濃度 J 、 f base: QTc の投与前日の値 (ベ ースライン値)J 、 f aval: QTc の投与後の値」、 および 「 chg: QTc の投与前日から投与日の同時刻聞の変 化量( Time-matched baseline)」 を表す。 Table.3・1 解析デー タ 「 cq句」(2 被験者分) Trt cone base Aval chg 101 0.000 415.667 418.000 2.3333 101 1.980 412.000 403.667 ・8.3268 0 0.000 411.000 417.333 6.3333 0.5 0.000 430.667 405.667 -25.0000 Subjid cohort dosage 。 。 。 。 102 102 用量毎の QTc(算術平均値)と時刻の関係、及び QTc 変化量と薬物濃度の関係はそれぞれ、 Fig.3・ l 、及び Fig.3-2 ・8 のとおりである。 田 ! • "° O O.S I 2 低-’ ' ・ 6 。 陸議i 。 。。 o "o 0。 ° 。ρ 'i. 。 日 。 。。 。 。e 。 、 。 。 。 。| 。 。 。 2lO --・・・・ ー ← •I ・-ー - … - ・→- I -…| | 一。 ー 。 l5DD 7面 阻m ..,掴 C“お割田首お“a Ill且』 師同 T Fig ふ26.QTc と薬物濃度の関係(散布図) Fig ふ1 用量毎の QTc(算術平均値) と投与後時間の 関係 、 3.2 薬物濃度- QTcモデ ノレとSAS プログラム tiQTcのモデルにおいてプラセボ群の QTc デー タを含めて解析するとき、プラセボ群の薬物濃度は測定され ておらず、 欠測である場合もあるため、 例えば、 tiQTc2 モデルのプラセボ群は 332 tiQ'lI'c1kt = µ +叫+Pt+ E1kt
、 と記載すべきかもし れない 。 プラセボか実薬かでモデ ル式が異なる場合、 PROCNLM医EDで if 文を用いた 、 記述ができ る。一 方、 プラセボ群の薬物濃度C1kt をOとする解析デー タセットを作成すれば、 モデノレ式上は薬 物濃度の項がなくなり、 同じになる。 こ のやり方は、 固定効果や変量効果の推定に影響 がないであろうか? そこで、(1) プラセボ群のモデル式から薬物濃度の項を削除する方法、 および σ) プラセボ群も同じモデル 式 を用い 薬物濃度を 0 とする方法、 の 2 通りの方法を考 える。線形混合モデノレ のモデル式 y=XP+Zy+E において、 固定効果のXは、 方法(l)についてもプラセボ群の薬物濃度を0とするしかなく、 その影響につ いてはllQTc2 モデルとllQTc3 モデル の違いで論じるべきと思われる。一方、変量効果の項については、方法(l) がプラセボ群の random slope がない モデル 、 方法(2)がプラセボ群の random slope があるモデルとなり、Zと yのコ ーディング方法が異なる。しかし 、 方法(1) および(2)、 それぞれにおいて、 yの分散を計算すると、 い ずれも同じ分散を与えることが分かる。従って、 対数尤度関数や固定効果の推定値は方法(1)と(2)との間 で一 致する。変量効果については、 方法(1)ではそもそもプラセボ群の random slope がない 。一 方、 方法(2) ではプラセボ群の random slope が推定される。Random interceptと random slope の聞に相闘がなければ、 プラ セボ群の random slope の推定値は 0となるが、 相闘がある場合はプラセボ群の random slope として 0でない 値も推定される。以上の考察から、 本報告ではプラセボ群の薬物濃度をOとし 、 プラセボ群 と実薬群を区別 せず、 PROCM医EDで同 一 model ステ ー トメント内で解析 する。 PROCMIXEDでは、 RANDOMStatementで変量効果の共分散構造を指定 する。本報告で用いた解析デー タ の場合、 TYPE=UN (uns凶ctured)とすると”EstimatedG m凶 x is not positive definite”という NOTE が出たり、 収束が不安定になったりする現象が見られ、random intercept と random slope の相闘が高い傾向が認め られた。 従って、本報告では TYPE=VC (Variance Components) を用い 、 EMPIRICA L optionで標準誤差を計算すること とした。 3.3解析結果 以下にSAS コ ー ド及び 解析結果を示す。解析にはSAS⑧System Release 9.2 を用いた。なお、本事例におい ては、 別試験の息者 対象試験の成績を参考に、 患者に投与した時の最大曝露量 の算術平均値を 900 と想定 してい る。 3.3.14 つのモデルでの最大曝露量での MQTc の違い Garnett et al. (2016)の4 つのモデルに対応するSAS コ ー ド を示す。 初めに企QTc3から示す。 proc mixed data=cqtc empirical; class time subjid; model chg=住t time cone/solution cl alpha=O. l ; random int conc/type=vc subject=subjid solution; estimate ” llllQTc at Cmax ” 住t 1 cone 900/cl alpha=0.1; title もQTc3 model” ; run; 引き続き llQTc2であるがllQTc3から以下 の変更を行ったSAS コ ー ドである。 model chg=住t time cone/solution cl alpha=0.1; 今model chg = time cone/solution cl alpha=0.1; estimate "llllQTc atCmax ” m 1 cone 900/cl alpha=0.1; 333 µ g/mL
7 est泊1ate ” 企�QTc atCmax ” cone 900/cl alpha=O.l; 更にaQTclは企QTc2 から以下の変更を行ったSASコ ー ドである。 model chg = time cone/solution cl alpha=O.l; 今model chg = cone/solution cl alpha=O.l; 最後にMQTcはaQTcl から以下の変更を行ったSASコ ー ドである。 ただし、 chg2は時刻毎にプラセボ群の算 術平均値を引いた値を表す 。 model chg = cone/solution cl alpha=O.l; 今日model chg2 = cone/solution cl alpha =O.l; estimate官aQTc atCmax ” cone 900/cl alpha=O.l; 一歩estimate ”aaQTc atCmax ” int 1 cone 900/cl alpha=O.l; Garnett et al. (2016)に 4つの モデルでのconc =900におけるMQTcmaxの予測値はTable.3・2のとおりである。 て最も推奨されているLlQTc3との比較においてaQTclは3 ms以上の違い がある。 また、 90%両側信頼区間上 限値より 、 AQTclモデルのみが lO msの延長を見逃す可能性がある。 Table.3・2 AAQTcmaxの予測値(90%両側信頼区間) モデル名 AAQTcmaxの予測値(ms) MQTc 5.2 (-0.7, 11.1) AQTcl 2.2(・3.8, 8.2) AQTc2 5.7(・0.6, 12.1) AQTc3 5.2(・1.2, 11.7) 3ふ2 プラセボ群のデー タを使わなかった場合 濃度デー タが無いため、 解析にプラセボ群のデー タを使わないと いう考え方もあろう。 そこで 、 プラセボ 群が無くとも 解析可能なaQTcl 、及びAQTc2に対してプラセボ群のデー タを使わない解析を実施した。SASコ ード 上は「where佐佐=l;」を追加している。結果はTable.3-3のと おりであり 、 AQTclモデル 、 及びAQTc2モデ ル ともに、 プラセボデー タを使わない場合が プラセボデー タを使う場合に比べ、点推定値で 1 ~ 2msのズレが 発生した。 Table.3-3 AAQTcmaxの予測値(ms) モデル名 プラセボデ ー (90%両側信頼区間) タを使った場合 プラセボデー タを使わない場合 AQTcl 2.2(・3.8, 8.2) 3.7(・2.2, 9.5) AQTc2 5.7(・0ム 12.1) 7.7 (1.3, 14.0) 3.3.3 投与前日のQTcを取得しない場合 単回投与用量漸増試験では投与前日の心電図デー タを取得しない場面が考えられる。 そこでGarnett et al. に対して、 投与前日のtime-matched baselineを使わず、 pre-dose baseline (2016)にて最も良いとされたAQTc3 を用いる場合の解析を実施した。解析ではAQTc3から以下の変更を行ったSASコ ー ドを用いた。ただし、chg3 は時刻毎に投与日の時刻0 (time =O)の値を差し引いた{重である。 model chg=釘t time cone/solution cl alpha =O. l; 334
今model chg3 = trt time cone/solution cl alpha =O. l; where time 八=O;を追加 結果はTable.3・4 のとおりであり、投与前日のtime-matched baseline の使用の有無で結果に大きな違いが出た。 Table.3-4 MQTcmaxの予測値 (ms) モデル名 (90%両側信頼区間) time-matched baselineを使った場合 5.2 (ー1.2, 企QTc3 pre -dose baselineを使った場合 11.7) -4.2 (-9.5, 1.2) 3.4影響度分析 Garnett et al. (2016)にて最も良い とされてい る企QTc3に対して、 各投与群の固定効果への影響を確認する目 的で、 被験者l名を除いたときの固定効果 (被験者効果)を全被験者分算出し、 全被験者デ ー タを用いた固 定効果(全効果)との違いを分析した。 以下にSASコ ー ドを示す。 なお、 Mixedプロシジャにおい て、 本分 析はmodelステ ー トメントのinfluenceオプションで指定可能である。 /本フォ ー マットの指定:時刻0 のデ ー タをReference に持っ てくるため * / proc format; value refO =” 0 ” proc mixed data =cqtc empirical order=formatted; class time subjid; model chg = trt tim巴cone/solution cl alpha =0.1 influence(effect =subjid iter= IO estimates); random int cone/type司c subject =subjid solution; format time ref.; run; 上記コ ー ‘ デ イングにより各被験者の被験者効果が得られる。Fig.3・3 ~ 3・7に被験者効果と全効果の差( 効果の 差)と用量の関係 (箱ひげ図)、 及び66QTcmaxの推定値の差と用量の関係を示す。 なお、 参照線は差分0 を表し、 参照線から離れれば離れるほど当該被験者の情報が固定効果推定への影響が大きいことを示す。 。a 。.. M M M 。 E冨&量 、。 百号aaa翁. •.. 4・2 .... ..... ' '・ l)o縛回・4 Fig. 3-3切片の効果の差と用量の関係(箱ひげ図) ' 4》ω・ . ,..., Fig. 3-4実薬/プラセボの効果の差と用量の関係(箱 335 ひげ図)
1.0 。 .5 0.0 。.o -0.5 0 I 2 3 ‘ 5 6 7 0 1 2 3 1 2 3 4 5 6 1 5 6 7 助制加鱈i 1.0 。,5 o.o 。,0 -0,5 0 I 2 3 ・ 5 6 7 0 D剖@助副 ・ Fig.3-5各観測(投与後)時点における効果の差と用量との関係(箱ひげ図) 336
, 、 。 1.0 a皿S 言 。 .... 」 3 . 。回毎帽 ‘ ‘ ... 宮 . 1‘ 。 。”・ b哨 Fig.3-6薬物濃度の効果の差と用量の関係(箱ひげ Fig. 3-7 MQTcmaxの推定値の差と用量の関係(箱 図) ひげ図) 以上より、 各固定効果、 及びMQTcmaxの推定にはプラセボ群の影響が大きいことが示唆された。 また、 薬 物濃度に依存する効果の推定においては、 高用量群のデー タの寄与が大きいことが示唆された。 4.考察 本論文では、 既存の治験デー タを元に加工したデー タに対して、 Garnett et al. (2016) に記載された複数の解 析を実施した。 解析結果で示したように、 どのそデルを用いるか、 どのデー タを用いるかによって結果が変 わる。 特に、 時点効果を含めないLlQTclモデルの結果が大きく異なり、 起床時間、食事時間、 活動性などの l 日の時刻と関連する日内変動を無視することができないことが改めて認識された。 また、 薬物濃度に対する 傾きの推定には高用量群のデー タの影響が大きいが、 日内変動を調整する時点効果の推定にはプラセボや低 用量群のデータも影響し、 プラセボデー タを除くと結果が変わるため、 プラセボを含む全てのデータを用い て薬物濃度-QTcモデルの解析を行うべきであろう。本論文で用いたデー タでは、MQTc、LlQTc2、および:aQTc3、 各モデルを用いた解析結果は点推定値、 90%信頼上限ともに大きく変わらなかったが、 どのモデルを用いた 解析を主解析とするか、 あるいは複数のモデルを当てはめて、 どのような基準で使用するモデルを選択する かは、 事前に規定する必要がある。 変量効果の共分散構造については、 本論文ではVarianceComponents (VC) を用いたが、 他のデータではUnstructured(UN)を用いることができるかもしれないので、 様々なデー タで更 なる検討が必要であろう。 また、 本論文では述べなかったが、 主解析として用いるべき QT間隔補正法 (Fridericia補正法、 試験別補正法、 または個体別補正法) 、 モデルの妥当性、 特にヒステリシスがあるかど うかの視覚的な確認は必須である。 0 4, 本論文で用いたデー タは、 1用量あたり実薬6名、 プラセボ2名の単回投与試験である。 D訂po et al. (21 2015)の研究は、9名のデータから 5 つの陽性の薬と1つの陰性の薬を正しく判定できることを示したが、本 論文の例では、 単回投与試験の最高用量と、 臨床的に意味のある最大の曝露状況が近かったため、 最高用量 の6名だけでは、 例数が不足であったかもしれない。 その場合、 最高用量だけ例数を憎やすよう計画する、 反復投与試験など他の試験とデー タを併合した解析を計画するなどが必要であろう。 El4Q&Aでは、 TQT試験が並行群間比較試験であればtime-matched baselineを用いるべきであり、 クロス オ ー バ ー 試験なら pre-dosebaselineも適切であるとしている。 第I相試験の多くは、 プラセボや用量が並行群 聞のデザインで行われるので、 薬物濃度-QTcモデルの解析を行うためには、 投与前日に1日心電図測定を行 337
い、time-matched baselineを利用可能にすべきであろう。本論文で用いた例では、time-matched baselineを用し、 た 薬物濃度-QTc モデル の 解析結果 と pre ・dose baselineを用いた解析結果が大きく異なった 。 これは、 time-matched baselineが適切なLlQTcモデルにp問・dose baseline のLlQTcを入れただけであるからとも考えられる。 第I相試験の薬物濃度”QTc解析にpre-dose baselineを用いることができれば、試験実施上のメリットが大き いので、 pre ・dose baselineが適した別のモデルを開発するなど、 更なる研究が望まれる。 規制当局の一 番の懸念は偽陰性である。 TQT試験では、 偽陰性でないことを保証するために陽性対照が用 いられる。第I相試験の場合、例えば、 各コホ ー トにQT 延長の陽性対照をl 例ずつ設けることが考えられ る が、その必要性については広く議論すべきであろう。EI4 Q&A (R3)では、治療において予想される最大曝 露量の相当倍の状況での反応を特徴づけるデー タがあることが、 陽性対照が不要と なる必要条件とされてい る。 今後多くの 例で経験を重ね、 十分議論すると ともに、 意思決定の頑健性の観点から薬物濃度-QTc 解析 を 考察することが必要である。 薬物濃度-QTc解析は、薬物濃度解析担当者やpharmacome凶cianが担当している会社が多いのではなし、かと 、 思われる。 しかし、 モデ ル構築や解析の段階で、 統計的に考察すべきことも少なくない。 今後、 様々な実例で も、 より多くの統計解析担当者が参画し、 広く議論す 検討を重ね、 ベ ストなアプロ ー チを探って行くために べきであろう。 参考文献 [1] ICH EI4 価」 「非抗不整脈薬におけるQT/QTc間隔の延長と催不整脈作用の潜在的可能性に関する臨床的評 薬食審査発1023第l号 2009年10月23日 [2] 日本製薬工業協会医薬品評価委員会統計・DM部会 「QT 延長の統計解析に関する解説書」 医薬出版 センタ ー ,2007年5月 [3] ICH E14 Q&A (R2) 「非抗不整脈薬におけるQT/QTc間隔の延長と催不整脈作用の潜在的可能性に聞す る臨床的評価」に関するQ&A [4] 厚生労働省医薬食品局審査管理課事務連絡 2015年7月10日 ICH E14 Q&A (悶) 「非抗不整脈薬におけるQT/QTc間隔の延長と催不整脈作用の潜在的可能性に関す る臨床的評価」に関するQ&A 厚生労働省医薬・生活衛生局医薬品審査管理課事務連絡 2017年5 月23日 [5] C. G釘neはet al.“Concen住ation-QT Relationships Play a Key Role in the Evaluation of Proaηhythmic Risk During Regulatory Review" J Clin Pharmacol 2008;48:13 18 司 [6] B Darpo et al.‘The IQ-CSRC Prospective Clinical Phase 1 Study: “C加Early QT Assessment Using Exposure Response Analysis Replace the Thorough QT Study?”’ Ann Noninvasive Electrocardiol 20I4;I9(l ):70・81 [7] B Darpo et al.“Results From the IQ-CSRC Prospective Study Support Replacement of the Thorough QT Study by QT Assessment in the Early Clinical Ph蹴” Clinical Pharmacology & Therapeutics 2015, 97(4), 326-335 [8] C G釘ne悦et al.“Operational Characteristics of Linear Concentration-QT Models for Assessing QTc Interval in the Thorough QT and Phase I Clinical Studies ” Clinical Pharmacology & Therapeutics 2016, 100(2), 170・178 338
SASによる臨床試験の解析速報に用いる プレゼンテ ー ションスライドの効率的な作成方法の提案 0吉田直記、 山崎文寛、舟尾暢男、 高浪洋平 (武田薬品工業株式会社) Increasing E百iciencyin Creating Flash Report Presentation Slides in Clinical Trials using SAS Naoki Yoshida, Fumihiro Yamasaki, Nobuo Funao, Yohei Takanami Takeda Pharmaceutical Company Limited 要旨 臨床試験の結果を解析速報として報告する際のPowerPoint 形式のプレゼンテ ー ションスライドを、 SAS のマクロを用いて効率的に作成する方法を提案する。本マクロではPowerPointファイルへの出 力にODS POWERPOINT、 レイアウトの調整にODS LAYOUT を用いる。 なお、 解析ソフト「R」 もPowerPointファイルの作成が可能なため、その機能についても触れる。 キ ー ワ ー ド:解析速報(Flash Report), ODS POWERPOINT, ODS LAYOUT, R 1はじめに 医薬品の臨床試験においては、試験終了後に作成される正式な解析報告書とは別に、 当該医薬品の 開発継続可否に関する意思決定を即座に行う目的で、解析速報の作成を求められることが多い。 こ の解析速報は、当該臨床試験に携わった関係者に加えて、直接臨床試験に関わっていない第三者(医 療関係者、各専門家、スポンサ ー の上層部等)に対して試験結果を報告するために作成されること から、内容には明瞭さが求められる。 また、解析速報を基に意思決定を行う者の中には統計専門家 以外の者も少なくないことから、試験結果の表示や解説は、統計の専門用語をふんだんに用いて説 明された文章形式よりも、簡潔かっ見栄え良く示された図表形式の方が都合が良い。 さらに、意思 決定は可能な限り迅速に行う必要があることを鑑みると、解析速報は報告書形式よりもPowerPoint 形式で作成した方が、作成時間や閲覧時聞を短縮することが出来、意思決定に関する会議の運営が 容易となる。 さて、解析速報を作成する手順は、臨床試験に関するデ ー タが出揃った時点で解析報告書のための 図表を全て出力した後、必要となる図表を同定して解析速報 (プレゼンテ ー ションスライド)にマ ニ ュアルで、 転記・貼付を行う作業を繰り返すのが一 般的であろうが、限られた時間の中で解析速報 を作成する目的からは逆行している。 すなわち、マニ ュアルでの図表の転記・貼付は決して効率的 な方法とはいえず、作業中の間違いも起こりやすいため、作成後の解析速報を確認する作業が必須 となり、 さらなる時間の浪費に繋がる。 339
本稿では、 胃潰蕩再発予防に関する架空の臨床試験を想定し、試験終了後に解析速報(プレゼンテ ー ションス ライド)を効率良く作成する方法を提案する。 解析速報に出力する図表は、 一般的な解 析項目である被験者背景項目、 主要評価項目、副次評価項目及びTE組(Treatment E mer gent Adver se Event :有害事象)に関するものとし、 使用するサンプルデー タは CDISC/ADaM形式(簡単のため ADSL、 AD TTE 及び AD A E のみ使用)にて作成しているため、 本稿での提案方法を容易に実臨床 試験に適用することが出来る。 また、本稿で紹介するSASマクロでは、PowerPointファイルへの出 力はSAS9.4Mlから新たに追加されたODSPOWERPO別Tを用い、 ス ライドのレイアウト調整に はSAS9.4M3から利用できるODS LAYOUTを用いているが、SASマクロの使用方法は本稿にて詳 述しており、 SASマクロの使用時に読者が困ることが無いよう留意した。 さらに、 本稿の提案方法 にて解析速報を作成すれば、 マニュアルで作成する方法に比べて間違いが大幅に軽減され、試験終 了後の作成時間の劇的な短縮が期待できる。 なお、PowerPointファイルへの図表の出力は統計解析 ソフト「RJでも実施可能である。 本稿の後半ではSASとR による機能の違い、 具体的には作業効 率やス ライドテンプレー トの適用可否の観点から考察を行い、本稿の提案方法(すなわち、 SASの 現行の機能)の限界と今後の展望を述べる。 2 ODS POWERPOINT 、 及び ODS LAYOUT の概要 2.1 ODS POWERPOINT ODS POWERPOINTは、SASで作成した表やグラフを簡単な構文でPowerPointファイルへ出力する ことを実現する。 他のODS ス テー トメントと組み合わせることで、 テキ ス トやリ ス トをス ライド 上の任意の位置に出力することや、 タイトルス ライドからコンテンツ ス ライドまで、 プレゼンテー ションス ライドの大部分をSASプログラムのみで作成することを可能にしている。 また、 ユーザ 一定義のス タイルテンプレー トやstyle オプションを使用することで、 背景・フォント・罫線等の ス ライドのデザインの詳細なカ ス タマイズが可能となる。ODS POWERPOINTを使用するには、 2.1.1 に示すように、PowerPointファイルへレポ ー 図 ト出力するプロシジャの構文をODS POWERPOINT ス テー トメントで囲んで記述する。 POWERPOINTの基本構文 図2.1.1ODS v; ods powerpoint file =”example.pptx” option β くレポート出力するプロシジャの構文〉 ods powerpoint close ; す。 ODS POWERPO別Tにおける主なオプションを表2.11 . に示 表2.1.1ODSPOWERPOINTの主なオプション 日le =" ファイル名 ” options(backgr叩ndimage =” ファイル名.pptx” ) |出力するPowerPointファイルを指定 |スライドの背景画像ファイルを指定 (GIF, JPEG及びPNG等が指定可能 style= style-element-name I {style-attribute-name/ I スタイルテンプレ ー ト、 スタイル属性を指定 回庄一---一…一一一一一一--一一一一一一一L三三子一段と壬Z史上主場友一・・・一一…一一…一一一一 回�回出ι一一一一一一一一一一一一・ーしJ日止と三_z._iヱ一一一一一一…一一一一一一一一一 I タイトノレとコンテンツ lay明IドTitleAndContent ay l out= TwoContent I タイトルと2つのコンテンツ 340
指定方法f .. Jl1額裏 J I titleステ ー トメントの内容をグラフに出力する正記 いを指定(デフォルトはgtitle) I roo佃oteステ ー トメントの内容をグラフに出力する/し gfootnote / nogfoo 組。旬 ないを指定(デフォルトはgfoo生note) PowerPointファイルの作成は、 その用途に応じてレイアウト等 がカ ス タマイズされたテンプレー ト gtitle / nogtitle を用いて作成することが多い。 SAS 9.4M3では既存のPowerPointファイノレ(.pptx又は.ppt) や PowerPoint テンプレー ト(.potx又は.pot) を利用することはできないが、 画像ファイルをス ライド の背景として利用することで、同様のPowerPointファイルを作成することが可能である。 具体的に は、 利用したいス ライドをスクリー ンショッ トによって画像化し、backgroundimageオプションで 背景画像 として指定すればよい。 ス ライドの背景画像を指定するSASプログラム例及び実行結果 . に示す。 を図2.12 図2.1.2 背景画像及びlayoutオプションを指定するSASプログラム及び実行結果の例 -=-議�?i""宅百一一………・ ods powerpoint file =” Example I p. ptx ” options(backgroundimage =” C:¥Temp¥SUGJ2017_Titlelmage .png ” ) layout=titleslide; Test Title 1 proc odstext; p ”Test Title l ” /style =PresentationTitle; T..t有ija 2 p run; ods powerpoint close ; 2.2 ODS LAYOUT GRIDDED、 ODS REGION PowerPointファイルにおけるス ライドのレイアウトについて、より細かなカ ス タマイズが必要な場 、 合は、ODS LAYOUTを用いることによってテキストや画像等のオブジェクトを任意の場所に 出力 することが可能となる。 ODS LAYOUTに は、ODS LAYOUT ABSOLUTEによる絶対指定と、ODS LAYOUT GRIDDEDによるグリッド指定 の2種類の指定方法があるが、ODS POWE RPOINT では ODS LAYOUT GRIDDEDのみがサポ ー ト されている。 ODS LAYOUT GRIDDED ではス ライド が仮 、 想的 なグリッド(格子状) に 分割され、 ユー ザー はODS REGIONを用いて オブジェクトを出力す るグリッド上の番地(Region Container)を指定する。 例えば 、ス ライドのレイアウトを6分割して、 ‘ それぞれ にオプジェクトを配置することが可能である。ODS LAYOUT GRIDDEDを使用するに は図 プロシジャの 2.21 . に示す ように 、ODS REGION ス テ ー トメン ト とその番地 に解析図表を出力する 構文を、ODS LAYOUT G町DDED ス テー トメント で囲んで記述する。 図2.2.1 ODS LAYOUT GRIDDEDの基本構文 とレイアウトの分割イメー ジ(2行×3列) ods layo 凶 gridded option仰; ods 民gion option(s); くレポー ト出力するプロシジャの構》 ods layout end; !Lav副 首 , Region 1 陶g加nZ Reglon3 R句拘n4 島句胸nS Re8' n6 footnotes 341 。
ODSLAYOUTにおける主なオプションを表2.2.1に示す。
表2.2.1 ODS LAYOUTにおける主なオプション
、
、 、 守、
\離要三三�;が:ぷ衿i:�?,��之介 二子
ド揖趣意法七三主:; : :.J込山γ
=
グリッド全体を分割する列数を指定
columns number
グリッド全体を分割する行数を指定
rows= number
column四tter = number
グリッドの列聞の幅を指定
rowl!ll飢er = number
グリッドの行聞の幅を指定
x = dimension
グリッド全体の横方向の開始位置を指定。x=Oは左端
(単位はmm、cm、 加(インチ)、net(%)等が利用可能)
グリッド全体の縦方向の開始位置を指定。y=Oは上端
y = dimension
(単位はmm、cm、 泊(インチ)、net(%)等が利用可能)
row_
m句or
が埋まれば次の行へ移動
major I
:行のすべてのRegion
or der_type =row_
column_m司jor:
column_m司or
列のすべてのRegionが埋まれば次の列へ移動
(ディフォルトはrow
maior)
bVlll"OUP内のそれぞれについて、 各時izionに出力
adv阻ce = bvlll"oun
やや
{
喰も
mφ
-γ
•
ODS REGIONの主なオプションを表2.2.2に示す。
一指定方法二二:i,·'.
column= number
row = number
ODSPOWERPO別Tlayoutオプションで指定可能なレイアウトは、2.1項で述べた3種類に限定され
るが、ODSLAYOUTを使用 すれば任意のレイアウトでスライドを作成すること が可能である。 い
erPo
ま、 本SASユ ー ザ ー 総会の発表者用Pow
ー
intテンプレ
トと同様の外観となるような出力方法
を検討する。 ODSLAYOUTを用いて、 タイトルスライドを作成するSASプログラムを図2.2.3、 実
行結果を図2.2.2に示す。 図2.2.3 に示した SASプログラムでは、 文字列の出力位置について、 縦
方向の出力開始位置をODSLAYOUTGRIDDEDのy オプションで指定 し、 横方向の出力位置を
options
cent
erによって中央揃えにした。 なお、ODSPOWERPO別TのlayoutオプションとODS
LAYOUTは、 同一スライドにおいて はいずれか 一 方のみが 使用可能である。
図2.2.2 ODSLAYOUTによるタイトルスライド作成
プログラムの実行結果と レイアウトイメ ー ジ
日本語発表タイトル( MSPゴシック32)
{同out)
Region 1
R句到。”z
。著者·A'.著者B2、著者。
('所属、 2所属、3所属}
Regl。n 3
English百tie {Arial 32)
Reglon4
Name
Depa巾nent,C町pora•恰/Univ制誠司'/(Arial20)
342
図2.2.3
ODS LAYOUTによるタイトル ス ライド作成プログラム例
options center; Iホ 出力を中央揃え */
ods escapechar= ""” ;/ * 上付き、 改行などの特殊文字を出力 */
ods powerpoint file=’Example2.pptx’ ;
ods powerpoint options(backgroundimage=” C:¥Temp¥SUGJ2017_Titlelmage・png” );
ods layout gridd凶y=20pct;戸出力位置を指定 */
ods region;
proc odstext;
P ” 日本語発表タイトル(MSPゴシック32) ” / style= [fontfamily=” M s Pゴシック” fontsize=32pt] ;
run;
ods layout end;
ods layout gridded y=40pct;
ods region;
proc odstext;
p "x著者A "{super I}、著者B 八 {sup町2}、著者C"{super 3}"{newline 1} ( 八 {super I}所属、 " {super 2}
所属、 八 {super 3}所属) ” / style= [fontfamily="M S Pゴシック” fonぉize= 20pt just=cent疋r] ;
run;
od国layout end;
ods layout gridded y=60pct;
ods region;
proc odst疋況t;
p ” English Title (Arial 32)” / style= [fontfamily=” Arial” fontsize= 32pt] ;
run;
ods layout end;
ods layout gridded y=80pct;
ods region;
proc odstext;
p ”Name"{newline !}Department, Co中orate/University (Arial20)” / style= [fontfamily="Arial”
f叩tsize= 20pt just=℃enter] ;
run;
ods layout end;
ods powerpoint close;
次に、 解析図表を出力するためのタイトルとコンテンツから構成されるス ライドを作成する。 SAS
では同 一ス ライド内に複数のグリッドを作成することで実現可能で、あり、そのプログラムを図2.2.5、
実行結果を図2ユ 4に示す。 図2.2.5に示したSASプログラムでは、 ス ライドにおけるタイトルの
出力先としてl×lのグリッドを、 グラフの出力先として2×2のグリッドを作成した。
図2 ユ 4
同 一ス ライドに複数のグリッドを作成する
プログラムの実行結果及びレイアウトのイメ ー ジ
盟単単註L盤盟I
m暗加点,r Tltlaand :zz :z句加,,for曲甲刷
[1 l �; : 1!1 \I〆
〆
(Layout)
;
|戸三三��:::
C"
.
' ・・
'
,: ・・
1
!-
. .
・・"�
.
343
Region
forTltles
Regl。nl
R略lon2
Region3
Region4
図2.2.5 同 一スライドに複数のグリッドを作成するプログラムの例 options center; /* 出力を中央揃えホ/ ods powerpoint file=’Example3.pptx’ ; ods layout gridded columns= l rows=l x=Opct; proc odstext; p ”Multiple Layout" / style= [fontfamily= ” Times New Roman" fontsize=24pt fontweight=bold textdecoration=underline jus七=center]; p ” (Region for Titles and 2 x 2 Region for Graphs) ” / style= [fontfamily= ” Times New Roman" fontsize=20pt fontstyle=italic color=blue just=center]; run; ods layout end; ods layout gridded columns=2 rows=2 column_gutter=4pt row_gu尉r=lpt; ods graphics / reset width=4in height=2.6in; ods region; title I ” Region l” ; proc sgplot data=sashelp.class; sea抗er x=height y=weight / group=sex; run; ods region; title I ” Region 2” ; proc s即lot data=sashelp.class; reg x=height y=weight / CLM CLI; run; ods region; title I ” Region 3” ; proc s卸lot data=sashelp.class(where=(.<ageく16)); dot age / response=height sta何回an limitstat=stddev numstd= I ; run; ods region; title I ” Region 4” ; proc s即lot data=sashelp.class; hbox height / category=sex; run; ods layout end; ods powerpoint close; 2.3 PROC ODS TEXT プレゼンテー ションスライドでは、解析図表に加えてスライドのタイトノレや図表に示す解析結果の 解釈などを出力する必要がある。テキストの出力には、ODS TEXT プロシジャが使用できる。図 2.3. l に基本構文を示す。 図 2.3.l PROC ODSTEXT の基本構文 proc odstext; ” p ” output text I option(s) ; ; tion β」 list / op item ” list text” I options 似; end; run; p :指定したテキストを出力 list :箇条書き形式の開始位置を指定 item :箇条書きで指定したテキストを出力 (list ~ end 内のみ指定可能) 344
表 2.3.1 l こ主なオプションを示す。 PROC ODSTEXT のプログラム例と実行結果を図 2.3.2 に示す。 図 2.3.2 PROC ODSTEXT プログラム例と実行結果 ods powerpoint file=’Example4.pptx’ ; proc odstext; p 'Text l ’ ; list; item ’List l ’ ; item; p ’List 2 ’ ; list I style= [bullet=square] ; item ’List a'; item ’List b’ ; end; end; end; Text I ・ List 1 ・ List 2 • List a • List b run; ods powerpoint clo叩; 2.4 出力図表のサイズ、 スライドのサイズ 解析図表のサイズを調整せずに PowerPoint ファイルを作成すると、各スライドに出力可能 な情報量 を上回ることによって、意図しない出力結果となる可能性があるため、 表の場合は出力する行数及 びフォントサイズを、 図の場合は出力のサイズを調整する必要がある。 なお、 図のサイズは図 2.4.1 に示すように ODS GRAPHICS ステ ー トメントで指定可能である。 図 2.4.1 ODS GRAPHICS によるグラフのサイズ指定 ods graphics / reset width=5in height=2.5in ; PowerPoint ファイルにおけるスライドのサイズによって、 指定可能な図表の大きさも変化する。 プ ロジェクタ ーでの投影を行う場合は、 多くの機器が対応している幅と高さが4: 3 (標準)のスライ ドを作成するとよい。この場合、スライドのサイズは幅 10 inch :高さ 7.5 inch (幅 25.4 cm :高さ 19.05 cm)である。 単位 がインチ (inch) の場合にきりがよく、 例えば半分や 1/3 といった調整が容易な ため、 図表サイズの指定もインチ単位での指定が容易と考える。 345
2.5スライドの改ページ ODS POWERPO町T では、 各スライドに出力可能なスペ ー スが存在する限り、 同 一 スライドに引き 続き出力され、意図した位置で改ペ ー ジさせることができないが、 各スライドの出力処理の末尾に 図2.5.1に示すプログラムを記載することで、 改ペ ー ジさせることが可能となる。 図2.5.1のSAS プログラムでは rdcl odsout 参照名()Jにより、 指定した参照名でレポ ー ト作成インター フェイス (RWI : Report WritingInterface)を使えるようにする機能を用いて新たなスライドを作成すること で、 改ペ ー ジを行う。 RWIを使用すると、 デ ー タステップでレポ ー トの作成が可能となる。 図2.5.1 改ペ ー ジのプログラム data』叫1_; dcl odsouto同O; run, 3適用事例 3.1仮想的な臨床試験 本稿で紹介した方法を適用する事例を紹介するため、胃潰蕩再発予防に関する架空の臨床試験を想 定する。 本治験は第3相試験として実施し、胃潰蕩既往のある患者さんに対してABC-XXX1mg群 又はプラセボを投与する。 主要評価項目は胃潰虜再発までの期間、副次評価項目は十二指腸潰蕩発 症までの期間、 その他の評価項目として胃潰蕩再発の割合、 十二指腸潰蕩発症の割合及びTEAE (Treatment E mergent Adverse Event :有害事象)を設定する。 また、 背景項目として、 年齢、 性別、 BMI 、H.pylori 検査、 カフェインの摂取、 飲酒の習慣及び喫煙歴を収集する。 解析するデ ー タセッ トはADaM形式とし、簡単のため ADSL、ADTTE及びADAE のみ使用する。 本治験の解析手法の うち主要評価項目に関する解析のみ詳述する。 主盤盆 最大の解析対象集団(以下、FAS)を対象 として、Kaplan-Meier法により、 胃潰蕩再発に関する累 積再発割合及びその両側95%信頼区間を投与群別に算出するとともに logrank 検定を適用し、 ABC-XXX群とプラセボ群の群間比較を行う。 また、Kaplan-Meier法で算出した累積再発割合と そ の両側95%信頼区間をKaplan-Meier Plot にて図示すると共に、 本グラフにlogrank検定結果を併記 する。 ・ ・ ・ その他の解析 感度分析:治験実施計画書に適合した対象集団(以下、PPS)にて主解析を実施。 調整解析:投与群及び各背景項目を独立変数としたCox回帰分析を実施。 部分集団解析:各背景項目の 各カテゴリに絞り、Cox回帰分析を実施。 346
3.2解析するデ ー タセットと本項の目的
本治験について、 デ ー タベ ー スの固定後、 直ちに解析速報を作成し、 解析結果を上層部に報告する
ことを想定する。解析結果の形式はPowerPointファイルとし、 ODS POWERPOINTにて自動作成す
る。その際、 胃潰蕩再発及び十二指腸潰蕩発症に関する検定結果について、 SAS 上で自動的に有意
性の判定を行い、 結果をテキストにて出力することとする。出力する解析結果 、 解析対象集団及び
・
使用する
デ ー タセットは以下の通り 。
・
・
・・
・
・
背景項目に関する要 約統計量(連続変数)又は頻度集計(カテゴリ変数)【無作為化された全
例、 ADSL 】
主要評価項目に関するKaplan-Meier Plot及び要約表【FAS+PPS、 AD廿E]
副次評価項目に関するKaplan-Meier Plot及び要約表[FAS、 ADTTE 】
主要評価項目に関する調整解析結果をForest Plotにて表示 【FAS、 ADTTE]
主要評価項目に関する部分集団 解析結果をF orest Plotにて表示 [FAS、 ADTTE 】
TEAE、 因果 関係ありのTEAE及びSAEに関する頻度集計をF orest Plotにて表示【安全性デ ー
タの解析対象集団、 ADAE+ADSL 】
程度別のTEAEに関する頻度集計を表にて表示【安全性デ ー タの解析対象集団、ADAE+ADSL 】
表3ユ1
|:引l;;変数者:;〆ハ;
S TUDYID
USUBJID
SUBJID
SITEID
AGE
AGEU
AGEGRl
AGEGRIN
SEX
RACE
BMIBL
BMIGRl
BMIGRlN
ALCOHOL
CAFFE別E
HPYLORI
TOBACCO
FASFL
PPROTFL
SAFFL
co勘fPLFL
RANDFL
ARM
ACTARM
TRTOIP
TRTOIPN
TRTOlA
TRTOIAN
!'
',
型
文字
文字
文字
文字
数値
文字
文字
数値
文字
文字
数値
文字
数値
文字
文字
文字
文字
文字
文字
文字
文字
文字
文字
文字
文字
数値
文字
数値
, ,
-- -�·
デ ー タセット ADSL
· ',,;;rJt{,:1 ,n前··,,,• '.t,r);:;.;ラベルγ }
Studv Identifier
Unique Subject Identifier
Subject Identifier for the Studv
Study Site Identifier
Age
Age Units
Pooled Age Group 1
Pooled Age Group 1 (N)
Sex
Race
Baseline Bodv Mass Index (kg/m2)
Pooled Baseline BM! (kg/m2) Group 1
Pooled Baseline BMI (kg/m2) Group l (N)
Consumption of Alcohol
Consumption of Ca能ine
Helicobacter Pylori Infection
Consumption of Tobacco
Full Analysis Set Population Flag
Per-Protocol Population Flag
Safetv Pooulation Flag
Completers Population Flag
Randomized Population Flag
Description of Planned Arm
Description of Actual Arm
Planned Treatment for Period 01
Planned Treatment for Period 01 (N)
Actual Treatment for Period 01
Actual Trea伽1ent for Period 01 (N)
347
;
[
ノf
�.〆.
lリJ >〆l ー
;)
ρ
•
'
、 表3.2.2 デ ー タセット ADTIE si���·.g=: ��!�11家ー 議 総 数暴露穫、妻橋持Z込芦 マ | 機文製字薬義隆IS旬ぶ 七STI UD議 dy Id四回 er YID勝弘 | USUBJID SUBJID SITEID AGE AGEU AGEGRl AGEGRlN SEX RACE BMIBL BMIGRl BMIGRlN ALCOHOL CAFFE悶E HPYLORI TOBACCO FASFL PPROTFL SAFFL COMPLFL RANDFL ARM ACTARM TRTP TRTPN TRTA TRTAN ASEO ADT PARAM PARAMCD PARMi町 AVAL STARTDT CNSR 文字 文字 文字 数値 文字 文字 数値 文字 文字 数値 文字 数値 文字 文字 文字 文字 文字 文字 文字 文字 文字 文字 文字 文字 数値 文字 数値 数値 数値 文字 文字 数値 数値 数値 数値 Unique Subject Identifier Subiect Identifier for也e Studv Study Site Identifier Age Age Units Pooled Age Group 1 Pooled Age Group 1 例) Sex Race Baseline Body Mass Index (kg/m2) Pooled Baseline BMI(kg/m2) Group 1 Pooled Baseline BMI(kg伽2 ) Grouo 1 (N) Consumption of Alcohol Consumption of Ca能ine Helicobacter Pvlori Infection Consumption of Tobacco Full Analysis Set Population Flag Per-Protocol Population Flag Safetv Population Flag Comnleters Pooulation Flag Randomized Population Flag Description of Planned Arm Desαiotion ofActual Arm Planned Trea回ent Planned Trea加ent(N) Actual Trea位nent Actual Treatment (N) Analvsis Seauence Number Analysis Date Par司meter Par司meter Code Parameter (N) Analysis Value Time to Event Origin Date for Subject Censor 表3.2.3 昨 綿一 時一 昨一 雛一 昨一 時一 縦一 時一 時一 草野 一 STUDYID USUBJID SUBJID S汀EID AGE AGEU AGEGRl AGEGRlN SEX RACE BMIBL BMIGRl デ ー タセット ADAE 348
;ぷL三変数名 " し BMIGRIN ALCOHOL CAFFEINE HPYLORI TOBACCO FASFL PPROTFL SAFFL COMPLFL RANDFL TRTP TRTPN TRTA TRTAN AESEQ AETERM AEDECOD AEBODSYS TRTEMFL AESTDTC AESTDY AEENDTC AESEV ASEV ASEVN AEBDSYCD AESER AEREL AREL ARELN AEPTCD AOCCFL AOCCPFL AOCCSFL :.· … :ζ 三:: ii.~予ぬル主:ム主•.. . - \ 一 一 三 笠 、ぷ ぶ j しゃ泳 Pooled Baseline BMI (kg/m2) Group I (N) 数値 Consumption ofAlcohol 文字 Consumption ofCaffeine 文字 Helicobacter Pylori Infection 文字 Consumption ofTobacco 文字 Full Analvsis Set Population Flag 文字 Per-Protocol Population Flag 文字 Safety Population Flag 文字 Completers Population Flag 文字 Randomized Pooulation Flag 文字 Planned Treatment 文字 Planned Treatment (N) 数値 Actual Treatment 文字 Actual Treatment (N) 数値 Sequence Number 数値 Reported Term for the Adverse Event 文字 Dictionary-Derived Term 文字 Body System or Organ Class 文字 Treatment Emergent Analysis Flag 文字 Start Date/Time ofAdverse Event 数値 Study Dav ofStart ofAdverse Event 数値 End Date/Time ofAdverse Event 数値 Severity/Intensity 文字 Analysis Severity/Intensity 文字 Analysis Severity/Intensity (N) 数値 Body System or Organ Class Code 数値 Serious Event 文字 Causality 文字 Analysis Causality 文字 Analysis Causality 数値 Preferred Term Code 数値 1st Occurrence within Subiect Flag 文字 1st Occurrence ofPreferred Term Flag 文字 1st Occurrence ofSOC Flag 文字 hごu σ。 3.3解析速報の作成 2章で紹介した方法を適用して、SAS上で作成した解析結果をPowerPointファイルに直接出力する 手順を紹介する。 ここでは作成するSASプログラムの役割を、 解析結果を得るまで、の解析パ ー ト とその解析結果をPowerPointファイルに出力する出力パ ー トに分けて説明する。 なお、 解析パ ー ト のSASプログラムは報告書形式の解析図表を作成するためのSASプログラムをそのまま利用する 一 ことを想定しているため、 報告書形式の解析図表と解析結果が 致することが保証される。 出力パ ー トのSASプログラムはPowerPointファイルにおけるスライド上の解析図表とレイアウトが同 ー であれば、 ODS POWERPOINT等の出力先に関するODS ステ ー トメント及びREPORTプロシジャ 等のレポ ー ト処理に関する プロシジャのみで構成することが可能である。 解析速報としての 一 PowerPointファイルは、 複数の解析図表が 枚のスライドに含まれる場合があるため、 本稿では、 ODS EXCLUDE及びODS SELECT ステ ー トメントを用いて出力を制御している。 SASプログラム 全体の構造を図3.3.1 に示す。 349
図3.3.1 解析パ ー ト及び出力パ ー トの構造 1 ods powe中ointfile =” くPowerPointファイルのパス及びファイル名>.pptx” ; 2ods exclude all ; 3 <解析図表の l つ目の解析パ ー ト〉 4 ods selectall ; 5 く解析図表の l つ目のレポ ー ト表示に関する処理〉 6 ods exclude all ; 7 く解析図表の 2 つ目の解析パ ー ト〉 8 ods selectall ; 9 <解析図表の 2 つ目のレポ ー ト表示に関する処理〉 10 ・・・ 11 ods powerpointclose ; 図3.31. では3行目と7行自を解析パ ー ト、 それ以外を出力パ ー トとしている。 解析ノ号 ー トでは、 解析処理を直接記載するか、%INCLUD Eステー トメントを用いて報告書形式の解析図表を作成す るSAS プログラムのパス及びファイル名を記載する。 このとき、 各解析パ ー トにおいてODS EXCLUD E ALL 及びODSSEL EC T ALL で囲むことで、PROCステップの実行結果(通常アウトプッ トウインドウ等に表示される)の PowerPointファイルへの出力を抑制することが可能となる。 出力 パ ー トは、 まずODSPOWERPO町Tステー トメントのFILE=オプションにおいて、 出力する PowerPointファイルのパス及びファイル名を記載する。次に解析パ ー トと出力パ ー トのレポ ー ト表 示に関する処理を解析図表の数だけ繰り返す。 なお、 本稿ではレポ ー ト表示に関する処理は REPORTプロシジャ、 SGプロシジャ等を、 タイトル表示に関する処理はODST EX T プロシジャを 用いた。 最後にODS POWERPOIN Tステー トメントのCLOSEオプションを記載する。 ここで、3.1仮想的な臨床試験で示した解析内容について、図3ふlの解析パ ー ト及び出力パ ー トの うちレポ ー ト表示に関する処理をまとめたSASマクロプログラム群を紹介するが、 各SASマクロ プログラムはSASユ ー ザ ー 総会2017のウェブサイト上で公開される。これらのSASマクロプログ ラムは、 解析に用いるデ ー タセット名、変数名及びレコ ー ドの抽出条件等を指定するだけで、 報告 書形式及びPowerPoint形式の解析図 表への出力直前の形に整えたSAS デ ー タセットを出力する。 なお、解析に用いるデ ー タセット構造は、CDISC ADaM V2.l、ADaMI GVI.l及び ADaMOCCDS Vl.O に準拠することを前提としている。 各解析内容におけるSASマクロ名及び使用するキ ー ワ ー ドパ ラメ ー タの説明を以下に示す。 表3.3.1 SASマクロプログラムの説明 ; 1…,,;' 解新内容 郡明及びパラメ日夕犠錆控側 SA:Sマクロ名 キーワードパラメ ータ 【各SASマク訟を実行守る前準憤1 解析対象集団の頓離の響曲 マクロ名:Calc_N_of_Su句 マクロパラメ ー タ: · TRTG = 投与群(文字変数) · POP = 解析対象集団の変数(”Y” ,"N '’ が格納された変数) = · TOTAL �1毘�ーす包出力要否(吋” J ’N”生f程L…一一一一一 一一一一… ータ Lム!.J..デ セZ.ト及び変数 デ ー タセット:ADSL 350
|変数:USUBJ1!2_£三三二互主埜繋者番埜} |デ ー タセット:DENOM |変数:TRT_N(投与群ごとの例数),TRT_LN(投与群ラベル+改行用の記 一一一一一…一一一-�'.�型的z...'!:!.l1.=!:_1i2.J1室長駁竺士勝 !.�:巳(艶整芝公!::L__ 出力マクロ変数 I fRT_GN(投与群の数),TRT_Nxl ~TRT_Nx!OO(投与群ごとの例数), TRT_LNxl ~TRT_LNx!OO(投与群ラベル+改行用の記号 ”¥” +例数), TRT_LN2xl ~TRT_LN2x!OO(投与群ラベル+例数),TRT_Lxl ~ TRT_Lx!OO(投与群ラベル),TRT_L2xl ~TRT_L2x!OO(投与群の数値変数 (固定値) 一一一 出力デ ー タセット及び変数 (固定値) t 例 vl qa LH a O邑 C 。 y 町 。、 = 間タ D- 一 旬メ m一フ 名 目 ノ G 2 b ロ 汀 I 一 クE ’ TA hノい ル ’ マ臼 - 背景項目に関する要約統計量(連続変掛【無作為化された金 1 投与群(文字変数) 解析対象集団の変数(”Y ”,"N ” が格納された変数) 投与群の合計列の出力要否(” Y ”,"N ” を指定) 入力デ ー タセット名 出力デー タセット名(レポ ー ト出力直前のデ ー タセット) 解析変数(複数指定する場合は半角スペ ー ス区切り) 小数点以下の桁数を指定 各解析項目のラベル(複数変数を指定していた場合は半角カンマ区切 り) |各解析項目におけるカテゴリのラベル(半角カンマ区切り) I イトノレ μ変数:USUBJID(ユニ ークな被験者番号) · POP = · TOTAL = · IND = ・OUTD = · AVAR = · NDEC = · ITEM ! ~ITEMIO = - 免u va 免u J h- - JUイ o mメ ラ Dl 、 = 。 一 湖町悶 クR 汁一 ωマ · ITEMCI ~ITEMCIO = ・TITLE = 入力デー タセット及び変数 |(固定値) | 出力デ ー タセット及び変数 lデ ー タセット:OUTD = Iこ指定した値 |変数:解析結果の表示に必要な値 (固定値) 背景項目に関する頻度集計(カテゴリ変掛【無作為化された金鯛】 マクロ名: · POP = · TOTAL = · IND = · OUTD = · AVAR = · ITEM ! ~ITEMIO = · ITEMCI ~ITEMCIO = ・TITLE 入力デ ー タセット及び変数 投与群(文字変数) 解析対象集団の変数(” Y ”,"N ” が格納された変数) 投与群の合計列の出力要否(” Y ”,明 ” を指定) 入力デ ー タセット名 出力デ ー タセット名(レポ ー ト出力直前のデ ー タセット) 解析変数(複数指定する場合は半角スペ ー ス区切り) 各解析項目のラベル(複数変数を指定していた場合は半角カンマ区切 り) |各解析項目におけるカテゴリのラベル(半角カンマ区切り) |タイト/レ |変数:USUBJID(ユニ ー クな被験者番号) L .�挫し”一一四一…一一 一一一一一目白一一 一一一同一一一一一一一一一一 一一一一 出力デ ー タセット及び変数 |デー タセット:OUTD = に指定した値 |変数:解析結果の表示に必要な値 (固定値) ei1町四ot (FAS+P郎、ADTfE】 組四M 主要評価項目に関する幽.pl . : I 副次評価項目に関する陶,phµl4\fe加問。t E臥S、 A.OTTE] . . .. マクロ名: ·-·· .• 1.. 351
Plot Of Cumulative Incidence マクロパラメ ー タ: · TRTG = 投与群(文字変数) · POP = 解析対象集団の変数( ’T ’ ,''N” が格納された変数) -別D = 入力デー タセット名 · OUTD = 出力デ ー タセット名(レポ ー ト出力直前のデ ー タセット) · PARAMCD = 検査項目コ ー ド · CENSOR = 打ち切りを示す値(変数 CNSRの値を指定) -別TERVAL = X軸の時間間隔 · xLabel = X軸のラベル · yLabel = Y軸のラベル · Text = Iogrank検定による生存関数の有意差の有無に関するコメント · Color = プロットシンボル及び線の色 · Symbol = プロットシンボルの形 · TITLE = タイト/レ 入力デ ー タセット及び変数 変数:AVAL(イベント発現又は打切りまでの期間),CNSR(打ち切り) (固定値) 一一目 一一 出力デ ー タセット及び変数 デ ー タセット:OUTD=に指定した値 (固定値) 変数:解析結果の表示に必要な値 … 1 主要評価項目l に闘する 割 合 及び 9 5怖 信 頼 i 医 師 の 要動 議 fiFM峨胸、細目宜】 の 駒嶺 ·;[,FA$ .,,相官訓 副操評価項i目!l.む関する寄贈 浪 び! 略 号沿 信 頼民 間! 襲 マクロ名: % Calc_Cumulative_ Incidence (TRTG= TRTP, POP= FASFL,別D=ADTTE, Calc Cumulative Incidence OUTD= TEST4, PARAMCD= GU, AVAR= AVAL, CENSOR町G_VAR= , ー マクロパラメ タ: CENSOR= , INTERVAL=); • TRTG = 投与群(文字変数) · P OP = 解析対象集団の変数(吋 ” J’ N” が格納された変数) · IND = 入力デー タセット名 · OUTD = 出力デー タセット名(レポ ー ト出力直前のデ ー タセット) = · PARAMCD 検査項目コ ー ド = · CENSOR 打ち切りを示す値(CENSORING_Vi伎の値を指定) · INTERVAL = X軸の時間間隔 · TITLE = タイトル -ー . . 一一一一 入力デ ー タセット及び変数 変数:AVAL(イベント発現又は打ち切りまでの期間),CNSR(打ち切り) (固定値) 出力デ ー タセット及び変数 デ ー タセット:OUτ聞こ指定した値 変数:解析結果の表示に必要な値 (固定値) 主要評価項目乙関する割合の投与群閑差の点推定檀及:(195羽信頼区間(FAS+P郎、 M)TTE】 ’ 国�·"評価項目に関する割合の投与瞬間蓋の慮控世直裏部恒%信頼匡関(FAS、ADT l'E] マクロ名: Proportion_ Of_ Analysis_ Var マクロパラメ ー タ: · TRTG = 投与群(文字変数) · POP = 解析対象集団の変数( ” Y” ,"N” が格納された変数) - 町D = 入力デ ー タセット名 · OUTD = 出力デー タセット名(レポ ー ト出力直前のデ ー タセット) · PARAMCDI = 検査項目I • PARAMCD2 = 検査項目2 · CENSOR = 打ち切りを示す値(変数CNSRの値を指定) · CENSOR LABEL = CENSORのラベル 1 ー l 352
· EVENT LABEL = EVENT のラベル -別TERVAL = X軸の時間間隔 · TITLE = タイトノレ 変数:AVAL(イベント発現又は打ち切りまでの期間),CNSR(打ち切り) 入力デ ー タセット及び変数 (固値 定 ) デ ー タセット:OUTD=に指定した値 出力デ ー タセット及び変数 変数:解析結果の表示に必要な値 (固定値) l主要評価項目に闘する調整解析結果をPo.restPlot iとて表示{臥�•• Ari�l マクロ名: Adj for_Covariates マクロパラメ ー タ: · TRTG = 投与群(文字変数) · POP = 解析対象集団の変数(” Y ・1明 ” が格納された変数) 町D = 入力デ ー タセット名 = · OUTD 出力デ ー タセット名(レポ ー ト出力直前のデ ー タセット) = · CENSOR 打ち切りを示す値(変数CNSRの値 を指定) · AVAR = 独立変数 ( 複数指定する場合は半角スペ ー ス区切り) · ITEMI ~ITEMIO = 独立変数のラベル(複数変数を指定していた場合は半角カンマ区切り) = · TITLE タイトノレ 一一 変数:AVAL(イベント発現又は打切りまでの期間),CNSR(打ち切り) 入力デ ー タセット及び変数 (固定値) 一 一一一 デ ー タセット:OUTD=に指定した値 出力デ ー タセット及び変数 変数:解析結果の表示に必要な値 (固定値) 示 にて表 [FAS、Ai>T四】 圏解析結果をFor倒Plot 主要評植項目に闘する部分集 マクロ名: Subgroup_Analysis マクロパラメ ー タ: · TRTG = 投与群(文字変数) · POP = 解析対象集団の変数( ” -別D = 入力デ ー タセット名 · OUTD = 出力デ ー タセット名(レポ ー ト出力直前のデ ー タセット) · CENSOR = 打ち切りを示す値(変数CNSRの値を指定) · AVAR = 独立変数(複数指定する場合は半角スペー ス区切り) · ITEMI ~ITEMIO = 独立変数のラベル(複数変数を指定していた場合は半角カンマ区切り) · TITLE = タイトノレ 入力デ ー タセット及び変数 変数:AVAL(イベント発現又は打切りまでの期間),CNSR ( 打ち切り) 値定 一 ) 一 一 .ー |一 (一 園 | 出力デ ー タセット及び変数 伊ごタ右下 己TD= Iこ指定した値 変数:解析結果の表示に必要な値 (固定値) 闇ずh る頻度集計をForest Plotにて表示 I安全性デ} タの解 岬及びS.AElr. の り Aあ 係 関 果 因 理 組 、 : ] 析 調 象 集 団 、 AD E+ A » �o マクロ名: All TEAEs マクロパラメ ー タ: · COND = · GRPI = · GRP2 = · GRPI LABEL = · G�2 L入�EL = 集計対象とする有害事象の抽出条件を指定 投与群l 投与群2 投与群lのラベル 投与群2のラベル 一一一一-·-··・ ・-一一一一-·····一一一 ・ ・·---······---···-···-···-・ ・---一一·-···・ ・···-······-一一一一一一一一一一·---··-・-- a H H 353 H H
· OUTD= · TITL E= 入力デ ー タセット及び変数 (固定値) 出力デ ー タセット及び変数 (固定値) 出力デ ー タセット名(レポ ート出力直前のデ ー タセット) タイト/レ 変数:USUBJID(ユニ ー クな被験者番号),AEBODSYS (器官分類), AEDECOD(基本語) デ ー タセット:OUTD ーに指定した値 変数:解析結果の表示に必要な値 マクロ名: Calc_Freq_AE問団 マクロパラメ ー タ: · TRTG = · P OP = · TOTAL = -別D = · OUTD= · WHERE= 指定例) %Cale_Freq_AE別TE (TRTG=TRTOIP, P OP=RANDFL , TOTAL=Y, 町D=ADAE, OUTD=TEST2, WHERE=); 投与群(文字変数) 解析対象集団の変数(”Y","N ” が格納された変数) 投与群の合計列の出力要否(”Y ”,明” を指定) 入力デ ー タセット名 出力デ ー タセット名(レポ ート出力直前のデ ー タセット) レコ ー ドの抽出 変数:USUBJID(ユニ ー クな被験者番号),AEBODSYS(器官分類), AEDECOD(基本語),ASEV(程度) デ ー タセット:OUTD=に指定した値 変数:解析結果の表示に必要な値 韓醐�'の哩拠に闘す巷頻度銅像劃ぱ義示顕挫栓ヂ日ダ望号解折対象集団‘.�組+粗削 入力デ ー タセット及び変数 (固定値) 出力デ ー タセット及び変数 (固定値) 表3.3.lのSAS マクロプログラムについて、 図3.3.1に示した構造を適用して得られたスライドを 図3.3.2に示 す。 この出力結果では、 各スライドの背景用画像ファイルを事前に作成し、 ODS POWERPOINTのbackgroundimageオプションに画像ファイルのパスを指定している。 図3.3. 2 ODS POWERポイントを用いて作成したプレゼンテ ー ションスライド ・ ・ 6盈診 Title of Contents 8llal'鋪固......句”四 ..... 1.Demogr温.phics and Baseline Charac晶.eris討cs 2.附mary E儒闘cyEnd抑ints 3.Secon•ry E冊。acy Endpoints 4.0ther E帰国町ノSafety Endpoint屠 前除制御開園田園泊圃@属喝陣., ....圃, 354 . 司陶.””・・...明・・掴喧圃
Demographics and Baseline Characteristics
五2 2遍 正 由一自一由曲一、 留 億四 S晶,,圃 L
時
ι 一 一
旬. "'畠置••車ec-m
100
••·• u.n
30
酔
「
Pl.c岨栂
Tot・z
回E句掴‘白血c-m
Pl4C凶栂
Total
ZOO
国柑.o
H.52
53.$
100
....
.....
Z曲目.26
co.o
30
4i盈l>
国岨且i/.て面 ア 五ー品川
d一 一
- '
••·•
...o
19
••••
....
21,6S
33,ZO
」ー 噛品躍世!
....,園田’
79
"·'
53.0
••.•
7’
且eobol巴岨皿曙世曲
s.s曲目.o 22.日Z6,9S坦.10 n.,
100 2官.n
5,701 18.2 22,70
2曲目.s1
,.m
10.0
Demographic:s and Baseli帥Characteristics
Jl,8
2.2.•• 27,50 u.,o n.e
1『O I 10.0J
U2 I U.OJ
開。
J1 I n.o,
69I &’・01
4
2 I .....
55 I 27.S,
極通6つ
田I z量.O)
JO I Jo.o,
US I 12.•』
124 I回.町
..
白rro1問。創曲四甲叫岨
...
3’I 3’.01
J8 I JS.OJ
R器障le
48 I t8,0J
3’......日, ......
明暗闘
46 I Hi,O)
>• I 54.0J
45 C 45,0)
18I 18.0J
21 I 21.01
...
-
!
。
。
Placeb
,,-•
�· '
l 竺旦竺壬金型乞翌担竺努乞三
a・
割E
.
官= ,::
.
u,噂噌-,,r
-- -.,
.,.r
.
”
掴
l:ll!ii!
伺ゅー,
.
. .・ー
,.
国
国
・.,
掛咽ー--白由l
「
跡出国
。
@
10・
0
2 0
..・
••
15
@
Z帥
。
z。。
・0
23
.
・-
100
rj
6量量b
Life Table of GU [FAS]
ABC-X閤
’伸,.i '
.
l
司自画白-個目閤・all:IIICI詔・...回・・a
4亘量怪
。 Placebo was not con罰nned.
,.,
'
'J.
事,.
-色調園田園阻-匙...喝掴町U爾・・e
岡田 』咽四回"・c,,o.岨蝿
6孟量怪
was間耐nned
一一一一一
.
Superiority of ABC-XXX t
l量I 19,剖
l6l I 80.51
・・
. ..J
/’”_
与
Cu『nulative Incidence of DU [FAS]
109 I S4.5J
7’t 79.0J
田両
干
制
一一一一一..
91 f 45,51
55 I ••••>
Cumulative Incidence of GU [PPS]
gas-au-a,a曽aaE。
,aZE--e
I面
〆・
d ・.,.1
'
113 I S6,51
前院副・岡旬画館副旬・a・・『掴句凶薗・.・
a - a - a s
2・
・・ga習a
-m 網 ” - E
.
噛岨
'"
一 ”_ ,
,.1
-
130 t日...
Gl I 61,0J
82 I 02.0J
魁。
町田世間・四
咽,_・前.,.cm:旬
10 I JS.OJ
6日l 68,0)
U I 52,0J
Superi町ity of ABC-XXX t
Supe同州ty of ABC-XXX to Placeb。糊S 回帰nned.
76 I 38,01
JZ I JZ,01
62 I日,01
llale
6孟量』
fGU [FAS]
S8 ( 2,.0,
76 I 76.0J
S9I 39.0J
1*""関田儒副陣・a畑a・m・-司,祖国・・-.
。
通事面
25.0c-・4噌岨61 161,刷'3I日.叫
Hift<・・c2>.o
a. pylori •••回t1岨Po51tlw
Cumulative Incidence
J
時領軍
.. ,軍書...
臨1 I同m•21
宮出揖曲C宙開包帯叫醐
d孟診
一手V骨晦噂
輔
llhlc- -‘...
融
島
ec-ー申
面.
@悶..固Z
一一一
4回
10・
J88
‘。。
?’‘
相
.
..
78
‘
0
20
一
o.o
4,6
1・
41
u.,
22
11
n.z
@
32
同24,9
•
14
37
49
•••
8.l
2’..
.,.o
輔E帥..
長
一一笠一竺長
� 一つ
型
0,0
o.o
1.s
10.s
H,O
r,,4
6,’22,4
n.2
o.o
4.0
1’.:z
••••
100,0
so.,
•••
U.6
39.5
61.7
•••••
岨
,
司直圃島開園田恒-由圃ー園町園町U田島国
355
司幽“,...園・・-・・・...酬明V岨掃旬.‘’
・・・
oe
】F
”
。。
ω00
。。
.
H
崎駅
0
0 0
-
4司
,as es--
g胃腸邑
.zza
孟
=
.
HHff
自
•
宮
司
:
:
C
”·
,
i
fe
qq"u:n•q
f
nl
u
u
JJ
5
悶
�!
霊
G
§
s l i l ii E
G !l G § G &
§ § 9 § § §
l
G
§
||| i
iit: .. , 1U
言三
i i
叫
Eゐ .
i�
ゐ
Ill
・、
.電
-ロ
g
fIfI
cllllllll
.
J
置{
I
R
I I
。
C
、o
C
!!!!;
;
nn! �@ 。...
亙苛
C
・
0h
nu
HH
”
”ω ・ ・.・‘・’
... -向”
・。白
・”..。
温
� �
4·· 1 !!!!·�·r!.ri!Jl-1-!
� �
a---eEEEMM‘
SS EE--BM‘
ω印。
0
事
匹g
旨g
E
Eaag e
0
リw
0
m’
M
,..
E-
N
...
m-
e
e
-
- ・
。 。。
】Fa ”
.
” 。
・
・ -
Jw
ωmv ・
a hw ・
M
ぃW M・hw
・J- ・
mwH
・
a m・細
川伊
・MU
-
-】Fe-
ee
”。AU
-
-”。
。
.
。
o ・
・ ・e
e
”J場 。
・a ・
吋 】F
N
・
hwmw
制制】F
・
・
・ 吋
-m NM・
叫w
mF
J司MM M H ・
M陶mw ωM
・m・
J唱。
am
-
-陶
】F
・mwa -
o
-胴
S!UqUUHE E害
u 宮8 n 2書富量S � !H 5
&Eliii§i&!G&&§ii§Ji
o-
・
mψ
I""'
ωa
e
。
”
。6
。
”。
一・0・
品
。。
・
”
- ・hw 】F
・
」司恒ω
。
-m
”
ω4 HU
J噌J噌”
- ・
-
u
ω”
。
・a 】F
“
-
.
” ・
-u
・ 凶e
吋- 吋
・
au司
o
。 。
- 。
・e -
.
。
・
4 mw
” 】F
・
・J『 ・
。 一w
”
Mm抑 制い問
・
吋”
】F
・
・・
・
・ω
一w
-
-m’M
w
@ 日w-
w- -
a・
--
ao】F
-ew@
@
・
。
e
e 】Foe
N
Noe
亡診叶曲
F
sa ocq 〉畠
]
‘e・・・・・・・
uw
噌
lli:l巴�o:l;:;;.
”
。。
”0・
。
。
品
。。
-
Hbbne-
。
。
】戸
。=出:: ..:. o ti e s:
E @U Fza cc可匂ω
4亘量』
All TEAEs
a対照
叩叩
au
,wo
u
�拘・
411
.噛瞬担嘘・
'"°'
l(&Q)
’·舗
m回毎帽・
・鍋a
)Cltl)
,・a・
・a
le.cl>'
Jffm
.-\Q
.“.,
'""
..包.
”幽Odla
m・-事・..回.... .... ・修道。
・"" ・鍋a
凶,
馳園田
眠..,
..
s・"
・...
”..
一
出
..
I・m
快蘭雌..
-
ぺu
,u
n,n.,,川2阻旬川町
一’・H同……t "例
..
也檎..園山岳町前園&伽a・・W.o:>
.”嗣嗣
山
‘a
.”a包-
一回
11 1Al
41・・・
-
j”凶
•f .. IJ
"
Iばensity of TEAEs by Pr・伽γedTerm
6亙診
DID.I»
111,C・
『・
I附ensity of TEAEs by Preferr叫Term
山
DCH,U引町
-
d亘益
町山町山町山
一……--…
"・......,
,,同
・・M
H岨
M叩
一………
・
・
ー
….制
園風
一………,
a”“・
一………
刷
寧踊a・
.,
抽由開園由回国@問問E胸囲
.....
" M
・a附
叩凶
l隠malt
Intensity of TEAEs by Preferred Term
,1 ,.白
司旬...・R鋪鴫倫·-,崎山-
一……MIST.ti
-
I l C.ll
三翠翠至宝亙三豆警護土空翌二3護室三忍窪EJ
一…町一…一一魁t叫
事E__.�
I
f苧問
時:!
一山山町川町山’
山
・・..
一一.・,……
醐
_.,
・・・,t,
………山刷
司創...”・”“・a健・,camp..,u司険制
E一一回
:二主塑智
d吾診
しl2:'!田笠宮ふい-竺空回L虫垂
s.二盟主ミミ護室口
一向田町一 ω叫引・a…一
司2・ 抽ー
輔自山由
Intensity of TEAEs by Preferred Term
”
‘”・m・・-a圃’同凶圃困
6孟み
じ込盟理殴Fームぷ塗室主ナ残雪要三宝穂三翠駆j
一 ‘’t”….....,…・,
…叫崎山
幽
.. ",句n "'·" 川町
一………,
由一回一一………
四
.勘師四田園@甲山岨
3.4他のソフトウェアとの機能比較
参考までに、 同様の集計を統計ソフト R (主なノf ッケ ー ジ: ReporteRs )で実施した結果の抜粋を、
SAS による方法との相違点と合わせて紹介する。
357
① SASでは解析結果をデー タセットに出力する機能が豊富であるため、解析結果の二次利用が容
易である。 一方、Rでは解析結果の二次利用(特に解析結果をデー タセット形式にて出力) に
時間を要する場合が多い。 この点は、 解析結果を表形式で出力する際に顕著な作業効率の違い
となる。
② SASのODSPOWERPOINTでは、 既存のPowerPointファイルやPowerPointテンプレ ー トの読
込み ・ 利用が出来ない。多くの製薬企業ではPowerPointスライドの形式が決まっている場合が
多いため、スライドのスタイルを整えるのに困難を伴う。 一方、 Rでは既存のPowerPointファ
イルの利用が可能であるため、 スタイルを整える必要がほとんどない上、 既存のPowerPoint
ファイルにあらかじめコンテンツを含めた上で(例:治験デザインや意思決定フロ ー)、 解析
結果をPowerPointファイルへ追記することが可能である。
図 3.4.1
統計ソフト「R」を用いて作成したプレゼンテ ー ションスライド
d盈診
...皆純白崎&句鎗留民,...
6孟話怪
Dem勾raphlcs and Baseline Characteristics
盟加一
迎剛一
旦盟問一
抽.S.l't圃醐健岨圃-・... -国
Demographics and Baseline Characteristics
施E包...
Ase (y田,)
Akohol C<>mw,自姐
BM!両町·2)
白血血g c..鼠Z制国
院町lorilnl1,m叩
°"凶"
T凶施氏。Consumption
cat句”,.,
申・
・-恒
Min
65<=
<6S
Y蝿
No
Min<=-<2SO
2,0申
ー〈噛凪
y.,
申官
No
P岨
N匂貿信時
ゐ血lo
p.匂温血
Y四
Plam・
(o-1踊
72r720l
28 '28.0
31 '31.0
.o
3
61 '61.0
38 8.0
62 62.0
46 46.0
,. '4.0
S2 S2.0
48 '48.0
18(18.0
82(82.0
(o-lOOl
70(70.
30 30.0
24日'4.0
76 76.0
3'.7 7.0
.0
32悶2.0
68
45 45.0
!15 55.0
61 '61.0
39 39.0
21 21.0
79 79.0
曲岨,
”一。
凶
6盈〉
Cumulative lnciden関口f GU[FAS)
“.,>曲、
• S1耳障riority of ABC-XXX旬Pia回初was contin田弘
Y
。】
(o142
・
曲目
曲S
14S
76
124
ヲ0
130
91
109
113
87
39
161
,,,.
α踊穆町 山...
6盈〉
也事..・-掴
問
.掛圃
+偽申
刷叫白均
穏旬 血
ω
醐
358
mnim
山一一
舘諸官認
。0 6
No
ABC-XXX
両旬dal'tmma車雌圃
由一一
6孟量〉
Life Table of GU [FAS)
G四UJ!
ABC-XXX
Pia田b。
95怖Cl
Lower U.J!監r
。。
0.0
9.0
0.2
21.3
5.5
36.7
13.1
96.5
49.9
0.0
。。
14.4
2.9
39 2
18.8
62.4
35.5
100.0 100.0
Tl皿e At Risk E四回Censor
怖
。。
。
100
。
。
4.6
20
4
76
100
13.4
10
41
49
200
24.9
60
25
15
300
73.2
77
。
400
23
。。
。
100
。
。
8.7
14
8
78
100
29.0
37
200
40
23
49.0
49
19
300
32
100.0
44
。
400
56
T田t
GU
DU
6盈〉
随唱UCL
。畠
0.73
ー.....トーーーーー
044
。届
0.73
Ger幡町
ーーー・トーーーーー
0.43
。甜
073
国a
ー.....トーーーーー
0.45
OIi
0.75
比円相3脈抱d回
・一寸・一一一
0.44
0.26
0.73
C由同Cor町制聞
・--ートーーーーー
0.44
0. 26
0.73
刈回附句糊Jllip伽
ーーー・トーーーーー
0.43
。昂
0.72
Tot施氏。Cor富也叩"""
......・---
。輔
。畠
0.73
’・
.,
.
円盤ebo
同開l
・0('20)
田畑町噛
’開
6(00)
7(70)
7(7.0)
...‘
R偶}
"I"�
由"'°"
。。聞甲•no制
SWB.LRGFII医
""留TDIG
岨拘留凪-
u峰R R島町四割TfSTA61拡拓也凪
雌抑制幽
判事司
0(501
•1 a町
'"句
6(<0)
4(40)
'"OJ
1122時国
師UIB由
...田克巳問視,ta官TRACT闘RCTDl
’3 rEAE τ..ーやーョ,_叫,.,.,、明、も,f・e
M臨長四
唱
・(40)
町岨}
.,.町
畠(60)
6(6.0)
" E叫
6(60)
空当盟
内,e
A’
Gen:箇
卸由
BMl
BMl
』'"'刷出醐
見W旬t駐在-
。曲咽Q踊U噂掴
c.,,蝿Cu国"'四
抽温凶α帽明世創
A匙誠湖Consuto師、
T信雌四曲聞rot剛
T"施醐Consuto畑
随解.. ...
鍋田,e縮a
鎚曲
Fm曲
隊n<a-<25
2(,0)
<(40)
'"句
2(,0)
2(20)
""'加
崎事同
res
陶
総量S
馳
”B
、t隠
S溢-w他A巧11!A副
一
。帥
喧
喝
.
.
.
一
一
一
一
一
一
一
一
一
一
一
”
HR
0.4・
箇向島L且
026
創吊UCL
0.73
D.<2
a弱
@宜
0.国
0,搭
0.49
。“
0.19
。“
0・1
081
。且
0.1‘
。弱
023
021
014
029
。開
028
021
0.19
0.18
022
028
0.17
。曲
0.31
0.76
旬絹
OJ
124
0.69
。且
0.92
。飽
1朗
on
1.49
a眉
。田
。鋪
自由圃抽同司-圃薗晶画面司園時凶圃恒・4
�
.
E盛田町
°'瞥姻
島鍋d
M<曲臨
0,,官官狙
HEADACHE
C吃別町宮内mON
SWELL町。PACE
vo,町田。
百曲面旬開園町園田圃揖k圃E国司圃明U田島国
4長主怪
Intensity of TEAEs
一
一
一
一
一
一
一
一
95拍Cl
Lower
UJ!芭r
15.2
32.5
34.1
54.3
79
22.4
15.2
32.5
To旬』
100
100
100
100
95%CI
Chl-s!jua腔Te剖
Lower U.J!陛r Chis!!•
DF J!:v&lue
-8 2
1
-33 8
8 978
0.0027
1.7
・19 7
2.122
1
0.1452
ε
一
一
ベ2四
�·’‘
..‘
。。‘
2四
20‘
2$c,.c鍾飽
PTN-
"'’‘
..‘
ー”‘
Dlff.
・21.0
-9.0
No
77
56
86
77
画担由同国司置圃由圃白園甲町凶副詞
。慢...
�
円臨調
岡町包岡田町...也
GrouJ!
ABC-XXX • Placebo
ABC-XXX - Place!拍
き笠型畳
官歯車白R園田園E圃揖包圃也直司園司胞団副d
AIITEAEs
Y回i弛}
231お.0}
判【·44.0}
14{14.0}
23 (23.0)
Subgroup Analysis
筒唱LCL
I
Gro112
ABC.XXX
Pl即時。
ABC-XXX
Pia田bo
.
HR
相
Thedi島問回目戸可0血0由。fDU闘s not s包.tis世田Uy SI伊泊C副
DU
0.44
。帽圃
Thedilli町-ence白戸。portio田of GU W描S旭国tically significant
•
GU
ー.....トーーーーー
C樹首恒le
•
T田t
Z凶車白岡園町冨圃由圃喧由圃白Z司田・,a量国掴d
Covariate Adjusted Analysis
6孟量p
Proportion of GU/DU [FAS)
,s
""『r・e·・,.,.・,,..,..釘,_,.,,...・4
Tf
主
信V明電E
0,宅nil
勘(lid
抽:xltm1:e
""司罷
ABC.JC回
“戸·田B
0 ',4].o')
lJ
151,
••
4 ...
11
’B
7
ョ,
I IO
I1.0
5 5.0
l ,.,
2 'l.O
I 1.0
''
’E
33.0l
11.0\
Ptace・-
tn-1副
.. 2 '42
21 1.0
1919.0
7
l .0
・4
。
4・4
' .0
’10
。 。
...
・・0
''"。
。。
‘ ..
n
2
m
.
oco.m
司直・白開園田園困圃茸民圃晶画司園町出直咽
4おわりに
本稿では、 SAS の ODS POWERPOINT 及び ODS LAYOUT を用いた PowerPoint ファイルの作成方法
を紹介した後、臨床試験における結果を解析速報として報告する際のプレゼンテ ー ションスライド
を効率的に作成する方法として、 SAS プログラムによる解析速報(プレゼンテ ー ションスライド)
の作成を提案した。 その中で、 報告書形式の解析図表を作成する SAS プログラムに、 PowerPoint
ファイルへの出力処理を追記するだけでよいことから、 解析結果の 一 致性も保証されると述べた。
359
また、 PowerPoint ファイルに解析図表を直接出力することによりマニュアルで、の転記・貼付作業の 回避が可能で、 あるため効率的である。 なお、 統計ソフト「 RJ を用いて同様の PowerPoint ファイル を作成したが、既存の PowerPoint ファイルの利用が可能であるという利点がある 一 方、解析結果の 二次利用に時間を要するため、 SAS に 一 日の長がある。 今後、 ODS POWERPO町T で既存の PowerPoint ファイルの利用が可能となれば、 事前に治験デザイン等の解析結果以外の内容を含む PowerPoint ファイルに解析結果を追加で、出力することが可能となるため、 さらなる機能追加が期待 される。 連絡先 naoki. voshida I (@takeda.com 参考文献・引用文献 ・ Jane Eslinger. (2016). The Dynamic Duo: ODS Layout and the ODS Destination for PowerPoint; Available at htto://suooort.sas.com/resources/oaoers/oroceedin!l:s I 6/SAS5443・2016.odf [Accessed I July 2017] • Amber Carlson, Amelia Stein, Xiaobin Zhou. (2016). Proc Repo此,the Graph Template Languagβ,and ・ Available at htto://analvtics.ncsu.edu/sesu!l:/2016/RV-135 Final PDF.odf [Accessed I July 2017] ODS Layouts: Used in Unison to Create Dynamic, Customer-Ready PowerPoints; Tim Hunter. (2016). A Second Look at the ODS Destination for PowerPoint; Available at hはo://suooort.sas.com/resources/oaoers/oroceedin!l:s l 6/SAS3801-2016.odf [Accessed I July 2017] • ・ ・ Tim Hunter. (2013). A First Look at the ODS Destination for PowerPoint; Available at h伽://www.lexiansen.com/wuss/2013/143 Paoer.odf [Accessed I July 2017] 吉田早織,平井隆幸,叶健,魚住龍史. (2015). ODS POWERPOINT の活用: SASからMicrosoft PowerPoint へのエクスポ ー ト; Available at htto://www.sascom.io/download/odf/user!l:fouos20 l 5 D・04.odf [Accessed I July 2017] 高浪洋平.(20日). SG プロシジャと GTL によるグラフの作成と ODS PDF による統合解析帳票の 作成; Available at htto://www品.scorn.io/download/odf/user!l:fouos11 B・19.odf [Accessed I July 2017] 以上 360
レガシ ー デー タ変換等におけるトランスコ ー ディングの問題 に関する考察と提案 0 山崎 文寛 l 、 高浪 洋平 l l 武田薬品工業株式会社 日本開発センタ 一 生物統計室 Considerations and Proposals on Transcoding issues in Legacy Data Conversion Fumihiro Yamasaki 1, Yohei Takanami 1 1Takeda Pharmaceutical Company Limited 要旨 新医薬品の製造販売の承認申請時電子デ ー タ提出におけるレガシー デ ー タ変換時のトランスコ ー デ イングに関する問題を整理し, 医薬品医療機器総合機構(PMDA)の規制要件に合致しないデ ー タを検 出・変換する方法を提案する. , 文字セッ キ ー ワ ー ド:トランスコ ー ディング, セッションエンコ ー デイング, 符号化方式(Encoding) ト(Ch釘acter Set), ASCII, Shift-JIS, Wlatinl, UTF-8 , 電子デ ー タ提出, 統合解析, レガシー デ ー タ変 換 1 はじめに 日本では, 2016 年 10 月 1 日に新薬の承認申請を行う品目について PMDA への電子デ ー タの提出が開 始されたが, 3 年半の経過措置期間を経て, 2020 年 4 月 1 日より提出が義務化される予定である. その 電子デ ー タの提出対象となる臨床試験及びその提出形式等は承認申請時の電子デ ー タ提出に関する実 務的事項について(平成27年4月27日付け厚生労働省医薬食品局審査管理課長通知, 以下「実務的通 知」と記載)等で述べられている. 提出する電子デ ー タは CDISC 標準に準拠する必要があるが, 国内外 で実施される臨床試験の電子デ ー タ及び関連文書の作成に関わる SAS プログラマは,それらの作成環境 にも目を向ける必要がある. セッションエンコ ー デイング(SAS 起動時に適用されるデフォルトの符号化方式)はプラットフォー ムに依存する. 例えば Windows の日本語環境では Shi食ーJIS, Windows の英語環境では Wlatinl であり, SAS プログラマが符号化方式を指定して SAS デー タセットを作成しない限り, セッションエンコ ー デ イングが, 作成する SAS デ ー タセットにそのまま適用される. 過去に国内外で実施した臨床試験の電子 デ ー タ(レガシー デ ー タ)を PMDA に提出する際, 英語以外の言語が含まれる場合は, 実務的通知等に 、 従い英語に変換する必要がある. 変換の際は, セッションエンコ ー デ イングが電子デー タの符号化方式 と一 致している SAS 環境を用いて言語のみ変換するか,SAS の Unicode サポ ート環境を用いて言語だけ 361
でなく符号化方式も UTF・ 8 等に変換(トランスコ ーディング)する方法の 2 通りが考えられる. 実務的 通知に従い PMDA から 統合解析 (ISS/ISE)に関する電子デ ー タが求められたが臨床試験ごとに符号化 方式が異なる場合や電子デ ー タを使用する社内の解析環境( 例えばグロ ー パルで、 統 一された SAS の 実 行環境や 統計解析システム等)が特定の符号化方式にしか対応していない場合には,後者の方法を用い る必要がある. UTF-8 は英語圏だけでなく多くの国や地域で使用される言語に対応している符号化方式 であり,プラットフォ ームに依存しないため,業種を問わず幅広く利用されている. SAS の Unicode サ ポ ー ト環境を使用することで, レ ガシ ーデー タを処理する際に その符号化方式に応じて適切な対応を行 えば,英語以外の言語で、あったとしても文字化けや文字切れを避けることが可能である. 本稿では,文字セット及び符号化方式に関する基本的な情報を整理するとともに,主に レ ガシ ー デ ー タ変換時に発生するトランスコー ディングに関する問題について考察し,PMDA の規制要件に合致しな いデ ー タを検出 ・ 変換する方法を提案する.さらに,統合解析用デー タの作成等を目的として,位協-JIS 及び Wlatinl で作成された SAS デ ー タセットを効率的に UTF・8 にトランスコ ーディングする方法を提案 する. 2 文字セットと符号化方式 コンビュ ー タ上のデ ー タはピット(bits, binary digits)と バイト(bytes)で構成される.ビットは情報の 最小単位で,” 0 ”と ” l ” の 2 進数である.バイトは 8 ピットを 1 単位としたものである.文字セットとは, 「あJ 実デ ー タ上で表現するl文字ごとにユニ ー クな非負整数を割り当てたマッピング表である.例えば, の Unicode 値は 「U+3042 」 である.このように文字と数字の 個々の対応をコ ー ドポイントという.符号 化方式は,個々のコ ー ドポイントをコンビュ ー タに格納する方法を定義したものである.例えば,Unicode 値の「U+3042 」を UTF・8 で符号化すると「OxE3 Ox81 Ox82 」の 3 バイト列,UTF-16 で符号化すると「Ox30 Ox42 」 の 2 バイト列となる.このように,実デ ー タ上で表現される文字は,文字セットと符号化方式の 組合せによって構成される. 表 2.1 に, SAS デ ー タセット作成時に主に使用される文字セットと符号化 方式の関係,符号化方式の SAS で、の指定名及び最大 バイト数を示した. 文字セット 符号化方式 JISX0208 Shift-JIS EUC UTF-8 UTF-16BE UTF-16LE Code Page 1252 (Windows Latin- I) Unicode Extended ASCII PMDA への電子デ ー i i:制で指定す斡称 f短縮名1 shift-jis(司 is) euc-jp (jeuc) utf-8 (utf8) utι16b utf-161 wlatinl (wltl) SAS 上の 最大バイド数 | 2 4 4 2 2 表 2.1 文字セットと符号化方式の関係 タ提出に係る規制要件は,CDISC 標準に準拠することだけではない.文字セット に関する要件は, SAS プログラマが レ ガシ ーデ ー タを CDISC 標準に準拠した形に変換する際に,予期 せぬ不具合に遭遇することがある.本章では文字セットに係る PMDA の規制要件と,それに係る文字セ ット及び符号化方式に関する基本的事項を整理するとともに,実務におけるトランスコ ーディングに関 する問題について考察する. 362
2.1 PMDA の規制要件 日本では,PMDAが承認申請時 の電子デ ー タ提出等に関する技術的ガイド(平成 28年8月24日付け 薬機次発第0824001号独立行政法人医薬品医療機器総合機構次世代審査等推進室長通知により改正, 以下「技術的ガイドJと記載 )において,英数字等 のASCIIで 規定されている文字セット のみで構成さ れたデ ー タセットを求めており,PMDA Study Data Validation Rules (Vl.O, 2015/11/18)に非ASCII 文字及 び非印字可能文字(ASCIIコー ド の32から126 以外 の値 )が変数の値に含ま れる場合はWarningとなる ノレ ー ル( SDTM Rules Vl.O, RULE ID: SD 1029)を設けている. また米国でも,FDAが FDA Business Rules (Version 1.1, final ized M arch 2017)において,PMDAと同 ー のル ー ル(Rule ID: FDAB041)を設けている. PMDA, FDAともに符号化方式の指定はなく,PMDAについては技術的ガイドに従い デ ー タガイドに 電子デ ー タで使用した文字セット又は符号化方式の情報 を記載する のみで問題ない . なお,PMDA の申 請電子デ ー タに関する FAQ Q4・19 には申請時に提示すべき文字セット及び符号化方式の情報の具体例 として表2.1.1に示す内容が記載されており, これらのいずれかを使用しておけばPMDAと申請者側と で特に議論が必要となるこ とはないと考えられる. 【文字セット 】 JISX0208 [ 文字セット J JISX0208 [ 文字セット J UNICODE (U SC-2) [符号化方式J Shift-HS [符号化方式】EUC-JP [符号化方式J UTF -8 表2.1.1 申請電子デ ー タに関するFAQにおける文字セット及び符号化方式の情報の具体例 2.2 文字セット ASCII PMDA の文字セットに関する規制要件であるASCIIは, 7ビットで表現できる非負整数の Oから127 の数字に対して,大小 のアルフアベットや数字,英文でよく使用される記号等を割り当てた文字セット である. 0から31番目と 127番目は制御文字と呼ばれ,改行 ・ 後退 ・ タブなどの文字を含む. 32から 126番目は印字可能文字と呼ばれ,32番目は半角スペ ー ス, 48から57番目は 数字, 65から90番目と 97から122番目は大小アルファベット, これら以外は各種記号となっている. 参考までに,表2.2.1に ASCII の32から126番固まで の文字を示した. 32 33 34 35 36 37 38 39 40 41 42 43 44 45 4ι ” # $ % & * + (spac e) , 57' 53 54 55 S6. 52 58 59 60 61 62 63 64 65. 66 ワ く 〉 5 8 7 9 4 6 @, A B , 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 H K L M N p J R s T u V 92 93 94 95 96 97 98 99 100 101 102 103 104 1.05 106 八 ¥ e a b C d h f I _g 113 114· 115 116 117 118 119 120 121 122 123 124 125 126 112 ~ s V r u w X z t p q y 一 表2ユI ASCII 覧 。 。 47 。 49 50 51 2 3 67 .68 69 70 71 C D E F G 87 88 89 90 91 w X y z 107 108 109 110 Ill k ロ1 n 48 。 1972年に ISO ・646として 国際標準化された当時,既に様々な言語がコンビュ ー タで使用されており, 128から256番目を追加した 8ピットの拡張ASCIIが多 数開発された. これらの拡張ASCIIに対応した 符号化方式 が ISO 8859として標準化されている. ISO 8859は地域ごとに ISO 8859-1~ ISO 8859・16 (ISO 8859・12は廃棄) の 15種類が存在する. これまで の経験から ,英語圏の国や地域で作成された電子デ ー とが多いと思われるが,これらの タは符号化方式 として ISO 8859・1 (Win d owsLatin 司 1)を採用しているこ 363
電子デー タを PMDA に提出する際は,日本語デー タは含まれないものの,非ASCII 文字及び非印字可 能文字(ASCIIコ ー ドの3 2 から126以外の値)が含まれていなし、か確認した方が よいと思われる. 2.3文字セットUnicodeと符号化方式UTF-8 レガシーデー タの符号化方式には,それを作成したSAS環境におけるデフォルトのセッションエンコ ー ディングが そのまま適用されていることが多い. デフォルトのセッションエンコ ーディングはオベレ ー テイングシステム(OS)及び その言語環境(Locale)の組合せに よって異な る.表2.3. lに デフォルト のセッションエンコ ーディングを抜粋して示した. L部地d'\,,,QS _ ( en US) 皇民�.. US JP) I w訟dews I WLatinl(wltl) I s脳会JIS(司is) z/(;)$, I open ed・1 047 Latinl Shift-HS旦 EU C-JP等 表2.3. l デフォルトのセッションエンコ 9 9 I ibm 3 ・ ー ディング (SAS 9.4NLS ReferenceGuide, FifthE dition よ り抜粋 ) 例えば符号化方式が Shift-HSやWlatinlであるレガシーデー タについて, 符号化方式を そのいずれか に統 一することを考えた場合, どちら か 一 方でしか表現できない文字が存在する(例えば日本語は Wlatinlでは表現できなしつためどちら も選択することができない. Unicodeは, 日本語を含む世界で使用されるほぼすべての言語における文字に対して, ユニー クなコ ー ドを割り当て た文字セットである. Unicodeの最初の 128コ ー ドは ASCII と, 最初の 256コ ー ドは IS08859 ・1 と同一である. ま た,日本語 文字セットのJISX020 8をはじめ, 一 般的に使用されている多く の 文字セット との互換性がある. UTF・ 8は,Unicodeで使用できる 8ピットの符号化方式であり, ASCII に対応する部分は lバイト, それ以外の部分は2 から4バイト と なってお り, Shift-耳S及びWlatinl fこ 対してバイト数の違いはあるものの互換性がある. 一 方,Shift-HS とWlatinlの聞には, ASCII 部分以外 に互換性は ない. 表2.3.2に,UTF・ 8, Shift-HS及びWlatinlの各符号化方式の対応を示した. 符号化方式 文字セット 日本語表示 バイト数 m下一s ASCII部分 (英数字,記号) ASCII 以外 平仮名,片仮名 U nicode 。 Shift�JiIS JISX020 8 lノ〈イト 。 W1ati叫 Extended ASCII × lバイト lバイト 2~4ノ〈イト 3バイト 1 ~2バイト 2バイト 1 ノ〈イト × × 2ノ〈イト 3ノ〈イト 一 部4ノ〈イト) ( 一一一 一一 一一一一一一“”“一一” × lノ〈イト 2バイト 拡張ASCII の128番目以降 (泊,A,⑧など) 表2.32 . 各符号化方式の比較 漢字 グロ ー パル製薬企業は, 特にレガシーデー タにおいては, 英語以外の言語を含む電子デー タを多く保 有していると思われる. しかしながら,レガシーデー タの符号化方式ごとに, それを取扱う SAS環境を 使い分けることは現実的では ない. SAS9.4 からは多くの言語における文字に対応したUTF・ 8 がセッシ ヨンエンコ ーディング と なっているSAS環境(U nicodeサポート )が利用できるように な り, 符号化方 式がWlatinlやShift-HSであるSASデー タセットを同時に取扱う ことができるように なった. 364
Unicode サポ ー トを使用すると, SAS のクロス環境デ ー タアクセス( CEDA: Cross-En vironment Data Access)機能によって,読み込んだ SAS デ ー タセットの符号化方式が UTF・8 以外の場合は,自動的にト ランスコ ー デイングが発生する.しかしながら,トランスコ ー ディングによってI文字あたりのバイト 数も変化するため,必要に応じて変数の長さを拡張する必要があるが,変数の長さが格納された値のバ イト数に比べて不足する場合は, エ ラ ーが発生する.表 2.3.3 に SAS デ ー タセット読込時に各変数の長 さを 一 律で調整する LIBNAME ステ ー トメントのオプションを示した.このいずれかのオプションを用 いることで, エラ ーの回避が可能である. 基本構文: ふ j合 LIBNAME ライブラリ名くオプション〉 ”ライブラリのパス ” ; オプション: CVPBYTES=数字 ‘ 一一一一一 CVPMULTIPLIER=数字 :トランスコ ー デ イング時に各変数で拡張するバイト数を指定する.例えば, 「 CVPBYTES=5 」 を指定すると,変数の長さが 5 の場合は 10 に, 10 の場合 は 15 になる :トランスコ ー ディング時に各変数で拡張する乗数値を指定する. 例えば, 「 CVPMULTIPLIER=1.5 」を指定すると,変数の長さが 10 の場合は 15 になる 表 2.3.3 トランスコ ー ディング時に使用する LIBNAME ステ ー トメントのオプション 2.4非ASCII文字及び非印字可能文字の検出と変換 非 ASCII 文字及び非印字可能文字を検出するために, Srivas 旬 va (2017)を参考に検出結果を Excel フ ァイルに出力するマクロプログラムを作成した.本マクロプログラムの基本的な処理は, DATA ステッ プ関数の 一つである BYTE 関数を用いて ASCII 文字のリストを作成し,そのリストに含まれない文字が 各変数値に含まれる場合に非 ASCII 文字及び非印字可能文字として検出するようにしている.表 2.4.l に本マクロプログラムの実行に必要な各マクロパラメ ー タの引数を示した.なお,本マクロプログラム の詳細な処理内容は付録のソ ー スコ ー ドを参照されたい. マクロ名 .;. I : %Det即tNonPriASCII マクロパラメ日夕 I (DataFolder=, KeyVariables =, CVPMult=); !:検出対象の SA§ デ ー タセットを格納したフルパス(必須) !:検出結果とともに表示させる被験者番号等のキ 一変数(オプション) 」一一一一一一一一一j (複数指定の場今ょせ金三二三二三区里山-一一一一一一 . CVPMult i :各変数の長さを 一 律拡張するための乗数値(オプション) DataFolder KeyVariables _ 表 2.4.l 非 ASCII 文字及び非印字可能文字の検出マクロプログラム 本マクロプログラムは,セッ ション エ ンコ ー ディングが SAS デ ー タセットの符号化方式と同 ー の SAS 環境文は UTF・8 環境で実行されることを想定している. UTF・8 環境で実行する場合は,トランスコ ー デ イング(符号化方式の変換)によって変数値のバイト数が増加する可能性がある. そこで,本マクロプ ログラムでは,検出結果の文字化け及び文字切れを防ぐため,すべての文字変数の長さを 一 律で拡張す る機能を設けており,変数の長さに対する乗数値を CVPMult に指定することができる.例えば Shift-JIS 環境で 2 バイトの文字は, UTF-8 環境では最大で 3 又は 4 バイトとなるため「2 」を指定しておけば文 字切れが発生しない. 本マクロプログラムが出力する Excel ファイルは, デ ー タセットごとに シ ー トが作成される.実行結 果イメ ー ジについて, SAS デ ー タセットの符号化方式が Wlatinl の場合を図 2.4.2, Shift-JIS の場合を図 2.4.3 に示した. 365
自
d轟
1 OBS STUDVID
1 ABC-123
虫
霊ABC-123
昌
3 ASC-123
4 ABC-123
,t;.
自
5 ABC-123
6 ABC-123
7 ABC-123
目
B ABC-123
9
s.
D
C
E
:F
OBS MEMNA旺 NAME
出現JBJlD
2 ADAE
AETERM
ABC-123-1001-001
ABC-1空3-1001-002
AETERM
3 ADAE
5 ADAE
AET回M
ABC-123-1002-001
ABC-123-10ゆ3-001
7 ADAE
銀Ll;R凶
9 ADAE
AETERM
ABC-123-10巾3-002
AETERM
11 ADAE
ABC-123-1003 司003
AETERM
12 ADAE
ABC-123-1003-004
AE丁目M
13 ADAE
ABC-123-100出別
争4
Ill
I
ORGVALUE
De ected:まtrinc G聞di曲teVa!t且
t
ト凪斤ROPENIA (0.86 Mil..LE/MM')
SAKER S CY ST
ANEM弘
臣
INF ECTION IN OUTER EAR ( PLU S ORAN陀GE II:
D四MO-HYPODERM汀B O N L EFT WBIST
ASTH白唱IA
E
ODEMALOWER L且厄S
ODEMARK剃TFOOT
δ
'
。
図 2.4.2 SAS デー タセットの符号化方式が Wlatinl の場合の検出結果イメ ー ジ( Excel
宜
'3'
·4
5
6"
ι7
1'0
12
113
4
国
ファイル)
ミ�
u
ヒ
.ft
I"
r
OBS MEMNAME NAME
ORGVALUE
Ca dida幅Value
tr
D
n
n
武 田 te 盤盤
ADAE
A町"ERM 左足親指の傷感染
j g
騨: ー
ー
AETERM 好中球減少、(0.86 MD..LE/MM"3)
2 ADAE
鯵
ベ ーカ ー
ベ カ
寒胞
AETE RM
3 ADAE
AETERM 下肢のうすき
4 ADAE
下肢のうすぎ
AETERM 貧血
5 ADAE
貧血
AETEI司M ス7口イト言競障害
6 ADAE
スァロイト官郊を障害
AET回M 外耳感染夜
7 ADAE
外耳感染症
AE丁目M 右手の産主量
8 ADAE
右手の痘笠
9 ADAE
AETERM 左手首の皮膚皮下組織炎
左手首の皮局皮下組織炎
10 ADAE
AmRM 便秘
便秘
11 ADAE
AET自主M 衰弱
衰弱
12 ADAE
AE丁目司M 下肢
下肢の浮腫
AETEI司M 右足
13 ADAE
右足の浮腫
袋:
OBS STU VID t応担』BJID
D
百 ABC-123 ABC-123-1001-001
霊ABC-123 ABC-123-1001-001
3 ABC ’123 ABC-123-1001-002
4 ABC-123 ABC-123-1002-001
5 ABC-123 ABC-123-1002-001
6 ABC-123 ABC-123-1003-001
7 AB0-123 AB0-123-1003-001
B AB0-123 AB0-123-1003-002
9 AB0-123 AB0-123-1003-002
10 AB0-123 AB0-123-1003-003
官官 AB0-123 AB0-123-1003-003
t霊 ABC-123 ABC-123-1003-Q04
13 ABC-123 AB0-123-1003-0C叫
A晶
Eヨ
図 2.4.3 SAS デー タセットの符号化方式が Shi食・ns の場合の検出結果イメ ー ジ( Excel
ファイル)
一
A 列から順に,検出結果の l からの連番 ( A 列: Obs ),検出値が含まれるキ 変数( B 列及び C 列:
KeyVariables として STUDYID 及び USUBJID を指定),オブザベ ーション番号(D 列 : OBS), SAS デー
タセット名( E 夢lj : ME!\在NAME ) ,変数名( F 列 : :NAME ) ,検出値が含まれる 変 数の値全体( G 列:
ORGVALUE ),
検出値 (H 列 : DetectedString ) と
なってい.
る 図 2.4.2 では変数 AETERM において非 ASCII
文字がいくつか検出されている.また,図 2.4.3 は有害事象の医師記載名を 日本語で取得していた
変数 AETERM について全レコ
ー
ため,
ドで非 ASCII 文字とし検
て 出されている.なお, I 列の CandidateValue
非印字可能文字が検出される.
は後述する検出値の置換に使用する. DetectedString がブランクの場合は
続いて,マクロプログラムDetec削onPriASCII による検出結果について,該当する検出値が含まれる
変数値全体を , ASCII に適合
した値に変換するマクロプログラムを作成し
.なお,本マクロプログラ
た
け
る I 列: CandidateValue ) に変換候補の値を 入力し
ムの実行前に,検出結果( 図 2.4.2 及び 図 2.4.3 にお
一
てお く必要がある. 図 2.4.3 のように日本語デ ー タが含まれる場合, PMDA への電子デー タ提出におい
ては,実務的通知に従い「 JAPANESE TEXT IN SOURCE DATABASEJ 等を CandidateValue に入力する.
ー
タの引数を示した.なお,本マクロプ
表 2.4.4 に本マクロプログラムの実行に必要な各マクロパラメ
ー
.
スコ ー ドを参照されたい
ログラムの詳細な処理内容は付録のソ
�t;
マクロパラメ } タ
|叩叩l 眠No
L
(InDa句Folder=, OutDataFolder=, InExce!File=,
InExce!Sheet=, OutEncoding=, CVPMult=) ;
Lと EZ
ル三シ
fE
パ
2ス1 三坐主i
主坐盆 墾 �
Zけ 」坐
( 項
S唱曜
号笠
:_
_
S ー タセ トを 出
霊
_!且
空塑;曲叫堕
田空 艶型回昭空 控\
� _
一-一一-一一上 -�室
塾盤塾強笠候 の補企国
象 A デ追を百 三 記 二
主ッ
土 バ 費力
主主
f笠 型す
_
ファイ
たし
じ 室
!
i
;
CVPMult
i
る
フ
追 記
ル に
換 候補
お
る ート名 必
ファイ
たし
変変
曜 の を
悼須
)
化方式
換 の符
: 各変数の長さ
を 一 律拡張する ための乗数値(オプション)
表 2.4.4 非 ASCII 文字及び非印字可能文字を ASCII 文字に変換するマクロプログラム
本マクロプログラム
もまた,マクロプログラムDetectNonPriASCII 同様,セッションエンコ ー ディン
366
グが変換対象の SAS デ ー タセットの符号化方式と同 ーの SAS 環境又は UTF-8 環境で実行されることを 想定している. また, 変換後の SAS デ ー タセットについては, Outencoding に指定した符号化方式が適 用され, 各変数の長さはデ ー タ値の最大長に自動調整される. 図 2.4.5 に本マクロプログラムを実行した場合の出力結果のイメ ー ジを示したが,変数 AETERM の値 が「 JAPANESE TEXT IN SOURCE DATABASE 」に置換されていることが分かる. STUDYID usu 副ID 正田M ABC-123-1田1岨1 J 庄D区:OQ_ , J即ANESE TEXT IN SOUR庄DAT,組崎E Wound而氏当m 厄S回 J ABC・123 ABC・12引田1岨1 2 JAPAN白E TEXT IN SOUR(主DATABASE Neulroper首a ABC-123 ABC.・123-1田1-0但 1 J即1ANESE TEXT IN SOUR庄DATAB崎E 卸1ovial cyst ABC-123 ABC・123ト1002-0日1 1 JA抑制ESE TEXT IN SOUR庄DATA凱SE 何百観量h副司 ABC-123 ABC·・123-1四割胞1 2 JAPANESE TEXT IN SOURCE DATAB崎E Ana,翻租 図 2.4.5 ASCII 文字への変換結果イメ ー ジ(SAS デ ー タセット) 2.5 トランスコ ー ディングの必要性 PMDA への電子デ ー タ提出を目的としてレガシー デ ー タ変換を行う際には,SAS デ ー タセットの構造 を CDISC 標準に準拠するように変換し, ASCII の 32 から 126 番目に該当する文字のみを格納すれば規 、 制要件を満たすため,必ずしもトランスコ ー デ イングは必要ではない.しかしながら,統合解析用の SAS デ ー タセットを作成する際や社内の統 ー されたシステム環境において解析を行う際にも, トランスコ ー ディングが必要となる可能性があるため,複数の臨床試験デ ー タを PMDA に提出する場合,社内の業務 手順やポリシ ー によっては,すべての電子デ ー タの符号化方式を 一 律 UTF-8 に統 ー しておくことも選択 肢の ー っとなる. 2.3 項で述べたように, 異なる符号化方式のデ ー タの読込時には自動的にトランスコ ー ディングが発生し, プログラム実行時のパフォ ー マンスが低下する可能性があることから, 結果とし て SAS プログラマの作業時聞の増大に繋がる可能性がある. 上述した状況を想定し, 符号化方式を UTF・8 にトランスコ ー ディングするマクロプログラム(各変数の長さはデ ー タの最大長に自動調整) を 作成した. 表 2 ふ 1 にマクロプログラムの使用方法を記載するが, その詳細は付録を参照されたい. マクロ名 マクロパラメ ータ InDataFolder OutDataFolder Outencod血g 3 : %Tra nscoding2UTF8 (InDataFolder=, OutDataFolder=, Outencoding=); :変換対象の SAS デー タセットを格納したフルパスを指定(必須) :変換後の SAS デ ー タセットを出力するフルパス(必須) :変換後の符号化方式(必須) 、 表 2.5.1 トランスコ ー デイング マクロプログラム 非 ASCII 文字及び非印字可能文字の検出・変換ツ ー ルの開発事例 本項では, 2 項で紹介した非 ASCII 文字及び非印字可能文字の検出, 並びにそれらの ASCII 文字への 変換をサポ ー トするツ ー ルの開発事例を紹介する.本稿では HTML アプリケ ー ション(HTA) 及び SAS を用いてツ ー ルを開発した.HTA は Windows 上で動作可能なアプリケ ー ションで,HTML 及び Java Script 等の機能を利用して手軽に GUI 画面を作成することができる. HTA の基本的な機能及び SAS との連携 に関する詳細は舟尾 ・ 高浪。008)及び高浪(2012 )を参照されたい. 367
3.1テストデ ー タ 本項では, 非ASCII文字及び非印字可能文字の検出・変換ツ ー ルのテストデ ー タとして,米国及び日 本でそれぞれ実施された 2 つの仮想の臨床試験から得られた, 有害事象に関する解析用デ ー タセット i l, 日本実施分は ADAE を 用 いる. また, 各SAS デ ー タセットの符号化方式 は,米国実施分は Wl ta n Sh ift-HSとした.なお,本 テストデ ー タ はCDISC ADaM OCCDS形式を参考にしたが,本ツ ー ル はCDISC 標準に準拠していなくても動作可能である. AESEQ J鐸哩:RM VSIJ軍基調ll I WOUND別FECTION LEFT BIG TOE ABC-123-1001・001 ABC-123-1001・001 2 NEUTROPENIA (0.86MILLE/MM3) ’ I BAKER s CYST ABC-123-1001・002 ABC-123-1002-001 I T町GLE OF LOWER LIMBS 2 ANEMIA ABC-123-1002-001 ... ... ... s'.f{Jj百四 ABC-123 ABC-123 ABC-123 ABC-123 ABC-123 ・.. 司民''""' 司益 ... ... ... ... ... ... 図3.1.1米国で実施された仮想の臨床試験で得られた有害事象に関する解析用デ ー タセット ADAE -.. �SEQ UTERM, snm菅ilD む間関E --. ABC-123 ABC-123-1001-001 1 左足親指の傷感染 2 好中球減少(0.86MILLEぶ伽八3) ... ABC-123-1001-001 ABC-123 ... 1 ベ ー カ ー 嚢胞 ABC-123-1001-002 ABC-123 ・.. 1 下肢のうずき ABC-123-1002-001 ABC-123 ... 2 貧血 ABC-123-1002-001 ABC-123 ... ・.. ・.. ... ... 図3.1.2 日本で実施された仮想の臨床試験で得られた有害事象に関する解析用デ ー タセット ADAE 3.2 ツ ー ルの構成 ここでは, 本ツ ー ルの画面・機能等の構成 につ いて説明する.本ツ ー ルの実行に必要なファイル及び 、 フォルダは表3ユlの構成で設置する.任意の場所に「実行ファイノレ.h匂」及びfilesフォルダを 設置する. 、 cod泊酔facr o.sasは, 表2.4.1 , 表2.4.4及び表2.5.1で紹介したSAS また,自le フォルダ に設置するTrans とめたものと なっている.検出・変換対象 のSASデ ー タセットを格 マクロプログラムを l ファイル にま 、 納するフォルダ,及び検出・変換結果のSASデ ー タセットを格納するフォルダは 任意のフォルダを指定 可能である.ツ ー ル 実行時に,_EXE.logがログファイルとして,_EXE 品S及びparameter.sasが実行時 の 一時ファイルとして, DetectNonPriASCII. xlsx が検出結果 ファイルとして, いずれもfiles フォルダに出 力される. 実行ファイノレ.ht a filesフォルダ :本 ファイルをダブルクリックするとツ ー ルが起動 :実行時のログ EXE.log ※実行時に自動作成される : 実行用の一 時ファイル (各SASプログラム EXE.sas を%削CLUDEステ ー トメントで実行) ※実行時に自動作成される :実行用の一 時ファイル( 画面から与えた情報を parameter.sas SASマクロ変数化) ※実行時に自動作成される 368
TranscodingMacro.sas 町DATAフォルダ OUTDATAフオノレダ 検出・変換, :非ASCII文字及び非印字可能文字の 符号化方式の変換を行うSASマクロ. 本稿で作 成した以下のSASマクロプログラムを使用 • DetectNonPriASCII • ReplaceNonA scii • Transcoding2UTF8 DetectNonPriASCII. xlsx :非ASCII文字及び非印字可能文字の検出結果フ アイル, また変換候補文字を入力するファイル ※実行時に自動作成される :検出・変換対象のSASデ ー タセットを格納するフォノレダ ※任意の場所を指定可能 :検出・変換結果のSASデ ー タセットが格納されるフォルダ ※任意の場所を指定可能 表3.2.l ツ ー ルの実行に必要なファイル及びフォルダ 続いて, 本ツ ー ルの画面を図3.2.2に示す. 白官官闘DdhlgS.串岡Tao! 非ASCD及び非印字可能文字検出 ・ 変換ツール 入出力ヂー脅フョ,JI,タ及びオブジョンを温風,て 店舗苛】ポ宮ンを?』'Jo,勿Jて.<JEさい ツ ー ルの入力画面 図3.2.2 画面からの各入力パラメ ー タとそれらの内容及び対応する SASマクロ変数を表3.2.3 に示す. 1 入力パラメ」タ 入力デ ー タフォルダ 出力デ ー タフォルダ 処理内容 Key変数 変換対象 デ ー タセット名 :対応する;$ASマクロ変数 概要 検出・変換対象のSASデ ー タセットが格納 間DATA されているフォルダ. 「 参照」ボタンをクリ ックしてフォルダを選択 検出・変換結果のSASデ ー タセットが格納 OUTDATA されているフォルダ. 「 参照Jボタンをクリ ックしてフォルダを選択 非 ASCII文字及び非印字可能文字の検出を _ Processmg 行う場合は「検出J,非ASCII文字及び非印 1:検出 字可能文字から ASCII文字への変換を行う 2: 変換 とともに符号化方式をUTF・8に変換する場 3: 符号化方式変換のみ 合は「変換J,符号化方式をUTF-8に変換す る 場合は 「符号化方式変換のみ」を選択 検出結果とともに表示するKey 変数を指定 _KeyVariables (STUDYID, USUBJID等) Datasets 変換対象のSASデ ー タセットを指定 表3ユ3 入力パラメ ー タと SASマクロ変数 369
本ツ ールの処理の流れを図3ユ4に示す.
人
百一豊
__J
畠
h
_EXE.log
、乏でー
ニー置
Dete氾tNonPriASCII.xlsx
(検出結果)
変換時
検出・変換対象
SAS デー タセット
変換後
SAS デ ー タセット
図3.24
. 処理の流れ
3.3 ツ ー ルの実行
本ツ ールはパッチモ ー ドで処理を実行する.
き, 図 3.3.1 l こ示す HTA アプリケ
ー
最初に「実行ファイノレ.hta」をテキストエディタ等で聞
ションファイルにおける SAS の実行可能ファイノレ(.exe)及び環境設
定ファイノレ(.cfg)のパスを SAS のインストール環境に合わせて変更する. なお, 環境設定ファイルは,
SAS (Unicode サポ ー ト)が使用されるように必ず「u8J が含まれるパスを指定する.
// EXE.sas の作成
MyText = MyScript.CreateTextFile(" ./files/_EXE.sas", true) ;
MyText.WriteLine ”( %inc "' + MyPath + ”韓日les¥¥pararneter.凋s'; ”);
MyText.WriteLine ”( %inc ’ ” + MyPath + ”器files型TranscodingMacro.sas’; ”);
MyText.Close() ;
P
// Shell 関連の操作を提供するオブ ジェクトを取得
MyShell = new ActiveXObject ”( WScript.Shell” );
II SAS (!) 亨筑ミ
MyShell.Exec("' C:/Program FileslSAS_9.4ISASFoundation/9.4lsas.exe ”
-CONFIG ” C :/Program FileslSAS_9.4ISASFoundation/9.4lnlslu8lsasv9.cfg ”
”
filesl EXE.log ” -nosplash icon’);
-sysin ”/
. 日 lesl EXE.sas" -log ./
図 3.3.1 HTA アプリケ ー ションファイルにおける SAS プログラムの実行部分
旬
本ツ ールの画面で実際にパラメ ー タを入力し, 検出・変換結果を出力する. ここでは図 3.1.2に示し
( 本で実施された仮想の臨床試験で得られた有害事象) をテストデータと
た SAS デ ータセット ADAE 日
、
して用いる. 最初に, 非 ASCII 及び非印字可能文字の検出を行う. 入力データフォルダ及び出力デ ータ
、
フォルダ をそれぞれ選択し, 処理内容として「検出 J を選択する. また, Key 変数として STUDYID と
USUBJID を入力する.
これらの情報を選択・入力した画面及び生成された parameter.sas を図 3 ふ 2 に示
す. なお, 本ツ ールは「 C:¥Test」に設置し, TranscodingMacro.sas を「 C:¥Test¥files」に設置した.
370
非ASCD及び非印字可能文字後出・変換ツーJI,
Iii
入出力デー宮7場Jし普及びオプジョンを週侃,て
店舗'ilポ空ンをlj•Jヲヲして<tc.さい
耳I el _CPATH = C:単Test;
制el _PPATH = C:半Test単f i I es¥Transcod i ngMac「o.sas ;
別el _Processing = 1
首let _INDATA = C:/INDATA/;
耳let _OUTDATA = C:/OUTDATA/;
別et _KeyVariab I e = %st r (STUDY ID USUBJID)
= ;
叶 JI別et _Datasets
図 3.3.2 検出時のツ ールの画面及び生成された parameter.sas
各情報の選択 ・ 入力後, 実行ボタンを押下することで図 3.2.4 に示した流れで処理が実行され, file フ
ォルダに DetectNonPriASCII.xlsx が検出結果ファイルとして出力される. 検出結果は図 2.4.3 と同 一 であ
るためここでは割愛する. 次に, 非 ASCII 及び非印字可能文字の変換を行う. 図 2.4.3 に示した検出結
果のファイルに変換候補の文字を入力したものを図 3.3.3 に示す.ここでは PMDA の実務的通知に従い,
「JAPANESE TEXT IN SOURCE DATABASEJ を入力した.
図 3.3.3 検出結果に変換候補の文字を入力したファイル(Excel ファイル)
汗
入力デ ー タフォルダ及び出力デ ー タフォルダ をそれぞれ選択し,処理内容として「変換」を選択する.
また, 変換対象デー タセット名として ADAE を入力する. これらの情報を選択 ・ 入力した画面及び生成
された parameter.品s を図 3.3.4 に示す.
,宮
, 印刷戸同盟盟関関側同州剛刷機酬;c1I
非ASCU及び非印字可能文字検出・変復ツール
よ
入出力デー宮7,rJ心§車びオプションを適訳して
【実行】ポダノを?リッヲして<tc.さい
マ
克I et _OPATH = C:半Test ,
耳let YPATH = C:単Test¥f 11 es単TranscodingMacro.sas;
%1 et _processing = 2 ;
耳lel _INDATA = 0:/INDATA/;
覧let _OUTDATA = C:/OUTDATA/;
耳let」山riable = ;
!%let 」Palasets
= ADAE
JJI I
図 3.3.4 変換時のツ ールの画面及び生成された paramβter.sas
各情報の選択 ・ 入力後, 実行ボタンを押下することで図 3.2.4 に示した流れで処理が実行され, 出力
371
デー タフォルダ、に変換結果の SAS デー タセットが出力される. 変換結果は図 2.4.5 と同 一であるためこ
こでは割愛する. 図 3.3.5 に変換前後の SAS デー タセットの情報を示すが, SAS デ ータセットの符号化
方式が Shift-JIS から UTF-8 に変更されており, 変数の長さはデー タの最大長に調整されている.
データセット名
ータイプ
メンパ
』 ・b
コ巳ニ./主 J 二./
作成田時
更新田時
データセット名
メンパータイプ
ヱンジン
千乍屍It 8目寺
J!事晴目E寺
保護
データ’包ツトタイプ
ラベル
データ表現
エンヨ - 同
INDAT白.AD白E
DATA
V9
2017/06/20 09:22:34
2017/06/20 09:22 :・ 34
保聾
データセットタイプ
ラベル
WINDOWS 32
データ義組
ヱンヨード
sh l千t-jis Japanese (SJIS〕
‘
2
3
4
5
6
7
費量
STUDVID
USUBJID
AE,主主Q
命ETE剛
命日克:coo
AEBOD割S
TR丁目千L
10
11
12
AESTUTC
AEENDTC
AESER
ぬES日
ABをL
4
まとめ
句包
9
タイプ
文字
文字
融圃
虫宇
文字
文字
主牢
士宇
文 字
文字
文字
士宇
長さ
7
16
8
100
25
52
1
10
10
1
8
11
ラベル
=� -
Stud y l d onti千 i or
山 、 1quo Sub J e t l d onti千 ior
肱 』 田bor
Toro r tho Adverse Evont
i
d
°
' o句" 目Do� 干o
� .� C!ass
Treat 田ont Emorgon� A na I ySI s Fl �
Start Dato/T;由. 0 千 白 d vorso Evo�
缶、 d Dato/Ti町. 0 千 A d vorso Event
Sor I ous Event
[ ntonSI ty
�=�����d
。
g�:l�
��=�m�
ー
1
2
3
4
5
6
7
急
9
10
11
12
置量
STUDV!D
胤 rn
� e:i
ぬETE剛
命日廷はD
角田氾DSVS
T官TEHFL
ぬ
A��;gi:g
自ESER
自民自
角田甚l.
タイプ
文 字
文 字
世値
士宇
士宇
主宇
士宇
文 字
文字
文 字
文 字
文 字
量言き
7
16
8
32
52
10
10
8
11
OUTDATA.白DAE
DAT白
V宮
2017ノ06/20 13:52:10
2017/06/20 13 :・ 52: 10
WINDOWS 32
ut千ー 意 Unicode (urF-8)
ラベル
"1
Stud y [denti千 i
仙 、 1quo S.』bJ oct d ontifier
柚』
Sequence血bor
rso Event
r
町』 ct 旬-T• : i知 , d 加To, 山
国 母 , V日V• an Class
dy
�.
y
s
i
s
Fla
Tr回 t
go
n
与
\ f s
r
n¥
��
� 千o干向 e: Fー8� t ��
Seri
! ntons I ty
、l;
i
=�
野
t� 1��
;
図 3ふ5 変換前後の SAS デ タセットの情報(左・変換前, 右:変換後)
本稿では, 文字セット及び符号化方式に関する基本的な情報を整理するとともに, 主にレガシ ー デー
タ変換時に発生するトランスコ ー ディングに関する問題について考察し, PMDA の規制要件に合致しな
いデー タを検出・変換する方法を提案した. また, HTA を用いて, ラジオボタンや各種入力フィ ールド
等から構成されるユ ー ザ ー フレンドリ ー な画面から SAS プログラムを実行する方法を適用した, 非
ASCII 文字及び非印字可能文字の検出・変換ツ ールの開発事例を紹介した.本ツ ールを使用することで,
PMDA の規制要件に合致しないデー タの検出・変換が容易に実施可能となった. PMDA への提出対象と
なった臨床試験における電子デー タにおいて, 日本語データが含まれる場合は実務的通知に従って適切
に処理されると考えられるが, 海外で作成された電子デー タにも, PMDA の規制要件に合致しない非
ASCII 文字及び非印字可能文字が含まれる可能性があることに注意しておく必要がある.
連絡先
fumihiro.vamas紘i(@,takeda.com
参考文献
Hui Song et al. (2016). T he Impact of Change from wlatinl to UTF・8 Encoding in SAS Environment;
PharmaSUG 2016; Paper BB15
Jing Gao (2015). Multilingual data support in Dataset-XML with SAS® Clinical Data Integration;
PharmaSUG China 2015; Paper 25
Donna Dutton (2015). Data Encoding: All Characters for All Coun甘ies; PhUSE2015; Paper DH03
Sridhar R Dodlapati et al. (2010). Non Printable & Special Characters: Problems and how to overcome 白em;
NESUG 2010
Abhinav Srivastva (2017). Reporting Non-Printable and Special Characters for Review in Excel;
PharmaSUG2017; Paper BB04
372
骨
M組合ed Kiefとr (2012). SAS Encoding: Understanding 出直 Details; SAS Institute Inc.
SAS Institute Inc. SAS 9.4 National Language Support (NLS): Reference Guide, Fifth Edition; Available
at htto ・://suooort.sas.com/documentation/onlinedoc/nls/
SAS Institute Inc. Changing language during a SAS session
h仕os://suooo目.sas.com/resources/oaoers/LocaleSwit疋hing.odf [Accessed 7 July 2017]
Business Rules ; Available
at httos://www.fda.gov/Forindustrv/DataStandards/StudvDataStandards/山m2005545.htm [Accessed 7 July
2017]
PMDA次世代審査・相談体制について(申請電子デ ー タ提出);Available
at httos://www.omda.go.io/review-services/drug-r官views/about-reviews/o・合ugs/0003.htrr吐[Accessed 7 July
2017]
高浪洋平(2012). SASとHTMLアプリケ ー ションによるCDISC AD品4形式の解析用デ ー タセット
を用いた有害事象の解析帳票・グラフ簡易作成ツ ー ルの開発事例;SASユ ー ザ ー 総会2012
舟尾暢男,高浪洋平(2008). HTMLアプリケ ー ションを用いた簡易SASツ ー ルの開発事例ー臨床試
験における症例数設計用ツ ー ルの構築-;SASユ ー ザ ー 総会2008
高浪洋平,舟尾暢男(2015). 改訂版統計解析ソフト「SAS」;カットシステム
付録
蜘tacro DetectNonPriASCII(DataFo Ider=. KeyVariab I es=USUBJID. CVPMu It= l)
options nofmterr:
”
”
Iibname INDATA 品DataFo Ider. access=readonly cvpmult=&CVPMult. , キ入力デ ー タフォルダ ,
=
ads output members ListOfDatasets . *デ ー タセットの 一 覧を取得;
proc datasets lib=INDATA memtype=data:
quit:
data _NULL_ . *デ ー タセットの数を取得 ,
set ListOfDatasets
’
’
ca11 symput ( DSNAME H strip(put LN_. best. ) ) . NAME) .
’
ca11 symputx ( NofDS' . _N_)
run
data _NULL_ . *デ ー タセットごとの変数一 覧を取得;
set ListOfDatasets
’
’
’
ca11 execute ( proc contents data=INDATA目 IINAMEII
’
out=ListOfVariables_ IIN馴ElI
’
’
(keep=MEMNAME N釧E TYPE LENGTH VARNUM LABEL) noprint. run; );
’
’
’
ca11 execute(' proc sort data=ListOfVariab Ies_ IINAMEII ; );
’
ca11 execute('
where TYPE=2: )
’
by VARNUM: run,’)
ca11 execute (
’
’
’
’
ca I I execute ( data ListOfVariab Iesー IINAMEII ; );
’
’
’
’
set Li stOfVar iab Ies IIN釧ElI ; );
ca I I execute (
’
by VARNUM; )
ca11 execute('
ca11 execute('
retain MaximumLength O :,’)
’
’
ca I I execute (
if Maximu『『1Length く Length then MaximumLength = Length, )
' ,’
’
’
”
ca11 symputx ( MaxLengthOf 11striP(NAME) 11 ,MaximumLength) : run; )
ca11 execute('
run
data ListOfASCII ;叫SCII文字の 一 覧を変数ASCI!_List lこ格納;
Iength ASC l l_List $200.
ASCI !_List=
do i=32 to 126
ASCII_List=trim(ASCI !_List) Ilbyte(i) .
373
end: run data _TEMP: stop: run: 制。i= l略to &NofDS. 目by 1: *デ ー タセットごとにASCII文字以外を検出; proc sql create tab Ie &&DSNAME&i. as select* from INDATA.品品DSNAME&i. . ListOfASCII quit data _TEMP_&&DSNAME&i. : stop. run: data NULL set ListOfVariab Ies &&DSNAME&i. ’ ca11 execute(' data _TEMP1; ) ” ca11 execute( set &&DSNAME&i. :") ” ca11 execute ( length MEMNAME $32. N釧E $32. ORGVALUE $&&&&MaxLength0f&&DSNAME&i. DetectedString $&&&&MaxLength0f&&DSNAME&i.. :") : ’ ’ OBS=_N_; ) ca11 execute( ”’ ’ ”’ MEMNAME= 11strip(MEMNAME) 11 ; ); ca11 execute(' ’ ” "' NAME三 I lstrip(NAME) 11 ’. ), ca11 execute(' ’ ’ ’ ’ ORGVALUE=strip( J INAMEJ I ). ), ca11 execute( ’ ’ DetectedString::kcompress( JJNAMEJJ'. ASCI I_List),’); ca11 execute( ca11 execute(' CandidateVa Iue="".’) 《 ’M ’ ’ if DetectedString = ; ) ca11 execute( ca11 execute(" keep 品KeyVariab Ies. MEMNAME NAME ORGVALUE DetectedString OBS CandidateVa Iue: run:") ; ca11 execute("data _TEMP_&品DSNAME&i.:") : ” ” ca11 execute( set _TEMP_&&DSN釧E&i. _TEMP1; ); ca11 execute(守un:") . ’ ca11 execute(' proc sq I: drop tab Ie _TEMP1: quit ; ); run 四end: 刷0 i= l首to &NofDS. 百by 1: *シ ー トごとに検出結果を出力; 百if &i.= 1首then %do. ” eds exce I fi Ie= 品_CPATH.平files平DetectNonPriASCII.x Isx" ’ options(sheet interval= table' ” ” = sheet name 品品DSNAME&i. ’ ’ suppress by Iines= yes ’ embedded_titles= no' ) 覧end: 覧else首do: eds excel ’ options(sheet interval= table' ” ” sheet_name= &&DSNAME品i ’ suppress by Iines= yes' ’ ’ embedded_titles= no ) 首end: proc print width司nin data=_TEMP_&&DSNAME&i. var &KeyVariables. OBS MEMNAME N釧E ORGVALUE DetectedString CandidateValue. run 協end eds excel close: proc datasets Iib=WORK ki11 memtype=data: run: quit: 始nend DetectNonPriASCII 伽acro Rep IaceNonAscii(InDataFo Ider. = OutDataFo Ider= , I nExce IFi Ie= . I nExce ISheet= , OutEncod ing::, CVPMu I t= l) : options nofmterr: ” ” Iibname INDATA &lnDataFolder. cvpmult=品CVPMult. access=readonly: *入力デ ー タフォルダ; 374
libname OUTDATA "&OutDataFolder.": *出力デー タフォルダ; ” ” I ibname EXIN excel &lnExcelFile. *検出結果のオブザベ ー ションごとに変換候補文字列を記載したファイル; = header yes dbmax text=2000 mixed=yes: data EXIN: length CandidateValue $2000. ;本変換候補文字列の読込; set EXIN."&lnExcelSheet.$"n: run I ibname EXIN c I ear out=_EX_DATA_VAR(keep=MEMNAME OBSl NAME CandidateValue) proc sort data=_EXIN by MEMNAME: run data _CON_VARNUM: stop: run. data _WK CON. stop. run: data NULL set EX DATA VAR by MEMNAME. if first.MEMNAME then do: ’ ’ ’ ca I I execute ( proc contents data=INDATA. IIMEMN釧El I ’ ・ out= _CON_VARNUM_' 11MEMNAME11 noprint. run;); ’ ’ ’ ’ ca I I execute ( proc sort data=_CON_VARNUM_ 11MEMNAME11 ;); ’ ’ ca11 execute ( by VARNUM: run, ) ’ ’ call execute(' data _CON_VARNUM. set _CON_VARNUM _CON_VARNUM_' IIMEMNAMEII ;run;); ’ ’ ca11 execute("data _WK_'’11MEMNAME11 ;); ・ ’ ’ ca I I execute(' set INDATA. 11MEMNAME11 ;); end *非ASCII及び非印字可能文字が含まれる変数値を変換候補文字列で置換, ’ ・” ’ ’ ’ ’ ’ '" call execute ( if _N一= IIOBS111 then IINAMEII = 11strip(CandidateVa I ue)11 ;), ー if last.MEMNAME then do;本各変数におけるデ タの最大長を取得; ’ ’ ca I I execute ( run;) ’ ’ ca11 execute(' data _WK_CONl _' 11MEMNAME11 (keep=VARNAME VARLENGTH);) ’ ’ ca11 execute(' set _WK_' 11MEMNAME11 ;); ’ ca11 execute(' array CHARS _character_;) ’ ’ ca I I execute ( length VARNAME $32.;); ’ do over CHARS, ) ca I I execute(' ’ ’ VA剛AME=vname(CHARS);) ca11 execute ( ’ ’ ca11 execute ( VARLENGTH= I engthn(CHARS): ) ca11 execute(' output: · ) ’ ’ end: run, ) ca I I execute ( ’ ’ ’ ’ call execute ( proc sql: create table _WK_CON_ 11MEMNAME11 as ): ’ ” ca I I execute ( select VA剛馴E. max(VARLENGTH) as 似たLENGTH . '" 11strip(MEMNAME)げ as MEMNAME' ): ’ ’ ’ ca11 execute(' from _WK CON1 11MEMNAME11 group by VARNAME: quit;); ’ ’ ’ ca11 execute(' data _WK_CON: set _WK_CON _WK_CON_ 11MEMNAME11 ;run;); end: run proc sort data=_WK CON: by MEMNAME VA罰NAME: run: data _NULL_:*各変数の長さをデ ー タの最大長に変換: set _WK_CON: by MEMNAME VARNAME: MAX_LENGTH = ifn(MAX_LENGTH=O, 1. MAX_LENGTH) if first.MEMNAME then do ’ ’ ’ ca I I execute ( data _WK_' 11 MEMNAME11 , ); ’ ’ ' ’ ’ ’ length IIVARNAMEII S 11put(round(MAX_LENGTH, 1. 0), best. )11 ー ); ca11 execute ( end else if last.MEMNAME then ’ ’ ’ ’ ca11 execute(VARNAME11 S 11put(round(MAX_LENGTH, . 1 0), best.)|| .: set _WK_' 11MEMNAME11 ,run,・); else 375
’ ” ’ ); ca I I execute(VARNAME11 S 11put(round(MAX_LENGTH . 1. 0). best.) 11 run proc sort data=_CON_VARNUM: by MEMNAME VARNUM. run : data NULL set CON_VARNUM: by M聞NAME VARNUM: if first.MEMNAME then do ” ca I I execute("data OUTDATA."11MEMNAME11 (encoding=品OutEncoding.) :") : *符号化方式の変更 , ’ ’ ca11 execute ( format IINAME) . end else if last.MEMNAME then ” ’ ca11 execute(NAME11 ; set _WK_'’ IIMEMN釧El I ; run:·) : else ca11 execute(NAME) run proc datasets Iib=WORK ki11 memtype=data: run: quit: 伽1end Rep IaceNonAscii: 蜘1acro Transcoding2UTF8 (lnDataFolder= . OutDataFo Ider= , OutEncoding=) options nofmterr: Iibname INDATA "&lnDataFolder. ” cvpmultiplier=4: *入力デー タフォルダ; ” Iibname OUTDATA "&OutDataFolder. ;*出力デー タフォルダ; ods Iisting close: ods output Variables=_CON_VARNUM. proc contents data= INDATA._ALL_: run. ods Iisting: data _CON_VARNUM: set CON VARNUM: length MEMNAME NAME $32. ’ ’ MEMNAME=compress(tranwrd(Member, INDATA. ,”)) NAME =strip(Variable) VARNUM =NUM keep MEMNAME NAME VARNUM: proc sort data= _CON_VARNUM: by MEMNAME VARNUM: run: data _WK_CON: stop: run : data _NULL_:*各変数におけるデ ー タの最大長を取得. set _CON_VARNUM by MEMNAME VARNUM: if first.MEMNAME then do: ’ ’ ’ ca11 execute ( data _WK_CON1 IIMEMNAMEII' (keep=VARNAME VARL印GTH ); ); ’ ’ set INDATA. IIM聞NAMEII' :·) . ca11 execute ( ’ ’ array CHARS character_; ) ca11 execute ( ’ ’ length VARNAME $32. ; ); ca11 execute ( ’ do over CHARS . ) ca11 execute(' ’ ’ = VA剛AME vname(CHARS ); ) ca11 execute ( ’ = VARLENGTH Iengthn(CHARS ),’) ca11 execute ( ’ ca11 execute(' output ; ) ’ ca11 execute(' end: run ; ) ’ ’ ca11 execute(' proc sq I: create tab Ie _WK_CON_' 11 MEMNAME11 as ); ’ ’ ’ select VARN馴E ca I I execute ( . max(VARL印GTH) as臥X_LENGTH. ,川 11stri p(MEMNAME) 11 w as MEMNAME ); ’ |川 ’ ’ ’ ca11 execute ( EMNAMEII group by VA剛馴E: quit : ); from _WK_CON1 _ ’ ’ ’ ca11 execute ( data 一脈_CON: set _WK_CON _WK_CON_ 11MEMNAME11 : run : ·) : end run proc sort data= _WK CON. by MEMNAME VARNAME: run: data _NULL_:*各変数の長さをデ ー タの最大長に変換; set WK_CON: 376
by MEMNAME VARNAME; MAX_LENGTH = ifn(MAX_LENGTH=O. 1. MAX_LENGTH) if first.MEMNAME then do; ’ ’ ’ ca11 execute ( data _WK_' 11MEMNAME11 ;); ’ ’ ’ ’ ’ ca11 execute ( length 11VARNAME11 S 11put(round(M似ーL印GTH. 1. 0), best.) 11 . ' ) end else if last.M凹NAME then ' ’ ca11 execute(VARNAME11 $ 11put(round(MAX_LENGTH, 1. 0) . best.) 11 ’ ’ ; set JNDATA. IIMEMNAMEII' ; format _al I_; informat _al I_; run;), else ’ ’ ” ); cal I execute(VARNAMEII S 11put(round(MAX_LENGTH, 1. 0). best.) 11 run data _NULL_; set CON VARNUM; by MEMNAME VARNUM; if first.MEMNAME then do; ” '’ ” ca11 execute ( data OUTDAT A. IIMEMNAMEII (encoding=品OutEncoding.) ; ") • *符号化方式の変更; ’ ’ ca I I execute ( format IIN馴E) ; end else if last.MEMNAME then ” ’ ca11 execute(NAME11 ;set _WI(_'’11MEMNAME11 ;run,’); else ca11 execute(NAME) run proc datasets Iib=WORK k i11 memtype=data , run; quit; 始nend Transcoding2UTF8 ; 377
2値デ ー タのIntraclass Correlation Coefficientの推定マクロプログラム 0稲葉 1 ( 国立国際医療研究センタ ー 洋介 I 、 田中 紀子 1 デ ー タサイエンス部 生物統計研究室) Macro program for calculating Intraclass Correlation Coe妊icient for binary data Yosuke Inaba, Noriko Tanaka Biostatistics Section, Dep釘tment of Data Science, Center for Clinical Science National Center for Global Health and Medicine 要旨 アウトカムが2値の場合のIntraclass Coefficient Correlation(級内相関係数:ICC)について, 幾つかの異なる 推定量をSASで実装し, マクロプログラムを作成した. キ ー ワ ー ド: Intraclass Coefficient Correlation, ,ICC, Binary,Survival ClusterRandomized凶al 1 はじめに In回class Coefficient Correlation(級内相関係数:ICC)とは, 同 一クラスタ ー (定義された群、 あるいは繰り 返し測定された個体 )内のデー タの相似性を示す定量的な指標である. Fisher(1925)によって当初同 一個体で 二回繰り返しデー タに対して提案されたICCは、 分散分析の枠組みで発展を遂げ、 現在では の分散が全分散に占める割合 ” “ クラスタ ー 内 と 一 般的には定義される。 これまでも、 生物統計学分野においては、 心理学 や精神医学的測定や、病理、画像診断などに対する評価者間信頼性の指標としてしばしば用いられてきたが、 、 近年では階層線形モデ ルの文脈で、用いられることも多く、 アウトカムの種類やサンプリングデザインに対応 する様々な ICC の推定方法に閲して研究が進められてきた(Donner(1986), Donovan(1986), Gibson(1996)). SASで ICCを計算する場合, アウトカムが連続量のブロックランダム化比較試験の場合は,PROC GLMや PROC MIXED, PROC NLMIXED等のプロシ ー ジャからの出力から比較的容易に計算可能である. しかしア ウトカムが2値の場合では,閉じデザインから測定されたデー タでも複数の定義があり(Ridout1999),推定量 の計算方法も出版済みのもので10種類以上が知られている.その殆どは現状のプロシ ー ジャの出力をそのま ま利用する事はできないため, 個別にプログラミングが必要な状況である. そこで我々は,Ridout (1999)で比 較検討されているアウトカムが2値の場合の15 のICC推定量および 一 般化線形モデルによって推定される ICCをSASにより実装し, マクロプログラムを作成した. またP rocSurvayselectを用いて95%ブ ー トストラ ップ信頼区間を計算する機能を付与した. ただしブ ー トストラップ法はデー タ量及び推定方法によっては膨 378
大な時間がかかるため, 実行しない設定も可能である. 2 定義及び記号 本報告で用いる記号は基本的に Ridout(l 999 )に従う. クラスタ ー 数をk, i 番目のクラスタ ー のオブザベ ー シ ヨン数を刊とし, それぞれの要素の応答は2値確率変数Xij (i = 1,…,k; j = 1,.川町)とする Xij の取りうる値 はI (成功), 0(失敗)で表し,i番目のクラスタ ーの成功の総数を耳= LXij と表す. 全てのオブザベ ー シヨンに 、 おいて成功確率は共通(Pr(Xij = 1):=πfor Vi,j)とし,異なるクラスタ ー 聞のオブザベ ー ションは全て独立と 仮定する.同一クラスタ ー 内では,任意のオブザベ ー シヨンの組(X11 ,Xρの相聞は共通とし, Corr(Xij,Xu) := p を ICC と定義する.一般化線形モデルの場合、 Xij= ρ + /J;+e;i ただし βトN(O,σp):クラスタ ーの変量効果 e;rN(O,σ 2 ):誤差 とすると、 , Cov (X11, X11)= E(X11, X11) - E(X11)E(X11)= µ2 + E ( β 2)一µ2=σZp Var(X11) = Var(X11) =σZp+σZ ゆえに 叫ん xii )= 手,= ICC 尚, 各 15 推定量の推定方法の詳細は Ridout(1999 )を参照されたい。 3 マクロプログラムの詳細 3.1 ソ ー スコ ー ド ※ Appendix 参照 ・ 3.2引数 Input: 入力するデー タセット名を記載.ライブラリに格納されている場合は[library 名].[デー タセット名] と記載する. 伊リ:Library.raw 入力するデ ー タセットには,クラスタ ーを格納する変数( Cluster に指定)及び応答変数(Response に指定) が必須となる. • Cluster : Input に記載したデ ー タセットの変数で,クラスタ ー 情報を格納している変数名を記載する.尚, type は問わない. • Response : Input に記載したデー タセットの変数で. 応答を格納している変数名を記載する. 尚, 0 or I の2値数値変数に限る. • Output :結果を出力するデー タセット名を記載. ライブラリに格納する場合は [library 名].[デー タセット 名]と記載する. デ ー タセットの詳細は項目「出力J参照の事。 379
• Method: fJの推定方法を指定する. 指定できる引数を以下に示す. 尚, 複数の方法を半角スペ ー ス()区切 りで指定可能である. その場合は推定方法毎にレコ ー ドを分けて結果が出力される. + Ridout(l999)にて比較されている推定方法 fJA ov An必ysis of Variance estimator. I. aov: 2. aovs:月 ov modification of Analy邸ofVarian田 estimator 3. keq: PKEQ Morr 4. 5. 6. 7. s. kpr: PKPR Moment estimator, wi = ni/N for eachi kegs :品EQ modぜiedMom側estimator, wi = 1/k伽eachi 匂irs: PKPR modified Moment estim伽,wi = ni/N for 蹴hi w: fJw Moment estimator, set wi by iterative scheme(反復回数は 10000 回, 初期値は 0.02を 設定) ws: fJ1ゐmodified Moment estimator, set wi by iterative scheme(反復回数は 10000 回, 初期値 は 0.02を設定) 9. stab: PSTAB stabilized Moment estimator(,cは 0.45を設定) 10. ub: fJ u8 moment estimate ofICC合·om an unbiased estimating equation 11. fc : PFc Fleiss-Cuzick estimate ofICC 12. mak: PMAK Mak ’ s estimate ofICC 13. peq: PPEQ weighted correlation estimate ofICC 14. pgp: PPGP weighted correlation e蜘蹴ofICC 15. ppr: fJ. PR weighted correlation estim蹴ofICC - 一 般化線形モデルを用いた推定方法 16. glmm (詳細は「2. 定義及び記号」を参照の事.)尚, Output が画面に出力される. また 95% ブ ー トストラップ信頼区間は出力されない. • CI:95%ブ ー トストラップ信頼区聞を Output のデー タセットに計算する場合は Cl=Y, 出力しない場合は Cl=N と記載する. 省略可能. 省略した場合はデフォルト値 Cl=N がセットされる. • lter: 95% ブ ー トストラップ信頼区間を作成する場合のリサンプリング回数を指定. lter=xxxx の形式で 記載する. 省略可能. 省略した場合はデフォルトで 50 が指定される。 3.3出力 ・ 計算結果はデー タセットに出力される。 Cl=Yを指定した場合とそれ以外の場合で出力される指標が異なる。 Cl=Y: + Method :推定方法(Method の引数が表示される) - m。一hat :βの点推定値 + Boot_lower: fJの推定値の 95%ブ トストラップ信頼区聞の下限値 ・ ー Boot_upper: fJの推定値の 95%ブ ー トストラップ信頼区間の上限値 例: CODE 者 Binary_ICC (工nput=library .raw2, Method=aov aovs peq, Cluster=region, C工=Y,iter=lOO) 380 Response=y, Output=result,
出力 OBS method rho hat boot_lower boot_upper aov .005851170 -0.016595 0.037237 2 aovs .002868234 -0.018023 0.029335 1 8 peq • ・ Cl=N Rho一hat: pの点推定値 例: CODE 老Binary_ICC(Input=sim, Cluster=region, Response=y, Output=result, Method=aov kpr keqs w) 出力 OBS method rho_hat aov 0.005851 2 kpr 0.006436 8 keqs 0.014250 1 4 w ・ 3.4注意点 ・ ・ 4 マクロ中で,必要に応じて接頭語_mid_を付けた中間デ ー タセットをworkライブラリに生成しており, 末尾で接頭語を指定して 一 括削除している. そのためwork内のデ ー タセット名が_mid_から始まるデ ー タセットが存在した場合,本マクロを実行すると削除される. デ ー タと推定方法によってはICCを推定できない場合がある. その場合は変数rho一hatに欠損値が格納 され,logに以下のW紅凶ngを出力する. WA剛ING ICC is not estimable by method [Methodで指定した推定方法]. マクロ内で丸め処理は行っていない. 参考文献 FISHER, R. A. Statistical methods for research workers. Edinburgh: Oliver and Boyd, 1925. DONNER, Allan. A review of inference procedures for the intraclass correlation coefficient in the one-way random effects model. International Statistical Review/Revue Internationale de Statistique, 1986, 67-82. DONOVAN, A. M.; RIDOUT, M. S.; JAMES, D. J. Assessment of somaclonal variation in apple. II. Rooting ability and shoot proliferation in vitro. Journal of horticultural science, 1994, 69.I: 115・122. GIBSON, G. J.; AUSTIN, E. J. Fitting and testing spatio- temporal stochastic models with application in plant epidemiology. Plant Pathology, 1996, 45 .2: 172-184. 381
RIDOUT, M紅白S.; DEMET阻O,口組ce GB; FIRTH, David. Estim組ng in回class correlation for binary data. Biome凶cs, 1999, 55.1: 137” 148. 382
Appendix : Source Code of SAS Macro Binary_ICC /****林*料**************林*材料材料材料林材料材料**材料材料料材料*柿本料材料材料* Binary_ICC.sas NAME TITLE : ICC calculaiton for binary data PRODUCT : SAS R9.4 AUTHOR : Yosuke Inaba 林材料料材料材料材料材料材料材料材料材料材料紳材料材料材料料紳料*材料紳材料材料/ %Macro Binary_lCC(lnput=. Cluster=. Response=. Output=. Method=, Cl=N. iter=50); 自* Count methods to execute. 協I et cnt=%eva I (%sysfunc (count(&Method ..%str( ))) + 1); 目* calculate each method ; 首do J=l唱to &cnt.. 唱しET CI2=Y; 出let _Method_=目scan(品Method.,&J..%str( )); 目*一一一一一ー一一一一ー一一一一一一一一一一一一一一一ー一一一一一一一一一一一一一一一一一 ; 首* calculate ICC; 時*一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 一一一一一一一一一一一一一一一 ; 引fιMethod_.《=gl剛弘then制o; proc iml; start binary_lCC(cluster,response.method); n=nrow(response) , u = unique(cluster). k=ncol(u); Y_i = j(l,k); n_i = j(l,k); do i = 1 to k; idx = I oc(c I uster=u [ iJ); Y_i[i] = sum(response[idx]). n_i[iJ = nrow(response [ idx]); end; n_O = (1/(k-1))非(N - ((n_i柑2)/N ) [+]); MS_b = (1/(k-1))非((Y_i柑 2/n_i) [+]ー(1/N)非((Y_i [+])柑 2)); MS_w = (1/(N-k))非(Y_i [+]一((Y i柑2)/n_i) [ +J); pi_i=Y_i/n_i; 383
百* The Analysis of Variance Estimator:
if method="aov" then do;
rho_aov= (MS_b - MS_w)/(MS_b + (n_O - 1)棚S_w);
result= rho aov:
end:
=、ovs then do:
”
else if method
MS_b = (1/(k))非((Y_i柑2/n_i) [+]ー(1/N)非((Y_i [+])柑2));
rho_aov= (MS_b - MS_w)/(MS_b + (n_O - 1)書:MS_w);
result= rho aov:
end:
百本Moment Estimator;
=、eq " then do;
else if method
w_i=j{l,k,1/k);
pi_w= (w_i非pi_i)[+];
S_w= (w_i非((pi_i - pi_w)柑2))[+];
rho_keq=(S_w - (pi_岬(1-pi_w)書((w_i非(1 - w_i))/n_i)[+]))/(pi_:岬(1 - pi_w)非((w_i非(1-w_i)) [+])ー
(w_i非(1 - w_i)/n_i)[+));
result= rho_keq :
end:
”
else if method="kpr then do:
w_i=n_i/N;
pi_w= (w_i非pi_i)[+);
S_w= (w_i書((pi_i - pi_w)僻2))[+];
rho_keq=(S_w - (pi_岬(1-pi_w)非((w_i非(1 - w_i))/n_i)[+]))/(pi_:岬(1 - pi_w)非((w_i書(1-w_i)) [+])ー
(w_i非(1 - w_i)/n_i)[+]):
result= rho_keq ;
end:
”
else if method= keq s" then do:
w_i=j(l. k,1/k);
pi_w= (w_i蜘i_j)[+);
S_w= (w_i非((pi_i - pi_w)柑2))[+];
S_wn= (k - 1)栂_w/k:
rho_keq=(S_wn - (pi_叫(1-pi_w)非((w_i非(1 - w_i))/n_i) [+]))/(pi_岬(1 - pi_w)非((w_i非(1-w_i)) [+])
ー(w_i非(1 - w_i)/n_i) [+]):
384
result = rho_keq; end: ” else if method= kprs" then do: w_i =n_i/N; pi_w = (w i非pi_i)[+]; S_w = (w_i井((pi_i - pi_w)柑2))[+]; S_wn = (k - 1)部_w/k: rho_keq=(S_wn - (pi_岬(1-pi_w)井((w_i非(1 - w_i))/n_i)[+]))/(pi_岬(1 - pi_w)非((w_i非(1-w_i))[+]) 一(w_i非(1 - w_i)/n_i)[+]); result = rho_keq; end: ” ” then do: else if method= W do j = l to 10000: if j = l then rho w=0.02: else do: _w_i_sum=(n_i/(1 + rho_w非n_i)) [寸; w i =(n_i/(1 + rho_叫n i))/_w_i sum: pi_w = (w_i井pi_i)[+]. S_w = (w_i非((pi_i - pi_w)柑2))[+]; rho_w=(S_w - (pi_岬(1-pi_w)非((w_i非(1 - w i))/n_i)[+ J))/(pi_w非(1 - pi_w)非((w_i非(1-w_i))[+]) ー(w_i非(1 - w_i)/n_i)[+]): end: end: result = rho_w; end: ” else if method= ws ” then do: do j = l to 10000: if j = l then rho ws=0.02: else do; _w_i_sum=(n_i/(1 + rho_ws恥一i))[+J; w i =(n_i/(1 + rho_ws#n_i))/_w_i_sum: pi_w = (w_i蜘i_i)[+]; S_w = (w_i非((pi_i - pi_w)柑2))[+]; S_wn = (k - 1)尚一w/k; rho_ws=(S wn - (pi_w非(1-pi_w)非((wーは(1 - w_i))/n i)[+ J))/(pi_叫(1 - 385
pi_w )非((w_i非(1-w_i)) [+])一(w_i非(1 - w_i)/n_i)[+]); end; end; result = rho ws; end; else if method kappa = Q; =、tab" then do; p = y_i[+]/n_i[+]; w_i = n_i/N; pi_i = Y_i/n_i; pi_w = (w_i 非pi_i)[+]; s_w = (w_i # (pi_i - pi_w )柑2)[+]; rho_stab = (1/(n_O - 1))非((N 非 s_w)/((k - 1)非p 非(1 - p)) + kappa - 1); result = rho stab; end; else if method=九」b" then do; rho_ub = 1 - (N 非n_O非(k - 1)非Ms_w)/(Y i [+]非(n_O非 (k - 1)ーy_i[+]) + (y_i柑2)[+])' result=rho ub; end; else if method =γG then do; ” pi_io=(Y_i[+J)/N; rho_fc = 1 - (1/((N - k )井pi_io * (1 - pi_io ))書(Y_i 非(n_i - Y_i)/n_i)[+]); result=rho fc; end; ” else if method="mak then do; pi_io=(Y_i[+])/N; rho_mak = 1 - (k - 1)非((y_i非(n_i - Y_i))/(n_i非(n_i - 1 )))[+] /((Y_i柑2/n_i柑2)[+] + (Y_i/n_i) [+]非(k - 1 - (Y_i/n_i)[+J)); result=rho mak; end; 略* Estimators Based on Di ret Calculation of Correlati on Within Each Group; ” ” else if method= peq then do; mu_peq = ((n_i - 1 )非Y_i)[+J ((n_ / i - 1)非n_i) [+]; rho_peq = (1/(mu_peq 非(1 - mu_peq)))非((Y_i 非(Y_i - 1))[+J/(n_i # (n_i - 1))[+J - mu_peq柑2); 386
result=rho_peq;
end:
else if method
=、
”
gp then do:
mu__pgp = (Y_i/ n_i) [+J/k;
rho_pgp = (1/ (mu_pgp 非(1 - mu_pgp))) 非(((v_i # (Y_i - 1))/(n_i # (n i - 1))) [+J/k - mu_pgp非但);
result=rho_pgp;
end;
--E
M
’
1
rt、
nv
jq
品#
nH
au
vt
nv
・hH
nH
’
+L ・
MN
一
Hu
r
1」
m
(
+ F/’
p
p rL
w
eEB ,
rt、
=
-
.
VB
Jnu
- p
o uv-
hH
=-
nv
+L
e
r vs
p o-
in
nv
nv
m
VE
-=
S
-l H-
内
u
:
U 」H
&L
ah- mm v’Bl
Hu
eo
n0
al
e
n
ou
va
ahw
proc iml;
略本Read modules:
reset storage=Binary_ICC;
load modL』le= al I
目*Convert input dataset to matrix,
use &Input. ;
read al I into cluster var (品Cluster.};
read a11 into response var (&response.} :
close &Input. ;
明*Calculate ICC;
result = binary_ICC(cluster, response. "&_Method_.”);
387
品且宵
quit;
)
内正
“仲
VE
nv
nuF
Hu
m
store modu I e= a11
『EE」
reset storage=Binary_ICC;
MN
,,,,
+
FBEL
、、,,
、、,J
-
首* Store modules to work I ibrary;
nH
(
,,,,e
)
-
finish binary_ICC;
uI
(
必#
Hu
mm
vI
,fa、
(
品#
)
、‘,,
)
VE
nup
nv
JJ’
円HV
-
-
.nu
return(result):
百*Output ICC value to temporary dataset:
’
CREATE _mid_rest』lt1 FROM result[colname= rho一hat']:
append from result:
quit:
協* Output Warning to log if ICC is not estimable:
data 一mid_rest』I t1:
set mid resultl:
if rho一hatく-1 or l<rho_hat then do:
calI missing(rho一hat):
”
”
a= WARN 11"ING :
ICC is not estimabI e by method &_Method_..
put a:
”
”
ca11 symputx ( CI2 ,"N");
end:
drop a:
run:
目end:
明else覧do:
覧* Calculate ICC by GLMM:
data _mid_glmm:
set &Input. :
subject=_N_:
run:
proc glir『lfflix data=_mid_glmm,
ods output CovParms=_mid_CovParms_rand_bin:
class &Cluster.:
model &response.=/ I ink=logit dist=binary:
random &Cluster./ sub=subject
run:
data _mid_resultl(keep=rho_hat):
set _mid_CovParms rand_bin(rename=(estimate=estimate_rand) keep=estimate):
rho_hat=estimate_rand/(estimate_rand+3.289868134):
run.
略end:
388
恥一一 ー一一一一一一一 一一一一一一一一一一一一一一一一
首*
Construct 95唱Confidential Interval by bootstraping;
*
一一一一ー一一一一一一一一ー一一一一一一一一ー一一一一一一一
一一一一一一一一一一一一一一一 ;
首
目if &CI. =Yand &Cl2. =Y首then %do:
百*一一一 -
generate bootstrap sample using proc surveyselect 一一一 ,
proc surveyselect data=品Input. NOPRINT seed= l
out= _mid_BootSSFreq(rename=(Rep I icate=Samp I eID))
method=urs
samprate= l
reps=品iter. :
run .
百if &_Method_.
A
=g Ir『u『l略then制o:
proc i『『11;
%*Read modules;
reset storage=Binary_ICC:
load module= al I
iter=品iter. :
res= j (iter. 1, 0);
do 1 = 1 to iter:
協*Convert dataset to matrix;
use _mid_BootSSFreq:
read al I into cluster var{&cluster. I where(SamplelD=I):
read al I into response var{&response. I where(SamplelD=I);
close _mid_BootSSFreq;
首*Calculate ICC:
res[I. 1] = binary_lCC(cluster, response,"& Method_.づ;
end:
明*Calculate 2. 5 and 97. 5 Percentiles.
Prob = {2.5,
97.5} / 100;
389
ca11 qnt I (Pct Is, res, Prob) ; 見* Convert matrix to dataset; 、 Pctls=Pctls ; ” varNames = ( boot_lower ” 、oot_upper"}; CR日TE _mid_result2 FROM Pctls[c=varNames]; append from Pctls; quit; 唱end; 首else首do; 首let Cl2=N; %end; 協end; 首*一一一- Output result -一一一 ; data _mid_mresu It_&J.’ length method $20; ” ” method=symget ( _Method_ ); set mid resultl; 出* If set Cl to Y and method is not GLMM then store 95弘CI; 略if &Cl.=Y and &Cl2. =Y目then略do; if n =1 then set mid result2; %end; run. 百*一一一 delete temporary result datasets 一一一ー; proc datasets no Iist; delete _mid_result:; quit; 時end; 伽一一一- Create output dataset by union result of each method 一一一一 , data &Output.; set mid mresult : ; run. 390
見*一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一ーー一一一 Delete temporary datasets; 弘* 略*ーー一一一一一一一一一ーー一一一一一一一 proc datasets no I ist; delete mid_:; quit; %Mend Binary_lCC; 伽-- Macro end 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 ; 391
GLMSELECTプロシジャにおけるLassoの有用性に関する検討 0川崎勝己、 有光導徳、 新城博子 (エイツ ー ヘルスケア株式会社) 【背景・目的 1 、 臨床薬理領域において、 母集団解析を用いてモデ ル構築を行う際、 共変量の影響を検討するが、 そのための変数選択の方法としていくつかの種類をもっ。 デー タは場合によって、 リッチデー タの 場合もあれば、 スパ ー スサンプリングデー タとなる場合もあり、 デ ー タがもっ情報量が異なること 、 も少なくない。 最適なモデ ル構築のためには、 より適切な変数選択の方法を用いたモデル探索は重 要である。 一方、 最近、 機械学習を含めた広い分野でLassoを用いた変数選択の方法が注目を集めている。 SASにおいても、 最近のパ ー ジョンより、 いくつかのプロシジャにおいて、 変数選択のオプション としてLassoが追加されている。 そこで、本発表ではGLMSELECTプロ 、ンジャを用いて、 どのようなデ ータに対してLassoが有用と なるか、 シミュレ ー ションにより検討を行った。 【方法】 シミュレ ー ションにおける検討項目として、オブザベ ー ション数、 共変量候補変数の数および変 数聞の関連性等を変化させた様々なパタ ー ンを想定した。GLMSELECTプロシジャを用いて、Lasso を含むいくつかの変数選択の方法(Stepwise、Lasso、 Adaptive Lasso等)による結果について比較を 行い、 傾向を探った。 シミュレ ー ションの結果については、 当日の発表で示す。 392
SASを利用したPinnacle21 Communityのセミオ ー トメ ー ション化による業務効率化 Semi-automation of Pinnacle21 Community using SAS I l I l 0片山雅仁 t , 勘場大 t, 神谷亜香里 , 江川広明 , 角谷伸 一 l 1 ( 塩野義製薬株式会社解析センター ) 2016年10月よりPMDAへの申請電子デ ー タ(SDTM, ADaM, define.氾nl等)の提出が開始された. PMDAへの申請電子デ ー タ はゲ ー トウェイを介して提出され, バ リデ ー ションツ ー ルである Pinnacle21 Enterprise 3.0.5により, SDTM, ADaM, define.xmlの バ リデ ー ションが実施される. その バ リデ ー ションでReject, Eηorが発生しないように, 企業は事前にバ リデ ー ションツ ー ルを利用し てSDTM, ADaM, define.xmlの バ リデ ー ションを実施し, バ リデ ー ション結果を確認する必要があ る. バ リデ ー ションツ ー ルにて結果が許容できる内容になるまで繰り返すことになり, GUI (Graphical User Interface)で何度も実行することはしばしば手間に感じる. 目nacle21 Enterpriseには 互換性のある無償版のPinnacle21 Communityというソフトウェアがあり, 利用している企業も少な くないと考えられる. 本発表では,SASプログラムでコマンドラインを実行し, バ リデ ー ションツ ー ルであるPinnacle21 Communityを効率的に動かすためのSASプログラムおよび手順を紹介する. Sirichenko et al. (2015)はCLI (Command Line Int疋rface)を利用し, SASプログラムでPinnacle21 Communityを実行し, デ ー タセットの バ リデ ー ションおよびData converterを実施する方法を紹介し た. このSASプログラムを利用することにより,予め必要なパラメ ー タを指定しておくだけで,GUI で操作するよりも効率的にPinnacle21 Communityを動かすことができる. しかしながら, そこに記載しであるSASプログラムを実行するためには, 工夫が必要であり我々 はその原因を調査し,バ リデ ー ション結果が適切に出力させるプログラムの開発に成功した.また, そのプログラム加えて, Pinnacle21 CommunityのDefine.xml GeneratorをCLIで実行するプログラムも 紹介する. 他方, Pinnacle21側の問題でdefine.xmlの バ リデ ー ションについては, CLIを利用するこ とができないことがわかっていることも併せて報告する(Pinnacle 21 (2015), Pinnacle 21 (2016)参 . 照) さらには, CLIを利用したSDTM及びADaMの効率的なバリデ ー ションを紹介する. 具体的には, バ リデ ー ション結果の中には, 確認する必要性が薄し、Severityの低いRule IDも含まれているため, それらを社内ル ー ルとして管理し, バ リデ ー ション結果ファイルに自動的に反映させることにより, 確認する必要性が高し、Rule IDを判別できるようにした. これにより, バ リデ ー ション結果確認を簡 略化することができる. [参考資料] [1] Sirichenko, S., DiGiantomasso, M., and Collopy, T. (2015). Usage ofOpenCDISC Community Toolset 2.0 for Clinical Programmers. Paper HT04. PharmaSUG 2015. [2] Pinnacle 21. (2015). Issues with the CLI command for validating ” define.xml ” in 2.1 vs 2.0.2 (+ v2.2.2). [online]https://www.pinnacle21.com/forum/issues-cli・command-validating-definexml・21・vs-202. (2017・07-07参照) [3] Pinnacle 21. (2016). CLI functionality, wrong version number reported, no define.XML support. [online]httos://www.oinnacle21.com/forum/cli-functionalitv-wron2:-version-number-reoorted引0 ・definexml・ 盟血盟・(2017・07・ 07参照) t: Equal Con甘ibution 393
PSMATCH Procedurex ニュ ー ラルネットワ ー クの奇跡のマッチング ’ ~ Real World Dataの利用可能 ’性を 付度する~ o馬場崇充、 藤原正和、 北西由武 (塩野義製薬株式会社 解析センター ) 医薬品開発において高いエピデンスレベルと高い効率性が求められる中,リアルワ ー ルドデー タ を医薬品開発に活用しようという機運が高まってきている. 例の ー っとしてクリ ニ カルイノベー シ ヨンネットワ ー ク(C町) が挙げられるが, この CINが目指すレジストリの目標の ー っとして, 希 少疾患を対象とした臨床試験での対照群としての活用が挙げられる. しかしながら, CINをはじめ とした多種多様なデー タソ ー スから得られたデー タは観察デー タであるため,単純な比較による有 効性や安全性の推測ができない.それは,例えば自社で行った臨床試験の実薬群と,Real World D悦a などの別デー タに由来する外部対照群というこつの群を考えた時に,被験者の背景因子等のエンド ポイントに影響を及ぼす共変量の分布が群聞で偏ることに起因する. 観察デー タの活用に対して, より 効率的 な方法論の実装を模索していたところ, 今回新たに SAS STAT14.2 から PSMATCH Procedureによる傾向スコア マ ッチングが実装可能となった.これはRosembaum & Rubin (1983 )の理 論が基となっている. 彼らは, 強く無視できる割り当て条件のもと, 共変量を条件付けたもとで被 験者がどちらの群に属するかを表す確率である傾向スコアを定義し,傾向スコアの値が近い被験者 を各群から抽出すると,抽出した被験者によりできた新たな群の間で共変量の分布が似通うことを P 示した. この理論を利用し, 比較による推測を可能とする手法が傾向スコアマッチング である. こ のProcedure ではpsmodelステー トメントを用いることで, ロジスティック回帰モデルによって傾向 スコアを容易に推定することができ,それを用いて傾向スコア マ ッチングを実装することができる. また, マ ッチング以外にも, 傾向スコアによる層別解析, 逆確率重み付きによる共変量のバランス を,出力されるグラフイックにより視覚的に確認できる等の機能も充実している. ただし, この傾 向スコアを精度よく推定することが非常に重要であるが故に, psmodel ステ ー トメント(ロジステ ィック回帰モデル)による傾向スコアの推定が必ずしも最適とも限らない. 一般に傾向スコア解析 において考慮される①共変量は高次元であり,②共変量は互いに相関や傾向スコアのモデルの中で 交互作用を持つことが予想される. また,③真の傾向スコアが必ずしも共変量の線形モデルである とは限らない. このような場合には, しばしば傾向スコアのモデルを決定することは困難である. そこで,このような①~③の問題を扱うことを得意とした,機械学習のひとつである ニュー ラノレネ ットワ ークによって傾向スコアを推定することでこれらの問題を克服することを考えた. ニュー ラ ノレネットワ ー クは品目 TAT Procedure の neural ステー トメントを用いることで実装が可能であり, PSMATCH Procedureのpsdataステー トメントによって, ニュー ラルネットワ ー クで推定した傾向ス コアを マ ッチングに利用できる. 発表ではシミ ュレー ションによって ニュー ラルネットワ ー クを用 いた傾向スコアマッチングの性能を評価し,機械学習を用いた傾向スコア解析の有用性を説明する とともに, 傾向スコア マ ッチングによるReal World Dataの活用について考える. 引用文献 Rosenbaum, P. R., & Rubin, D. B. (1983). The central role of the propensity score in observational studies for causal e佐cts. Biometrika, 70(1), 41 ・55. 394
電子デ ー タ申請に向けた品質管理サイクルの最適化 ~プログラミング業務における必ずa vuからの脱却~ 0小林千鶴, 平野勝也, 坂井絵理, 北西由武 (塩野義製薬株式会社 解析センタ ー ) 2016年IO月より, ついにPMDAへのCDISC標準に準拠した電子デ ー タの提出が開始(移行経過措 置期間あり )され, 2020年4月からは完全移行の予定である. 一 方,FDAでは2016年12月18日以 降に開始された試験において同様の対応が求められている. すなわち, 申請者側もCDISC対応を急 がなければならない. 弊社においてもPMDA/FDAへの申請電子デ ー タ提出に適合する成果物を作成 する必要がある. さらには今後, その標準化されたデ ー タを蓄積・管理することで, 試験横断的, 疾患横断的な研究開発活動に利活用することも考えている. そこで, 2016年度, 部内において, 申 請デ ー タ作成プロセスの観点も含め, プログラミング業務手順を再検討した. まず,手順検討に先立ち,Define.xml (Ver2.0)の作成にPinnacle2 l Communityを利用することを決 めた. しかし, Pinnacle21にインプットするためのメタデ ー タは, 多くの情報が多岐のシー トにわ たっていることから, その形式のままADaMデ ー タ変換仕様書として利用した場合,仕様書作成者 (Specifier), Programmer, QC Checkerの負担が増えることが考えられた.さらに,作成したDefine.xml が当局のバ リデ ー ションに適合するか否かを事前に確認することも必要である. もし, バ リデ ー シ 、 ヨン結果としてRejectあるいは修正すべきError/Warningが出た場合, 「(仕様書の修正=キADaMデ ー タ用プログラム修正=キ)define.xr叫の修正司define.xml再作成=今define.xml バ リデ ー ションJ のサイクルを繰り返す必要がある. このサイクルが増えるほど, これもまた担当者の負担になるこ とは確実である. 以上のように, CDISC対応の観点を業務プロセスに組み込んだ場合, 申請者側の事実上のタスク は膨大になる. そこで弊社では, この問題を緩和するためにSASマクロを利用したプログラミング 業務手順を考案した. まず, 仕様書とPinnacle21のためのメタデ ー タを異なる成果物として切り分 け, メタデ ー タでシー トをまたいで管理している関連情報を,仕様書では可能な限り同一 シー トで 管理するようにした. そして, 手作業で作成した仕様書からメタデ ー タへの情報の自動マッピング および追加情報付与するためのSASマクロを開発した. さらには,Pinnacle21を用いたバ リデ ー ショ ンで検知される一 部のReject/Error/Warning, Pinnacle21では検出できない項目について検出するため のSASマクロも開発し, define.xml作成前に利用することとした. Iつ目のSASマクロによって, 仕 様書からメタデ ー タをオ ー トメー ションで作成することができ,仕様書修正が発生した場合, SAS マクロを実行するだけで自動的にメタデ ー タへの修正反映が可能となる. また,仕様書では情報を 同一 シー トで管理することによって各担当者が作業をする際, シー ト聞の行き来を最小限に抑え, 容易に全ての情報を見ることが可能となった. また, 2つ目のSASマクロを利用し事前確認を行う ことによって, 先に述べたサイクルの実施回数を最小限にすることが可能になった. この様に Specifier, Programmer, QC Checkerの業務効率化を図ってし、る. 本発表では, Pinnacle21 Communityを用いたDefine.xrnl Ver2.0f乍成に基づく, 弊社における申請デ ー タ 作 成 の プ ロ セ ス を 紹介す る . そのプロセス に お い て は SAS マ ク ロ を 活 用 し , Specifier, Programmer, QC Checkerの業務効率化を図っている. その工夫点および効果についても紹介する. 395
セントラルモニタリングにおいて JMP Clinical のレポ ー トを効果的に選択する取り組みについて 12 l 0福升悠 一 \藤田備子 , 、 小幡智憲 、 畑山知慶 1,3、近藤秀宣 l 1 ( 開発戦略本部セントラルモニタリング部、 ー 2デ タマネジメント本部デ ー タマネジメント第2部、 3開発戦略本部生物統計部) 【背景】近年、 効 果 的 か つ 効率 的 に 臨 床 試 験 の品質を担保す る 方 法 と し て町sk Based Monitoring(RBM)と呼ばれるモニタリング方法が注目を集めている。 RBMにおいては、 オンサイト モニタリング及びオフサイトモニタリングに加えて、臨床試験デ ー タを中央集約的にレピュ ー する ことで試験運用上のリスクを試験の実施中に検出するためにセントラノレモニタリングが実施され 、 ており、 これらのモニタリング を組み合わせたモニタリング方法にシフトしつつある。 、 セントラルモニタリングにおいては、臨床試験デ ー タを中央集約的にレピ ュ ー する際に、デ ー タの 可視化が行われ、可視化されたデ ー タに基づいて臨床試験運用上のリスク検出のための検討が行わ 、 れる。そのため、効果的にデ ー タの可視化を行えるソフトの使用は不可欠である。JMP Clinicalはデ ー タの可視化に優れたソフトであり、 デ ー タレビュ ー によって疑義事項が生じた場合においても、 関連情報を速やかに確認することが可能である。そのため、セントラルモニタリングの効率的運用 のためにはJMP Clinicalを導入は有用であると考えられる。 より効果的にセントラルモニタリングを実施するためには九四 Clinical の機能を適切に適用するこ とが必要になるが、現状、JMP Clinicalで不lj用可能な約 60種のレポ ー トについて、どのようなリスク を検出するために用いるものであるのかレポ ー トごとに整理されていない。また、 それらをどのよ うなメンバ ー 構成で、評価することが適切であるのかといった指針もない。よって、JMP Clinical をセ 、 ントラルモニタリングに効果的に用いるためには、利用可能なレポ ー トの詳細の整理とレビ ュ 一 方 法の検討が必要である。 【目的】セントラルモニタリングを行う際に必要となる九'1P Clinicalのレポ ー トを特定し、各レポ ー トの適切なレビュ ー 方法を検討する。 [方法]職種横断的・多角的な検討を行うためのセントラルモニタリングの実施者( C臥2 名、DM2 名、 統計2名)によって、 全61レポ ー トを次の観点( 「 どのような分析が実施可能か?J 、 ようなリスクが検出可能か?J、「 該当レポ ー 「 どの トを作成・操作・説明するのに相応しい役割は誰か?J) で評価する。 【結果】 JMP Clinicalのレポ ー トには2 値の変数聞における探索的な分析を行うレポ ー トが含まれて おり、これらのレポ ー トは開鍵後の分析や別レポ ー ト実行後の探索的なドリルダウンレポ ー トとし て有用であると評価した。しかし、 2 値変数としての比較対象群を含む “ SDTM+ ” に加工すること で、 試験実施中において全体と各施設の比較も可能であると評価した。 また、JMP ClinicalはClinical Dataを対象としたレポ ー トが中心であり、Data Integrityの確認を通して 医療機関のプロセスを確認するのに有用であると評価した。 その他のデ ー タ( Secondary Data, Operational Data)は、 国sk Based Monitoringレポ ー トにより利用可能であると評価した。 【結論】本取り組みにより、各レポ ー ト機能とレビュ ー 方法を 一 覧にまとめた評価者指針を作成す ることで、 「誰が、 いつ、 何を」実施したら良し、かが 一 目でわかるようになった。 396
RTF出力のマクロプログラム化の工夫点の紹介について O 楊敏、宮川元志、原茂恵美子、篠津和夫 (株式会社タクミインフォメー ションテクノロジ ー ) SASプログラムを利用した臨床試験等の図表作成において、書式設定、タイトル、 脚注等の制御 が煩雑になることが多くみられる。 そこで、これらの 煩雑さを解消し、効率よくプログラムを作成 できるように、RTF出力のプログラムを マ クロプログラム化した。 これにより、RTFファイルの書 式設定、 帳票のタイトノレや脚注の設定、改ペー ジ制御等のプログラミング作業を共通化 ・ 簡素化す ることができた。 今回は、 マ クロプログラム化の過程で工夫した内容を紹介する。 ①メタデー タ情報を外部ファイルで管理 メタデ ー タ情報を各プログラム内でハ ー ドコ ー ディングすることはプログラムの汎用性を欠く ことになり、メンテナンス時に、プログラムを修正しなければならない。 また、設定した情報の 確認は、プログラムを開いて確認する必要がある。 これらの課題を解決するために、プログラム 名、出力ファイル名、タイトル、 脚注、デー タソ ー ス名等のメタデー タ情報を外部ファイル(プ ログラム管理ファイル)に定義し、定義情報を マ クロプログラムにより取得し、RTF 出力のプロ グラムに反映させる仕組みを構築した。 メタデー タ情報を外部ファイルで 一元管理し、プログラ ムを変更することなく出力情報を制御できるため、出力結果の共通化とプログラム作成の簡素化 が実現できた。 ②RTFコ ー ドを利用したペー ジ番号の課題を解決するための改ページ制御 マ クロの作成 RTF コ ー ド( {也ispage}や{lastpage})を利用したペー ジ番号の制御は、RTF ファイルが完全に読 み込まれた後でないと、正しく表示されないため、複数の RTF ファイルを選択して 一 括印刷する 場合やRTF ファイルが完全に読み込まれる前に印刷する場合は、ペー ジ番号が正しく印刷されな い事象が発生する。 また、読み込みエラー が 発生した場合なども、ペー ジ番号が正しく表示され ない。 この課題を解決するために、改ペー ジの位置情報(ページ番号 及び総 ペー ジ数)を算出す る改 ペ ー ジ制御 マ クロを作成した。 改 ペ ー ジの位置情報は、出力デ ー タセットに付与され、 R EPORTプロシジャの PAGEBY(改ペ ー ジ)及びFOOTNOTEで利用される。 改 ペー ジのタイミ ングは、行単位、グル ー プ単位等、柔軟に制御できるようにマクロの機能として実装し、改ペー ’ ‘ ジの際にグル ー プ変数の値がページを跨ぐ場合には、次 ペー ジの先頭に (続き) のコメントを付与 する機能も実現した。 ③SASプログラムで出力するRTFファイルの不要なコ ー ドを除去する マ クロの作成 ODSステー トメントを使用してRTFファイルを作成すると、SASで生成された不要なコ ー ドが付 与され、帳票のレイアウトが崩れることが ある。例えば、BODYTITLEオプションを利用したODS RTFステ ー トメントでのRTF出力は、不要なセクション区切りが出力される。 この課題を解決す るため、作成済みのRTFファイルから不要なコ ー ドを取り除く マ クロを作成した。 今回、マ クロプログラム化した『RTF標準化 マ クロキット』は、上記で紹介した3種類の マ クロを 含めて、全8種類となる。 RTF出力のプログラムを マ クロプログラム化したことにより、最低限の 指定で、効率よく同 一 スタイルのRTFの 帳票を作成でき、図表作成プログラムをシンプルな構造に することが可能となる。 397
Annotated CRF自動化に伴う業務効率化について O 藤原由、 宮川元志、 楊敏、 篠津和夫 (株式会社タクミインフォメーションテクノロジー ) 2016年IO月より国内の臨床試験の承認申請時にCDISC標準に準拠した電子デ ー タ提出が開始さ れ、 2020年4月の電子デー タ提出義務化に向け、製薬企業各社では対応が進められている。 そこで当社では、CDISC関連の電子デ ー タ提出物のうち、Annotated CRFに着目し、fぽファイル(pdf の注釈ファイル)作成の自動化を実現する3種類の方法について検討し、評価することとした。 define.xr叫でのCRFペー ジが記載される項目は、該当する変数名やValue Level MetadataでのCRF ペー ジの記載が考えられるためこちらの対応も検討事項とし、 3種類の方法の自動化プログラム作成と メンテナンス作業の難易度も考慮に入れて検討した。 Annotated CRFの創fファイル作成の自動化について、 次の3種類の方法を検討した。 ① 正規表現による実装 define.xrnlの「<ltemDe白から「く/ItemDef>」までの単語をI行として読み込み、SASでPerl正規表 現を利用できるprx.change関数を利用して変数名及びペー ジ番号を取得する実装方法を検討した。 ② Pinnacle2 l Community版を利用した実装 Pinnacle2 l Community版の「Create SpecJ機能を利用して作成されるExcelファイルを利用して、 変数名、 ペー ジ番号を取得する実装方法検討した。 例としてExcelファイルのVariableシー トを 取得するプログラムを紹介する。 この実装方法では、注釈を入れる位置についてExcel で座標を 入力し、自由に位置を指定できるカスタマイズ機能を実装した。 ③ SAS XML Mapperを利用した実装 SAS社よりXML Engine用のXMLMapサポ ー トツ ー ルとして提供されているSAS XML Mapperを 利用した実装方法を検討した。 さらに、XML Mapperで自動生成されるXML Map元に作成される デー タセットを利用して、変数名及ひevalue Level Metada飽のペー ジ番号を取得する実装方法も検 討した。 上記3種類の実装方法の利点と欠点を考察する。 一つ冒として、fdfファイルの作成に手作業なく自動作成ができるかという観点で比較すると、② の方法は define.沼凶からExcelへの変換に手作業が必要なため、 自動作成の実装には適さないと判断 できる。 二つ目として、プログラムの可読性という観点で比較すると、①の方法で使用したprx.change関数 はPerl正規表現の構文の理解が必要なため可読性が高いとは言えない。 三つ目として、Value Level Metadataの対応の観点で比較すると、①に比べて、②、③の方がValue Level Metadataの対応が容易に行える。 四つ目として、 注釈位置・Not Submittedの対応の観点で比較すると、 ②の方法が容易である。 以上のことから、③の実装方法が最も自動化に適していると判断できるが、f dfファイル作成過程 での手作業を許容できるのであれば②の実装方法も手作業が入る以外の欠点はない。 398
一般化Wilcoxon検定を用いた中間解析の無効中止に関する研究 αて久保竣祐、浜田知久馬、安藤宗司 (東京理科大学) 背景 医薬品を迅速に開発するためには、臨床 試験を効率的に行う必要性がある。そのためには、臨床 試験の途中の段階で、医薬品の効果を評価する 必要 がある。その ような背景から 近年、アダプティ ブデザインは注目を集めている。 アダプティブデザインは臨床試験の途中で、中間解析を行うことにより、医薬品の有効性を評価 し、試験の妥当性や被験者数などのデザインを再検討する。中間解析では、医薬品の無益性(最終 的に 効果がない) を判定するため 条件付き検出力、予測検出力を評価する。連続量(正規分布)、二 値(正規近似)、 生存時間デ ー タ (Log-rank検定) における上記の指標の算出方法が提案されて お り、SASの SEQTESTプロシジャで計算可能である。しかしノンパラメトリックな生存時間の検定 である 一般化Wilcoxon検定については方法論の検討 が不十分 である。 研究目的 本研究の目的 は、生存時間デー タ( 一 般化Wilcoxon検定)における 条件付き検出力、予測検出力 の算出方法を定式化し、 その性能を評価すること である。 提案方法 提案方法では、条件付き検出力関数凡(δ)の6を症例数設計の式から算出する。 Z -a +Z13 /、/百九+ (N-n)δ/花一川Z -a \ I = Z -a均→δ= )|州 Pn(8) =φ\ �ー � ..JN - n J I \ 1 1 1 N:最終解析時の被験者数(1群) n: 中間解析時の被験者数(1群 Zn :中間解析時の検定統計量 Z1 -a:標準正規分布 の 100 (1 ー α)ノ号一セント点 まとめ 帰無仮説の下では条件付き検出力(最尤推定) で評価すると最も無益な 試験を中止しやすいこと が分かった o また対立仮説の下では提案 した方法で評価すると最も有益な試験を中止しにくいこと が分かつた。 参考文献 [!] Christopher J, Bruce WT. Group Sequential Methods with Applications to Clinical Trials. Chapman & Hall/CRC. 2000 [2] Huson LW. The Bayesian Bootstrap in a Predictive Power Analysis. Case Studies in Business, Industry and Government Statistics. Vol.3. No. I. pp.18-22. 2009 (3] Ware JH, Muller JE, Braunward E. The futility index: An approach to the cost-effective termination of randomized clinical trials. American Journal of Medicine. Vol.78. No.4. pp.635 ・643. 1985 399
XSLプロシ ー ジャ(PROC XSL)を使ってみました。 " " 一簡単に define.xml を読み込むために。 0小津義人 株式会社メディサイエンスプラニン グ 医薬情報本部 デ ータサイエンス部 EDC ・ CDISCグル ープ Why don't we try to use the S X L procedure (PROCXSL) System easily We can read the ’define.xmr using theSAS Yoshihito Ozawa EDC・ CDISC Group DataScience Dept. Medical I nformation Div. MEDISCI ENCEPLANNING INC. 承認申請時の電子デ ータ提出 に際し、提出する電子デ ータは、sasデ ータセット(xpt)、define.xmlお よ び そ の ス タ イ ル シ ー ト(xsl) を提出 す ること と なって い る (1) 。 電 子 デ ータに加え 提 出 用 の define.xmlおよびそのスタイルシ ー トの作成は各社、種々の方法で作成している。電子デ ータ提出 が 始まり、時間も経過してきたのでこれらのファイル作成方法などの知見は各社で蓄積してきているもの と思われる。これらのファイルを作成する場合excel の仕様書から作成することが多い。 今後は define.xmlをメタデ ータとして最初に作成される状況も揃ってきているのではないかと考える。 define.xlsファイルを扱う にはSASXM LMapperを用い、 mapファイルを作成するのが通常の方法であ ると考えられる(2)。SASXMLMapperの使用方法自体も簡単ではなく、 define.xmlを 扱うのは、 excel を取得するよりも面倒なものと考えられる。 昨年の sasユ ー ザ ー 総会に おいても、 からメタデ ータ define.xmlの利用例やSAS XMLMapperで作成した mapファイルの編集事例が紹介されている(3)。 これを参考に 、mapファイルを 作成しようと試みたが、mapファイルの作成は困難に感じられた。一方、 スタイルシ ー トの作成も、 mapファイル作成と同様困難なものと考えたが、スタイルシ ー トに関しては 提出用にすでに存在するスタイルシ ー トがあるため、 それを修正すればよいのではないかと思い修正 変 更を行ったと ころ、スタ イルシ ー トの修正変更は意外に簡 単 であった。その 経験として、 今回 define.xmlとそのスタイルシ ー トを用い、スタイ/レシ ー トの変更 により異なる csvファイルをPROC XSLを 使用し、作成することができる例示を行い、その csvファイルを sasデ ータセットに読み込む までのプロセスおよびスタイルシ ー トの変更の検討事例を報告する。 キ ー ワ ー ドPR X L CDISC define.xml : OC S 参照: (1) http: //www. pmda. go.jp/files/000213558.pdf 平成28年8月24日薬機次発第0824001号 「承認申請時の電子デ ータ提出等に関する技術的ガイドに ついて」の 一 部改正について (2) SAS Global Forum 2010: Paper 157-2010 Understanding the define.xml File and Converting It to a RelationalDatabase Lex Jansen (3) SASユ ー ザ ー 総会2016 C-05 SAS ML Mapperを用いたDefine.xmlのメタ情報の有効活用および業務効率化の取り組み X 林三男、 山本繁 400
多群における二重頑健推定量を用いた交絡の調整法に関する研究 0江森健人、 浜田知久馬、 安藤宗司 (東京理科大学) 観察研究から治療と効果の因果関係を検討する場合,交絡因子の影響を取り除いて効果を評価す 、 る必要がある. 統計解析によって交絡因子の影響を調整する場合,数学モデ ルを用いた方法と層別 解析が標準的な交絡調整法であり, 臨床研究で頻繁に応用されている. しかし, 近年の臨床研究では上記の2つの標準的な交絡調整法に加え, 傾向スコア法が盛んに応 用されるようになった. 傾向スコア法とは,ある治療を受ける確率のことである傾向スコアを用い て多数の交絡因子の影響を同時に調整する方法の総称である. 実際には,各患者の傾向スコアは不 明であることから, ロジスティック回帰モデルなどを用いて推定を行う必要がある. しかし, その 、 モデ ルの特定を誤った場合には,効果の推定に偏りが生じることが知られている. そこで新たに提 案されているのが, 二重頑健推定量である. 二重頑健推定量とは,傾向スコアによる重み付き推定 、 と共変量で治療効果を調整する回帰モデルを併用した推定量であり,傾向スコアと回帰モデ ルの少 なくともどちらかが正しく特定されれば, 効果を正しく推定できることが知られている. 、 また通常, 傾向スコアは治療群と対照群といった2群の割付変数に対してモデ ル化し効果を推定 する. それに対しlmbensは, たとえ割付が3群以上でも, 傾向スコアを利用できることを証明し, 一般化傾向スコアとして提案した. この方法はLOGISTIC PROCEDUREでLINK=GLOGITオプショ ンを指定することで適用できる. 本研究の目的は,シミュレ ー ション実験により,一般化傾向スコアを用いて多群に拡張させた二 重頑健推定量の性能を評価することである. 評価指標としては, 推定値と真値との差で、あるbiasと 推定値と真値の差の二乗の平均値であるMSE (Mean Square Error)を用いた. 参考文献 [1]Bang H, Robins JM. Doubly robust estimation in missing data and causal inference models. Biometrics 2005; 64:962-972. [2]Imbens GW, The role of the propensity score in estimating dose-response functions. Biometrika 2000; 87: 706-710. [3]Peter C. Austin. The performance of different propensity-score methods for estimating differences in proportions (出k differences or absolute risk reductions) in observational studies, Statistics in Medicine 2010; 29(20): 2137-2148 [4]Ping Feng, Xiao・Hua Zhou, Qing-Ming Zou, Ming-Yu Fan and Xiao・Song Li. Generalized propensity score for estimatingthe average 仕·eatment e能ct of multiple 仕ea加ents, Statistics in Medicine 2012; 31(7): 681-697 [5]Yosuke Fujii, Masayuki Henmi and Toshiharu Fuiita. Evaluating the interaction between the therapy and the treatment in clinical trials by the propensity score weighting method, Statistics in M旨dicine 2012; 31(3): 235-252. 401
プラセボ効果を抑制し試験薬の効果を効率的に検出するための エンリッチメントデザインに関する研究 0舛田優、 浜田知久馬、 安藤宗司 (東京理科大学) 医薬品の効果は、医薬品そのものが持つ効果の他に、服用したという安心感や期待感によって生 じる心理的効果が追加されることがあるが、これには個人差がある。 このため、多くの臨床試験に おいては、プラセボを対照薬として用いることで、心理的効果を差し引し、た医薬品本来の効果を正 しく評価しようとしている。 一方で、 特定の疾患領域(疹痛、 精神・神経系領域等)における臨床試験では、 プラセボ効果が 大きく現れることにより、 医薬品の効果が十分に示し難いということが問題となっている。 このよ うな問題点への対処として、 従来では、 Placebo lead-in design と呼ばれるエンリッチメントデザイン (医薬品の効果を見出し易い集団を選択するような試験デザイン)が多く用いられてきた。しかし、 Placebo non-respoder(プラセボ効果があまり現れない被験者) を判定する際にバイアスが生じる可 能性があることや、Placebo lead-in期の導入がランダム化後のプラセボの反応率に影響しないことを 示唆するメタアナリシスの結果など問題点も存在する。 このような現状から、 Sequential Parallel Comparison Design (SPCD)と呼ばれる、 二段階のエンリ ッチメントデザインが提案されている。 SPCD ではStageIにおいて全被験者集団で、の効果を、 Stage2 においてPlacebo non-responderの集団に対する効果を推定し、それらの重み付き平均に基づいて、全 体としての医薬品の効果を推定する。近年ではTwo-way Enriched Design (TED)などのSPCDを拡張 したようなデザインも提案されているが、それらの性能評価に関しては十分でないことから、 本研 究ではこれらのデザインの性能に関する検討を行う。 上記デザインでは応答に基づいて有効性の解析対象とする集団を選択することにより、潜在的に 従来の試験デザインに比べて効率が向上することが期待される。先行研究[2]では、さらにSPCDにお 、 いて中間解析を行い、条件付き検出力を用いたサンプルサイズ の再推定等を行った場合の検討を行 っている。 本研究ではSPCDにおけるより詳細な検討と、 TEDを想定した場合の性能に関して、 シ ミュレ ー ションにより検討した結果を報告する。 参考文献 [I] Maurizio Fava et al . The problem of the placebo response in clinical trials for psychiatric disorders: culprits, possible remedies, and a novel study design approach. Psychotherapy and Psychosomatics. 2003; 72:115・127 [2] Rachel K. Silverman, Anastasia Ivanova . Sample size re-estimation and other midcourse adjustments with sequential parallel comparison design. Journal ofBiopharmaceutica/ Statistics. 2017; 27(3):416-425 [3] Yeh・Fong Chen et al . Evaluation of performance of some enrichment designs dealing with high placebo response in psychia凶c clinical trials. Contemporary Clinical Trials. 2011; 32(4):592・604 402
臨床試験における2段階デザインの性能評価に関する研究 0井津慶信、 浜田知久馬、 安藤宗司 (東京理科大学) 背景 臨床試験における被験者数設計は、試験デザインの要素の中で最も重要なもののlつで、 ある。 試 験開始前に予め見積もった効果サイズに基づいて被験者数設計を決定する, 固定デザインを用いる ? のが一般的である。 しかし、この方法では見積もった効果サイズが、真の効果サイズ から帯離する と、検出力が大きく変化してしまう。 この問題を解消するために、試験の途中で被験者数再設計を 伴う適応的デザイン[l]が提案されている。適応的デザインは効果サイズの不確実性に対する頑健性 が高い一 方で、盲検化の解除に伴う実施の煩雑さや、αエラ ー の上昇などの懸念点が挙げられてい る。 研究目的 本研究は適応的デザインが抱える懸念点を解消した新たな試験デザインの提案及び、その性能評 価を行うことを目的としている。 評価指標としては、一般的に広く使用されている検出力や期待被 験者数に加え、過剰被験者数と不足検出力による 2種の損失を統合したAPS(Average Performance Score)[2]を用いた。 提案方法 提案試験デザインは、各被験者集積時点の結果のみを用いて解析を実施する。 従来の適応的デザ インでは各解析時点の結果を統合するために、検定統計量の統合を行う必要がある。 提案試験デザ インは検定統計量の統合を行わないことで、 実施の煩雑さを軽減することが狙いである。 患者集団② 患者集団① まとめ シミュレ ー ション実験により評価したところ、提案試験デザインはいずれの評価指標においても、 適応的デザインとほぼ同等の性能を示した。今後は他の提案されている適応的デザインとの性能比 較や、 新たな評価指標を用いての評価を実施することを検討する。 参考文献 [l]Cui L, Hung HMJ, Wang S. Modification ofsample size in group sequential clinical trials. Biometrics, 55:8538” 57. 1999 [2]Liu GF, Cui L. Evaluating the adaptive performance of flexible sample size designs with 甘伺tment difference in an interval. Statistics in Medicine, 27 : 584-596. 2008. 403
proc STREAMによるAnalysis Results Metadataの作成 関根 暁史 (藤本製薬株式会社) proc STREAM: The Feasible Method for Creating define.xrnl Files. Satoshi Sekine Fui imoto Pharmaceutical Corp. 要旨 従来の put 文を用いる方法から変更して、 define.xrnl の一部である Analysis Results Metadata を、 STREAMプロシジャによる方法で 作成した。 キ ー ワ ー ド:STREAMプロ シジャ, Analysis Results Metadata, define. 刃nl, PinnacleのValidator 1. はじめに SASを用いてテキストファイルを外部に吐き出す場合は、 従来はput文を用いていた。 SAS9.4より STREAMプロシジャ が実装されている。 put文を用いる方法ではクォ ー テ ー ションマ ー クで文字列を挟 み込む手聞が あると と もに、 マ クロ変数を仕込むためにシングル ・ ダブルクォ ー テ ー ションの使い方を によりそれ らが大幅に回避される。 そこで 工夫せねばならなかったが、 STREAMプロシジャの使用 STREAMプロシジャを使用することにより、define.xrnlの一部であるAnalysis Results Metadata (以下、解 析結果メタデ ー タ)を作成 すること とした。 本論文は、 既存の解析結果メタデ ー タ無しのdefine 氾nlに対し 、SAS で生成した解析結果メタデ ー タ を挿入することをコンセプト としている。 出来上っ たdefine.xrnlをPinnacleのValidatorにかけても 、 極 力Warningは出さなし、仕様を目指した(Reject, Errorはもちろん出さ如、 最後にSTREAMプロシジャを用いたPinnacleのADaMデ ー タセットのValidationについても触れる。 して見たが、xrnl文書などの作成に適していると考えられた。 STREAMプロシ 、ジャを使用 2. put文とSTREAMプロシジャ put 文においては、文書の書き始めをカラムポインタコントロ ー ラで設定しなければならなかった。 またマ 、 ‘ 、 クロ変数を仕込むために、 クォ ー テ ー ションマ ークを何重にも記入したり、 時にはシング ル ・ ダ ブ ルクォ ー テ ー ションマ ー クを反転させたりとし、った工夫が必要であった。 そのためプログラム作成者本人にとっても 可読性の良い プログラムとはならなかった。 407
%let stylesheet=define2-0-0.xst
|カラムポ仰
/* put文字/
日ename sample ” .\sample.txt ” ;
data null_;
自E Sal百pie;
put@! ’<?xml version=” I.σ’ encoding=” UTF-8 ” ?/
@! '<?畑山tylesh田 t type="旬xt/xsl” href='’’' &stylesheet("’ ヴプ/
<!-Da吋sysd州->" ;
ほ :⑩
t run:
/* STREAMプロシジャ */
日lename sample ” 人sample.txt ” ;
proc s位eamoutfile司ample; begin
空白文字は考慮さ
れる
(sample.txt)
マクロ変数を仕込むた
めに、クォーテ ーション
を何重にも記入してい
た
改行コ ー ド
!-Date: &sysdate9.一-> &streamdeliI孔newline;
beginで始まり最後はセミコロン4つで終わる。run; quit;ともに不要。
羽田レ
〈?沼nl version="1.0” encoding =” UTF-8” ?>
〈?副4旬lesheet type="text/xsl” href=” define2-仏0.芯l” ?〉
<!-Date: 13APR2017 ー〉
I
II
l 実際の出力xml文書 1
一方STREAMプロシジャでは、先頭の空白文字が考慮されるので、カラムポインタという概念は不要であ
ったり、クオー ティングを気にすることもなく、成果物そのものに近い可読性の良いプログラムを書くこと
が可能である。
3.改行コ ー ドとコメントアウト
STREAM プロシジャでは、改行コ ー ド(&streamdelim. newline;)の存在が若干可読性を慈くしているが、
resetdelim=オプションにより&s田amdelim .はユ ー ザ ー が自由に変更することが出来るので、これにより可読
性が増す。当論文では以降、改行コ ー ドはmyla bel newline;を使用するものとする。
procstream outfile=sample resetdelirrF” mylabel ” ;begin
ぐ?xml version =” 1.0” encoding ="UTF・8” ?>mylabel newline; * 改行コ ー ドの後ろ;
〈?刺-styles beet type ="text/xsl ” href-='’ &styles beet. ” ?>@treamdelii均1ewline;
〈!ーDate: &sysdate9.ー>I* reset�limの指定 * / mylabel new町吉:
/柿/のコメントはどこ
でもコメントアウト出
来る
でのコメントは改行
コー ドの後ろであれ
ばコメントアウトされ
る
/* */で固まれたコメントは通常のSASの使用と同じで、どこに書いてもコメントアウトされる(外部ファ
イルに出力されることはなし、)。一方 、*; で固まれたコメントは改行コ ー ドの後ろであればコメントアウト
されるが、改行コ ー ドの前に書いた場合は外部ファイルにその内容が出力される。
2
408
4. マ クロ
STREAMプロシジャでは外部マクロの使用が可能である。以下はxml文書としてのタイトルを出力 するマ
クロである。 マクロは最後にセミコロンを打たずとも展開する。
%macro T汀1羽子title =);
〈!ー****ホホホ*******ホ******************** ー> my label newline;
〈!ー判権 &一t社le.料 *ー>mylabel newline;
〈!ー*市場事事**ホ**事事***ホ***事***事事**事*車場***ホ ー注目司ylabel newline;
%mend TITLE;
proc stream outfile=sample resetdelim=勺nyla]2.el";begin
%TIT1旦ーtitle = 外部ファイルにリンクを貼る)
1111-
寸
<'-- * 樹齢 **事訓ド ホ*事事* 牟 ******* 本****ホ権 利齢車市* 本車事**ー〉
判事 ..〉
〈!ー*** 外部ファイルにリンクを貼る
<Iー***ホホ******** 業常事* 省幹事*********ホ******ー〉
f
セミコロンはなくとも展
開する。逆にセミコロン
が出力に残ってしまうと
define.xmlに不具合をも
たらす。
xml 文書におけるコメントアウト
5.繰り返しの構造
put文では保持したデ ー タセットの内容をそのまま外に吐き出すことが出来た。 しかしSTREAMプロシジ
ャはデ ー タセットを保持したり、 デ ー タを発生させたりすることが出来ないので、 外側で作ったデ ー タセッ
トの内容をマクロ変数の形でSTREAMの内部に引き渡すしかない。下に xml のタグが繰り返されている構造
をSTREAMに引き渡す方法を示す。
<def:leafID=” LF品t14-3-0l.sas ” 対血k:h 問f.= ”at14-3-01.sas ” 〉
<def:泊le>atl4-3-01.sas</def.title>
〈ゴdef:leaf.>
<def:leafID=” LF.atl4-5-02.sas ” 対血k:h問f.= ”atl4-5-02.sas ” 〉
くdef:title>at 14-5-02.sas</def:title>
</def:leaf.>
SASプログラムに
リンクを貼る xml文
書
上記のようなデ ー タセットlink あったとして、 <def:leaf.>く/def:leaf.>で閉じられたタグが繰り返される出力を
作って見る。 先ずはデ ー タセットlink を加工してlinksを作成する。
data links; set並1k;
text='<def:leafID=” 日-'llstrip(ID)II ’” 刈ink:href.="'llstrip(href)II ’川nylabel newline;'; output;
te泣=' <def:titleプUstrip(Title)II可def:title>町label newline;'; output;
te泣='</def:leaf.>mylabel newline;’;output;
run;
更にデ ー タセットlinksのtextの情報を、 proc sqlを用いてマクロ変数化し、 マクロ変数をSTREAM
内で展開すれば、 上記のxml文書の内容は実現する。
3
409
proc sq! noprint;
select t叫iI肱一時eat抑制ed by ” 企omlinks;
quit;
proc streamoutfile=古 ample resetdelirrF” mylabel ” ;
begin
&一時peat.
. マクロ変数の展開
-==::::::::; SQLによるマクロ変数化
__J
L
先程のデ ータステップおよびproc sq!の内容は、 %let r c=%sysぬnc(dosubl(
));で固まれた中に記述すること
で、 STREAM プロシジャ内に収めることは出来る。 但しプログラムの可読性はよろしいとは言えないので、
余りお薦め出来る方法ではない。
%let rc=%sysfunc(dos1』bl(
proc streamoutfile= sample resetdelirrF” mylabel” ;
});
で閉じられた箇所に、データステップや
begin
プロシジャステップの記入は可能
%let rc=%sysfunc(dosubl(
data links; set link;
’”
’
te 泣=’<def:leafID="LF.'llstrip(ID)II川 刈ink:href="'llstrip(hret)II > r可,label newline ; ; output;
’
te活 = くd ef:titleプllstripσ1t1eJII吋def:title> my label newline;': output:
te 泣=’</def:leaf-> my label newline ; ’ ; output:
run;
proc sql noprint;
select text into : _repeat separated by ”from links;
quit;
));
&_repeat.
6.DDEの操作
STREAMプロシジャはDDEも操作することが出来る。下記にエクセルを自動で閉じる工程を示している。
書き始めの角括弧のみ特殊文字と捉えられてしまうのか、 %NRSTRによるクオ ー ティングをしておかないと
STREAMプロシジャは作動しない。 この一 手聞のみはかかるが、 他は従前のput文による方法の煩わしさか
らは解放されるであろう。 このようにxml 文書作成のみならず、 従前 put文で書いていた方法の大半は
STREAMプロシジャによる方法に置き換え可能である。
*エクセルを自動で閉じる;
%let bracket= [;
自ena間対s dde ’四eljsyste凶/;
proc streamoutfile司s; begin%NRSTR(&bracket.)
close(false )]
[q凶OJ
E
書き始めの角括弧は特殊文字と捉え
られてしまう
%NRSTRによるクオーティング
残りの角括弧のクオーティング
は不要
以上のテクニックを用いて、 いよいよ次章より解析結果メタデ ータを作成することとする。
4
410
7. 4つのエクセルシ ー トと4つのテキストファイル 解 析 結 果 メ タ デ ー タ作成に用いるエク セルテンプレ ー ト(arm_template.xlsx)を先ず用意し た 。 ぽm_template刈sxは、Leafシ ー ト(リンクを貼りたい外部ファイルの定義)、AnalysisResultシ ー ト( 解析結果 メタデ ータ全般定義)、Variableシ ー ト (使用デ ー タセットおよび使用変数を定義)、WhereClauseシ ー ト(デ ー タ抽出条件定義)の4つのシ ー トから成り立っている。それらのシ ートを SASプログラム(arm_generate品s) が読み込み、情報を加工することでxml言語で書かれた4つのテキストファイル、whereclause.txt(デ ー タ抽 出条件)、comment.凶(複数 のデ ー タセットを 使用する際の結合コメント)、external_links. txt(外部ファイル にリンクを貼る)、analysisresults.txt(解析結果メタデ ータ全般)をそれぞれ生成する。概念図は以下の通りで ある。 arm_template.対sx 8. whereclause (デ ー タ抽出条件) whereclause.txt はデ ー タ 抽 出 条 件部分( Data References (incl. Selection Criteria)) を担っ て いる 。 def: WhereC!auseDef Element lこPARAMCDが記入されていた場合、arm:AnalysisResult Element (analysisresults.txt の中にある) にも自動的にPARAMCDを書き入れる仕様とした。 Data References (incl. Selection Criteria) の P此AMCD= “ SYSBP吻内容は AnalyisParameter (s)にも連動して 書き込まれることとなる。 加alys函 Parame也制 E畠島強位昆= ・ 町田P' (Sys鈎lie Bio 。 dP 同S副 re (mmHg)) I 踊a柄函 ぬ巾b恒例 Qf.G(Ch 胡ge from Basel耐} 加alys包 Reason SPECIFIED IN SAP 加拘拍 Purpose PRIii似RY OUTCOME MEASl』 RE Da句 References (111d. Selection Cri旬由】 血盟『PARAMCD= ’ S'ISBP ' 剖 d岨L且!EL=叩and E魁iEI.= ・V'] � arm:A剛S胸suit伽tent :W 自f ……… h圃 5 411
9. comment (複数のデ ータセットを使用する際の結合コメント)
例えば有害事象集計をする際に、有害事象発現例数はADAEから、 割合の分母はADSLから引っ張って来
ることになる。ADAE,ADSLとし、う 複数のデ ー タセットの結合法をコメントとして入れられる。 その際
COM.JOIN-ADAE-ADSLという CommentOIDが作られるので、 下欄のCommentsにも同内容が記載されるこ
とになる。
Da包
盤弘= "V' and 鑑liEB = "Y"]
Rafe聞曲s
J11塩畠EロKIE
11
血&臨
EEL=�Y'J
(md;Seled蜘 I
有奮闘鯛罰金制蜘AD帥鴇齢、何事A腕前覧虫vt.:.AI鳩E抑制措例制(USUBJIDJ惜晶、AD経
C両面白E
,
l
E
由凝固Eレコート喝治子とした.
10. external_li肱s (外部ファイルにリンクを貼る)
具体的なプログラムは5章で詳しく述べさせて頂いたが、解析結果作成用SASプログラムまでリンクを貼
るためのxmlである。解析結果作成用SASプログラム以外にもADRG(デ ー タガイド)やADaM作成プログラ
ムなどへもここからまとめてリンク定義しでもよい。
|陥gramm切|同四国on9.4J
S幅 値men包
:att4・S-02.s:aA
11. analysisres叫ts (解析結果メタデータ全般)
CSRのlつの表題の中で複数の解析を行っている場合、 下記のR.l, R.2のように複数のTableのブロック
を発生することが出来る。
6
412
エクセノレテンプレ ー ト(arm_template.xlsx)のVariableシー トにおいて、AnalysisDatasetにデ ータセット名を記
載すれば DataReferencesに反映されることになっている。Analyis Variable (s)で直接使用されないADSLもこ
こでは記入が必要となる。ADAE の変数である AEBODSYS,AEDECODをカンマ区切りで記入することによ
って、 Analyis Parameter (s)に分離されて表示されるようになっている(変数が2つ以上あってもカンマ区切
りにされていれば反映可)。
Ari;
申�54!.
�I
ーー白...面白圃圃圃・ー
m雌ロ回国B, ="V' and鑑富島=叩3
.。司個
·Ile勉悶1JICII語 '\.1
'.Ill
"
'f'J
(ind. 白岡蜘_,411超自L箆櫨毘ヨ」=,
l
SU.,,.倒拙し、何孟a
制鍋嫡加
同開職
回畑出3
’由康相1)1.,コート宅分子ぷ洗.
エ クセルテンプレ ー トのAnalysisResultシ ー トにおい て 、前も って空白文字と改行コ ー ド入り の
ProgrammingStatementsを記載しておけば、define.xml上で締
麗に 折り返す。 このように氾nl言語そのものの
折り返しと、xmlタグに組み込まれた文字列の折り返しの区別がないところが STREAMプロシジャの便利な
ところである。
込
コ もも 仕
4 Jハ
ル
防·ogramm加g
S包曲目men包
行 前ク に
改 は エ 肉
proc mixed data = ADVS; mylabel newline;
’ ’
’ ’
where PARAMCD="SYSBP" and ANL01 FL= Y and FASFL= Y ;mylabel newline;
class TRTPN AVISITN USUBJID; mylabel newline;
model CHG = TRTPN AVISITN BASE / ddfm = KR; mylabel newline;
repeated AVISITN / type = TOEPH subject = USUBJID所蒜百五wline;
n』n;
I E副S ver•on �.4]
r
p居留副-d qita = AD四Z
抽出睡PAlUIMCI戸商店措置騎 IIJld Alm阻まL='Y' aild 'DSFL='Y';
c.1�11 Bl聾歯師四回町田町田:ID;
Jmp,制欄宗田醐A�S瑚醐E I d曲=m;
r一一一「
-
|
-�前蜘d 留言語Z四/ type =曹偲盟罰対e鴫=四国JJ:D;圃-ーーーー
『Uー
干
�;
.,,
I
I
己乙」
’ー・E
以上のように釦alysisresults.txtを作成するが、ファイルの最後に、</MetaDataVersion> </Study>く/ODM>と
追記しておく。
7
413
12. define.xml作成 以上 4 つのテキストファイルが揃ったところで、 既存の define.xml に解析結果メタデ ータを挿入すること とする。 既存の解析結果メタデ ータ無しの define.xml を rolddefine.xml」と名付けておく。 olddefine.xml を ” SAS で読み込み 2 つのデ ー タセット header およびぬoter に分解する。 <ItemGroupDef OID が出て来た後のパ ” ー ツが footer であり、 それより前のパ ー ツが header である。 なお header には 「xmlns:arm=”h 即://www.cdisc.org/ns/arm/vl .0 ”」を追記し、 footer の「</MetaDataVersion> <ゴ Study>く/ODM>」 は削除しておく。更に 4 つのテキストファイル whereclause.txt、comment.txt、external_links.txt、analysisresults.txt の内容を再度読み込んで、来て、下図の順番通りに情報を積み上げて合成し、内容を外部出力すれば define.xml は完成する。 最後の出力日lename ステ ー トメントにオプション encoding=” UTF-8 " を付けておけば、 符号化方 式に間違いがない。 de白1e 沼nl 8 414
以上、一見遠回りな作成方法を採っているように見えるが、この方法により「 D00007 Invalid content was
found鉱紅ting with element ’def:CommentDef. J
は v2.l.3 版を用いた。解析結果メタデ
ー
の War百ing を回避することが出来ている。Pinnacle の Validator
タにおいて回避出来ない Warning とは「 DD0078 Document
’LF.atl4・5・02.sas' is not referenced」のようなリンクが貼られていないという Warning である。実際にはプログ
ラムにリンクは貼られているのであるが、 v2.l.3 版が解析結果メタデ ー タ自体を監視していないことに由来
するものであり、潜在的な問題である。
13.ADaMデ ー タセットのValidation
STREAM プロシジャは Pinnacle の ADaM デ ー タセットの Validation にも用いることが出来る。Pinnacle の
コンポ ー ネントには「 validator-cli・2.1.3.j 釘」(cli とはコマンドラインインタ ー フェ ー ス)が含まれており、これ
を SAS 側から制御することで Validation の自動化が可能となる。以下に ADaM デ ー タセットの Validation 法
を概説する( ADaM の Validation に define.xml を添えることは可能である) 。
/ * プログラム・ adam validation.sas キ /
キ = Pinnacle2l(Community 版)の置き場所(絶対パスを指定);
%let __path= C:\p血nacle21・community 2.1.3\;
キ
=ADaM, define.xml ,出力ファイルの置き場所(絶対ノ号スを指定);
%let _abs= C:\pinnacle21・co目前田nity-2.1.3\;
bat ファイ J レ!こ出力。
司
カレントディレクトリ
をPinnacle の置き場
所に合わせる。
ADaM のxpt ファイ J レ
を全て指定している。
NCI Terminology の
指定。
define.xml 添付。
この行はコメントア
ウトすることが出来
る。
畳lename _temp ” &_abs人adam_validation.bat”;
proc streamoutfile= temp resetdelirrF"mylabel'’;begin
cd &__path.町司ylabel newline;
ADaM IG の指定。
java寸ar components\lib\validator-cli-2.1.3.jar
コマンドラインでは空白文字が許
「可ype=ADaM
されないので、空白文字をダブル
一〈・source=&_abs.\*.xpt
クォーテ ーションで囲っている。
L-source勾pe=SAS
-config=\ADaM ” ” 1.0 ” ” (PMDA).
onfig:cdisc=201ふ03-25
onfig:de白1e=&_absλde白1e.沼叫
ーreport=&_absλadam_validation.xlsx
Validation レポートをエクセルファイ
-report:type=Excel
-report:cuto任=1000
ルに出力。カットオフを1000 として
-report:overwrite=yes
ファイルの上魯き可としている。
> &_abs.\adam_val蜘tion�g mylabel newline;
exit
options noxwait xsync;
x ” & abs人adam validation.bat ”;
(Pinnacle の実行log)
i
制御j仙at ファイルを叩く。|
Beginning validation, please wait...
The validation has completed.
本来ならば define氾nl そのものの Validation を SAS から制御したいところであったが、validator-cli-2.1.3.jar
には define氾nl の Validation 機能が落ちてしまっているようで、あった。
9
415
14. まとめ STREAMプロシジャを使用することによりクオ ー ティングを気にすることなく 、 define.xmlの 一 部で ある解析結果メタデ ータを無理なく作成することが出来た。また define.xmlの作成の工夫によりPinnacle の泊Iidatorが出す特定のWarninngを回避した。 sτREAMプロ 、ンジャはxmlのようにタグで固まれた文 書の作成に向いていると思われるが、 その他にも、 従来からput文で書かれている方法(DDE、 コマ ン ドライン 、 VBScript、 R、 PinacleのValidator等の操作)の大半はSTREAMに置き換え可能と思われる。 SASプログラム等はSASプレミアムラウンジ(Web)に置かせて頂いたので、 ご参照頂きたい。 参考文献 1) Don Henderson (2014). PROC ST阻AM and SAS Server Pages: Generating Custom HTML R句Orts, SAS Global Forum 2014 Paper 1738-2014 2) Joseph Hinson (2015). Proc STREAM:百1e Perfect Tool For Creating Patient Narratives, PharmaSUG 2015 Paper AD03 3) Joseph回nson (2016). η1e New STREAM Procedure as a Virtual Medical Writer, PharmaSUG 2016 Paper AD17 4) CDISC ADaM Metadata Sub-Team (2015). Analysis Results Metadata Specification Version 1.0 for Define-XML 弛rsion 2, 2015 Clinical Data Interchange Standards Consortium, Inc. 5) Chris Holland (2012). Implementing CDISC Using SAS An End-to-End Guide, SAS Institute Inc. 6)高浪洋平(2014). SASとExcelを用いたCDISC ADaM標準における作業効率化の試み, SASユ ー ザ ー 総会2014論文集 7)高浪洋平(2015). 解析結果メタデ ータの概要とSASによる作成方法の提案, SASユ ー ザ ー 総会2015論文集 8) Mark Crangle (2014). Runn泊g OpenCDISC from SAS, PhUSE 2014 Paper TS04 9) Sergiy Sirichenko (2016). Usage of P innacle 21 Community Toolset 2.1.1 for Clinical Programmers, PharmaSUG 2016 Paper HT04 10 416
付録 ー * arm_generate. sas *I /プログラム * ァイルはここに出力される)*/ /パス指定(全フ 引et path=. :*本プログラムと同じ場所に全ての読み込みファイルを置くことが前提, もlet metadata=arm_template. xlsx: ー * /既存の解析結果メ9デ 型無しのdefine. xml名字/ * 引et _file=olddefine. xml :本プログラムと同じ場所に置く, 首let lt=%nrstr (品lt); 引et apos=%nrstr(&apos): 百Iet quot=%nrstr(") : options noxsync: ”’ &path.平伽1etadata.”’;本エクセルを自動で聞く, x * / I* 4つのヱクセルシ ー トの読み込み ” filename xis dde "EXCEL1Leaf!R2C1 :R100C3 ; data Iink: ’ ’ infile xis dsd notab dim= 09 x mi ssover. Iength ID Tit Ie Href $32767 : input ID Title Href $ : if ID="" then delete: run: ” filename xis dde ”EXCEL I AnalysisResu It!R2C1: R100C15 ; data _resu It: ’ ’ infi le xis dsd notab dim= 09 x mi ssover length DisplayTable DisplayTitle CSR_ID侭凡Page RepeatTable RepeatTitle 加aIysi sReason Ana IysisPurpose Joi nCαnment Ana I ysi sDocumentation SAP_ID SAP _Page SASversion ProgrammingStatements SASprogram $32767 : input DisplayTable DisplayTitle CSR_ID CSR_page RepeatTable RepeatTitle Ana I ysi sReason Ana Iysi sPurpose JoinCor『町rent Ana IysisDocumentation SAP_ID SAP_Page SASvers ion ProgranmingStatements SASprogram $ . 山’ if RepeatTit Ie= then de Iete: run. ” ・ filena『冊xis dde "EXCEL1Variable!R2C1 : R100C6 ; data variable: ’ infile xis dsd notab dim= 09' x missover length DisplayTable RepeatTable AnalysisDataset AnalysisVariables $32767 : input DisplayTable RepeatTable AnalysisDataset AnalysisVariables $ : if DisplayTable="" then delete. run. ” fi Iename x Is dde "EXCEL I WhereC Iause!R2C1 : RlOOC6 ; data附r: ’ ’ infi le xis dsd notab dim= 09 x mi ssover: length Displ ayTable RepeatTable Analysi sDataset CheckVariab Ie Comparator CheckValue $32767 : input DisplayTable RepeatTable AnalysisDataset CheckVariable C 叩1parator CheckVa Iue $ . 山’ if DisplayTable= then de Iete: run. 伽祖cro TITLE(ーtitle=): 神本 〈!一帯同特*紳 * ** * 紳 * 梓 * 紳 * 紳 * 紳 * 柿キ 紳 * 紳 * 梓 * ー> mylabel new Iine: * 林*林***紳 <! ー 神本 丸title. * 榊ー > mylabel newline: 林** **ー> mylabel new I ine: く!一幹*特権幹事幹事柿キ紳*柿仲神神* 神本特*特*柿*榊*榊*紳 伽18『td TITLE: proc sort data=whr. by DisplayTable RepeatTable: run: 内 川’ proc sort data=_resu It out=resu Ito: by Displ ayTable RepeatTable: where Di sp I ayTab Ie = ;run: data resu Itl. ” ’ ’ ” ’ ” merge rest』ltO whr(where=(CheckVariable in( PARAMCD γ PARAM J PARAMN ))keep=DisplayTable RepeatTable AnalysisDataset CheckVari ab Ie): by DisplayTable RepeatTable: ’ "” ’ if CheckVariable·= then ParameterOID=strip(AnalysisDataset)11 ソ 11strip(CheckVari ab Ie) : obsl=_n_. drop AnalysisDataset CheckVariable: run. proc sort data=variable: by DisplayTable RepeatTable: run: 11 417
data variableO: set variable:
by DisplayTable RepeatTable:
I ength comjoin $32767;
retain comjoin:
”
comjoin=strip(comjoin) 11 -"11strip(Ana I ysisDataset) ;
if first. RepeatTab I e then comjoin=Ana I ysisDataset;
if last.RepeatTable:
run:
proc sql:
'
’
create table comjoin as select distinct DisplayTable.RepeatTable.comjoin from variableO where comjoin I ike 首-% .
quit:
data variable!: merge variable comjoin: by DisplayTable RepeatTable:
co『1t=countw(Ana I ysisVariab I es.”.勺,
do i=1 to cont; I ength var $32767;
’ ”
var=scan(Ana I ysisVariab I es.i. i ) :output:
end:
run:
data variable2: set variable!:
obs2=_n_:
run;
data result2: merge result! variable2:
by DisplayTable RepeatTable:
run:
proc sort data=resu I t2; by obs1 obs2: run;
data resu I t3;
set rest』lt2:
by notsorted DisplayTable notsorted RepeatTable notsorted加a I ysisDataset;
retain repl rep2 rep3 0:
if first. DisplayTable then rep1=rep1+1;
if first. RepeatTable then rep2=rep2+1;
if first. AnalysisDataset then rep3=rep3+1;
run:
data co剛聞t:
《 川’
set resu I t3(where=(JoinComment = ));
by repl rep2 rep3;
I ength text $32767;
if first. rep2 then do .
’
”
”’ '
’
text= my I abe I new I ine;
<def: CommentDef OID= COM. JOIN 1 lstr ip(comjoin) 11 ) : output:
’
’
<Description> ;output:
text= my label new I ine:
’
text= my label new I ine:
<TranslatedText
’
目
’
xml · 1ang="en γ11strip(Joi nComment) 11 <ITrans I atedText> ;output:
’
’
</Description> ,output:
text= my I abe I new I ine:
’
</def:CommentDef)'. output:
text= my label new I ine:
end:
run:
唱let _repeat=.引nitialize:
proc sq I noprint;
se I ect text into : _repeat separated by ’’ from comment;
quit:
”
”
'’
fi I ename comment &path.半cmrmer】t txt encoding="UTF-8 I rec1=32767 :
”
proc stream outfile=connent quoting=both resetdelim="mylabel ;begin
首 TITLEしtitle=複数のデ - 11セットを使用する際の結合コメント)
&_repeat.
data arm:
set resu I t3;
by repl rep2 rep3;
I ength text $32767;
if first. repl then do:
’
’
’
くarm:Rest』ltDisplay OID="RD. 1 lstrip(DisplayTable) 11 w
text= my label newline;
山
’
’
Name= 1 lstrip(DisplayTable) 11 ") ;output:
’
’
くDescription> ;output:
text= my label new I ine:.
’
’
" ’
’
<TranslatedText xml . lang=、n > 1 lstrip(DisplayTitle) 11 </Trans I atedText> .
text= my label new I ine:
output:
’
’
<!Description> ;output:
text= my I abe I new I ine:
12
418
‘ ”u
if CSR ID =
then do:
text=' myIabeI newIine;
’
text= mylabel newIine:
ホNamedDestination;
output,
’
text= myIabeI newIine:
end:
end:
’
<def:DocumentRef leaflD="LF. · 1 lstrip(CSR ID) 11 ヴ,output:
"
’
”
”’
町
Type= PhysicaIRef !> ;
くdef:PDFPageRef PageRefs= 11strip(CSR_Page) 11
’
く/def: DocumentRef> ;output:
if first. rep2 then do:
’
<arm:AnalysisResl』It' ; output:
text= mylabeI newIine;
’
’
’
’
’
DID= M I lstrip(DisplayTable) 11 . 'I lstrip(RepeatTable) 11 '" ; output:
text= myIabeI newIine;
川’
then do:
if Parameterorn·=
’
”
’
’
ParameterOID= IT. I lstrip(ParameterOID) 11 m ’ output.
text= mylabel newIine:
end:
’ m
"’
’output:
text=' myIabeI newIine;
AnaI ysisReason= 11strip(AnaI ysisReason) 11
’
”
川
text= myIabeI newIine:
AnaIysisPurpose= 11strip(AnaIysisPurpose) 11 γ:output:
・
’
<Description> ;output:
text= mylabeI newIine;
” ’
’
’
’
くTranslatedText xml:lang=、n 〉 I lstrip(RepeatTitle) 11 く/TransIatedText> ’
text= myIabeI newI川e.
output;
’
’
</Description> ;output:
text= mylabel newIine.
" ""
”
if comjoin =
品JoinComment"よ then do:
”
’
”
text= mylabel newIine:
くarm:AnaIysisDatasets def: C 叩unentOID= COM. JOIN H strip(c 叩join) 11 γ;
output;
end;
else do:
’
’
text= myIabeI newIine:
くarm: AnaIysisDatasets> :output:
end:
end:
-目
if first. rep3 then do;
’
’
くarm: AnaIysisDataset ltemGroupOID=" IG. 11strip(AnaIysisDataset) 11”γ
text= mylabel newIine,
output;
’
text= myIabeI newIine.
<def:WhereCIauseRef
’
”
・
”
’
”
WhereC IauseOID= WC. I lstrip(DisplayTable) 11 1 lstrip(RepeatTable) 11 11strip(AnaIysisDataset) 11 "/> ,output:
end:
.
…
then do:
if var·=
’
text= mylabel newline:
'
”
’
Item01D= IT. 11strip(AnaIysisDataset) 11
end:
if Iast. rep3 then do;
’
text= mylabel newIine:
end:
’
<arm:AnalysisVariable
”’
'
1 lstrip(var) 11 !> ; output;
目
く/arm:Ana I ysisDataset> ;output:
if Iast. rep2 then do;
’
’
text= mylabel newIine:
</arm:AnalysisDatasets> ;output;
’
text= mylabel newIine:
<arm:Documentation>' ; output:
’
’
text= mylabel newIine:
<Description> ,output:
text=' myIabeI newIine:
くTransIatedText
’
・
’
xml lang=、n γ11strip(AnaIysisDocumentation) 11 く/TransIatedText> ,output:
’
’
text= mylabel newIine:
く/Description> ,output:
" …
if SAp_(D =
then do:
’
”
’
くdef:DocumentRef Ieaf ID="LF. 1 lstrip(SAP_ID) 11 ツ;output:
text= mylabel newIine,
”
山
”’
'’
’
’
くdef:PDFPageRef PageRefs= 11strip(SAP_Page) 11 Type= PhysicaIRef /〉 .
text= myIabeI newIine,
output;キNamedDestination;
’
’
text= mylabel newIine:
く/def: DocumentRef> ;output:
end:
’
’
text= myIabeI newIine.
<!arm: Documentation> ;output;
’
”
くarm:ProgrammingCode Context='" 1 lstrip(SASversion) 11 ツ;output:
text= myIabeI newIine;
…
then do:
if ProgrammingStat聞ents·=
’
text=' myIabeI newIine;
くarm:Code> ;output:
・
・
’
text= mylabel newIine:1 lstrip(ProgrammingStatements) 11 · ; output:
’
’
text= mylabel newIine.
</arm:Code> ,output:
end:
13
419
‘ nH
then do;/キ5. 3. 9 ChiId Elements事/
if SASprogram =
”
n
’
’
<def: Docur『1entRef leafID= LF.' 1 lstrip(SASprogram)町 /〉 ;output;
text= myIabeI new Iine;
end;
’
text= my label newline;
text= ' my IabeI new Iine;
・
(/arm:ProgrammingCode> ;output;
・
(/arm:AnaIysisResuIt> ;output;
end;
if last repl then do;
’
’
text= mylabel new I ine;
</arm:ResultDisplay> ;output:
end;
run;
引et _repeat=;市initialize;
proc sql noprint:
’ .
fr側 arm:
select text into : _repeat separated by
quit:
n
H
n
n
fi Iename ar &path. ¥ana Iysisrest』Its. txt encoding= UTF-8 Irec I=32767 ;
n
n
proo str am outfile司r quoting=both resetdelim= mylabel ; begin
首 Tl立Eしtitle=解析結果メタデ ータ全般)
<arm:AnaIysisResuItDispIays>
品_repeat.
<Jar田:AnalysisResultDisplays) mylabel newline:
mylabel newI ine:
</MetaDataVersion> /ホ改行事/mylabel newline;/キ改行*/
</Study> my IabeI newI ine: *改行:
</ODM>
・
data whr_clause: set whr; by DisplayTable RepeatTable:
cont=countw(CheckVa Iue,ぺ勺;
do i=1 to cont; Iength whr $32767;
whr=scan(CheckVa Iue. i. へつ; output:
end:
run;
data _clause:
set whr_clause:
by notsorted DisplayTable notsorted RepeatTable notsorted AnalysisDataset notsorted CheckVariable:
retain repl rep2 rep3 rep4 O:
if first. DisplayTable then rep1 =rep1+1;
if first. RepeatTable then rep2=rep2+1;
if first.加alysisDataset then rep3=rep3+1:
if first.肋eekVariabIe then rep4=rep4+1 :
run;
data clause: set clause:
Iength text $32767;
by repl rep2 rep3 rep4;
if first. rep3 then do;
・
<def:WhereClauseDef
text= mylabel new Iine;
n
' ’
’
'
’ H ’
OID= WC. 1 lstrip(DisplayTable) 11 . I lstrip(RepeatTable) 11 .’11strip(AnaIysisDataset) 11 > ;output;
end;
if first. rep4 then do;
”
n
刷
’
’
<RangeCheck C岬arator= I I strip(伽刷rator) 11 w SoftHard= Soft
text= 田ylabel n酬Iine;
H
'
’
・n ・
def:Jt聞OID= IT. 1 lstrip(AnalysisDataset) 11 .・I lstrip(CheckVariable) 11 ) ;output:
end;
’
・
’
・
く.
CheckVaIue> I lstrip(Whr) 11 </CheckVaIue> ;output:
text= mylabel newline:
if last. rep4 then do:
’
’
text= my IabeI new Iine ;
</RangeCheck> ;output:
end:
if last. rep3 then do:
’
’
く/def:WhereCIauseDef> ;output:
text= 町label n棚line;
end:
run:
14
420
自let _repeat=;本I n itia Ii ze:
proc sql noprint:
’ ’
from clause:
seIect text into : _repeat separated by
quit:
'’
filename clause ’'&path.平州erecIause. txt" encodi ng="UTF-8 I rec I=32767 :
”
”
proc stream outfile=clause quoting=both resetdel im= mylabel ;begin
唱 TIT££,しtitle= デ-11抽出条件)
&_repeat.
sl
L脈問
nH
m
o
v’
1
S
aM
W
aM
ふE-
TE’
Z
し
EE
-nu
-
品
目
・
作
u
w
川
は
ゐ
l
u
Jn
"’
山
”
eo
’
『,,
守,
pu gs
4v n
n,‘
bahv
rau
,
.
H
H
anuEE’
ae
ゐL
Uク
t
,
一
一
、
剖
nH O
J
VE HU
開
』
vs
hH
n
U
F
O
υ2
lun n
u 』五凶
nH n
2 回同関
| 一一時 を
nu
a u
抗
町
n
v
a hw
閉山 &
噌
nu司s’ nv 鉱m
-LD
pr
a
T
Ul
y
S H
lun
-
-
m川
n
n畠M
-
-
- 1nHmZ
・
1
-
--
anu
叩
∞引
n00dみS相
r
ET・
。しV
-
w
eo
e
VA VE
’
+L
、・J
-
る
・
‘
,
、
以
、
・
-
--
’
-
VEM鴨川nv
&_repeat.
-
s
e
n
wl
’
+L
GL
&L
X a- -
、
apeaSE-
au
-.
,
n
・レ
e
v季
aM
au
nuF
V,
.,
’
’ιE
as
an
Ha e
ed
v
’
E
VE
&E
dつ
P
x
- &aE』 -
’
・・’ a
・・
s
OL
wa hw au
ee
nu
Fa nw
-
’
目
’
au
『
UR
,
,
-
n
n
nH
-
-
I
nz
u= 『
,
,
’
w a s
,
-
L
&
i
-
-
-
-
w-
n a -
LK
-
-
’
’
帆
p
E-
E
aE
u
・
『,
,
. wEE・・
’
nN
・
a目
-
It-
L
・+nnH
n
w
w
lEq’
-
l
--
q u a ga s -
a
-’
+L
aa
,TE
a巴「
n ・l
+L h7
*・
n
n
n
t @Av n
-
-
vE Hu
’
・
・a
au
ahv
BE-
-o
+・-
---
-a-
aE・
va+E-
anwnυ ahw
一
-
&E』
aE-
lnM
ahvauwauv &・‘ nurvA
・ 0VA
a0
WL n
ut n
M・n
u
aa n
u a uw
VA
E
a u nH4 L
a EE
F
O るL aa,a ea
ee-
-B
ゐL
nv
.
, &L
LK
El
al--
’BE
e
n tnHu’ uy My
e --
品L
e
v- -
n
u
司
+L
・
1
+L m m m
r
回、
何
c
m
+
L
U--
-
-
s
ea
es
s
e
-,
t
’ ・・
・’ na -
e
;
n
= +-
’
1
L
,
,
L L ’
-
&
備
》
+=L =
ゐ+
L -
nu
-
w L a u nu
・・
w
&
x
x
n
e
o
s i
l
o y
-
- axea-
E ・
ua nv H U
‘・
V
MU-
,
,
-
’ va,
&L +L &L
L aM
nU V
B
G i
t
-
pE
Mu
nv
nu『
』nu
”
くdef:leaf ID= LF. ’ 1 lstrip(IDl 11 xi ink:href= l lstrip(href) 11 γ;output:
’
・
・
くdef:title> 1 lstrip(Title) 11 く/def:title> , output:
’
く/def:Ieaf> :output;
/*既存のdefineの読み込みと分割*/
”
”
”
filename olddef &path.潟jile." encoding= UTF-8 I rec I=32767,
data header footer:
infile olddef firstobs=l pad ;
input @1 CNT $char32767. ;
”
”
”
”
”
”
if index(CNT, </MetaDataVers ion> ) >O I index(CNT, </Study> l >O I index(CNT, く/ODM> ))0 then delete:
”
’
CNT=tranwrd(CNT. ·xmlns=·.' X 『『lfns:arm="http://www. cdisc. org/ns/arm/vl. 0 xmlns= );
retain rep O;
”
if i ndex(CNT 守 <ltemGroupDef OIDづ)0 then rep=l .
if rep=O then output header ,
else if rep=l then output footer,
run;
/本4つのテキストファイルの読み込み*/
data clause;
infile clause fi rstobs=l pad
input申1 CNT $char32767. ;
run.
data comment:
infi Ie comment firstobs=l pad :
input @1 CNT $char32767. :
run.
data externa I:
infi Ie externaI fi rstobs=l pad :
input申1 CNT $char32767. :
run:
data anaIysisrest』Its:
infile ar fi rstobs=l pad .
input @1 CNT $char32767. :
run.
15
421
I* define. xml合成本/ ” "’ ” ” file『1ame newdef &path.平define. xml encoding= UTF-8 Irec 1=32767 data _nulI_; set header cI ause footer comment externaI anaIysi srest』Its; ’ w if CNT"= ’ file newdef; put +(kverify (CNT, '”’)ー1) CNT; run; /ホエクセルを自動で閉じる*/ 首Iet bracket=[; ’ ’ filename xis dde exce I J system proc stream outfiI e=xIs, begin%NRSTR (品bracket.) cI ose (faI se)] [quit()] I* define. xmlを自動で聞くキ/ X "&path.平define. xml"; 16 422
帳票MockupからのRTF用テンプレ ー トSASプログラム自動作成ツール 「Taiho TLF Automated Tool(TTAT)」の紹介 0伊藤衡気 、栗矢芳之 、銭本敦2 2 l ( 1 株式会社タクミインフォメ ー ションテクノロジ 一 、2大鵬薬品工業株式会社) [Prologue] 臨床試験におけるTLFの主流がExcelからRTFに移行した今、解析結果などの本質的な部分ではなく、 見た目を整えるテンプレ ートプログラムの作成に時間をとられるといった問題が生じている。 一度作成したものに、列の追加や罫線の有無、各列の幅の調整やラベルの修正など、細々した調整 が入ることも少なくなく、手聞がかかる作業となっていることは否めない。 cProgressJ RTFで、 作成するMockupをExcelでイ乍成している企業もあるが、今回我々はExcelでのレイアウト情報 (罫謀、文字列、インデント、列数等) をVBAで取得し、RTF出力用のSASマクロプログラムを自動 生成するツ ー ル「Taiho TLF Automated Tool (以下TTAT)」を開発した。TTATによって自動生成さ れたマクロプログラムのパラメ ー タに、 解析結果のデ ー タセットの変数名を設定するだけで、 Mockupの見た目通りのRTFが作成される。 [Advantage] TTATにより、テンプレ ー トプログラム作成の手間自体が大きく省けることに加え、細々とした変更 にも簡単に対応できる。さらに、Mockupの編集が、TTATから生成されるSASプログラムに反映され るため、MockupとRTFテンプレ ートの差異の予防にもなる。 [Presentation] プレゼンテ ー ションでは、実際にはどのように動くのか、デモを交えて機能を紹介(及び公開)する。 これにより、SASの可能性が、新しい技術の分野は言うまでも無く、本TTTATツ ー ルで、用いたVBAな ど、よく知られた既存の技術とのコラボレ ー ションの中にもまだまだ広がっていることの一 例とな れたらと思う。 Processing by VBA ".”a”“... ・ F信曲・旧国.......、...・,u_..o , -· "・Z・ ・ :::::11:思疎;:.-::;:::·:·:·:·;:;:涼おii'i-::::::. .. Adjust to SAS �fl崎 ,.… i E 岨..ua lttr.111• 鵠 器 品:叫芯F ...”.剛”.”醐.... Utt.II Hllllll• ·e 山”.” . I g諜器: 2舘i”9郷叫埼ト, 刷’;':,!:";;嚇"fi::釘=也 段 闘”'"' . 以‘;翠師 岱 芯;:;:;;;可凶詰 怠議i器F白z首 一 ;;:··山”.. 聞 匙:li芯: t 暫離器笛ごー岬岬品 ‘ ーセ録蹴創出踏切創出富島.組a Ei!!E�i法制 :::ニ:·:::::::::::ニ;::::::: E Print out 鉱?!??一瞬H ""'” l[官接露関日誌蒜�; - 開」目安一 VBAphase SASphase 423 11
信頼区間を塗りつぶす ~ SGANNOを利用して ~ 関根 暁史 (藤本製薬株式会社) LIFETESTプロシジャはSAS9.2以降、 信頼区間付きの高品質なODSグラフを出力するようになって いる(図I)。 確かにODSグラフは高品位ではあるのだが、 LIFETESTプロシジャの出力そのものを 、 解析報告や論文などに用いる方はほとんどいないと思われ、 多くの方はLIFETESTプ口 ンジャの出 力デ ータをSGPLOTプロシジャで受け止めてグラフを再作成されていると考えられる。 しかし、 SGPLOTプロシジャを使用してカプラン ・ マイヤ ー 推定値の折れ線を描くのは可能であるが、 95% 信頼区間を塗るということまではデフォルトの機能だけでは難しく、信頼区間を線分で表現したと してもLIFETESTのグラフよりも見劣りしてしまうだろう。 そこで、 SAS9.3より 実装のSGANNO機 、 、 能を用いて信頼バンド の’情報のAnnotationテ ータセットを作成し、 SGPLOTに提供することにより、 LIFETESTに劣らぬ美しさを持つグラフの作成を実現した(図2)。 SGANNO機能のうちPOLYGON 関数を用いた。 Annotationデ ータセットの作成がやや難解であったが、 一度作成すれば他のものに 流用可能であろう。 ← P,oduc Lim除生存推定 リスクのある対象磁.回‘偲鰻限界 P,oduct-Lim比生存推定 リスクのある対怠敗目騎備繍限界 .. 。 β ! .. .•・ 臥”“ .... 醐 ーーーーーー’AU. 一一ー 盆""'→i11h Risk ’醐 E畑町- Fn,o Surviv叫Time o-Fr1111 Surviwl Timo lo...凶a Grou11 ’醐 ?” 2 ヰ一一一一一一」事ー ’醐 咽 , 羽 OF - t- 2 o.o , 時間 箱 同閥 単 醐 HT . ",。 I - AU. 3:AML-l.aw R白"'' --- AM.-t崎..閥抗ーーー 組印刷 i 図2. SGANNOを挿入したSGPLOT 図1. デフォルトのLIFETEST出力 ポスタ ー 資料では、 上記以外の関数の信頼区間やベン図の描画についても紹介する。 また当日のポ スター 資料であるが、 SASの機能(ODS PDF)のみを使用して作成した大判のものを掲出予定であ る。 グラフ ・ ポスター ともにSAS9.4を用いて作成したが、 作成プログラムはSASプレミアムラウン ジ(Web)に置かせて頂いた。 424
生存時間解析の実務的課題のSASでの解決 、 競合リスク, 非PHモデ ルの被験者数設計, 最適被験者数配分 O 浜田知久馬 (東京理科大学) LIFETEST, PHREGの近年の拡張によって, 生存時間解析における競合リスクの解析, cumulative incidenceの推定とGray検定, Cox回帰を拡張した, Fine and Gray(FG) modelの解析が可能になっ た. またがんの分子標的薬は, 遺伝子型によって, 反応の仕方が大きく異なり, 生存時間曲線が 比例ハザ ー ド型にならないことが多数報告されている. 本発表ではチュ ー トリアルとして, 生存 、 時間解析の実務的課題として競合リスク, 非比例ハザ ー ドモデ ルの下で、 の被験者数設計, 最適被 験者数配分等のSASでの解決法について解説する. 1) 最適被験者数配分 言十量デ ー タの場合, 総被験者数が一 定のとき, 検出力が最大になる最適被験者数配分は, 比較 する2群に1: 1の割り付けることである. これに対し生存時間解析では, 情報量は被験者数ではな くイベント数であるため, 対数ノ、ザ ー ド比の分散は2群のイベント数の関数で表される. 対数ノ、ザ ー ド比の分散を最小にする最適被験者数配分について解説する. POWERプロ 、ンジャでは groupweight = オプションを利用して, 非等例数の場合の被験者数設計を行うことができる. 実際 の生存時間解析では, 登録期間の長さや, 途中脱落等を考慮する必要があるが, これらに対して もPOWERプロシジャで対応することができる. 2)非比例ハザ ー ドモデ、ルの下での被験者数設計 近年開発されているがんの免疫療法の免疫チェツクポイント阻害剤では, 効果の発現するまで に 一 定の時間を要することが知られており, 区分混合分布モデルを仮定して被験者数設計が行わ れている. また, Fleischerのモデルは, 死亡までの経路として, 増悪後の死亡と増悪を経ない死 、 、 、 亡の2種類を想定する. 区分混合モデル, Fleischerのモデ /レは比例ハザ ー ド モデ ルにしたがわな 、 い. このような場合でも, POWERプロシジャで、 curve= オプ 、ンョンを指定して, モデ ルに基づいて各 時点の生存率を指定することで被験者数設計を行うことができる. プログラム例を紹介するとと 、 もに比例ノ、ザ ー ドモデ ルを前提に被験者数設計を行った場合と結果を比較する. 3) 競合リスク(Competing Risks)の解析 複数の競合するイベントを解析するためにいくつかのアプロ ーチが考えられる. イベントが2種 類の場合で説明するとa) 1, 2の双方をイベント. b) 1をイベント, 2を打切り. c) 1をイベント, 2 、 、 を競合イベントとする. b)の解析のKM法, ログランク検定, Cox比例ハザ ー ド モデ ルに対応する, c)の競合リスクの解析法がcumulative incidence, Gray検定, Fine and Grayモデ、/レであり, これ らの解析がSASの最新ノミ ー ジョンで可能であり, プログラム例と解釈の仕方について解説する. 427
複数母集団のパラメ ー タ推定一全国消費実態調査を用いて ー 高橋行雄 BioStat 研究所(株) Parameter estimation of multiple populations - Using Income and Expenditure Survey - Yukio Takahashi BioStat Research Co.,Ltd. 要旨: 得られたデ ー タが, どのような分布に従うかを見極めることは, 統計解析の基礎の基礎 である. 一般的には, 「 デ ー タの分布が正規分布に従うか否かJが主な興味であり, 伝統的には, 正規確率紙を用いた視覚的な判断であった. 最近の品。では, どのような分布のあてはめが適切 かを判断するために, 対数尤度およびAICcの出力がされるようになった. さらに母集団の数を指 定し, 多重正規混合分布のパラメ ー タ推定も容易に得られるようになっている. 全国消費実態調査 の匿名デ ー タから擬似ミクロデ ー タを作成する際に,元の匿名デ ー タに含まれる年間収入など多く の収支項目についてヒストグラムを作成したところ,対数正規分布のあてはめがためらわれるよう な分布が多数存在することに気が付いた. 新たに作成した擬似ミクロデ ー タは,誰でも自由にダウ ンロ ー ドできるように公開したので,元の匿名デ ー タの分布の形状が新擬似ミクロデ ー タでも再現 しているか, との観点から比較検討を行った. 解析の対象デ ー タの分布を同定するためにJMPで は, 最尤法を用いているが, ほとんどの統計の教科書に取り上げられていないので, Excelを用い て多重正規混合分布の複数母集団のパラメ ー タ推定を行い,九1P の結果と対比しつつ推定方法につ いて解説する. キ ー ワ ー ド:全国消費実態調査, 匿名デ ー タ, 多重正規混合分布, SAS, JMP, 擬似ミクロデ ー タ 1. はじめに 得られたデ ー タが, どのような分布に従うかを見極めることは, 統計解析の基礎の基礎である. 一般的には, 「 デ ー タの分布が正規分布に従うか否か」が主な興味であり, 伝統的には, 正規確率 紙を用いた視覚的な判断で、あった. 最近のJMPでは, どのような分布のあてはめが適切かを判断 するために, 対数尤度およびAICcの出力がされるようになった. さらに母集団の数を指定し, 多 重正規混合分布のパラメ ー タ推定も容易に得られるようになっている. 全国消費実態調査の匿名デ ー タから擬似ミクロデ ー タを作成する際に, 元の匿名デ ー タに含まれ る年間収入など多くの収支項目についてヒストグラムを作成したところ, 対数正規分布のあてはめ がためらわれるような分布が多数存在することに気が付いた. 新たに作成した擬似ミクロデ ー タは, 誰でも自由にダウンロ ー ドできるように公開したので, 元の匿名デ ー タの分布の形状が新擬似ミク ロデ ー タでも再現しているか, との観点から比較検討を行った. 428
全国消費実態調査は, 5 年ごとに実施され,利用可能となっているのは, 1989 年, 1994 年, 1999 ’ 年, 2004 年の 4 回分であり, 2017 年の Let s デー タコンテストためには, 2004 年の匿名デー タに限 定して新擬似ミクロデ ー タを作成した. 以下のURLに新擬似ミクロデー タが公開されている. SAS デ ー タセット http://mighty.gk ルhyogo.ac.jp/confidentiaVZensho2004GijiMicroData.zip csv 形式 http://mighty.gk.u・hyogo.ac.jp/confidentiaVZensho2004GijiMicroDataCSV.zip 解析の対象とするデー タの分布を同定するためにJMPでは, 最尤法を用いているが, ほとんど の統計の教科書に取り上げられていない. そこで, Excel を用いて最尤法による多重正規混合分布 の複数母集団のパラメ ー タ推定を行い,JMP の結果と対比しつつ最尤法による複数母集団のパラメ ー 2. タの推定方法について解説する. 代表的な収支項目 2004 年全国消費実態調査の匿名デー タは, 47,797 レコ ー ド, 1780 項目のフラットなファイルで 提供されている. この中から,世帯属性に関する 14 項目 および収支に関する 203 項目を抜き出し, さらに秘匿処理をしたファイルを作成し, この秘匿処理ファイルから,3種類の統計表を作成し公 開した. 新擬似ミクロデー タは, 公表した3 種類の統計表のみを用いて, 各種の乱数を用いて作成した 69,131 レコ ー ドのフラットなファイルであり, 元の匿名デ ー タとの関連性は完全に切れている. 新 擬似ミクロデー タを用いて各種の統計解析を行った場合に,計算された各種の統計量あるいは分布 の形状が, 元の匿名デー タの特性をどれだけ保持しているか検討した. 代表的な収支項目として, 年間収入, 住居費, 教育費を取り上げた. 3. 年間収入は対数正規分布に従うのか 図1は,年間収入についての匿名デー タの集計乗率を用いて,IO万世帯当たりの集計乗率を計算 し, それを「度数」として使ったヒストグラム, 分位点, 平均と標準偏差についての結果である. 2500 万円でトップコ ー ディングがされているが,お おむね右に裾を引く対数正規分布と推測される. [VO捌ー輔臥 <i 500 山叫4 1000 1500 2000 2500 100.0% 鼠大個 99.5% 97.5% 90.。% 75.0% 四分位点 50.0% 中央値 25.0% 四分位点 10.。% 2.5悩 0.5% 量小値 0.0% ]置璽聖璽 2500 2500 1598 1091 785 524 342 213 116 51 1 平均 609.6 線灘偏差 88.7 平均耐震轄瑳 1.2 平均の上倒95% 612.0 平均の下舗5% 607.2 100000 N 一て二三:二二二二二二コ ] I 撒E柳町はめ 一一対敏正規(6 21306,0.67037) 図1 年間収入の分布の特徴(匿名デー タ) 2 429 一一」 J百二議画一一一一寸 ' 橿罰パヲメータ Rli 1,1 ’炉-、 形状σ 一一一一←一一一」 継怠値 6.2131 0.6704 (-2) *対数尤度= 1446414.06894217
ヒストグラム上に対数正規分布の密度関数が上書きされている. その下に「対数正規(6.213,
0.670) Jとの出力があり, これらは図 l の右の欄から(形状μ, 尺度σ)に対応していることが判
読できる. その下に十 2 )対数尤度=1446414.1 が出力されていることから,最尤法によって分布のパ
ラメー タ推定が行なわれていることが推測される.
図2は,年間所得を常用対数変換して正規分布をあてはめた場合である. ヒストグラム上 に正規
分布の確率密度関数をあてはめた場合, きれいにあてはまっていると思いたいのであるが, ボック
スプロットでは,左側に多くの点があり,左右対称とはなっていないので,正規分布とは言い難い.
恒亘亘理型こ
一一二二ご
==:J
璽師向二二二コ唖墜哩仁二二二二一一一一一一一一一J
←
・・・.......圃---rn-→
L
法
護
別
平均の領箪誤差
明似上仰向 2.700
平均C下側95% 2.696
N
100000
陛戸空�-=二二コ
種競
パラメータ
但
縫定値
2.698
0.291
日 一
µ
ま
。 っきα
(-2) * 対数尤度= 36995.9715546095
哩年吟聖一一
陶lmogrov-吾川、imov Lillieforsの検定
ん榊
D
0.041453
0.0 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2 3.6
<
一」
p値(Prob>D】
0.0100 本
注:Ho =正規分布からのデータ. p値が小さい場合はHoを棄却.
一一正規(2.6983,0.29114)
図2 年間収入の常用対数変換値に正規乱数分布をあてはめた場合(匿名デ ー タ)
図3に示した正規確率プロットの直線からの事離が,年間収入の低いほうで大きくなるので, 複
数の母集団が存在し, そこからのサンプリングデ ー タとみなさざるを得ない.
-,:oo・2.)3,1遺書:2so:01 o迎 。‘"
40
3.5
30
25
2.0
1.5
10
05
0.0
。-
�-'i>"'"' ] <,;:,
'o
骨�r§>'Y'_
’
..,.<;,
<::,�
。::, c-.'!>
‘’ 。'!>°'- "
'o.,
°'
E鏡台位点プロット
図3年間収入(対数 )についての正規確率プロット(匿名デ ー タ)
4.
JMP による多重正規混合分布のパラメ ー タ推定
最尤法による多重正規混合分布のパラメ ー タ推定については, 吉村,大森,寒水( 2009 )の『医学・
薬学・健康の統計学理論の実用に向けて』 「 母数の推定法」(第4章)にモ ーメント法 による推定と
SAS川LMIXED による推定が示されている. 取り上げている例題は, 「 2 集団の混合分布」の節にあ
430
り,隔離が必要なある病気Tで,ある施設におけるある時期の患者400人の入院期間のヒストグラ
ムが示されている.表は示されていないので,ヒストグラムの長さを計測して人数を推定した結果
を図4に示す.
hu t-
tA 一
勺& ぷ U Q YQ ノ ぷ U 一
。。
凸ツ
-
11
h
的N 目
出 目
寸数
出N
白ト 可
由h 円 倒
棚
日U
-凋斗
円 閤間
的N .
. 入
h
凶作・
N
由
田h ロ
出N E
戸
0
田N N
-
20
sz ’且
40
一rAUζ U一ζ J 凸 フ 戸コ 1 ir 0 1 d1 1今 44 一
U AU
61
61
c: 60
i
21 今4 2J n『 ,、νζU 弓f
80
y
0.75
1.25
1.75
2.25
2.75
3.25
3.75
4.25
4.75
5.25
5.75
n =
n
-
・
1
96 9
3
100
図4 2重正規混合分布らしきヒストグラム
このヒストグラムは二山と感じられる. これを二つの正規分布Nµ
( 1 ,a}), Nµ
( 2 ,σ;) がある割
'
合1( : 1-1( で混ざっているものと考える. 母数µI ’ σi µ2 , σ;, π を最尤法で推定したい.
この例を 一 般化して, 観測値がn 個で, その値が Y1 ,Y2 , ...,y" であるとしよう. これは確率密度
関数f(y; )が,
1(Nµ
- )N(µ2 ,σ;)
( 1(
( I ,σ行 + 1
f(y;)=
で与えられる確率変数Yを,独立にn 個観測した確率変数y=J-;
( ,r;,・--,ζ) の実現値と考えられる.
JMPの「一 変量のあてはめJに,複数の正規分布の母集団パラメ ー タ推定を行う機能があり, 簡
単にパラメ ー タの推定が行える. あてはめた結果を図5に示す.
2重正規分布
日
3重正
IJtラメ ータ推定値
分布 L二一一一一一一一一
ー
現類
パラメ
タ錐定錨
µ1 1.425
µ2 3.946
al 0.392
a2 0.700
nl 0.097
割合
n2 0.903
割合
(-2 )*対数尤度= 1050.25984656215
位置
位置
ぱらつき
ぱらつき
。
2
4
5
6
図5
!瞳聖詩画面あてはめ
i 哩メ ータ臨値
種類
一一「
パラメ ータ議定値
µ1 1.454
µ2 3.273
µ3 4.205
crl 0.405
a2 0.471
cr3 0.576
同 0.102
割合
n2 0.241
割合
同 0.657
割合
(-2 )*対数尤度= 1051.20129941986
位置
位置
位置
ぱらつき
ぱらつき
ぱらつき
2重正規混合分布
図5 の「2重正規混合のあてはめ」の欄から, 第l母集団の割合問=0.097, 平均µ1 =1.425, 標
準偏差σ I =0.392, 第2母集団の割合同=0.903, 平均µ1 =3.946, 標準偏差σI=0.700と推定され,
4
431
ヒストグラム上に2重正規混合分布の密度関数が上書きされている.さらに, 「3重正規混合のあて はめJ欄から,第 l 母集団の割合 1r, =0.102 ,平均刈= 1.454 , 標準偏差σI =0.405 ,第 2 母集団の割 合同= 0.241 ,平均約= 3.273 ,標準偏差問= 0.471 と推定され,第 3 母集団の割合引= 0.657 ,平均 的= 4.205 ,標準偏差 CT3 =0.576 と推定さヒストグラム上に 2 重正規混合分布の密度関数が上書きさ れている. ヒストグラム上の密度曲線の比較では,母集団数が2の場合に比べ 母集団数が3の場合の違いは 極わずかである.統計的には, 母集団数が 2 の場合の( - 2 )対数尤度=1050.3 に比べ, 母集団数が 3 の場合の(( 司 2)対数尤度= 1051.2 との差が,自由度 2 の/分布の上側 5% 点 5.99 よりも大きければ統 計的には,母集団数が 3 が支持されるが,1051.2・1050.3=0.9 くく 5.99 と小さく母集団が 2 の場合が採 択される. 5. Excel による 2 重正規混合分布のパラメ ー タ推定 Excel のソルパ ーを用いて最尤法により,未知母数 µ, ,σ,2 ' µ2 , σ;,zを推定したい.表 la に推定したいパラメ ー タの初期値,母集団ごとに初期パラメ ー タで計算された正規分布の確率密度 が Normdist 関数で計算されている.それらの確率密度に対して混合割合を加味した対数尤度が ・679.16 と計算されている.対数尤度 L は, lnL = ェ:> J(y;)= エ::1 ; [π N(JJi ,σか(I ー ;r)N(的, σ;)] n in なので,Excel シ ー ト中で逐次的に計算を積み上げる. 表 la 2 重正規混合分布,初期値 E 4iA1 B C i D l正規飴分布の母数の推定 4 , 一 n ‘ 一 qu 守 - 民一 ω au l, 2 2 En一 い Q F ゅ F p i i = Iの場合 Lー」 E µ1= 11.1100 σ 1 = I0.!00 L 1 =NORMD1ST(C5,$E$21,$E$22,FALSE) (日ORMD1ST(C5,$G$2I$G$22,FALSE) 1 主t�10:_D5 * L刊S町内竺(竺り�·��2: 1 対数 L =SUM田5:HlS) i 5 432
尤度
ι の l 行目は,人 0.704 と計算されている.これは,Excel の正規分布関数 Normdist(0.75,
1
=
1.00,0.500,false ) で計算された正規分布の確率密度となっている. 尤度 L;2 の 3
ι.2 =0.009
行目は,
と計算されている. これは,Excel の Normdist (ユ .75,4.500,1.000,false )で計算
された正規分布の確率密度となっている.対数尤度ムの 5 行目 対数尤度 ι = -69.956 は,混合割合
π = 0.3000 を用いて 25 x ln(0.3 x 0.02 + (I- 0.3) x 0.086)で計算されている. 対数尤度 L=-679.164 は,
対数尤度ム, i =1,2,.・ .11 の合計となっている.
表 lb には, ソルパ ー で対数尤度 L を最大化するように 5 個のパラメ ー タを探索的に動かした結
果が示されている. 推定されたパラメ ー タは,JMPの結果と若干異なるが,収束精度など最適解を
Excel の( - 2)対数尤度は,2 × 524.95=1049.9 と
求めるアルゴリズムの違いに依存すると思われる.
JMPの 1051.2 より若干小さいので,Excel での計算結果が若干よい推定値と解釈される.
表 lb
;t/JA
g
4
5
6
}_
8
9
1Q
11
12
。
B
2 重正規混合分布のパラメ ー タの推定結果
E
D
I
2
3
4
5
6
7
8
9
10!
y
0.75
1.25
1.75
2.25
2.75
3.25
3.75
4.25
4.75
5.25
5.75
n,
6
16
15
9
25
61
96
93
61
12
6
n=
400
十
l
Li
Li
0.000
0.000
0.004
0.030
0.131
0.346
0.546
0.519
0.297
0.102
0.021
0.250
0.838
0.722
0.161
0.009
0.000
0.000
0.000
0.000
0.000
0.000
対数 L
-22.161
・39.725
-38.762
-28.317
・53.152
・71.178
-68.054
-70.658
-80.490
・28.657
-23.794
対数L =I[ J三割,!J4i1 ここを最大化
"Ir =10.099
変化させるセル 5 個
21
H
G
正規混合分布の母数の推定
11
22
F
1
σ1
� :[;J
:;:区日
6. 年間収入についての多重正規混合分布のパラメ ー タ推定
年間収入を常用対数変換して,正規分布をあてはめた結果を図6に示す. 母集団=2と仮定した
場合に, 「 2 重正規分布のあてはめJ欄の割合 lr1 が 13.4%の小集団で,平均値は位置µI =2.388 (244 万
円)であり,割合同が 86.6%を占める大集団で,平均値は 2.746 (557 万円)である. ヒストグラム上
の確率密度関数のあてはめも母集団=Iと仮定した場合に比べ改善している.さらに母集団=3と仮
定した場合には, 「 3 重正規分布のあてはめ」欄の割合(1.7%,
8.0%, 90.3%)の集団が分離されてい
る.
統計的にどちらのあてはめが望ましいのかは, マ イナス2倍の対数尤度を用いて評価する. 表2
に示すように,母集団= I の場合は,(-2) *対数尤度=36995.97 で,母集団=2 の場合は,(ー2)*対数尤
6
433
l.j[哩元職活二一二:
相
i
i恒可制臥二二二一
一
一
一一
一
一'
一
i.j ⑤護萄画話語含Oj;あて隊116-
ニ= 田→トー!ム空唇時堅二二二「
ト ・・・4
「←一一一一
一
戸「
一一一 一一一一一一一一一
|
! 2重正規分布
i 3重正規分布
一一
/
-
J(I 澗
訓
1 図上では識別が困難
!IU..
fl |目
i
|I HI
一一寸
ヲA
二三凪
号 .j�-重量雇扇麗奇@あて蹴ab-
i
l
溢i
I
:g1
I
I
§:
渥煩
位遣
錨
雪[
1諮っき
I.ti.:.っき
I
J.t'ラメータ
1.11
µ2
01
a2
n1
同2.
翻合
’l
推定値
2.388
2.746
留合
c-
Alt�K�碍�二二= _c
口組
0.241
0.134
0.866
(-2)*対数尤度= 31081.0566579185
種沼
パラメータ
µ1
位置
価
ρ
位置
凶
σ1
ぱらつき
ぱ8っき
σ2
l.t6っき
σ3
同
割合
n2
都合
『13
都合
:
猿定鏑
2.040
2.2制
2.751
0.綿6
0.212
0.237
0.017
0.080
0.903
(-2)*対数尤度= 30585.6736918864
。 。 ~ .....
。 - - -
t民
も
L
’
b
’L 乍t拠
・
・
・
’ち'<>
’\."も ’ち’L
図6対数年間収入に対する正規混合分布のあてはめ(匿名デー タ)
度=31081.06 と 5914.91 の減少となる.母集団=3 の場合は 30585.67 で,母集団=2 の場合に比べ 495.39
小さくなる, 母集団=4 の場合は, 母集団=3 の場合に比べ 45.82 小さくなる. 母集団=5 の場合には
変化が 0.01 である. 統計的には, x =5.99 (自由度 2, 5% 点)以下ならば, 母集団数の増加に意味が
2
ないので,母集団=4 が統計的に支持される.しかし,母集団=4 の場合, 最小母集団の構成は, 0.021%
と極めて小さい集団なので, 母集団=3とするのが現実的と思われる. その場合, 年間収入の母平
均は, 110 万円, 175 万円, 563 万円となる.
表2
仮定する母集団の数による対数尤度の差および最小母集団の統計量
母集団
数
( 2)
対数尤度
:
対数
!
!
;尤度の差 i
2
310�1Jl6
-59-1
3
4
30539���
5
7.
l
36995.97
30585.67
30539.84
1
;
I
最小の母 集 団
構成比
I
100.0%
-495.39 j
1.7%
-
x究qf=I, 5%t
I 対数
:母平均
I
l母平均| (万)
i
2.6θ8
498.9
2.040 ,
109.6
0.587
3.9
而� • \3.4'YoJ-----i:-3ss
竺ニ8�J
0.01 i
開
3.84:
0.021事仁
0.025%
J
0.5_13 I
�44.3
3.3
新擬似ミクロデ ー タでの年間収入の分布
新擬似ミクロデー タの年間所得の分布特性を, 匿名デー タと比較検討する.図 7 に年間収入の
10 万世帯当たりの分布を示す. 匿名デー タは, 2500 万円でトップコ ー ディングされていたが,新
擬似ミクロデー タの場合は,最大値が 6203 万円となっている.平均値は,609.9 と匿名デー タの 609.6
と, ほぽ等しい.標準偏差は, 395.8 と匿名デー タの 388.7 よりも若干小さくなっている.
7
434
一一一一二二二二; 一一一二二二二コ 一一 竺恒二ご二長二 i副議語 三i討議扇面前副「一二: 両面1海面収入 品担園町 h ・ 0 100.0% 最大値 99.5%, 97.5% 90.o0X, 75.0% 四分位点 50.0% 中央値 25.0% 四分位点 10.0%: 2.5% 0.5% 0.0% 畳小値 1000 2000 3000 4000 5000 6000 位03 2410 1595 109s 785 527 336 211 116 62 2 平均 609.9 L 395 B 様漕偏差 1.3 平均の穣準誤差 平均の上倒95% 612.3 平均の干側95% 607.4 N 100000 一一対数正規(6.21247,0.66536) 図7 ヲ云ーヲ蚕雇福 I 流 一一一一一一一一一一一一一一一一一一一一J L ” 積額パラメータ 錐定値 6.2125 竺亭 H… 0.6654 形状 P帆 ←一一ー一 目 σ (-2 ) * 対数尤度= 1444797 0283456 目 !匿名デ ー タ 平均: 609.6 : 標準偏差:388.7 : 年間収入の分布(擬似ミクロデ ー タ) 擬似ミクロデ ー タの年間収入に,3重正規混合分布をあてはめた結果を, 図8に示す. 匿名デ ー --� タの図2と比較して,平均は同じであるが,標準偏差は若干小さくなっている. A 豆Jlogl0_\'()01:年回収入 一A亨J A, ,�,JE規のあてはめ )('ラメータ推定値 A 種軍需 パラメータ 位置 µ ぱらつき6 種類 接語也 2.698 0.289 位置 (-2)事対数尤度= 35496.5704589346 ー ;匿名デ タ ; 6.298 : 標準偏差:0.291 平均: 「【- 0.0 0.5 I 1.0 I ' 1.5 2.0 I 2.5 … 叩 3.0 ー図8 ' I 3.5 J 3重正規事合のあてはめ パヲメ孟ヲ鍵定値 A/ i パラメータ µ1 µ2 山 位置 般量 次 ぱらつき µ3 o1 a2 a3 ぱらつぎ ぱらつき 割合八 期合 { 割合 • 回 n2 n3 纏定錨 2.115 2.384 2.775 0.557 0.268 0.230 0.007 0.186 0.807 (-2}事対数尤度= 31119.31回499662 4.0 対数年間収入の分布(擬似ミクロデ ー タ) 図8の擬似ミクロデ ー タの3重正規混合分布のパラメ ー タと図3の 匿名デ ー タと比較した結果を 表3に示す.匿名デ ー タの第1母集団の位置µI パラメ ー タ は2.040であり,金額に直すと10 2.附=110 万円となり,割合は ll'1 =1.7%である.新擬似ミクロデ ー タでは,130万円 ,0.7%である.第2母集 団, 第3母集団も,ほぽ同等と言い切れないが,何とか再現している. 表3 団一 唾 12 3 怪童i 2.040 2.244 2.751 3重正規混合分布のパラメ ー タ 比較 ハ 新擬似ミクロデ ー タ 匿名デ ー タ 万円 割合π 位置μ 万円 割合π … 0.7% 1.7%け2.115 · . 130 110 175 , 8.0悦. i 2.384 242 18.6% 564 90.3% 2.775 596 80.7% 435
8. 住居費と教育費の分布の特徴 消費に関連する項目は, 大きな分類項目から, 中項目, 小項目のような階層構造となっている. 十大消費項目 (食料,住居,光熱 ・ 水道,家具・家事用品,被服及び履物,保健医療,交通 ・ 通信,教育, 教養娯楽,その他の消費支出)の合計は「消費支出」項目となる. この中で特徴的な住居費と教育 費を取り上げる. 住居費と教育費には, 多くの0円デ ー タが存在する. このO円デ ー タも含んだヒストグラムを図 9に示す. 両方とも右に長く裾を引くので, 分布の全体像が見えにくい. (涌函l蚕雇貫一一 恒竺!聖塑 ・ c ..‘’ ‘”’ 。ダダ手ダ e伊e伊ダe伊e伊,p やややφφややややや ’レ 弘 も も や〈〉、チ <:)<:) <:)<:) r:,<:) <:)(:) や <:)<:)<:) <:) <:)<:) >)<:) 。令<:)<:) <:)や <:) 勺 ら φ手φやや 勺 む ら 勺 む ら<:) む<:) や ら 、 か も も 。’ O . ・ ・・. . ト ..,.ra 手, ゃ ..,.ra やや 「 図9 住居費と教育費の分布(擬似ミクロデ ー タ) 常用対数変換すると 0 円デ ー タは, 欠測値となってしまうので, 1 円を加えて変換すると, loglO(O+ I)= 0 となり, 金額が大きい場合には, 1 円を加えても影響はわずかである. 住居費も教育 費もおおくの O 円の世帯があることが図 IO に示されている. 住居費の分布は, l/4 以上の 0 円世帯 が あ り , 10 1 =10 ~ 105=100,000 円 / 月まで は, ほぼ直線的に増加し , そこ か ら急激に減少し 106=1,000,000 円/月以上は, ごくわずかである. 教育費は, 半数以上の世帯で 0 円の世帯があり, 4 10 '5 = 31,622 円/月あたりをピ ークにフラットな分布となっている. 一一一一一」 jloglO_{:慣+1 唖正編+1 71% 0.0 1.0 図 10 2.0 3.0 4.0 5.0 0.0 6.0 1.0 2.0 3.0 4.0 5.0 6.0 1 円を加えた対数住居費と教育費の分布(擬似ミクロデ ー タ) 支出金額が O 円が欠測値となる常用対数変換をして,図 11 に示すように母集団の数を同定する. 母集団の数を順次増やし, 線の幅以上の変化がなくなった最大の数を母集団の数としたときに, 住 居費および教育費も同じ母集団の数は 3 となった. 図 11 には, 母集団の数を 5, 4, 3 と減らした時 の確率密度曲線を重ね書きしたものであり, 目視では識別が困難である. 9 436
-・に== 口口一__.._. ・ l教育費i 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 図11 対数住居費と教育費に対する3人5重正規混合分布のあてはめ(擬似ミクロデ ー タ) 住居費の母集団の位置は, 508円, 6,578, 46,479円/月となり,その割合は11.5%, 60.1%, 28.8% と第2 母集団が過半数 を占めている.教育費の母集団の位置は,5,061, 20,380, 52,658円/月となり, その割合は26.1%, 34.0%, 39.9% とほぼ均等となっている. 表4 3重正規混合分布のパラメ ー タ比較 母集団 j I : 2 ! 3 , 9. 位置μ �.J06 ヨ.818 4.667 住居費 「一日一 I L I 割合π 08 · 11.5% §,574 69.1% 82 .4% 46 479 割合π J 位置μ 円 : l 3-?坦?5 . _ 5, 0�J 26J% ! �}_Q空!21.1 塑坦旦 34旦旦ー! 4.721 467 52,658 39. % 9 年間収入の分布を3重正規混合分布と断定できるのか 図7に年間収入に対して対数正規分布をあてはめを示したが,他の分布も含めて総合的に判断し たい. JMPの「 一 変量のあてはめJには,正規, 対数正規,正規混合以外にも図12 に示すように, 多くの連続分布をあてはめた結果の( -2)対数尤度およびAICcが出力されている. 中ほどの対数正 規分布のあてはめは, あまりよくないようである. 1voo1 :年岡収入 ト-c::Eコ : 。 .. 四璽 禽軍配分布 回 Johnson SI 口 Johnson Su 口 口 図 口 口 1000 2000 3000 4000 5000 6000 一一対数正規(6.21247,0.66536) 一- Johnson Sl(-12.534,1.94357,-111.39,1) 図12 ロ 口 口 口 刀ンマ 3重正購昆合 対数正規 一般化対数 Weibull 極値 2重正規混合 正規 指数 パラメーターl C・2)*刻叡定鹿 3 4 2 8 2 3 2 2 5 2 1 1440706.8 1440706.8 1441500.0 1444092.7 1444797.0 1444797.0 1446870.7 1446870.7 1451012.8 1479971.2 1482650.2 年間収入に全ての連続変数をあてはめた結果(擬似ミクロデ ー タ) 10 437 AICc 1440712.8 1440714.8 1441504.0 1444108.7 1444801.0 1444803.0 1446874.7 1446874.7 1451022.8 1479975.2 1482652.2
常用対数変換した年間収入に全ての連続変数をあてはめた結果を図 13 に示す. AICc による判定 で3重正規混合分布(4重以上は対象外)が最も小さいことがわかる. 両訂正両面弄踊取瓦; ・ 圃闘a ・士三三 嗣語読 亡Eトー・” 衷示分布 団 口 口 口 口 口 団 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 一一正規(2.印刷4,0.28896) 一一3重正規混合 口 口 口 口 3重正規混合 Johnson Su Z重正規混合 Johnson SI Weibull 極値 正規 刀ンマ 対数正規 一般化対数 指数 パラメータ聖書{ ·2)*対数兎鹿 8 31119.31 4 31139.94 5 31466.78 3 31673.99 2 33047.04 2 33047.04 2 35496.57 2 41372.18 2 45540.22 3 45540.22 1 398505.22 ・ AICc 31135.31 31147.94 31476.78 31679.99 33051.04 33051.04 35500.57 41376.18 45544.22 45546.22 398507.22 図 13 対数年間収入に全ての連続変数をあてはめた結果(擬似ミクロデ ー タ) 常用対数変換した住居費に全ての連続変数をあてはめた結果を図 14 に示す. AICc による判定で 3重正規混合分布が最も小さい. この結果から一 般化することはためらわれるが, 家計に関連する 収支項目について,常用対数変換した場合には, 多重正規混合分布のあてはめが勧められる. 日og面観 表示分布 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 回 口 口 口 口 口 口 口 口 口 口 3重正規混合 2重正規混合 Johnson Su Johnson SI Weibull 極値 正規 一般化対数 刀ンマ 対数正規 指数 パラメータ数十2}*対数尤鹿 8 136111.84 5 136582.16 4 140485.19 3 140507.73 2 141647.82 2 141647.82 2 146295.48 3 146296.05 2 153291.06 2 158347.62 1 292964.92 AICc 136127.84 136592.16 140493.19 140513.73 141651.82 141651.82 146299.48 146302.05 153295.06 158351.62 292966.92 一-3量正規富合 図 14 対数住居費に全ての連続変数をあてはめた結果(擬似ミクロデ ー タ) 10. 考察 全国消費実態調査の 2004 年の匿名デ ー タから作成された新擬似ミクロデ ー タの年間収入, 住居 費, 教育費について, どのような分布のあてはめが適切なのか検討した. 常用対数変換した年間収 入に対しては,3重正規混合分布のあてははめが適していることが確認された. 住居費あるいは教 育費などでは,支出がなく 0 円の世帯がそれぞれ IO 万世帯比で 38% および 71% あり, これらを含 めて分布のあてはめを行うことは適切でない.常用対数変換を行うことにより0円を欠測値にして 11 438
分布の検討を行った. 対数住居費は,一山型の分布とみなせないので,必然的に多重正規混合をあてはめることになる. 母集団の数を順次増やして描かれた確率密度曲線の重なりから,最小の母集団数は3と推定できた. 逆に母集団数を5とした場合から, 減少させた場合からも母集団の数は 3 が適当と判断された. 対数教育費は, 一 山型の分布ではあるが, 山の尖りが鋭く左右の裾が長い分布であり, 3重正規 混合が示唆される. 他の常用対数変換した項目(米, パ ン, めん類, 他の穀類) について分布のあ てはめ結果でも, おおむね3重正規混合分布のあてはめが支持された. このような分布の特性は, 統計解析を行う際に十分考慮すべきであり, 収支の金額(円)を用いて 回帰分析を行うことは, 全く推奨できない. 常用対数変換を行っても誤差分布に正規分布を仮定す るような統計解析も支持できない. 収支金額が0円と世帯を除いた統計解析は, 多 くの世帯を無視 することになり, バ イアスに満ちた結果となってしまう. このような特徴をもった全国消費実態調査デ ー タに対して, どのような統計的アプロ ー チをした ’ ら良いかは, これまでのLet sデ ー タ分析コンテストの規定課題に盛り込んできたので参考にして もらいたい. 多重正規混合分布のあてはめについて,JMPの「 一 変量のあてはめjは,画面操作により簡便に, 計算スピ ー ドもデ ー タ数が7万件でも数秒で行えることは, 画期的である. 文献的にはEMアルゴ リズムが提唱さてはいるものの, 実際の適用例は見出すことができない. JMPでは, ニ ュ ー トン ・ ラフソン法による最尤法が使われているようであるが, 多重正規混合分布の場合には, JMPの最尤 解を初期値としてExcelのソルパ ー を用いた最尤解を求めると, 異なる結果となる. 最大化する対 数尤度を比較しでも, JMP の方が小さく, 適切な解とは言い難い. 計算スピ ー ドを上げるために, 何らかの計算の簡略化が行われているのかもしれない. 参考文献 1)周防節雄(2015)全国消費実態調査の匿名デ ー タとその符号表から自動的にSASのデ ー タ セット,変数ラベル と変数フォ ー マットを作成するSASプログラム,『SASユ ー ザ ー 総会2015論文集』,pp257・278. 2) 高橋行雄(2015)統計センタ ー の匿名デ ー タ13万件を用いた統計解析の実践,『SASユ ー ザ ー 総会2015論文 集』,pp145・164. 3) 高橋行雄(2016) JMPによる第4回Let'’sデー タ分析の規定課題の解析,『SASユ ー ザ ー 総会2015論文集』, pp313・329. 4) 周防節雄(2016) SASユ ー ザ ー 総会2016 における「Let’ sデ ー タ分析 第4回ミクロデ ー タ分析コンテストJの規定 課題のSASプログラム 解説,『SASユ ー ザ ー 総会2016論文集』,pp330 ・347. 5) 高橋行雄(2016)統計センター 提供の教育用擬似ミクロデ ー タを用いたSAS/JMPによるデ ー タ分析コンテスト, ht pt s://www.nstac.go.jp/ services/pdf/161125_3 ・3.pdf. 高橋行雄(2017) Let'’sデー タ分析コンテストに用いる新擬似ミクロデ ー タの概要,『SASユ ー ザ ー 総会2017論文 集』,掲載予定. 7) 周防節雄(2017)第5回Let’ s デ ー タ分析コンテストの規定課題のSASプログラム,『SASユ ー ザ ー 総会2017 論文集』,掲載予定. 6) 12 439
GAM プロシジャ versus GAMPL プロシジャ 0伊庭克拓 l ' ( 大塚製薬株式会社新薬開発本部ノ〈イオメトリックス部統計解析室) GAM Procedureversus GAMPL Procedure KatsuhiroIba OtsukaPharmaceut ic al Co., Lt d . 要旨 、 、 : は, 一般化線形モデ ル(Generalized Li near Models:GLM) 般化加法モデ ル(Generalized Ad ditive ModelsGAM) 一 の線形予測子を 平滑化スプライン等のノンパラメトリック回帰 の加法モデルに拡張したモデルである。 SAS GAMPLプロ では, 従来のパー ジョンよりGAMプロシジャによって, またSAS/S TAT 14.1より追加された シジャによってGAMによる解析を行うことができる。GAMプロシジャでは,Has tie& Tibshi raniの局所評点 . 化法を用いて モデ ルの当てはめ を行う。 一方,GAMPLプロシジャはWood 法を用いており, 、 モデ ルの当て の変更点がある。 本稿で はめと共に平滑化スプラインにおける平滑化パラメ ー タの最適化 を行う等いくつか は, 両プロシジャの 実行方法 の説明および実行結果の比較を行う。 キ ー ワ ー ド: 一般化加法モデル,GAM, GAMPL, 平滑化スプライン 1.はじめに 、 一般化線形モデ ル (Generalized Linear Models:GLM) は, 従来の線形モデル を応答変数の分布lこ正規分布, 、 二項分布, ポアソン分布等 を含んだ指数型分布族を仮定できるように拡張したモデ ルであり, 様々な分野で 守 広範に 用いられている。 正規線形モテ ル, ロジスティック回帰モデル, ポアソン 回帰モデルは GLM の特別 な場合である。 SASではGENMODプロシジャで 一般化線形モデルによる解析を実行できる。GLMは説明変 数の効果に線形性 を仮定しており,非線形な効果に対しては多項式や変数変換を用いるアプロー チがあるが, パラメトリックな関数では非線形な効果 を十分に表現で 適切な関数型 を見つけることは簡単では なく, また き ない場合もある。 一 、 般化加法モデ ル (Generalized Ad ditive Models:GAM)は,GLMの線形性の 仮定 を緩め,GLMの線形予測 子を 説明変数の滑らかな関数の和に拡張したモデルである。 滑らかな関数として平滑化スプラインや LOES S 等のノンパラメトリック回帰を用いることができ, デ ー タ適 応的に非線形な効果 をモデ、ル化する。 に追加された SASでは, 従来のパージョンよりGAMプロシジャによって, またSAS/S TAT 14.1より新た GAMPLプロシジャによってGAMによる解析を実行できる。GAMプロシジャでは,Hastie& Tibs hiraniの局 443
所評点化法を用いてモデルの当てはめを行う。 一 方,GAMPL プロシジャはWood 法を用いており, 平滑項 を平滑化スプラインに限定することで,i) ペ ナルティ行列の低ランク近似による大規模デ ー タでの計算量の ー 軽減,ii)後退当てはめ法を用いずに全ての平滑化スプラインのパラメ ー タを同時に推定,iii)ニュ トンラ フソン法等の数値最適化手法による平滑化パラメ ー タの選択, といったいくつかの変更が行われている。 本稿では, 最初に GAMと平滑化スプラインについて説明する。次に例題を用いて GAMプロシジャと GAMPLプロシジャの基本的な実行方法を説明する。続いて,GAMプロシジャとGAMPLプロシジャの構文 ’ ’ をより詳しく紹介する。 最後に SAS/S TAT 14.1User s Guide (以下,User s Guide )のChapter 41 GAMプロシ ジャ及びChapter 42GAM PLプロシジャのGetting Started 及びExamples の解析を双方のプロシジャで実行し, 結果の比較を行う。 GLMについては, 丹後(2000)および田中ら(2008) , GAMおよび平滑化スプラインについては辻谷& 竹津(2015), 竹津(2007)およびWood (2006)で詳しく説明されている。 、 2. 一般化加法モデ ノレと平滑化スプライン 、 2.1 一 般化加法モデ ル( Generalized Additive Models: GAM) GAMは, 応答変数Yiの平均E(巧) = µi.i = 1,···,nが説明変数Xil,…,Xipによって, g(µ;)=ηi =So+ S1(X;1) + … + Sp (X;p ) と表されるモデ、ルである。g〔μ)はGLMにおけるリンク関数であり, 巧(巧),j = 1, … ,pは平滑化関数である。 各平滑項の解が一 意になるようにrr= l 巧 (x;j) = 0の制約条件を設ける。巧(巧)=舟巧として線形項を含めるこ とも可能である。 2.2 平滑化スプライン( Smoothing spline) t 応答変数Y;は連続値とする。 平滑化スプラインは, ペ ナルティ付き残差平方和 (x)y � dx L1 � l(� ) 2 s ) - ( 2 (y; - s(x;)) +λ . を最ノl、化することで得られる。第l 項は残差平方和であり, モデ ルのデ ー タへの当てはまりが良いほど小さ くなる。第 2項はs (x) の凸凹に対するペ ナルティであり, s (x) が滑らかになるほど小さくなる。λはモデ ルの ‘ 当てはまりの良さと複雑さのトレ ー ドオフを調整する平滑化ノ号ラメ ー タである。λ を小さくするとデ ー タへ の当てはまりが良くなり, 最終的にデ ー タに完全に当てはまる。一 方, λを大きくしていくと滑らかになり, 最終的にはl次式になる。 s (x) =日1X +五:/dx-x;l 3 (2) は 3 次の自然スプライン関数である。B0 ,Bi ,8;,i = 1, ···, nが未知パラメ ー タであり, 自然スプラインには rr= l 8; = o, rr= l 8;x; = o の制約が課される。X;,i = 1,···,nをノットと呼び,通常は説明変 数の値と一 致させる が, 別の値にすることも可能である。 平滑化パラメ ー タの選択について説明する。Figure l の左と右は同じ3次の多項式で誤差の値のみ異なって いるシミュレ ー ションデ ー タである。左のデ ー タのみを当てはめに用いて, 平滑化パラメ ー タの値を999, 3 ム 0 と変化させたときの平滑化スプラインの予測値を描いた。当てはめに用いたデ ー タ(左)に完全に当 てはまるモデル(λ= 0 )は, 同じ現象に従う別デ ー タ(右)に対する当てはまりは必ずしも良いわけではな 444
いことが分かる。同じ現象に従う別デ ー タに対する予測精度を良くするという観点では,以下の Generaliz吋
Cross Validation(GCV)基準が最小になる平滑化パラメ ー タを選択する。
ηEf=1(Yi -sλ(xa)
H ))2
(n -tr( λ
2
GCV基準は,Leave-one-outcross validation基準の近似であ
る。H ;i については2.3で説明する。Figure1のλ= 3.6
はGCV基準を用いて選択した結果であり,両方のデ ー タにほど良く当てはまっている。
10
;,.
10
!.
。
。
ヨh
一,,
。
-5
11
-2 0
10
X
ー,。
。
-5
5
10
X
- - 01
|λ一一欄一一泊
Figurel平滑化スプラインの例
2.3 薄板平滑化スプライン( Thin-plate smoothing spline)
薄板平滑化スプラインは,平滑化スプラインを説明変数が2つ以上に拡張したもので,
σ
エ仇 一 s(xJ) +λlfm.a(
2
を最小化することで得られる。λlfma (s)はペナルティ項で,
r
r
J
J
て可
〉
lm,a(s) = I … |
向+・
と表される。s(x)は薄板スプライン
4:+
αd=m
馳
ro
n
s(x)=ヱめ合併:)+
m,a(r)
m
α1 ト・・ αa! \ax•了1 ··・ ax了d}
M
仰(llx-xdl)
1 d2
(ーl)m+ + /
{
JI 2 m-1n; d/2 (m -1)! (m - d/2).1
= {|
「(d/2-m)
I
2
δ s 一\
l/一一一一
l dx1 … 的
m!
一一一一
内-
,,,,,
,,.
a
m ,,aog
l (r) if dis even
?辺
ヲ-
"
日・ - m
、.r
if disodd
1
m
である。第l項はM = ( +;- )個のペナルティを受けないm -1次の多項式である。
d= l,m= 2の場合は,(1)式および(2)式の平滑化スプラインに帰着する。 d= 2,m= 2の場合,
co
co
2
2
2
2
2
2
s(Xi ,X2 )\
/a s(Xi ,X2 )\ j
s(x1 ,X2 )\
{ { Ifδ
一一一一一 I
I +21/a
I H 一一一一
fz.2(S〕 = I
+ト一一一一 I �向的
よ∞よco \δxf
}
\ ax1ax2 }
\
ax?
}
I
I
および
445
ι 下2 市i,X2 ) =。。+ 81X1 + 82X2 + ) O;高logか), r = ../(x1 -xi1 ) 2 + (x2 -xρ z となる。平滑化スプラインと同様にrr= 1 o; = o, rr=1 o尚1 = 0, rr= l O;Xiz = 0の制約が課される。Xi,Xz それぞれ の 平滑化スプラインの加法モテツレs(x1 ) + s(x2 )では,Xi,X z の交互作用は表現できないが, 薄板 平滑化スプラ インs(xi,x2 ) を用いると交互作用も表現できる。 E;i = ηm,d(llxt -xiii )を要素とするペナルティ行列 E,ゆ'i (x)を各行の要素とする行列Tを定義することで(3) 式を以下の行列表現にできる。 minlly-T8-Eδ112 +λδ’ Eδsubjectto T ’ δ= 0 (薄板)平滑化スプラインでは,デ ー タ数が多くなるにしたがってパラメ ー (4) タ数も増加し,Eのサイズが膨大 になることで(4)式を用いた計算が困難になる可能性がある。解決策のlつはノットの数を減らすことである。 一方, Wood (2003)はEの固有値分解による低ランク近似を行う方法を用いている。詳細は省くが,(4)式は 最終的に次の最小化問題になる(User ’ s Guide の p.2891)。 minlly-X/1112 +λβ sp ’ (5)式を最小にする声は (5) 声= (X x +λS) i x y ’ 一 ’ となる。 よって,予測値は9 = Xp = X(X x + λS) i x y = Hlyと表せる。 Hlはハット行列と呼ばれ,廿(H J )は ー ’ ’ 平滑化スプラインの有効自由度(実質的なパラメ ー タ数)である。 平滑化パラメ ー タの値そのものは 解釈が 難しく,モデルの非線形の程度を表すのに有効自由度が用いられる。 2.4 一 般化加法モデルの当てはめ GAM プロシジャでは,応答変数が正規分布(力日法モデル)の場合,以下の後退当てはめ法(backfi凶ng algorithm)を用いる。 後退当てはめ法( backfi制ng algorithm) 1. 初期化: So = y,sf =…= sg = 0,m = 0 、j 2反復: m = m+l とし,j = 1, ,p について,偏残差Riを応答変数とみなして 一 . 九一v j .Y., - s。 /, 』-' -1 (叫 S k= l k すP ー, ノ 』-' lc=j+ l st\巧 )を求める。 ( -1) km m m 3,Si ), …, s� )が変化しなくなるまで2を繰り返す。 応答変数が正規分布以外の指数型分布族の場合,以下の局所評点化法(local scoring algorithms)を用いる。 局所評点化法 (local scoring algorithms) 1. 初期化 : So =9 仔〕,sf =…= sg = 0,m = 0 2. 反復: m = m+l ず 1)および 平均µfm- 1) = g- l cηfm-1))より,調整済み従属変数zi(m-1)および重み wi(m-1)�求める。 - 一 z}m-1) =可fm - ( -1) m ~ (Yi 一 μ? 勺竺) 切µI 一 i -1 ( 1 ,wi m- ) = (V; 加 )) l \ δη / i ここで,時(m 川まµrm- )における巧の分散である。 zt一%応答変数,各デ ー タの重みを w;'m- 勺して,上述の後退当てはめ法を行う。 1 3. 収束基準を満たすか逸脱度(deviance) D (µ)が減少しなくなるまで 2 を繰り返す。 446 J
局所評点化法はGLMの当てはめに用いられる反復重み付き最小二乗法(Iteratively Reweighted Least Squa陀s: IRLS)の各反復で重み付きの後退当てはめ法を行っているとみなせる。 更に, 各平滑項の平滑化ノ号ラメ ー タ を選択する必要がある。GAMプロシジャは平滑項ごとのGCV基準を用いて平滑化ノfラメ ー タを自動選択す るオプションがあるが, それを用いると局所評点化法が収束しない場合がある。 GAMPL プロシジャは, 平滑項を平滑化スプラインに限定しており, その場合は後退当てはめ法は必要な く,X=炉。:X1:···:Xp], β ’ = [P ら= p�: ・・ :昨]および 『0 一 10 0 λ1 S 1 … LO O … S A-1 0 0 l I I ilpSpJ として,(5)式と同様の式を解くことで推定値が得られる。 計画行列, パラメ ー タベクトル, ペ ナルティ行列 の添え字0は線形項,l~pは各平滑項に対応する。 応答変数の分布が正規分布以外の場合, ペ ナルティ付き 反復重み付き最小二乗法( Penalized Iteratively Rewei俳句d Least Sq国民s: P-IRLS) 2 mini!順位-XP)ll +β ’SA P (6) を用いる。z,Wは局所評点化法で説明した調整従属変数と重みからなるベクトルと対角行列である。 平滑化 ’ スプラインを用いたGAMの局所評点化法および(6)式は, ペ ナルティ付き対数尤度i(Pヲー1;2p SA Pの最大化 と等価である。 GAMPLプロシジャは平滑化 パラメ ー タの選択にWood (2004)の Performance iteration法を用いる。 Performance iteration法 I.平滑化パラメ ー タλの初期値を与える。 回帰 パラメ ー タβの初期値を与える。 2.収束するまで以下を繰り返す。 a.調整従属変数z, 重みWを求める。 b.平滑化 パラメ ー タλの最適化を行う。 C.平滑化パラメ ー タを使って線形予測子ηと予測値μを得る。 ヲ& σ 2A 司,‘ + 、.EJ H σ I F,‘、 V且 -t q,a q’h 2一n vd zA H 2 nlly-HAYll ’ 2 .廿(I-HA) GCV: vd -一n EU DH EU U 2.bでは, モデル評価基準としてGCV基準もしくはunbiased risk estimator (UBRE)基準 を用いる。GAMPL プロシジャでは, スケ ール パラメ ー タを持つ分布では GCV 基準が, そうでない場合は UB阻基準がデフォルトである。2.bでは, モデル評価基準のl 次および2次導関数 を求め, ニ ュ ートンラフ ソン法等の数値最適化法で、平滑化ノミラメ ー タを最適化する。 Wood (2008)は P-IRLSの反復の外側で平滑化 パラメ ー タの最適化を行うOuter iteration法を提案しており, Performance iteration法より収束は遅いが安定し ていると言われている。SAS/STAT 1 4.1ではOuter iteration法は実装されているが Experimental(評価版)のた め本稿では取り扱わない。 GAMでは, 上記GCV基準の分子を逸脱度で置き換えたGCV逸脱度 nD(µ) tr(I-Hλ)2 (7) も用いられることがある。 本稿では,GAMプロシジャとGAMPLプロシジャを同じ基準で比較するために, 実行結果の比較ではGCV逸脱度を用いる。 447
3.GAMプロシジャとGAMPLプロシジャの実行方法 GAMプロシジャとGAMPLプロシジャの実行例として,User s GuideのChapter 41 Example 41.1の脊柱後 ’ 湾症データの解析を行う。椎弓切除術を受けた83例の小児患者について,応答変数として脊柱後湾症の有 無(Kyphosis ; I=あり,O=なし),説明変数として手術時の月齢(Age),何番目の脊椎から先を手術したか (StartVert)および手術した脊椎の個数(NumVert)が入力されている。GAM プロシジャと GAMPLプロシ ジャの実行例をProgram lに示す。オプションを除けば,ほぽ同じプログラムで実行できる。 Program IGAMプロシジャとGAMPLプロシジャの実行例 ods graphics口n; ・ 日pr日 E ga data=kyphosis plots=components(additive elm); ’ ’ 旧日del Kyphosis(event= 1 ) =spline(Age) ·spllne(StartVert) spline(NumVert) / dist=binomial method=gcv; run; ・ 日proc ga p I data=kyphosis plots; ’ ’ model Kyphosls(event= 1 ) =spline(Age) spline(StartVert) spllne(NumVert) / dist=binomial; run; Output IGAMプロシジャの出力 Heraliロn Summary and Fit Statistics Number of local scoring ilerations Local scoring convergence criterion Fina I Number of Backfitti ng Iterations Final Backf itt ing Criterion The Deviance of the Final Estimate 100 0.0000341057 4 1.0915804E・ 9 51.209750057 WARNING: The local scoring algorithm did not converge. �,�mi�: Parameter i�vert) rt) Component Spline(Age) Sp I ine(StartVert) Sp I ine(NumVert) Regressiロn Model Analysis Parameter Estimates Parameter Estimate ー, .88889 0.00787 -0.19005 0.87833 Standard Error 1.38043 0.00715 0.07180 0.18601 t Value Pr > It I ー1.21 1.10 -2.85 2.02 0.2804 0.2748 0.0099 0.0485 Smoothing Mode I Ana I ysis Fit Summary for Smoothing Components Smoothing Parameter 0.999992 0.999805 1.000000 DF 1.378752 0.954931 0.000000832 GCV 80.494140 51.687921 13.785018 Num Unique Obs 86 16 10 Smoothing Model Analysis Ana I ysis of Deviance Source Spline(Age) Spline(StartVert) Spline(NumVert) DF 1.37875 日.95493 3.324874E-7 Sum of Squares 10.547226 8.921061 448 Chi-Square 10.5472 8.9211 Pr > ChiSq 0.0022 0.0445
,,
GAMプロシジャの出力をOutput}に 示す。 “IterationSummary and FitStatistics はモデ、ルの当てはめ結果の
要約である。W組NINGが出ているが,これは上述の GAM プロシジャで平滑化パラメ ー タの自動選択を行
う(method=gcvを指定) と局所評点化法が収束しない例である。 しかしながら,反復計算過程を確認すると
、
最初の数回の反復以降はモデ ルがほぼ変化しておらず,出力の説明が目的であるので, そのままの結果を示
す。 GAMプロシジャは, 平滑項か ら線形項を分離する。 例えば, n , … , X3に平滑化スプラインを仮定したモ
デル
η= /3.。+ s1(x1) +s2(x2) +s3 (X3 )
、
は, GAMプロシジャでは以下の モテソレに変換される。
η =戸。+ {31x1 + {32x2 + {33x3 +sl(x1) +si(x2 ) +s3(x3 )
,,
,,
“Parameter Estimate は線形項の推定値 ,“FitSummary forSmoothing Components は平滑項の当てはめ結果
である。Smoothing Parameterの値は,λの代わりにλ/(1 +λ)が示されている。また,表示されている自由度(DF)
は分離した線形項の自由度lが除かれている。 NumVertの自由度 がほぼ0であるが,これはNumVertの影響
が線形項でほぼ完全に説明でき , 非線形効果が存在しないことを意味する。
単
一
のパラメ
ー
平滑項の効果は線形項のように
タの値で要約できない。 PROC GAM文でplotsオプションを指定すると 平清項の 非線形効果
をグラフイカルに 表示できる(Figure2)。 単に plotsのみ指定した場合,s· (x)が表示される。 s(x)を表示する
”
にはcomponents(additive)を追加する必要がある。“Analysis of Deviance は非線形効果の有無(Ho:ダ (x) =0)
の検定結果である。
Output 2 GAMPLプロシジャの出力
適合度統計量
-26.94994
2.68899
6.12778
75.87099
63.46646
64.61781
78.28859
-0.23419
罰則付き対事脱皮
粗度ペナルティ
室効な野
差の '!J v自由度
AIC (小さL \Iまどよし\)
C (小さいほとよL \)
C (小さし \IまとよL \)
E (小さL tほとよし \)
パラメ ー タ推定値
ー
} fラメ
タ
自由度
Intercept
”
推定値
標準誤差
力イ2乗値
Pr > ChiSq
2.158016
0.474521
20.6822
<.0001
fラメ ー タ数
ペナルティ
行列のランク
ノット数
10
10
10
66
16
10
平滑化成分の推定
�分
有効
自由度
平滑化
ifラメ ー タ
粗度
ペナルティ
スブライン(Age)
スブライン(StartVert
スブライン(NumVertl
2.11043
2. 1735
1.000日目
24744.0
24.3226
22215788
1. 6007
。
}
1.0883
2.034E-7
平滑化戚分の検定
成分
有効
自由度
スブライン(Age)
スブライン(StartVert)
スブライン(NumVertl
2.11043
2. 1735
1. 00000
。
検定の
有効自由度
449
力イ2乗値
Pr > ChiSq
7.7823
9.0739
3.9377
0.0507
0.0283
0.0472
GAMPLプロシジャの出力をOutput2に示す。 GAMPLプロシジャは線形項を分離しないため, 線形項のパ ” “ ラメ ー タが表示される パラメ ー タ推定値 には切片のみ表示されている。 “ ” 平滑化成分の推定 は平滑項の 当てはめ結果であり, 自由度はGAMプロシジャの線形項と平滑項の自由度を足した値とほぼ同じになって いる。 PROCGAMPL文でp加を指定すると, 非線形効果をグラフイカルに表示できる(Figure3)。 成分の検定 ” “ 平滑化 は, 平滑項のモデルへの寄与(H 0 : s(x) = O) の検定結果であり, GAMプロシジャと検定内容 が異なるので結果の解釈する際に注意が必要である。 ・ AdditM G。mponanta for k別出回is W品血路C圃園田曲-1..imi恒 4 4 4 且芯回 【 【 官@〉ザ且同】事 。 2 。 4 4 。 却 150 100 200 。 250 5 10 15 S阻止V・同 DF=’ ’a au 宅 S E ZE a- a時 so 7.5 100 12.5 他,mVe同 Figure2GAMプロシジャの各説明変数の効果 平滑化成分:K酬。sis 観硝信t1,<�i: 2 4 4 宅 @〉tE闘V -E- 師 4 田 且ε宮阜官嶋 【 0 量 。 4 4 , 却 ω 内担 ,騎 10 200 St,同,va同 DF=1 ・a au Am噌 〉EョZM E E闘 宅@ 畠 50 7.5 1岨B NumVe同 12.11 Figure 3 GAMPLプロシジャの各説明変数の効果 450 15
Figure2 および Figure3 の左上は手術時の月齢の非線形な効果を表しており, 手術時の月齢とともに脊柱後 湾症の発症率は増加していくが,約 100 カ月でピ ー クを迎え,それを過ぎると発症率は減少に転ずる(小西& 北 JII, 2004)。 4.GAM プロシジャと GAMPL プロシジャの構文 4.IS戸tax GAM プロシジャと GAMPL プロシジャの Syntax は以下のとおりである (SAS, 2015 )。 PROC GAMくoptions>; CLASSvariable< (options )>く variable< (options)> ...></options>; B置ODELdependent< (options )> = く PARAM(effects) >く smoothing-effects>< I options>; SCORE DATA= SAS-data-set OUT= SAS-data-set; OUTPUT OUT= SAS-data-set< keyword< =prefix> ... keywordく =prefix>>; FREQ variable; PROC GAMPL<options>; CLASSvariable く(options )>:::く variable く (options)>></ global-options>; MODELresponse く(response-options)> = く PARAM(effects)><spline-effects 〉く I model-options >; MODELevents / trials = く PARAM(effects)><spline-effects></ model-options>; OUTPUT<OUT=SAS也ta 咽t >く keyword 〈『ame >>ー・ く keyword く =name>> </options>; PERFORMANCEperformance-options; FREQ variable; IDvariables; WEIGHTvariable; CLASS 文, FREQ 文および WEIGHT 文は, GENMOD プロシジャ等の回帰モデル系のプロシジャと同様の 仕様であり, 説明を省略する。 GAMPL プロシジャの PERFORMANCE 文は SAS High-Performance Anal戸ics に関する機能であり, 本稿では省略する。 4.2M0DEL文 両プロシジャとも左辺に応答変数を指定する。 応答変数が 2 値 (ベルヌ ー イ分布) の場合に, 追加オプシ ヨンでどちらの値をイベントとするか指定できる。 また, 応答変数が二項分布の場合に, event I trials の 2 変 数による指定も可能である。 これは GENMOD プロシジャや LOGISTIC プロシジャと同様の仕様である。 右辺はモデル式を指定する。両プロシジャとも説明変数の効果に平滑化スプラインを仮定するには SPLINE () で囲う必要がある。また,線形項(CLASS 文で指定したダミ ー 変数含む) を仮定する説明変数は PARAMO で囲う必要がある。 両プロシャとも切片は自動で含まれる。 指定できる効果を Table !に示す。 簿板平滑化ス プラインの指定方法が異なるので注意が必要である。両プロシジャとも MODEL 文のオプション(/の後)で, 451
OFFSET=variable を指定することで, モデルにオフセット変数を加えることができる。 Table I MODEL文で説明変数に仮定できる効果 効果 パラメトリック項 平滑化スプライン 薄板平滑化スプライン(2変数) 薄板平滑化スプライン(3変数以上) LOESS GAM PARAM(variable1 variable2 ・ ・ ・ ) SPLINE(variable) SPLINE2(variable1 ,variable2) X LOESS(variable) GAMPL PARAM(variable1 variable2 ・ ・ ・ ) SPLINE(variable) SPLINE(variable 1 variable2) SPLINE(variable1 variable2 ・ ・ ・ ) X 両プロシジャとも MODEL 文のオプションで DIST=keyword により応答変数の分布を指定できる。 更に GAMPLプロシジャは L別K=keyword でリンク関数も指定できる。 GAMプロシジャでは, リンク関数は正準 リンク関数に限定されており, 指定することが出来ない。 指定できる分布とリンク関数を Table2 に示す(定 s uide参照) 義はUser ’ G Table2指定できる分布とリンク関数 分布:kevword 正規分布:NORMAL ベルヌーイ分布/2項分布:BINOMIAL ポアソン分布:POISSON ガンマ分布・ GAMMA |負のニ項分布・ NEGATIVEBINOMIAL 逆ガウス分布:INVERSEGAUSSIAN リンク関数:kevword ldentitv:IDENTITY Loe::LOG Loe:it:LOG汀 Probit:PROBπ Comolementarv loe:-loe::CLOGLOG Log-loe::LOGLOG Loe::LOG Reciorocal:INV Nee:ative reciorocal:非該当 Loe::LOG Loe::LOG Reciorocal sauare:INV2 Log:LOG 。 。 GAM × X X 。 。 。 X × X X X 。。 。。 。。 。。 。。 。。 GAMPL × GAMプロシジャでは, MODEL文のオプションでMETHOD=GCVを指定することで, 平滑項ごとのGCV 基 準 を 用 いた 最 適な 平 滑 化 パ ラ メ ー タ の探索を行う 。 GAMPL プ ロ シ ジ ャ で は , METHOD= PERFORMANCEI OUTERで平滑化ノ4ラメ ー タの最適化の方法を選択することが出来る。 デフォル トは PERFORMANCE であり, OUTER は SAS/STAT 14.1では Experimental(評価版) である。 また, ー CRITERION=GCV IUBREIGCVで平滑化パラメ A タの最適化に用いる基準を指定できる。 GAMプロシジャは,SPLINE(変数,DF=number)で,各平滑化スプラインの自由度を任意の値に指定できる。 GAMPLプロシジャは, SPL町E(変数/Smoothing Options)で, 平滑化スプラインをより詳細に調節できる。 両 プロシジャとも通常は ユニークな説明変数の値をノットとする。GAMPLプロシジャは,ノット数がSmoothing Optionsの MAXKNOTS=number の値(デフォルトは 2000)を超える場合, ユニークな説明変数の値からラン ダムサンプリングで用いるノットを決める。 サンプリングの結果を再現するには, GAMPL 文のオプション で SEED=number を指定する。 Smoothing Optionsで MAXDF=number により最大の自由度(低ランク近似した ペナルティ行列のランク) を指定できる。 SMOOTH=number で平滑化パラメ ー タを任意の値に指定できる。 DF=number は指定した自由度になるよう平滑化パラメ ー タの値が選択されるように見えるが, 最大の自由度 452
が変更される(例えば,DF=3およびM AXDF=IOを指定するとペナルティ行列のランクが3になる)。 他に ’ も,平滑化パラメ ー タの初期値や探索範囲の指定, ノットの調節なども可能である。 詳細はUsers Guideを 参照されたい。 4.30UTPUT文 両プロシジャとも U O TPUT文で予測値等を含んだデー タセットを作成できる。 その際,応答変数が欠測で 説明変数が非欠測の ob servationの予測値も算出される。 GAMプロシジャはMODEL文で指定した説明変数 および応答変数も作成されるデ ー タセットに含まれるが,GAMPLプロシジャでは D I 文で指定した変数のみ 作成されるデ ー タセットに含まれる。 出力できる項目の Keyword をTable 3に示す。 *の項目はGAMプロシ ジャではデフォルトで平滑化スプラインごとの値が含まれるが,GAMPLプロシジャでは OUTPUT文のオプ T を指定した場合のみ平滑化スプラインごとの値が含まれる。 GAM プロシジャの ションでCO MP ONEN ‘ SCORE文では,モデ ルの当てはめに用いたデ ー タセットとは別のデー タセットを指定して,予測値を含んだ デー タセットを作成できる。 Table3 OUTPUT文で出力できる項目 GAM PRED LINP RESID X GAMPL PRED LINP PEARS RESID 標準偏差(線形予測子)* 下側信頼区間* 上側信頼区間* ハット行列の対角要素* GAM STD LCLM UCLM ADIAG GAMPL STD LOWER UPPER X 5. 実行結果の比較 5.1方法 ’ Users GuideのChapter 41 GAMプロシジャ及びChapter 42GAMPLプロシジャのG etting S tarted及び Example s の解析を双方のプロシジャで実行し, 結果を比較した。 デー タおよびモデルの概要と実行結果を 、 Table4に示す(巻末)。 モデ ルの当てはめ結果として, モデルの自由度(線形項と平滑項の総合計),逸脱 度および(7)式のGCV逸脱度を示した(両プロシジャ の出力には含まれないが, 予測値と自由度から容易に 計算できる)。 また,ログの実行時間(処理時間/CPU 時間)も示した。 GAMプロシジャはME百IODG = CVで平滑化パラメ ー タを選択した。 GAMプロシジャはデフォルトでは, 、 非線形効果の検定のために各平滑項を線形項に置き換えたモデ ルの再当てはめを行うが,処理時聞が増加す O E FITを指定し, 複数モデルの当てはめを制限した。 るのでMODEL文のオプションでANNODEV=NR GAMPLプロシジャはMETHOD= P ERFORMAN CE で平滑化パラメ ー タを選択した。 GAMPLプロシジャで は, 2変量薄板平滑化スプラインのM GAMプロシジャで自由度20を AXDFはデフォルトでは 20であるが, 超えることがあったため,MAXDF =40に変更した。 また, S EED=l2345を指定した。 実行時間を評価する際,オプションは上記のみ最低限の指定としたが,両プロシジャはモデ、ルの当てはめ 以外の処理も行うため, 実行時間は両プロシジャで採用されている手法の比較ではなく, あくまでプロシジ ヤ聞の比較である。 また, C P のスペックおよび実行時の PCの状態にも依存するため厳密な比較ではない。 453
5.1結果 実行時間の結果では, GAMプロシジャではデ ー タV OT Eおよび MACKは30分くらい掛かつても結果が 得られなかった。 原因としてGAM プロシジャはユニ ー クなデ ー タ値をノットにした計画行列と ペ ナルティ 行列をそのまま計算に用いるため, 大規模なデ ー タでは計算量が膨大になることが考えられる。 ちなみに, 両デ ー タとも, 簿板平滑化スプラインを除くと計算は終了したことから, 薄板平滑化スプラインの計算負荷 が特に大きい可能性がある。KYPHO と PIMAでは局所評点化法が収束せず, 実行時聞が局所評点化法の最 大反復回数に依存するため, 実行時間を 表示していない。 しかしながら, 反復計算過程を見ると両デ ー タと 、 もに最初の数回の反復以降はモデ /レが ほぼ変化していないことから, モデルの当てはめ結果を参考までに表 示した。小規模なデ ー タではGAMプロシジャの方が速い傾向にあったが,ほとんどの場合1秒以内であり, 体感できる差はなかった。 モデルの評価として, PIMA以外のデー タでは自由度はGAMPLプロシジャで小さい傾向であり, よって 逸脱度はGAMPL プロシジャの方が若干大きかった。GCV逸脱度はGAM プロシジャの方が小さいときと 、 GAMPLプロシジャの方が小さいときがあり, 値は大きく異ならないことから, モデ ルの良さに関して大き な違いは見られず, ほとんどの場合同じような解析結果が得られていた。 PIMAでは他のデ ー タに比べて自 由度の差が大きかった。GCV逸脱度はGAMプロシジャの方が小さく,GAMPLプロシジャの平滑化パラメ ー タをGAMプロシジャで得られた自由度に近くなるよう手動で調整すると元のGAMPLプロシジャのGCV 逸脱度より小さくなったことから, PIMAではGA阻Lプロシジャで選択された平滑化パラメ ー タは最適解 に収束していないと考えられる。 6.まとめ 本稿では,GAMプロシジャとGAMPLプロシジャの特徴および実行方法を紹介し,いくつかのデー タでの 実行結果を 比較した。 GAMPLプロシジャは,GAMプロシジャではサポ ー トされていない負の二項分布を応答変数に仮定するこ とができ,過分散(overdispersion) が生じているカウントデー タの解析が可能である。Use’rsGuideの Examp e l 42.3は負の二項分布を仮定した場合の解析も行っている。また, リンク関数の変更もでき, より広範なモデ ルを仮定することができる。 一方,GAMプロシジャではLOE S Sを 用いたGAMも実行できる。 平滑化パラメ ー タの選択において,GAMプロシジャで METHOD=GCVを指定すると局所評点化法が収束 しない可能性がある。 解決策としては, 自由度の値を指定すれば収束するので, 得られた自由度を参考に指 定するか, 自作のマクロで自由度を動かして最適な自由度を探索する等が考えられる。GAMPL プロシジャ はWood 法で平滑化パラメ ー タの最適化が可能であり, P-IRLSは収束する。 平滑化スプラインでは, 平滑化 パラメ ー タの選択は重要な問題であり, 多くの平滑化パラメ ー タを持つモデルで、は最適な平滑化ノ号ラメ ー タ の選択は複雑な問題になるので, アルゴリズムによって得られた平滑化ノ号ラメ ー タが最適であるか確認する ことは有益であると考える。 解析対象のデ ー タセットが大きくなるとGAM プロシジャで計算が困難になる可能性があるが,そのよう な状況でもGAMPLプロシジャは ペ ナルティ行列の低ランク近似を 行うことで解析を実行できる可能性があ る。 しかしながら, ペ ナルティ行列の低ランク近似により, 平滑化パラメ ー タによる調整の前段階で自由度 の上限が制限されるため, 最大自由度(ペ ナルティ行列のランク ) が十分かどうか注意を払う必要がある。 なお,GAMPLプロシジャは, SASH igh-PerformanceAnal戸ic s プロシジャに該当しており, 本稿の解析は全て 454
シングルマ シンモ ー ドで、 行っているが,環境 によって はより大規模な デ ー タの解析 において も有用 な可能が ある。 本稿の結果は,User ’s Guideで取り上げられている限られ たデ ー タの範囲での検討に基づいて お り,実行し た PC環境も限定的である ため ,別の状況において 本稿 と異な る傾向が見られるかも知れない。 以上,GAMPLプロシジャの登場により,SASで GAM による 解析を行う環境が拡充され た。 謝辞 本稿について,貴重なご意見をいただきました大阪電気通信大学名誉教授の辻谷将明先生に心より感謝申し上 げます。 参考文献 小西貞則,北川源四郎(2004). 情報量規準. 朝倉書店. SAS Institute Inc. (2015). SAS/STAT(R) 14.l User ’s Guide. Cary, NC, USA: SAS Institute Inc. 竹津邦夫(2007). みんなのためのノンパラメトリック回帰第3版上 . 吉岡書店. 竹津邦夫(2007). みんなのためのノンパラメトリック回帰第3版下. 吉岡書店. 問中豊,森川敏彦,山中竹春,冨田誠訳,Annette J. Dobson著(2008). 一般化線形モデル入門. 共立出版. 丹後俊郎(2000). 統計モデル入門. 朝倉書店. 辻谷将明,竹j宰邦夫(2015). マ シンラ ー ニング第2版. 共立出版. Wood, S. (2003). Thin plate regression splines. Journal of the Royal Statistical Society, Series B 65:95-114. Wood, S. (2004). Stable and efficient multiple smoothing parameter estimation for generalized additive models. Journal of the American Statistical Association 99:673--686. Wood, S. (2006). Generalized Additive Models An Introduction with R, New York, Chapman & Hall. Wood, S. (2008). Fast stable direct自白ing and smoothness selection for generalized additive models. Journal of the Royal Statistical Society, Series B 70:495-518. 補遺 GAMPL文のSEEDは4.2で 説明した ノットのランダムサンプリングの他にペナルティ行列の固有値分解の ’ 数値計算 にも用いられるようである(User s Guideのp.2874) 。 前者は説明変数の値が十分に密であれば,モ デルへの影響は少ないと恩われる。 後者 は本質的 には モデ、ルに 影響しないと思われるが,数値計算が不安定 にな るデ ー タで は 影響するかも知れない。 5節のYIELDデ ー タを User ’ s Guideの値のままGAMPLプロシジ ヤでSEED を指定せずに解析 すると,実行ごとに 結果が変わる現象が見られた。 平滑化パラメ ー タを固定し でも(パラメー タ推定 値は一 意に定まる) ,適合度統計量に表示される粗度ペナルテイの値が実行ごとに変 わっ たことから ,低ランク近似後のペナルティ行列の値が変わっていると思われる。 偶然だが説明変数 Catalystを1000倍し,整数にしたところ改善され た。 455
Table4GAM プロシジャと GAMPL プロシジャの実行結果の比較 デ一世 DIAB b KYPHO b EQUIP YIELD VOTE 品印 b 0 UDAR d ∞ PIMA 8 1 MACK b 用いたデ�およびモデル Obs数 モデルa 引用元 l。gCP= s(Age) + s(B aseD eficit) 43 G etting St arted: GAM logCP:Cー ペプチド;湿度の対数変換,Age ・年齢,BaseD eficit:不足塩基盤 Pr。cedure 自;3 Kyph。sis= s(Age) + s( StartVe同) + s(NumVe内) Example 41.1 StartVert: 何番目の脊椎から先を手術 したか, Kyphosis: 脊柱 後 湾 症 の 有無, Age: 手術時の月齢, 術 た替 椎 の個 数 Nu『nVert . 手 し removals= s(mon th) Example 48 41.2 問m。vals: 月あたりの撤去部品数,month: 月 ベルヌーイ Example 41.3 正規 112 Yield= s(Temperature,Catalyst) 分布 正規 ポアソン Yield:化学反応の収率 ,T emperature:溶液の温度,C atalyst目加えた触媒の量 3107 G etting Started: GAMPL Proc edure 221 Example 42 1 LogV,。teRate= s(Pop) + s(Edu) + s(Houses) + s(Income) + s(L。ngitude,Latitude) 正規 ー LogVo teR坑e:投累率の対数変換Pop:18歳以上の人口敏,Edu:グレ , ド12以上の学習を受けた人口敏 , Hous es:住戸数 l Incom e:総所得,Lonoitude:経度凶,titude ;緯度 L。gRati。= s(RANGE) 正規 LogRatio:2つのレーザー光源から受ける光量の比の対数変 Example 42.2 532 換 . RANGE:光が先源に反射される前に移動する 距縫 Di abetes= s(Npreg) + s(Glucose) + s(Pressure) + s(Tric eps) + s(BMI) + s(P edigree) + s(Age) ベルヌーイ Example 42.3 634 Diabetes:糠尿病の 有無,Npreg: 妊 娠 回 数,Gluc OS e ブ ドウ糖負荷銭験の2 時間血穏健 . Pressure:鉱強期血圧Triceos: 上院 三 筋頭 皮 下 脂肪 . BMI:BMI P edi町伺:精尿病血統関数A,,.e: 年齢 Eg且Count= s(Longitude,Latitude) + s(Depth) + s(Di由ne e)+。仔se t(LoιN et介ea) ポアソン Eg且Count:卵の数,Longitude:経度,Latitude: 緯度D epth:海底の深さ, Distance:大陸棚からの距離LoJ< N et Area: 収穫網の面積の対数変換 結果 自由度 逸脱皮 G CV 逸脱度 C 処理I PU 時間(秒) 自由度 逸脱度 G C v 逸脱皮 ; 時間(秒} 処理 CPU 自由度 逸脱皮 GOV 逸脱皮 処理/CPU時間(秒 } 自由度 逸脱皮 GOV 逸脱度 (秒) 処理/CPU時間 自由度 逸脱度 GOV 逸脱度 処理/CPU時間(秒) 自由度 逸脱皮 GOV 逸脱皮 処理νCPU 時間(秒) 自由度 逸脱度 GOV 逸脱度 (秒) 処理/CPU時間 自由度 逸脱皮 GOV 逸脱皮 処理/CPU 時間(秒) GAM 10.94 0.36 0.01523 0.27/0.01 6.33 51.21 0.7231 NA 3.88 56.90 1.403 0.04/0.04 23.28 62.15 0.8844 0.07/0.06 NA NA NA NA 9.04 1.34 0.006596 0.04/0.04 15.99 431.77 0.8627 NA NA NA NA NA GAMPL 9.70 0.38 0.01480 0.56/0.14 6.13 51.21 0.7193 0.12/0.14 3.89 56.10 1.384 0.04/0.01 21.84 64.73 0.8918 0.31/0.25 66.03 28.50 0.009576 4.22/10.99 9.00 1.33 0.006537 0.07/0.09 22.91 424.17 0.8707 0.54/0.59 54.18 3848.33 7.257 2.63/2.20 プライン, s(変数名 l,変数名2):薄板平滑化スプライン, offset(変数名):オフセット変数 a: s(変数名):平滑化ス b:User ’s Guide中のSASプログラムに記載されている。 ただし, YIELDのCatalyst は元のデ ー タをIOOO倍した値を用いた(補遣を参照)。 c:SASHELPライブラリのデ ー タセットVotel980を使用した。 d:http://www.stat.凶mu.edu/~C町oll/semire gbook/からダウンロー ドした。 e:http://町hive ics. uci.edu/ml/カミらダウンロー ドした。 ただし, Glucose, Press町e, BMIおよびTriceps がOのデ ー タは削除した( 削除をすることでUser ’s Guide記載されているデ ー タ数532obs. に一 致 した ) 。 Example 42.2ではデ ー タをtraining (モデノレ当てはめ用)と test (モデル評価用)に二分しているが, 条件が分からないため, 本稿では532obs.をモデル当てはめに用いた。 Eフリ ー ソフトRのgamairパッケ ー ジに含まれるデ ー タを用いた。
歌舞伎「仮名手本忠臣蔵Jの上演パタ ー ン 0坂部 裕美子 (公益財団法人 統計情報研究開発センタ ー) 「仮名手本忠臣蔵」は、歌舞伎作品の中でも特に知名度が高く、上演回数も非常に多い。 これ は、 もともと全11段に及ぶ長編物語である上に、全段の通し上演が多いことが大きく影響していると考 えられるが、 いずれかの部分をl ~ 2幕抜き出して上演することも多くあり、 全体からどの場面をど のように選んで上演するか、 という個々の「上演パタ ー ンjは非常にバリエ ー ションが大きい。 こ の「忠臣蔵の上演パタ ー ンJを、 SASを用いて集計した。 ( 1 )近年の上演について 日本俳優協会が作成した 「 歌舞伎公演デ ー タベ ー ス ~ 戦後から現代まで」のデ ー タを使用して 1946年 ~ 2010年までの 「 忠臣蔵J上演ノfタ ー ンを調べた結果は、 以下のとおりとなった。 上演された箇所 落人(道行飯路の花餐)のみ 七段自のみ カ島自のみ 大序 ・ 三 ・ 四 ・ 落人 ・ 玉 ・ 六 ・ 七 ・ 十一 段目 五段目 ・ 六段目 回数 40 22 19 19 15 上漬された箇所 回数 14 八段自のみ 大序 ・ 三 ・ 四 ・ 落人 ・ 五 ・ 六 ・ 七 ・ 八段目 5 大序 ・ 三 ・ 四 ・ 落人 ・ 五 ・ 穴 ・ 七 ・ 九段目 4 大序 ・ ニ ・ 三 ・ 四 ・ 落人 ・ 玉 ・ 穴 ・ 七 ・ 丸 ・ +一段匹4 最多 は落人(道行旅路の花笠)の単独上演、 次いで七段目の単独上演と、 「上演パタ ー ン別」の 頻度で見ると、 l幕での上演が上位となる。 ( 2)過去のすべての上演について さらに、 2016年に発売された「国立劇場上演資料集<別冊> 仮名手本忠臣蔵 上演年表 歌舞 伎 ・ 文楽JというCDに収録されている、 1748年の初演から2016年までの、 現時点で把握できてい るすべての「忠臣蔵J上演デ ー タのうち、 上演箇所が判明している分の記録を使用して同様の集計 を行うと、 以下のとおりとなった。 上演された箇所 大序~十 一 段目(全段通し) 大序~七段目 落人(道行旅路の花笠)のみ 大序~九段目 七段目のみ 回数 389 103 97 71 64 上演された箇所 五段目 ・ 六段目 九段目のみ 大序 ・ 三 ・ 四 ・ 五 ・ 六 ・ 七段目 大序 ・ 三 ・ 四 ・ 落人 ・ 五 ・ 六 ・ 七 ・ 十 一 段目 八段目のみ 回数 54 48 40 32 28 初演当時は「全段通し」が基本上演形態だったこともあり、大半が通し上演となっているが、 「 七 段目のみ」「九段目のみ」 「 五段目 ・ 六段目」とし、うパタ ー ン はかなり以前から踏襲されていたよ うである。 459
CDASHからSDTMを効率的に作成するためのTipsのご紹介 。小松邦岳、 鈴木淳 一、 村岡了 一 、 飛石陵子 (株式会社アスクレップ) Rawデ、 ー タからのSDTMの効率的な作成は、 各社取り組んでいる大きな課題です。 、 CDASH標準を利用してCRFおよびRawデ ー タを作成することで、 SDTMの効率的な作成は可能で すが、 注意すべきポイントがいくつかあります。 また、 EDCの仕様上の制約などにより、 Rawデー タが理想の定義にならないこともあるでしょう。 本発表では、EDC出力のRawデ ー タからSDTMを効率的に作成するためのポイントと、そのために 開発したツ ー ル(SASマクロ)のコンセプトを紹介いたします。 460
若者の消費傾向はライフスタイルが変化するにつれ、 どのように変化するか? :横断研究 参加カテゴリ:B) SASまたはJMPの使用歴3年未満 チ ー ム名:SAフレッシャ ー ズ 谷 真宏、 壁谷 勇佑、 福津 イ ー ピ ー エス株式会社 和輝 統計解析1部 How do changes in lifestyle affect consumption trends in young people? :a cross-sectional study. Team name: SA Freshers Mahiro Tani, Yuusuke Kabeya, Kazuki Fukuzawa Statistics Analysis Depaはment 1, EPS Corporation 要約:「さとり世代Jの我々にとって、 生活環境の違いが支出内訳に及ぼす影響を知ることは、 今後のライフスタイルを検討する上 で意義が大きい。 そこで、 全国消費実態調査に基づいた疑似ミクロデ ー タを用いて、 我々の同世代を、『単身世帯』、『夫婦 のみ世帯』、『 一 子あり夫婦世帯』、『 一 子 一 人親世帯』 の 4 群に分類し、 消費実態を調査した。 世帯数はそれぞれ 876 世帯、 1,058 世帯、 1,675 世帯、 153 世帯であった。 ライフサイクルが 『 数が増えることにより世帯収入は増大するが、 一 一 子あり夫婦世帯』へ進むにつれ、 年齢が上がり、 就業人 方で消費支出は主要耐久消費財やランニングコストが増加し、 子供の保健 医療や教育費が発生した。それに伴って、支出を抑えようと、娯楽支出を減らし、外食を抑えることで節約が行われていた。 また『単身世帯』 は他の世帯に比べ、飲料の消費が多かった。単身世帯のうちに外食費や飲料を節約する生活を送ることが、 生活環境の変化に柔軟に対応するために大切であると分かった。 キ ー ワ ー ド:疑似ミクロデ ー 夕、 25 ~ 34 歳の世帯、 さとり世代、 格差社会 1. はじめに 我々は入社 一 年目の会社員で、 今年から社会人の仲間入りを果たした。 我々の世代は、 世間では 「さとり世代Jと呼ばれ、 バ ブ ル崩壊後の不況の中で育ち、 将来に漠然とした不安を抱え、 浪費をしない傾向にあると指摘されている。 実際に我々3人も、「我々 の生活環境はいつ変化するかわからない。 自分の収入だけで、 今後の生活を切り盛りできるだろうか。」という不安を抱いている。 近年メディアでは、 一 人で子供を育て、 経済的に苦しい暮らしをしている同世代や、 定職に就けず、 生活が困窮している同世代を 度々自にする。 また身近な友人では、 既に結婚し、 家庭を築いている同世代もいる。 このように社会全体でみると、 同世代の生活 環境は様々であるといえる。 我々にとって、 同世代の消費を上記のような世得類型ごとに調査することは、 生活環境の変化による消費の変化を知ることが出 来、 今後のライフスタイルを検討する上で意義が大きい。 そこで、13年前に我々のほぼ同年齢程度であった世代で、 生活環境の違 いが支出内訳にどう影響を及ぼすのかについて、 平成 16 年 全国消費実態調査( 1) (以下、 全国消費実態調査)に基づく疑似ミクロ デ ー タ(2)を用いて調査した。 全ての解析はSASver9.4 (SAS Institute Inc., Cary, NC)で行った。 463
2. 方法 2.1. 2.1.1. 表1 対象集団 対象集団の抽出 共通条件 本研究で用いる疑似ミクロデ ー タ[2)は、全国消費実態調 就業人数 近似していることは確認されている。本デ ー タは元のデ ー タの変数が 一 部削除されているため、 対象集団を抽出する のに元のデ ー タに比べ 一 定の制限がある。 我々は、 疑似ミ タにおける 69,131 世帯から、 今回我々の調査し 家族分類 世帯人数 されたデ ー タである。分布特性は元の匿名デ ー タのそれに クロデ 25 ~ 34歳 世帯主の年齢 査に基づき統計デ ー タ利用推進及び教育用目的で疑似化 ー 1~ 2人(無職を除外) 一 子供の有無※ 単身世帯 1人 単身世帯 夫婦のみ世智 2人 夫婦のみ世帯 なし 子あり夫婦世帯 3人 二世代の世帯 あり 一 子一人親世帯 2人 なし 二世代(一 人親)の世帯事 あり ※子供の有無・・・来就学児または学校に通う世帯員の有無 たい若い世代を、 生活環境の違いで分類するために、 表1のような抽出条件を設けた。 世帯人数に制限を加えたのは、 世帯主また は配偶者以外による収入の影響を除くためであり、 また、 子供の人数による影響を除くため、 子供がいる世帯は 一 子とした。 抽出 した世帯を『単身世智』、『夫婦のみ世轡』、『 一 子あり夫婦世智』、『 一 子一 人親世帯』 とした。 2.1.2. 対象集団の世智数 対象集団の各世帯数を図1に示す。 f24歳以下または 35歳以上」の世帯 61,778 世帯 無職世帯 173世帯 決議@融骨骨.- 弘明世号車 - 閥tき:, 輔君 ,4111世重量 l I 鎚自 世鍛 l 図1 世帯数は『単身世帯』 876 世帯、『夫婦のみ世帯』 1,058 世帯、『 一 子あり夫婦世帯』 1,675 世帯、『一 子 一 人親世帯』 153 世帯であ った。 また、『夫婦のみ世帯』 1,058 世轡のうち、 片働きの世帯及び共働きの世帯はそれぞれ 428 世帯と 630 世帯、『 一 子あり夫婦世 帯』 1,675 世帯では、 それぞれ 1,075 世帯と 600 世帯であった。 2.1.3. 疑似ミクロデ ー タと全国消費実態調査及び国勢調査の比較 今回の対象集団のデ ー タ抽出の妥当性と、 結果の 一 般化可能性を検討するために、 今回興味のある集団の世帯数の中で全国消費 実態調査及び国勢調査の結果表と比較可能な世帯数を算出し、 比較した。 結果を表 2 に示す. 結果表は全国消費実態調査 世帯分布編の第 2 表問及び、 平成 17 年国勢調査(以下、 国勢調査)の第ヨ表、 第6表、 第7表、 第 10 表何]を用いた。 464
表 2 25 ~ 34 歳 疑似ミクロデー タ 全国消費実態調査 対 10万世帯比(※ 1) 対 10 万世帯比(※ 1) 疑似ミクロデ ー タ 国勢調査 25 ~ 34歳 対 10万世帯比{※ 1) 対 10万世帯比(※ 1) 11,530 12,320 疑似ミクロデー タ 全国消費実態調査 総世帯数 11,530 13,612 対 10万世帯比{※ 2) 対 10 万世帯比{※ 2) 総数 夫婦のみ 1,525 1,968 夫婦のみ 1,915 37.1% 1,922 35.5% 単身 4,052 6,055 一子あり夫婦 2,955 57.2% 3,042 56.2% 一子あり夫婦 2,349 2,440 一人親 293 5.7% 453 8.4% 一人親 409 434 230 226 25 ~ 34歳 5,163 合計 100.0% 5,417 100.0% 一子 人親 ※ 1 総世帯を100,000世帯とした時の世舗数 ※ 2 2 人以上の世帯を100,000世帯とした時の世帯数 疑似ミクロデータと全国消費実態調査における各集団の世帯数の対 10 万世帯比は概ね 一 致した。 疑似ミクロデータと 国勢調査における各集団の世情数の対 10 万世帯比は、「単身世帯J以外の世帯でほぼ 致する結果 と なった。 「単身世情」については、 疑似ミクロデ ー タの世帯数の 10 万世智比は国勢調査と比 べて少なかったが、 国勢調査は全例調査である のに対し、全国消費実態調査は標本 調査である。平成 12 年の国勢調査の結果をもとに、独自の手法[5]により算出した標本数をもと に調査している。「単身世帯」の標本数は少なく推定されていたものの、 抽出の基準はほぼ同等である。そのため、 10 年 以上前の 調査であるという点は考慮すべきであるものの、 本研究の各世帯で得られた結果を日本の現在の同世代の各世帯の結果 として 一 般 化して も 、大き なバイアスは生じないと 考えられた。 2.2. 謂査 項目 対象集団の各世帯に対して以下の項目を調査した。 調査にあたり、 収入及び支出は各世帯人数分の経常収入及び消費支出とし、 消費支出を 100 とした時の各支出の割合を評価した。 加えて 一 子あり世帯については、 子 供の就学期分類ごとの世帯数を調査した (2.2.3.の項を参照)。 経常収入の分布 生活閣の内訳(世帯に関する項目の「大都市圏の別Jを用いた。) 消費支出の内訳(2.2.1.の項を参照) 食費支出に対する『内食』・『中食』 ・ 『外食』の内訳(2.2.2.の項を参照) 『内食』 支出に対する各食料費の内訳 2.2.1. 消費支出 消費支出の内訳は、収支に関する項目のうち、「 食料J、「住居」、「光熱 ・ 水道J、「家具 ・家事用品」、「被服及び履物J、「保健医療J、 「教育J、「教養娯楽」、「交通・自動車等 関係費」、「 通信J、「その他の消費支出Jの合計 10 個の変数を用いた。 2.2.2. 『肉食』、『中食』、『外食』の定義 『内食』、『中食』、『外食』の定義は先行研究[6]を参考に、 収支に関する項目の「食料Jのうち、「穀類 j 、「魚介類」、「肉類」、「乳 卵類J、「野菜・海藻J、「果物J、「油脂・調味料J、「菓子類」、「飲料」、f酒類」の 10 項目を『内食』と定義した。 また、「 調理食品 j を『中食』、「『外食』Jを『外食』 と 定義した。 2.2.3. 子供の就学期分類 子供の就学期を、 世帯に関する項目の変数の「来就学児の有無」及び「 学校に通う世帯員の有無」を用いて分類した。 また、 学 校に通う世帯員 有 りの群を、 収支に関する項目の「 学校 給食」の支払いがある群と無い群で分類し、 以下の3群に分類した。 ① 『未就学児 群』 ② 『給食費あり群』(小学生及び一 部の中学生を想定) ③ 『給食費なし群』(一 部の中学生及び高校 生を想定) 465
2.2.4. 追加解析 但し、 単身はl人分、 調査項目の結果を確認した後、 考察を行うために追加解析を行った。 夫婦のみは1~2人分、 一 3. 対象集団の収入及び特性に関する結果 3.1. 子 一 人親は1人分、 一 各世繕の経常収入の内訳 の 世稽骨悶閉経常寝入の分布 各世帯の経常収入の内訳を図 2 一 ヶ月あたりの収入 車身世智 876 世稽慰 26.9万 平均 中央値26.6万 領軍偏珪12.6万 に示す 各世帯の経常収入の平均は、『単 身 世帯』 で26.9万円、『夫婦のみ世 尭伺のみ世窃 帯』で38.6万円、『一子あり夫婦世 帯』で35.5万円、『一子 一 人親世帯』 で19.0万円であった。 3.2. 子あり夫婦はト2人分、 .......…一一一…即 ‘"" 各世帯の生活圏の内訳 ー子あり ー 人目世智 世俗敵 153 平均 19.0万 中央値 18.6万 罰司書留豊10. 0万 ・2’ ” Jf-l#JJ mt-JOJJ ,cm.am 0 ‘...・ 値’・ 儲... 2 2・ 制問 陣,,.. 図z 各世稽の企業区分及び生活圏の内訳をそれぞれ表 3 に示す。 『 一子 一 人親世帯』は、 他の世帯と比較して「3大都市圏Jに住んでいる割合が高かったが、 他の世帯では、「3大都市圏Jと「そ の他」に同程度の割合で住んでいた。 3.3. 一 表3 子供の就学期分類ごとの世帯数 子あり世帯の子供の就学期分類ごとの世帯数を表4に示す。 抽出世帯 3大都市圏 その他 431(49.2%) 445(50.8%) 夫婦のみの世帯 552(52.2%) 506(47.S°A,) 一 子あり夫婦世帯 868(51.8%) 鈎17(48.2%) 子 一 人親 世帯 96(62.7%) 表4 単身世帯 抽出世情 \\\ 未就学児 給食費あり 給食費なし 全体 一子あり夫婦世帯 1519 (90.7%) 136 (8.1%) 20 (1.2%) 1675 (100.0%) 一子一 人親世帯 77 (50.3%) 52 (34.0%) 24 (15.7%) 153 (100.0%) 一 57(37.3%) 『一子あり夫婦世帯』では、 子供が未就学児の世帯が1,675世帯中1,519世帯と9割以上を占めていた。 それに対して、『 一子 一 人親世帯』では、 子供が学校に通っている世智の割合が、『 一子あり夫婦世帯』と比較して多く、 約半数を占めた。 4. 対象集団の支出に衡する結果と考察 4.1 . 消費支出の内訳 消費費出の内訳を図 3 に示す。 一一L 各世帝の泊費支訟の内訳 町田1,000 nso,ooo 祖国- E日),DC栂 出 出 血 由 目0.000 主主 主 主 の の のの 分 分 分 分 UM は は 陪 は 置市務 帯 晴 冊 以日以払 E咽圃盟関L一一」一一」 一子 一 人親世帯. 世 世 世 俗』 身 み 掴 輯 副都 の突入 鋼り - 、 L 夫あ 子 但 子一 一子あり夫婦世帯 ... ー 主三型空U 単身世帯. 夫婦のみ世帯.- ¥300,000 各世帯支出を100%とした時の各泊費支出の割合 単身世帯 夫婦のみ世帯 一子あり夫婦世帯 一子 一 人親世帯 是正量畠| 二二二二二二岡圏E阻翠翠趨1 。,‘,.’‘ 2。,. ’‘ so 4°" S011i 6CN ’‘ ..’‘’。‘ 70 図 3 466 1鵬 ・食料 ・教養猿楽 ・通信 田光熱・水道 国家具 家事用品 由その他 国住居 圃交通 ・ 自動車等関係畏 図被服及び題物 国保健医療 国教育
消費支出に占める割合は、「食料J、「被服及び履物J、「通信」は世帯聞で大きな違いはなかった。 2004 年はスマ ー トフォンの普 及前で 、 まだ通信支出を大き く占めていないことが要因であると考えられる。 また 、「住居j、「家具 ・ 家事用品」、「 保険医療J、「交通 ・ 自動車等関係費J、「教育費J、「その他支出Jが 各世帯の聞で異なってい た。 「住居jは、割合でみると 『単身世帯』で最も多くを占め、金額で 見ても 『単身世帯』が 『一子あり夫婦世帯J を上回っていた。 原因 を調査するために追加で解析 をしたところ、「住居」とは別に 「土地家屋借金返済jの項目があり 、『 一子あり夫婦世帯』では 35.2%の世帯が支払っていた(表s)。このこと から 、『 一子あり夫婦世帯』は 家屋を購入し 、所持している世帯が比較的多いため、 「住居jの内訳である 「家賃地代」の支出が減少したと考えられた。 また 、 経常収入が多いほど「土地家屋借金返済jの支出があ る世請が多かった。「家具 ・ 家事用品jの支出が単身世串で少ないの も 、家屋を所持していないことが原因であると考えられた。 「交通 ・ 自動車等関係費」について、追加解析として、「交通」と 「自動車等関係費」に分け調査した。その結果『 一子あり夫婦 世帯』では、「交通jの支出が少なく、「自動車等関係費」の支出が多いことがわかった。自動車を所持している世帯 を調べるため に 、「自動車保険料Jの支払いがある世帯数を追加解析したところ、『 子あり夫婦世帝』で最も多く、 56.9%の世帯で支払ってい ることが分かった(表s)。 「保健医療jは『 一子あり夫婦世帯』で多く、「教育jは一子あり世帯で多かった。 どちらの支出 も子供が出来ると増加するが 、 「保健医療Jは未就学児で多く、「教育」は就学児で多く費用が かかることが原因であると考えた。 f教養娯楽」は、娯楽用品 、書籍、 月謝、旅行費 、 インタ ー ネット接続料などを含む。「教養娯楽」は特に単身世帯で多く、 一子 あり世帯で少なかった。内訳について、追加で解析 をしたが 、夫婦のみ世帯で旅行費が多いこと以外には各項目の比率に大きな違 いは見 られなかった。これ らの費用は、子供が出来ることで時間を費やすことが出来ず、 また 、最初に節約される費用であること が原因だと考えられた。 「その他Jは特に夫婦世帯で多い結果となった。「その他jについて追加解析として、詳細に内訳 を調べた結果を図 4 に示す。「そ の他jの内 、こづかい(使途不明) が 『夫婦のみ世帯』と 『 一子あり夫婦世帯』で約 2 万円を占めており他の世帯と異なっていた。 世帯人員を考慮すると 、交際費は単身世帯で比較的多く、 一子あり世帯で少なかった。 食費支出に対する 『内食』 ・ 『中食』 ・ 『外食』の内訳 4.2. 食費支出のうち、『肉食』 ・ 『中食』 ・ 『外食』の内訳 を図5に示す。 但し 、肉食 ・ 中食 ・ 外食の分類基準は先行研究を参考として、 「穀類j、「魚介類j、「肉類j、「乳卵類J、「野菜 ・ 海藻J、「果物」、「油脂 ・ 調味料」 を内食 、「調理食品J を中食 、「外食j を外食 と した[ 6 ]。 各世帯のその他支出の内訳 表 5 各世帯数 家屋所持世帯※ 1 車所持世帯※ 2 単身 876 55 6.3% 313 35.7% 夫婦のみ 1,058 278 26.3% 459 43.4% 子あり夫婦 1,675 5卯 35.2% 953 56.9% 子 一人親 153 14 9.2% 42 27.5% 民1土地家屋借金返済のある世帯 提2自動車保険料の支払いのある世帯 10ρ00 20.0回 .隠雑賀 囚こ-:5/J<. 開店泊 40周O 50.000 、 .史陣賢 .仕送'))量皮tl<l 60.000 図4 『単身世帯』では『外食』の割合が約4寄!と最も多くを占め、他の世帯と比較しても多かった。『中食』の割合はど の世帯 に お いて も大きな違いは無く、 一 方で 『内食』の割合は『夫婦のみ世帯』、『 一子あり夫婦世帯』及び『 一子 一人親世帯』で多かった。『 一子 あり夫婦世帯』では、 片働き世帯が 64.2%であり 、これらは育児(食 育)または節約のため『内食』 を増やす傾向があると考えら れた。 467
単身世帯 ・内食 回中食 ・外食 圃未分類 夫婦のみ世帯 一 子あり夫婦世帯 一子一 人観世帯 \ o 10,000 20,000 30,000 40,000 50,000 60,000 I 0% 20坦 40% 60% 80蝿 100% 図5 『内食』支出に対する各食料費の内訳 4.3. 『内食』支出のうち、各食料費の内訳を図 6,7 に示す。 ー--.. 肉食支出に対する各食料費の内訳 仁一一一一 1•脱線機織臨溜瞳檀緬醐顕覇圃 I. '・園・・・・・圃・・圃....盤面白書・・圃・圃箇・-富田署E・・E圃・・圃園田園田園圃・圃圃圃圃園田園・・・・・・岡田園・回・ー・・・ 国側畳 ! 回 ?こー! 自,O回 園 i醗鱒轍罷帯同 目町田 町叩岨 省四五llJIJ 田5,000 田叩田 事35.0似3 .鞍盟国魚介矧 .問頭 .乳開羽.野菜・ 海環因果物 園泊施師陣料日Z正予想 図肱科目壇却 図6 ー←単身世帯 吋昏・夫婦のみ世帯 『単身世帯』では、特に『肉食』支出に占める 「飲料」の割合が他の 『F 一子あり夫婦世帯 ー一 一子一人組世帯 世帝と比べて 高く、金額も同様の結果が示された。 また 、「酒類Jの 割合が高く、「魚介類J、「肉類」、「野菜 ・ 海藻」の割合が低いことが 館料 肉類 草子規 乱開類 分かつた。 こ れらのことから、『単身世帝』は『内食』においても調 理が必要な肉や魚、野菜の消費が少なく、飲料や酒の消費が多いこと が考えられた。 飲料は「茶類」、「コ ー ヒ ー ・ ココアJ、「 他の飲料Jで構成される。 こ れらの内訳を調査したが、 全ての飲料において 、『単身世帯』での 支出額が多かった。 また 『単身世帯』 876 世帯中 61.4%の 538 世帯は 男性で構成される。 男女別でみると 、男性の単身世帝での飲料の支出 の平均は女性の 1.67 倍であった。このことから、男性の単身世帯では 果物 図7 上記の傾向が顕著であると 考えられた。 5. まとめ ライフサイクルは通常、『単身世帯』、『夫婦のみ世待』、『 一 子あり夫婦世帯』(、場合によっては『 子 一 人親世情』または『単 身世帯』)という順に変化する。以上の結果から、 ライフサイクルの 変化に伴い 、消費支出が次の ような影響を及ぼすことが示唆さ れた。 結婚後は配偶者の存在もあり世帯の収入は増加する。 収入を共有することにより 、 使途不明の小遣い金が発生する場合がある。 家屋を所持する世帯数が増えるので、 家賃支出から土地家屋借金返済の支出に変化し 、 家具 ・ 家事用品の支出が増える。 住居の 変 化に伴い 、 自動車を持つ世帯が増え交通費が増大する。 子供を持つと 、 最初は保健医療費が、 通学が始ま れば教育費も 発生する。 468
また、 上記のような消費支出の増大に伴い、 夫婦世帯や 一 子あり世帯では食費の節約を行い、 消費支出の増大を抑えていると考 えられる。 一 般的に外食は内食に比べて高額て・ あるが、 『単身世得』 は他と比べても『外食』 の金額、割合がともに高かった。また、 本研究で新たに男性の単身世帯で飲料の支出が多いことが分かった。このことから、『単身世帯』はライフサイクルが変化する前に、 外食を控えること、 また飲料を節約することで消費支出を抑えることが出来ると示唆された。 しかし、 世帯人数が増えれば清涼飲 料やコ ー ヒ 一 等はパックで 一 度に大量に購入することができる。 一 方、 単身では 一 度に大量に購入すると賞味期限までに消費しき れないため、 支出がかさんでいる可能性がある。 本研究は横断研究であり、 因果関係を判断することはできない。 今後、 複数年度の全国消費実態調査の結果を用いた研究を行う ことが望まれる。 疑似ミクロデ ー タは、 全国消費実態調査から品物の購入先や主要耐久消費財、 貯蓄の現在高などの事項が削除さ れている。 これらの変数を追加したデ ー タを用いて研究を行うことが望まれる。 本デ ー タは 2004 年のものと少々古く、晩婚化や未 婚率の上昇、 スマ ー トフォンの普及、 若者の車離れといった時代の変化が生じている。 そのため本研究の結果から 一 概に、 我々の 同世代の生活環境の違いを示すことは難しい。 以上より、 本研究では幾つかの限界はあるものの、 現代の新社会人の今後の生活に 役立つ複数の知見が明らかとなった。 我々3人も、 今後のライフスタイルを検討するうえで大いに参考としたい。 6. 1. 参考文献 総務省統計局. -¥,反 161/=,度会l�/;7fjj奪実態調査. 2004; Available at: http://www.由t go.jp/data/zensho/2004/. (Accessed June 26,2017) 2. もぬ注意入金.第5 回 Let's データ分析 SAS/,』MP によるミクロデータ分析コンテスト 新疑似ミクロデー タ. 2017· Available at: h仕p://www.sascom.jp/lets/lets2017/. (Accessed June 26,2017) 3. 官主帯色紙議事主. 平成 16 年度全冨消費実態調査全国世帯分布続報告書掲載表第Z表 世帯属性,都道府県民世帯 71'司t 2004; Available at: h世p://www.e-stat.go.jp/SG1/estat/GL08020103.do?一toGL08020103_&tclass1D=000000640073&cycleCode=O&requestSender=searc h. ぇ (Accessed June 26,2017) 総務省署員主主烏.平成 17 年度国勢諮査新分類区分による遡及集計全国結果. 2011 :・陶禎司、虫色武 h枕p://www.e-stat.go.jp/SG1/estat/GL08020103.do?_toGL08020103_&tclasslD=000001031076&cycleCode=O&reque坑 Sender=searc h. 5. (Accessed June 26,2017) 総務も議論1/,J. 平成 16 年度全国消費実態調査用語の解説付7 Available at: h抗p://www stat.go.jp/data/zensho/2004/kaisetsu htm#furoku. 目 6. ’ 3-girls from Chi 問責慧玲、 李意抜、 郵時議 Let sデータ分llf ゴリ 調査t堂帯の選定方法と結果の推定式ユ'.004: (Accessed June 26,2017) ミクロデー タ分llfコンテスト 第4 @受賞作.,,� c シングルマザ 世帯の家計の実態 片銭き世帯と共働き世帯との比較から - 一 一 http://www.sascom.jp/lets/lets2016/. (Accessed June 26,2017) 469 一 . 2011も,;Avail ,命、武 カテ
規定課題
/*初期設定*/
%let path=フォルダパス名;
”
libname raw &path.¥raw";
”
”
libname out & ath.¥out ;
/*Weightの処理 V
ods output summary=weight;
proc means data=micro sum;
var weight;
run;
ods output close;
proc sql;
select weight_sum into: wei
from weight;
quit;
data microl;
set micro;
calc_weight=weight*lOOOOO/&wei.;
run;
F 問題1*/
data micro2;
set microl;
output;
X02=4;
output;
run;
proc freq data=micro2;
table X09*X02/out=outl
(drop=percent) ;
run;
proc freq data=micro2;
table X09*X02/out=out2
(drop=percent) ;
weight calc_weight;
run;
/* 頻度0の対策:ダミ ーの作成事/
data dummyl;
do X09= 5 to 16;
do X02= 1 to 4;
count=O;output;
end;end;
run;
%macro outdl(num);
data out&num._1;
merge dummyl(in=x)
out&num.
by X09 X02; if x;
run;
proc transpose data=
out&num._1 out=out&num._2;
by X09;var count;
run;
data out&num._3;
set out&num._2;
nvarl = round(coll,l);
nvar2 = round(col2,1);
nvar3 = round(col3,1);
nvar4 = round(col4』;
run;
%do i=l %to 4;
proc sql;
select sum(nvar&i.) into :
sum&i from out&num._3;
quit;
%end;
data data&num.;
nvarl=&suml;
nvar2=&sum2;
nvar3=&sum3;
nvar4=&sum4;
X09=100;
run;
data out&num. 4
(keep=X09 var:);
set out&num._3 data&num.;
var%eval(6 ’ (&num.-1)+1)
strip(put(nvarl,comma.));
var%eval(6*(&num.-1)+2)
strip(put(nvar2,comma.));
var%eval(6*(&num.-1)+3)
strip(put(nvar3,comma.));
var%eval(6*(&num.-1)+4)
strip(put(nvar4,comma.));
run;
%mend;
%outdl(l);
%outd1(2);
data outl_S;
length varl・·varlO $200.;
merge outl_4 out2_4;
’『"
”’’
varS= ;var6= ;
by X09;
run;
data out.resl;
set outl_S;
if X09=100 then varlO=
’’100,000";
run;
P 問題 2*/
data micro3;
set microl;output;
X08=3;output;
run;
proc freq data=micro3;
table Xll *X08*X02/out=
out3(drop=percent) ;
weight calc_weight;
run;
/’ダミ ー 作成本/
data dummy3;
do Xll=l to 6;
do X08 = 1 to 3;
do X02=1 to 3;
count=O;output;end;end;end;
run;
data out3_1;
merge dummy3(in=x) out3;
by Xll X08 X02;
run;
proc sort data=out3_1;by Xll
X02;run;
proc transpose data=out3_1 out=
out3_2;
var count;by Xll;
run;
proc sql;
create table data3 as
select coll,col2,col3,col4,
col5,col6,col7,col8,col9
from
(select sum(coll) as coll from
out3_2),
(select sum(col2) as col2 from
out3_2),
(select sum(col3) as col3 from
out3_2),
(select sum(col4) as col4 from
out3_2),
470
(select sum(colS) as cols from
out3_2),
(select sum(col6) as col6 from
out3_2),
(select sum(col7) as col7 from
out3_2),
(select sum(col8) as cols from
out3_2),
(select sum(col9} as col9 from
out3_2);
quit;
data out3_3;
set out3_2 data3;
if Xll=. then Xll=lOO;
col lO=sum(coll,col2,col4,col5 ,col7,c
018);
run;
/* 形式を整える * /
data out3_4(keep=Xll var:);
set out3_3;
varl = strip(put(round
(coll,l},comma9.));
var2 = strip(put(round
(col2,1),comma9.));
var3 = strip(put(round
(col3, 1),comma9.));
var4 = strip(put(round
(col4, 1),comma9.));
vars = strip(put(round
(cols, 1),comma9.));
var6 = strip(put(round
(col6, 1),comma9.));
var7 = strip(put(round
(col7, 1),comma9.));
vars = strip(put(round
(col8, l),comma9.)};
var9 = strip(put(round
(col9, 1),comma9.));
varlO = strip(put(round
(col10,1),comma9.));
run;
data out.res2;
set out3_4;
run;
戸時題3*/
/*OJ*(
data micro4;
set microl;
”
”
label Y044 = パン支出金額(円 ;
logY044=1oglO(Y044+1);
run;
ods output summary=sum3_1;
proc means data=micro4 vardef=
wdf max q3 median ql min
mean;
var Y044;weight calc_weight;
run;
ods output close;
proc transpose data=sum3_1
out=out4_1;run;
ods output summary=sum3_2;
proc means data=micro4 vardef=
wdf max q3 median ql min
mean;
var logY044;weight calc_weight;
run;
ods output close;
proc transpose data=sum3_2
out=out4_2;run;
proc so同data=out4_1;by _label_;
run;
proc so同data=out4_2;by _label_;
run;
data out4;
merge out4_1(drop=_name_
rename=(coll=pan))
out4_2(drop=_name_
rename=(coll=logpan));
by _label_;
run;
data key;
input key _label_ $40.;
cards;
1最大値
2上側四分位点、
3中央値
4下側四分位点
5最小値
6平均
run;
proc soはdata=key;by _label_;
run;
data out4_3;
merge out4 key;
by _label_;
run;
proc so同data=out4_3;by key;
run;
data out4_4(keep=outl out2
key);
set out4_3;
length outl・out2 $200.;
outl=strip(put(pan,comma9.));
out2=strip(put(round(logpan,0.001),
5.3));
run;
/事件数追加V
data kensu;
length outl・out2 $200.;
key=7;
outl=” 100,000";
”
”
out2= 100,000 ;
run;
data out4_5;
set out4_4 kensu;
run;
data out.res3_1;
set out4_5;
run:
/*W*I
reset=index
eds graphics
/
imagename= ” res3_2 ”
imagefmt=bmp ;
eds html close;
”
eds listing gpath= ” &path.¥out ;
eds graphics /ANTIALIASMAX
=3300;
proc sgplot data=micro4;
vbox Y044;
”
title パン支出金額の箱ひげ図 ;
run;quit;
eds listin� close;
.
eds graphics / reset=all;
/* eds html; */eds listing;
H
/*(1)*/
proc univariate data=micro4 neprint;
var legY044;
histegram legY044;
” ”
inset n= N (8.0)
”
"
mean= 平均 (8.2)
”
std= ” 標準偏差 (8.3)
’
'
/ header= 要約統計量 pes=NE;
label legY044 ="leg (パン支出金額
+l) (円),
”
title パン支出金額+lの常用対
数変換値のヒス卜グラム ” ;
run;
quit;
/ * 睡題4*/
F 包) */
data micreS;
length varname $200.;
set microl(where=(Y042"=0));
percent4=Y043/Y042*100;
”
varname= ” 1:米 ;eutput;
percent4=Y044/Y042*100;
”
varname= '’2:パン ;eutput;
percent4=Y045/Y042*100;
"
varname= ” 3:めん類 ;eutput;
percent4=Y046/Y042 本 100;
’・
varname= ” 4:他の穀類 ;eutput;
run;
data micreS_l;
set microS; eutput;
Xll=7;eutput;
run;
/’ dummy ’ /
data dummy_X02;
length eutl-eut6 $200.;
de X02=1 te 3;
eutl= ” 0 ” ;eut2= ” ー ” ;eut3= ” ー ” ;eut4="-"
・・
” ”
;eutS= ー ;eut6= ー’自;eutput;end;
run;
data dummy_Xll;
length eutl-eutG $200.;
de Xll=l te 6;
eutl=・・O";eut2= ” . ・・;eut3=’'-'’ ;
’’ "
・’ ”
’ ’
eut4= ソ ;eutS= - ;eut6= - ;eutput;e
nd;
run;
%macre X02Xll(var);
proc se代 data=microS_l;by &var.
varname;run;
eds eutput summary=eutS_
&var.;
proc means data=micreS_l
mean;
var percent4;
by &var. varname;
weight calc_weight;
run;
eds eutput clese;
proc
transpese data=eutS_&var.
eut=eutS_l一&var. prefix=var;
var percent4_Mean;
by &var.;
run;
data eut5_2_&var.;
set eutS_l_&var.;
length eut2・eutG $200.;
eut2=strip(put(reund(varl,O.l),S.1));
eut3=strip(put(round(var2,0.1),5.1));
eut4=strip(put(round(var3,0.l),S.1));
eut5=strip(put(round(var4,0.1),S.1));
eut6=strip(put(round(sum(varl,var2,
var3,var4),0.1)ふ1));
471
run;
data eut5_3_&va仁;
merge dummy_&var.
eut5_2_&var.;by &var.;
run;
%mend;
%X02Xll(X02);
%X02Xll(Xll);
data eutS 4;
set eut5_3_x02 eut5_3_xll;
keep eut: sert;sert=_n_;
run;
data adjll;
set micrel;eutput;
xll = 7;eutput;
run;
data adj02;
set micrel;
run;
proc se内data=adj02 ;by x02;run;
proc means data=adj02 neprint;
var calc_weight;
by X02;eutput eut=tablex02
(drop=_freq_ _type_) sum=varl
/ autename;
run;
prec sert data=adjll ;by xll;run;
proc means data=adjll neprint;
var
calc_weight;by
Xll;eutput
eut=tablexll(drep=_freq_
_type_)
sum=varl / autename;
run;
data tablex02;
length eutl $200.;
set tablex02;
eutl = strip(put(round(varl,
1),cemma9.));
sert=_n一 ;
run;
data tablexll;
length eutl $200.;
set tablexll;
eutl
= strip(put(round(varl,
1),cemma9.));
se代= n +3;
run;
data tablexOO;
set tablex02 tablexll;
run;
proc sert data=tablexOO eut=
gOl;by se代; run;
proc sert data=eutS_4 eut=
g02;by se内; run;
data eutS_S;
merge g02(in=inb) gOl
(in=ina) ;
by se同;
run;
data eut.res4_1(keep=eut: se吋;
set eutS_S;
run:
/べ't)*/
data eut6;
set eutS_S;
keep se同var:;
if se比>=4;
var2=input(eut2,5.1);
var3=input(eut3,S.1);
var4=input(eut4,5.1);
varS=input(outS,5.1);
run;
proc transpose data=out6 out=
out6_1;
var var2・varS;id so比;
run;
data out6_2;
set out6_1;
length varname $200.;
”
”
label name
= 項目名
”
”
varname = 世帯{家族}分類
”
”
= 構成比(%) ;
var
” ”
var=_4;varname= 1 ;output;
” ”
var=_S;varname= 2 ;output;
”
var=_6;varname="3 ;output;
”
var=ー7;varname= 4"; output;
” ’
var=_8;varname= 5 日output;
'’ ”
var=_9;varname= 6 ;output;
”
var=_10;varname="7 ;output;
run;
proc format;
”
”
” ”
value $var 1 = 単身世帯
”
” 2”
” 夫婦
み
の
=
H
”
” ”
3 = 二世代
1” = ” 二世代(ひとり親) ”
”
"
” 5”
= 三世代
”
”
” ”
6 = その他
” ”
7 = 日 全体” ;
”
”
value $name "var2 =味
”
”
”
”
var3 = パン
”
”
”
var4 = めん類”
”
”
”
”
vars = 他の穀類 ;
run;
proc sgplot data=out6_2;
hbar varname / response=var
group = _name_;
format varname $var. _name_
$name.;
run;
P 問題S*/
/*00*/
%macro ginicalc(num);
%local sumweight;
%local sumYOOl;
%local obs;
data micro7_&num.;
set microl;if Xll=&num.;
run;
proc sort data=micro7_&num.;by
YOOl;run;
data micro7_l_&num.;
set micro7_&num.;
retain cumweight O;
cumweight+calc_weight;
retain cumYOOl O;
cumYOOl+YOOl 本 calc_weight;
run;
ods output summary=
maxl_&num.;
proc means data=micro7_1_
&num. max;
var cumweight cumYOOl;
run;
ods output close;
proc sql;
select cumweight_Max into
sumweight from maxl_&num.;
select
cumYOOl Max
into
sumYOOl from maxl_&num.;
select count(勺 into : obs from
micro7_1ー&num.;
quit;
data micro7_2_&num.;
set micro7_1ー&num.;
cumweightp=cumweight/&sumweigh
t;
cumYOOlp=cumYOOl/&sumYOOl;xy=
_n_j&obs;
run;
%mend;
%ginicalc(4);
”
filename grafout &Path.¥out¥
resS_l.bmp” ;
goptions device = bmp gsfname =
grafout gsfmode = replace;
ods graphics on;
symboll i寸oin v=dot c=red;
symbol2 i=join v=dot c=black;
proc gplot data=micro7_2_ 4;
plot cumYOOlp*cumweightp xy*
xy/ overlay;
”
label cumweightp = 人口の累積相
”
”
= 年間収入
対度数 cumYOOlp
”
”
の累積相対度数 ;title 「二世代(ひ
”
とり親)」の年間収入 ;
run;qu1t;
ods.1iraphics o仔;
/ 事 @ジニ係数の導出 */
%ginicalc(1);%giniαlc(2);
%ginicalc(3);%ginicalc(S);
%ginicalc(6);
%macro ginicalc2();
%do i=l %to 6;
proc sql;
select count(勺into : obs&i.
from micro7_2_&i.;
quit;
data micro8ー&i.;
set micro7_2.:_&i.;
pa代sg=(xy-cumYOOlp)*l/&&obs&i.;
run;
ods output summary=gini_&i.;
proc means data=micro8_&i.
sum;var pa同sg;
run;
ods output close;
data gini_ー&i.;
set gini_&i.;bunrui=&i;
run;
%end;%mend;
%ginicalc2;
data gini(drop=partsg_Sum);
_
set gini_l・gini_G;
gini=strip(put(round(partsg_Sum,0.0
1),4.2));
run;
proc soはdata=gini;by bunrui;
run;
data out.res5_2;
set gini;
run;
/事エクセルへの出力*/
OPTIONS NOXSYNC NOXWAIT ;
“
”
X
&path.¥result¥1able_all.xls ;
%macro xlsout(in=, var=, sheet=,
range=);
”
filename excel dde EXCEL
[Table_allぷls]&sheet. !&range.” ;
472
data null_;
set &in.;
・
’
file excel dim = 09 x dsd
notab Ired= 65488;
put &var.;
run;
filename excel clear;
%mend;
%xlsout(in=out.resl, var=varl・var4,
sheet=表1,
range=R6C3:R18C6);
%xlsout(in=out.resl,
var=var7・varlO,sheet=表1,
range=R6C9:R18C12);
%xlsout(in=out.res2, var=varl・varlO,
sheet=表2,
range=R6C3:R12C12);
%xlsout(in=out.res3_1,
va戸outl
out2,sheet=表3,range=RSC3:
R11C4);
%xlsout(in=out.res4_1,var=outl-out6
,sheet=表4,range=RGCS:
RlSClO)'.
%川sout(in=out.res5_2,var=gini,sheet
=表5,range=RSC3:R10C3);
%macro xlsrlcl(book=,sheet=);
’
EXCEL
I
filename sys dde
SYSTEM';
DATA _NULL_;
FILE SYS;
’
川
[workbook.activate(
put
'
”
”
;
[Table_allぷls]&sheet. H ・)]
” ’
’
PUT [SELECT(喰1:R65536 )] ;
’
PUT [FONT.PROPERTIES(” M s
” ’
明朝 )] ;
PUT ’ [SELECT( ・'RlCl”)] ’ ;
RUN;
filename sys clear;
%mend;
%xlsrlcl(sheet=TS);
%xlsrlcl(sheet=T4);
%xlsrlcl(sheet=T3);
%xlsrlcl(sheet=T2);
%xlsrlcl(sheet=Tl);
’
filename excelsys dde EXCEL
SYSTEM';
data _null_;
file excelsys Ired= 65488;
"'”
・
put ’[activate(
Table_all.xls" "')] ;
put ’ [save()] ’ ;
run;
filename excelsys clear;
表1 年齢階層別・世帯区分別クロス表 世帯主の 年齢 24歳以下 25 ~ 29歳 30 ~ 34歳 35 ~ 39歳 40 ~ 44歳 45 ~ 49歳 50 ~54歳 55 ~ 69歳 60 ~ 64歳 65 ~ 69歳 70 ~ 74歳 75歳以上 合許 世帯区分 勤労者 以外 18 157 511 728 1,076 1,305 1,797 2,221 2,226 1,743 1,197 940 13 919 勤労者 765 2,289 4,223 5,217 5,492 5,702 6,194 5,682 3,237 1,343 469 166 40 779 無職 世帯主の 年齢 24歳以下 25 ~ 29歳 30 ~ 34歳 35 ~ 39歳 40 ~ 44歳 45 ~ 49歳 50 ~54歳 55 ~ 69歳 60 ~64歳 65 ~ 69歳 70 ~ 74歳 75歳以上 合言十 合計 15 66 .107 193 205 277 392 624 2,534 3,590 3,214 3 216 14 433 798 2,512 4,841 6,138 6,773 7,284 8,383 8,527 7,997 6,676 4,880 4 322 69 131 世帯区分 勤 労 者 勤労者 i 以外 1,729 10 4,314 151 6,441 480 7,420 824 7,611 ' 1,145 7,739 1,479 8,072 2,085 7,697 2,725 4,208 2,785 1,487 2,213 459 1,652 207 1 325 57 384 i 16 874 無職 21 57 87 153 247 244 508 893 4,160 6,374 6,124 6 873 25 741 合計 , 1,760 4,522 7,008 8,396 9,004 9,462 10,665 11,315 11,153 10,074 8,235 自,406 100 000 表2 世帯分類別・世帯区分別世帯主の性別3重クロス表 男 6,503 8,517 27,267 1,543 4,956 654 49 439 勤労者世帯 言十 女 4,207 10,710 324 8,841 378 27,645 2,421 3,963 5,340 �84 234 887 7 947 57 386 パンの支出 統計量 金額(円) 51,776 最大値 第3四分位数 3,039 1,689 中央値 第l四分位数 858 最小値 2,284 平均値 100,000 件数 lを加えた金額の 常用対数 4.714 , 3.483 , 3.228 , 2.934 0.000 3.137 , 100,000 世帯分類 単身世帯 夫婦のみ 二世代 二世代(ひとり親) 三世代 その他 合計 表3 。 件数 符号内容 項目名 57, 386 世帯区分 勤労者世帯 16, 874 勤労者以外の世帯 25, 741 無職世帯 世帯分類 単身世帯 20, 758 勤労者以外の世帯 男 計 女 1,030 1,897 867 4,293 81 4,375 6,190 51 6,242 934 1,364 430 2,390 118 2,508 413 488 75 15 250 I 623 16 874 会tic 米 構成比(目) パン めん類 37. 6 22. I 31. 0 19. 4 36. 0 44. 9 52. I 26. 7 33. 8 37. 7 15. 8 23. 0 35. 9 20. 8 49. 5 28. 9 二世代(ひとり親) 7, 302 44. 9 31. 6 三世代 その他 全体 8, 646 l, 826 100, 000 無職世帯E 女 計 5,688 8,151 45 ll,071 32 3,295 1,303 1,974 160 798 174 452 7 401 25 741 ジニ係数 0.19 0.15 0.15 0.18 0.15 0.17 0.33 表4 24, 287 37, 182 表5 世帯分類 単身世帯 夫婦のみ 二世代 二世代(ひとり親) 三世代 その他 夫婦のみ 二世代 男 2,463 11,026 3,264 671 638 278 18 340 39. 0 46. 0 44. 8 41. 6 下記、)I贋に3②、 3③、 4②、 5①の結果を添付する。 473 30. 5 30. 5 33. 7 16. 8 19. 0 19. 7 20. 4 20. 0 全体(弛) 他の穀類 4. 3 100. 0 4. 7 100. 0 5. 4 100. 0 5. 5 100. 0 4. 8 100. 0 4. 3 100. 0 4. 5 100. 0 3. 8 100. 0 4. 3 100. 0 4. 6 100. 0 合計 20,758 24,287 37,182 7,302 8,646 I 826 100 000
パン支出会舗の箱ひげ園 自 500回 。 。 40000 m 。 m ’“ JOO 。 分布:l gY044 10 ー 4A ギ l て . 4 2 ’ 目 ・"''屯E』I 'Ill 11 111 Ii aぺ O.D4 QB悩2 0.76 1.00 1.24 1A6 1;花,.96 2.20 2A4 2.88 2.92 3.16 3綿3.64 3.88 4.12 4.36 4.60 log(パン支出金値•1)(伺】 内M ·.rn 実鎗- 時 司 即 副 酬 Eaa倒語調 。 時 割 そ@他 0.4 ll.G 0.8 OJ 0.8 u 1.0 人口011繊細対座宣車 474 田 回 固一 一 0.8 - s 一 一 ’ ω 個 一 M一 I! 畑一匹一 比一 ’- a U- a- 回 一 車一 F帥 o. 会. 咽 asan ,J・0 an” -B an ・s ・4・A 角川 ・・ au auau ・”wa- -司会oa--o .身曾. 年鯛混入@ 績額繍対 量 ’国
35 歳未満の独身男女の消費傾向について 参加カテゴリ ー 「ニュ ー カマ ー J チ ー ム名:タクミインフォメ ー ションテクノロジ ー チ ー ム A チ ー ム代表:芦津宏治 チ (株式会社タクミインフォメ ー ー ムメンバ ー :芦津宏治、 塚本洋平、 米山隆樹 ションテクノロジ ー 医薬品開発事業 2 部 SAS コンサルテインググルー プ) About a consumption trend of the single man and woman younger than 35 years old Koji Ashizawa , Yohei Tsukamoto , Ryuki Yoneyama Corporate : Takumi Information Technology 自由課題 キ ー ワ ー ド:疑似ミクロデ ー 夕、 単身世帯、 消費支出、 平均値、 Wilcoxon の順位和検定 要旨 本論文では、 若年未婚者がどんなものを消費しているのかを探索的に研究することを目的とし、 全国消費 実態調査 2004 年新疑似ミクロデ ー タを用いて男女聞における消費内訳の比較及び費目の相闘を調べた。 ま た、 自由課題と規定課題ともに SAS9.4 を用いて行った。 はじめに 昨今、 若者の消費離れが話題となることが多い。 実際、 1970 年代の大量生産・大量消費の時代と比較する と、消費は減少している[ 1 ]。 一方で、年収階層によらず男性より女性の消費性向が高く、女性は男性より消 費意欲が高い傾向がある[2]。 そこで、本研究では、若年未婚者の具体的な消費費目の内訳を探索的に研究し た。 既婚者ではパ ー トナ ー の収入も関係するため、 今回は未婚者のみを対象として、 横断的研究を行った。 謝辞 本論文の作成にあたり、デ ー タを提供してくださった SAS ユ ー ザ ー 会世話人の有志の皆さん、ありがとう ございました。 69131 件、 219 変数もあるデ ー タの分析をする機会ができ、 心から感謝しています。 §1. 抽出条件と妥当性 抽出条件 「35 歳未満の独身男女」は、 次をすべて満たすものと定義した。 条件A:世帯区分は、 勤労者世帯(X02 = I)。 条件 B :世帯人員は、 l 人(X03 = I )。 条件C:年齢は、 35 歳未満(X09 = 5 ム 7)。 条件 D:家族分類は、 単身世帯(Xll = 1)。 条件 E :未就学児は、 いない(X12 = I )。 条件 F :学校に通う世帯員は、 いない(X13 = 1)。 条件 G:65 歳以上の世帯人数は、 0 人(X14= 0)。 また、 自由課題では集計用乗率は用いない。 475
妥当性 上で定義して得られた男女比と、 国勢調査[3]によるお歳未満の独身男女比は大きな差はない。 図表1.1 §2. と 「 35歳未満独身男性J 「 35歳未満独身女性Jの比較 図表2.1(男性の消費支出の正規性検局 まず、 男女の消費支出について調べた。 Shapiro・Wilk検定の結果より正規性を仮定 できなかったため(図表 2.1、 2.2)、 今回は Wilcoxonの順位和検定を用いた。その結果、 男女聞に有意差は検出されなかった (図表 2.4)。 消費支出の内訳である10大費目に対 図表2.2(女性の消費支出の正規性検局 しでもWilcoxonの順位和検定を用いると、 差があることがわかった(図表2.8)。 男女別 に消費支出及び10大費目の平均値を示し、 各10大費目の消費支出に対する割合を求 めた。 教育は、 女性l人のみのため有意差は出なかったが、 他の費目は食料と同様に有意差があった。 10大費目におけるShapiro-Wilk検定及びWilcoxonの順位和検定の結果は食料のみを載せた。 図表2訓男女ごとの消費支出のヒストグラム) 図表2.4(消費支出における男女聞の差の比較) 分布:Y040 '° 羽 田 却 問 |吋4詞罰刊当『 mN OMw m 品 、入 MV lて 同品開叫司叫割判 官 120000 “ 3 )000 48制施。 “路紙調。 720(裕O 8-1制加。 摘費支出 476
図表2.7(男女ごとの食料のヒストグラム】 図表2.5(男性の食料の正規性検定) 分布,YO剖 .Sli時信事哩Wjlk rJinL 図表2必(女性の食料の正規性検局 l I t1 検定 l p健 検建 0.747671 蜘ベ紳 マ'Siu司p位修理院:il�. 」_::dぷと J ii <0.0001 図表2.8(食料における男女聞の差の比較) 廟鞠検輩。擦駒 糊側聞のj i爾醐:伊野義ii鞠 <.0001 図表2.9(男女聞における消費支出(月額)の差の比較) 消費支出の費目別の内訳をみる と、 男性では 「 食料Jが最も多く、 次に「交通・通信」、 「 教養娯楽J、と J なっていた。一方、女性では「住居」 費目 j 4陶) が最も多く、次に「食料J、 「 その他 食料 45,621 25.62 33,858 の消費支出(交際費など)」 となって 住居 29,476 16.55 39,318 駐J調。 光熱・水道 6,697 3.76 8,144 4.51 生活必需性の高い、衣食住の割合が 家具・家事用品 2,430 1.36 3,427 1.90 高いとされているが、被服及び履物 被服及び履物 7,477 4.20 17,458 9.67 保健医療 2,465 1.38 4,566 2.53 交通・通信 33,861 19.02 25,655 14.21 0.00 49 0.03 いた。生活必需性の高い食料と住居 で、 男女とも約半分を占めていた。 は高くはなかった。購入頻度と単価 の安さが起因となっているのでは ないだろうか。 教育 。 教養娯楽 29,735 16.70 19,147 10.61 その他の消費支出 20,301 11.40 28,920 時々Z 消費支出(合計) 178,063 100.00 180,541 100.00 477
�J :a ,... 疋三ヨ:!〈-露欝芝璽盟| CI 図表 2.10(費目の構成比) 男 員組 - 女 20 費目 回住居 圃光黙 ・ 水道国家具 ・家事用品目被服及び履物 食料」「交通・通信」 「 教養娯楽J 「 園その他の消費支出 園教養娯楽 図保健医療図交通・通信国教育 「 10【 構成比 園宜料 §3. 80 60 40 住居」「その他の消費支出」について 男女それぞれの費目で、 上位3位の費目の内訳を調べた。 男女の食料の項目を調べると、 外食及び調理食品は男性の方が高い傾向がみられたが、 肉類及び乳卵類な ど素材に関する項目は、女性の方が高い傾向があった。 これは[4][5 ]とほぼ同じ結果である。外食好きなら、 料理をする機会が減るため素材を買うのも減ると推測された。 図表3.1(食料の構成比) 男 誌記 女 。 20 40 80 60 10【 構成比 圃穀類 食料 圏魚介類園肉類 圃乳卵類園野菜・海糠図果物 園油脂・調味料園菓子類園調理食品図飲料 図酒類 圏外食 男性の交通・通信の項目を調べると、 自動車等関係費と通信が割合を占めていた。 通信が高くないのは、 スマ ー トフォンがまだ普及していない時代のデ ー タであるためではないだろうか。 最近のデ ー タとも比較 してみたい。 図表 3.2(男性の交通・通信の構成比) 霊男 [ :〔三三三三二二三三百 20 40 60 構成比 80 ml |吏通・週間圃吏通園自動時間保費園通 478 :|
男性の教養娯楽の項目を調べると、 教養娯楽サ ー ビスが構成比の約半分を占めていた。 図表3.3(男性の教育娯楽の構成比) 男 - 民謡 「百回三百竺プ?でで7 20 40 60 80 100 構成比 |教育娯楽園教聾鵬用酎久財図師揖楽用品図書籍 ・ 他の印制鞠圃帥揖楽サ ー ビス| 女性の住居の項目を調べると、 家賃地代が構成比の約96%を占めていた。 独身女性の持ち家率が高くない ことが要因だと推測された。 図表3刈女性の住居の構成比) 女 否認 12-:=�-} - ��D-__ -i:·•· "?l·-� -_.,-�_}IJI ·•• ·L_ :::二国 - 20 40 60 80 100 構成比 |住居固ま蜘仕園設曲修闇蛙持| 女性のその他の消費支出の項目を調べると、諸雑費(理美容サ ー ビスなど)と交際費への高い傾向がみられ た。女性は消費意欲が旺盛で、特に美容に興味関心が高いということは世間でよく言われることだが、 今回 のデ ー タにもあらわれた。 図表3.5(女性のその他の消費支出の構成比) 言女 20 40 80 回 構成比 |その他の糟支出圏諸掛図こづかいL雌不明)園掛費回仕量的金(拙 479 ii LOO
§4.上位3位と消費支出の相関 男女それぞれの費目の関連性を調べた。男女別に主要な費目間の関連を確認するために消費内訳上位3位 までとした。 正規性を仮定できなかったため、 Spearmn a の順位相関係数を計算した。 図表 4.2(女性) 図表4.1(男性) 0.43536 I o.09727 I 1.00000 I 0.10205 0.67186 I 0.42391 I 0.10205 I 1.00000 e 男性は上位3位に関してそれそれ正の相闘があった。 一方、 女性は消費支出に対しては、 それぞれ正の相 闘があったが、住居と食料、住居とその他の消費支出にはあまり相聞がなかった。表は載せていないが残り の7つの費目に対しでも、住居とはあまり相闘がなかった。住居は他の消費項目とはあまり関係はない、ま たは関係が弱し、と考えられた。 §5.まとめと展望 本研究では、 35 歳未満の独身男女の消費内訳に焦点をあて、男女聞の差を比較した。その結果、 35 歳未満 の独身男女の消費支出には差はあまりないが、10大費目それぞれは差があることがわかった。 また、 男女 それぞれにおける上位3位の費目に着目すると、 男性はどの 2つの組を選んでもすべて正の相闘をもって いた。一方、女性の場合、住居は食料とその他の消費支出とはあまり相闘がないことがわかった(図表 4.2)。 男女とも生活必需性の高い費目への支出はもちろん多いが、 生活必需性の低い費目(男性は教養娯楽、 女性 はその他の消費支出)にも多くの支出があった。 また、今回の独身男女(2群)の比較の際には正規性と等分散性を仮定できなかった。本論文には載せていな いが、対数変換しでも正規性や等分散性を仮定できない費目がほとんどだった。 正規性、等分散性を仮定し ない検定ならBrunner-Munzel検定が適切ではないだろうか[ 6][7 ]。Wilcoxonの順位和検定は等分散性を仮定 しているため、 本来は適切な方法ではない。 ちなみにエクセル統計やRにはBrunner-Munzel検定が搭載さ れている(httos://bellcurve. i o/巴況/function/brunner.html 参照)。 SAS9.4では見つけられなかったため、 本論文は Wilcoxon の順位和検定を用いた。 ただし、 今回はサンプル サイズが大きいため、Welch検定でもWilcoxon の順位和検定と同じ結果を得られた。 ちなみに[7]を参考にBrunner-Munzel統計量を計算すると、 消費支出 のp値は約 0.1673 となり有意差は出ないという同じ結果が得られた。 今回は 2004 年のデ ー タで比較をしたが、最新のデ ー タと同じとは限らない。最近のデ ー タをもとに、若者 の消費傾向及び傾向の変化について比較したい。 480
§6.参考文献 [l ]児美川孝 一 郎「若者の消費行動に見る日本社会の未来形」(2013) < htto://www.vhmf.io/odf/activitv/adstudies/vol 43 01 02.odt> ロ]「若年層の消費実態( 1) 収入が増えても、 消費は抑える今の若者たちJ <htto://www.nli-陀search.co.io/問oort/dほtail/id=5306 l &ono=2?site=nli> [3]総務省統計局「抽出速報集計結果」(2015) くhtto://www.stat.go.io/data/kokusei/2015/kekka.htm> μ]総務省統計局「単身世帯の家計収支及び貯蓄 ・ 負債に関する結果 J (2014) く htto://www.stat.四.io/data/zensho 20 l 4/odf/gaivo2.odt> [5]総務省統計局「男女・年齢階級別の家計」(2002) くhtto://www.stat.go.io/data/soutan/2002no/5.htm> [6]名取真人「マン ・ ホイットニ ー の U 検定と不等分散時における代表値の検定法」霊長類研究( 2014)173・185 <h仕os://www.istage.ist.go.io/article/osi/30/l /30 30.006/ odf > [7]村上秀俊「ノンパラメトリック法J朝倉書店 481
付録規定課題用SASプログラム
f’一ー一一一一一ライブラリの設定一一一一一一一町
libna me E田ho ”騨tit・box�'lcoj,_a shizaw a¥2017ミクロデータ¥rawdata” ,
proc form剖,
valueXOIF I =” 3大都市圏” 。 =”その他” 2
valueX02F I = " 勤労者世帯” 2 =” 勤労者以外的世帯 ” 3 =”無職世帯” ;
"
”
”
value XOJF I =”l人” 2 =” 2人” 3 =” 3人” 4 =”4人 5 = 5人以上 ;
valueX04F O =”0人” I = 勺人 ’' 2= ” 2人” 3 =” 3人以上” ;
”
”
”
value X05F I =”木造(防火木造含む) 2 = 木造(防火木造含む)以外 ;
valueX06F I = ” 一戸建” 2 =” 戸建以外” ;
”
value X07F I =”持ち家” 2 =”持ち家以外 ,
valu eX08F I =” 男” 2 =” 女” ;
”
”
”
valueX09F 5 = "24級以下 6 = 25 ~ 29歳 7 =” 30 ~ 34様”
8 = ”35 ~ 39歳” 9 =” 40 ~ 44歳” to =”45 ~ 49歳”
II =”50 ~ 54歳” 12 =”55 ~ 59歳” 13 =”60 ~ 64歳”
”
”
14 =”65 ~ 69歳” 15 =”70 ~ 74議” 16 = 75歳以上 ;
valueXIOF I =”民営・自営I ~ 4人” 2 =” 民営 ・ 自営5 ~ 29人”
”
”
3 =” 民営・自営30 ~499人 4 = 民営 ・ 自営5朗人以上
5= ” 官公開 6= ”無職’' ;
valueXIIF I =” 単身世帯” 2 =” 夫婦のみ” 3 =” 二世代”
4 =” 二世代{ひとり親)" 5 =” 三世代” 6 =”その他” ;
” ”
valueXl2F I =”無” 2= 有 ,
”
valueX13F I =”無” 2 =” 有(専修学校及び各穏学校を含む) ;
”
'
valueXl4F O = ’O人 l = "l人” 2= ” 2人以上” ;
run;
optio田伽岡田h=(田市ho);
data wo止盟国ho2004gijmucro ,
set E田ho.Ze田ho2004剖imi cro,・規定課題用ヂ ータ!HPの)へ
for matXOI XOIF.X02X02F.X03 X03F. X04 X04F.X05 XOSF.X06 X06F
X07 X07F. X08 XOSF.X09 X09F. XIO XIOF.XII XI IF.Xl2 X12F.Xl3 X13F.
Xl4X14F.;
lab el Y e町 =” 調査年” No =” レコー ド連番号”
XOI =”大都市闘の別”X02= ”世帯区分”
X03 =” 世帯人員” X04 =”就業人員”
X05 =” 住居の構造 X06 =”住岩の建て方”
X07 =”住居の所有関係”XOS =”世帯主の性別”
”
X09 =”世帯主の年齢”XIO =” 企業区分 ・ 従業者規模
XII = 家族分額”X12 =” 未就学児の有無”
X13 =”学校に通う世帯員の有無”Xl4 =”65歳以上の世帯員数”
w eight =” 集計用乗率” YOOI =”年間収入(単位千円}”
Y002 =" 収入総書買” Y003 =”実収入” Y004 =" 経常収入”
”
Y005= ” 勤め先収入” Y006 = '『世帯主の勤め先収入
Y007 =” 世帯主の配偶者の勤め先収入”
”
YOOS =” 他の世帯民の勤め先収入” Y009 =” 事業 ・ 内職収入
YOIO =” 股林漁業収入” VOii =”家賃収入”
”
”
”
”
YOl2 = 他の事業収入 YOl3 = 内職収入
YOl4 = 本業以外の勤め先 ・ 事業 ・ 内職収入” YOl5= ” 他の経常収入”
”
YOl6 =”財産収入” Y017= ”社会保蹄給付
”
YOIS =”公的年金給付” Y019 = 他の社会保障給付
Y020 =” ft送り金{収入)” Y021 =” 特別収入” Y022 =” 受贈金”
”
Y023 =”その他の特別収入” Y024 =” 実収入以外の収入
”
”
Y025 =” 額貯金引出” Y026 = 保険取金
Y027 =” 伺人 ・ 企業年金保険取金” Y028 =” 他の保険取金”
”
Y029 =” 有価証券売却 時 Y030= ”株式売却・・ Y031 =”他の有価証券売却
Y032 =” 土地家屋借入金” Y033 = 他の借入金”
”
”
Y034 =” 分割払 ・ 一 括払購入借入金” Y035 = 財産売却
”
Y036 =” その他の実収入以外の収入” Y037 = 練入金”
刊
”
”
”
”
H
”
Y038 = 支出総額 Y039 = 実支出 Y040 = 消費支出 Y041 = 食料
Y042 =” 穀綴” Y043 =” 米” Y044 =” パン" Y045 =” めん類”
”
Y046 =” 他の殺類” Y047 =” 魚介類” Y帥8 =” 生鮮魚介
Y049 =” 鹿干魚介” Y050 =” 魚肉練製品問 Y051 =” 他の魚介加工品”
Y052 =”肉類” Y053 =” 生鮮肉” Y054 ="加工肉” Y055 =” 乳卵類”
Y056 =” 牛乳” Y057 =” 乳製品” Y058= ” 卵” Y059= ” 野菜 ・ 海部”
Y060 =” 生鮮野菜” Y061 =” 乾物 ・ 海藻”
Y062 = 大豆加工品 Y063 = 他の野菜・海部加工品”
”
Y064 =”果物” Y065 =” 生鮮果物
Y066 =”果物加工品” Y067 =” 油脂 ・ 調味料”
”
Y068 = 油脂” Y069= ” 調味料” Y070 =” 菓子額 Y071 =” 調理食品”
目1
Y072 = 主食的調理食品” Y073 = 他の調理食品
Y074 =”飲料“ Y075 =” 茶類” Y076 =”コ ー ヒ ー・ ココア”
Y077 =”他的飲料” Y078 =”酒類” Y079 =”外食” YOSO =” 一般外食”
Y081 =”学校給食” Y082 = 賄い費” Y083 =”住居 Y084= ”家賃地代”
Y085 =”設備修繕 ・ 維持” Y086= ”設備材料”
Y087 =” 工事その他のサ ービス” Y088 =” 光勲 ・ 水道”
Y089 =” 電気代” Y090= ” ガス代” Y091 = ”他の光熱”
”
Y092 =”上下水道料” Y093 = 家具 ・ 家事用品” Y094 = 家彪剤耐久財
”
”
"
”
聞
”
問
同
”
”
”
“
”
”
”
”
”
Y聞5 = ”家事用耐久財” Y096 = ” 冷暖房用器具 ” Y師7 = ” 一般家具”
”
Y凹8 =” 室内装備 ・ 装飾品” Y099 =” 寝具類” YIOO =”家事雑貨
VIOi =”家事用消耗品” YI02 = ”家事サ ーピス YI03 = ”被服及び履物”
”
YI04 = 和服” YI05= ”洋服” YI06 =” 男 子用洋限
”
”
YI07 = 婦人用洋服 YIOS = 子供用洋服
”
YI09 = シャツ ・ セ ータ 一類” YIIO =” 男子用シャツ ・ セ ータ 一 類”
VIII= ”婦人用シャツ ・ セ ータ 一 類”
Yll2 =” 子供用シャツ・セ ータ ー緩”
”
Y113 = 下着類” Y114 =” 男子用下着顔
”
Yll5 =”婦人用下着類” Yll6 =”子供用下着類
”
”
Yl17 = 生地 ・ 糸類” Yll8 = 他の被服
Yll9 =" 履物類” Yl20= ” 被服関連サ ービス” Yl21 =” 保健医療”
目
”
”
Y122 =”医薬品 Yl23 = 健康保持用摂取品
Yl24= ” 保険医療用品・器具” Yl25 =” 保健医療サ ービス 町
”
”
”
Yl26= ” 交通 ・ 通信 関 Yl27 =”交通 Yl28 = 自動車等関係費
”
Yl29 =” 自動車等鵬入” Yl30 =” 自転車麟入
Yl31 =” 自動車等維持” Yl32 = "(特掲)ガソリン”
YI33= 聞 {特縄}自動車整備費” Yl34 = {特掲)自動車保険料”
開
”
Yl35= ”通信” Yl36 = {特掲)移動電話通信料
”
Yl37 =”教育” Yl38 = 授業料等
”
YI39= '’教科書・学習参考教材” Yl40= 補習教育”
”
Yl41 = ”教義娯楽 ” Yl42 =” 教養娯楽用耐久財
”
Yl43 =” 教養娯業用品” Yl44 =” 番時 ・ 他の印刷物
開
”
Yl45 =”教養娯楽サ ー ピス Yl46 = 宿泊料
”
”
”
”
Yl47 = パック旅行費 Yl48 = 月謝類
Yl49 = 他の教養娯楽サ ー ビス ”
Yl50 =”(特掲げンタ ーネット接続料”
”
”
Yl51 =” その他の消費支出” Yl52 = 諸雑費
”
Yl53= ” 理美容サ ーピス” Yl54= 現美容用品
Yl55= ”身の回り用品” Yl56= ” たばこ ”
”
”
”
Yl57 = その他の諸雑費 Yl58 = こづかし可使途不明
”
”
Yl59 =” 交際費” Yl60 = 交際費{食料}
Yl61 =”交際費(家具 ・ 家事用品Y Yl62 =”交際費(被服及び履物
YI63 =” 交際費{教養娯楽)” Yl64 = 砲の物品サ ー ビス”
”
”
”
Yl65 =” 贈与金 Yl66 = 他の交際費
”
”
Yl67 =” 仕送り金{支出 Yl68 = (再掲)教育関係費
”
Yl69 = (再掲}教護娯楽関係費 Yl70 =”耐久財”
Yl71 =” 読諮 問 Yl72 = ”聴視・観覧” Yl73 =”旅行” Yl74 =” スポ ーツ”
Yl75 =” 月謝” Yl76 =” 会費・ つきあい費”
”
’
Yl77 =”他の教養娯楽” Yl78 = '(再掲)情報通{言関係費
Yl79=
”
Yl81 =” 鋤労所1専税” Yl82 = ” 個人住民税
”
”
”
Yl83 =” 他の税 Yl84 = 社会保険料
”
”
”
Yl85 =”公的年金保険料 Yl86 = 健康保険料
”
Yl87 =”介護保険料” Yl88= ”他の社会保険料
Yl89= ” 他の非消費支出” Yl90= ”実支出以外の支出”
Yl91= ” 預貯金” Yl92 = 保険掛金
Yl93 =” 個人 ・ 企業年金保険掛金” Yl94 =”他の保険掛金”
Yl95 =” 有価証券鵬入” YI96 =”株式鵬入”
Yl97 ='唱の有価証券勝入” Yl98 =” 土地家屋借金返済”
”
Yl99 =” 他の借金返済 ” Y200 =” 分割払 ・ 括払購入借入金返済
Y201 =”財産購入” Y202 =”その他の実支出以外の支出 ”
”
Y203 = 繰越金 ;
run,
円O万人比集計用に合計WEIGHT算HJ:
pr配回同ns dat a = work.zensho2004剖 1m1c問noprint ;
W町Weight ,
o utput o ut = We,ght(ke ep = We 1ght2) su m = Weight2 ;
run,
“
・・
”
凶
”
"
”
開
"
”
”
r
吋
r
”
”
”
旬
/丸一一一一ーーー規定限題ト一一ーー ----'!
data Zensho2004g\J 1m1cro_l ,
set work Zensho2004giji mi cro ,
問阻担Multi;
1f_N_ = I t h en do,
set Weゅに
M山i = leS / We 1ght2,
回d,
Co剛Dummy= I,
TableType = I;
RedefinedWe,ght = I; o utput;
TableType = 2;
RedefinedWe,ght = Weight ・ Multi, o utput,
ke ep TableType X02X09 Co凹!Dummy RedefinedWeight,
品,r mat all :
ru四,
*集計対象となるカテゴリの組み合わせを作成 ,
482
r
data ClassDatal ; d X09 Stol6; do TableType - I t 2; d X02 = 1阻止 OU中国; 回d; end, end; 四n; 事集計, pr皿血薗田血岨 = a田加2004gijimicro I noprint cl田S血阻 = ClassD由I; class TableType X09 X02, 申p四 TableType ・ X09 ・ X02 TableType • X02 TableType • X09 TableType ; var Co四回国田町; W回gl11Redefin吋Weight; u申国 out = M曲nst S 凹n = S四百Cnt, run; da阻M園田2;皿eM園田I; ifmi田ing( X09)曲四 X09 = 17, ifmi描i回以X02)由en X02 = 4; ifm厄sing( SumCnt ) then SumCnt = O, Jen匝h S山首CntC $85; S田nC,,に = pUI( l'O皿d( S田町Cnt,I ),comma 12.ーL ), 島nnat all ; pr叫冊目; by X09 TableType X02; ru回, proc fon圃副; ” ” ” ” 6 = 25 ~ 29歳 value X09Fn 5 = 24歳以下 ” ” ” 7 = 30 ~ 34歳” 8 = 30 ~ 35歳” , = 40 ~ 44歳 ” ” 伺 ” 10 = "45 ~ 49歳 II=” so ~ 54議 12 = 55 ~ 59歳 13 =”60 ~ 64歳” 14 =”65 ~ 69議” IS =” 70 ~ 74識 ” ” ” ” 16 = 75議以上 17 = 合計 ; run; pr凹tra田P回e da姐 = Means2 ut = M白血3 p問日深 = C; by X09 ;id TableTypeX02; vars山首CntC; run , 血阻M国由化setM回ns3; c25 = ; run; proc開port da回 =M蝿国4 nowd ; column " (X09( 世帯区分” CII C l 2 C l 3 C l 4) ) (”師、C25) (X凹{ ” 世智区分” C21 C22 C23 C24) ) ; " define X09/ 世帯主の年齢” order order-internal left; ” de自問CII/ 勤労者 right; ” ” define C l 2/ 勤労者以外 right; ” ” define C l 3/ 無職 right; ” ” define C l 4/ 合計 right, 剛 define C25/ ; 間 ” de日間C21 f 勤労者 同悼む ” ” define C22/ 勤労者以外 right; ” " de自問C23/ 無職 right; ” ” defineC24/ 合計 right; format X09 X09Fn. ; run; 。 。 冒 。 。 ” ” 。 剛 ” /・一一一ー一一一一規定課題2一一·---一一町 da師自由,ho2004gijimicro_2, 日t自由ho2曲4gijimicro (k,田p=X02 XOS X09 XII Y043 -Y制 • 6 weight) ; 開:tainMulti ; if_N_ = I血en do; 制W副ight; M叫岨=I曲。個I Weight2; end, Cou皿D山nmy = I ; Redetweight = Weight Multi ; u甲叫 ; fon司副X02 X02F. XOS X08F. XII XI IF. ; run; proc帥山担帥=ze田ho2剛gijimicro_2, class X02 XOS XII ;v町 Co山白山nmy, “ ” 胴 ” “ " 抽le ( XII= "" al戸計 ),(X02= ・(XOS= ""all= 計 )all= 合計 ) ” •co岡山田町F .則前= ・f.=comma8.品。x=” 世帯分類 . weight Redetwe砂川 fom 。 ・ " 剛 酬 ru目2 X02 X02F. XOS XOSF. XI I XIIF. ; t• ---- 一一・ー一一ー規定課題3ーー------一一円 a 血個 田ho2004gij1m1cro_3, 制ansho2004gijimicro ; 陪tainMulti ; if_N_ = I then do; 田t Weight ; Multi = leS /weight2 ; end, Countdummy = I; c。回同ummy2 = I; Redetweight = Weゆt ・Multi ; Y倒4_1 =YO判+I; = loglO(Y倒4_1 ) ; log2 run; H’要約統計量デ ー タセット作成(①)•••; ds output S山田nary=m岨n ; pr町田回目s da掴 = a田ho2004g1J1mic悶_3 MAX QJMEDIAN 91 MIN MEAN STACKODS ; V町 y044 log2 ;weight Redetweight ; run; o也OU甲ut clo田 2 d剖a mean ;set mean ; ” ifvari回,ble= "Y044 曲四回田町φe= I ; ” els引fvanable= "log2 then co山町pe=2. ru固; ” ” ー ・ H 円数 をデ タセットに出力(②i•••; o曲OUゅut S町nmary=Total ; pr師岡崎闘血ta = 'a田加2004耳目imicro_3 sum STACKODS ; var co皿凶町田ny Countdummy2 ; weight Redetweight ; run, 叫s output close, da阻 total ;set total ; 同阻me V聞able = v2, ” ifv町iable = "Co凹tdummy then 四国首type=l ; ” else 1fvanable =” Countdummy2 血en c m町pe=2. run, 帥 ・①と②を結合{③)•.., data m曲n_加担I, m町·ge m回a阻,tal ;by 田町ttype ; run; “ ・③の中身を表作成用に加工 ・”. data m回n_to阻白;set m曲n_to阻I; lengthMaxC QJCMedi皿C QICMmCM阻nC sumc ldLahel $10 0, ifCountType= I曲叩do ; ” IdLabel = パンの支出金額{円六 MaxC = p国{岡田d(M蹴, l) ,commal2・L), QJC = pUI(岡田d(Q3,le-I),comma12.ーL) ; Medi四C = pul(ro皿d(Med即\ le -I), commal2 -L), QIC = pul(round(QI,le-I),commal2 ・L), MinC = 阿(ro皿d仰in,I),commaI 2.・L) ; MeanC = pul( ro凶.d(M田n,le・1),commal2 ・L), , mmal 2・L) ; SUMC = pul(round(Surn, I)印 end, else if田山町pe=2血.en do ; ” ” ldLabel = lを加えた金額の常用対数 ; MaxC = p叫(round(M蹴,le-3),commal 2 3・L) ; = MinC pul( ro回世Min,le・3), commal2.3・L) ; QJC = pul( round( QJ,le-4),commal2.3・L), QIC = put(開山城QI,le-4),回mmal2 3・L) ; Medi四C = put(1岡田d(Med出L Eト4),commal 2.3 -L) ; Me田C = 凹!(round( Mean,le-4),commal2 3・L) ; SUMC = p叫l'OI皿d( Sum, I),commal 2・L), end, ” label M副C= 島大値 QJC= 第3四分位数 ” ” Medi回C= 中央値 QIC= 第I四分位数 ” ” MinC= 最小値 M祖師C= 平崎値 '・ sumc= 件数” J r個目; pr町tra回p岨e da組 = 町田n_to阻12 0国=冊目n_旬ta13 p陪fix = C, id曲阻町pe; idlabel ldLabel ; V町M田C QJCMed剛C QICMmCMeanC sumC, run; H・出力H・; 。 。 " " " ” ” " ” pr配report血国 = 回国凡阻阻白(申甲=_NAMEJ nowd, colunm _LABEL_ cl c2 ; “ define _LABEL_/width=IS田町,ter 統計量 ; ” パンの支出金額(円) ; de自問cI /width=IS right ” ” lを加えた金額の常用対数 ; de日間c2/wid世F日right run; ” ” 483
。由厚司.phics/height=Scm wid由=1Scm;
procsgplotd幽=Ze田,ho20倒副iji副cro_3;
vbox YO判2
run;
pr皿sgp』otda阻 =Ze田ho2倒141副imic叩,_3;
his<ogram log2;
岡
label log2 = ”1を加えた金額の常用対数 2
run;
。由伊,phi回/悶et;
,.一一一一一規定課題牛一一一一一町
procformat
;
value I担澗
”
”
=
1
世帯区分” 2 =”世帯分類”3= 全 体 ;
valueXF
”
”
I= 勤労者世帯 2 = 勤労者以外の世帯
3= ” 無職世帯 ” 10 1 =” 単身世待”
”
”
”
102 = 夫婦のみ 103= 二世代
”
"
104 =” 二世代(ひとり観) 10 5 = 三 世代
””
”
106 = その他 200 = 2
valueG回in
。 =” 件数” 1 =” 米”2 =り《ン”
”
”
'’
“
回lumn ltemX C酒( 構成比(%)"C l・ C4 ) CS;
de日間I蜘/”項目名 ” 。曲r order=i臨mal抑le(col町田}=日出t-=left
cellw1dth=2cm};
”
define Xi " 符号内容 。rder ore!町=in<開祖l style(column)={j田炉left
cellwidth=J.Scm};
de日間co・ CS / 町le(四lumn) = {j回同ight cellwid由=1.Scm} ,
format Item Item X XF.;
run;
ods graphics/he1ght=Scm wid血=1Scm,
prncsgplot蜘=Zensho20倒gijimicro_4_2;
wh町宮Item =2 and Category "= 5;
hb町XI 目駒田e=M,園田group=Ca睦gory;
format X XF. Category G四in.;
label
”
”
"
”
”
X = 世帯分類 M回nPR = 構成比 Category = 殺額分類 ;
run;
。由graphics/田set ,
”
”
町
”
”
・・
”
”
3 = めん類 4= 他の綾類 5 = 全体{%} ;
run;
da阻 田ho2004副ijimicro_4_1; setZet曲。2町l4gijimicro;
時阻m Multi,
if N = 1曾ien do;
回Weigh句
M叫ti = le5 / Weigh也3
聞d,
c untD山田町= 1;
Redetweight = Weigl百円M叫ti;
町田y Variabl田{勺Y制3 Y044 Y04S Y倒
• 6Y倒2;
do l=lto dim(V町iables) ;
Cat司書ory = J;
jfY,倒2"=0 由回
PR =l帥 ・ Variables(J) /Y042;
・
世帯区分;
I脂m =l,X =X02;
OI岬叫
・
世帯分額,
ltern =2 ;X =X l l +1冊,
。国p皿;
・
全体,
I鎗田 = J ;X =200 ;
OU甲,ut;
開d ,
k骨p lternX臼,tegory PR Coun白ummy Redetweight;
品m温t _all ,
run;
・
構成比,
pr碑回祖国血也 =Z鵬ho2004gijimicro_4_1 noprint nway,
class ItemX Category; v町PR;
weight Redetweight;
utp叫 out =Zensho2004grJimic回_4_2 mean=MeanPR;
run;
・
件数;
proc阻同国白ta =Zet暗加,2(剛副ijimicro_4_1 noprint n糊y;
whe問 Categ,田y=5; class It剖nX;
V町CountD田町ny;
weight Redetweight;
uゆ叫out =Zensho2004gijimicro_4_3皿m = SwnCnt;
r目白;
da岨hnsho2004giji�i�ro_4_4;
setZ悶bo2創l4gijimicro_4_2( in = lnl )
h田h。�004gij加i町o_4_3(恒 = Jn2 ) ;
len帥ValueCXC $100;
ifln l 血en do;
Val田C = p叫岡山d(M回nPR,le-1 ) , 12.1 ・L);
end;
else ifln2 then do,
Ca陪gory = O;
Va肱C = p叫町田.d( SwnCn� 1 ) , cmnma 12・L);
end;
ldLabel = p凶( Ca匝島町y,G四in );
pr国冊目;by ltemX C脚gory , run;
pr配甘富田戸融da踊 =Ze耐bo20倒副j面白ro_4_4
ut =Zensbo2004gij1m1cro_4_5 prefix=C;
by I飽mX;
1d Cat唱ory; 1dlabel ldLabel;
V町ValueC;
run;
pr舵reportdata=Ze田加,2004gijimicro_4_5;
“
k
。
。
。
。
”
f・一一一一一一規定課題5一一ー一一ー・町
%田町同胞血iS(s国ai=) ,
data a出品。,2004giJimicro_S_&s剖副_O;
醐worl<.田田,ho20叫gijimicro;
%if&担包i"= 7 %出四%do ,
wher唱E xii=&seta, ;
%end;
k田p YOOI weight;
run,
P即日n血阻 = 宮市bo2004gijimicro_S_畠田恒i._o
。国 =ze田,ho2004J!l』imi町。_s_畠田阻i _O;
by YOOI;
run;
・
% 累積世帯.累積年収、
也.taze田ho20倒副ijimic同_ _品田凶.ー1
To凶_&se凶._I(開oame = (C町Wei帥,t=To凶Wei似
Cw叫n回me=T,。阻llncome) ) ;
副盟団.ho2004gijimicro_S_&s曲i. O end = EOF;
・
% 累積世帯、累積年収の算出町
CwnWeight+Weight;
Cumlncome+YOO! ・ weight;
。岬叫盟国ho2側gijimicro_S_&setai _I;
% ・ 総世帯数、総年収 ・ :
ifEOF = Ithen do;
。utpwTo国I_&揖恒i. I;
回d ;
run;
da担問曲。2004gijimi町o_s_&田岨’_2;
国E E田ho2004gijimicro_S_品田恒i._1朗d=EOF;
開価in Integral P田,Rateln回me P田,Ra匝Weight O ;
if N = I血en set Total晶皿阻,I;
RateWe泡ht = C四Weight/To阻!Weight;
Ratelncome = C山叫ncome/To祖加民。me;
% ・ 均等分布線引
両国!Plot = RateWeight;
% ・ 台形l!IJにより積分叱
lntegr温I = lntegr温l+(P匝R副elncome+R副elncome)
•(Ra匝,Weight • PreRa但Wet酔0 ・0.5 ;
P問Ra包I皿mne = Rateln回me;
軒eR副eWeight = R副eWei前t;
ifEOF曲師do;
Gini =2 ・ (0.5-1皿egrョI );
end;
”
”
label RateWeight = 累積世帯数比率
H
Ratelncome = •累積収入比率
”
=
均等分布線 ;
Eq国IPI t
run;
%回開d;
%白血r/5(�由1司h
叫s graphi田/height=Scm w1d血=IScm;
procsgplot血阻 = 副首ho2004gijimicro_S _4_2 noautolegend;
S町田x = RateWe,ght y = Ra旬h回me/ lin朗蜘 = 抑lor = bl田〕
series x = Ra担W町制lly = Eq岨!Plot/ lmeat回 = (col。戸耐);
run;
。由伊,phi白/間叫
%加曲師(田阻i= 1);%加111/S(s瑚i=2);'叫副耐S(se凪i=3
);%曲由iS(s曲i=5 ) ; %
加申IS(setai•毛); %kadalS(setai=7) ;
pr田format,
value NF I=” 単身世帯静 岡2 = 夫婦のみ”
”
闘
”
3= ” 二世代 4= 二世代{ひとり親}
5 = 三世代”6 = その他” 7 =” 全体 8・ 2
run;
da阻gini; formst N NF. gini comma8.2;
田t z e描bo2,制l4gi』imic同_5_1_2盟国ho2004即』imicro_S_2_2
盟問1ho2004凶回icro_S_3_2
s
。
”
”
”
484
”
u
“? ?
数
係
J
y
hu
‘,
a
M脚
k
一
川類
・
胆分
弓幣
醐世
d JE
巾川
’ゆ 出 ;
阻刷 h n
r u
Fnrp
E田,ho2004gijimicro_5_4_2 ze田 2 【l4gijimicro_5_5_2
盟国ho20 04g1Jim1cro_5_6_2 盟国,ho2004gy1m1cro_5_7_2 ,
where gini』.;
N+’;
keepgmiN;
付録規定課題図表
1)年齢階層別・世帯区分別クロス表
世帯区分
世帯主の輔|齢者|勾塑堅企|畑|全型二
竺竺以下
. 25~29 歳
竺三竺二一-
35~ 39歳
65
7 1
2 ,2s9 \
I
I
I
,
4 223
_
1
“
s
1s1
'
50
- 54歳
55~59 歳
曲~副議
I
合計
I
,
,682
2 221
,
, 37_
,
_
2 22
3 2
玉3竺i
一
6:
,
,
1 19
7:
,779 .
,
,284
歳
?日空1
824 I
7,739
1,479 !
~相識
45
50~54
8,527
歳
55~59 歳
7,697
4
459
5
14 4
勤労者世帯
単身世帯
3)
50
,
“
6:
4 95
(I ~5以外の世帯)
,
4
49 439
,
3
制I
234
)
: 7,947j
5,叩問。:
, 86:
57 3
|
, 6_
15
待問ー|パ叩支出全軍司L
5 1,7761
最大値
I
3
「両値
_3:039 1
�9
858
j 第 四分位数1
1
最小 値
平均値
件数
l
「
o:
, 制|
2 2
'
I 00,000 ,
485
1
,
1
25 74
1
0,・,074
色沼5
100,000
合計
引3;
,2卸
11
8 羽
,
488
i
75
l 1,6 : 6.』
23
1
74
8 151
2札758
二L
」��-旦型竺↓.2_87
1
278 1
1,303 !
174 1
,295
4
3
.714
.483
3.228
.
2 934
0
.000
.
3 13
7
I00,()00
, 8
;��1
3
452
8,3柑: 7’柑I! 25’下41
L 1_ �叩比錦り笠間数
i
仏両5
1,315
引戸
4 1 0
無峨世帯
パン支出金額についての各種の統計グラフ
1 第 四分位数|
1
1
吐叩�
6,874イ
1
三竺
E釘
8
893
,652リ止124,
脳
, 62
9 4
i:m1ti五五十 瓦
…州問叫叩;里町
二世代{ひとり観)の世帯
計
244
l__!l-__J 一見i__J 玄」坐一一
!
s,sii� 型企
二世代の世帯
その他の世帯
_.,_・?竺
153
8,3判
男
男|:え
6,503 ' 4,20 7! 10,710
1,030 1踊7
IROγ 2,463, 5 ,6881
l
.,
一一一二:二二二」
:1
�I勾9��
�2_6�
6,190 1
51
6,242 . 3 264
32 ;
2 7,267
3 78; 27.・,645
夫婦のみの世帯
三世代の世帯
i
1
7,]86
勤労者以外の世帯
|
l 竺 l II!: I
.
i,21
------io子
石両上
l
一一一
2)世帯分類別・世帯区分別世帯主の性別3重クロス表
世帯分類
4,522
57
__8!
,725 :
2 1ss
『」竺1
,880 • : 70~74 歳
一一
3�2i6:--4,耳
, 1
3 2 4
2,085
2
-」:ios _
~
�6す干 ; タ _69歳
, :お69,131 :合計
1 3,919 ,
8,072
.
99i�-岬
ち
→
3 590
-
7
8,383
624
2 534
1 ・ザ
46四i
-
392
!
石両工一 寸長一一面
40
277
1,797 ;
6,1竺
5
;
“竺埼
70~74 歳
1,305 1
5,102:
~ 39
35
1
- 6'.� ._
1,420
山 1 ����4'1峨- �斗:_]_担一- _J些l 竺7__ 9/
型竺竺_]_!坦. _ __I,・07干[
相~49 歳
ι138
193
151 !
, 1
4 3 4
4型- �0-~: 歳
34
L塑
t塑
- !?竺? 一一一一__I ?;_主一」竺?
25~29歳
2,512
107
728 1
u塑堅守白骨担型坦�J
ー百戸設月下-
ザー
1止
5,21引
I
1
世帯区分
|
||
1
37 1 2
�,3 02
I’826
I 00, 0
1
00
.。 。 50000 40000 ・4 λて nu 内u nHw au nu nu nu 肉U の0 10000 0 8 主4 2 3 4 5 1を加えた金額の常用対数 4) !全体 単身世帯主= ー 失揚のみ ai 二世代 重二世代ωとり鉛 三世代 その他 20 80 40 構成比 l緯銅卦阻回来ロパン固晶ん顕自他岬騒顕l 世帯分類別のロ ー レンツ曲線およびジニ係数 竺ー士一 -a 0 O 0 0 0 密封ベ辱梅醒 ,1・111」1414・ 帥 白川 白Mmaa aMwan ’ 5) .--ーーーーーーーーーー.... T 0.8 0.4 0.8 畢積世帯数比率 486 0.31 0.26 0.35 三世代| 0.27 その他| 0.33 全体 0.33
第5回ミクロデータ分析コンテスト:自由課題 居住地区の選択に関する探索的研究 一 人口の移動による過密化という社会問題に焦点を当てて 一 株式会社タクミインフォメ ー ションテクノロジ ー (チ ー ムB) 佐藤瑞羽 成田真実 大杉亮平 (参加カテゴリ:ニュ ー カマ ー ) 要旨 過密化・過疎化は現代における大きな社会問題の 一 つである。 本研究では、 人口の移動 による過密化という問題に焦点、を当て、 その背景要因について、「個人の諸属性」および 「ライフスタイル」という 2 つの観点から探索的に横断的研究を行った。 その結果、 過密 化には、 若年層男性の都心部への人口移動や、 所得水準、 若年層のライフスタイルに対す る多面的なニ ー ズの変化等、 様々な要因が作用している可能性が示唆された。 問題 昭和 30 年代後半から始まった高度経済成長過程において、 地方から大都市圏への人口 の流出が急激に生じ、 大都市圏を中心とした過密化、 およびそれに伴う農山村の過疎化が 大きな問題となった(萩原, 1993)。 その後、 過密化は 一 時的に緩和されたが、 今後も三大都 市圏(東京・大阪・名古屋)への人口過密と農山村の過疎化は並行して進む事が予想されて いる(総務省, 2012)。 過密化・過疎化における具体的な社会問題の 一 例として、 以下のよう な問題が指摘されている(折田, 1979 ;萩原, 1993)。 まず、 農山村における過疎化について は、 人口の減少に伴う従来までの生活水準(医療・教育・福祉といったサ ー ビス)維持の困 難さや、 ひいては廃材化といった問題が指摘されている。 一 方、 大都市圏における過密化 については、 交通の混雑や、 住宅、 道路、 廃棄物問題、 水・電力等のエネルギ 一 等の逼 迫、 その他、 オフィス需要の増大による地価高騰といった問題が指摘されている。 過密化・過疎化のプロセス、 あるいは背景要因に関する研究は、 既に多角的な観点から なされている。 例えば、 森本(1993)は大都市圏ほど民間賃貸住宅の比率が高い事を明らか にしている。 森本 (1993)の調査より、 高額を支払い持ち家の購入を行わずとも、 民間賃貸 住宅を利用することで、 住居を確保出来得るという点が、 民間賃貸住宅が多い大都市圏に 人口が集中する ー 要因であると考えられる。 また、 所得格差という観点、からは、 大都市圏 と農山村では主要な産業が異なるため、 農山村は大都市圏と比較して所得水準が低い事が 明らかにされている(根本, 1972 ;萩原, 1984)。 学歴という観点からは、 清水(2010)は、 大都 市圏ほど高度な専門知識を必要とする職が多いため、 高学歴者ほど大都市圏に集中する傾 487
向があると論じている。 更に、 年齢という観点からは、 20 歳代および 30 歳代が大都市圏 に集中する傾向がある事が明確化されている(伊豆田 ・ 中川 ・ 西川 ・ 佐藤, 2016 ;折 田, 1979)。 萩原 (1984 )や伊豆田ら(2016 )は、 上述の現象を、 若年層のライフスタイルに対 するニーズの変化に起因するものであると解釈している。 加えて、 伊豆田ら(2016 )は、 農 山村の若年層が大都市圏へ移動した理由として、 農山村には「娯楽」 「買い物」 「街並みの 活気ぶり、 賑やかさ」 「交通手段の充実さ」等が欠如しているためであると論じている。 その他、 食傾向という観点からは、 大都市圏と農山村では外食傾向に差が見られること、 および家庭内における食事スタイルそのものに差が見られることが明らかにされている(内 野, 1992 ;吉田, 1993 )。 上述の通り、 人が居住地区の選択 ・ 決定を行う要因は無数に存在す る事が明らかにされてきた。 これらにより人口の移動が起こり、 過疎化 ・ 過密化が発生し ていると考えられる。 目的 本研究では、 問題の節において紹介した先行研究を参照しつつ、 ①「個人の諸属性」お よび、 ②「ライフスタイル」という2つの観点から、 人が居住地区の選択・決定を行う上 で影響力を持つ要因について探索的に横断的研究を行う。 方法 (1) 応答変数の選択 応答変数には「大都市圏の別」という変数を用いた。「大都市圏の別」とは居住地区を 示す変数であり、「三大都市圏」と「その他」という2値変数である。 また、 本変数を選 択するにあたり、「その他Jには問題の節で紹介した先行研究で過疎化地域として挙げら れていた農山村等以外の地域も含まれていると考えられるため、 本研究では過密化、 すな わち三大都市圏への人口集中を主要な論点とする。 また、 本研究では、 便宜的に「その 他」を地方として扱った。 (2 )説明変数の設定 、「世帯主の年 まず、 ①「個人の諸属性」として、「住居の所有関係j、「世帯主の性別」 齢区分」の 3 変数を選択した。 なお、「世帯主の年齢区分」については、 40 歳未満を「若 年層」 、 40 歳以上を「中高年層」とした。 次に、 ②「ライフスタイル」 を表す指標として採用した変数を記載する。 なお、 本研究 では「生活様式。 特に、 趣味 ・ 交際などを含めた、 その人の個性を表すような生き方」(新 村, 2008)をライフスタイルの定義として採用した。 また、 本定義は非常に包括的且つ抽象 的であるため、 ライフスタイルを表す指標として大まかに下記の4軸を設定し、 変数の選 択を行った。 第 1 軸には「収入」を設定した。 第 2 軸には「飲食」を設定した。 第 3 軸に は「公共料金と移動手段」を、 第4軸には「趣味・娯楽」を設定した。 各軸に含まれる変 数は次の通りである。 第 1 軸には「実収入」 を、 第 2 軸には「調理食品」、「飲料」、「酒 488
類」、「一 般外食」、「菓子類」、「健康保持用摂取品」を、 第3軸には「光熱・水道」、「交 通」、「自動車等関係費」を、 第4軸には「諸雑費」、「(特掲)移動電話通信料」、「 交際 費」、「読書」、「聴視」、「スポ ー ツ」を設定した。 (3)分析手法:ロジスティック回帰分析 「大都市圏の別」を目的変数とし(「3大都市圏」を基準とした) 、(1)に記載した各説明 変数を用いて、 単変量のロジスティック回帰分析を行った。なお、 勤労者以外の世帯につ いては、 収入を調査していないため、 本研究からは除外した。 また、 本研究には重みづけ を行わないデ ー タを用いた。 結果 各説明変数のp値および、 オッズ比、95%信頼区間におけるオッズ比の上限・下限を Tablelとして以下に掲載した。 Tablel各説明変数のオツズ比と95%信頼区間およびp値 説明変数 項目 p1i直 オッズ比 95%信頼区間 下限 上限 2.117 2.040 2.196 住居の所有関係 持ち家以外vs持ち家 <.0001 世帯主の性別 男vs女 <.0001 1.176 1.125 1.230 世帯主の年齢 若年層vs中高年層 <.0001 1.157 1.112 1.204 実収入 10000円 く .0001 1.003 1.002 1.004 菓子類 10000円 <.0001 1.251 1.190 1.315 調理食品 10000円 <.0001 1.340 1.301 1.380 飲料 10000円 <.0001 1.440 1.356 1.528 酒類 10000円 0.180 1.027 0.988 1.068 一般外食 10000円 <.0001 1.422 1.396 1.449 健康保持用接種品 10000円 0.746 1.005 0.977 1.033 光熱・水道 10000円 く .0001 0.942 0.926 0.958 交通 10000円 <.0001 1.457 1.429 1.485 自動車等関係費 0.967 0.978 10000円 <.0001 0.972 (特掲)移動電話通信料10000円 <.0001 0.882 0.860 0.905 10000円 0.460 0.998 0.993 1.003 諸雑費 交際費 10000円 <.0001 0.986 0.980 0.991 読書 10000円 く .0001 1.967 1.869 2.069 聴視・観覧 10000円 <.0001 1.599 1.511 1.693 スポ ー ツ 10000円 <.0001 1.225 1.179 1.273 なお、 Tablelにおける「ライフスタイル」を表す変数(実収入 以降)のオッズ比とその 95%信頼区間 は、 当該変数が10000円増加した時の値である。「酒類」、「健康保持用摂取 品」、「諸雑費」の3変数のみ、「大都市圏の別」に対して有意な影響力が確認されなかっ 489
た。「個人の諸属性」については、「持ち家以外」、「男性」、「若年層」 が「三大都市圏」に 発現しやすい事が示された。 また、「ライフスタイル」については、「実収入J、「調理食 品」、「飲料 」、「一 般外食」、「菓子類」、「交通」、「読書」、「聴視」、「スポ ー ツ」 の支出が増 加するほど、「三大都市圏」に発現しやすいという結果が得られた。 一 方で、「光熱・水 道J、「自動車等関 係費」、「(特掲) 移動電話通信料J、「交際費J の支出が増加するほど 「三大都市圏jに発現しにくい、 言い換え れば「その他」に発現しやすいという結果とな った。 考察 本研究結果 について、「個人の諸属性」 と「ライフスタイルJ それぞれの観点、から考察 する。 第ーに、「個人の諸属性」について論じる。 まず、 持ち家以外の住居に住んでいる 場合には、 都心部に住んでいる可能性が高いという知見は、 森本(1993)の先行研究と合致 するものとなった。 さらに、 本研究からは、 伊豆田ら(2016)や折田 (1979)の「若年層であ る場合に都心部に住んでいる可能性が高い」 という指摘を支持する結果が得られた。 ま た、 女性と比較して男性の方が都心部に住んでいる可能性が高いという新たな知見が得ら れた。 以上の結果から、過密化・過疎化 には、 若年層男性の都心部への人口移動が寄与し ていると考えられる。 また、 都心部における若年層男性の生活形態として、 持ち家以外の 住居に住んでいる可能性の高さから、 民間賃貸住宅等の借家を住居 として利用している可 能性が示唆された。 第二に、「ライフスタイル 」 という観点から考察を論じる。 本研究では、 ライフスタイ ルを表す指標として大まかに、「収入 」、「飲食J、「公共料金と移動手段」、「趣味・娯楽」 に設定した「収入 J が増加するほど都心部に人口が集中すると の4軸を設定した。 第1軸 いう結果は、 根本(1972)や萩原(1984)の先行研究を支持するものとなった。 これについて は、 上で論じた、 若年層男性の都心部への人口移動と密接に関連していると推察される。 若年層 男性とは、 すなわち主要な労働力人口帯であると推測される。 また、 年功序列型の 日本の賃金形態から、 一 般的に若年層ほど賃金が安い事が予想される。 故に、 主要な労働 力人口帯であるとともに低賃金層に該当する若年層男性ほど高所得 を望み、 所得水準の高 い都心部へと移動する確率が高まると推察される。 また、 第2軸の「飲食」に関して、 本 研究では「健康保持用摂取品」 と「酒類」 は有意な影響力を持たないという結果が得られ たが、 それ以外の「飲食」に属する変数の影響力は有意であった。 本研究結果は、 吉田 (1993)や内野(1992)の先行研究と整合性の取れた結果であると解釈される。 また、 食の外 部化や中食利用の増加は、 萩原(1984)や伊豆田ら(2016)の指摘する、 若年層のライフスタ イルに対するニ ー ズの変化を一 部反映していると推察される。 そして、 第3軸の「公共料 金と移動手段」 からは、 公共交通機関への支出が増加するほど都心部に住んでいる可能性 が高まる一 方で、 自動車関係の支出が増加するほど地方に住んでいる可能性が高くなる事 が明らかにされた。 上記の都心部と地方における交通手段の差異からは、 伊豆田ら(2016) 490
の指摘する、 若年層のニ ー ズ 変化 による農山村から大都市圏への移動が読み取れる。ま た、「光熱 ・ 水道」の支出が多くなるほど地方に住む可能性が高まるという結果は、 都心 部と地方との家族形態の差異に起因するものであると考察される。 本研究で用いたデ ー タ において、 地方に単身で住む世帯は3141世帯であり、 一 方、 地方に単身以外で住む世帯 は3 6857世帯であった。 この比率から、 地方は一 世帯に住む人数が多いため、 そ れだけ光 熱費 の支出も大きくなる傾向にある事が予測される。 次に、 第4軸の「趣味 ・ 娯楽J につ いては、「諸雑費Jのみ有意な影響力 が認められなかったが、「読書J、「聴視 ・ 観覧」、「ス ポ ー ツ Jの支出が増加するほど、 都心部に住んでいる可能性が高まる一 方で、 「(特掲) 移 動電話通信料」、「交際費」の支出が増加するほど地方に住んでいる可能性が高まるという 結果が得られた。 本結果については、 清水(21 0 ) 0 の「高学歴者ほど都心部に集中しやす い」 という知見から、 知的な趣味(「読書」 ・「聴視 ・ 観覧」)への支出が増加するほど都心 部に住む可能性が高まると解釈される。 また、「スポ ー ツjへの支出については、 無料で スポ ー ツの為に利用できる環境 の有無に依拠した結果であると考えられる。 例えば、 都心 部と比較して、 地方ほど空き地や山林といった環境が多く存在すると予測され、 地方にお けるこうした環境が、 スポ ー ツ への支出の差異に繋がったと推察される。 次に、「(特掲) 移動電話通信料」、「交際費」の支出が増加するほど地方に住んでいる可能性が高まるとい う結果について解釈を述べる。「(特掲) 移動電話通信料」 については、 地方ほど娯楽施設 が不足している(伊豆田ら,2016)ため、スマ ー トフォンに代表されるような移動電話型のデ バイスが提供するサ ー ビスへの支出が増加すると考えられる。「交際費」 についても、 若 年層のライフスタイルに対するニ ー ズの変イヒ(萩原,1984;伊豆田ら,2016)が主要な背景要因 であると推察されるが、「交際費」 は多面的な性質を持つ支出項目であるため、 その性質 を要検討 ・ 吟味したうえで、 解釈を述べるべきであろう。 総合考察 本研究結果から、 まず、 若年層男性ほど都心部に集中しやすい事が示された。さらに、 都心部への人口集中には、 所得水準の高さや、 特に若年層のライフスタイルに対する多面 的なニ ー ズの変化等、 様々な要因が作用している可能性が示唆された。 また、 これら の要 因は個々が完全に独立している訳ではなく、 段階的あるいは複合的に人が居住地区の選 択 ・ 決定を行う要因として作用していると考察される。 今後の展望 本研究で は、 探索的に、 各説明変数が居住地区の選択 ・ 決定を行う上での影響力の有無 について検証を行った。 今後は、「個人の諸属性」「ライフスタイル」 という観点以外から も、 居住地区の選択 ・ 決定を行う上で影響力を持つ要因を検討し、 多重共線性や交絡とい った問題に留意しながら、 そ れら の要因聞で の影響力を比較する必要があろう。 加えて、 今後、 過密化 (あるいは過疎化の双方)についてその背景要因を探る際には、 因果推論につ 491
いても十分検討を行った上で、 変数選択を行う必要があろう。 また、 。 分析以外のアフ ロー ロ ジスティック回帰 チ(例えば判別分析等)を用いても、 整合性の高い結果が得られる事の 確認が望まれる。 本研究で主要な論点としたものは過密化のみであったが、 過密化 ・ 過疎 化が現代における大きな社会問題であり、 今後も改善の兆候が伺えない事から、 様々な観 点 ・ アプ ロー チ を用いて、 その背景要因を明らかにしていく事は重要な課題であろう。 引用文献 萩原清子 (1984 )「過疎開題の経済学的考察J 地域学研究 15,185 ・ 211. 萩原清子(1993 )「過密・過疎開題 地域人口配分モデルによるアプ ロ ー チ ー 」 一 総合都市 ・ 佐藤佑香(2016 )「都市部への移住に起因する地域過疎 研究(50),93 ・ 106. 伊豆田義人・中川 恵 ・ 西川友子 化と若者の価値観との関係のモデルについて」 山形県立米沢女子短期大学 紀要 (52),65-78. 森本信明(1993 )「大都市圏における民間賃貸住宅の位置と家賃問題」 都市住宅学(4),3- 11. 根本和泰(1972 )「過疎化過程の分析一 過疎 地域住民の残留と移動ー 」 地域学研究 3,89- 113. 新村 出(2008 )「広辞苑」 [第六版]岩波書店. 折田仁典(1980 )「過疎地域における人口移動モチベー ションに関する調査」 秋田工業高 等専門学校研究紀要 15,87 ・ 93. 清水昌人(2010 )「近年における大都市圏の転入超過の分析」 人口問題研究 66(1),1・ 16. 総務省(2012) 「平成 24 年版情報通信白書 第 1 部 特集 ICT が導く震災復興・日本再 守 生の道筋 第 2 節 ク 口 ー パルに展開する ICT 市場 (3 )三大都市圏への人口集中と 過疎化の進展」 (http://www.soumu.go. jp/johotsusintokei/whitepaper/ja/h24/html/ nc112130.html) (2017 年 6 月 5 日) 内野澄子(1992 )「人口移動と食生活の関連」 日本栄養 ・ 食料学会誌 45(1),1-8. 吉田昌之(1993 )「外食消費の要因分析」 千葉大学園芸学 部学術報告 47,233-240. 492
付録:規定課題用SASプログラム ・図表 SASデ ー タセット「Zensho2004gijimicro」に対して符号表を参照して、フォ ー マット、 ラベルを作成。 それを割り当てたSASデ ー タセット「SAS_MICROJを作成して以下課題 の入力デ ー タセットとして使用した。 表、 グラフは すべてRTFに出力した。 また、 本課題 はSAS9.4を用いて行った。 1. 年齢階層別・世帯区分別クロス表 世帯主の年齢 世帯区分 世帯主の年齢 世都区分 勤労者勤労者以外 無理韓 合計 24.鼠以下 765 18 15 798 24蔵以下 1.729 10 21 1 760 25~29鼠 2 289 157 86 2,512 25-29il 4 314 151 57 4,522 30-3411 4,223 511 107 4,841 30-34旗 6,441 480 87 7 008 35-39il 5,217 728 193 8,138 35~3911 7,420 824 153 8 396 40~4411 5,492 1,076 205 6 773 40 44鼠 7,611 1.145 247 9,004 45-49il 5 702 1,305 277 7.284 45-帽蕗 7,739 1 479 244 9,462 50-54il 6,194 1.797 392 8 383 冊目白旗 8,072 2 085 508 10 665 11,315 勤労者勤労者以外 額融 合計 四 55~5911 5.682 2.221 624 8,527 55-59il 7,697 2.725 893 60ー制揖 3,237 2 226 2 534 7 997 60-倒鼠 4,208 2.785 4,160 11,153 65町田ii 1,343 1.743 3,590 6,676 65-開館 1.487 2.213 6,374 10,074 70~74旗 469 1.197 3.214 4,880 70-74il 459 1.652 6 124 8 235 7511以上 166 940 3.216 4,322 7511以上 207 1.325 8,873 8 .406 合針 40 779 13,919 14.433 69,131 57,386 合計 16,874 25,741 100,000 デ ー タセット作成時に10万世帯比の集計用乗率を計算し、tabulateプロシ ー ジャによっ て集計、 出力を行った。 左右に並べた出力をするためにODSステ ー トメントにて columns =2のオプションを指定した。 *10万世帯比の重みあり, * 重みなし. proc tabulate data =SAS_MICR01; proc tabulate data=SAS_MICR01; classS_age setailくubun; classS_age setaik1』bun; var countdummy var countdummy; table table (S_age="" all=” 合計” ) (S_age="" all=” 合計” ) ( setaikubun all=” 合計” ドcountdummy ="川 sum=””吋=commas. ( setaikubun all=” 合計” ) ’ countdummy="" * sum=””*f=comma8. /box = ” 世帯主の年齢” misstext=”0” ; / box = ” 世帯主の年齢” misstext=”0” weight redefinedweight; format setaikubun setaikubunf. format setaik1』bun seta1kubunf. ; 『un; run; 493
2. 世帯分類別・世帯区分別世帯主の性別3重クロス表 世帯分鏡 女 男 女 針 男 単身世帯 6,503 4,207 10,710 1,030 867 1,897 2,463 5,688 夫婦のみ 8,517 324 8,841 4,293 81 二世代 27,267 378 27.645 6,190 二世代{ひとり貌〕 1,543 2,421 3,963 三世代 4,956 384 5,340 654 234 887 413 男 その他 女 無職世帯 勤労者以外の世帯 勤労者世帯骨 計 針 合計 8,151 20,758 4目375 11,026 45 11.071 24,287 51 6,242 3,264 32 3,295 37,182 934 430 1,364 671 1,303 1,974 7,302 2,390 118 2.508 638 160 798 8,648 75 488 278 174 452 1,826 49,439 7,947 57目386 15,250 合計 1,623 16,874 18,340 7,401 25,741 100.000 。 DATAステップで10万世帯比の集計用乗率を計算し、tabulateフ ロシ ー ジャにより各 項目の集計、 出力を行った。 proc tabulate data= SAS_MICRO; class x02 x11 x08; var CountDummy; table ( x11 =”” all=" 合計 ” ), x02 ='"' * (x08=附 all=” 計” ) CountDummy="" ”” sum = *干=commas. ” I box= 世帯分類 (CountDummy= 、um=" 合計時f=comma8.) 剛 ” weight RedefinedWeight; format x11 X11 F. x08GenderN. ; run; 494
3. パン支出金額についての各種統計グラフ ①パン支出金額及びパン支出金額に1を加えた金額の常用対数変換値の 統計量を算出した表 パンの支出 1 を加えた金額の 金額{円) 常用対数 統計量 量大値 51,776 4.714 第 3 四分位数 3,039.0 3.4829 中央値 1,689.0 3.2279 第1 四分位数 858.0 2.9340 最小値 。 平均値 2,284.0 3.1367 件数 100,000 100,000 0.000 summary プロシ ー ジャによって集計を行い、 DATAステップで出力に合わせた 。 数値の計算・加工を行った。 出力には report フ ロシ ー ジャを用いた。 else町transtype = 2 then do; data micro2; ” idlabel = 吋を加えた金額の@常用対数 ; length idlabel $30 ; set micro1; if廿司nstype= 1 then do; maxc = put( round(max , 1e・3), comma12.3 -L); Q3c = put( round(Q3 ,句-1), comma12.4・L); medianc = put( round(med1an, 1e-1), comma12.4 -L); ” idlabel =” パンの支出@金額{円) , maxc = put( round(max ,1 Q3c = put( round(Q3 , 1e-1), comma12.1・L); ), comma12. ・L); medianc = put( round(median, 1e・1), comma12.1・L); Q1c = put( round(Q1 , 1e-1), comma12.1・L); mine = put( round(min ,1 meanc = put( round(mean ,句-1), comma12.1・L); sumc = put( round(sum ,1 ), comma12. ・L); Q1c = put( round(Q1 , 1e-1), comma12.4-L); mine = put( round(min , 1e-3), comma12.3・L); meanc = put( round(mean , 1e-1), comma12.4-L); sumc = put( round(sum ,1 label maxc end; run; 495 =” 長大値” medianc =” 中央値 ” ), comma12. ・L); (右に続く) ), comma12. ・L); end; mine =” sumc =” q3c q1c 最小値” meanc 件数” , =” =” 第 3 四分位数” 第 1 四分位数” =” 平均値”
②パン支出金額についての箱ひげ図 0 雪量血霊園・ICI)() . 。 I 1000 。 .。 CII同 30000 2000 。 。 40000 50000 パンの支出金額(円) ③パン支出金額に1を加えた金額の常用対数変換値についてのヒストグラム 8 ム6 λ 4 ¥ ..... 、 0 0 2 3 1を加えた金額の常用対数 4 5 箱ひげ図、 ヒストグラム共にsgplotプロシ ー ジャにてhboxステ ー トメント、 histogramステ ー トメントの指定をして作成した。 496
4. 世帯区分別および世帯分類別の穀類(米、パ ン、めん類、他の穀類)の支出金額につい ての構成比 ①表 4 の再現 表 4・ 1} 構成比(紛 | 他の 項目名 符号肉容 一一計隔を計算し means プロシ ー ジャにより各変数 の 構 件数 事k 勤労者世帯 57,386 36.0 37.6 221 4.3 1 回。 た。DATAステップで数値の丸めを行 勤労者以外由世帯 16,874 44.9 31.0 19 4 4.7 100.0 い、出力剤のデ ー タセットを作成し、 無臓世帯 25.741 52.1 26.7 15.8 5.4 100.0 report フ ロシ ー ジャにより出力した。(表 単身世帯 20 目758 33.8 37.7 23.0 5.5 1田O パン めん額 般罰 金体(事} 成比と世帯区分、世帯分類の件数を求め 世帯区分 世帯分類 曲。 尭錫由み 24,287 49.5 28.9 16.8 4.8 1 =世代 37,182 39 0 35.9 20.8 4.3 100.0 二世代{ひとり親) 7.302 44.9 31.6 19.0 4.5 100.0 三世代 8,646 46.0 30 5 19.7 3.8 100.0 その他 1 826 44.8 30.5 20.4 4.3 100.0 100.ooa 41 6 33.7 20.0 4.6 100.0 . 4・ 1)しかし、丸めを行う際に put( round( Mean PR, 1 e・1 ), 12.1 ・ L) を献したが米の全体の値一て問 | 題で先に出力されていた値 ( 4q)と ー 致しなかった。 全体 (表 4-2) 構成比(紛 ここで、問題の値通りにするために以下 他の 項目名 世帯区分 世帯分類 全体 件数 事k 勤労者世帯 57,366 36.0 符号肉容 パン めん顕 37.6 22.1 般顔 。 全体側) 4.3 100.0 勤労者以外的世帯 16,874 44.9 3 ,。 19.4 47 100.0 無職世帯 25.741 52.1 26 7 15.8 5.4 100.0 単身世帯 20,758 33.8 37.7 23.0 5.5 1 夫婦のみ 24,287 49.5 28.9 16.8 4.9 100.0 曲。 二世代 37.182 39 0 35.9 20.8 4.3 100.0 二世代(ひとり親) 7,302 44 9 31.6 19 0 45 100.0 三世代 8,646 46.0 30.5 19.7 3.8 100.0 その他 1.826 44.8 30.5 20.4 4.3 100.0 回。曲。 41.7 33.7 20.0 4.7 100.0 1 497 のフ ログラムで丸めを実施した。 put( round( Mean PR, 1 e・2 ), 12.1 ・ L} l しかし、原則、 2 回以上の丸めは禁止と なるので、計算としてはふさわしくない が今回…でー…め | に行った。 (表 4・ 2)
世帯分類別に穀類の構成比を帯びグラフで表示 ② !11島11!稽 夫婦のみ 二 品川 船 出 り 叫 代 鍵 ニ 駆者樺担 三世代 その他 20 60 60 回来日パニ,.めん m ・憾の殿畑l 40 構成比 Ii匝闇分額 10( sgplotプロシ ー ジャにてhbarステ ー トメントの指定をして作成した。 5. 世帯分類別のロ ー レンツ曲線およびジニ係数 ① 「二世代(ひとり親)」世帯の年間収 ② ジニ係数(表5) 入のロ ー レンツ曲線(乗率使用) D ’ ,d , , , , , , , , , , ’ OB i!lt 怪 02 , , , , , , , , , , , , , , ’ I OD OD 02 OB - 世帯分領 ジ二保数日35 0.4 OB OB ID 世帯累積比 ジニ係数 単身世帯 0.34 夫婦のみ 0.31 二世代 0.26 二世代(ひとり親) 0.35 三世代 0.27 その他 0.33 全体 0.33 |一一一一日 』 I,:.,ツ曲線ーーーーー均等分布磁| X軸の値は「集計用乗率の累計/集計用乗率の合計」を算出して世帯累積比とした。 Y軸 の値は「年収の累計/年収の合計」に重みづけをして所得累積比とした。 ジニ係数はロ ー レ ンツ曲線の下部の面積を台形の面積の和として算出後、 1/2から差し引くという計算を DATAステップにて行った。 グラフの出力はsgplotプロシ ー ジャにて実行、 表5はreport プロシ ー ジャにて出力した。 498
企業区分別にみる自動車保有世帯の傾向 参加カテゴリ ー : B)ニュ ー カマ ー (SAS/JMP経験年数3年以内) チ ム名:株式会社タクミインフォメ ー ションテクノロジ ー チ ー ムC ー 坂本周 一・ 穿藤祥子 ・ 高田 一 行 ・ 野沢義夫 (株式会社タクミインフォメ ー ションテクノロジ ー ) Trends in car ownership by households divided into company classification. Shuichi Sakamoto, Akiko Saito, Ikkou Takata, Yoshio Nozawa Takumi Information Technology Inc. 要旨 自動車産業の日本市場の低迷は2005年から続いており、 その要因として、 人口減少に伴う市場の縮 小、 景気の低迷、若者のクルマ離れなどが挙げられている。 国土交通白書を代表とする各種文献では、 世帯主の年齢や世帯形態別に自動車の保有割合が結果として示され、若者のクルマ離れといったライフ スタイルの変化について言及されている。 本研究では新たな切り口として、 企業の従業員規模で分類し、 自動車の保有割合を比較することで、 大手企業と中小に勤める世帯でライフスタイルの違いを示すことができると考えた。 延いては、 自動車 産業の日本市場の低迷の 一因を見出すことにつながると考え、 研究を行った。 2004年(平成16年)の全国消費実態調査デ ー タに基づく擬似ミクロデ ータを解析対象とし、 自動車 の保有世帯における 「 企業の従業員規模による違いJに焦点を当て、 解析を行った。 結果として、 「 自動車の保有割合」と「年間収入」において、 企業の従業員規模によって特徴がある ことが分かった。 また、 企業の従業員規模以外に、 未就学児の有無や住居の所有関係の影響が強いこと も示された。 キ ー ワ ー ド:擬似ミクロデ ー 夕、 自動車、 企業規模、 ライフスタイルの変化 1.抽出条件 自動車の保有有無を判別するにあたり、 当調査年度に自動車を購入した世帯及び、 購入有無に関わらず、 自動車に係る維持費が発生している世帯を保有世帯と設定した。 【疑似ミクロデ ー タからの抽出条件】 -保有:自動車等購入( Yl29 )または、 自動車等維持費( ¥131 )のいずれかが 1 円以上 .来保有:上記以外の世帯 499
また、 年間収入グル ー プについては、 疑似ミクロデ ー タ内の全世帯を対象に変数 YOOl (年間収入)を使用 して順位付けをし、 上位20%から順に20%ごとでグル ー プ分けを行った。 I 13,82211.218 上位20% 上位20 ~ 40%1 13,7831 771 13,811 569 40 ~ 60% 下位20 ~ 40% 13,8211 413 下位20% 13,894 230 I I I I I 表2:年間収入グル ー プ ※ (川 01)年間収入に関して、 擬似ミクロデ ー タで定義されている単位を使用している。 2.企業区分と年間収入における自動車の保有割合 はじめに、 年間収入グル ー プによって自動車の保有割合にどのような違いがあるのか、 企業の従業員規模 ごとに検証を行った。 年間収入グル ー プは、 収入/I慎に全体を五つに分けている。 なお、 今回の擬似ミクロデ ー タでは、 企業の従業員規模が大きくなるにつれ、 年間収入が高くなる傾向が分かっている。 図2の企業規 模別では、 デ ー タ全体の自動車の保有割合が高い傾向があり、 各区分の差に大きな聞きはなかったも のの、 図1より企業規模が大きくなるにつれ、自動車の保有割合が高くなる傾向が見られた。また、その中でも「上 位20~40%Jに着目すると、 自動車所有の割合は95.4% (官公)、94. 7% (民営・自営500人以上)となっ ており「民営・自営1~4人」の86.1%とは大きく差があることが分かった。 100 盟謹錨 民世・自世1-4人4幽幽画面画歯幽馳鎚髄謹詣 95 5 -由人 富歯車 掴 -4個人 5曲人以上 官公 悩噛 a 措 上位20~刊% 上位20% 10 四 団 .. 田 帥 70 曲 企業蝿複E闘の年明収入グル ープ胃割合 | : I監禁4雌 E E 年間眼目円 ー附 儲%40%園拍 図 l:年間収入グル ー プと企業区分における自動車の保有割合 図2:企業別年間収入グル ー プの割合 500 90 I佃
ょ盟fil:ム 官公 無職 I 12,s95 I 631 I 10,615 I 673 I 12,881 I 687 I 9,865 I 115 I 8,442 I 876 I 14,433 I 408 2 回一 回一 日一 幻一 却一 足。断ミ 民営・自営1 ~ 4人 5 ~29 人 30 ~ 499 人 500人以上 表3:企業区分・従業者規模における年間収入 ※ (YOO!)年間収入に関して、 擬似ミクロデ ー タで定義されている単位を使用している。 また、 図1より「民営・自営I ~ 4人」の自動車の保有割合は、 年間収入グル ー プの下位20%とそれ以外 で差が小さいことが読み取れる。 これは地方農業従業者や個人事業主など、 年間収入グル ー プに関わらず、 仕事上の理由で自動車を保有する必要があるのではないかと推測をしたが、 自動車を保有している世帯の中 で「3大都市圏」(87. 5%)と「その他J (82. 3%)の世帯割合に大きな差が見られなかった。 加えて農林漁業 収入など関連する変数との相闘を検証したが、 こちらも相関は見られなかったため、 この点については要因 の特定にまで至らなかった。 3.企業区分・年齢における自動車の保有割合 100 95 ( ポ )hw高 健 瑳 QM宵語 但 90 85 80 75 70 65 60 30歳未満 30代 40代 50代 60代 企業区分・従業者規模 一一争一民営・自営1 ~ 4人 - -e ー 5 ~ 29人 - e- 30 ~ 499人 一--0 - 無職 一-0 - ·官公 一→ - 500人以上 図3:世帯主の年齢(世代}と企業区分における自動車の保有割合 501 70歳以上
24歳以下 25 ~29歳 30 ~34歳 35 ~39歳 40 ~44歳 45 ~49歳 50 ~54歳 55 ~59歳 60 ~64歳 65 ~69歳 70 ~74歳 75歳以上 70 261 605 718 1,018 1,090 1,444 1,573 1,515 1,194 781 539 92.1 91.6 92.1 89.2 88.2 87.8 85.1 83.8 83.4 79.9 77.9 68.2 150 427 851 984 1,065 1,092 1,353 1,286 1,059 446 243 113 85.2 90.7 91.5 90.9 89.3 87.0 87.0 86.4 82.3 69.9 69.6 60.1 表4 :企業区分と世帯主の年齢における自動車の保有割合 156 606 1,179 1,409 1,494 1,510 1,692 1,706 1,116 507 162 59 80.8 90.7 93.2 93.1 92.7 90.0 90.6 89.8 87.5 84.8 75.3 59.6 170 71.1 545 90.1 1,030 93.9 1,440 94.8 1,315 92.3 1,294 90.7 1,338 92.7 1,200 90.7 504 88.3 140 81.4 25 69.4 9 100. 。 89 384 730 980 1,147 1,335 1,371 1,261 461 160 54 14 89.9 92.1 93.0 95.6 96.7 94.9 96.1 95.9 89.7 87.4 84.4 70.0 9 55 89 153 174 212 305 502 2,133 2,807 2,288 1,786 60.0 83.3 83.2 79.3 84.9 76.5 77.8 80.4 84.2 78.2 71.2 55.5 次に企業 区分で分けた場合の年代ごとの自動車の保有の割合に差があるのか検証を行った。 「民営・自営 500人以上J、 「官公」の自動車の保有割合の割合は35歳~44歳の聞で最大値を取っており、 それぞれ「官 公」が「40 ~44歳」の時点で96. 7%、 「民営・自営500人以上jは「35 ~39歳」の時点で94.8%となって いる。 このことから生活が安定し、 家族構成員が増加するなど生活的な要因の影響を受けて自動車保有の割 合が増加していると考えられる。 対して「民営・自営1 ~4人」、 「民営・自営5 ~29人」では24歳 ~29歳 までの聞で最大値を取っており、 その後は緩やかに下降傾向がある。 ここに区分される世帯の詳細を分析し たところ、 就業人員が1人で未就学児有りの場合、 一戸建てに住んでいる世帯割合(33. 51%)より、 一戸建て 以外に住んでいる世帯割合(66. 49紛が多く、 このことから若い年齢で結婚し、 未就学児のいる世帯が生活の 足として自動車を所有していると推測される。 国土交通省の「全国都市交通特性調査」の「女性の子供の有無別の交通分担率」を参照すると、 子供がい る就業者(平日) において全国の自動車の交通分担率は、どの年代においても子供のいない世帯より大きく、 本デ ー タにおいてもこの傾向があるものと考えられる。 4.企業区分と世帯人員における自動車の保有割合 企業区分・従業者規模ごとに、 世帯人員で自動車の保有割合を比較した。 世帯人員が1人の単身世帯 の場合は、 自動車の保有割合が低く、 2人以上の世帯では、 企業の従業者規模が大きくなるにつれ、 自 動車の保有割合も緩やかに上昇していた。 また、 世帯人員が3人以上の場合(3人、 4人、 5人以上)、 企 業の従業者規模と自動車の保有割合の関係は、 近似していた。 単身世帯とそれ以外で差が見られたのは、 収入の安定性、 もしくは人員が増えることでの自動車利用 502
の必要性が影響を及ぼしていると推測される。 自動車を保有(購入)する理由として、 子どもの有無や
高齢者の有無が影響していると考えた。
また、 単身世帯の自動車の保有割合が低い理由として、 単身世帯のうち、65 歳以上の女性が 47.08%
と割合が高かった。これは女性の免許保有者のうち 65 歳以上の女性が 6.55% (「交通統計平成 16 年」
交通事故分析センタ ー)しかいないことが大きな影響していると考えられる。
年齢別・男女別免許保有串{交通統計平成16年よ旬)
!00
5
2
\
、
\
5
7
ニヘ叩-.~
:�、 叫
削
日ウ/ふ
0
5
が
》"'''
ii
\九州
5
2
,,リ
文 句託、 九 も、也、号、4九 大
S人以l
4人
3人
/
..場
""
ノ ノマ "' ',_、、JべL二J特3
,/\
0
0
(
ポ)
布 革 本 樟 山崎
}
右 記 号 U叫
川量 母 一
長持 眠
0
5
(
JF)布 草 加惇唾 号 昼間
昌司
2人
ノノ、、口、 、l ,,;
"
"·'干/
7
と4ム
60,
今、 色、青白
『春、%、%、%ブ句、%、丸、
世帯人員
年齢別
ー一・一民営・自営, - ,人 一 ー - S-29λ - e- J0-499人
--<> ー 官公
ー- - 煙霞
ーーe- 500人以上
!一一ー一男性 一
図4:企業区分と世帯人員における自動車の保有割合
女性l
図 5 :年齢別 ・ 男女別免許保有者数「交通統計平成 16 年より J
5.企業区分と性別における自動車の保有割合
100
: L�」」l〆/
95
3
J
-
J
〆V
久、
”戸
、
r
~、。
-
-
-
ユ
::;
60
00
、
民営・自営 I ~ 4 人[ l,758[ 479[
11,660 446
5 ~ 29 人
~
30 499 人
1,s91 [ 450
[ 1,151 [ 482
500 人以上
[ 1,253 [ 703 [
官公
[3,425 I 320 I
無職
I
I
I
I
I
20[
23
15
44 [
56 [
11
393[ 2,610
I 363 I 2,531
I 3111 3,113
405 [ 2,025
667 [ 2,504
242 [ 3,102
表6:女性の世帯主と企業区分・従業員規模における年間収入
50
民営自営,-』4人
5~29人
500人以上
30~499人
官公
企業区分
i世帯主の岬刑ー--
一
男
命
令l
図6:企業区分と性別における自動車の保有割合
全体で世帯主の性別ごとの自動車の保有割合は、男性 88. 3%、女性69.6% と、男性の方が高いことが分か
った。 企業区分ごとに比較したところ、企業の従業者規模が大きくなるにつれ、 男性の自動車保有の割合は
緩やかに上昇している。
また、企業区分「官公」においては、 男性と女性の自動車保有の割合の差が小さいことが読み取れる。 こ
れは、世帯主が女性の場合、企業区分「官公」の年収平均が、 「民営・自営 j の約 1. 52 倍と大きく異なって
いることが影響していると推測される。その他要因として考えられる、未就学児の有無に関して検討したが、
自動車を保有している世帯主が女性の場合、未就学児の有無に関わらず「官公」
( 未就学児有: 8.65%、無:
91. 35%)と「民営・自営」 (未就学児有: 9. 58%、無: 90.42%)と、ほとんど割合には違いが見られなかった。
503
6.企業区分と戸建世帯における自動車の保有割合
次に企業規模ごとに「戸建世帯Jと「戸建以外の世帯Jで車の保有率に差があるかを検証した (図 7 ) 。
全体的に戸建世帯は、 戸建以外の世帯よりも車保有率が高い傾向があった。 要因として戸建世帯での駐車ス
ペ ー ス、 収入、 家族構成など自動車を所有する因子が複合的に含まれているからではないかと推測する。
駐車スペ ー スについては、 戸建購入の理由として「駐車スペースが無料」が51.8%であることから、 戸建に
おける自動車の割合の高さは関係があるといえる。
戸建てにした理由は。(「トレンド調査Jアットホーム揖式会社)
100
9;
駐車栂が祭斜
90
0
8
"'
5
7
霊
0
7
5
6
誤)申 嘉 手韮邑漫 画 部
(
5
8
住宅街の""咋環境
{
聞
60
管理費や倒立金を払いたくない
毘当た町風通しが良L、
土地を符ちたb可た
騒音によるトラブル治む少ない
55
川噛嗣掛った
50
5 ~ 29人
畏営自営l ~ 4人
30 ~ 499人
son人以上
官公
篠崎
IO
企業区分
I f主魁のrnて万
一---<ト一
戸建一喝 一
20
30
40
50
割合同
戸..以外l
図8: 一 戸建てにした理由
図7:企業区分と住居の建て方における自動車の保有割合
[トレンド調査より]
収入と戸建世帯については、 図9で示す通り、 世帯主の収入が高いほど、 一戸建て世帯の割合が多くなる
傾向にあることがいえる。加えて、先の図2より年間収入グル ー プと企業の従業者規模が大きくなるにつれ、
自動車保有の割合が上がる傾向があった。 よって経済的な余裕から戸建世帯の方が戸建以外の世帯よりも自
動車保有の割合が多いと推察する。世帯人員と車保有の相関については、図4より世帯人員が増えるにつれ、
自動車保有の割合が上がる傾向があった。 また、 戸建世帯は世帯人員に単身以外の割合が高いことから、 世
帯人員が多い戸建世帯の方が戸建以外世帯よりも車保有の割合が大きくなると考える。
一戸建て世帯(図7)を企業規模別でみた場合、 世帯主の企業区分「民営・自営l ~4人jでは、 戸建の車保
有率が83.側、 戸建以外の車保有率が84. 7犯であり、 その差は 0.9犯である。 よって「民営・自営l ~4人Jの
区分での戸建以外で車保有率に大きな差は無いと考えられる。 企業区分「民営・自営 5~ 29人」「民営・自
営30人 ~499人」「民営・自営500人以上」の保有率について戸建世帯は戸建以外の世帯よりも割合が高い
傾向がある。
95
90
乙
生
&
号
u
}
85
80
75
"
60 t型
下立20市
下位20戸、40%
40、60,出
上せ主,o~<0%
上位20%
年間収入グル ー プ
"''持η彊て芳一-ト一 一 戸也i
図9: 一 戸建て世常数と年間収入グノレ ー プ
504
7.まとめ 本研究では自動車の保有率は年間所得や世常人員の構成に大きな影響を受けることが分かつた。 企業の従 業員の規模が大きくなるにつれ自動車の保有率が上昇することから、 企業の従業員規模と自動車の保有率に は相関があると考えられ、 企業の従業員規模が大きくになるにつれ年間所得も大きくなることから、 年間所 得と自動車の保有率にも同じように相関があるといえる。 「 5. 企業区分と性別における自動車保有の割合j では官公に区分される女性の自動車の保有率(90. 4%)は男性の割合(95. 3% )と近似していた。 女性の年 間所得の平均が企業規模に関わらず近似している中で、年間所得の平均が際立って高い官公区分の女性の自動 車の保有率が高いということも大変興味深い結果であった。 このことからも年間所得と自動車購入の保有率 には関係があるといえるのではないだろうか。 一 方で年齢や企業の従業員規模に関わらず自動車の保有をしている世帯には未就学児の有無も密接に関係 しており、 「 3. 企業区分・年齢における自動車の保有割合Jのデ ー タから若い世代で企業の従業員規模が小 さい場合でも、世帯人員の増加があった場合には自動車の保有率が高い水準であることが分かる。また、 「 6. 企業区分と戸建世帯における自動車の保有」のデ ー タで 一 戸建てその世帯の生活状況によっても自動車購入 の優先順位が高くなる傾向が見られた。 8.おわりに 今回使用した疑似ミクロデ ー タは 2004 年時点のもので、 あったが、 それ以降の自動車の保有率関連の状況に ついても外部文献を利用して考察を行った。 国土交通白書(2013)によると 20-29 歳の運転免許保有率は 2001-2006 年の問で 85. 5%と高い水準で推移 しており、若者に関して自動車の保有はしていないが、将来的な必要性は感じていると考えられる。加えて、 自動車の 一 時的な利用として近年ではレンタカ ー の他にカ ー シェアリングがビジネスとして展開されており、 このサ ー ビスを利用した後の 10 代・20 代の自動車を保有したいという意向は 49. 9%から 86.2%と大幅に上 昇している。 こうしたサ ー ビスの展開は長期的な観点において、自動車の購入と保有率の上昇につながっていくのではな いかと考える。 参考文献 ・ ・ ・ 「交通統計平成 16 年J 交通事故分析センタ ー 「2013 年国土交通白書J 国土交通省 httos://www.mlit.1rn.io/hakusvo/mlit/h24/index.html 「トレンド調査」 アットホ ー ム株式会社 。 htto://athome-inc.io/wo-content/uoloads/2015/07/12102301. df 505
付録規定課題
η年齢階層・也事磨区分溺タロス表
-- 欄健機て::
自由主ー ;:師事「??一二
重軽量豊
2 4歳以下
邸調ー(繕務
;筋書草者
i
7 65
2 ,28 9
1571
30 ~3 4歳
4, 223
51 1
35 ~3 9歳]
5 21 7
7281
2 5~2 9歳
省,at
15
i
82 4
1 93
8 ,3 96
1,145
205
1 ,47 9
合計
:同
1,川柳oi叩6
5 -69歳1
「←一一一「「 -ーー一一
l
I
I 3.214 \ 4 ,8 8旧! \ 70~74歳 I
附 I 3 21s I 仰2 i 1 75 歳以上1
1 .1 91
1 661
i 40’ 7
a
a
守
一内
ad
a守
勾
£
一
-RU
u
a
q4
-
75 歳以上1
na-n,‘
の
,‘
一守
,
a
o
-
qAV
EU一内d
歳 一歳
~ ←~
E
d-
u
z
u
-n
au
65 -69 tilt! 1 ,343 1
一一一一一ー一一一「一一一一一↑
70 ~7 4議:
4関 I
2 , 085
酬9j叩3 1 69’1a1
s
i
I
合計
2)i瞥暗'l.i燭耳N世穆E正'f'jザ'lit·司F」吉(I)(},言 ザ3111�ロ'.A,j
'
8,517
324
1,543
2,421
654
234
4,956
8,841
4,293
3,963
934
378
27,645
384
5,340
7,947 57,386
I
2 ,725
8 9日3
2 . 78 沼
4,1 60 [
1 . 487
2 . 213 I
s.3741
一一一一一寸一一一一一 I
一「
45 9
1 .e52 I
e.124
201 I
57 .3
叫
1,325
I
11,071
671 1,303
1,974
3,264
2,390
118
2,508
638
15,250
1,623
887
413
1,364
488
75
16,874
278
"
Il
51,776
4.714
中央値
1,689.0
3.2279
第1四分位数
最小値
平均値
件数
3,039.0
858.0
。
2,284.0
100,000
160
174
3,295
798
452
25,741
24,287
37,182
7,302
8,646
1,826
100,000
3)パン支出金額箱ひげ図
最大値
第3四分位数
32
18,340 7,401
3) パン支出金額についての各種統計グラフ
表3
,
s.揃
45
6,242
430
s.235
e,s13
4,375 11,026
81
10 . 0 14
1 6, 87 41 25 ’741 [ 100 .000
51
6,190
11 ,153
3.4829
’
:,, ,al
||咽
10000
2.9340
0.000
30000
20000
パンの支出金額(円)
40000
3)パン支出金額lこl を加えた金額の常用対数ヒストグラム
3.1367
100,000
、,,:
4
与'入
・
。
。
506
2
パン支出金額に l を加えた金額の常用対数
50000
j 14.3 100.0 0.8 I 4.7 100.0 選 0.6 霊 0.4 仏E a -phu一nw d 一角 。 民 u-Ru一aaz-aaτ 二世代 ; 夫婦のみ : : :・ ヴ 世帯分類|単身世帯 o o-のu-00 一。。 5-3 -6 一O司& ’ A-の4-,A一 守s-号 a-nv-nw d 6 一7一8 一5 q 4 - 内 a - の 4 - qo l一 8 7 0一o 内 - q o -a na冨 v一 wd r o4- 内 O- 一n 向。 -a u-nd- A 4 - 5 一 B 一q E6 s- 守 s- qL- ZA z d -n υ-4a-ηs 。 , “ 一 。& 一。,“ 一qd ’ j 無職世帯 : 57,386 I 36.0 I 37.6 I 22.l 勤労者以外の世帯I 16,874 I 44.9 I 31.0 I 19.4 世帯区分|勤労者世帯 100.0 。 100. 100.0 100.0 その他 I 44.9 I 3!.6 I !9.0 I 4,5 州 19.7 13.8 |”“ I 1,826 I 44.s I 30.s I 20.4 I 4.3 100.0 全体 100,000 I 41.7 I 33.7 I 20.0 I 4. 7 100.0 二世代{ひとり親) 100.0 17,302 1 46.013 三世代 100.0 ノ // 5)世帯分類別のローレンツ轟狼およびジニ係費量 5)世帯分類「二世代(ひとり親)」世帯の年 間収入(YOOl )のローレンツ曲線 1.0,ジエ係数0.3501 4)-/ftj帯分類�防援額f米、パン、めん類、他の設費診の構成比 表4 0.2 。。 0.0 | -…吋 0.2 0.4 0.6 世帯累積比 0.8 .....均等分布線 5) 6つの世帯分署員の年照叡入(YOO!) のジエ係費量 4)世帯分類JllJの袈類(米 、 パ ン 、 め必類 、 他の毅類}の構成比帯グラフ l周 --・E・--��園田園田 -1 ド 議委 ト\守 80 "' 、『' 戸市、 表5 」ー 、議亀 田〉 ーセ 今 曲 0.34 岨 £蛍管掌 { 単身世帯 夫婦のみ 0.31 20 単身世帯 二世流 二世代{ひとり親)三世代 世帯分類 !構成田米国パン固めん掴国他の留物l 夫婦のみ その他 付録規定課題のプログラム 唱}年艶積層・世帯区分別クロス袋 H 市ADSライフラリ定議;libname ADS フォルダパス ; $表1 “ title "2017年 第5 固 S A Sミクロデ ー タ分析コンテスト ; " ” 義 ; title2 規定課題1 )年齢階層・世帯区分別クロス " title3 表1 " : 率フォ ー マット作成; proc format : ” “ ” ” 5 = 2H量以下 6 = 25~29議 value X09FS ” “ ” ” 7 = 30~34怠 8= 35~39歳 “ ” 9= "40~44歳 10 = "45~49歳 N ” " 11= "50~54鼠 12 = 55~59怠 M ” ” 13 = 60~64篇 14= "65~69歳 ” ” ” 15= "70~74歳 16= 75怠以上 ” ” 99 = 合計 ; “ ” ” ” 1 = 勤労者世帯 2= 勤労者以外の世帯 value X02F " " 3 = 無職世帯 run I* 10万人比集計周のWEIGHT算出*/ proc summary data=ADS. Zensho2004gi j imiera : var Weight : output out = work.Weight (keep= TotalWeight) SU聞= TotalWeight run /*表作成のデ - 11準備V data work. Kadai_la : set ADS. Zensho20例gi』imicro (keep = X02 X09 Weight) : retain Multiplier : W 1.0 if 二世代 0.26 二世代(ひとり親) 0.35 三世代 0.27 全体 0.33 N_ = 1 then do : set Weight : Multiplier = 1e5 / TotalWeight : end : CountDummy=1 : Tabletype = 1 RedefinedWeight = 1 : output : Tabletype=2 : RedefinedWeight=Weight* Multiplier : output format _al |ー; run ネ / 集計対象となるカテゴリの組み合わせを作成*/ data work. Cl assData1 do TableType=1 to 2 : do X09=5 to 16 : do X02=1 to 3 : output: end: end: end: run: * I MEANSプロシジャによって集計デ ー タセット*/ pr町 田eans data = work. Kadai_1a nopr int classdata = work. CI assData 1 class TableType X09 X02 : types TableTypeホX09* X02 TableTypeホX09 TableType キ X02 TableType : var CountDummy : 507
are
η年齢積層・世港区分混クロス:
き3
weight RedefinedWeight ;
output out= work. Meansl sum = SumCnt ;
run
data work. Means2
set work. Means!
if missing( X09 ) then X09 = 99 ;
if missing( X02 ) then X02= 4 ;
if missing( SumCnt ) then SumCnt= 0 ;
I ength SumCntC $ 100 ;
SumCntC = put( round ( SumCnt, 1 ) , c側una12. -L )
run
proc sort data= work. Means2 :
by X09 TableType X02 ;
run
proc transpose data= work. Means2 out = work. Means3 prefix
= C ;
by X09 ; id TableType X02 ; var SumCntC ;
run
/*空欄を作成*/
data work. Means4 ;
set work. Means3 :
山
α)0=
;
run
2) 量管分寝;s,/• '/).量種区分溺世司書主@佳麗S璽クロス蜜
*表2:
proc format ;
’
”
”
”
= 女 ;
男 2
value X08F =
1
”
”
”
value X11F 1= 単身世帯 2: n 夫婦のみ
"
M
”
“
3= 二世代
4= 二世代(ひとり親)
"
”
6= ” その他 M
5= 三世代
run
/*10:万世帯比の算出事/
data work. Micro2_1 :
set ADS. zensho2004gij imicro :
retain Multiplier :
if _N_= 1 then do :
set Weight :
Multiplier = 1e5 / TotalWeight :
end:
CountDummy = 1 :
Weight_HT= Weight * Multiplier :
keep X02 Xl 1 X08 CountDummy Weight_HT :
run
1*10万世帯比の算出*/
data work. Micro2_1
set ADS. zensho2004gij imicro :
retain Multiplier :
if _N_= 1 then do :
set Weight ;
Multiplier = 1e5 / TotalWeight ;
end;
I* rtf出カホ/
’
”
ods rtf file= rtf出力先 style= I isting bodytitle ;
proc report data= work. Means4 nowd :
"
W
column ( X09 ( 世帯区分 C11 C12 C13) C14) ( "09"x COO)
"
N
( X09 ( 世帯区分 C21 C22 C23 ) C24 )
define X09
”
”
/ 世帯主の/年齢 order order= interna I center f I ow :
”
側
define C11 / 勤労者 right width= 8 :
"
”
define C12 / 勤労者/以外 right width = 8 :
"
”
define C13 / 無職 right width= 8 ;
”
”
define C14 / 合計 right width= 8 :
define COO / "" display ;
define X09 / order order = internal flow width= 8 :
“
“
define C21 / 勤労者 right width= 8 :
"
”
define C22 / 勤労者/以外 right width= 8
"
“
define C23 / 無職 right width = 8 :
”
”
define C24 / 合計 right width= 8
forf『lat X09 X09FS.
run
ods rtf close ;
CountDummy= 1
Weight_HT= Weight Multiplier :
keep X02 Xl 1 X08 CountDummy Weight_HT
run
options orientation = portrait papersize= A4 nodate nonumber
”
”
ods rtf file= rtf出力先
bodytitle:
ods I isting close;
titlel "2)世帯分類別・世帯区分別世帯主の性別3璽クロス表
*
”
title2 表2":
proc tabulate data= work. Micro2_1 out = work. Micro2_1_F ;
class X02 XOB X11
var CountDununy :
” “ ;
keylabel N=
’'"
”
”
向
""
=
table (X11
車(XOB =
AL=
L
合計 ) . X02=
札L =
""
”
キf= commas.) (CountDummy
計 ) * ( CountDummy= ""* sum =
"
”
= "" * SUM = 合計 * f = commas.)
”
/ box= "世智分類 ;
weight Weight_HT :
format X02 X02F. XOB X08F 目 X11 X11F.
run
ods rtf close :
ods I isting :
title :
H
3) パン支出金額についての各種齢十グラフ
*表3;
”
titlel " 3) パン支出金額についての各種統計グラフ ;
title2 "表3"
/*パン支出金額に闘するデ 一 書セット*/
data work. Breadl
set ADS. zensho2004gij imicro ;
retain Multiplier ;
if -札=lthen do ;
set Weight;
Multiplier = 1e5 / TotalWeight ;
end
CountDummy= 1 :
RedefinedWeight= Weight Multiplier ;
TransType = 1
AV.=
札 Y似4
output :
TransType= 2 :
AVAL=log10(Y044 + 1 )
output :
format _a11_
run
proc sort data = work. Breadl
by TransType :
run
*
508
3) パン支出金額についての各種統計グラフE鎌き1
' I 梓 meansデ_,を作成する*/
proo means data= work. Breadl noprint nway:
class TransType :
var V
A ALCountDurnny .
weight Redef川edWeight .
output out=BreadMeansl max = Max q3 = 03 median = Median
ql = 01 min = Min mean = Mean sum = SumAval SumCnt :
run
data work. BreadMeans2
set work. BreadMeansl:
length MaxC 03C MedianC OlC MinC MeanC NC ldlabel $100 .
if TransType = 1 then do :
”
IdlabeI =勺tンの支出/金額(円)
MaxC = put( round( Max. 1 ). comma12.0 -L)
Q3C = put( round( 03, le-1 ). comma12. 1 -L)
MedianC = put( round( Median, le-1 ). comma12.1 -L) :
OlC = put( round( 01, le-1 ), comma12. 1 -L)
MinC = put( round( Min, 1 ), comma12. -L)
MeanC = put( round (聞ean. le-1 ). comma 12.1 -L)
NC = put( round( SumCnt. 1 ). comma12. ーL) :
end:
else if TransType = 2 then do :
”
”
ldlabel = 1を加えた金額の/常用対数
NC = put( round( SUI『1Cnt, 1 ). comma 12. -L) :
MaxC = put( round( Max, 1e-3 ). c町田al2. 3 -L) .
MinC = put( round( Min. le-3 ). comma12.3 -L)
・
03C = put( round( 03, le-4 ). comma12.4 ’L)
QlC = put( round( 01. le-4 ). comma12. 4 -L)
MedianC = put( round( Median. le-4 ). co111111a12. 4 -L) :
MeanC = put( round( Mean. le-4 ). commal 2. 4 -L)
end
”
”
M
”
”
MedianC =
label MaxC = 最大値 03C = 第3四分位数
”
中央値
”
”
”
”
”
”
QlC = 第1四分位数 MinC = 最小値 MeanC = 平均値
H
”
NC = 件数 ’
run
proo
transpose
data
=
work.BreadMeans2
out
work.BreadMeans3 prefix = C :
4) 世帯分類別の毅類(米、 パン、めん類、他の毅劃の構成比
本表4
/*帳票出力用のフォ ー マットを作成 */
proo form�t :
”
”
”
”
= 勤労者世帯 12 = 勤労者以外の 世帯
value Coln 11
”
”
”
”
”
”
13 = 無職世帯 101
= 単身世帯 102 = 夫婦のみ
”
”
”
”
= 二世代(ひとり親)
103 2 二世代 104
”
”
”
”
”
”
105 = 三世代 106
= その他 200 = 全体 ,
”
”
”
”
”
n
1 = 世帯分類 2 = 世帯区分 .
value TYPE F O=
”
”
value $ _N馴E_ "PerY043 Mean" = 米
”
"PerY044_Mean =
,,
,,
"PerY045_Mean" = めん類
’
”
”
”
PerY046 Mean = 他の穀物 \
run
I* 10万世帯比の分母となる乗率を算出し、マクロ変数に代入*/
data _nulI ー ・
set ADS.zensho2004gijimioro(keep= Weight) end = EOF :
Weight2 + Weight :
”
if EOF = 1 then oa11 symputx
( TotalWeight" , Weight2 )
run
data work.kadai_4a :
set DA S.zensho2004gijimicro :
/*各穀類の檎成比を世帯ごとに算出本/
内
if Y042 =Othen do .
PerY043 = Y043 / Y042 キ 100
PerY044 = Y044 / Y042 * 100 :
PerY045 = Y045 / Y042 * 100 :
PerY046 = Y046 L Y042 * 100 :
id TransType , idlabel ldlabel
var MaxC 03C MedianC 01C MinC MeanC NC
run
data work.BreadMeans4 :
set work.BreadMeans3
”
”
if upcase( N馴E_ ) in ( ME ANC" "NC ) then StatType = 2 :
else StatType = 1
run
ods I isting close :
”
”
ods rtf file = rtf出力先 bodytitle
ods rtf startpage = no :
”
pr c report data = work.BreadMeans4 nowd spI it = "/ box :
coI umn StatType _LABEL_ Cl C2:
define StatType / order order = internaI noprint:
”
”
define _LABEL_ /
統 計量 style (column) = {just=left
eellwidth=3cm}:
define Cl - C2 / style (colunn) = {just = right
ce11 width=3cm}
run .
1*3) ー ②箱ひげ図を作成する*/
ods graphics / height = 6cm width = 14cm
”
titlel " 3) パン支出金額 箱ひげ図 ;
proo sgplot data = work.Breadl
where TransType = 1
hbox AVAL:
”
label V
A L
A =勺tンの支出金額(円)
run
/*3) ー ③ヒストグラムを作成するり
ads graphics / height = 6cm width = 14cm :
”
3) パン支出金額に 1 を加えた金額の常用対数 ヒス
titlel
”
トグラム ;
proc sgplot data = work. Breadl
where TransType = 2
histogram AVAL:
”
label AVAL=勺fン支出金額lこ1を加えた金額の常用対数 ;
run
titI e . ods graphics / reset . ods rtf cI ose startpage=yes ;
ods I isting : ods HTML .
。
*
Per IA I = sum(of Y043 - Y046 ) / Y042 100 :
end
I* 10 万世帯比用の乗率を算出、 カウント用のダミ ー変数を作成
叫
Weight_lO= 100000 /品TotalWeight. * Weight :
Dummy = 1
keep X02 Xll Weight_lOPerY043 - PerY046 PerAI I Dunmy .
run
/* 世帯区分、 世帯分類ごとに統計量を算出本/
proo surnnary data = kadai 4a mean sum .
cI ass X02 Xl1:
/*組み合わせば全体、X02のみ、Xllのみでアウトプット */
・
types O X02 Xl1
var PerY043 - PerY046 PerAI I Dummy :
weight Weight_lO
output out = kadai_4b mean = sum = / autoname .
run
data work.kadai_4c .
set work.kadai 4b
本
/
世帯区分、世帯分類、全体のフラグを1つの変数にまとめる */
if X02 then X02_X11 = 10 + X02 :
else if Xll then X02_X11 = 100 + Xll
else X02 Xll = 200 :
/*各統計量の小数点を丸め*/
array XX (*) PerY043_Mean - Dummy_Sum :
do i = 1 to dim(XX)
XX(i) = round( XX(i) . 0.01 )
509
4主量得分類別の接援様、 パン、めん類、他の猿掛の構成比植きE
run
/*帯グラフ用デ ー 告を作成*/
data work. kadai_4d :
set work kadai_4b :
if Xll then Xll = 100 + Xll
run
proc sort data = work.kadai_4d :
by X11 :
run
proc transpose data = work.kadai_4d out =嗣rk.kadai_4e :
by Xll :
var PerY043_Mean - PerY046_Mean :
run
”
”
ods rtf file = rtf出力先 bodytitle :
”
titI el 4)世帯分類別の穀類(米、 パン、 めん類、 他の穀類)
’
の構成比 ;
title2 表4" ;
ホ
/ 集計表を作成本/
proc report data = work. kadai_4c :
column _TYPE_ X02_l(11 Dummy_Sum
"
”
( 格成比(唱) PerY043_Mean PerY044_Mean
PerY045_Mean PerY046_Mean )
PerAI I_聞ean :
R
5) 世帯分類磁のロ ーレンツ歯銭およびジニ係数
本表5
/*表出力用 のフォ ー マットを作成*/
proc format :
”
"
"
"
”
"
value X11_2F 1 = 単身世帯 2 = 夫婦のみ 3 = 二世代
”
“
”
”
4 = 二世代(ひとり貌) 5 = 三世代
’
"
”
”
6 = その他 7 = 全体 :
run
/*合計算出用にTabIe_Type=2とする*/
data work. kadai_5a :
set ADS. zensho20例gijimicro (keep= X11 YOOl Weight)
Table_Type = 1 : Group= Xll : output :
Table_Type = 2 : Group = 7 : output :
run
proc sort data = work. kadai_5a ;
by TabIe_Type Group YOOl ;
run
data work.kadai 5b
set work. kadai_5a :
by Table_Type Group YOOl
/事各世帯分類ごとに合計する*/
if first.Group= 1 then do :
SuOLWeight = 0 : S叩LY001 = 0 ;
end :
Sum_Weight + Weight ;
SURLYOOl + YOOl 本 Weight;
I* Weight· YOOl の総合計をマクロ変数に格納*/
if Iast.Group = 1 then do :
”
ca 11
symputx (
cats( Tota I_Weight_", group)
Su札Weight ) ;
”
ca I I symputx ( cats( Tota I_ YOOl_", group) , Sum_Y001 ) :
end
run
data work. kadai_5c work. kadai_5d :
set kadai 5b :
by Table_Type Group Y001 :
=
Sum_Weight
/
lLWeight
symgetn(cats(' Tota I_Weight_,ιroup)) :
市
/ X軸の世帯累積比*/
=
S叩LY001
Y_Y001
/
’
S抑唱etn(cats( TotaI_YOOl_’. gr up)) ;/本Y軸の所得累積比*/
。
define _TYPE_ /order order = internal descending
"
”
format = TYPEF. 項目名 ;
define X02_X11 /order order = internaI
"
format = Co In. w 符号内容 ;
"
"
define Dummy_Sum
/ display format =∞四a8. 件数 ;
”
“
define PerY043」.Mean / dispIay format = 5. 1 米 .
"
N
define PerY044_Mean / disp Iay format = 5. 1 パン
”
”
define PerY045」.Mean / display format = 5. 1 めん類 ;
“
“
define PerY046_Mean / disp Iay format = 5. 1 他の殺物 ;
”
"
define PerAIl』ean / display format = 5. 1 全体側) ;
run
*
/ 帯グラフを作成事/
ds graphics / height = 8cm width = 14cm :
”
titlel 4)世得分額lll]の穀類(米、 パン、 めん類、 他の穀類)の
"
犠成比 帯グラフ
proc s即lot data = work. kadai_4e :
vbar Xl1 / response = co11 group = _N雌E_;
format X11 Coln. _陥ME_ $_N州L
”
”
”
"
"
”
label X11 = 世帯分類 coll = 織成比{略) _N細E_ = 構成 ’
run
ods graphics / reset :
ods rtf close :
title :
。
Lag_YOOl = Iag1(Y_YOOl) ;
寧
/ 台形
算出の上辺*/
Dif_Weight = dif(X_Weight) ; I*台形算出の高さ*/
*
/ 各世帯分類の10BS目は三角形の面積、20BS以降は台形の面積*/
if first.Group= 1 then Integral= LYOOl )(_Weight 命 0.5;
else Integral + ( LaιY001 + Y_Y001 )本日if_Weight 0.5 ;
output work. kadai_5c :
/本各世帯分類の計算したジニ係数をアウトプット */
/*課題5-1 用に世得分類=4 のジニ係数をマクロ変数に格納寧/
if last.Group = 1 then do :
Gini = 2 * ( 0. 5 - Integral )
”
if Group= 4 then cal I s抑制tx( Gini4". put( round( Gini,
0. 0001 ) , 8. 4))
output work. kadai_5d :
end :
’
”
”
"
label )(_Weight = 世稽累積比 LYOOl = 所得累積比 ;
run
options nodate nonumber :
”
”
ods rtf file = rtf出力先 bodytitle :
titlel "5 ) 世縛分類『二世代 (ひとり親)』世帯の年間収入(YOOl)
”
のロ ー レンツ曲線 ;
ods graphics /height= 9cm width= 8 側 antialias聞ax = 8000 :
proc sgp I ot data = kadai_5c :
where Group = 4 ;
series x = X_Weight y = LY001
/ Iineattrs = (pattern = solid color = black) legendlabel
"
”
= ロ ー レンツ曲線 ;
series x = X_Weight y = )(_Weight
/Iineattrs= (pattern= shortdash color= black) legendlabel
”
”
= 勾等分布線 ;
“
inset Fジニ係数 =屯Gini4.")
run
ods graphics / reset :
”
titlel "5) 6つの世帯分類の年間収入 (Y001) のジニ係数 ;
"
title2 表5" ;
proc pr int data = kadai_5d Iabe I noobs :
var Group Gini
format Group X11_2F. Gini 8. 2 :
”
”
“
”
label Group = 世帯分類 Gini = ジニ係数 ;
run
ods rtf close
title
510
*
*
高齢者世帯の消費動向 チ ー ム名:タクミインフォメ ー ションテクノロジ ー チ ー ムD 0中平健 (株式会社タクミインフォメ ー ションテクノロジ ー ) 参加カテゴリ ー :ニュ ー カマ ー (SAS または JMP の使用歴 3 年未満) Consumption trend of elderly households Ken Nakadaira Takumi Information Technology 要旨 今後も高齢化率の上昇が見込まれる我が国において、 将来の消費動向は大勢を占める高齢者世帯にかか っているといっても過言ではない。 そこで、 「 平成 16 年全国消費実態調査jに基づく新疑似ミクロデ ー タで高齢者世帯の消費動向について分析を行った。 その結果、 高齢者世帯は消費意欲が旺盛であり、 特 に勤労者は 40 代前半と同程度の平均消費支出額であるとの結果を得た。 キ ー ワ ー ド:疑似ミクロデ ー 夕、 高齢化社会、 消費動向、 横断研究 1. はじめに 65 歳以上の高齢者が総人口に占める割合(高齢化率)は平成 16 (2004)年 10 月 1 日時点において 19.5 切で あり[ 1 ]、 平成 28 (2016)年 10 月 1 日時点においては 27. 羽となった[2 ]。 平成 29 年版高齢社会白書[ 2 ]によ ると、 総人口が減少する中で高齢者が増加することにより高齢化率は上昇傾向にあり、 2036 年に 33. 測で 3 人にl人となり、 2065 年には 38. 舗に達して、国民の約 2.6 人にl人が 65 歳以上の高齢者となる社会が到来 すると推計している。 このように、 大きな割合を占める高齢者の消費動向がどのようなものであるか、 成 16 年全国消費実態調査」に基づく新疑似ミクロデ ー 「平 タを用いて分析する。 2. 分析方法 2. 1分析対象と定義 新疑似ミクロデ ー タから 「 勤労者以外の世帯( X02 = 2) Jを除く。 これは、 「 勤労者以外の世待」は収入 が調査されておらず、 実収入( Y003)が 0 円となっているためである。 511
以下、高齢者世帯を「世帯主の年齢が60歳以上(X09 >= 13) Jと定義する。 これは、高齢勤労者の収支 状況を調べるためである。 なお、集計用乗率は用いない。 2.2分析手順 (1)世帯主の年齢区分別に可処分所得と消費支出の額を比較する。 ここで、可処分所得とは 可処分所得=実収入(Y003)ー 非消費支出(Yl 79) で定義される。 いわゆる手取り収入のことである[3]。 (2)世帯主の年齢区分別に消費支出の構成割合を比較する。 (3)高齢者を「勤労者世帯(X02 = 1)」と「無職世帯(X02 = 3)」に分け、(1)、(2)の比較を行う。 3. 分析結果と考察 3. 1 年齢区分別の可処分所得と消費支出額 表1年齢区分別の可処分所得と消費支出額 i� 世帯塗手齢� ( 愛護f.. DI 24歳以下 可処分所得 Y040 消費支出 DI 25 ~ 29歳 可処分所得 Y040 消費支出 DI 30 ~ 34歳 可処分所得 Y040 消費支出 35 ~ 39歳 DI 可処分所得 Y040 消費支出 40 ~ 44歳 DI 可処分所得 Y040 消費支出 45 ~ 49歳 DI 可処分所得 Y040 消費支出 50 ~ 54歳 DI 可処分所得 Y040 消費支出 55 ~ 59歳 DI 可処分所得 Y040 消費支出 60 ~ 64歳 DI 可処分所得 Y040 消費支出 DI 65 ~ 69歳 可処分所得 Y040 消費支出 DI 70 ~74歳 可処分所得 Y040 消費支出 DI 75歳以上 可処分所得 Y040 消費支出 ' ハ込也記たね 下河原;t 第燭,J,ふさぎ 一中央種、ふ 最小砲をや 780 780 2355 2355 4330 4330 5410 5410 5697 5697 5979 5979 6586 6586 6306 6306 5771 5771 4933 4933 3683 3683 3382 3382 231749.94 191207.07 302475.98 243804.57 331261.78 263405.49 372859.57 280641.22 395982.11 308652.26 431054.35 362257.53 436556.37 370128.97 421741.63 350289.68 265452.81 309215.06 219428.71 270092.60 196111.06 243513.20 169078.07 219893.26 512 213874.50 165919.00 275735.00 219938.00 320657.50 240228.00 359619.00 260539.00 379142.00 281802.00 415242.00 323558.00 411447.50 325904.50 390974.00 304477.50 221247.00 264943.00 181185.00 238400.00 155970.00 210901.00 135042.50 187386.50 0 33624.00 -26549.00 17702.00 -113257.00 15352.00 -54698.00 3157.00 -52497.00 12969.00 -64478.00 14373.00 -257165.00 4460.00 -133754.00 9216.00 -325611.00 5453.00 -128734.00 12701.00 -616545. 16832.00 -162667.00 11181.00 。。 轟来雇、 1862714.00 1081554.00 10037116. 1525319.00 1553094.00 2035441.00 1944684. 1700795.00 3560369.00 2991416.00 5201727.00 4177899.00 2823127.00 2365916.00 10309163.00 3110781.00 2596767.00 14970240. 1938366.00 1324595.00 1688032.00 2438064.00 1041628.00 1469101. 00 。。 。。 。。
表2年齢区分別の勤労者割合 m 一加 問 一蹴 m 間 一問 問 一側 問 一捌 則 一 山 一問 問 一向 4.91 3216 14433 95.。《引 3382 55212 ます、 表lの平均可処分所得についてみてみると、 50代前半で最大となり、 その後減少する。 特に60歳 以降大きく落ち込むが、 これは60歳で退職する勤労者が多いため(表2)である。 次に、表lの平均消費支出についてみる。 50代前半で最大となるのは可処分所得と同じであるが、60歳以 降の減少幅が小さいのは可処分所得と異なる点である。 その結果、 60歳以降の年齢区分において平均消費支 出金額が平均可処分所得を上回っている。 ここから、 金融資産の取り崩しなどで不足分を補っていることが うかがえる。 3.2 年齢区分別の消費支出構成割合 図1年齢区分別の消費支出構成割合 24歳以下 25 ~·29歳 30-34議 35 ~·39窟 曜 4 日 45-49議 軍叫 舗陸 50-吾4歳 相 55-屯9歳 6日目喧4議 65-69歳 7日 ー-74禽 75議以上 日.2 日』 0.8 0.6 0.4 1且 消費割合 | 消費区分 図被服 固食料 図住居 固光鎮困家具 図保健医療図受遁・通信園教官函勧奨娯楽図号@他 50代前半からエンゲル係数は微増するが、 教育費と交通・通信費の割合が減少することにより、 教養娯楽 費割合の減少が抑えられている。 また、60代から保健医療費の割合が大きく婿加している。 513
3. 3 高齢者の勤労者世帯と無職世帯の比較 3. 3. 1 可処分所得と消費支出額の比較 表3可処分所得と消費支出額 可処分所得 消費支出 まず、 勤労高齢者世帯は表 l の 30 代前半と同程度の平均可処分所得であり、 平均消費支出は 40 代前半と 同程度であることがわかる。 次に、 高齢無職世帯は勤労高齢者世帯と比較すると半分以下の平均可処分所得 であるが、 平均消費支出は可処分所得を上回り、 金額は表 1 の 20 代後半と同程度である。 3. 3.2消費支出構成割合の比較 図2消費支出構成割合 筒鈴勤労者 われ凶 様 相 商館無職 0.0 0.2 0.4 0.6 日.8 1.0 消費割合 胃蚕室芽 B住居 園食料 圃光熱圃家具 圃被服 Iii保健医療図受通・通信田教官圏滋養鰻楽園その他 消費支出の割合についてみると、 高齢無職世帯の方が若干エンゲル係数は高くなっている。 交通・通信費 割合が少ない分教養娯楽費の割合は同程度である。高齢無職世帯の方が保健医療費割合が高くなっているが、 これは消費支出額が低いためであり、 金額ベースでは大きな差異は無いと推測できる。 514
4. おわりに 高齢化社会には大きな問題がある。 まずlつは財源の問題である。 平成28年度 一 般会計歳出のうち、 一般 歳出(基礎的財政収支対象経費から地方交付税交付金等を除いたもの) における社会保障関係費の割合は 55.0唱にもなる。 また、 一 般会計歳入のうち、 4害lj弱は将来世代の負担となる借金に依存している[4]。 もうlつは年金の世代間格差である。 これは、 公的年金において給付負担率(年金給付総額 / 保険料負担 総額)が世代ごとに大きく異なるものであり、 「 不公平である」と考える若年世代も少なくなし、[5]。 本稿は横 断的研究であり、 元デ ー タが時系列デ ー タではないため触れることができなかったが、 これは今後の課題と する。 解決の 一 助となるかもしれない提言が日本老年医学会[6]からあった。これは、近年の平均寿命の延伸と 「若 返り」現象を考慮し、 75歳から 89歳を高齢者、 90歳以上を超高齢者とする提案である。 消費意欲が旺盛で ある高齢勤労者が増えれば、 税収と消費支出の増加が見込める。 、 我が国は世界で最も高い高齢化率であり、 世界に先駆け高齢化社会におけるビジネスモデ ルを構築する良 い機会でもある。 また、 生産年齢人口の減少に対しては、 AI ・ ロボットを活用し、 労働生産性を向上させる ことも可能である。 問題は山積しているが、 この社会の大きな変化をチャンスと捉え、 立ち向かうことが肝要である。 参考文献 [1]平成17年版高齢社会白書 く http://附w8.cao.go. io/kourei/whiteロ叩er/w-2005/zenbun/17index.html> [2]平成29年版高齢社会白書 く http://www8.cao.四.io/kourei/whiteoaoer/w-2017 /zenbun/29odf index.html> [3]平成26年全国消費実態調査用語の解説 く htto://www.stat. go. io/data/zensho/2014/kaisetsu.htm> [4]財務省平成28年度 一般会計予算(平成28年 3月29日成立)の概要 <httos://附w.mof. go. io/tax oolicy/summary/condition/002.htm> [5]みずほ総合研究所年金の世代間の給付と負担の差 く httos://www.mizuho-ri.co. io/oubl ication/research/odf/insight/01151120. odf> [6]日本老年医学会高齢者の定義と区分に関する、 日本老年学会・ 日本老年医学会高齢者に関する定義検討 ワ ー キンググル ー プからの提言(概要) <httos://www. ion-geriat-soc. or. io/口rooosal/odf/definition 01.odf> 515
付録1. 規定課題用SASプログラム
*規定課題共通.
制etD1r =.平社内研修平T側p平S品S_09_デ - 11
IibnameData "&Dir.平01_Raw" ;
proc format ;
va Iue X02_01F
”
”
1 " 勤労者
”
2 = ”勤労者
” 以外
3 = 無職 ’
=
”
va Iue X02_02F 1 = ”"勤労者
”
2 =” 勤労者以外
”
3 = 無聡世帯 ;
”
”
”
value X09F 5 = ” 24歳以下 ”
6 =”25~29歳 ”
7 = ” 30~34歳 ”
8 = 35~39歳 ”
9 = "40~44歳 ”
10 = "45~49歳
”
”
11 = ” 50~54爺 ”
12 = ” 55~59歳 ”
13 = ” 60~64歳”
14 =” 65~69爺 ”
15 = ”70~74歳 ”
16 = 75歳以上 :
*
M
4’a
H
「
内α 命α のa
数 数
内‘u
のa
宮市ぽ
留…間
釘…抑
大四失 四小日qr
最3中 1最 1 =
= 分類 ・
第
n第
=HU区分”・
= = = m
e。 帯帯体
vA 」日 na 一
a5 &E
aM 白。
聞一
何」
m
J1mm 一凶 世世全
aa
-a
vaE
U
.
u
vu
vu
vu
vu
H
41内42・
省a
&目
肉H
----
..
-
1 = ” 単身世帯 ”
2 = ” 夫婦のみ
”
3 = ” 二世代
’
4 = ” 二世代w(ひとり親γ
5 = ” 三世代
6 = ” その他
”
7 = 全体 ;
「r
U
曹
命‘凶
マ
Mu
、
+
.
伊。
aM
v
.
削町町
va Iue ltemF
ods Iisting close :
ods rtf file =ロut columns = 2:
proc tabu I ate data = WORK EX01 01 format =
comma7.
class X02 X09 :
…
”
”
table
(X09='"' al I= 合計勺, (X02 * n= ) (al I= 合
’”’
"
n= )
計
”
”
”
/ misstext = O" box = 世帯主の年齢 rts =
8:
run
”
”
value X11F
”
”
value XF 1 =” 勤労者世帯
”
2 = ” 勤労者以外の世帯
”
3 = 無” 職世帯 ”
101 =” 単身世帯 ”
102 = ” 夫婦のみ
”
103 =” 二世代
”
104 = ” 二世代“(ひとり親)
105 = ” 三世代“
106 = ” そ” の他
;
200 =
”
“
value GrainF O = 件数
”
1 = "米 ”
2 =勺tン
”
”
3 = ” めん類 ”
4 =’ 他の穀類
’
5 = 全体(首)
run;
*10万人比集計用のWEIGHT算出:
data work. WEIGHT (keep = weightl weight2) ;
set 日ATA.Zensho2004gijimicro (keep = weight) end
= EOF ;
Weight_T + weight ;
if EOF = 0 then delete
else if EOF = 1 then do
weightl = 1 ;
weight2 = 10 紳 5 / Weight_T
*規定課題01
制et PgName =規定課題一1 ;
filename Out &Dir.半04_0UTPUT戦PgName..rtf
OJ?tions”nofmterr mprint nodate pageno=1 ;
t1!1e1 規定課題 1)年齢階層 ・ 世帯区分別 クロス表
data work. EX01_01
setDATA. Zensho2004gijimicro (keep = X02 X09
Weight);
”
”
”
w
label X02 = 世帯区分 X09 = 世帯主の年齢 ;
format X02 X02_01F. X09 X09F.
if _N_ = 1 then set WORK.舵IGHT ;
run
value XOBF 1 = ” 男 ’
2 = 女\
”
end :
run
proc tab日late data = WORK.EX01_01 format =
comma7.
class X02 X09 :
var Weight
”
’'"
”
*
table
(X09= ” al I=” 合計 ), (XQ2
キ wei§ht=
’
’
sum= 1 (al I= 合計
*
sum=
*weight=
”
”
” ”
=
/ misstext = 0 box
世帯主の年齢 rts =
8
weight weight2
run
ods rtf close
ods I isting :
*規定課題02 :
引et PgName =規定課題一2
”
”
fi Iename Out &D1r.平04_0UTPUT渦PgName. rtf ;
options nofmterr mprint nodate pageno=l
orientation
= Iandscape :
"
titlel 規定課題
2)世帯分類別 ・ 世帯区分別・世帯主
”
性別クロス表 ;
data WOI祇EX02_01 (keep = X02 XOB Xl 1 Weight
Weight1 Weight2)
setDATA.Zensho2004gijimicro
if _N_ = 1 then set WORK.Weight
fo『mat X02 X02_02F. XOB XOBF. X11 X11F.
run
ads Iistirni close
ads rtf file = out :
proc tabu I ate data = WORK. EX02_01 format =
comma?. ;
c Iass X02 X08 Xl 1
var Weight ’"'
”
”
山’
=
table
(X11="” al I= 合計 )* ”weight
*
”
”
”
"”
=
I= 計 )al I= 合計
sum= , X02
*” (XOB="" al
”
”
misstext= V box= 世帯分類 :
weight weight2 ;
run
ods rtf close
ods Iisting ;
ホ規定課題03
引et PgName =規定課題_3 ;
”
filename
Out "&Dir.¥04_0UTPUT渦PgName. rtf ;
”
title 規定課題
3)パン支出金額についての各種の統
”
計グラフ ;
data WORK.EX03_01 (keep = No Y044 Weight Weight1
516
/
Weight2 Count Log Va I )
set DATA. Zensho2004gijimicro :
Category = I ;
偽
if Y042 = 0 then
PR = 100 朱 Variables[[] / Y042:
*世帯区分;
Item = 1 : X = X02 : output :
&L
MU
例UF
ゐL
MM
O
--
.- )
ー
みL
U +
nv
&E-aa-τ
Huaa守
内U 内Huv
VE
-- (
nu
H副
輔
-- - -
aa aa
uv uv
-
-
・
-
z
AU 唱E
r
eEeRs
内U 内U
n
aL
HM
’L
nu o
i
l
=
-
-
Count = 1
if _N_ = 1 then set WORK. Weight :
do 1 =1 to dim( Variables ):
us
array Variab I es [キ] Y043 Y044 Y045 Y046 Y042:
畑
CountDummy = 1 :
RedefinedWeight = Weight* Multiplier:
nu
+L
nH
Hu
nu
nU
1f _N_ = 1 then do:
set Wei,ht:
M�ltipl 1er = 1e5 / TotalWeight:
end:
Dn
nr
data work. EX04_01 :
set Data. zensho2004g i j imicro
retain Multiplier:
-
proc summary data = Data. zensho2004gijimicro :
var Weight :
output out = Weight( keep = Tota I Weight ) sum =
Tota!Weight
run
・
,
*規定課題4
制et PgName =規定課題
_4 :
fi I ename Out ’'&Dir. 平:04_QUTPUT渦PgName.. rtf"
options nofmterr mprint nodate nonumber
orientation---portrait I s= l55 ps=53:
-
。
uE
VE
nu
es
au
+L
aa - -
nU &L
』H
VA s- sl
title w規定課題3)パン支出金額についての各種の統計
グラフ(3)"
proc sgp I ot data = WORK.以03_01 :
histogram Val
的ere log = 1 :
run
ds rtf close :
ods I isting :
m
ea
-M
’E-
proc sgp I ot data = WORK.以03_01 :
hbox Val
愉ere log = 0 :
run
本全体;
Item = 3 : X = 200 : output :
end
・
,?’
内U
,,1
es
-E--
)
”
mMu
TE
。
ds I istim! close :
ods rtf file = out ;
title w規定課題3)パン支出金額についての各種の統計
グラフ(1)••
’
proc print data” = EX03_03
noobs“ I abe I 叩I it= γ;
”
label
STAT =
統計量 COL1 = パンの支出書金額
n
”
”
(円) COL2 = 1を加えた金額の非常用対数
format �TAT $SiATf. COL1 cαllll1a7. 0 COL2
cαllll186. 3 :
run
*世帯分類;
Item = 2 : X = X11 + 100 : output :
m”
&目』目伺uw
ae&E』
阿Haa
nv a-m剛
VE- -
ae
aga-
n”
lunanu
auw HU
RHH FE
-
-
h
t)
’EE
=
HU
mw
nuam
TE
の淫 ea a
』
T
M
nH
』の‘u
WAHF炉
・an
’
凶R
-
-
且
AHq
LR M問n
vua
mw
=eb
-
-
--』
-e
nuv
aw
aa m 刷 m
w
+’・町 周
aunH
gnu
am-
,‘、TI
n
AE-
Su‘
w
u
a a’
RM
E U as
(
s -
=
mmw
,LE uFEzn ra e
&
・・
・-e
∞山間
的n
vE内U MM
w” VE
mv
-
。0一-
-
proc means data = WORK. EX03_01 noprint :
var Val We!ght :
class log .
weight Weight2 :
output out = WORK. 臥03_02 (drop = _TYPE_ _FREQ_
where = (log · = . ))
max = Va I _max
q3 = Val_q3
median = Val_med
ql = Val ql
min = VaT_min
mean = Va I _mean
sum = Val_sum Weight_sum :
run
proc means data = work. EX04_01 noprint nway :
class It 師 X Category :
var PR :
weight RedefinedWeight :
output out = work. EX04_02
冊目『下噌eanPR :
run
proc means data = work. EX04_01 noprint nway :
where Category = 5 :
class Item X :
var CountDummy :
weight RedefinedWeight
output out = work.以04_03
sum=SumCnt :
run:
data work. EX04_04 :
set
work. EX04_02( in= lnl )
work. EX04_03( in= ln2 )
length ValueC XC $100 :
if lnl then do:
ValueC = put( round( MeanPR, le-1 ). 12.1 L l
end:
else if ln2 then do :
Category = 0 :
ValueC = put( round( SumCnt. 1 ). comma12. L )
end:
ldlabel = put( Category, GrainF. )
proc sort :
by It 釧 X Category :
run
proc transpose data = work. EX04_04 out =
work. EX04_05 prefix=C :
by It倒1 X
id Category :
idlabel ldl直bel
var ValueC :
run
ods I istine: close :
ods rtf file = out bodytitle style『Journa I Custom
=no :
nogtit I e startpage
"叩
ods escapechar= ;
title "4)世轡区分別および世帯分類別の穀類の支出金
”
額についての犠成比 ;
proc report data = work.以04_05 nowd sp I it=" • :
column
Item X
co ( .構成比(首) .R/RTF ”平brdrb平brdrs平brdrw1·· Cl
- C4 1 白;
”
”
def 川e It釧/ 項目名 order order=interna I
517
set work.日:05 02 end = EOF;
if _N_ = 1 then set work.CUM;
ce11width=2cm} ;
sty Ie(co Iumn)=" fj ust= Ieft
”
define X / 符号内容 order order=interna I
style【column)= {just=left cellwidth=3. 5叩];
define CO - C5 /
style(column)= {just=right cellwidth=l.5叩];
c9mpute before IT聞/ style = [ font_size = 0. 1
C冊】
endcomp;
compute after / sty I e
endcomp;
=
I font_size
=
0.1 cm I
retain Integral Y001YR Weight_PR O ;
胃eight_R = Weight_C / Weight_T ;
YOOf_R = YOOl_C I YOOU;
Plot_E = Weight R;
Integra I + ((Y001YR + YOOl_R)本(Weight_R Weight_PR)事0.5);
vo91 PR = Y001.,.R;
Weig t_PR = Weight_R;
for闘 t It側 ltemF. X XF.
run.
ods graphics / height=5cm width= ) 5叩;
proc sgplot data = work.EX04_02崎 ;
where Item = 2 and Category = 5;
hbar X / response=判官anPR group=Category;
format X XF. Category Grain.
label "
”
X = 世帯分類
"
”
比
MeanPR = 構成
”
’
�ategory = 穀類分類 ;
run
ods graphics / reset;
ods rtf c Iose startpage = yes;
ods Iisting;
ホ規定課題05;
引et PgName =規定課題_5;
filename Out "&Dir.初4_0UTPUT渦PgN釧e..rtf" ;
options" nofmterr mprint nodate pageno = 1 ;
ー
titlel 規定課題 5)世帯分類耳IJのロ
レンツ曲線およ
"
びジニ係数{乗率使用)
proc sort data = DATA.Zensho2004gjjimicro (keep =
weight Xl1 Y001)
ut = work.EX05 01
by Y001;
run
。
蜘陣。ro Lori相官1;
首do i = 1首,to 7 ;
data work.臥:os 02 work.CUM
(keep = Wei ht_C YOOl_C
ren飢昌= (Weight_C =
=
Weight_T Y001 C YOOl_T ))
set work.臥05_01
事if &i A= 7事then (1川1ere = (X11 = &
end = EOF;
output work EX05_03 ;
if 巨Oド = 1 then do
Gini = 2 * (0.5 - Integral)
GiniC = put(round(Gini, le-�). 7.2士}
首if &i = 7首,t向e円 XJ1 = 7 ;
output work Gini_&i;
enロ
run
事if &i 7 4首then %do;
ds Iistimi close;
ods rtf file = out;
proc sgp Iot data = work.EX05_03 ;
s⑤ries x = Weight_R y = Y901-R /
= ( ロattern=solid color = black)
Iineattrs
-
nam�= LOR印 zseries x = Weight_R y = Plot_E /
Iineattrs = ( pattern=shortdash co I or =
black)
“
”
na閑= EQU札 ;
”
key Iegend "LORENZ" "EQU札 ;
=l offs蜘ir曲。ffse旬以=O
xaxis mir時間ax
M
“
abel= 世帯累積比
yaxis min=O
max=l offsetmin=O offse旬1ax=O
"
abelよ所得累積比
run
覧end;
弘end;
百四end;
。
加。ro Lor� :
data work.日iniC;
set
首do i = 1略to 7
work.Gini_&
也end;
Weight_C + weight;
YOOl_C + (Y001 Weight);
run
輪開,nd
output work.EX05_02;
世LorBIIZI
世LorBIIZ2;
*
if EOF = 1 then do;
ou!put work.CUM;
end
run
data work.EX05_03 work.Gini_&i (keep = X11
GiniC)
proc print data” = work.GiniC
noobs” label; M
”
label X11 = 世帯分類 GiniC = ジニ係数
fo「mat Xl1 X11F.
run
ods rtf close;
ods Iisting;
518
付録2. 1) 2) 規定課題図表 年齢階層別・世帯区分別クロス表 765 18 15 798 1,729 10 21 1,760 2,289 157 66 2,512 4,314 151 57 4,522 4,223 511 107 4,841 6,441 480 87 7,008 5,217 728 193 6,138 7,420 824 153 8,396 5,492 [ 1,076 205 6,773 7,611 1,145 247 9,004 5,702 [ 1,305 277 7,284 7,739 1,479 244 9,462 6,194 [ 1,797 392 8,383 8,072 2,085 508 10,665 5,682 [ 2,221 624 8,527 7,697 2,725 893 11,315 3,237 2,226 2,534 7,997 4,208 2,785 4,160 11,153 1,343 1,743 3,590 1,487 2,213 6,374 10,074 469 I 1,197 3,214 4,880 459 1,652 6,124 8,235 166 I 940 3,216 4,322 207 1,325 6,873 8,406 13,919 14,433 69,131 57,386 16,874 25,741 100,000 世帯分類別・世帯区分別世帯主の性別3重クロス表 10,710 1,030 867 1,897 8,151 20,758 8,841 4,293 81 4,375 11,026 45 11,071 24,287 378 27,645 6,190 51 6,242 32 3,295 37,182 1,543 [ 2,421 3,963 934 430 1,364 671 1,303 1,974 7,302 384 5,340 2,390 118 2,508 638 160 798 8,646 234 887 413 75 488 278 174 452 1,826 49,439 7,947 57,386 15,250 1,623 16,874 18,340 7,401 25,741 100,000 324 654 519 2,463 5,688 3,264
3) バシ支出金額についての各種の統計グラフ 最大値 51,776 4.714 第3四分位数 3,135 3.496 中央値 1,811 3.258 第1四分位数 962 2.984 最小値 。 平均値 2,368 3.184 件数 100,000 100000 0.000 規定課題3)パン支出金額についての各種の統計グラフ(1) 包溜DX) 10000 20000 0 30000 ・0 。 40000 Val 規定課題3)パン支出金額についての各種の統計グラフ(3) 4 ι λMV lv 、 。。 Val 520 。 αコ 50000
4) 世帯区分別および世帯分類別の殺類の支出金額についての構成比 構成比(首) 項目名 世帯区分 世帯分類 符号内容 ハ.ン 他の めん類 件数 米 勤労者世帯 57,386 36. 0 37. 6 22. I 4. 3 JOO. 0 勤労者以外の世帯 16,874 44. 9 31. 0 19. 4 4. 7 100. 0 無職世帯 25,741 52. I 26. 7 15. 8 5. 4 100. 0 単身世帯 20,758 33. 8 37. 7 23. 0 5. 5 100. 0 夫婦のみ 24,287 49. 5 28. 9 16. 8 4. 8 100. 0 二世代 37,182 39. 0 35. 9 20. 8 4 3 100. 0 二世代(ひとり 親) 7,302 44. 9 31. 6 19. 0 4. 5 100. 0 三世代 8,646 46. 0 30. 5 19. 7 3. 8 100. 0 その他 I,826 44. 8 30 目 5 20. 4 4. 3 100 目 。 100,000 41. 6 33. 7 20. 0 4. 6 100. 0 全体 毅類 全体(弛) 単身世帯 尭婦のみ 繁 二世代 主二世代(ひと明 三世代 その他 』ニ旦己 ・- - 一国 一 i i i 比 一回 一 成 一ー 一 構 一図 一 額一 - 分一 一 一類 一 一般 一 5) 世帯分類別のローレンツ曲線およびジニ係数 単身世帯 I o.34 視定課題5)世帯分額百,,のロ ー レンツ曲線およびジエ係散(乗率使用} 1.0 08 ,, 6 0 4 0 封臣訴SE ,, , , , ,, 夫婦のみ I o.31 , 二世代 I 0.26 ,, . 二世代(ひとり親) I o.35 三世代I 0.21 02 。。+ふ- 00 。 .2 その他 I o.33 0.4 0.8 0.6 ,0 世主僻Ill由比 I -一ーー刊Cl R • 刊, El 521 全体 I o.33
ストックの視点を含んだ世帯の消費行動の特徴抽出 参加カテゴリ ー :ニュ ー カマ ー チ ー ム名:野毛坂123 メンバー:山川雄也、 松本光右、 三ツ井誠 株式会社 浜銀総合研究所情報戦略コンサルティング部 要旨 投資行動の有無を基準とし、 消費行動にどのような違いがあるかについて、 「 疑似ミクロデ ー タ(平成16年全国消費実態調査)」を用いて調査 ・ 分析を行った。 その結果、 1. 投資無の世帯のほうが、 投資有の世帯に比べて生活必需消費率が大きくなる 2. 収入が大きくなると、 投資有無による生活必需消費率の差は小さくなる という結論に至った。 キ ー ワ ー ド: 疑似ミクロデ ー 夕、 全国消費実態調査、 投資行動、 ストック、 フロ ー 1背景と目的 世界的に、貧困層と富裕層との格差については、問題視されて久しい。 国家内での格差を計る 指標にジニ係数がある。 日本におけるジニ係数の推移は、年金などの国家の再分配機能を考慮し た値は、 横ばい傾向となっている一 方、 再分配機能を考慮しない、 所得のみを考慮した値(” 当 初所得 ” による値)については、 上昇傾向が続いている[1) 0 通常、 消費行動について考察する場合は、収入額・支出額といった、 フロ ー に着目することが “ ” 多いが、 今回われわれは、資本( ストック )の視点を取り入れ、資本の有無が消費行動にどの ような違いをもたらすかの検証を目的として調査 ・ 分析を行う。 なお、 分析で用いる疑似ミクロデ ー タのもととなる、 平成16年度全国消費実態調査は、 スト ックについての情報が乏しいため、 その代替として投資行動の有無をストックの有無と置き換 え、 消費行動の特徴抽出を行う。 2分析概要 本章では、 背景と目的を踏まえ、 世帯のストック有無が世帯の消費行動にどのような影響を 与えるのかについて、 擬似ミクロデ ー タを用いた分析の概要を述べる。 本分析で用いる疑似ミ クロデ ー タは、 全国消費実態調査に基づく世帯単位の世帯のフロ ー に関するデ ー タであるた め、 世帯のストックに関する情報を得ることは難しい。 そこで、 以下に定義する投資行動の有 無フラグを生成し、 これを世帯のストックに関する情報の代替として扱うことで分析を行う。 1 522
・ ・ 投資有無の定義 投資フラグ=l (投資行動あり) :「Y016:財産購入」 「 Y029:財産収入J 「 Yl95:有価証券 売却」 「 Y201:有価証券購入J のいずれかの金額が0円超 投資フラグニ0 (投資行動なし): rvol6:財産購入J 「 Y029:財産収入」「Yl95:有価証券 売却」「Y201:有価証券購入Jの全ての金額が0円 以下では、 上記の投資有無が世帯の消費行動にどのような影響を与えているかを見てし、く。 具体的には、年間収入 に対する生活必需消費率、 投資有無によってどのように違うのかを分析 する。 ここで、 生活必需消費率は、 10大費目の消費額合計に対する生活必需費目の消費額合計 の割合と定義し、 さらに10大費目および生活必需費目は、それぞれ以下で説明する。 ・ ・ 10 大費目および生活必需費目の説明 10大費目 「食料J 「 住居J 「光熱・水道J 「家具・家事用品」 「被服及び履物」 「保険医療J 「交通 ・ 通信J 「 教育J 「 教養娯楽J 「その他の消費支出」 生活必需費目 「 食料J 「 住居」 「光熱・水道」 ついで、 分析対象について述べる。 「 X02:世帯区分jの 「勤労者以外の世帯」および 「無職 世帯」は、投資の有無にかかわらず 「 勤労者世帯」の収入や消費行動と差異があると考えられ るため、今回の分析では 「勤労者世帯jのみを分析対象とする。 以下では、具体的な分析手順について説明する。 まず擬似ミクロデ ー タの中から、 「 X02:世帯 区分Jの 「 勤労者世帯」に該当するデ ー タに絞り込み、先に述べた投資有無の定義に従ってフラ グを立てる。次に、投資有無でデ ー タを分割し、 さらにそれぞれのデ ー タを世帯の年間収入(変 数名:YOOl )に応じてカテゴリ ー を割り振る。 世帯の年間収入(以下、 収入と呼ぶ。)に関する カテゴリ ー の設定基準については表l の通りである。 その後、収入カテゴリ 一 、および投資有無 別に生活必需消費率の平均を算出し、 2群の平均の検定を行う。 これにより、世帯収入の変化に 対する生活必需消費率の変化が、 投資有無によってどのように違うのかを見る。 カテゴリ ーNo. カテゴリ ー の内容 投資有の件数 投資無の件数 収入が0 ~ 400万円の世帯 471件 7 61 2件 収入が 収入が500 ~ 600万円の世帯 470件 4856千牛 646件 4846{1牛 714件 4176{1牛 5 収入が600 ~ 700万円の世帯 収入が700 ~ 800万円の世帯 665件 36041'牛 6 収入が800 ~ 900万円の世帯 569件 2904件 7 収入が900 ~ 1000万円の世帯 461件 8 1445件 収入が1000万円以上の世帯 表1:各カテゴリ ー の説明と件数について 2 3 4 400 ~ 500万円の世帯 2 523 2040件 5 3 o H牛
3分析結果 本章では、2章で述べた分析結果を提示する。まず、表1はカテゴリ ー 別に投資有無ごと の平均生活必需消費率を算出した結果である。この結果、年収700万円未満のカテゴリ ー は投資有無で生活必需消費率に差があると考えられる。 08_1ぽ泊万円以上 回投資有り 079曲万円町1αlO万円 国8剖万円~9曲万円 ・投資無し 幽圃画面白姐圃圃盟国盟副圃幽園田園田園田園園田園圃園田直面歯菌薗幽幽盤鑑留置醐瞳L よ 05_7曲万円目醐万円 目n � .._ooonPJ-100 03 500万円~600万円 02 400万円-s田万円 01 0万円“4田万円 10 15 20 生活必需消費率{崎) 25 30 45 40 35 50 図1:各カテゴリ ー の投資フラグ有および無のデー タにおける生活必需消費率の平均 続いて、収入カテゴリ ー 別に、投資有無で生活必需消費率の平均が等しいかどうかについて、 t検定により評価した結果を以下に示す。 ~ !元手:IrJ=玩取瓦0�4函O 万両To言語裏一司チゴrJ一言�·λ - 400� 5()0:Jj両面詰菓1 i強方亙二二三ゴ空亙二!房輔孟コ扇左そご �: -1平瓦二(轟轟孟] 有 41.0632 ! 18.8244 l有 ! 38.4434 i 15.4383 1 瓦二二二;::::4-1:§§Q�+函墾ご二 j 41.画二両 - 一 i蚕語二三てご三頑三7画�=二[杢量一二三=---- 1�甑: l嘩二二i [P<>些d l坦坦恒也一一-- � h叩1 - j く型Ql i����gui_:_ i Pooled J Eg� al _ Ji:!>_QQ_1_ f <&QQl一平山閣恒 凶明止一陣仰--! L i -� L f l電極士二二一ご::::二�: 1.·:二二二雇通瓦二つ;二二;: :二1 l子量一 [i:aj<:l!!clL J 混血- 一一一一軍量一一一一一- 凶瞳一一 一一 i Folded F O.OQQ21 旦g]�5l_� i 表2::カテゴリ ー 1および2の検定結果 3 524 i
l
ー
カテゴリ 3{収入509 ~ 6()()万円)の結果 カテゴリー4J収入�00 ~ 1_qo万円)の結果
l
!平坦
l標準偏差投資フラグー一一一!宰均
投資空ラゲ
l壁準畳差
!有
36.ssn: 14_9211有
35.5075 15.1661
無
39.503 16.7877無
37.9531 15.2249
p·値
く.Q001
3く.0001
手法
tF>_ool_ed
:�c3tt_erth_waite �-
分散
Equal
iリnequal
等分散性
手法
Folded F
p値
0.0001 1
手法
P<>oled
i Satterthwaite
分散
Equal
'_l.Jnequal
等分散性
手法
·Folded F
i:>値
p値
く.0001
く.0001
0.903
表3:カテゴリー3および4の検定結果
カテゴリー5 (収入19.9 ~130()万円)の結果| カテゴリー6(8CJQ ~�()0万円)の結果
投資7ラゲ
ー←|平均
!標準偏差投資コラ伏 - -- - �平均
標準偏差
;
'
35.51£!'7 1�.21?4有
14.5438
J3.4348
有
35.83Q7. 1_4,5§46無
J1,8154- 14.2504
無
手法
Pooled
Satterthwaite
等分散性
手法
Foldecl F
J害去
i:Equal
分散 �- :El債-
0.5371 ]Pooled
0.5659 ! Satterthwaite
Unequal
p値
等分散性
手法
,Folded F
0.000?
p値
二分散
_1:qual
LJnequal
p値
表4:カテゴリー5および6の検定結果
Q.0122
0.0136
0.5188
カテゴリー7(f:1QO ~ 100()万円)の結果 1 カテゴリーs (収入J ()0()万円以上)の結果
投資フラグ
平均
J標準揮差投資フラグ
ー平均
嬰墾宣言差
有
32.935� 13.2821有
31AJ37-!! 13.5373
無
33.54?4 14.1874 無
31.749 14-.0381
手法
F>ooled
Satterthwaite
等分散性
手法
• F'olcled F
分散
Equal
-Unequal
pf直
0.0775
同直
l手法
0.319 :Pooled
0.2994, Satterthwaite
筈分散性
手法
Folded F
表5:カテゴリー7および8の検定結果
散
1分
Equal
Unequal
p値
十(Pii直
I
Q.4634
0.4!542
0.0877
なお、上記の検定は、カテゴリー別の投資有無のデータがそれぞれ正規分布の仮定を満たして
いるかQ-Qプロットによって確認、している。
4
525
さらに、収入カテゴリ ー ごとに生活消費率の分布の事離具合をカルパック ・ ライブラ ー 情報量
で確認する。2つの正規分布聞のカルパック ・ ライブラ ー 情報量は以下で表される。表6の結果
より、年収0 ~ 400万円のカテゴリ ー 1の 一 番カルパック ・ ライブラ ー 情報量が大きく、投資
有無の影響が強い結果となった。
【カルパック ・ ライブラ ー 情報量の定義1
一
σ2
\
1 { σL ムー
M士 µ_1/!f
/
」一一
KL(投資有|投資無)=一一+
�
100-,,-1
-' Iσー
σー
σ-
I
- \
点宥
焦
点智
I
/
μ 芳:投資有りの生活必需消費率の平均、σL:投資有りの生活必需消費率の分散(投資無しも問機)
iKL情報量 |
にカテゴリ ー
喧�1_(収�Q竺QQ_2;LP3� j __Q旦9_illi
直圭主立三室盟-�400 ~ 500万円)
_L_Qfil_担問
~
!旦旦喧1Q11
直壬主止=�-1収」担旦0 600万円)
直壬出土空哩AQQ_Q_:--盟旦亙旦J一一一)_旦型Q�6i
jカテゴリ ー 5(収入700 ~ 800万円)
型型竺§__(収入800~900万円)
l カテゴリ ー7(収入900 ~ 1000万円)
-
杢立') 8(収入1000万恒盟主上
2
表6: K L情報量
• 0.0079171 :
J旦立I_3_4_i
I 0.00948!}7 f
! 0.0009073 1
4考察
図1からすべてのカテゴリ ーで投資有の生活必需消費率の平均は、 投資無の平均と比べ
て低いとし、う結果となった。しかし、年収が高くなるほど、投資の有無による生活必需消費
率の違いに差がみられなくなる。 一 方、年収の低くなるほど、投資有無による生活必需消費
率の差異が顕著に表れる。特に、年収700万円未満で、投資フラグの影響が出ているよう
に見受けられる。なお、統計的検定でも同様の結果が確認できた。また、年収カテゴリ ー ご
とに投資有無別の生活必需消費率の分布の事離度をカルパック ・ ライブラ ー情報量で定量
化し、年収が 一 番低いカテゴリ ーである0 ~ 400万円で 一 番傘離しており、年収が低いと
ころでより投資有無が影響を与えていることが分かつた。
以上より、年収だけでなく、 ス トックを合わせてみると、低年収世帯のより苦しい生活状
況が見えてくる結果になった。
5参考文献
[1]平成26年所得再分配調査報告書、厚生労働省政策統括官(総合政策担当)
5
526
付録:規定課題図表 1)年齢階層別 ・ 世帯区分別クロス表 集計の前に、 用いた疑似ミクロデ ー タのX02 (世帯区分)、 X08 (性別)、 X09 (世帯 主の年齢)、 Xll (世帯分類)、 の各項目に対してフォ ー マットを設定する。 表 1 左側については、 所定の様式の通りとなるよう、 tabulate プロシジャを用いて 集計を行った。 表 1 右側についても、 tabulate プロ 、ンジャを用いて集計を行ったが、 10万分比での集計を行うため、 ” (weight/全weightの和) * 100,000” ー を疑似ミクロデ タの各オブザベ ー ションに対して計算し、 10万分比集計用のウエイ トとして使用した。 結果は下記の通りである。 笹管区分 合計 世帯区分 動労者 勤労者以持 舞庖 ’‘ N N 制 ・2 7笛 18 15 7掴 �·~宮輔邑 2.2田 157 66 2.512 伺_so-’由良 4.2勾 511 107 4,841 5.217 7:ぉ 1!担6,1担 1,076 宣明l 6,m 回」声s--唱婦量 。5_ 4・ 5.492 06_1陪·-491\'i 5,70宮 ト一一一一一 ー -· 』一一一 1,3時 277 07_50-54ll'i 6,194 1,797 期i 8,3田 個.弱~59Q量 5,関空 2,221 624 8.527 05_60-’64ll'i 3$7 2,226 2.534 7,997 回』E『個畠 。,7_70-74a 1,343 1,7,相 3.5駅引6.676 4曲 1,197 3.214 i 4,880 国ー布怠肱上 1田 940 3.216 [ 4,322 合計 40,779 舞轟 世智主@年舗 世智主@年齢 。1�4量till下 合計 勤労者 勤労者以外 1,729 I 01�4食以下 担!�·司包喰 。a_ao- 34ll'i 。4_35-a町議 。5_4o-制怠 ’ 。 7_5o-54怠 08_55·内弔叫議 。5_60-制禽 帽」声富市個虫 。7_7炉’74重量 08_古車以上 1,7曲 57 4.522 6刈, 1 480 自7 7β拍 7.420 I 8宮4 回 7,6111 1.145 :47: 」 踊 : 〈)04 , 1.479 244 I 9凋2 2,085 508 10正来志 7,697 2.725 893 11,315 4,2畑 '2,785 則前 11.153 1,487 2.213 6,374 10,074 459 1,笛2 6,124 8,235 宮07 1,325 6,873 8.4崎 57,お6 合計 13,919 14,433 国,131 21 151 7,7391 oa_,店-49ill 7.284 10 4,314 I 16.874 25,741 100,000 表1 2)世帯分類別 ・ 世帯区分別世帯主の性別3重クロス表 所定の様式の通りとなるよう、 tabulate プロシジャを用いて集計を行った。 結果は 下記の通りである。 世穆区分 勤労者 第 女 合計 動労者以外 計 男 古E 舞書量 主E 計 男 2.463 5,688 計 世管分量置 単身世帯 6,503 4,207 10,710 1,030 867 1,897 日,151 20,75自 夫錫@み 8,517 324 8,841 4,293 81 4,375 11,026 45 11,071 24,2宮7 379 27,645 37,18空 二割宅 27,267 6,190 51 6,242 32 3,295 二割電〈ひとり組〉 1,543 2.421 3,963 934 430 1,364 671 1,303 1,974 7,302 三世代 4,956 394 5,340 2,390 119 2,50自 639 160 799 自,646 654 234 8日7 413 75 4関 279 174 452 1,826 そ@他 合計 3,264 49.439 7,947 57,386 15.250 1.6沼3 16,874 18,340 7,401 25,741 100,αm 表2 6 527
3)パン支出金額についての各種の統計グラフ ①所定の様式となるよう、 tabulate プロシジャを用いて集計を行った。 結果は下記の 通りである。 偉大館 ma四笛値按 ,tン@支畠金額{円〉 唱を加え1己金額@常用対猿 51,776 4.714 S,039 S.483 中央値 1,689 S22日 858 。 2.934 100.000 100,000.000 箆唱四分位猿 邑小錨 件数 0β∞ 空.284 平均値 S.1S7 表3 ②sgplotプロシジャのvboxステ ー トメントを用いて箱ひげ図を描いた。 結果は下記 の通りである。 費彊岨・ 40000 も0000 図3.1 ③univariateプロシジャのhistogramステ ー トメントを用いてヒストグラムを描画し た。 結果は下記の通りである。 ,。 骨布 pies 4 6 4 λ牟lt I l_ o If 。D4 CUB 0..52 D.75 一 fす!l 11" ’.. u同’必.’,浬 t’.且0 2.44 ta&回..’83.401143.BS削2 ,U8岨0 1�/JIえた傘姐岬常照鋪 図3.2 7 528
4)世帯区分別および世帯分類別の穀類(米、 パ ン、 めん類、他の穀類)の支出 金額についての構成比 ①所定の様式となるよう、 tabulateプロシジャを用いて集計を行った。 結果は下記の 通りである。 件数 パン めん頭 そ@他殺麺 全体制】 米 世帝区分 勤労者 57,386 36.01 37.60 22.10 4.29 100.00 勤労者闘争 16,日74 44.91 30.97 19.43 4.69 100.00 祭聡 25,741 52.10 26.69 15.78 5.43 100.00 20,758 33.84 37.69 23.00 5.47 100.00 夫婦のみ 24,287 49.49 28.87 16.79 4.85 100.00 二世代 37,182 39.01 35.92 20.76 4.31 100.00 二世代〈ひとり貌} 7,302 44.94 31.57 19.01 4.49 100.00 世帯分頚 単身世帯 三世代 8,646 46.01 30.52 19.67 3.80 100.00 そ@他 1,826 44.83 30.54 20.36 4.27 100.00 全体 100,000 41 .65 33.68 20.02 4.65 100.00 表4 ②sgplotプロ、ンジャのvbarステ ー トメントを用いて棒グラフを描いた。 結果は下記 の通りである。 国 40 〔 8蛍穫量車 却 四 ,。 単島世骨 量蝿由み 二世代 二世代{ひとり観〉 世帯分額 |圃最偶} 固パン帽,ll 図4 8 529 三世代 そ由他
5)世帯分類別のロ ー レンツ曲線およびジニ係数 ①data、sqlの各プ口 、ンジャを用いて、集計用乗率を考慮したロ ー レンツ曲線を描くた めのデ ー タセットを作成した。 このデ ー タセットからsgplotプロシジャを用いてロー レンツ曲線を描いた。 結果は下記の通りである。 二世代【ひとり重量〉の年問収λのロ ー レンツ幽鎗 ID GA 08 CIA oa OD OD 似 CIA 08 08 ID 世帯黒.比 図5 ②data、sqlの各プロシジャを用いて、集計用乗率を考慮したジニ係数を算出し、所定 の様式となるようなデ ー タセットを作成した。 以下はそのデ ー タセットを表示したも のである。 智者i:;i 0:塑間一一 ←一 一一 一一一一一J一一 _:2 ! i: |夫婦のみ _] 一一一二世代 4 |二世代〈ひ回貌〉 & ;I三世奇 6� - 11 その他 7 l創宰 j r· l 0.81 o ,�s 0.85 日}7 fa� 0.33. 表5 以上 9 530
pr臨時plot由ta =聞rk. a3
,hoκprice,
run:
f率
一一一 ヒストグラムの作成一一一一一一 -
pr田町iveria回data =附『k a3
histogr田plo,:
r凹
付録:規定課題用品Sプログラム
e フオ ー マァトの作,it
pr田for田t
”
’
-
“
ー
,alue k;ru-ou 1 , -勤労者 2 = 勤労者以外 3 z 領国
”
E
ー
,alue age
5 C -o,_24組以下 6 = 02_25~29歳
’
m
”
7 = 03 30~341>1" 8 = 旧35~39鎗
“
目
”
8 = 05_40~44織 10 = ·o,_ 45~49,注
“
”
11 =可7日~541,l" 12 = 08 55~591,l
“
’
”
13 = 05_1回~641,l 14 =可6_65~曲線
“
“
15 = 07_70~741,l" 16 = "08→75歳以よ
” 匂
"
“
"'"' ''"'" 1 = 男 2 = 女 !
"
ー
伊
,aiue bunru; 1 = 単身世帯 2 = 夫婦のみ
-
ー
W
ー
4 = 二世代(ひとり観〉
3 = 二世代
ー
”
“
戸
5 三 三世代
6 = その他 。
rim
I
。
じ竺盟主斗之
、集計祭事なしのクロスJIU竹/
吋s html:
pr田恒国late da回anicrodata missin,
class X09 X目
"
白
”
table XO紅 世帯持主の盗事飴 alI= 合計三
"
I X田=·· all= 合計. I・f = C初回B / rts = 16
fonoat X02 kiacou for聞t xo, '"
title -表1勺
刊"
'"'
‘
・集計柔"'ありのクロス!lllt•:
global su,岡崎ht:
町田sql "'"' iot
select I目前[同1ghtl) into s田_weight
fr酬miccoda旬 。
quit,
pr即時l
create table work. a as select
X02 x岨闘ight.
11飢渇紙同活ight/&s四,_.. ,酔ti as時計伽回
fr田m1cr data
刷 It:
pr田tabulate data=岡山a o,der=internal,
class X09 X阻!
,a, ,gtll),ao
同
"
一
table X09=世帯主の年齢帽gtll),an="" all= 合計 時計IC肺門=
”
sum="" * I X02 alI= 合It" I・f = coarna8. / rts • 16
for回t X02 kiacou for抽t X四'"
title -表ド!
傘以下では ウヱイトの計算をする. •i
pr田明i
create table work a4 as select
岡山ht. X02, Xll, Y042. Y043, YO判I Y045, Y046,
k叩e pann 咽nn sonata s山k
11凹..航槍/S国I as koo栂J 11曲叩ano/s皿) as同nn_p.
11田句�M/S凹I as闇nn_p, 11即時ooota/sl.lll)出回nota_p.
11曲• ka羽Is聞• 100・回M/S国• 100・岡市,血... 1曲・sonota/s
11田政泌柑創酔t/&s叩聞ight) as時ti伽酎
fr醐悶icro kokuru1
quit:
問。 as s凹IJ>,
。
事以下では. 集計裂を作る。•I
proc tabulata data=咽rk. a4 out=out田t for旧t=bastl2. missin,
,ar kα閣,_p pano_p 冊MJ> socota_p S田
J 珂tJO,an;
class X02 Xll
table
事行指定・
“
"
X02 X11 all• 全体
事列指定事
ー
一
・Is四..t. • f ;; con閣闇8 0)
wgtl伽ao=·件敏
"
何
-
畑鴨_p= 米
事(冊,n= · ・, = a 21
“
ー
・(田an= " ・, • a 21
peony バン
白
”
ー
*(咽an=
取f • 8. 21
冊no_p= めん頬
”
“
SOMtaJ戸 その他鰻類 . {田an="" • f • a2)
“
一
"
事f = 8, 2),
意(咽,n=
S叩1_p= 全体(克)
weight ,gtl伽閣n
for,阻t X02 kinro, for阻t XII bunrui
伊
title 表4"
r凶3
'"'
じ竺盟主とこ
proc sqJ
create table即,, a2 as "同ct
X02. >閣。 X11, 嗣ight.
11000α同eight/Isl.Ill weight)田町t1伽町
fr間関icro由ta:
刷It:
pr田恒加late da出咽rk a2 order=rnter同l
class X02 X岨XII:
,arwgtlO,an:
"
"
、
table XII= 世帯分鋼 略目白百戸· all= 含量ド輔副1白悶n•""
"
-
同
ー
"
--
S町,. ・I X02・I X曲.- all= 計 I all= 合計 Id = cα""''·
forn市at X田 kiaco弘 , format X阻"吋er fo何回Xll bunrui.
“
title ·表2
輩世帯分類5引,11こ‘ 般鎖(米、 パン ‘ めん期
proc SSPlot data=outpct,
"
,bar XII / r,spcoso"1<加問'-"-""" l暗eodlebel= 米(%)
目
”
,bar XII / respocse布町OJ> Moao I時制dlab,I= パン(略) 。
“
"
抑制s lab,I• 構成比(%)
run;
由旬田n
ー
"
attrib price leogt!Fa label= パンの支出金額(円)
”
plog leogth=B. label=" 1を加えた金額の常用対敵 l
for回t田ight
set剛er。由旬 。
,rice = Y倒4: plog = loglO(Y叫4 • 11
r
pr田明l
er回同table問rk. a3 as sel田t
price plog
11回α酔冊ight/&s叩_weight) as時ti伽回
fr田pan
it
市全体のロ ー レンツ幽Illとンニ係数の!tlh'
pr,田町l
create table岡山a5 as
select
XII, Y田l 11似路叩柑eight/&s四ー問ightl as時tl伽町
fr四micro_kokurui,
quit;
,roe sort data=冊rk. a5
by V叩1
町、I
'"'
。』
曲回a6
"'同rk. a5
attrib a同伺gth"8. b le,gth=8.
reta,n a b 0;
a = a +時tJl),an; b = b • YOOl棚田1伽陥n.
rur
pr田町l
""''日ble ,ork. a7 as select
久岡,la) as咽x a 間x(b)前田x_b
from岡rk. a6
叩it;
曲ta a8
--ー一一一一表3の作成-
.
町田岨剖late由同=岡山a3 °"'司叫一haka
,ar proce pl哩
,gtwgtJl),an
“
“
h
“
同hie圃' = 優夫鍾
p75 = 第3四部位敏 問•di田= 中灸錨
“
M
”
”
f稲田 = 平均値
p25 = "j有1四分位数 mi,= ..最小値
“
“
SU,明t = 件数
(pri間取f = C側聞8 plog事f =com,閣15 31
t,tle ·褒3"
F町、
徳ひ If自の作成一一一
他の鮫矧}の構庇比を繕グラフで表示する事
怠J
'"'
.
,規定問盟 4 •I
事以下吾1正 子4主語(米 パン めん矧‘ 他の般鮪)が
較額に占める割前成比(パ セント)を世帯降毎に針認する 0 ・f
由ta micro_kokurui
“
“
a
attrib k倒閣le門gth"8 label= 米
p田n len,th"8. l油,1=·パン
a
巴
"
’
咽m leogth=B. label= めん鎖 抑制a le崎山屯label= 他の鰻類
‘
’
S四 l田gth=B. label= 全体州 ,
set m1cr data:
げY倒2 n, 0 田d Y叫3 ne and V叫4 ne and V帥5 ne and Y叫6 ne then由
k町四e = 1回4倒3/Y倒2 凹no = 1叩叫肘4/Y帥2
間"" = 1回州倒5/Y042: socota = 1曲・Y046/Y042
S田 = kα閣+ pann +冊mφsocote.
end
else if
= 0釦d YO拍ne and Y帥4問 and Y045 ne and Y046 ne thee do
kooie = 0:田" = 0田no = 0, s朋0拍= o. 5田= 0
回d
else do
ko冊 = ,pann = 田nn
,
=
sonata =
sun =
end:
『町、
、
存
10
531
quit,
data U zOataO,
set subdata4,
m町a yoko_pre • x_axis同国_pre= y_axis,
drop v出。回ta:
run
dataloraazOatal ・
attrib x _ax,s laa,tlFB. y_axis length'8..
x_ax,s • I y_am= I
run,
da回lorenzOata;
sat LoranzOataOlore担Da旬I;
rur町
r国S脚lot data,LorenzOa回.
曲ere &V.肌=4:
scatter x • x _am y= y_ax,s;
d
”
title 二世代[ひとり貌)の年間岨入のロ ー レンツ幽線
-
”
x axis lebal•世帯累積比勺抑制S label= 所得累積比 。
run
由ta lorenzGini:
set s乱止刈ata4;
attrib coaf le制作屯;
do i=I回白田;
coat= 0. 6 • (yoko - yoko_pre)•(yoko+yoko_pre - ta旬 ー 同te_pre):
end:
run,
織E阻
set a7:
四回=a/田,_,;同te= b/田x_b,
nm:
data ,,,
set a8,
-
”
attr;b yoko_pre la時th,S. labal=機紬 tate_p'8 leagth=8. label=縦軸勺
reta;a yoko_pre tate_pre:
,t _N_= 1 the内de;
抑ko_pre = 0, tate_pre = 0
end;
σutput
y品。'-'"= ycl《o;岡田・_pre= tate:
dr p Xll Y曲I;
run;
da柏田叩t(k田p=cat)。
set a9 ead=last,
reta,n cat 0,
cat+1
if last;
rua
問、
。
>global ""'·
pr田sql aopr,nt,
select {間的iato mm
fr冊couat,
quit,
datalorea,GiniAII,
set a9
attrib c d lea,th=8.:
do ,=I to &n師。
国ef= 0.5 • (y曲。ー 刊ko_pre)叫yokoφy曲o_pre -阻te
朗d
r町’-
抱lobal su,_gini,
pr田町I noprint,
田lect (rouad但時間(coef). 0. 01)) into : s田'-'''"'
fr阻loreaz印刷All;
quit.
data GiaiAII:
attrib giai len,th唱
g,n, = &s凹,_gini,
r町3
。
%global s四ーIs出し2 s四,_3 sun_4 sum..5 S叩_6;
配orenz(V,肥=I):
町田町I noprint:
sel田t (rouad但司由化国司0. 01)) into : s由一1
fr開LorenzGini:
叩It;
魁町'61/Z側同).
pr田町l n叩rint
select (roend(2時間(co,f) 0. 01)) into s回一2
fr田LoraazGiai:
quit:
叫orenz(V朗
, "3);
pr同開l noprint,
select (re聞叫但唱団(coe町a制)) into : sun..3
fr師LorenzGmi.
quit;
叫町·6f1ZCVAf同};
町田町l noprmt,
select (r山ad但事•sun(c田f) 0. 01)) into
su,_4
fro, LoranzGini:
quit.
配orenz(VAA喝),
pr田町I noprint;
国lect (round(2柑回(ccef) 0.01)) into sun_5
fr冊LorenzGini:
叩』It:
省lor611ZCVM同);
proc sq I noprint .
select (round(2*Su,(,回ef) 0 01)) int
sun..6
fr阻L。,enzGini:
叩It:
deta Gini:
giniJ = &s凶o_l: gini_2 • &sunj!, gini_3 • &sun 3; gini_4 = &s田L4: gini 5
= &s凹,_5, gini_6 = &s畑一6
gin,_alI =品開,_gini;
pr田print:
r町,.
prec trans凹回da回=Gini out=tp_GiniOI 目
run:
da阻tp_G川}促 ・
input bunrui 125..
le時th buarui $25.: length n_glni 8 .
’
labal bunrui = 世俗分罰勺label n_gini = ·;;ニ係修,
set tp,”GiniOI:
n_gln, =COLI:
drop _IWIE_ drcpCOLI,
cards;
単身世帯
失鍋のみ
二世代
ニ佳代{ひとり貌〉
三世代
その他
全体
tate_pre);
介位予審分量毎のロ ー レンツ幽線とジニ係数の計算事/
禍IACI司0 Lor剖z(VAR);
pr c sort da同司,ork. as,
by Xll:
run,
data bl:
set咽rk. a5
-
“
“
u
attrib a length=8. labal= 横軸 attrib b le暗th=8. labal=緩紬
retain a b 0;
by XII
if first.XII= 1 th凹曲 ,
a = O; b= 0:
印d
a= a+wgtl畑町;b= b+Y•曲同曙ti-.
r凹
data subdata,
set bl,
if Xll =品VAR. thea output,
run,
proc sql.
er国民拍hie岡山sub血ta2 as select
吹田x(a)四幅·-� 園川b) as阻x b
fr田work.剖bdata;
quit.
血ta sub由ta3.
set su困ata2.
ycko= a/悶x_a; tate = b/岡,_b
drop a b岡'-'問x_b wgtlllmm;
run.
data sub白ta4,
set s叫到data3:
-
attnb凹,ko_pre ler司gtl胡 label=-,鍛軸 tata_pre length'8. label=-1世軸ぺ
retain刊ko_pre tate_pre:
if _N_=l th田do;
yoko_pre= 0.阻te_pre = O
end
。"'臥,,.
yoko_pro= y成。, tete_pre • ta旬
drop Xll YOOl;
run
data co田t(keeP"cnt).
set sul訓data4 ead•last
retain cnt 0 :目
cnt+I:
げlast
rua
覧global nu,,
pr田sql noprint
select (cat) into : n回
fr岡田mt,
。
。
『町、
以上
11
532
経済格差を測る食事多様性指標の提案 木下裕貴\仕子優樹\亀井健史 I、 堀口岡 lj 、 山本周平2、 伊藤俊貴 2 l l中央大学大学院理工学研究科都市人間環境学専攻 2中央大学理工学部人間総合理工学科 カテゴリ ー :学生 Proposal of Dietary Diversity Index to Measure Economic Disparity Yuki Kinoshita1, Yuki Shiko1, Takeshi Kamei1, Go Horiguchi1, Shuhei Yamamoto2, Toshiki Ito2 1Civil, Human and Environmental Engineering, Chuo University 2Department of Integrated Science and Engineering for sustainable society, Chuo University 要旨 本研究の目的は、 食生活の面から経済格差を測る食事多様性指標を提案し、 その妥当性を検証すること である。 食事の多様性を測る指標として、生態学の分野で提唱された種の多様性指標(Shannon指数)が代 替可能であると考え、6つの食品群の消費金額を用いる形で食事多様性得点を算出した。 妥当性について は、 主成分分析の第 一 主成分がバランスの取れたパタ ー ンとなることを踏まえ、 第 一 主成分得点との相関 を見ることで検証した。 その結果、l人世帯では中程度の正の相闘が見られたが、世帯人員が2人以上の集 団では相関係数が低かった。 この結果には多様性得点のバラツキの大きさが影響していると考えられるた め、 今回提案した食事多様性指標には妥当性があると言える。 単価の調整等の課題はあるが、 食事多様性 指標の応用の幅は広い。 キ ー ワ ー ド:食事多様性指標 全国消費実態調査 経済格差 妥当性 Shannon指数 1. 背景・ 目的 全国消費実態調査は、 家計の構造を 「 所得」、 「消費」、 「 資産」 の3つの側面から総合的に把握すること を目的とし、5年間隔で実施されている大規模調査である I )。 この調査から得られるデ ー タには、世帯別の 費用、 交際費や食費など多岐にわたる項目が含まれており、 時系列的に他項目との関連を見ることができ るという特徴を持つ。 そのため、 各府省の白書、 大学や研究機関などで経済状況を把握することを目的に 533
広く利用されている。経済的な格差によってもたらされる格差社会は、経済活動の衰退や生活水準・食生 活の悪化などの懸念を含むため 2)、こうした調査による経済格差の把握は重要である。 特に、食生活と経済格差の関連については、厚生労働省による調査、および小林(2010)が「所得の低い 世帯では、所得の高い世帯と比較して、穀類の摂取量が多く野菜類や肉類の摂取量が少なし、J 3)「高階層の 、 人ほど、野菜と海藻をよく食べていた」 4)という結果を示している上、近年ではフアストフ ー ドやコンビ ニ 食の普及によって食の偏りが生まれることが指摘されている 5)。こうした背景を踏まえ、我々は食生活の 面 から経済格差を定量的に説明できるのではないかと考えた。 現在のところ、経済格差を示す定量的な指標としてはジニ係数や エ ンゲル係数がある。しかし、ジニ係 数は所得のみから算出される係数であるため、食に関する情報を含んでいるわけではない。 一 方で、 エ ン ゲノレ係数については食費をもとに算出されるため、食の面から経済格差を測る指標ではあるが、食費をひ とまとめにしているところに欠点がある。先で述べた通り、所得が偏食に影響していることが示唆されて いるため、食生活から経済格差をより詳細に測るためには、食のバランスを考慮、した指標を考えるべきで ある。こうした指標は経済格差を測るばかりでなく、他の変数との関連が見られるため、疫学研究への応 用等も可能となる。しかし、そのような食のバランスを定量的に評価する有効な指標はない。そこで、本 研究では生態学の分野で提唱された種の多様性指標を食のバランスを測るために適用し、それを食事多様 性の指標として利用することを提案する。最終的には、食事に特化した独自の多様性指標を開発すること が目標ではあるが、本研究では種の多様性指標が食事多様性指標として代替可能かどうかを検討すること を目的とする。 2. 方法 2.1 食事多様性指標の提案 ’ 生態学の分野では種の多様性の指標としてShannon指数( H )がしばしば利用されて おり各種が均等に存 在しているかを測る事ができる(1)針。この指数は多様性が高いほど値が大きくなり、多様性が低いほど値は 小さくなるという特徴がある。我々はこの指標を食事の多様性に適用する事を考えた。そこで食事の多様 性をある食品群のみの購買に偏らず様々な食材を購買している事であると定義した。その際、食品群とし ては穀類、魚介類、 肉類、 野菜・海藻類、乳卵類、果実類の6つの消費金額を使用し、(1)を用いて多様性 得点を算出した。 ’ H = - LT=i PilnPi (1) i番目の食品群の消費金額 pi = 、S =食品群数) 食品群の消費金額の合計 2.2 除外基準 農林業を営んでいる世帯は自給自足をしている可能性があり 一 般集団から外れた食事パタ ー ンになると 考え、本研究の対象から除いた。また、穀類、魚介類、肉類、野菜・海藻類、乳卵類、果実類の6つの合計 消費金額がO円の世帯についても除外対象とした。 534
2.3 解析方法 近年の疫学研究では、 食習慣の評価に主成分分析や因子分析が用いられている。 特に、 主成分分析の第 一 主成分については、 バ ランスの取れたパタ ー ン(大きさの指標) となることが多いため、 第 一 主成分得 点と多様性得点はどちらも各食品群に対する消費金額の均等度合を測る指標であると言える。 そこで本研 。 究では、 多様性得点の妥当性を、 主成分分析の第 一 主成分得点を用いスヒ アマンの順序相関分析を行うこ とで検証した。 主成分分析には、 多様性得点の算出に用いたものと同様の食品群を使用した。 第 一 主成分 得点は消費金額が多い程、 得点が高くなってしまうため、 解析に使用した食品群の総消費で除すことで補 正した。 この際、世帯人員が異なることによる交絡を考慮し、すべての解析は世帯人員別に行った。 また、 世帯人員ごとの食費支出の違いを把握するために、 世帯人員ごとの食費の内訳を計算し、 表にまとめた。 3. 結果 3.1 解析対象世帯 全国消費実態調査によって得られた 69,131 世帯のデ ー タから、 方法で示した除外基準に従い解析対象世帯 農林漁業収入のある世帯 を選定した。 図l は対象世帯選択のフロ ー チャ ー トで (N:553) ある。全調査世帯から農林漁業収入のある世帯(553 世 宣料支出がO円の世帯 帯) と穀類、魚介類、 肉類、 野菜・海藻類、乳卵類、 果 (N-16) 実類の 6 つの合計消費金額が O 円であった世帯 (16 世 帯) を除いた 68,582 世帯が最終的に解析対象世帯とな った。 図 1. 3.2 解析対象世帯選択フロ ー チャ ー ト 記述統計 表lに多様性得点(Shannon指数) および主成分得点の平均と標準偏差を世帯人員ごとに示した。 その結 果、 l 人世帯において多様性得点の平均が他の世帯人員よりも小さな値になっていた(1.46)。 主成分得点 の平均でも同様の傾向を示した( - 0.22)。 また多様性得点の バ ラツキを見るため、 世帯人員ごとにヒスト グラムを描いたところ、 1人世帯では他の世帯人員よりも バ ラツキが大きいことが確認できた(図2)。 表l 世帯人員ごとの多様性得点と第 一 主成分得点の平均および標準偏差 ’E 一 535 J 主成分得点は 1,000 倍した値を示している L 1.62 ± 0.13 司S 68582 一 一 全世帯 * 第 一 主成分得点 * 一 nO同F nyzd a『Qu nu nunu nu ZJvnu nu- +- + 一+ -+ -一 来- 勺&一OF一h&一一q u 一HA nd β nM nM n M 抱 一心 一 ny 心 心 S人線上 斗’ 4人 n y一円U 一向y 一n on y 司’- 2Emu nunu nunU nunu 一 nu一 4T 一 一+ -+ 甲+ -iZ 一3 3 6 3 3 - 4 4 ,o dor,o ,O 2人 -�人 1 1 -I l -- _J,込 多様性得点 O H O -司3 7 r ‘E~, 一 一 川 崎 - W 幼 t UHn u,o d a ー 胃1司E 胃t ー 世帯数 o ‘ 千 円4 世帯人員 -0.06 ± 3.21
ω
4411471」44j」Jイイj44441「
-rrll工|
__Ah_/
�I
I
#
・a
4
λNT
lて
auAU AU AM AM AU au au aU AU AU AU AM AU 向u au au au au aU AU AU AU 自 u au
aa司adad 一-E
aqぬmua4
a司ad a4
a
q ad ad --
a
a『aa Ad --
rrr1n_]
・E
局』日・
図2.
世帯人員別の多様性得点のヒストグラム
*上から順に1人世帯、2人世帯、3人世帯、4人世帯、5人以上世帯、を示す
3.3
主成分分析の結果
各世帯人員における食ノfタ ー ンを確かめるため主成分分析を行った。 表2に各食品群における固有ベク
トルを世帯人員別に示した。 いずれの固有ベクトルも正の値であったため、 想定通り第 一 主成分はバラン
スの取れたパタ ー ンとなることが確認できた。 また、 世帯人員聞に大きな差は見られなかった。
。‘42
表2. 各食品群の固有ベクトル:世帯人員別
世帯人員
穀類
1み
2人
• ()亭毒…
一
0.39
主人: 十 一思議ぷ
4人
以叫
0.37
言語 ?
魚介類
0.44
0,:45.
乳卵類
果実類
0.38
:(!L46.
0.45
0.37
母宅4j__ー
DAO
0.10
0::47
0:37
.Q.39
0.43
;@;-it. '. ;
野菜・海藻類
肉類
CL
:0地れ
();4a
536
(it�i
ti.柑
l
o"3;6
OAQ
0.39
0:39
3.4
世帯人員ごとの食費の内訳
世帯人員によって各食品群への支出に差があるのかを判断するため、食料支出に占める各食品群の割合
の平均を求めた (表 3)。 l 人世帯では、他の世帯人員と比較すると穀類への支出割合が高くなっており
(0.263)、対して魚介類・肉類への支出割合が低くなっていた(0.162)。野菜・海漠類、乳卵類、果実類で
は各世帯人員で大きな差は見られなかった。
表3.
食料支出に占める各食品群割合の平均値・世人
帯
員別
世帯人員
1人
2人
g人
4人
5 人以上三
3.5
魚介類
肉類
野菜・海藻類
乳卵類
むとZ岱
0.162
0.206
0.105
0.137
0.1
0.197
0.201'
258
0.,11'0
0.087
0.195
0.2�l.
0.218
0
。;
穀類
を
そ 0;2�
CtJ?Tff
。
0.177
fra1
々
刊
o.p:槌
0.101
, o:i0r
。
果実類
,令
;C)91
0.091
。:
J.l;Q7;i三
0.061
059'
妥当性評価
多様性得点の妥当性を評価するため主成分得点とのスピアマンの順序相関分析を世帯人員別に行った
(表4)。その結果、l人世帯では多様性得点と主成分得点聞に中程度の相関が見られた(R=.468)。他の世
帯人員では相関係数は低かった(Rく.20 0 。
)
表4. 多様性得点と第 一 主成分得点の相関
世帯人員
C
て:T人タ
2人
3人
4人
主主些主
相関係数(R)
,,, >, ·。;潟8キ
rしむ
0.197 キ
0.]!45*
0.121*
oJ�S*
キ:p<0.001世帯数が多いためすべて有意となった
4. 考察
Shannon指数によって算出された多様性得点が、主成分分析によって得られる主成分得点と整合性があ
ることを確認するために相関分析を行った結果、l人世帯において中程度の正の相関が見られた。
多様性得点は食費が 6つの食品群(穀類、魚介類、肉類、野菜・海藻類、乳卵類、果実類 ) に対して均
等に分配されているほど高くなるため、 バ ランス型の食事ノ号タ ー ンを示した第 一 主成分の主成分得点と類
似した傾向を持つ指標と考えられる。実際、1人世帯においてはそのことを支持する結果が得られた。しか
し、世帯人員が2人以上の場合においては、相関係数が低かった。 そこで多様性得点の分布を見ると、世
つまり、集団全体として多様性に差がなかったこ
帯人員が2人以上ではバ ラツキが小さいことが分かる。
537
とが2つの指標間の相関が低い理由だと考えられるため、 1人世帯での結果が食事多様性指標の妥当性を 示していると言える。 こうしたことから、 本研究の結果は、 種の多様性指標である Shannon 指数は食の多 様性を評価する場合にも使用可能であることを示唆する。 本研究の限界として、 次の2点を挙げる。 まずlつ目は食品によって単価が異なることによる影響であ る。 主成分分析の場合は変数のバラツキのみを見ているため単価の影響はないが、 多様性得点の場合は食 費をそのまま利用するため、 ある食品に対する費用がその食品の摂取量を表している訳ではないという意 味で単価の影響を受けてしまう。 そのため、 より厳密に食の多様性を測りたい場合には食品の単価を考慮 に入れる必要がある。2 つ目は多様性得点、が食の良し悪しを評価するわけではない点である。 特に今回提 案した指標の場合、 どの食品群にも均等にお金を使っていると得点が高くなるが、 このことが良いかどう かはまた別の問題である。 例えば、 健康問題と関連付ける場合には理想的な食事バランスで重み付けを行 うなどの調整をすることで、 良し悪しの議論に落とし込めるのではないかと考える。 全国消費実態調査は5年間隔で行われているものであるため、 時系列的な解析をするのに適していると 言える。 また、 全国消費実態調査のデ ー タには食費に関する細かい情報が含まれているが、 そのデ ー タを 利用した研究はほとんどない。 今回提案した多様性得点の主な特徴は、 主成分得点とは違い集団に対して 独立であること、 食事に関する詳細な情報を反映した指標であることの2点である。 そのため、 年次比較 や地域差の検討など集団間での比較が、食事に関して可能となる。つまり、この食事多様性指標の提案は、 全国消費実態調査のデ ー タと食事の研究を結び付け、 さらには健康や疾病に関するアウトカムとの関連を 見ることによって、 疫学研究への応用も可能とする。 また、 ファストフ ー ドやコンビニ食などが今後さら に便利になっていくことによって食生活の多様化が進み、 何をどのように食べるかの選択肢が増えると、 噌好の偏りを招く可能性があるため、 食の多様性は減少していくと考えられる。 したがって、 今回提案し た指標によるこうした傾向の把握は重要である。 本研究では、 食事多様性指標の妥当性の検証までを行ったが、 経済格差を食生活の面から測る指標の開 発が最終的な目標であるため、 経済格差との関連を見ることは必須である。 そのためには、 単価の影響を 考慮に入れた解析をすべきであるため、 それは今後の課題としたい。 こうした課題はあるものの、 本研究 の成果は食生活から経済格差を測るための第 一 歩となるであろう。 5. 参考文献 1) 総務省統計局 h枕p://www.stat.go.jp/data/zensho/2014/ 2017 年 6 月 26 日アクセス可能 2) どうしてこうなった!? ~ 不満だらけの日本の今 ~ https://booing.jp/discontent/gap.html 2017 年 6 月 26 日アクセス可能 538
3) 厚生労働省.国民健康栄養調査 h句://www.mhlw.go.jp/s出houdou/0000l 06405.html 2017 年 6 月 26 日アクセス可能 4) 小林盾.社会階層と食生活ー健康への影響の分析ー. 数理社会学会機関紙「理論と方法」. 2010;25:81-93. 5) 永嶋久美子,坂口早苗,坂口武洋. 女子学生の偏食行動様式別食習慣および健康習慣の実態. 日 本公衛誌. 2002;49: 447-455. 6) 多様度と類似度、 分類学的新指標 h句://www.mus-nh.city.os紘a.jp/iso/argo/nll 5/nll 5-10・22.pdf 2017 年 6 月 26 日アクセス可能 539
付録 規定課題用SASプログラム 1)年齢階層別・世帯区分別クロス表 フォ ー マットの作成; proc format; ” " value household 1 =” 勤労者 ” 2 =” 勤労者以外 ” 3 = 無職 ; value age 5 = 吃4歳以下 ” 6 = ” 25 ~ 29歳 ” 7 = “ 30 ~ 34歳 目 8 = ” 35 ~ 39議 ’l 9 = ” 40 ~ 44歳 ” 10 = ” 45 ~ 49歳 ’l 11 = ” 50 ~ 54歳 ” 12 = ” 55 ~ 59歳 ” 13 = ” 60 ~ 64歳 ” 14 = ” 65 ~ 69議 ” 15 =” 70 ~ 74歳 ” 16 = ” 75緩以上 “ ; value family 1 =“ 単身世帯 ” 2 =“ 夫婦のみ ” 3 =" 二世代 ” 4 =" 二世代(ひとり親) ” 5 =" 三世代 ” 6 =” その他 日 7 =’ 合計 * value sex 1 =” 男 ” 2 =” 女 ” ; value koku「ui 1 =” 米 ” 2 =” パン “ 3 =" めん類 ” 4 =” その他 ” ; 「un; 集計用乗率なしのクロス集計表; proc tabulate data= micro.Zensho2004gijimic「o; class x02/orde「=unfo「matted;class x09/order =unfo「matted; format x09 age. x02 household.;keylabel N = " ’ SUM =" 合計 ” ; table x09 =” ” all=" 合計 凶 ,(x02=“ 世帯区分 " all=” 合計 “ ) * (f=comma7.) /misstext =” 0 ” box=" 世帯主の年齢 ” row = float; 「un; * E 集計用乗率ありのクロス集計表; proc tabulate data= mic「o.Zensho2004gijimic「o; class x02/order= formatted;class x09/口「de「=unformatted; fo『·mat x09 age. x02 household.;va「/WEIGHT=weight; ” keylabel N =” ” SUM =” ” ;table x09 =” ”* WEIGHT=目 " all=” 合計 ”* WEIGHT = ” /misstext =” 0 ” box=目 世帯主の年齢 凶 row = float; run; data micro.Zensho2004gijimicro; set micro.Zensho2004gijimicro; weight2 =weight/318.8730695; 「un; * ” ,x02 = ” 世帯区分 ” all =” 合計 集計用乗率を使った10万世帯比のクロス集計表; P「oc tabulate data=『『1ic「o.Zensho2004gijimicro; class x02/o「der= unfo「matted;class x09/口「de「=unfo「matted; fo「mat x09 age. x02 household.;var/WEIGHT= weight2; keylabel N =” ” SUM =" ” ; table x09 =” 目 安WEIGHT2=" " all =” 合計 "* WEIGHT2=” (x02=” 世帯区分 ” all = " 合計 ” ) * (f =comma7.)/misstext = "O” box =”世管主の年齢 “ row = float; run; * ~ 2)世帯分類別・世帯区分別 世帯主の性別3重クロス表 集計用乗率なしのクロス集計表; proc tabulate data=mic「o.Zensho2004gijimicro; class x02/order = formatted;class x08/o「der= unfo「matted;class x11/orde「 =formatted; format x02 household. xoa sex. x11 family. ;keylabel N =” ” SUM =” " ; table x11=” " all=目 合計 /misstext =” 0 ” b口x=”世帯分類 目 row = float; run; * 集計用乗率を使った10万世帯比のクロス集計表; proc tabulate data= micro.Zensho2004gij 1『nicro; class x02/o「der= unformatted;class x08/o「de「=unfo「matted;class x11/order =unfo「matted; format x02 household. xoa sex. x11 family.;var/WEIGHT=weight2; keylabel N =” " SUM =" 目; table x11=” ”* WEIGHT2 =” ” all =” 合計 ”* WEIGHT2 =” ” , ” (x02 =” "* (x08 =” ” all=" 計 ” ) all=” 合計つ * (f = comma7.) /冊isstext = "O" box= 世帯分類 ” row = float; run; * 540
3)パン支出金額についての各種の統計グラフ 勺tン支出金額の常用対数変換; data micro.Zensho2004gijimicro; _ set micro.Zensho2004gijimic「Oj = log10(y044+1); ly044 「un; proc tabulate data =『『1ic「o.Zensho2004gijimic「Oj va「 y044 ly044;weight weight2; table max = ” 最大値 ” q3= ” 第3四分位数 回 median=" 中央値 ” q1= ” 第1四分位数 ” (min =" 量小値 “ い(f= comma7.) mean =" 平均値 ” (sum岬gt = ” 件数 ” い(f= comma7.), (y044 = " パンの支出金額(円)勺 * (f = comma7.) (ly044 = ” 1を加えた金額の常用対数 日 }ぺf = comma7.3) /box = " 統計量 ” format_p「ecedence = row; 「un; 籍ひげ図とヒストグラムの作成; P「oc sgplot data = r『1icro.Zensho2004gijimicro; vbox y044; 四 label y044 =" パン支出金額 ; 「un; proc gchart data = mic「o.Zensho2004gijimicro; vbar ly044/ space = O midpoints = O to 5 by 0.25; ” label ly044 = りtン支出金額の常用対数変換値 ; run; quit; * 4)世帯区分別および世帯分類別の穀類の支出金額についての構成比 構成比の計算; data micro.pe「cent; set micro.Zensho2004gijimicro; py043= y043/y042*100; py044 = y044/y042*100; py045 = y045/y042*100; py046= y046/y042*100; sum= py043+py044+py045+py046; run; * 合表の作成; proc tabulate data = micro.percent; class x02/order = unformatted; class x11/o「der = unfo「matted; var py043 py044 py045 py046 sum/weight= weight2; fo「mat x02 household. x11 family.; keylabel N = “ ” SUM =" 件数 ” ; table all= 掴 世帯区分 ” 吋02= ” ” all = ” 世帯分類 ” 句11 = ” ” all= ” 全体 目 ,(all= " "*weight2 = " ")*(f = comma7.) 阻 ” " ” ” ” ” (all= ” 槍成比{屯} ” * (py043= " 米 ” py044 = パン py045 = めん類 py046= 他の殺類 ) * mean = sum =" 全体{町 田* mean= ” ” }台(f =5.1)/misstext = "O 四 box = " 項目名 E’ ; 「un; 台デーヲセットの変換; data micro.trans; set table; if X11 = ’ .・ then delete; drop _TYPE_--weight2_Sum sum_Mean X02; 「etain a O; a= a+1; run; proc transpose data= mic「o.t「ans out = micro.bar; var py043_Mean--py046_Mean; by x11; run; 541 u
data micro.bar2; set mic「o.ba「; if _name_= ・ py043_Mean' if _name_= ’ py044_Mean ’ if _name_= ’ py045_Mean ’ if _name_= ’ py046_Mean' 「un; then kokurui= 1; then koku「ui=2; then koku「ui= 3; then koku「ui=4; *帯グラフの作成; proc sgplot data= micro.ba「2; vba「 x11/「esponse = col1 group= kokurui g「oupdisplay= stack; label x11= ’ 世帯区分 『 kokurui= ’ 穀類品目 l co11= ’ 檎成比[叫 ’ ; format kokurui kokurui.; 「un; 5)世帯分類別のロ ー レンツ曲線およびジニ係数 合ロ ー レンツ; 亀macro data(var); proc f「eq data= micro.Zensho2004gijimicr‘o; whe「e x11= &va「; tables y001/missing; weight weight2; ods output onewayfreqs= micro.table;run; data mic「a.table; set micro.table; all_Nenkan_Syuunyuu= Y001*frequency; num= 1; run; P「oc means data= mic「a.table sum; ods output summary= mic「o.table2; var all_Nenkan_Syuunyuu;「un; data mic「o.table2; set mic「o.table2; num= 1; 「un; data mic「o.table3; merge mic「o.table(in= a) mic「o.table2; by num; if a; sum-+ all_Nenka『1_Syuunyuu; menseki= (((sum+Lag(sum))/all_Nenkan_Syuunyuu_sum) 合 (Cumpercent-Lag(Cumpe「cent))/100)/2; aaa = sum/all_Nenkan_Syuunyuu_sum; cumpercent2= cumpe「cent/100; 日 label aaa= " 年間収入の累積相対度数 “ cumpercent2= " 累積相対度数 ; run; ・ P「oc means data=『『1ic「o.table3 sum; var『nenseki; ods output summary= micro.table4_&va「;run; data micro.table4_&var; set 『『1icr『o.table4_&var; jini= (0.5・menseki_sum) 合 2; x11= &var; 「un; 542
data micro.tables; function =“ 町1ove ” ; ” ” ” ” xsys = 1 ;ysys = 1 ; x=O;y = O; output; function = ” draw ” ; ” ” ” xsys = 1 ;ysys = 1" j ” colo「 = 「ed"; x =100; y= 100; output; 「un; eds listing; eds 「esults; ” ” title 年間収入のロ ー レンツ曲線{二世代(ひとり親)) ; P「oc gplot data= micro.table3; plot aaa*Cumpe「cent2/ vref=0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.7,0.8,0.9,1.0 h「ef =0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.7,0.8,0.9,1.0 anno = micro.table5; run; quit; run; %mend; もdata(1) %data(2) %data(3)屯data(4 ) 屯data(5 ) 屯data(6)屯data(all) title; *ジニ係数の出力; data micro.total; set micro.table4 1 mic「o.table4 2 mic「o.table4 3 mic「o.table4_4 micro.table4_5 mic「o.table4_6 micro.table4_all; jini2=round(jini,0.01); d「op i i『1i menseki_Sum all; ’ if x11 = .’ then x11 = 7; ’ ’ label jini2= ジニ係数 ’ ’ x11 = 世帯分媛 ; 「I』n; proc print noobs label; format x11 family.; run; 付録規定課題図表 1)年齢階層別・世帯区分別クロス表 世事主@年齢 合計 世苦区分 世省主@年齢 勤労者勤労者以外豊富聡 合計 世帯区分 勤労者勤労者以外築麗 24謡副読下 765 18 15 798 却益以下 1,729 10 21 25·『’29禽 2,289 157 66 2,512 25~29轟 4,314 151 57 4,522 加司’34歳 4,223 511 107 4,841 30~'34歳 6,441 480 日7 7,008 35·司'39歳 5,217 72日 193 6,13日 35'""'39薩 7,420 824 153 8,396 自,773 40-44歳 7β11 1,145 247 9ρ04 1,479 244 9,462 2,085 508 10,665 40-44歳 5,492 1,076 205 1,760 45~·49議 5,702 1,305 277 7,284 45 49議 7,739 国~54歳 6,194 1,797 392 8,3自:3 5かv日義 8,072 店内'59歳 5,682 2,221 自己14 8,527 55~59議 7,697 2,725 893 11,315 60---64禽 3,237 2,226 2,534 7,997 60司’喧4重量 4,208 2,785 4,160 11,153 65司’69歳 1,343 1,743 3,590 6,676 65へ’69禽 1,487 2,213 6,374 10,074 70-74:議 469 1,197 3,214 4β80 70 '74縫 459 1,652 6,124 8,235 75.盆以上 166 940 3,216 4,322 7硲量以上 207 1,325 6,873 8,406 合計 40,779 ~ 吋 合計 13,919 14,433 69,131 543 57,3自由 16,874 25,741 100,000
4--0))世帯区分別及び世帯瀕別の穀類支出 金額に占める構成比の平均値 2)世帯分類別・世帯区分別 世帯主の性別 3重クロス表 官酎 3ベD)パン支出金額の四分位統計量と平均値 ,,:AD 鎗計量 超大館 垂体 支出金書置〈円》 軒目溺U己金額@常周対重量 4.714 51,776 箆国四分館重量 3,009 3.4田 中央値 1,689 3.228 1ft四分位窓 850 。 2.934 S:•J•値 平均値 2,284 3.137 骨抜 100.000 。 ∞ 100ρ - 与②)パン支出金額についての箱ひげ園 r 4ベ�)構成比m帯グラフ I i! ー- i -- 2・ ...陸. a・.,.・ =想問 ’ =官制:J.. 省管区分 三置健 そ@也 - 飯田lC.!真 ..二’玄;,::;手両R至極 ら①)二世代(ひとり親〕世帯における年間 収入のロー レンツ曲線 問 問 ーオfirr ’U調。 ム フ - げ ス 咽 咽 岨 岨 四 四 咽 四 ←』 て の eb D 出 鍋 ン 支 ゆa ら②)各世帯蝿の年 回 間収入のジニ係数 園 田 園 田 回 園 帽 剛 園 個 … ・ 岨 . 田 -- 一 … 園 544 働者審会績 9.:i係鍛 車身世帯 0..34 夫婦のみ 0.31 二世代 0.2由 三世代bと!Ji!> 0.35 三世代 0.27 その他 0.33 合計 0.33
主催:SASユ ーザー会 世話人会 代表世話人 世 話 人 {氏名 50 音順) 大橋鋪雄 伊藤陽一 小野潔 岸本淳司 堺伸也 坂巻英一 周防節雄 菅波秀規 高橋行雄 野原賢一 松岡湾 宮内亨 八木章 山之内直樹 中央大学教授 北海道大学 准教授 株式会社インテック 九州大学ARO次世代医療センター 副センタ ー長准教授 イー ピーエス株式会社 兵庫県立大学 名沓教授 興和株式会社 BioStat研究所株式会社 独立行政法人統計センター 日本メディア株式会社/順天堂大学臨床研究支援センター 独立行政法人統計センター 近畿大学 元教授 第一三共株式会社 協賛 (掲載 50 音順) イー ピー工ス株式会社 エイツ ーヘルスケア株式会社 SAS InstituteJapan 株式会社JMPジャパン事業部 スタツトコム株式会社 株式会社タクミインフォメ ー ションテクノロジー 日本メディア株式会社 協力 SAS InstituteJapan株式会社 SASユ ーザー総会事務局 干160-0022 東京都新宿区新宿6・27-56 新宿スクエアSF TEL:03-5774-7018 受付時間:10:00~17:00 (平日12:00~13:00、土 ・ 日 ・ 祝日を除く) E-mail: sasuser_entry@seminar.jp E2\1f� 論文集 2017年8月3日初版第1刷発行 発行:SASユーザー会 SAS InstituteJapan株式会社