SASユーザー総会論文集 2022年

377 Views

May 14, 25

スライド概要

SAS XML Mapperを用いたdefine.xmi内のメタ情報に基づくCDISC・申請電子データ提出に関連する成果物の確認ツールの紹介 山本 繁
Cox回帰とその拡張 魚住 龍史
共変量を調整したRMSTのSASでの実装と性能評価 花田 圭佑
中間解析を伴う生物学的同等性試験に対する推定方法 棚瀬 貴紀
SASによるRainctoud Plotの実装 森岡 裕
SASによる遺伝的アルゴリズムの実装 折丼 悟
溶出挙動が類似した製剤の生物学的同等性試験における検出力の検討 森田祐介
デジタルバイオマーカーのデータハンドリング 森岡 裕
マクロのすすめ~SASにプログラムを書いてもらおう~ 森田 祐介
SASにおけるPert正規表現の基礎と実装 亀丼 亮太
DDEのまとめとDDEの代替としてのOSS 関根 暁史
SASによるWordleの実装 川上 貴弘
COMPAREプロシジャの便利な使い方 田中真史
PythonとSASを活用して解析結果比較作業を効率化 小林 聡晃
きみはSASとPythonをつなぐSASPyを知つているか? 坂巻 英―
世界初の高次元遺伝子データ解析の理論-169のMicroarrayは癌と正常をLSDで分けることができた一 新村 秀―
きみは正しく少数データを判別しているか?~機械学習による不均衡データの理論体系~ 小野 潔
SASによる申請電子データ提出構造m5フォルダの検証 山野辺 浩己
副作用シグナルの可視化とその活用 ―副作用データベースJADERの分析について一 武藤 猛
平方和の分解では解けない繰り返し不揃いの2元配置データの解析入門 高橋 行雄
proc GLMPOVVERを利用したMMRMのサンプルサイズの検討 小林 邦世
Time-varying treatmentsに対するlPTW法による因果効果の推定 鈴木 徳太
公的ミクロデータにおける調査対象世帯の家族構成が一日で分かる新変数表現法の開発とSASによる実装例の紹介 周防 節雄
integrated Gradientsによる格付AR値変化の寄与度分解 木村 和央
SASを用いた国勢調査の匿名データにおける世帯の家族構成と社会問題への適用 古隅 弘樹
国勢調査の匿名データを利用した「両親と成人で未婚の子から成る世帯」の子の実態分析-257 安丼 浩子
Excelワークブックを自動的に作成する「温故知新」 learning from the past to the future of autornatic creation of Excet workbooks. 小澤義人
Open Source Software (OSS)全盛の中、SASの役割は何か? 伊藤 陽―
SASのクオリティー・コントロールについて 竹村 尚大
SASデータセット 岸本 淳司
SASの統計教育に関する問題解決に向けて 高橋 行雄
統計理論の学習・教育について 伊藤 陽―
SASとOSSの新しい時代の幕開け 小野 潔

profile-image

SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

● e ● ● ● ● ● ● ・ ・ ・ ・ ● 一■ ■ ■ ■ ■ ■ U ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 論文集 主催 :SASユ ーザー会 世話人会 会場 :東 京大学 伊藤国際学術研究センター 会期 :2022年 9月 1日 (木 )・ 2日 (金 )

3.

SAS ユーザー総会 2122 論文集

4.

SASを 構成するプ ロダク ト群は、SAS hstitute lnc.の 登録商標です。 その他、本論文集に記載されている会社名、製品名は、一般にそれぞれ各社の商標または登録商標です。 本論文集の一部または全部を無断転載することは、著作権法上の例外を除き、禁止されています。 SAS、 本論文集の内容を実際に運用 した結果の影響 については、責任 を負いかねます。

5.

目次 生物統計・ 医薬関連 SAS XML Mapperを 用 いたdefine.xmi内 のメタ情報に基づく CDiSC・ 申請電子データ提出に関連する成果物の確認ツールの紹介 3 山本 繁 (住 友フアーマ株式会社) Cox回 帰 とその拡張 4 魚住 龍史(京 都大学/Stanford Universiv) 共 変量 を調整 した RMSTの SASで の実装 と性能評価 花田 圭佑(協 和キリン株式会社) 5 中 間解 析 を伴 う生 物 学 的 同等性試 験 に対 する推定 方法 棚瀬 貴紀(大 鵬薬品工業株式会社/日 本製薬工業協会) 6 生物統計・ 医薬関連 /SASシ ステム 9 1 SASに よる Rainctoud Plotの 実 装 森岡 裕 (イ ーピーエス株式会社) 3 3 SASに よる遺伝 的 アル ゴリズムの 実 装 折丼 悟(イ ーピーエス株式会社) 生物統計・ 医薬関連/SASシ ステム/SAS デジタルバイオマーカーのデータハンドリング 4 4 溶 出挙動 が類似 した製 剤 の生物 学 的 同等性試験 における検 出力 の検 討 森田 祐介(ノ ーベルフアーマ株式会社) tMP教 育 /そ の他関連分野 47 森岡 裕 (イ ーピーエス株式会社) マクロのすすめ〜 SASに プログラムを書いてもらおう〜 59 森田 祐介 (ノ ーベルフアーマ株式会社) SASシ ス テム SASに おける Pert正 規 表現 の基 礎 と実 装 81 亀丼 亮太(イ ーピーエス株式会社) DDEの まとめと DDEの 代替 として の OSS 関根 暁史(藤 本製薬株式会社) 95 SASに よるWordleの 実装 105 川上 貴弘 (ジ ーリンクシステムコンサルティング株式会社) COMPAREプ ロシジャの 便利 な使 い方 田中 真史(イ ーピーエス株式会社) 121

6.

Pythonと SASを 活 用 して解 析 結 果 比 較作業 を効 率 化 小林 聡晃(日 本たばこ産業株式会社) 131 きみ は SASと Pythonを つな ぐ SASPyを 知つて いるか ? 坂巻 英―(坂 巻総合研究所) 141 SASシ ステム/人 工知能・ AI きみは正しく少数データを判別しているか?〜 機械学習による不均衡データの理論体系〜 ‑153 小野 潔 (株 式会社インテック) SASシ ステム/そ の他関連分野 SASに よる申請 電子 デ ー タ提 出構 造 m5フ ォル ダ の 検 証 173 山野辺 浩己(イ ーピーエス株式会社) オープンデータ/統 計理論/生 物統計 。医薬関連 副作 用 シグ ナル の 可視化 とそ の 活 用 武藤 猛(MarkeTech Consutting) ―副作 用 デ ー タ ベー ス JADERの 分 析 につ いて 一 ‑185 オープンデータ/統 計理論/生 物統計・ 医薬関連 /SASシ ステム/ SAS e」 MP教 育 /そ の他関連分野 世 界初 の高次 元 遺 伝 子 データ解 析 の理論 ‑169の Microarrayは 癌 と正 常 を LSDで 分 けることが できた 一 新村 秀―(成 曖大学) 197 統計理論/SAS・ JMP教 育 平方和 の分解 で は解 けな い繰 り返 し不揃 いの 2元 配 置 データの解 析 入 門 高橋 行雄(BloStat研 究所株式会社) 209 統計理論/生 物統計 。医薬関連 proc GLMPOVVERを 利用 した MMRMの サ ンプル サイズの 検 討 221 小林 邦世(イ ーピーエス株式会社) 統計理論 /生 物統計 1医 薬関連/SASシ ステム Time日 varying treatmentsに 対 する lPTW法 による因 果効果 の推 定 鈴木 徳太(横 浜市立大学) 235

7.

金融・ 経済 。経営関連 公的ミク回データにおける調査対象世帯 の家 族構成 が一日で分かる新変数表現法 の開発 と、 SASに よる実装例 の紹 介 239 周防 節雄(兵 庫県立大学) SASを 用 いた国勢調査 の 匿名 データにおける世帯 の家族 構 成 と社会 問題 へ の 適 用 古隅 弘樹(兵 庫県公立大学法人兵庫県立大学) ‑249 国勢 調査 の 匿名 データを 利 用 した「両親 と成 人 で未婚 の 子 か ら成 る世帯」の 子 の実 態分析 ‑257 安丼 浩子((公 財)統 計情報研究開発センター) integrated Gradientsに よる格 付 AR値変 化 の寄与 度分 解 266 木村 和央(株 式会社日経金融工学研究所) ポスターセ ツシヨン Excelワ ークブックを自動的に作成する「温故知新」 ‖ learning from the past to the future" ‖ of autornatic creation of Excet workbooks.‖ 279 小澤 義人 (国 立大学法人千葉大学 医学部附属病院) キー ノー トセッシ ヨン Open Source Software(OSS)全 盛の中、 SASの 役割 は何か ? 283 伊藤 陽― (北 海道大学病院 医療 。ヘルスサイエンス研究開発機構データサイエンスセンター) ‖ SASの フオ リティー・ コン トロール につ いて 286 竹村 尚大 (SAS lnstitute」 apan株 式会社 アカデミア推進室) SASデ ータセット 295 岸本 淳司 (九 州大学 ARO次 世代医療センター) SASの 統 計 教育 に関する問題 解 決 に向 けて 300 高橋 行雄(BioStat研 究所株式会社) 統計理論の学習・ 教育について 309 伊藤 陽― (北 海道大学病院 医療・ヘルスサイエンス研究開発機構データサイエンスセンター) SASと OSSの 新 しい時代 の 幕 開 け 小野 潔(株 式会社インテック) 317

9.

生 物統計・ 医薬関連

11.

SAS XML Mapperを 用 い た deineoxml内 の メ タ情 報 に基 づ く CDISC O申 請電子デ ー タ提 出に関連す る成果物 の確認 ツールの紹介 ○ 山本繁 (住 友 フ ァーマ株式会社 開発本部 デ ー タサイ エ ンス部 ) 2016年 10月 よ り医薬 品 の承認 申請 時 にCDISC標 準 に準拠 した電子 デ ー タ提 出 が 開始 され 、2020年 4月 に 完 全 義 務化 を迎 えた。これ に対応 す るた め 、当社 で もデ ー タセ ッ ト (SDTM、 ADaM)、 デ ー タガイ ド(SDRG、 ADRG)、 定義 フ ァイ ル (dcinc.xml)等 を作成 してい る。そ の 中で d ncⅨ mlは XML形 式 で記述 され 多 くの メタ情 報 が格 納 され てい るに もか かわ らず 、作成 後 は 申請電子 デ ー タ提 出 の利用 の み でXML形 式 の利 点 を統計解析 業務 に有 効活用 で きて い な い。 これ までの SASユ ー ザ ー 総 会 でdcinc.xmlの メタ情 報 を用 いてADaMデ ー タセ ッ ト作成 プ ロ グラ ムの効 率化 ヘ 向けた取 り組 み (2016)、 帳 票作成 (2018)を 紹介 して きた。本 発 表 で は、deine.xmlを 参 照 しCDISC・ 申請 電子デ ー タに関連 す る成 果物 の確 認 を行 う試 み を紹 介 す る。具体 的 に はデ ー タセ ッ トとdeinexml間 の整 合性 の確認 やdeine.xml間 の差異 の確認 を行 う。 これ らの 事 例 を紹介す る と ともに、SAS XML M"perを 用 い る際 の留意 点や 業務 上 の課題 も発 表 す る。 3

12.

Cox回 帰 とそ の拡張 〇魚 住 龍史 1,2 1京 都 大学大学院 医学研 究科 医学統計生物情報学 2 Departme■ ofBlomedic」 Dtta Science,Stanお rd Universiサ Emanl:Lpz螢 21icxttlu2■ ェQlQ二 lL壬 ■、 L2 2022年 8月 ,大 橋靖雄先生 。浜 田知久馬先生 に よる『 生存時間解析 :SASに よる生物統計 』 の第2版 が出版 された (大 橋 ら,2022).著 者 が第2版 の出版 に参画 させ ていただいたのは,姉 妹本 の位置付 けである『 生存時 間解析 応 用編 :SASに よる生物統計』を大橋先生 。浜 田先生 との共著 で出版 させ ていただいた ことに遡 る (大 橋 ら,2016).大 橋先生 。浜 田先生 の ご冥福 をお祈 りしつつ ,初 版同様 ,第 2版 が生存時間解析手法 を理解す る 手助 け となれ ば幸いである.第 2版 では,日 本 の生物統計学 のパイオ ニ アである大橋先 生・浜 田先生による遺 作 として ,文 章表現な どは初版 か らなるべ く変更 しない ことを心掛 け,現 在存在 しないSASプ ロシジ ャやSAS による出力結果 な ど,古 くな って しまった箇所 の 改訂 を中心に編集 され てい る.生 存時間解析 に関す るプ ロ シジ ャ と して ,初 版 同様 ,LIFETESTプ ロシジ ャ,■ REGプ ロシジ ャ,LIFEREGプ ロシジ ャを中心に解説 さ れてい る.本 講演では,第 2版 の3章 で解説 されてい るCox回 帰を中心 に議論す る.Cox回 帰 は,1972年 にSir DⅣ id Cox(1924‑2022)が 提唱 した比例 ハ ザ ー ドモデル に よるセ ミパ ラメ トリックな解析手法である.ま ず ,比 例ハ ザー ドモ デル の特徴や部分尤度 に基 づ く推測 の よ うな,生 存時間解析 の初学者 向けの解説 を行 う.さ らに , Cox回 帰 を行 うためのPIREGプ ロシジ ャにお いて , これまで どの よ うな拡張 が行われ て きたか議論す る。本 講演は,2022年 10月 に開催 され るSAS Leaming Session 2022の イ ン トロダクシ ョンとして位置づ け られ る。 参 考文 献 [1]大 橋靖雄・ 浜 田知久馬・ 魚住龍史.生 存時間解析 第 2版 ―SASに よる生物統計 .東 京大学出版会,2022. [2]大 橋靖雄・ 浜 田知久馬・ 魚住龍史 .生 存時間解析 応用編 ―SASに よる生物統計 .東 京大学出版会,2016. 4

13.

共変量 を調整 した RMSTの SASで の実装 と性能評価 o花 田圭佑 小 島将裕 1,2、 守屋順之 1、 1 (1協 和 キ リン株式会社 研 究 開発本部 開発 ユ ニ ッ ト バ イオ メ トリックス部 2統 計数理研 究所 ) 生存 時 間解析 の方 法 で提 案 され てい るRcstrictcd mcall suMvaltimc(RMST)は 、被 験者 数 に よる漸 近 正 規性 を用 い る こ とで、比例 ハ ザ ー ド性 を仮 定せ ず に解 析 で き る(Royston and Parm鴫 2013)。 一方 で臨床試 験 で は特定の 因子 で調整 した ラ ン ダ ム化 が行 われ る こ とが多 く、 モ デ ル の仮 定 は必要 とな る もの の 、RMSTに お い て も共 変 量 を調 整 した解 析 が提 案 され てい る。 Pseudo valucを 用 い たモ デル解析 で は、打 ち切 りに よ らず す べ てのデ ー タ を用 いて 回帰係 数 を推 測す る(Andersen et al,2004)。 打 ち切 りを考慮 して推 測 したKttlan― Meier推 定量 の逆 数 を重 み と して回帰係 数 を推測す る逆確 率 重 み付 け法 も提案 され てい る(Tian ct al,2018)。 本 発 表 で は、共変 量 を調 整 したRMSTの 解 析 手 法 とSASで の 実装 方 法 を紹介 す る。 共変量 を調 整 して い な い RMSTと 共変量 を調 整 したRMST及 び Cox回 帰 で の投与群 間 の 差 に対す る検 出力 の シ ミュ レー シ ョンに よる比 較 を行 い 、共変量 を調 整 したRMSTの 有 用 性 を紹介す る。 参考文献 ■ Royston P,Parinar iNI]K.Resiictcd mean survival tinle:an alternative to the hazard ratio for the dcsign and analysis ofrandonlizcd trialsゝ rith a tiine― to― event outcolm.e.:BM(C Med Res Methodol.20131)ec 7;13:152.doi: 10.1186/1471‐ 2288‐ 13‐ 152.Pヽ 411)124314264;PMCII):PM(C3922847. ■ Andersen PK,Halsen MG,Klein JP.Regression allaヶ sis of rcsmctcd mcan suⅣ ival timc bぉ cd on pseudo‐ obseⅣ 威lons.Littime Dtta Anal.2004 Dec;10(4):335‑50.doi:10.1007/s10985‑004‑4771‑0.PMID: 15690989. ■ Tian L,Zhao L,Wei LJ.Predicting thc rcsttic d mcall event time with ie su● ectis baseline covaiates in survival anaサ sis.Bios● tistics.2014 Apr;15(2):222‐ 33.doi:10.1093ん iostttisticsな xt050.Epub 2013 Nov 29. PMID:24292992;PMCID:PMC3944973. 5

14.

中間解析 を伴 う生物学的同等性試験 に対す る推定方法 O棚 瀬 貴紀 1,2、 田中優 ‑1 (1大 鵬薬 品工業株式会社 2日 本製薬 工業協会 デ ー タサイ エ ンス部 医薬 品評価委員会 生物 統計課 , デ ー タサイ エ ンス 部会 ) Estimation Methods for the Bioequivalence Study with an InterimAnalysis Takanori Tanasel. 2, Yuichi Tanakar lBiostatistics, Data Science Department, Taiho Pharmaceutical Co., Ltd. 2Data Science Expert Committee, Drug Evaluation Committee, Japan Pharmaceutical Manufacturers Association 要旨 後発 医薬 品 の 生物 学 的 同等性試 験 ガイ ドライ ン は ,第 一 種 の 過誤確 率 を制御 した上 で ,中 間解 析 の 結果 に基 づ い て追加 デ ー タの取 得 が可 能 であ る こ とを述 べ てい る .症 例数 再推 定 を伴 う試 験 に適用 可能 で あ り,第 1 種 の過 誤確 率 を適切 に制 御 す る検 定方 法 と して ,統 合検 定 が 挙 げ られ る。 一 方 で ,区 間推 定 と点推 定 の適切 な方 法 は明 らかで な い .本 稿 では ,症 例 数 再 推 定 を伴 う生 物 学 的 同等性試 験 に適 用 可能 な ,区 間推 定 と点推 定 の 方法 を比較す る . キー ワー ド :生 物学的 同等性試験 ,中 間解析 ,症 例数再推 定 ,早 期有効中止 ,ア ダプティブデザ イ ン 1。 は じめに 後発 医薬 品 の生 物 学 的 同等性試験 ガイ ドライ ンが令和 2年 3月 19日 付 けにて改 正 され ,試 験 デ ザ イ ンに関 わ るい くつ かの規 制 要 件 が変更 され た。試 験 デ ザイ ンに 関 わ る変更点 として ,一 回 の 中間解 析 に基 づ いて追 加 デ ー タの取得 を行 う計 画 が可能 で あ る こ と,試 験全 体 の 第 一 種 の過誤確 率 を適 切 に制御 す る こ と,中 間解 析 と最 終解 析 で 有意 水 準 を調整す る場合 は有意水 準 に対応 す る信頼 区間 を用 い る こ とが挙 げ られ る .こ れ ら の 変 更 点 は ,早 期 有 効 中止 と症例数 再推 定 (Samplc Sia Re― estimttion;以 下 SSR)を 伴 うア ダ プ テ ィブデザ イ ンの 1つ として理 解 す る こ とで対応 が可 能 で あ る.こ の 種 の 2ス テ ー ジの ア ダプテ ィブデ ザ イ ン に対応す る解析 方 法 は ,Chmg(2014)や Wttsmcr ttd Brannath(2016)が ま とめてい る。 SASユ ー ザ ー 総会 2021で は ,二 演題 が SSRを 伴 う生物 学 的 同等性 (Biocqu市 alence;以 下 BE)試験 につい て議 論 され た .森 田 。浜 田 (2021)と 橋本 ・ 舟尾 (2021)に て研 究 され てい る よ うに,SSRを 伴 う BE試 験 に は ,逆 正 規 法 の統 合 検 定 を用 い るこ とで 第 一 種 の過誤 確 率 を適切 に制御 す る こ とがで き る.さ らに,中 間 解 析 の結果 に基 づ く条件 付 き過誤確 率 と個 体 内分 散 か ら計 算 され る条件付 き検 出力 か ら第 2ス テ ー ジの被験 者 数 を修正す るア プ ロー チ は ,BE試 験 に利 用 可能 な方 法 の一 つ であ る と考 え られ る.一 方 ,SSRを 伴 うア ダプテ ィブデ ザイ ンで は ,第 一種 の過 誤確 率 の増 大 だ けで な く,被 覆確 率 の 低 下 ,バ イア ス の 発 生 な どが生 じる こ とが一 般 的 に知 られ てい る.BE試 験 では , 90%信 頼 区間または有意 水 準 5%の 二つ の 片 側 検 定 を用 6

15.
[beta]
い るとい うのが 同等性判定 の基本的な解析 であるが,こ れ らの基準 に適合 しない場合で も点推定値 が
log(0.90)〜 log(1.11)に 入 って (か つ ,溶 出挙動 が類似 )い れば,生 物学的に同等 と判 定す る基準がある.点

推定値 も同等性判定の一部 に含 まれているため,点 推定値 の性能 も重要である.同 等性仮説を扱 うBE試 験
に SSRを 伴 うアダプテ ィブデザイ ンを適用す る場合 の,利 用可能 な推定方法 とその性 質 については知 られ
ていない。本研究 の 目的は BEを 検証す る仮説検定ではなく,SSRを 伴 うアダプテ ィブデザイ ンのアプ ロー
チか ら BE試 験 における区間推 定 と点推定の方法 を整理 し,シ ミュ レーシ ョンによる数値実験 を用 いて推定
方法 の性質 を調 べ ることであ る

.

本稿 では試験製剤 と標準製剤 の BEを 検証す ることを 目的 とした,2剤 2期 のク ロスオーバー試験 を想 定
し,PKパ ラメー タは対数正規分布 に従 うことを仮定 している。 中間解析 での無益 中止 (BEを 検証 でき る可
能性 が低 いため 中間解析 にて試験 を中止す ること)は 含 めていな いが ,一 部 の拡張で対応可能である

.

2.同 等性 検 定 と症 例 数 再推 定 の 方 法
本節では,早 期有効 中止 と SSRを 伴 うBE試 験 の検定 と SSRの 方法 を解説す る。 これ らは SASに よる実行
方法 を含 めて,橋 本・ 舟尾 (2021)と 森 田・ 浜 田 (2021)が 解説 してい るため,本 稿 では簡潔 に述べ る
.

BE試 験 の帰無仮説 は 2つ の仮説
′
イ:δ ≧log l.25 vs.″ r:δ <log l.25
rf::δ

≦log O.80 vs.叶 :δ >log

`´

O.80

に基づいており,BE試 験の同等性仮説に対応する帰無仮説は〃♂∪喘 と表現できる.δ は製剤間差を表す
すなわち,(2■ )式 の二つ両方の帰無仮説が棄却されたときにBEを 示したと主張する

.

.

早期 有 効 中止 を伴 う臨床試 験 で は ,Pocock法 や 0'Brien and Fleming法 に代表 され る群 逐次 デザイ ンの 理 論
が適 用 で き,解 析 それ ぞれ の 有意 水 準 を調整 して試 験全体 の第 一 種 の 過誤確 率 を制御 す る.各 解析 の有 意 水
準 は ,SASの SEQDESIGNプ ロシー ジ ャを用 い て計算す るこ とが で き る (橋 本 ・ 舟 尾 ,2021を 参照 ).

SSRを 計 画す るア ダプテ ィブデ ザイ ン として ,第 一 種 の過誤確 率 を適 切 に制御 す る様 々 なアプ ロー チ が あ
る。 ここで は ,逆 正 規 法 の統 合 検 定 (Lehm¨ hcr and Bralmath,1999)を 用 い る こ とを考 え る.逆 正 規 法 の 統
合検 定 の 検 定統 計量 は以 下 の式 で あ り,こ れ は標 準 正 規分布 に従 う

.

Z=VtteSt4 ′ ■+71 %eStZl '2
ただ し,4estは 重み

(2.2)

(0<略 est<1),Plと ρ2は それ ぞれ ,第 1ス テ ー ジの被験者 デ ー タか ら得 られ る ′値

と,第 2ス テ ー ジの被 験者 デ ー タか ら得 られ る P値 で あ る (つ ま り, これ ら二つ の ′値 は独 立).実 際 に

は,〃 ざと考それぞれの仮説に対応する統合検定の検定統計量と′値を計算し,有 意水準を参照して両方と
も有意 であれば,BEが 検証 で きた と主張す る.重 み Lestの 設定 は任意 であ り,一 つ の 自然な重み とし
て,初 期計画例数 に対す る中間解析 の例数 が分 か りやす い

.

中間解析 にて,逆 正規法 の統合検 定に対応す る条件付 き過誤関数(2.3)を 用 いて第 2ス テ ージの過誤確率 を計
算 し,そ の過誤確率 と中間解析 で推定 した個体内分散 ∂2に 基づいて条件付 き検出力(2.4)を 計算す る.条 件
付 き検 出力が 日標 の検 出力 を上回 るよ うに,第 2ス テージの被験者数 を再推定す る

4o)=1‑Φ r色二螢│二 聖[二 三≧隼」生),
ヽ vl― Wtest

Fι

(生ti′ ;≒ Fl―

̲И

ノ

.

(23)

三+ ̲4,η ̲ η‑2)
̲ η‑2)一 Il(生
′π
:lfl争

7

(24)

16.

ただ し,れ は標 準 正 規分布 の 10シ %点 ,α 2は 最 終解析 の 有意水 準 (早 期 有効 中止 を計画 しない場 合 は 0.05, 早期有効 中止 を計画す る場合 は Pocock法 な どに よる調 整 が必 要 ),F。 (χ ,m)は 自由度 ″の ′分布 の分布 関 数 ,ι′,れ は 自由度 ″の ′分布 の 10シ %点 で ある . 実際に第2ス テージの被験者数を再推定するには,中 間解析にて〃ざと″:そ れぞれの仮説に対応する′値 ρ r いて とρ 4(pr)と И⑫l)を 計算する。それらの最小値を И lを 計算し,条 件付き過誤関数(2.3)を 用 ′= min● (燿),4(妍 ))と す る.4′ と a子 を用 いて条件付 き検 出力(24)を 計算 し,条 件付 き検 出力 が 目標 の検出 力 を上回 る最小 の れ を た2と す る。 現実的には,試 験製剤 の製造準備や試験期間な ど,試 験実施条件 に関わ る様 々な観点か ら,第 2ス テージの 被験者数 に下限または上限を設 けることが考え られ る.つ ま り,第 2ス テー ジの被験者数 允2を 以下のよ う に決 める.π ヂin′ れ夢aXは それぞれ ,第 2ス テージの必要例数 の下限 と上限である。一つの方法 として,第 2 ステージの被験者数 n2を 以下 の よ うに決 める . fη Fin, n2=̀ 力 2, tη ttaX, if π 2≦ ηttln aX ifれ 夢In<力 2<れ 夢 (2.5) if π 2≧ れFax ηヂin=η 2と すると,必 要例数を初期計画から減らさず,増 加のみの計画に相当する。 3.推 定方 法 本節では,2つ の試験デザイ ンについて,最 終解析 に用い る区間推定 と点推 定 の方法を述 べ る.1つ めの試 験デザイ ンは,中 間解析にて SSRの み を実施 し早期有効 中止 を判断 しない計画である.2つ めの試験デザイ ンは,早 期有効 中止 の判断 と SSRの 両方 を中間解析 にて実施す る計画 である . 3.1.区 間 推 定 SSRの み のデザイ ン ● ′検定による 90%信 頼 区間 ^aive± se(δ naive)ι l‑OЮ 5,■ .+£ 2 2(δ na市 eは 次項 ,れ 1は 第 1ス テー ジの例数 ) ● 逆正規法 の統合検定による 90%信 頼区間 ′検定による信頼 区間は通常 の 固定デザイ ンに用 い られ る方法であ り逆正規法の統合検定 と対応 しないが , 本稿では,被 覆確率 の程度 を確認 す るために ′検定による信頼 区間 も述 べ る.逆 正規法 の統合検 定による信 頼 区間を求めるためには,逆 正 規法 の統合検定の検定統計量か ら区間推 定 を導 く必要がある.逆 正規法 の検 定統計量(2.2)が 標準正規分布 に従 うことか ら,標 準正規分布 の分布 関数 の 5%点 と 95%点 に対応 す る δ を , 90%信 頼 区間 の下限 と上限 とす る.90%信 頼 区間の下限は以下をδにつ いて解 くことで導 かれ る . Zt-o1s = ,J-wr.uZr-r'u + ただ し,ρ た =1‑F。 ,δ 1 ■ eSt4 22′ δ (3.1) 一δ)/seた ,れ た‑2)(た =2の 場合,■ 2=n2),δ ■ と δ2は ,第 1ス テージの被験 ((δ た 者デー タか ら得 られ る未調整平均 と,第 2ス テー ジの被験者デー タか ら得 られ る未調整平均 の推定量,seた はδたの標準誤差である。この解 は 2分 法な どを用いて解析 的に解 くことがで き,SASに よる計 算時間の負荷 は小 さい .信 頼 区間 の上限は,(3.1)式 の左辺 をZ005と して解 いたδで ある。分散既知の仮定の下で正規分布 を用 いて各 ステ ー ジの ′値 を計算す る場合 ,90%信 頼 区間を以下 の よ うに解 くことがで きる . δ±Se(δ )Zl‑0.05, δ 辱 +娯要 )/(辱 +呉要 =(δ SSRと 早塑宜効1中 止のデザイン 8 )se(δ )=(辱 +呉要) (32)

17.
[beta]
● ′
検定による100(1‑2α 2)%信 頼区間 へaive± se(aaive)ι l α 2″ ■
+'2 2
●

ステー ジの順 序 に基 づ く 90%信 頼 区間

SSRと 早期 有 効 中止 のデザイ ン に て ,逆 正規法 の 統合 検 定 に正確 に対 応 す る信頼 区 間 を構成す る方 法 は ,ス
テ ー ジの順 序

(stagc‐ wisc

ordcHng)に 基 づ く信 頼 区 間 で ある。 この 信 頼 区間は橋本 ・ 舟尾 (2021)に て既 に

報 告 され てお り,SASマ ク ロ も提 供 され てい る。最 終解 析 での ス テ ー ジの順 序 に基 づ く 90%信 頼 区間 の 下 限
は ,以 下 の 関数 の値 を 0.05と して 解 くδである

.

1

Qa(Pr,o,Pr,o)

: qLo * irl :f ■
,ρ
(ρ δ
{ε (χ ,y)≦ ε
l′

ノα ノ0
l,δ

2,δ )〕

y α
α
χ

(3.3)

ただ し,α .,δ =1‑Ft(zl̲α l― δ/se.,■ .‑2),1〔 ]は 括弧 内を満たす場合 に 1,そ うでない場合 に 0と す る指
示 間数,C(ρ l,δ ′
ρ2,δ )=1 Φ

+√ I rttesン 1‑22,δ )'Φ

(√瓦覇

Z■ ‑2.,δ

(・

)は 標準正規分布 の分布関数 である.各

ステージの ′値 の統合関数ε(21,δ ,P2,δ )に 逆正規法 を用 い ることで ,逆 正 規法 の統合検 定 に正確 に対応す る信
頼 区間を構成す る ことができる。(3.3)式 を解 くには,δ を解 くための三 分法な どによる数値計算 と,関 数 を
計算す る度 に実行す る数値積分 のた めに,一 定 の計算時間を要す る.90%信 頼 区間 の上 限は,(3.3)式 を
0.95と して解 くδである.(3.3)式 は ,分 散既知 の仮 定 の 下で 2変 量正規分布 を用 いて 以下 の よ うに表現す る

こ とができる (Wassmcr and Bramnth,2016).

)=P(Zl≧ ε■―δ/Sel)
+ P(Zt < c, - 6fser, Zr> ,[wt

Cδ (ρ ■
,δ ,ρ 2′ δ

"t(61-

=1 FN(ε ■ δ /Se■ ,V'瓦 est(δ■ δ

d)/ser +

)/Sel+VI・

1
ttest(δ 2

0.,

- o)1ser)

Q.4)

δ )/Se2)

ただ し,ε lは 中間解析での早期有効 中止の境界値 z.̲α .,FNは 相 関係数 Vπ .7(ml+n2)の 2変 量標準正規分布
の分布関数であ る.2変 量正規分布 の分布 関数は,Gett md Breセ (2009)に よる方法 を用 いて計算す ることが
で きる (本 稿 は Cai md Jcmcり ,2015に よる SASマ ク ロ MVIntegationを 利用 した).
● 90%繰 り返 し信頼区間
す べ ての解析 時 の信頼 区間が真値 を含 む同時被覆確率 が 卜αである とき,こ の信頼 区間を信頼係数 100(1‐
α)%の 繰 り返 し信頼 区間 とい う (Jcnnison md Tumbull,1999).BE試 験 での繰 り返 し信 頼 区間は,中 間解析
と最終解析 の両方 (中 間解析で早期有効 中止 した場合 は中間解析のみ )で 報告 され ,両 方 の信頼区間が真値
を含む同時被覆確 率 を 90%と す る方法 である。 中間解析 の繰 り返 し信 頼 区間は,通 常 の100(1‑2α .)%信 頼
区間,つ ま り δ.士 seCl)亀 ―α
‑2で ある。最終解析 の繰 り返 し信 頼 区間の下側 と上側 は,そ れぞれ(3.1)式
μ■
■
の左 辺 をZl α 2'Zα 2と して解 いたδで あ る (α 2は 最終解析 の有意水 準 )か ,分 散既知 の 下では(3.2)式 の
Zl‑OЮ 5を Zl α 2と す る区間である。繰 り返 し信頼区間は ,ス テージの順 序 に基づ く信頼 区間 と意義 が異 な るこ

とに注意が必要 である

.

3.2.点 推 定
最終解析 の推定量 は,中 間解析 と最 終解析 の重み付 け推 定量 δ=wぬ +(1‑″ )場 と考 えることができる

.

本稿では,以 下 の 6つ の推定量 を検討す る

.

● 未調整の推定量 ぬaive,w=れ 1/(η l+食 2)
●

逆正規法 の統合検定と同じ重みを用いる重み付き推定量 aest,w=4est

● SSRの 計画例数を用いる重み付き推定量 亀 r,″ =2η 1/(2η l+m2+η FaX)

● 逆正規法の統合検定の信頼区間による不偏中央値推定量 anvmed
●

ステ ー ジの順 序 に基 づ く信頼 区 間 に よる不偏 中央 値 推 定量 δswmed

9

18.

δnaiveは ,第 1ス テージ と第 2ス テージそれぞれ の被験者数 を重み とす る未調整 の推 定量である.δ testは , 逆正規法 の統合検定に用 い る重み 喝estを ,推 定量 の重みに用 い る簡便な方法である.δ ssrは ,Chang(2014) 11ユ 3項 に SSRの みのデザイ ンの推定 として紹介 されてい る方法 である.δ invmedは ,逆 正規法 の統合検定に 対応す る信頼 区間の中央 の点 である.つ ま り,逆 正 規法 の統合検 定に対応す る 50%信 頼 区間の下限 と言 い換 え られ,(3.1)式 の左辺 をZ05と して解 いたδであ る.分 散既知では(3.2)式 の δ と一致 し,w= √薦 1/Sel とす る重 み 付 き推 定量 と考 え る こ とがで き る .δ swmedは ,ス テ ー ジの順序 に基 づ く信 頼 √面 /Se■ +√ 諦 Se2 区間 の 中央 の 点 である.つ ま り,(33)に つ い て ぉ (η l,δ ,p2,δ )=0・ 5と して解 くδで あ る . 区間推 定 に逆 正 規法 に対応 す る信 頼 区間か繰 り返 し信頼 区間 を適 用 す る場合 ,対 応 す る点推 定 の方 法 は δ inmedで ある。一方,区 間推定にステージの順序に基づ く信頼区間を適用する場合 ,対 応する点推定の方法 はδ swmedで ある.twmedは 早期有効中止と SSRの デザイ ンに適用できる方法であり,そ れ以外の推定量は SSRの み と早期有効中止 と SSRの 両方のデザイ ンに適用できる方法である。 4.数 値 実 験 に よる比 較 区間推定 と点推定の望ま しい性 質は,被 覆確率 が名義水準に近 い こと,バ イア スの程度が小 さく誤差が小 さ い ことで ある.本 節では,モ ンテカル ロ・ シ ミュ レーシ ョンを用 いた数値実験 の結果 を示す . 数値墜墾艶堕左塗 検討す る試験デザインは,SSRの み のデザイ ン と,早 期有効 中止 と SSRの デザイ ンの二つ とした .試 験デ ザイ ン別 に比較する解析方 法 を表 1に 整理 した。以下の条件 に基 づいて,シ ミュ レー シ ョンのシナ リオ を作 成 した.シ ミュ レーシ ョンで比 較す る方法 を表 1に ま とめた.繰 り返 し数は 10000回 である ・ ● '製 斉]li司 差 :log l, log l.025, log l.05, log l.075, log l.1 . ● 各製剤 の個体内分散 :0.152,0.22,0.32 ● 中間解析 の時期 :初 期 の計画例数 として半数 のデー タが得 られ た時点 ● 早期有効 中止のための有意水準 の調整 :Pocock法 を用 いて ,中 間解析 と最終解析それぞれ片側 3.04% (早 期有効 中止確率 を高 くしたい状況 を考 え,Pocock法 とした) ● 初期 の計画例数 :試 験全 体で 32(2群 併せ て各 ステー ジ 16) この例数 は,製 剤 間差 log L05,個 体内分散 0.22,有 意水準片側 3.04%,検 出力 90%の 固定デザイ ンと して計 算 し,4の 倍数 に丸 めた。32名 は固定デザイン として検 出力 93.2%に 相 当す る . ● ηヂinと れヂaX:4‐ 46(個 体 内分散 0.152̲0.32の 必要例数 に相 当),16‐ 46(個 体 内分散 0.22̲0.32の 必要例数 に相 当).予 試験な どか ら想定 され る個体 内分散 の最小 と最大 に対応 して,η ダn,れ FaXを 計画す る状況 を考 えた . 表 1 シ ミュ レー シ ョンに適 用 した解析方法 試験 デ ザ イ ン SSRの み 統計的推 測 区間推 定 点推 定 中間解析 * なし * なし 最 終解析 ● ′検 定 に よ る 90%信 頼 区間 ● 逆 正 規 法 の 統合 検 定 に よる 90%信 頼 区間 ● 未調整 の 推 定量 ● 逆 正 規 法 の 統合検定 と同 じ重 み を用 い る推 定量 ● SSRの 計 画 例数 を重み に用 い る推 定量 10

19.

試 験 デザイ ン 統 計 的推 測 中間解析 最終解析 逆 正 規 法 の統合検 定 の 信 頼 区間による不 偏 中央値推 ● 定量 早 期 有効 中止 区間推 定 と SSR ′検 定 に よ る ● ′検 定 に よ る 93.92%信 頼 区間 93.92%信 頼 区間 ● ス テ ー ジ の順序 に基 づ く 90%信 頼 区間 ● 90%繰 り返 し信 頼 区間 点推 定 未調 整 の 推 定量 ● 未 調 整 の 推 定量 ● 逆 正 規 法 の統合検 定 と同 じ重 み を用 い る推 定量 ● SSRの 計 画 例数 を重 み に用 い る推定量 ● 逆 正 規 法 の統合検 定 の 信 頼 区間による不 偏 中央値推 定量 ● ス テ ー ジの順序 に基 づ く信頼 区間に よ る不 偏 中央値 推 定量 ネSSRの ための中間解析は実施するが,早 期有効中止は判断 しないため, ここではなしとした シ ミュ レーシ ョンの評価指標 は,製 剤 間差 の被覆確率,バ イ ア ス ,平 均平方根誤差 (平 均 二乗誤 差 の平方 根 ,root ofmean squae eror,以 下 RMSE)で ある.本 稿 の 主 な 目的は最終解析 での統計手法の比 較 である が ,早 期有効中止 と SSRの デザイ ンにつ いては,中 間解析 で早期有効 中止 した 中間解析,中 間解析 で早期 有効 中止 しなかった最終解析 に分けて ,シ ミュレーシ ョンの結果 を示す . 数値塞塗 2整 塁 個体内分散 022の 場合 の シ ミュレー シ ョンについて,SSRの み のデザイ ンの結果 を図 2に ,早 期有効 中止 と SSRの デザイ ンの結果 を図 3に 示 した。す べ てのシ ミュ レー シ ョンの結果 は,発 表資料に含 めてい る。早期 有効 中止 と SSRの デザイ ンにて,中 間解析 の結果は,早 期有効 中止 した場合 のみ を対象 としてい る.一 方 ,最 終解析 の結果 は,早 期有効中止 しなかったすべ ての最終解析 を対象 としてい ること注意 が必 要であ る。中間解析 と最終解析 それぞれの被覆確 率 は,そ れぞれ の解析 にて真値 を含 む割合 として示 してお り,繰 り返 し信頼 区間の 目的 である同時被覆確 率 と異なることに注意 が必 要 である。 SSRの み のデザイ ンで は ,′ 検定 による 90%信 頼区間 と逆正 規法 の統合検定に対応 す る 90%信 頼 区間 とも に,い ずれ のシナ リオで も被覆確率は名義 の 90%近 くを保 っていた。バイア ス はδtestと 亀 rが もっ とも小 さ く,バ イアスの最 も大 きい偽aiveは RMSEが 最 も小 さか った .個 体 内分散が小 さいほ ど,推 定方法 に よる RMSEの 差 が大きい傾 向であ った.η ヂinと ηttaXに よってバ イ ア ス と RMSEは 異 な り,増 加ル ール n=16)で の推定方法 に よるバイア ス と RMSEの 違 い は ,増 減 ルール (η (れ 夢 Fin=4)よ りも小 さか った。 早期有効 中止 と SSRの デザイ ンの最終解析 では,δ swmedが 安 定 してバイアス はゼ ロに近 く,RMSEも 小 さ か った。他 の推定量 のバ イ アスや RMSEは 同程度であった。 早期有効 中止 と SSRの デザイ ンにて,最 終解析 の被覆確率 は ,製 剤 間差 の真値 が大 きくなるほ ど高 くなる 傾 向が見 られた。ステー ジの順序に基 づ く信頼 区間は,個 体 内分散 が 0■ 52か 0.22で 製剤間差 の真値 が log l の場合 のみ,最 終解析 の被覆確率が 90%を 下回 ったが,そ れ以外 では 90%を 上回 った。′検定 に よる信頼 区 間 と繰 り返 し信頼区間は ,個 体内分散が 0.152か 022で ,製 剤 間差 の真値が log l以 外 の状況 で も最 終解析 の 被覆確 率 が 93つ 2%を 下回 るシナ リオがあ った。繰 り返 し信頼 区間 の同時被覆確 率 は,90%か それ 以上 を維持 11

20.

していた。ステージの順序 に基づ く信頼 区間の同時被覆確 率は,個 体内分散 が 0.32で 製剤 間差 の真値 が log lの 場合 に 90%を 1‐2%程 度下回 ったが ,そ れ以外では 90%を 維持 していた。′検 定による信頼 区間 と繰 り返 し信 頼 区間の被覆確 率 は,ほ ぼ同 じ挙動 であった。 中間解析 のバ イアスは,製 剤 間差の真値が log lか ら大 き くな るほど,推 定値 を log lに 近づ け る負 のバイアスがあった.最 終解析 のバ イアスは,製 剤 間差 の真値 につ いて非単調な傾 向であ った.実 施 したシ ミュレーシ ョンの シナ リオでは ,δ swmedの バイア スが小 さく , RMSEも 小 さか った . 94 ―‐ log l lo3 1.025 ‐ ― 3 9 ‑― 2 9 ︲ 9 0 9 9 8 8 8 7 8 6 8 log 1.075 lo_s 1.1 1og 1 05 驀 攀 ‐t検 定 ― 縦軸 :被 覆確率 (%) 逆正規法 横軸 :製 剤間差 Ю 一 lo3 1 log l.025 1og l.05 1og l.075 1o=1.1 0.08 Q Ю 一 a ● a ∝ O α 一 レ α ‑0.01 ■ α ‑0.02 log l log 1 025 log l.05 1o31̲075 1o=1・ 1 0 事藤錮未調整 颯‐ 鋼栓定重み 硼鰈諄計画例数重み 露 鰺 苺逆正規法・不偏中央値 ・ 縦軸 :バ イアス (左 ),RMSE(右 ),横 軸 :製 剤間差 図 2 SSRの み のデザイ ンの シ ミュ レー シ ョン結 果 SASマ 2口 2実 行方法 シ ミュ レー シ ョン を実行 す る SASコ ー ドは ,BESimFmc.sasと DoSim.s器 で あ る。BESimFunc.sasに 含 まれ る SASマ ク ロ%BESimFuncは 乱数 に よ るデ ー タ発生 と計算 を実行す るマ ク ロで あ り,DoSim.sasは 本節 のシ ミ ュ レー シ ョンを実行 す る コー ドで あ る。 シ ミュ レー シ ョン を実行す る手順 は ,(1)BESimFunc.sas, DoSim.sas,多 変量 正 規 分布 の SASマ ク ロ%MVInteg Onの フ ァイル を同 じフォル ダに置 く,(2)シ ナ リオ に応 じて DoSim.sasの %BESimFuncを 記 述 す る,(3)DoSim.sasを 実行す る,(4)フ ォル ダ内 に シ ミュ レー シ ョン結 果 のデ ー タセ ッ トКsultが 出力 され る,で ある.な お ,本 マ ク ロは ,固 定デザイ ン,早 期 有効 中止 の み の デ ザイ ン,SSRの み の デザイ ン ,早 期 有効 中止 と SSRの デ ザイ ンの 4つ を比較す るこ とが で き る . 12

21.

∞ % 5 9 0 9 0 9 5 8 5 8 0 8 一Ю 0 8 105 1.025 log 1 11 log 1.025 log 1.05 log 1.075 lo_c t.l 100 95 ̲ ̲ 0 9 ‐‐‐‐ ‐‐■■‐‐‐‐̲̲̀ ―‐‐●‐ ■‐‐‐―‐ L― ― =… ― 5 8 0 8 機‐ t検 定 ― log 1 log 1.025 log 1.05 lo-s 1.075 log l l 壌炒 繰り返しα ステージの 順序に基づ くCI 縦軸 :被 覆確率 (%),横 軸 :製 剤間差 ―… ・ ……‐90%・ ……… "̲蛇 % . 上段左 :早 期有効中止 した中間解析の被覆確率,上 段右 :早 期有効中止 しなかった最終解析の被覆確率 ,下 段 :同 時被覆確率 4 0 004 3 0 ヽ 003 ∝ 0.02 1 0 0.01 ‐ ―‐ 0 0 ‑0.01 ‑0.02 つ03 ‐ OЮ 4 ‐ OЮ 5 ― 柵 …燿―縫 整 ・ち ・Ю 105 1025 重み 一‐ ―‐ │艤 計画例数重み ‑006 lo3 1 1og l.025 一.逆 正規法・ 不 偏 中央値 1o3105 ― !og l.075 1og l.1 ・ 不偏 中央値 ステ ージ順序 縦軸 :バ イアス,横 軸 :製 剤間差.左 :早 期有効中止 した中間解析の結果,右 :早 期有効中止 しなかった最終解析の結果 0.OS ‐ ― 008 007 007 0.06 0.06 0.04 0.04 0.03 003 002 0.02 0.01 0.01 005 0 0 log 1 log 1.025 log t.05 log 1.075 log 1.1 log l log 1 025 1og l.05 1og l.075 1og l.1 縦軸 :RMSE,横 軸 :製 剤間差.左 :早 期有効中止 した中間解析の結果,右 :早 期有効中止しなかった最終解析の結果 図3 早 期 有 効 中止 と SSRの デ ザ イ ンの シ ミ ュ レー シ ョン結 果 13

22.

表 2 SASマ ク ロ %BESimFuncの 入 力 入力 内容 loggmr, sd 製剤 間差 (log幾 何平均 比 ),個 体 内標 準偏 差 (個 体 内分散 の 1/2乗 ) alphal, alpha2, power 中間解析 と最終解析 の有意水準 (α l,α 2),検 出力 nl 初期計画 の第 1ス テー ジ と第 2ス テージの被験者数 (η lμ 2) 虚 n2_min, n2_max SSRで の 第 2ス テ ー ジ の 最 小 と最 大 (■ 夢n,η FaX) weight 逆正規 法 の統合検 定 の 重 み (喚 est) accrual 単位 時 間 あた りの登録 被 験 者 数 accrual_stop 中間解析 の実施 中の被験者登録 の有無 (Y:登 録す る,N:登 録 しない) time PK 最終被験者 の登録か ら薬物動態解析完了までの期 間 (中 間解析 ,最 終解析共通) timc DM 薬物動態解析完了か らデ ー タ固定までの期 間 (中 間解析 ,最 終解析共通) time IA 中間解析 のた めのデ ー タ固定か ら中間解析完 了までの期 間 time FA 最終解析 のためのデー タ固定か ら最終解析完 了までの期 間 timc RS 中間解析完了か ら第 2ス テー ジの被験者登録開始 までの期間 iteration, seed シ ミュ レー シ ョンの繰 り返 し数 ,乱 数 の シー ド grid, digit, itermax 数値積 分 の グ リッ ド数 ,三 分 法 の計算精度 ,三 分 法 の最 大繰 り返 し数 analysis Y:す べ ての解析 を実行す る,N:信 頼 区間 と点推定の計算 を実行 しない 5.結 論 と考察 中間解析 を伴 う BE試 験で未調整 の方法を用い る と,第 一種 の過誤確 率 の増大だけでな く,被 覆確率 の低下 やバイア ス が発 生す る場合があ る.本 稿では,早 期有効中止 または SSRを 伴 うBE試 験 での被覆確率,バ イ アス,RMSEを ,シ ミュレー シ ョンを用 いて複数 の シナ リオに基 づいて示 した.早 期有効 中止 と SSRの デ ザイ ンにて ,製 剤 間差の真値 が log lの 場合 に早期 有効 中止 しなかった最終解析時 の バ イアスはゼ ロに近い が,log lよ り大 きい場合 に正 のバ イアスが あ った .製 剤 間差 の真値 が log lの 場合 ,製 剤 が同等である こと と真値が一致 しているため 中間解析 のバイアス はゼ ロに近 く,早 期有効 中止 した推 定値 を除 いた 中間解析 の 推定値 も log lを 中心に左右対称 にば らつ くため ,結 果 として最終解析 のバ イアスの平均値 もゼ ロに近 くな る.製 剤 間差 の真値が log lで あ る と早期有効 中止 した 中間解析では loglに 近 い製剤 間差 が観測 され るため RMSEは 小 さく,真 値 か ら離れ た製剤 間差が観測 されやすいので RMSEが 大き くなる。製剤 間差 の真値が log lよ りも大 きいほ ど,中 間解析 では真値 よ りも log lに 近 い製剤 間差が観測 され るため中間解析 の RMSE は大きくな り,逆 に最終解析 の RMSEは 小 さくな る.最 終解析 の被覆確率は,製 剤 間差 の真値が log lに 近 い場合に低 下 していた。これ は ,製 剤間差 の真値 が log lに 近 いほ ど早期有効 中止確 率 が大 き く,中 間解析 の推定値 が log lに 近 い場合 に中間解析 で有効 中止 にな りやす い。 中間解析 の推定値 が製剤 間差 の真値 に近 いほ ど最終 解析 の対象 とな らないため,被 覆確 率 が低下す る . 以上のこ とか ら,適 用す る試験デザイ ン (早 期有効 中止 ,SSR),中 間解析 の時期 ,SSRの ルール な どの計 画 の側面 だ けでな く,製 剤間差 の真値や個体内分散 が推定方法 の性質 に影響す る。実際の試験 に適用す る推 定方法 を決 定す るためには,試 験計画時にシ ミュ レー シ ョンを実施 し,バ イアス,誤 差 ,被 覆確率な どの性 質 が試験 計画や製剤間差 の想定 によって どの程度 変化す るのか を理解 してお くことが重要である.特 に,適 用する推 定量 を選ぶためには,バ イアスが小 さい こ とだけでな く,誤 差が小 さい こ とも考慮す る点だろ う . 14

23.

ア ダ プテ ィブデ ザ イ ンでは,試 験 に適 用 す るアダプテ ー シ ョンル ール や統計 手法 に よって ,バ イ ア ス等 の性 質 が 変化す るた め ,シ ミュ レー シ ョンに よつて統 計 手法 の妥 当性 を確保す る こ とが重要 で あ る と考 え られ る (FDA 2019, 日本 製 薬 工業協会訳 ).Mtter et al.(2019)は ア ダプテ ィブ臨床 試 験 の シ ミュ レー シ ョン を実施 す る方法や評価 指標 をま とめてお り,本 稿 では これ を参 考 として SASマ ク ロが 出力す るシ ミュ レー シ ョン の 評 価 指標 を決 めた .作 成 した SASマ ク ロは ,バ イ ア ス ,RMSE,被 覆確 率 だ けでな く,検 定 の 検 出力 ,結 果 の 例数 の要約 ,試 験期 間 の要約 も出力す る (要 約 は ,平 均 ,中 央値 ,四 分位 点 ,最 小値 ,最 大値 ).試 験 期 間 の説 明につ い て は ,発 表資料 を参 照 され たい .統 計 手法 の性 質 だ けでな く,例 数や試 験 期 間 の 平均 な ど を参 照す るこ とは ,試 験実施条件 に適 して い るデ ザイ ン を判 断す る助 けにな る と考 え られ る . 謝辞 本稿 は, 日本製薬 工 業協会 医薬 品評価委員会 デー タサイエ ンス部会 の継続 タスクフォース 1 アダプテ ィ ブデ ザイ ンに関す る検討 (副 部会長 菅波秀規 (興 和株式会社 ))に て検討 した内容が含 まれ ています . 参 考 文献 Cai K and Wilson JR.How to usc SAS① fbr G:MM logistic regrcssion modcls for longitudinal dda with time‐ dependent covariatcs.In Proccedings ofthc SAS Global Forum 2015 Contrence.SAS・ URL聾基狙 螢Lpl』:lic」 釜!上 ⊆1塾 生id五 :Q]饉 ∠ 【:墜11望=L:≧ [理ェ里王TEGRAI!≦ :二 〕 艶 :五 ア クセ ス ] イク ロ %ル IVINTEGRAT10N(D 12【 凶yュ≦ ェQ=旦釜 [2022年 8月 19日 ̀墾 Chang M.Adaptivc Dcsign Thcory and lmplcmcntdion Using SAS and R.Chapman&Hal1/CRC.2014. Food and Drug Adminittration.Adaptivc Design Clinical Trialsibr Drugs and Blologics Guidance for lndustrン Gcnz A,Bretz F(2009).Computation ofiM:ultivai■ ′ .2019. e Normal and t Probabilities,series Lecture Notcs in Stttittics. Springer‐ Verlag,Heidelberg.2009.ISBN 978‑3‐ 642‑01688‐ 2. Jcnnison C and Turnbull BW.Group Scqucntial Mcthods with Applications to Clinical Trials.Chapman&Hal1/CRC. 1999.森 川 敏 彦 ,山 中 竹 春 (訳 )臨 床 試 験 に お け る群 逐 次 法 理 論 と応 用 .EPク ロ ア 出版 .2012. Lelllnachcrヽ V and Wasslner G.Adapting sample size calculations in g・ oup scqucntial trials.Biolnettics 1999;55:1286‑ 90. Maycr C,et al.Sinlulation practices fbr adaiptive trial dcsigns in drug and device developrnent.Statistics in Biophamacc■ ical Rcscarch 2019;11(4):325‐ 335. Wassincr G and Brannath W.Group Scqucntial and Conirinatory Adaptive l)esigns in Clinical Trials.Springer.2016. 厚 生 労 働 省 ,後 発 医 薬 品 の生 物 学 的 同等 性 試 験 ガ イ ドライ ン .薬 生 薬 審 発 0319第 1号 令 和 2年 3月 19 日.量 堕望墨坐型車里壺撃ュil菫 ■週Q凶 24塁 五輿」 [2022年 8月 19日 ア クセ ス ] 厚 生労働省 ,後 発 医薬 品 の生物学 的 同等性試 験 ガイ ドライ ンに 関す る質疑応 答集 (Q&A).事 務連絡 令 和 2年 3月 19日 .hup望墨[w世」 塑1量生さと 血2∠l塁∠oo塑 豊lx2撃 亜 [2022年 8月 19日 アクセ ス] 日本製 薬 工業協会 .ア ダプテ ィブデザイ ンに関す る FDAガ イ ダンスの邦訳 .2021. hЩ 憂菫竺ぽ堕聖」p型 墜£些.L∠ m重塾1112二 :QElttl璽 ̲u」 i型 ■塾」 :蜃 2■ :lム 年 8月 19日 ア クセ ス] ■望菫菫g重 型 £Ω堅型 軍xL亜 ̲a■=旦塁左型堕 :L:菫:̲二 f昼 量」 Ц茎量l[2022 1⊇ ̀211≦ 橋本 隆正 ,舟 尾 暢男 .中 間解析 を伴 う生物学的同等性試験 のデザイ ン検討 ,SASユ ーザー総会 2021. 森 田 祐介 ,浜 田 泉 .SASで 始めよ う被験者数再計算 を伴 う生物学的同等性試験 〜後発医薬 品の BEガ イ ドライ ン改正 に適応す る〜,SASユ ー ザー総会 2021. 15

25.

生 物統計・ 医薬関連 /SASシ ステム

27.

SASに よるRaincloud Plotの 実装 o森 岡裕 1、 遠 山拓 1、 田 中真 史 1、 中川 雄 貴 1 (1イ ー ピー エ ス 株 式 会 社 ) Raincloud Plot lmpleinenね tion with SAS Yutaka MoHokal,Taku Toyamal,Masashi Tanakal,Ytti Nakagawal (lEPS Corpor江 lon) 要旨 1変 量 のデー タの ビジュアライゼー シ ョン手法 として Raincloud plotが ある.カ ーネル密度推定 を使 い,デ ー タの分布 を可視化す るバ イオ リン図(宙 olin plot).最 小値 ,第 1四 分位 点 ,中 央値 ,第 3四 分位 点 ,最 大値か ら な る五数要約値 を中心 に可視化 を行 う箱ひげ図(box― md‐ whisker plot)。 デ ー タの値 をそ のまま個 々 に描画す る 散布図.こ れ ら 3つ のプロ ッ トを組 み合わせ ,バ イオ リン図を雲 ,散 布 図を雨 とみたてて (箱 ひげ図は傘 と も解釈 されている),デ ー タの分布 をできるだけ忠実 に描画 しよ うとす る手法が,Rahcloud plotで ある . Raincloud plotは Python,Rな ど多 くのプ ログラム言語 で既 に実装方法が公 開 されてい るが,SASで の実装例 は極 めて少ない。本稿 では様 々なパ ター ンの hincloud plotの 実装方法 を提案す る . +-V * i.^ : Raincloud Plot, proc sgrender, Data visualigation Raincloud plotと は Raincloud plotは 、Aarhus Univcrsityの Micah Allcn氏 らが 開発 して ,2018年 に電子 ジ ャー ナル PccrJで 公 開 した単変量デ ー タ に対 しての ビジ ュア ライ ゼー シ ョンの 手法 で あ る[1].後 に,同 じく電子 ジ ャー ナル の Wellcomc Opcn Rcsearchに も投稿 され てい る[2].多 種 類 の プ ロ グ ラム 言 語 に よる実装 方法 も併せ て ウェブ 上 で公 開 した こ とに よ り,世 界 中 の 多 くのプ ログラマ ,デ ー タサイ エ ンテ ィス トか らの コ メ ン ト, レビュー コー ド改 良を うけて ,今 日まで進 化 と拡 張 を繰 り返 して い る , . エ ラーバー付 き棒 グラフや ,箱 ひげ図の 問題 点 デ ー タを可 視 化 す る際 に,平 均 と標 準偏差 を,棒 グ ラ フ とエ ラー バ ー (エ ラーバ ー 付 き棒 グ ラフ)で 表示 す る こ とがあ る。た だ し,情 報量 と しては極 めて圧 縮 され てお り,元 デ ー タの分布 に よって は正確 な情 報 と 乖 離 す ることが知 られ てい る。 また ,同 じく単 変 量 の 可視化 の 手 法 で主流 な もの と して ,箱 ひ げ図(box― and‐ whiskcr plot)が 挙 げ られ る . 最 小値 ,第 1四 分位 点 ,中 央値 ,第 3四 分位 点 ,最 大値 とい う五 数 要 約 値 を中心 に箱 とひ げ を作 り,そ こに 19

28.

外れ値 や ,平 均 な どの情報 を付加 す るこ と も可 能 であ る。それ に よ り,デ ー タの分布 が正規 分布 か ら外 れ た 場合 にお い て も,把 握 が しや す い よ うに 工 夫 が され てい る . た だ し,例 えば以 下 の よ うにデ ー タの分 布 が 多峰性 であった 場 合 (左 側 ヒス トグ ラム)に ,箱 ひ げ図で要 約す る と右 図 の よ うにな り,一 見 ,正 規分 布 に従 つてい るので は な い か とミス リー ドを招 いて しま う . バ イ オ リン図 と蜂群 図 デ ー タ の 分布 を視覚化 す るた めに,カ ー ネ ル 密 度推定 に よつて得 られ た確 率 密 度 を左右対称 に描 画 したバ イオ リン 図(violin plot,左 下 図 )や ,1次 元 上 に元 デ ー タを描画 し,値 が同値 の 場 合 は少 しず ら して表 現 (ジ タ リング)し た蜂群 図 (beeswann,右 下 図 )が 存在す る.蜂 群 図 と箱 ひげ図 を重 ね る場合 も多 い . ︐ ■1 ・ ︐ バ イ オ リン図 と蜂群 図 をあ わせ てみ る こ とで ,デ ー タの分布 の 把握 が よ り正 確 にで きるよ うにな るが , 別 々 の プ ロ ッ トに分 かれ て い る とど うして も同時 に素早 く認 識 す る こ とが難 しい 面 が ある . さまざまな Raincloud plotの 実装 Mictt Allen氏 らはバ イ オ リン図 と箱 ひ げ図 ,散 布 図を 1つ の プ ロ ッ トにま とめ て 作 図す る方法 を Raincloud plotと して提案 し,あ わせ て 、 Pメ hon,M誠 1め それ ぞれ で の 実装例 を論 文 に示 した .本 稿 で は SAS ユ ー ザ ー ヘ の Raincloud plotの 紹介 と普及 , さ らに 日本 の SASユ ー ザ ー の手 に よって ,さ らな るプ ロ ッ ト手 法 の発 展 が起 きるこ とを期 待 して ,SASで Raincloud plotを 作成 す る際 に ヒン トとな るであろ うポイ ン トを 解説 す る . 20

29.

パネル分割 Raincloud plot RI」 nC:oud P:ot 塑」ビ鶴 朧目鐵 ° ・:1為 』 蝙髄懺琲辮詩[鋼塞:篭 圏轟鍮ら∴ :鶴 ■ 轡翼 ぷ攣辟醐靭撃IF奪 =■ 。 =.・ 20 V」 ue 上記 の Raincloud plotを 描 画す る コー ドを基 に説 明 を行 う。上 図 の例 は 2つ の グル ー プで分割 して描 い て い るが , これ を 2時 点 と考 え るこ とも可能 で あ り,n個 にパ ネ ル で別 れ た Raincloud plotの 書 き方 へ と一般 化 できる . SASに は グラフを描 くプ ロ シジ ャが 多 く提 供 され てい るが,Raincloud plotの 場 合 ,基 本 的 に は GTL(Graph Tcmplatc Language)と Sgenderプ ロシジ ャに よる実 装 を推 奨 したい .Sgplotプ ロシジ ャ の方 が グ ラ フの 作 成 において は簡 易 な コー ドとな りや す いが ,箱 ひ げ図 の軸 を他 のプ ロ ッ トの軸 と同期 させ る こ とが 難 しい .描 画 のための x,y軸 の値 を指 定 で き る,例 えば棒 グ ラ フ用 の vbaparin(hbarpttm)の よ うな xrarin系 のステ ー トメ ン トに‖ boxparm"が 将来 的 に導 入 されれ ば Sgplotプ ロシ ジ ャ の利 用 が 現 実的 にな るが ,SAS 94M7時 点 では存在 しない . コー ド全 体 は Appendix lに 示 してい る.以 下 ではポイ ン トとな る部分 を ピ ック ア ップ した い 。 まず ,バ イ オ リン図 を描 くた めに,Kdeプ ロ シジ ャでカ ー ネ ル 密 度推 定 を行 う . θ′ proc kde data : test ; θ2 univar val /out=kde ; θ3 by GROUP; θイ run; 事ユV!劉 ABLE WortKde 「 .: ity val ‑0.371303489 ‑0.819413312 51 val ‑0.887517134 52 53 val ‑0.5i5820357 val ‑0.38372478 54 val 55 val ‑0.2i1828833 ‑0.059932423 58 val 7 5 8 一 5 9 一 5 〇 一 8 I I val I I 49 50 ︲ 一 6 val 0.0919887517 0.2438599289 val 0.3957581031 val 0.5473522384 0.8995484806 0.8514448378 val val 0.0050432718 0.0053441122 0.0058538975 0.0059725072 0.0032998041 0.0086358338 0.0089738225 0.007332i724 0.0076924887 0.0080804659 0.0084859328 0.00881881 0.0092082231 21

30.

元 の値 のスケール に紐 づ く密度デ ー タが上図のよ うにデ ー タセ ッ トに出力 され る.分 布 の 元デ ー タが存在 しない部分 の密度推 定 を,最 終的に Raincloud plotの 雲 にあた る部分で表示す るかについ ては ,検 討 の余地 がある.Rや Pythonで はカ ッ トしてい るライブラ リも多 い印象である (.も し表示 しない場合 は予め元デ ー タの範 囲 (最 小値 か ら最大値)を 算 出 しておき,範 囲外 のデー タをここで削除す るか、univarス テー トメ ン トに trullcatcオ プ シ ョンを指定 してお けばよい。 また,カ ーネル 密度推 定において は ,カ ーネル 関数 のバ ン ド幅をパ ラメー タ として定義す る必要があ り , その決定法にはい くつ か種類がある.た だ し,本 稿 ではそれ らには言及せず に,す べて SASの Kdeプ ロシ ジ ャにお けるデ フォル トの設定で,バ イオ リン図用 のデ ー タを作成 し,範 囲 でのカ ッ トも行 っていない . θ′ ods all close; θ2 ods output SGPlot:box; θ3 proc sgplot data:test; θイ vbox val/group:goup; θ5 run; θ6 ods html; 上記 コー ドは本 来 ,箱 ひ げ図 を単体 で描 くため の も の で あ るが,01行 の 部 分 で odsを 全 て 無 効化 してお り,こ の コー ドで は プ ロ ッ トが生成 され な い .し か し 02行 で ods ou"■ で SGPlotを 指定す る こ とで ,箱 ひ げ図 を描 いていた 場 合 の ソースデ ー タ とな るもの をデ ー タセ ッ トで取 得す る こ とが可能 で あ る。 予 め箱 ひ げ図生成 に必 要 な集約 デ ー タ を得 てお く こ とで ,後 の Raincloud plotの ソース にす る際 に容易 に なる . θF da● wk2; θ2 set kde(in=inり /*雲 の 部分 */ θ3 box(in=inb whcrc=(∧ missing(BOX̲VAL̲GROUP̲GROUP̲Y)))/*傘 θイ test(in=inc)/*元 デ ー タその もの (箱 ひ げ)の 部 分 */ 雨 の部分 */; θ5 call s"caininit(20220901); θ6 ifina thcn 10w=o; θ7 ifmissing(BOX̲VAL̲GROUP̲GROUP̲STncn BOX̲VAL̲GROUP̲GROUP̲ST="DU卜mfY"; θ∂ if^missing(BOX̲VAL̲GROUP二 GROUP̲GP)then group=BOX̲VAL̲GROUP̲GROUP̲GP; θ91 ifinb then dunllmy̲x==̲o.ol; fθ ifincthen do; 22

31.

′f dummy̲J=‐ 0.05; ′2 randOm・ rand("uniお Hn")*0.01; ifmnuni(777)く 0.5 men dummyJ=dummy̲y― random;/*雨 を散 ら して い る部 分 */ ′3 elsc dummy̲y=dummy̲y+random; ′イ ′5 end; ′6 run; 上記 コー ドで ,バ イオ リン図 のデ ー タ と箱 ひ げ図用 のデー タ,そ して元デー タを散布 図用 に sdし ,単 純 に縦 につ な い で い る . Ramcloud plotに お け る片方 の軸 (今 回 の場合 ,y軸 )は 意 味 を もた な い ダ ミー座 標 とな るので ,そ こでプ ロ ッ ト同士が衝 突 しない よ うに調整 して い る 13‐ . 14行 日は ,散 布 図の部分 で ,ラ ン ダ ム にダ ミー 座 標 となる軸 の 部 分 でデ ー タを散 らして い る処理 にな る .SASの SG系 の グラフには 自動 でデ ー タが重 な らない よ うに散 らす (Jhering)機 能 もオプ シ ョン として用 意 され てい るの でそ ち らも併用 した .今 回 ,マ ウス カー ソルオ ンの機 能 を後 に紹 介 したい ために一様 ラ ン ダ ム に大 き く散 ら してい る . 01 ods graphics on /imagemap=on tipmax:5000; 02 ods html path=" ?'7 7 afrhrt? I v, I ll " file="test.htm1"; 03 proc template ; 04 definestatgraphRCP; 05 begingraph; 06 entrytitle "Rain Cloud Plot"; 07 layout datalattice rowvzu:group/columnaxisopts=(label:"Value") rowaxisopts:(display:none); 08 layout prototype; 09 bandplot x=value limitupper:density limitlower:low ; 10 boxplotparmy:BOX_VAL_GROUP_GROUP_Yx:dummy_x II staI=BOX_VAL_GROUP_GROUP_ST /boxwidth:0.3 orient = horizontal ; I2 scatterplot x=val y:dummy_y/ j itter:auto j itteropts:(axis:Y width: I ) l3 markerattrs:(symbol:circle size=8 transparency:0.4) 14 rolename:(tipl=ID tip2:VAL) tip:(tipl tip2) tiplabel=(tipl="ID" tip2="Value") ; 15 endlayout; 16 endlayout; 17 endgraph; 18 end; 19 run; 20 proc sgrender data:wk2 template:RCP ; 21 run; 22 ods htrnl close; 上記 コー ドは グ ラフのメイ ン とな るテ ンプ レー ト定義部 分 と実行 部 分 とな る 23

32.

07行 日の 部 分 で大 元 の 分 割 レイ ア ウ トを宣 言 し gЮ upと い う変 数 に基 づいて ,パ ネ ル 分割す る よ うに定義 してい る . 08行 日の 1り out probtypcで Raincloud plotの 構 成 要素 とな る 3つ の プ ロ ッ トをま とめ る レイ ア ウ トを宣言 してい る .prototypcは あ ま リー般 的ではな い レイ ア ウ ト指 定 で は あ るが,パ ネ ル 分割 の都 合 に よ る制 限 な ど があ り,ddalamccと prototypeで の構成 とした . バ イオ リン 図 は 09行 日の bandplotス テー トメ ン トで ,x軸 に元 の値 を,y軸 の 帯 上 限値 (limmpper)に 推 定 した密 度 を指 定 してい る .limmowerは 帯下 限 に あた る部分 で 、 本 例 では 0で あ る . 10‑11行 日が箱 ひげ図 を作 成 してい る部分 で あ る .箱 ひ げ図 の 作 成 には boxplotス テ ー トメン トが存 在 す る が ,グ ラ フの重 ね合 わせ と レイ ア ウ トには ,組 み合 わせ可能 な場 合 と不可能 な場 合 が あ り,今 回 の ケ ー ス で は boxplotス テ ー トメ ン トは使 用 ができない。そ の た め予 め箱 ひ げ 図生成 に必要 な パ ラメー タを用 意 してか ら作 図す る boxplotpannス テ ー トメ ン トを利 用 して い る . 12■ 4行 日が散布 図 を作成 してい る部分で あ る .14行 日の rolcname=,tip=,tiplabel=に つ いて ,こ れ は 出力 され た htmlフ ァイル に マ ウス カ ー ソル を当てた 際 に ,そ の グ ラ フに設 定 され た表 示 項 目をポ ップ ア ップす るた めの機 能 で あ る.本 例 で は ,雨 にあた る部 分 にカ ー ソル を あ て る と元のデ ー タの IDと 値 が 表 示 され る よ うに設 定 して い る。 外れ 値 な どを トレー ス す る際 に便 利 で あ る .01行 日の imagemap=on tipm欲 =5000は この機 能 を作 動 させ ,最 大 5000個 までのデ ー タチ ップ に対応 す る よ うに してい る , . 一 ● ● ID=77 V急 i懇 e=31̲確 63 0 鶴 ただ し, この機 能 につ い て はそれ ほ どカ ー ソル オ ンの判 定精 度 が よ くな く,デ ー タが多 い場合 は 煩 雑 に も なるため,状 況 に応 じて利 用 を検討すれば よい . 20‑21行 目が 03■ 9行 日までで定義 したテ ンプ レー ト を使 って,実 際にグラフ を定義 している部分 とな る . パネル 分割 Raincloud plotの 良い点は,proc kdeや │││‐ s帥lot vboxに け 変数 を一 つ 追加 して,1等 o■ datalttice 輩 議 ‐ ‐│ │││││‐ 1日 11■ 田 臓 議 !.+o ´ ヽ 。 '峰 婦 口 ■ ■ 鮨 由″‐ ‐ │: │ に columnvarと して指定すれ ば右 図のよ うなマ トリクス を簡易 に得 られ る点である.多 群間の多時点で の分布 1 ,饉 犠硼ロロ■■目謳夕奪■ . ´Ⅲ‐ │■ 日 ■■■日│口 ヴ ‐ メt脅口■目的曖 ″■ ・ ',翻 曰 願 麟 胸 ″ i 推移 を簡 単 に確認す るこ とがで き,使 い勝手 の よい書 き方である と考 えてい る。 ただ,パ ネ ル 分割せず に単純 に byで 連続 で複数枚 グ ラフを描画 したいケース もあ る と思われ るので ,1枚 plotを byで 回す シンプル なバー ジ ョンも Appcndix 2に ‐ ― '.′ 』 尋 a目 │‐ 剛 つ けてい る . 24 ― = 一 ,伊 塵日田│■ ■口■夕,t

33.

推移線付き時系列 Raincloud plot 1 0 =ふ ● W● □ ● ● =k2 0 W● ● ● oLoE 一 一C一 ト k3 W● ● k4 n︶ ■ ● W● ● ● ソ●●k 5 『 ● 0 20 囀 60 Value 比較 対 象 とな る群 を色 分 けす るな ど し, さ らに時系列 もパ ネ ル 分割 せ ず に 1枚 で表 現す る.そ の上 で 中央 値 や 平均 値 な どの代表 値 を推 移線 で結 ぶ 表 現 法が ある.こ の 時 の推移線 は ,雲 同 士 を貫 い てい る ところか ら,雲 放 電 のイ メー ジ で ,「 雷」 に例 え らえ る . 雷 を表 現す る場合 ,パ ネ ル 分割す る と,パ ネ ル を超 えて の描 画 が不可能 のた め ,1枚 図にせ ざるを得 な い。 た だ し,こ れ に よ り boxplotpannス テ ー トメ ン トで はな く boxplotス テー トメ ン トがそ の ま ま使 え るよ う にな るた め前処理 は コ ンパ ク トにな る . θ′ proc kde data: test ; θ2 univar val /ouFkde ; θ3 by TimePoint GROUP; θイ run; θ5 datawk2; θ6 set kde(in=ina) θア test(in:inb); θ∂ by Timepoint; θ9 retain timecount 0; ′θ if first.Timepoint then timecount+0.3; ′′ label val:"Value"; f2 run; 25

34.
[beta]
しか し,09‐ 10行 日に 当た る部分 で ,仮 想 軸 の適 当な調 整 を行 ってい るが ,時 点数 な どに応 じて このあた り
の 調 整 と,グ ラ フ側 で の調 整 も必要 に な り うるため,パ ネ ル 分割 よ りも煩 雑 で あ る。

01 proc template ;
02 define statgraph RCP ;
03 begingraph;
04
layout overlay/ yaxisopts : (label="Timepoint" offsetmin:0.03 offsetmax:0.O3
05
linearopts=(tickvalueformat=frnt.tickvaluelist:(-0.3 -0.6 -0.9-1.2 -1.5)));
06
bandplot x:value limitupper:eval(density-timecount) limitlower:eval(0-timecount)
07
/group:GROUP fillattrs:(transparency:0.4)tip:noneDISPLAY:(fill);
08
boxplot y = va1 x: eval(-0.03-timecount)
09
/orient:horizontalgroup:GROUP groupdisplay:cluster
10
clusterwidth:O.2 fillattrs:(transparency:0.4) connect=near
II
display:(caps frll mean median outliers notches connect) boxwidth : 1;
12
scatterplot x:val y:eval(-0.12 + 0.05*cd(NORMAL', rannor(1234)) + coalesce(0, val)-timecount)
l3
/ group:group jitter:auto jitteropts:(axis:Y width:l) markerattrs=(symbol:circle size:5 transparency=0.4);
14
endlayout;
15 endgraph;
16 end;
17 run;
GTLに お ける eval関 数 を各所 で使 用 して い るが ,す べ て軸 調整 のた め で あ る

.

10行 日は boxplotス テ ー トメ ン トの オ プ シ ョンで conncctに mcanを 指 定 して い るが,こ れ だ けで平均値 を直
線 で結 ぶ こ とがで き るた め ,追 加 の plotス テ ー トメ ン トを作 る必要 が な く非 常 に便利 であ る

*tffiabb Raincloud plot
口 ● ●● M●

L =醸L一
■ 燿 ⑮ 旧= = ﹁ ︱

=

L
26

│●

.

35.

医薬分野にお い て,治 療介入前後 の同一被験者 の値 の対応 と推移 がそれぞれ分 か るよ うにプ ロ ッ トす るこ とがあるが,上 図 はそれに Raincloud plotを 応用 した例 になる。 01 (crl. *lllr)-*llffif+) 02 bandploty:valug limitupper:-0.2 limitlowerdensityl 03 / group=111641 fillattrs:(transparency=0.4) tip:none; 04 bandploty=v61us limitupper:density2 limitlower:0.2 05 /group=fftE41 fillattrs:(transparency:0.4)tip:none; 06 boxplot y: val x:box-x 07 lboxwidth: I group:TREAT groupdisplay=cluster clusterwidth:0.1 name:"box"; 08 seriesplot x:series_x y:val 09 ldisplay:all group:TREAT_ID l0 markeratt5:(symbol:circlefrlled size:S transparency:0.4) 1in"6a5:(thickness:l pattern:solid ) I I linecolorgroup:TREATmarkercolorgroup:TREAT; 12 (crl. *[A-*[fEf+) 片方 の時点 の 向 きが反転す る よ うに事前 にデ ー タ ス テ ップで正 負 を調 整 を行 った .02‐ 05行 で 2つ に 分 け てバ イオ リン 図 を描 い てい る。 本 例 の場合 は,推 移 線 で結 ぶ のが各 被 験者 の値 とな るた め ,08行 で scatterplotを 使 わ ず に seriesplotで マ ー カ ー付 の推 移 線 を引 いて表現 して い る。 オ ー プ ン で あ る こ との 意 味 と公 開 され て い るプ ロ グ ラ ム 自由なカスタマイズ Rainclod plotに つ いて は SNSを 始 めた とした Web上 の オープ ンス ペ ー ス での切磋 琢 磨 の議論 を経 て ,磨 かれ てきた背 景 が あ る.カ ー ネ ル 密 度推 定 と箱ひ げ図 と元 のデー タ の そ の ままのプ ロ ッ ト(散 布 図に限定 し な い)が 組み合 わ さ って ,そ れ ぞれ の プ ロ ッ トがお互 い を補 ってい る ところが主 旨で あ るた め,そ れ を満 た していれ ば,構 成 の 自由度 は高 い と考 え られ る。以 下 は ,雨 が 直線 で ,よ り雨 らしく見 え るよ うに,傘 が よ り傘 らしく見 え る よ うに,遊 び 心 で作 った 図にな る。 T = = 1= 27

36.

公 開 され てい るプ ログラ ム す で に ポ ー ラ ン ドの SASユ ー ザ ー グルー プ の Bttosz Jabloitti氏 が G価 ubで Raincloud plotの 作 図 マ ク ロ を公 開 して い る[3]。 また , 日本 の SASブ ロ グ運 営者 の SupermmP氏 (ハ ン ドル ネ ー ム )も ,Githubで 様 々 な形 の Raincloud plotを 作図 可能 な マ ク ロを公 開 してい る[4]. 利用 法 に つ いてはそれ ぞれ の README.mdの 説 明 を参照すれ ば ,SASの GTL等 へ の深 い知識 が な くて も,容 易 に高機 能 な ビジ ュアル の恩恵 にあず か る こ とが可能 で あ る . 終わ りに 今 回 ,Raincloud plot作 成 に際 して,デ ー タ の あ るがままの姿 を どの よ うに ビジ ュ ア ライ ゼー シ ョンす る こ とが よい の か つ とい う基本 的 な 問 い に立 ち返 り,考 えることが で きて ,非 常 に有 意 義 で あ った . 昨今 ,臨 床 分野 にお け るデ ー タの収集 も多様 化 してお り,1日 来 とは違 った , ビジ ュ ア ライゼー シ ョンに よ る異常検 知 や ,性 質把握 の 重 要性 が増 して い る と考 えてい る.そ の よ うな背景 にお い て Raincloud plotは 非 常 に有用 で あ る。 一般 的 に ,新 しい,有 用 な作 図法 が世 の 中 に広 ま るためには ,多 くのプ ログ ラ ム 言語 で実装 され る とい う こと も重 要 な要素 と考 えて い る .今 回 ,SASユ ー ザ ー が Raincloud plotを 作図す るた めの一助 とな るべ く本 稿 を著 した こ との意義 を 自負 す る ところで あ る し,ま た,す で に複 数 の SASユ ー ザ ー が ,他 の ユ ー ザ ー の 助 けにな るた めに SASマ ク ロ を無償公 開 して い る こ とも非常 に価 値 が ある ことだ と感 銘 を受 けて い る . 今後 の 様 々 な ビジュア ライ ゼ ー シ ョン手法 の 探 求 も この よ うな活 動 に よつて拡 が り,支 え られ ,ま た SAS ユ ー ザ ー の 世 界 において も,同 様 に盛ん にな る こ とを心 よ り願 う . 引用 文 献 tll Micah Allen, Davide Poggiali, Kirstie Whitaker, Tom Rhys Marshall, Rogier Kievit, "Raincloud plots: a multiplatform tool for robust data visualization" , PeerJ, Alg .23,2018 https: I /peeri .con lpreprints/21 1 3'7 I (Accessed Alg 05 , 2022) l2l Micah Allen, Davide Poggiali, Kirstie Whitaker, Tom Rhys Marshall, Jordy van Langen, Rogier A. Kievit, "Raincloud plots: a multi-platform tool for robust data visualization" , Wellcome Open Research, lan .21 ,2021 https://wellcomeopenresearch.ore/articles/4-63 (Accessed Aug 05, 2022) t3l Bart Jablonski, "The BasePlus package [ver. 1.17]" ,May .12,2022. https://eithub.corn/vabwon/SAS*PACKAGES/blob/main/packaees,/baseplus.md#raincloudplotmacro. (Accessed Aug05,2022) t4) SupermanJP, "SAS_Plotter" ,lul .3,2022. https://eithub.com/Superrnan-jp/SAS_Plotter (Accessed Ang 05, 2022) 28

37.

Appendix I oZlet oupath:XXXXXX; /*Test dataset*/ data test; call streaminit(l080); GROUP="A"; do id:l to 200; val=and("normal ", I 0, 5);output; end; do id:201 to400; val=and("normal",3 0,5 );output; end; GROUP="B"; do id:l to 200; val=and("normal", I 8,5);output; end; do id:201 to400; val:rand("normal",22,5 );output; end; nrn; /* calculation---kemel density estimation*/ proc kde data: test ; univar val /out:kde ; by GROUP; nrn; /* calculation---for box-and-whisker*/ ods _all_ close; ods output SGPloFbox; proc sgplot data:test; vbox vaVgroup:group; run; ods html; /*dataset-fix*/ datawk2; set kde(in:ina) box(in=inb *1r"rs:(^missing(BOX_VAL_GROUP_GROUP_Y)) test(in:inc); call streaminit(06 I 5); 29

38.
[beta]
if ina then low:0;
if missing(BOX_VAL_GROUP_GROUP_ST) then BOX_VAL_GROUP_GROUP_ST:'DUMMY";
if ^missing(BOX_VAL_GROUP_GROUP_GP) then group:BOX_VAL_GROUP_GROLIP_GP;
if inb then dummy_x:-0.01;

if inc then do;
dummy-y:-0.05;
random:rand("uniform")* 0.0 l'

if ranuni(777)<0.5 then dummy3:dummy_;r - random;
else dummy__y=dummy_y + random;
end;

run;

/*Plot-define*/
ods graphics on /imagemap:on tipmax:5000;
ods html path="&outpath" fi le="test.html" ;

proc template ;

define statgraph RCP ;
begingraph;

entrytitle "Rain Cloud Plot";
layout datalattice rowvar:group/ columnaxisopts:(1abe1="Value")

rowaxisopts:(display:none);

layout prototype;

bandplotx=valuelimitupper:density

limitlower:low ;

boxplotparm y=BOX_VAL_GROUP_GROUP_Y x:dummy_x

stat:BOX_VAL_GROUP_GRO1IP_ST /boxwidth:0.3 orient : horizontal ;
scatterplot x:val y:dummy_y/ jitter:auto jitteropts:(axis:Y

markerattrs=(symbol:circle size:8 transparency:0.4)
rolename:(tip I :ID tip2:VAL)

tip:(tipl tip2)
tiplabel:(tipl :"ID" tip2:"Value")
endlayout;
endlayout;
endgraph;
end;
run;

/*Plot-submit*/
proc sgrender data=wk2 template=RcP ;
run;
ods htrnl close;

30

width:l )

39.
[beta]
Appendix 2
%ld outpath=.;
/*テ ス トデ ー タセ ッ トにつ い て は Appcndix lの もの と同様 */

proc kde data: test;

univar val / out: kde;
by GROUP;
run;

dalawk2;
set kde test;

proc sort;

by group;
run;

ods graphics on / height: 3in width

: l2in;

ods html path: "&outpath" file :'test.htrnl';

proc template;
define statgraph RCP;
begingraph;

layout overlay
/ xaxisopts: (label: " type: linear

linearopts: (viewmin: -20 viewmax: 60
tickvaluesequen..: (start: -20 end:60 increment = l0)))
yaxisopts: (label :' 1,
bandplot x: value limitlower = 0 limitupper: density
/ display: all;
boxplot y = val x
/ orient

: eval(-0.02 + coalesce(0, val))

: horizontal

boxwidth: 0.3

x: val y : eval(-0.05 + 0.01*cdf(NORMAL', rannor(1234)) + coalesce(0, val))
/ markerattrs : (symbol: circle size : 8 transparency : 0.4);

scatterplot

endlayout;
endgraph;
end;
run;

31

40.

proc sgrender data: wk2 template: RCP; by group; run; ods html close; 鰺 θ調絆畿参曲醸的圏マ纂評3醸鍋繭鑢曲麟亀麟 ■8% │。 SASシ ステム │ 。。S。 1 ・ハ tiF鍛議爾諄醐瞑霞饉閲劇覇襲 霧 :、 ■■ '' 32

41.

SASに よる遺伝的 アル ゴ リズムの実装 o折 井悟 1 (1イ ー ピー エ ス株 式会社 ) Genetic Algorithm Implementation with SAS Satoru()riil (lEPS Colporttion) 要 旨 遺 伝 的 アル ゴ リズ ム は ,生 物 の遺伝 の 仕 組 み をモ デル に考 案 され た ,近 似 解探 索 に用 い られ る メ タ ヒュー リ ス テ ィ ックアル ゴ リズ ム で あ る.Python等 の言語 にお い て は ライ ブ ラ リや 実装方 法 の公 開が盛 ん にな され て い る一 方 ,SASに お い て は ,製 品 SASo Optimizationで 遺 伝 的 アル ゴ リズム の機 能 が提供 され て い る ものの Base/STATの 最 も基 本 的 と思 われ る構 成 の SAS環 境 で実 装 した例 は少 な い , . 本 論 文 では,遺 伝 的 アル ゴ リズムの概 要 の解説お よび SASで の 実装例 の紹介 を行 う . +*V * r^ : Genetic algorithm 遺 伝 的 アル ゴ リズ ム とは 遺伝 的 アル ゴ リズ ム は ,生 物 の遺伝 や進 化 の仕組 み を模 して最適 解 を探 索す る 「進化 的ア ル ゴ リズ ム」 に 分類 され るアル ゴ リズ ム で あ る国.遺 伝 的 アル ゴ リズ ム で は ,与 え られ た問題 の解 の候補 を生物 の 個 体 に見 立 て , 自然選択 ,交 叉 ,突 然変異 とい っ た過程 を繰 り返 す こ とで よ り良 い解 を探 索す る . 遺 伝 的 アル ゴ リズ ム にお いて ,各 個 体 は ,与 え られ た 問題 の解 とな り得 る変 数 の値 を文字列 等 に変換 した 「染 色 体」 をそれ ぞれ 持 つ 。染色体 は複 数 の遺伝子 か ら構 成 され ,そ れ ぞれ の 遺伝 子 が 占め る位 置 を遺伝 子 座 と呼ぶ .各 個体 は ,染 色体情報 を評 価 関数 (適 応 度 関数 )に よ り変換 した値 (適 応 度 )に よって評 価 され る . 遺 伝 的 アル ゴ リズ ム は以 下 の工程 に よ り実行 され る。 1.初 期集 団 の生成 ラ ンダ ム な染色 体 を持 った個体 を N個 生成す る . 2.選 択 次 世代 の個体 の 「親 」 となる 2個 体 を選択す る.適 応 度 が高 い 個体 ほ ど選 択 されやす い よ うな方 法 を用 いる . 3.交 叉 親 とな る 2個 体 の 染 色体 情報 の一 部 を交換 し,次 世 代 の個 体 を生成 す る.交 叉 が起 こる確 率 は事 前 に設 33

42.

定す る . 4.突 然 変異 生成 した個体 の染 色 体 の一 部 を変化 させ る。突然変異 が起 こる確 率は事 前 に設 定す る 次世代 の個体が初期集 団 の個体数 Nと 等 しくなるまで以上の 2.か ら4.ま での工程 を繰 り返す .こ れ を 1世 代分 の操作 とし,設 定 した最大世代数 に達す るか,個 体 中で最 も高 い適応度 が設 定 した閾値 に達す るまで各 世代 の操作 を繰 り返す .最 終的に最 も適応 度 が高かった個体 の情報 を解 として 出力す る . 選択 遺伝 的 アル ゴ リズム にお ける選択 の手法 の うち代表的な もの を以下に挙げ る . ・ トーナ メン ト選択 個体群 の 中か ら決 め られ た割合の個体 をラ ンダムに抽 出 し,抽 出 した中で適応度 が高い 2個 体 を選択す る . ・ル ー レ ッ ト選択 各個 体 が選ばれ る確 率 が適応度に比例 す るよ うに して 2個 体 を選択す る。用 い る場合は適応度 が負 の値 を 取 らない よ うに調整す る。 ・ ラ ンク選択 事前 に個体群の中での適応度の順位 と選択 され る確率の対応表 を作成 し,そ の確率に従 い 2個 体 を選出す る . SASで の実装 の簡便 さを考慮 し,本 稿 で示 す コー ドには トー ナ メ ン ト選 択 を利 用 した . 交叉 遺伝 的アル ゴ リズム にお ける交叉 の手法 の うち代表的な もの を以下に挙げ る.説 明のため,以 下 の例示では xlか ら 及 の 4変 数が実数値 で コーデ ィ ング された染色体 の場合 を示す . 。一 点 交叉 染 色 体 中 の 1点 を交叉 点 と して無 作為 に選 択 し,そ の点 よ り後 ろの遺伝子 座 の 情報 を 2個 体 間 で入れ 替 え る . 以 下 の 例 は,球 X3間 が 交 叉 点 として選 ばれ た場合 で,交 叉 点 よ り後 ろの X3,X4の 値 が入れ 替 わ つて い る 親 Xl X2 X3 X4 Xl X2 X3 X4 1 親 2 子 1 子 2 点 交叉 34 .

43.

染色体 中 の 2点 を交叉点 として無作為に選択 し,そ の 2点 間 の遺伝子座 の情報 を 2個 体間で入れ替 える . 以下 の例 は,xl"間 お よび X3 X4間 が交叉点 と して選ばれた場合 で,交 叉点の間 に位置す る X2,X3の 値 が入れ 替わ ってい る。 親 Xl X2 X3 X4 Xl X2 X3 X4 1 親 2 子 1 子 2 。一様 交叉 各遺伝子座 について,2個 体間で情報 を入れ替 えるかを独立に無 作為選択す る 以下の例 で は,X2,X4で 情報 の入れ替えが行 われ てい る . Xl X2 X3 X4 Xl X2 為 為 親 1 親 2 子 1 子 2 本稿 で実 装 例 として挙 げ た問題 の解 は 2変 数 で表 され ,交 叉 点 を 1か 所 しか選 択 で きな いた め ,最 も妥 当 と 考 え られ る一 点交叉 を利 用 した。 突然 変 異 突然変異は,個 体に多様性を持たせることにより局所解に陥ることを防ぐ目的で導入される。 実数値 で コーデ ィングす る場合の突然変異 の手法 の うち代表的 な もの として , ・ 乱数 を発 生 させ ,選 ばれ た遺伝子座の値 を置換す る。 ・ 乱数 を発 生 させ ,選 ばれ た遺伝子座 の値 に加 算/減 算す る。 の 2手 法が挙 げ られ る.本 稿 で示す コー ドでは前者 の手法 を採用 した。 SASで の 実装 x≦ 4,‐ 3≦ y≦ 4の 範 囲での コ 最小値 を求 める ー ドを示 している。このプ 笹,〃 は最適化アル ゴ リズムの評価に用 い られ るベ ンチマー ク関数 Appcndix lで は例 としてノ7,,り =s″ (x+y)+(x̲y)2̲1.5x+2.5y+1の ̲1.5≦ である McCormick FunctionP]で ある . 以下, コー ド中の各 マ ク ロを解説す る . 35

44.
[beta]
%ga̲executeは 遺伝 的 アル ゴ リズ ム の 実行用 のマ ク ロ で ,問 題 に合 わせ た具 体 的 な操作 内容 は後 に示す各 サ
ブ マ ク ロに記 述 して い る.パ ラメー タ と しては最 大世 代 数 (mは ̲gcn),1世 代 あた りの個 体 数 (n̲ind),交 叉確
率 (prob̲crossovcr),突 然変異確 率 (pЮ b̲mutate),問 題 の解 を表す変数 の リス ト(var̲list)を 与 え る。
デ ー タセ ッ トsummaゥ は各世代 で最 も適応 度 が高 い 個 体 の情報 を格納 す る こ とを意 図 して 作成 してい る

.

デ ー タセ ッ ト gen̲0で は初期集 団 を生成 してい る。 %genノ ero̲createは 初期集 団 の個 体 に与 え るラ ンダ ム
な染 色体情報 を生 成 す るた めのマ ク ロで あ る.例 で は変 数 x,yそ れ ぞれ に つ い て定義域 の 範 囲 で乱数 を発 生
させ て変数 の値 と して い る

.

Yomacr o gen_zero_create ;

x:rand("uniform")* 5.5- 1. 5 ;
y=rand("uniform")*7-3 ;
o/omend1'

%eval functionは 適応 度 関数 に よ って 個 体 を評価 す る際 に使用す るマ ク ロで ,染 色体情報 か ら適応度 へ の 変
換 アル ゴ リズ ム を記載 す る.例 で扱 つてい るのは ノひ,り の最小値 を求 め る問題 で あ るた め ,ノ 7,,〃 の値 が小 さ
い ほ ど評価 が高 くな る よ う,ノ │し 〃 の正 負 を逆 に した もの を適応度 関数 と して用 いてい る

.

Yomacro eval_function;

fitness

: -(sin(x+y)+(x-y)'r *2-1.5* x+L5 *y+ I );

%omend1'

以 下 の%doル ー プ で は,現 在 の世代 で最 も適応度 が 高 い 個 体 の情報 をデ ー タセ ッ ト summaryに 格納 した後

,

次世代 の個体 を トー ナ メン ト選択 に よ り生成す るマ ク ロ%10urnament̲selectionを 実行 して世代 を 1つ 更新
して い る

.

%do n̲gen=0%to&max̲geǹ
pЮ c"pcnd basc=summary data gen̲&n二gen(obs=1)お 鰤 ;/*n世 代 の情 報 を記 録 */
run;

%toummlentsclection(gcn=&n̲g∞ .);/*n+1世 代 を作 成 */
ツ6cnd;

%tournament selectio■ は トー ナ メ ン ト選択 に よ る親 個 体 の抽 出 か ら次世 代 の個 体 の作成 まで を実行す るマ
ク ロで あ る

.

トー ナ メ ン ト選 択 で は 1回 の抽 出で 2個 体 が選択 され ,選 択 され た 2個 体 か ら次世代 の 個 体 が 2個 体生成 さ
れ る。従 って ,1世 代 あた りの個体 数 を Nと す る と 1世 代 につ き N/2回 の 無 作為抽 出 が必 要 とな る

.

SASに お け る無 作 為抽 出 の方法 と して ,乱 数 の生 成 に よ り DATAス テ ップで実行す る手 法 な ども知 られ る
が ,本 稿 では標 本 抽 出 を実行す る 鈍 RVEYSELECTプ ロシジ ャを用 い て実装 した。SURVEYSELECTプ ロ シ
ジ ャを用 い る利 点 と して ,REPオ プ シ ョン を指 定す る こ とで 1度 の PROCス テ ップで 1世 代 に必 要な回数 の
抽 出 を繰 り返 し実行 す るこ とがで き る。
proc surveyselect data:gen_&gen. noprint
method:srs
n=%oeval(&n_ind./2)
r ep:o/oev al(&n

-ind.

I 2)

36

45.
[beta]
ouFpre_gen_o%eval(&n_gen.+ I );
run;

この後の操作 に必要なのは各抽 出につ き適応度 が最 も高 い 2個 体 の情報 のみであるため,適 応度 の降順で
ソー トした後 ,以 下 の DATAス テ ップ 冒頭で 2個 体 の情報 を各抽 出につ き 1レ コー ドに mcrgcし てい る

.

data gen_Yoev al(&ngen. + I ) ;
mergepre3en_%oeval(&n_gen.+1)

(rename:(x:x_l y7_l) wherr(mod(monotonic0, %eval(&n_ind./2)) = l\)

prejen_Yoeval(&n_gen.+1) (rename=(x=x_2

V=)) where:(mod(monotonic0, Yoeval(&r_indl2)):2));

by replicate;

以 下 の部分 で は交 叉 を実装 して い る。発 生 させ た乱 数 が設 定 した 交 叉確 率以 下で あれ ば交叉 を実行 す る

.

交 叉方法 は先 に述 べ た よ うに一 点 交 叉 を採 用 し,親 か らそれ ぞれ xと yの 値 を引 き継 いで 子 を生成 してい
る。
rand_crossover:rand("uniform

") ;

if rand_crossover<&prob_crossover. then do;

x:x_l;y1];
o mutate;
o%eval_function;

output;

x=x]ry1_1;
Yomtfiate;
oZeval_function;
output;
end;

%mutateは 突然変異 を実行す るマ ク ロである.発 生 させ た乱数が設 定 した突然変異確率以下 であれ ば値 を
ラ ンダムに書 き換 える.変 数 xと yそ れ ぞれについて 突然変異 の判定 を行 つてい る。
%omacro mutate;

rand_mutate=rand( "uniform " ) ;

if rand_mutate<&prob_mutate. then x:rand("uniform"l*5.5-1.t'
rand_mutate=rand( "uniform " ) ;

if rand_mutate<&prob_mutate. then y=and("uniform'r)*7-3'
Yomend mutate;

%tournament̲selectio■ に よる次世 代 の 個 体 の生成 の概 要 は以上 で あ る。 %ga」 xecuteの %doル ー プ を最大
世 代 数 まで繰 り返 した 後 ,summaryデ ー タセ ッ トに格 納 した 中で最 も適応 度 が 高 い個 体 の 情報 を出力 しアル
ゴ リズム を終 了す る

.

proc sort data:summary ouFresult;

u
n

Щ﹄

by descending fitness;

一

一

set result(obs:1);

37

46.

put‖ 解 は‖&v征 ̲list.‖ 適応度 は"itncss; nln; 評価 McCorinick Function 作成 した プ ロ グラム を実行 し,ア ル ゴ リズ ムの 評価 を行 った . まず ,前 述 の McCorinick Fundonの 最小値 を探 索す る設 定 で プ ロ グラム を 10回 実行 した。 実行 時 の 各 パ ラメー タは下記 の通 り設定 した . 。最大 世 代 数 :1000 。1世 代 あた りの個体数 :100 。交叉確 率 :0.8 ・ 突然 変 異確 率 :0.1 各実行 にお い て出力 され た 解 は下記 の通 りで あ る . f(x,y) X ‐ 0.54678 ‑1.54702 ‐1.9132227 ‑0.54583 ‐1.54695 ‑1.9132206 ‑0.54625 ‐1.54664 ‐1.9132218 ‑0.54730 ‑1.54783 ‐1.9132224 ‑0.54700 ‑1.54696 ‐1.9132229 ‑0.54977 ‐1.54834 ‐1.9132150 ‑0.54753 ‑1.54728 ‑1.9132228 ‑0.54735 ‐1.54718 ‑1.9132229 ‑0.54782 ‑1.54766 ‐1.9132224 ‑0.54786 ‑1.54716 ‐1.9132223 McCormick Functionの ‑1.5≦ χ≦4,‑3≦ y≦ 4で の真 の最 小値√れれは,f(‑0.54719,‑1.54719)=‑1.913223 であることが知 られて い るが ,い ずれ の実行 で も真 の最小値 を与 える x,yに 非常 に近い値 が出力 され てい る.McCormick関 数は多峰性 関数 であ り,勾 配 を用 い る最適化 アル ゴ リズムでは大域的最適解 に到達 できな い可能性 が あるが,今 回実装 したアル ゴ リズムでは大域的最適解 の近傍へ到達で きる ことが示 され た。 また,実 行 に要 した時 間は 1回 あた り 18.85秒 であ り,実 用的 な時間 と考 える . Eggholder Function 次に,別 のベ ンチマー ク関数 として以下に示す 関数 Eggholdcr Function[2]の 最適解 を探索 した y)=― o+47)sintィ 十 χ 71:百 爾)(‐ 512≦ x,y≦ √′ :+47リ ー (χ │ソ sinCЛ . 512) 各 パ ラメー タを下記 の 通 り設 定 し,プ ロ グ ラ ム を 100回 実行 した。Appendix lか ら問題 に合 わせ て 記載 を 変更 した マ ク ロについ て は コー ドを Appcndix 2に 示 した 。最 大世 代 数 :1000 38 .

47.

。1世 代 あた りの個 体数 :500 。交叉確 率 :0.8 ・ 突 然 変 異確 率 :0■ 各 実行 にお いて 出力 され た解 を適応 度 の 降順 に並 べ 替 えた も の を Appcndix 3に 示 した。 Eggholdcr Functionの ‑512≦ χ,y≦ 512で の真 の最小値√mmは ,f(512,‑404.2319)=‑959.6407で あること が知 られてい る.今 回 の実行 では,100回 中 38回 で大域的最適解 の近傍 へ到達 した.Eggholdcr FunctiOnの 複雑性 を考慮すれば,こ の結果は今回実装 したアル ゴ リズム が十 分な探索性能 を備 えているこ とを示す もの と考 える . また ,実 行 に要 した時間 は 1回 あた り45.55秒 であ り,実 用 的 な時間 と考 える . ま とめ 本 稿 で は ,Base SAS,SAS/STATの 機 能 を用 いて遺伝 的ア ル ゴ リズ ム を実装 し,ベ ンチ マー ク関数 の 大域 的最適 解 を探索す る こ とに よ リアル ゴ リズ ムの評価 を実施 した 。 今 回評価 に用 い たベ ンチ マー ク関 数 で は 実用 的 な時 間 で大 域 的最適 解 に到達 で き る こ とが示 され た , . 今 後 の 課題 として ,他 の ベ ンチ マー ク関数 での評価 ,他 の最 適 化 アル ゴ リズ ム との比較 ,実 業 務 で の応 用 可能性 の 検討等 を行 い たい と考 えてい る . 参考文献 [1]Takagi,H 遺伝的アル ゴ リズム'',Feb,2002 https://cataloglb.kyushu‐ u.ac.Jp/opac̲download̲md/2928255/Pan3‐ [2]Adorio,E.P.,&Diliman,U.P. GA.pdf(Accessed Aug 17,2022) MVF■ Multivanatc Tcst Functions Library in C for Unconsiahed Global C)ptirnization",Jan.14,2005 http://www.gcocitics.wsた adorio/mvf.pdf(Acccssed Aug 17,2022) Appendix 1 Yomacr o ga_execute(max_gen:,n_ind:,prob_cro ssover=,prob_mutate:,var_list:) ; data summary; length generation &var_list. fitness 8; call missing(of_all); stop; nrn; data gen̲0;/*初 期 集 団 を作 成 */ generation=0; do i=l to&n̲ind.; 9′ 6gen̲zero̲create; %eVatinCtiOn; outp■ ; 39

48.
[beta]
end;

drop i;

run;
proc sort data:gen_0;
by descending fitness;

mn;

%do n̲gen=0%tO&nlax̲gcn.;
pЮ c append base=summary data=gen̲&n̲gen(obs=1)お

Кe;/*n世 代 の 情 報 を記録 */

run;

%わ urnament̲sclection(gcn=&n̲gen)/*n+1世

代 を作 成 */

%end;

proc sort data ,sunllnary out=result;
by descending itllcss;
run;

data̲null̲;
Set reSult(ObS=1);

・ ■mcss;
put"解 は"&vaLlist.‖ 適応度 は
run;

oZmend;

%omaCr o gen_zero_Create ;

x:rand("uniform")* 5. 5- 1.5 ;
y:rand( "uniform ")* 7-3'
Yomend:'

%omacro eval_function;

611sss:-(5in(x+y)+(x-y)* *2- 1.5 *x+2.5 *y+ I );
o/omend;

oZmacro toumament_selection(gen:)

;

proc surveyselect data:gen_&gen. noprint
method=srs
n:%oeval(&n_Lnd.12)

reP:oheval(&n-nd'12)
out:pre_gen_oZeval(&ngen.+ I ) ;
run;

40

49.

proc sort data:pte gen_o/oev al(&n_gen.+ 1 ); by replicate descending fitness; run; data gen_Yoev al(&n_gen.+ I ) ; merge prejen_%oeval(&n_gen.+1)(rename=(x:x_1 y:y_l) *hg1s=(mod(monotonic0, %eval(&n_ind.l2)): l)) pre3en_oheval(&n3en.+l)(rename:(x:x_2 y:y_2) wherr(mod(monotonic0,%oeval(&n_ind./2)):2)); by replicate; generation:&n3en.+l; rand_cro ssover:rand( "uniform ") ; if rand_crossover<&prob_crossover. then do; x:x_l;y1 2; Yomrutate:, oZeval_function; output; x=x];y1_l; Yomlutate; oZeval_function; output; end; else do; x:x_1;y:y_l; Yomutate; oZeval_function; output; x=x);y1]; o/omutate; o%eval_function; output; end; keep x y fitness generation; run; proc sort data:gen_%oeva1(&ngen.+l ); by descending fitness; run; %omend; Yomacro mutate; 41

50.
[beta]
rand_mutaterand( " uniform " ) ;

if rand_mutate<&prob_mutate. then x=and("uniform";*5.5-1.5'
rand_mutate=rand( "uniform " ) ;

if rand_mutate<&prob_mutate. then y=and("uniform")*7-3'
%omend mutate;

Appendix 2
%omaCr O gen zer O _Cr eilte;

x:rand( "uniform")* I 024- 5 I 2;
y:rand( "uniform " \* 1 024- 5 1 2;
%omend:'

%omacro eval_function;
fi tness:(y+47) * sin(sqrt(abs(y +xl 2+47 )))+x* sin(sqrt(abs(x-(y+47)))

%omend;

Yomacro mutate;

rand_mutate:rand(

"

uniform " ) ;

if rand_mutate<&prob_mutate. then x=and("uniformrr)* 1 024-5 I 2'
rand_mutate:rand(

"

uniform " ) ;

if rand_mutate<&prob_mutate. then y=and("uniform")*

1

024-5 I 2'

o/omend mutate;

Appendix 3

x

【X,y)

x

《X,y)

511.99979

404.27469

‐
959.63785

511.97957

404.22856

‑959.57117

511.99915

404.20273

‐
959.63686

511.97787

404.21159

‐
959.56567

511.99890

404.27300

‑959.63491

511.97786

404.23589

‐
959.56496

511.99886

404.29885

‑959.63155

511.97776

404.15954

‑959.56218

511.99325

404.22486

‐
959.61779

511.97521

404.17861

‑959.55554

511.99502

404.30456

‐
959.61701

511.97397

404.17825

‐
959.55140

511.99173

404.22022

‐
959.61263

511.97323

404.21873

‑959.54979

511.99130

404.18361

‑959.60933

511.96947

404.14942

‐
959.53370

511.98837

404.18832

‑959.60004

511.96562

404.19500

‐
959.52404

511.98727

404.18313

‑959.59597

511.96468

404.12933

‑959.51517

511.98625

404.23815

‐
959.59369

511.96165

404.20810

‑959.51045

511.98619

404.23228

‑959.59369

511.95504

404.15567

‐
959.48667

511.98359

404.22861

‑959.58490

511.95440

404.18668

‑959.48592

511.98369

404.18589

¨
959.58428

511.95375

404.16230

‑959.48285

511.98240

404.20414

‑959.58085

511.95338

404.19181

‐
959.48248

42

51.

X f(x,y) 511.95181 404.19299 ‐ 959.47711 484.03093 434.55342 ‐ 956.39003 511.95200 404.13991 ‑959.47505 480.57935 431.08475 ‐ 956.30665 511.94797 404.21156 ‑959.46328 484.39088 434.92617 ‐ 956.13040 511.94619 404.14992 ‐ 959.45673 480.25966 430.68828 ‐ 955.81701 404.21354 ‐ 959.45184 484.84921 435.36313 ‐ 955.75124 511.93967 404.18797 ‐ 959.43569 485.21149 435,73663 ‐ 955.38342 511.93721 404.20248 ‐ 959.42662 485.41847 435.95342 ‑955.14365 511.59373 403.61233 ‑958.16410 485.58351 436.10907 ‑954.95803 482.34302 432.87480 ‑956.91732 485.63995 436.17796 ‐ 954.87500 482.37210 432.89102 ‐ 956.91708 481.79175 437.20710 ‑953.81358 482.21991 432.73780 ‑956.91314 439.43202 453.92997 ‐ 935.33750 482.14487 432.66809 ‐ 956.90977 439.55986 454.03867 ‐ 935.33679 482.12766 432.65334 ‐ 956.90865 439.32941 453.82180 ‑935.33326 482.05349 432.57561 ‐ 956.90073 439.63368 454.13788 ‐ 935.33300 481.98994 432.52138 ‐ 956.89309 439.31464 453.80618 ‑935.33228 481.90141 432.42195 ‐ 956.87856 439.62279 454.15060 ‐ 935.33187 481.80464 432.33306 ‐ 956.86176 439.66093 454.16706 ‑935.33104 483.00674 433.53674 ‐ 956.83673 439.29898 453.78479 ‑935.33082 482.52394 432.99094 ‑956.83211 439.30528 453.76812 ‐ 935.32923 483.04461 433.56439 ‐ 956.82849 439.18326 453.72211 ‑935.32208 483.13741 433.67317 ‐ 956.79808 439.66213 454.25420 ‐ 935.31797 481.55159 432.07034 ‐ 956.79466 439.07263 453.62240 ‑935.30811 481.52794 432.06402 ‑956.78950 439.09222 453.58720 ‐ 935.30810 481.51507 432.03124 ‐ 956.78174 439.87259 454.36848 ‐ 935.30789 481.45279 431.98735 ‐ 956.76565 439.92730 454.45492 ‑935.29422 481.38657 431.91564 ‑956.74282 438.97701 453.52179 ‐ 935.29215 483.32966 433.85488 ‐ 956.73900 440.01124 454.44287 ‐ 935.28762 483.42993 433.95193 ‐ 956.70084 439.99927 454.50116 ‐ 935.28442 483.51089 434.07359 ‑956.62158 440.07616 454.53327 ‐ 935.27300 481.10178 431.60661 ‑956.60620 438.87307 453.35232 ‐ 935.26230 480.97567 431.47559 ‐ 956.53587 440.12037 454.60357 ‐ 935.25971 480.89724 431.43961 ‐ 956.51835 440.32473 454.69374 ‐ 935.21037 483.82356 434.35214 ‐ 956.51037 438.59151 453.18204 ‑935.19577 480.83635 431.35179 ‐ 956.47849 440.65652 455.29615 ‐ 935.00228 483.89356 434.42754 ‐ 956.46712 483.95905 434.47354 ‑956.43475 511.94470 IX,y) 43

52.

溶出挙動 が類似 した製剤 の 生 物 学的同等性 試 験 にお け る検 出力 の 検討 ○森 田 祐介 1,浜 田 泉 1,立 川 直人2,本 村 倫子2,高 梨 直樹 2,四 ツ谷 治2 │ (ノ ー ベ ル フ ァーマ株 式会社 1デ ー タサイ エ ンス室 ,2開 発第 1部 ) 生物学的同等性試験 (BE試 験)の 被験者数設計 は ときに悩 ま しい.被 験者数設 計 に必要 とな る同等性評価パ ラメー タの製剤間の幾何 平均比および被験者 内変動係数 につ いて,十 分な事前情報 がない場合 が あるか らで ある.加 えて,溶 出挙動 が即放性製剤・ 腸溶性製剤で類似 した (徐 放性製剤 で は同等である)製 剤 のBE試 験 では,(1)信 頼 区間法 に よる判定(2)平 均値法 に よる判定が行 われ る.(1)の 基準 を満 た さない場合 で も(2)の 基準 を満た した場合は,生 物 学的に同等である と判定 され る.(た だ し,総 被験者数 20名 以上 の場 合 に限る) そ こで本発表では, これ ら2つ の判定基 準 を同時に考慮 した検出力をSimulationに よ り推定 し,後 発 医薬品 のBE試 験 ガイ ドライ ンQ&Aに 掲載 され た検 出力表 (下 表 )の ア ップデー トを試 みた。また,本 邦独 自の基 準であ る平均値法に対す る追加検討 (平 均値 (幾 何平均比 )の 分布 の視覚化 ,平 均値法による検 出力増分を 被験者数 に換算 ,海 外 のRehcnce‐ Scaled Average BE法 と検 出力 を比較)も 実施 したので,こ れ らの結果を報 告す る . 試 験製剤 と標 準製 剤 の バイオアベ イ ラ ビ リテ ィの 真 の 平均値 の比 (L/喜 )と ヒ ト試 験 の 合格率 と 表 の 関係 (総 被 験 者 数 20人 被験者数を増やした場合1ま ? どち らかで一方でも 合格 率 合格 となる確率 は ? 比を変更した場合 は ? 0.9 1 の 「 1対 驚轟曇鱚 寡 頼 区間 平 均値 190%信 」 0.100(0.100) 0̲149(0.150) 0.198(0.200) 0.246(0.250) 1.00 0.93 0.294(0.300) 0.385(0.400) 0.472(0.500) 残差変動を 変更した 場合│よ ? 1.00 0.73 華 1 *190%信 頼 区間 0.98 0.78 0.56 0.42 1.00 0,96 0.89 0.81 0.73 0.60 0.51 0.8 1平 均値 0.50 0.50 0.50 0.49 0.48 0.45 0.41 190%信 頼 区間 1平 均値 0.05 0.05 0.05 0.00 0.01 0.04 0.05 く 0.05 0.07 0.11 0.17 <0.05 0.20 く 0.05 │ 括 弧 内は対数 変換 前デ ー タにお け る変動係数 を表 す 。なれ 対数 正 規 分 布す る変量 xの 変動係数 CVと ,メ タメー タ y=ln xの 標準 偏 差 との 間には ,CV2=exp(σ r2)̲1の 関係 があ る ネ 2 90%信 頼 区間 │こ よる判定法 ・じ 本 ガイ ドライ ン で採 用 したバイ オ ア ベ イ ラ ビ リテ ィ の 対数値 の平均 値 の 差 に よる判 定 法 . . . ※後発医薬品の生物学四 司等性塾堕 ガイ ドラインQ皇 △【 全 和笙巨1月 19日 事務連整 ,別 量旦より引用・追記 4ェ 乙ェ

53.

生物統計・ 医薬関連 /SASシ ステム/ SAS・ JMP教 育 /そ の他 関連分 野

55.

デジタル バイオマー カーのデー タハ ン ドリング 森 岡裕 (イ ー ピー エ ス株式会社 ) Data handling of digital biomarkers Yutaka Mo五 oka (EPS Corporation) 要旨 分散化臨床試 験(DCT:Dccentralized Clinical Trial)は 医療機 関へ の来院 に依存 しない臨床試験手法の総称 である 2019年 以降 ,COⅥ D‐ 19の 感 染流行 の影響 もあ り,加 速的に普及 が進 みつつ ある . DCTの 一環 として,cPRO,ウ ェア ラブルデバ イ ス,遠 隔診療 の臨床試験へ の活用が盛 んである . しか し,そ れ ら新 しいデー タ収集 について,テ クノ ロジー的側面 とオペ レー シ ョン上 の議論が比較 的成熟 し ているのに比 べ て,そ の後 工程 であるデ ー タク リーニング,デ ー タハ ン ドリング,統 計解析 の部分 について は今だ検討 の余地 が残 ってい る部分が多い と印象 を受 けてい る . 本稿は,デ ジタルバイオマー カ ーの デー タハ ン ドリング周 りで生 じる諸問題 につい て言及 し,そ れ らの問 題 を解決す るために資す る と思われ る SASの 技術 についてい くつか例示す る ことを 目的 とす る +*V * i-^ Oigital Biomarkers, Data Handling, Hash Object デジタル バイオマーカー(dBM) 日本製 薬 工 業協会が発 出 した 「医薬 品開発 にお け るデ ジ タル バ イ オ マー カ ー(dBM)の 利 活用 と要件 」 [1]で は臨床 的 な評 価 を 目的 に 、デ ジ タルデ バ イ ス を用 い て 客観 的 ・ 定量 的 に収集 ・ 測 定 され た生体デ ー タ (生 理 学的デ ー タや 行 動 のデ ー タ)を デ ジタル バ イ オ マ ー カ ー(dBM:Digital Blomarkcr)と 定義 してい る . 同成果 物 で は dBMの 生成 過 程 として ,Raw data,PЮ cessed data,臨 床 ア ウ トカ ム の 3段 階 の分類 を提 示 して い る.要 約 す る と Raw dataは ま さにルデ バ イ ス を用 いて取得 され たオ リジナル の デ ー タそ の もの を指 し , Processed dataは そ こか ら転 送 ,ノ イ ズキ ャ ンセ リング,一 次導 出処理 され たデー タ を指 し,臨 床 ア ウ トカ ム はそ こか ら さ らに導 出 され た もの とな る.ノ イ ズ キ ャ ンセ リン グは 一 般 的 な用語 で はな く,通 常 ,雑 音 に対 して逆位 相 音 をぶ つ けて相 殺 す る とい う意 味 で あ るが ,本 稿 で は ,精 度 を上 げ るた めに 異 常デ ー タ に対抗 処 理 を行 うとい う意 味で使 用 して い る . 例 えば , ウ ェア ラブル デ バ イ ス で身 体 の一 部 の 部位 の加速 度 デ ー タ を測 定す る場 合 ,記 録 され た加 速 度 そ の ものが Raw data,加 速度 デ ー タか ら,活 動数 を導 出すれ ばそれ が PЮ ccsscd dataで あ り,そ こか らさ らに計 測時間 との 関係 か らアル ゴ リズ ム で活動 時間 を導 出すれ ばそれ が 臨床 ア ウ トカ ム とい った 要領 で あ る 47 .

56.

dBMで 生 じる可能性 の ある種 々の問題 の一部 例 1: デ バ イ ス の 通信 同期 に起 因す るデ ー タ コ ン フ ュー ジ ョン ウェア ラブル デ バ イ スの場合 ,本 体 にデ ー タを記 録 し,そ れ を USB接 続 な どでデ ー タ取 得す るよ うなケ ー ス もあ るが ,基 本 的 にはそれ 自身 が通信 機 能 を持 つ か ,通 信機器 と同期 し,デ ー タ転 送 され る ものが 多 い.BIuetoo■ 接 続 す る際に異 な る被 験 者 の測定デ バ イ ス と記録 され るデ ー タが紐 づ い て しま うケー スが発 生 し うる.結 果 的 にデ ー タが想 定 して い な い対象 者 の もの として記録 され て しま うた め ,入 れ替 わ る被 験者 が 同 じデ ー タ収 集 タイ ミングな どの場 合 に よって は発 見 と対処が難 しい 。デ ー タハ ン ドリ ングの際 はそ うい った こ とが起 き てい な いか に注意 が必 要 とな る 例 2: . 記録 され る 日時 の誤 り カルテや 検 査 伝 票 か ら転記 ,収 集 され る 日時デ ー タ と異 な り,デ バ イ ス で直接記録 され る 同時デ ー タは , 機 械 的記録 で誤 りが な い と認識 して しま う傾 向が あ る。 しか し,実 経 験 上 ,デ バ イ ス記 録 され た 日時デ ー タ に も誤 りが生 じた ケ ー スが 多 々存 在 す る。 デ バ イ スか ら通信 端 末 を通 して ,サ ーバー ヘ デ ー タ を転送す るな どの過 程 にお いて ,物 理 的 に経 由す る機 器 の数 ,そ れ ぞ れ の機器 の oシ ス テ ムЮ Sの バ ー ジ ョン,さ らに転送 に 関連 す るアプ リケ ー シ ョンのバ ー ジ ョンな ど,デ バ イ スか ら実際 に解 析 可能 なデ ー タ に至 るまでは,多 くの システ ム的経 路 を辿 るこ とにが多 い 。 そ の経 路 の どこかで ミスや バ グが生 じた場合 , 日時デ ー タが正確 で な くな るケー ス は実 問題 と して発 生 と,発 生時 の 対応 を検討 してお く必 要 が あ る . 例 3: 機器 の 脱 装 ,破 損 ,消 失 ウェア ラブ ル デ バ イ スデ ー タの場 合 ,正 しく装 着 で きて い ない と,デ ー タが収集 で きな い ,ま たは不正確 なデ ー タが収 集 され る ことにな る。長 時 間装着 した ま ま 日常生活 をお く り,測 定す るケ ー ス も多 いため ,測 定 中 の脱装 に よ る,一 定期 間デ ー タ の 欠測や ,通 信 異 常 に よるブ ラ ン ク期 間 ,異 常デ ー タ の検 出な どは必ず とい って もい い ほ ど発 生す る問題 で あ る。そ うい つ た 問題 に対 して ど うい っ た仕組み で 異 常 を検 知 し, ど う い ったアル ゴ リズ ム で ノイ ズ キ ャ ンセ リング したデ ー タを得 るかは非 常 に大 きな検討 課 題 で あ る . 例 4: デ ー タ量 の 大 き さ 臨床 ア ウ トカ ム を利 用す る場合 はデ ー タ量はそれ ほ ど問題 にな らな い が ,Raw dataや Processed dataを 解 析 に利用す る場 合 ,解 析用デ ー タセ ッ ト作成 まで の処 理 にお いて ,デ ー タ量 の 問題 で極 め て 困難 にな る可能 性 が あ る.特 に ノイ ズ キ ャ ンセ リン グでは処理す る値 の 前後 の値 か らの変 動 を加 味 して処 理 す る必要 が あ る た め ,処 理 量増 加 に よるメモ リフ ロー の よ うな問題 も生 じ うる . SAS技 術以前,計 画時 0上 流工程における対処 本稿 は dBMの デ ー タハ ン ドリン グにお ける諸 問題 に つ いて ,役 立 つ 可能性 の あ る SAS技 術 を紹介す る こ とが 目的 で あ るが ,そ の他 の 問題 ア プ ロー チ につ い て ,少 しだ け触れ た い。 まず ,試 験 計 画 前 に ,dBMを 利 用 す ることで何 を評 価 したいか とい う点 と,ど の よ うに解析 を行 うか と い う点 を,十 分 に事前 検討 してお くべ きであ る.dBMに 対 しての解 析 計 画 時 ,お よび 解 析 上 の 注意点 につ い て は FDAか ら発 出 され てい る ドラ フ トガイ ダ ンス 「Dighi Hcalth Tcchnologics br Rcmotc Daa AcquisHon in Clinical lnvcstigations」 [2]が 参 考 に な る.当 該 ドラ フ トガイ ダ ンス に は Statistical Analysisの 48 章が あ り,そ

57.

こに dBMを エ ン ドポイ ン トとした 際 の ,現 在 の状 況 にお けるの 限界 点 や 留 意点 が書 かれ て い るのた め ,試 験 計 画前 に確認 す る こ とを勧 めた い . 製 薬協 ,FDAと もに示 してい る と ころではあるが ,dBMを 臨床試 験 に運用す る際 には ,機 器 ・ ベ ン ダー の 選 定 と,dBMに 対 してのバ リデ ー シ ョンが どの よ うに行 われ てい るか の確認 が重要 な要 素 とな る . 基 本 的には ,既 に治験 に利用 され て ,申 請 され た実績 のあ る機器 や ,広 く臨床試 験 に利 用 され て い るデ バ イ ス が選 定 され る こ とが多 く.エ ン ドポイ ン トに つ い て も,既 に実績 の あ る もの を第 一 に選 択す るが望 ま し い と考 える . も し,そ うで な い 場合 ,特 に新 た に新 しい機器 を使 用 ,新 しい指 標 を導 出す るよ うな場 面 で は,事 前 にパ イ ロ ッ トス タデ ィな どを行い ,充 分 に検 討 を行 うこ とを推 奨 したい . ま た ,基 本 的 に はデ バ イ ス を製 造 した機 関 が 同時 に提 供 してい る,ノ イ ズ キャンセ リングの アル ゴ リズ ム や パ ラメー タ導 出 の アル ゴ リズムが 存 在 してい る場 合 はそれ を利用 した方 が よい と考 え る .Raw dataに 近 い も の か らデ ー タ加 工 で Processed dataや ア ウ トカ ム を 自力 導 出す るこ とは必 然性 が な い の で あれ ば避 けた方 が 経 験上 は望 ま しい と考 える . SAS技 術 での対処 前 章 で述 べ た通 り,原 則 ,ベ ン ダ ー・ 製 造元提供 の アル ゴ リズム を利 用 し,そ こで 導 出 され た Proccsscd dataや 臨床 ア ウ トカ ム を統計解析 に利 用 す る流れ を強 く推奨 したい .お そ ら く治験 にお い て ,選 定・ 採 用 さ れ うるデバ イ ス は ,そ ういった提供 が整 つている もの が 多 い はず で あ る . こ こか らは ,何 らか の事情で ,dBMで ,特 にメ ッシ ュが細 か く巨大 で ,ノ イ ズが含 まれ たデ ー タをハ ン ドリングす る必 要 が生 じた場合 を想 定 して ,役 立つ 可能性 があ る技術 を紹 介 したい。た だ し,解 析 基盤 の 強 化 の よ うなハ ー ドウ ェアや解析環境 の ア ップグ レー ドに よる解 決 は本 稿 の ス コー プ外 とな る。 も しそ うった ア プ ロー チがで き る の であればハ ー ド面 で の境界 上 に 効 果 的な ものは な い ので そ ち らを推 奨 したい。例 えば SASで い うので あれ ば ,SAS Viyaな ど CAS(Cloud Analytic Sewices)を 利 用 で きる環境 で あ るな らば ,な お の こ と,以 降に述 べ る部 分 は大 き く楽 に な る ことが 多 い 。 しか し,現 実 問題 と しては限 られ た状 況 下で ,技 術 でや りく りしな い と ど うに もな らな い 状況 も多 く,本 稿 で は基本的 に SAS Baseで の,で き る限 りでの工夫 とい うところに 焦 点 を 当てた い . デ ー タの読み込み ¨zipフ ァイル に直接 アクセス まず ,な によ りも収集 された dBMの デ ー タを処理 で きる形にす るた めに,読 み込む ことが必要である が ,こ こで トラブル になることが経験 上 多 くみ られ る . 調 査 に基づ く統計 ではなく,経 験 上 の 印象にはな るが ,2022年 現在 の状況 で,秒 単位 ・ 分単位 の測定メ ッシュで記録 され る ウェア ラブル デ バ イ ス としては,デ ー タを測定 。記録 し,そ れ を中央 の処理機能 に転送 (或 いは端末そ の ものに一旦記録 され ,USB接 続な どで移動 させてか ら送信),そ してそ こで,セ ッシ ョンご とにデ ー タをま とめて zip化 された ものが 自動ア ップ ロー ドされ るとい う仕組み が多 い よ うに思われ る . PЮ cesscd dataや 臨床 アウ トカム は ,Raw daね か ら要約 されてい ることが多 い ため容量上 の 問題が起 きる こ とが少 ないが,Raw dataそ の ものの場合 はス トレー ジ上 に大量に小分 け され た zipが ある といった状態がみ られ る . 49

58.
[beta]
SASの mcnamcオ プ シ ョンで は,zipフ ァイ ル を指 定す る こ とがで き,さ らにオ プ シ ョンを利 用 す る と,1
つ 1つ の 容 量 が大 き く,数 も膨 大 である zipフ ァイ ル 群 で あ っ て も比較的平易 に読 み込 みがで き る
θ′ filename ndata zip " t:' 7lzip 7

.

f 4 tVh ." member="+";

θ2

data wkl;

θJ

length frrame flname $50. COL1-COL20 $20. FPATH memname $200.;

θイ memname = ";
θ5

infile indata dlm:";" dsd missover filename:FPATH memvar:memname end=done;

θ6

do while(^done);

θ7

frrame=scan(FPATH,- 1,"Y");

θ∂

flname=nemname;

θ9

input COL1-COL20;

′θ

output;

′′ end;
′2

drop FPATH;

′3

run;

01行 日の zipオ プ シ ョン を利 用す るこ とで zipフ ァイル 内 の フ ァイル に直接 ア クセ スす るこ とが で き る

.

membeFオ プ シ ョンで ,zip内 のアクセス す る フ ァイル を指 定 す る こ とが可能 だ が ,ア ス タ リス ク(*)を 指 定
すれ ば ,全 フ ァイル を対 象 にで きる

.

05行 日 inmcス テー トメ ン トで ■lcnamc=オ プ シ ョン を指 定 し,そ の結果 の一 部 を変数 mameに 落 と して込
んでい る部 分 は zipの デ ィ レク トリを取得 して い る。mcmvaFオ プ シ ョンが非 常 に重 要 で ,こ れ に よ って各
オブザ ベ ー シ ョンが どの フ ァイル に由来す るか を判 定す る こ とが で きる。デ バ イ ス に よっては , 自動記録 さ
れ るフ ァイ ル 名 そ の も の か らなん らかの情 報 が取 得 で きる場 合 (セ ッシ ョン数 や 開始 日,記 録 日,IDな
ど)も あ るた め,必 要 に な るケ ースが多 い

.

また ,例 示 の 03行 日で は適 当な設定指 定 とな ってい るが ,デ ー タが大規模 とな る場合 には ,特 に文字変
数 の 1∽ Jlに つ いて は ,容 量 に大 きな影響 を及 ぼす ため,慎 重 に定義す るこ とを推 奨 す る

.

Data Mining Data Baseの 作 成

SAS9.4以 降 ,Ⅲ DMDBプ ロシジャが利 用 で き る.High Perお lmancc Data Mining Data Baseの 略 称 となる

.

SASシ ス テ ム において Data Mining Data Baseは ,デ ー タを要 約 した指 標 のデ ー タセ ッ トの こ とを意 図 してい
るよ うで あ る

.

プ ロ シ ジ ャ の挙動 を簡 単 に説 明す るため ,SASHELPラ イ ブ ラ リの適 当なデ ー タセ ッ トを指 定 して 実行す
る

.

θf

proc hpdmdb data=sashelp.cars

θ2

classout:cout

θθ

varout:vout;

θイ

var _numeric_ ;

θ5

class _character_;

θ6

run;

50

59.

[classout=]で 出力 され た デ ー タセ ッ ト[cout]の 中身 (抜 粋 ) LEVEL HYBRID NA‖ E Type Type Type Type Tvpe Type 0r ig in 0r ig in 0r ie in 00DE FREQUENCY 00 0 SEDAN SPORTS 262 0 Sedan 43 24 80 Sports Truck WA00N 0 C 0 lllagon 150 0 123 0 147 C ASIA EUROPE USA ALL 92 As ia Europe USA Ail 0 226 C l10 C FRONT REttR FREOPERCENT 0.70093458 i4.0186916 81.2143533 11.4485981 5,30747664 7.00334579 38.9158879 28,7300178 34.3457944 21.4953271 52.8037383 25.7009346 NRAΨ ORAΨ Hvbr i d SUV TRUCK DriveTrain DriveTrain DriveTrain TYPE 3 0 Front Bea r NMISSPERCEN 0.7003345794 14.018881589 81.214353271 11.448538131 5.8074738355 7.0033457944 86.31538785 28.738317757 34.345734398 21.435327103 52.803738818 25.700384573 [vaout=]で 出力 され たデー タセ ッ ト[vout]の 中身(抜 粋) 出 iお 1 RURTOSIS ‖IN 13431.7 9875 Stl 1.400E7 1.285E7 2.7381 173560 uss I css 6.21Ell Eng i nes i2e MP0_City hlPC-H i shsay [leisht Xlhee I base Lensth 型や 崚 や 型 型 Cyl inders 92399 183968 2.7320, 11489 26.8435 143 1.38879 0.39132 1850 5.725E9 田帥 略 腋 距錮 緞 田 籠幅 Invoice 々 ψ崚 円に r,rsRP 0.61472 238 つ ま り,変 数 ご との に 立 て積 み 構 造 で ,classで 指 定 した 文 字 変 数 の 要 約 (頻 度 ,割 合 ,欠 測 割 合 )が classout=で 指 定 した デ ー タセ ッ トに格 納 され ,varで 指 定 した 数 値 変 数 の 要 約 (要 約 統 計 量 )が vaЮut= で 指 定 したデ ー タセ ッ トに格 納 され る . デ ジ タル バ イオ マ ー カ ー について は ,使 用機器 の デ ー タ を初 めて利 用す る機 会 も多 く,ま ず は一旦 デ ー タ の 状 態 を把握す る こ とが重 要 と思 われ る .特 に,デ バ イ ス 系 ん のデ ー タ レイ ア ウ トの 特徴 と して ,各 パ ラメ ー タの値 を変数 と して ,い わ ゆる横 持 ち の状態 であ る こ とが多 い た め ,ⅢDMDBプ ロシ ジ ャ と相 性 が良い ま た SASの High Perお rmanccプ ロ シ ジ ャ の一つで あ るた め ,PERFORMANCEス テ ー トメ ン トを利 用 して 環境 に合 わせ てチ ュー ニ ン グす るこ とで処理時間等 を改善 す る可能性 が あ る . , . デ ー タ ビジュア ライ ゼ ー シ ョン デ ジタルバイオマー カーの Raw dataは 臨床試験で通常扱 うデー タと趣 きが異 なる ことが多 いため,解 析 や ,加 工まえに ビジュア ライゼーシ ョンす ることを強 く推奨 したい 例 えば,下 図 Raincloud plot(バ イオ リン図・箱ひげ図 。散布 図 の組み合 わせ )な どのよ うに,全 体 として . の分布 を見る場合 は,で きる限 り元 のデー タ分布 を正確 に捉 えれ るもの を選択す るべ きである。特 に多峰性 の分布 が発生す ることも多 く,必 ず しも平均値や 中央値 が ,基 準 として妥 当ではない場合 もあ るため,箱 ひ げ図単体で判断す るの は ミス リー ドの危 険性 がある . 51

60.

` 汎 。夕t° ∵■好s(,。・ 誡いJ'灘 :]11111!lilll,illli:i:1:llll〕 llダ liti路 。∫=t 個別 の測定セ ッシ ョン ごとの推移 を ピ ックア ップ して可視化 してお くこと も,後 工程のハ ン ドリングや ノ イ ズ キャンセ リングの こ とを考慮す る と非 常に重要な工程 で ある ‰調 │ll: │ :卜 : 1脚 T¬ 調 :口 . │]l甲 │‖ │ WIT I‡ ││'1 1 │ IⅢ 常 時 ,生 体デ ー タを記 録 す るタイプ で は な く,イ ベ ン ト(一 定 の 体動や ,咳 ,痙 攣 な ど)を 判 定 して 記録す るイ ベ ン トログ式 の場 合 ,そ れ ぞれ の ポ イ ン トをバ ー 無 しの Swimemr p10t風 にす る と把握 が しや す い ↓ ↓↓ι ↓↓↓↓↓↓↓↓↓レ 颯′ ↓ ↓↓ ★ X ↓ ↓ ↓ ↓ ↓ oま 発――eH)‐ く,o●o一く寿 oe‐ ■餅――躾来 籍―――――←―鮮 ‑0̲̲̲。 ↓ ↓ . ↓ ̲̲̲̲→ ̲̲̲。 典型 的 な ノイズキャ ンセ リング 繰 り返 しになるが ,デ バ イ スデ ー タ に つ い て,正 常 に測 定 で きて い な い デ ー タを取 り除 く(あ るい は補 正・補 完 ),ハ ン ドリン グアル ゴ リズ ム が 機 器 の製造元や ベ ンダー か ら提 供 され る場合 は ,そ ち らを利用 す る こ とを推 奨 したい . そ の上 で ここか らは 自製 で行 う場合 の 注意 点 と,典 型 的 な プ ログラム を紹 介 したい 52 .

61.

一 だ ノ ・ / /11 111 11 二 │ │ │ ̲̲̲ 上 ログ開始から測定が安定 するまでのリードタイム 彗?ノ イズキヤンセリング の対象可能性 1't豪 ウェア ラブ ル デ バ イ スの うち ,特 に肉体 に接 着 して生体デ ー タ を取得す る機 器 の 場合 ,開 始 後す ぐに は測定精度 が 安 定 しない とい うこ とが よく起 き る .事 前 に機 器 の性 質 を検討 してお く こ とが重 要 にな る 安 定まで の 時 間的基準 ,ま た は測定 の変動 幅 が 一 定以下 にな っ た点 を開始 とす るな どの基 準 を定 めて 置 けば,そ こに到 達す るまで の 前 半部分 を削除す るだ けで あ る の で ,プ ログ ラ ム 処理 は比較 的容 易 にな る . SASプ ロ グ ラ ムでの扱 い にお いて ,難 易度 が 高 い のは,異 常 デ ー タが発 生 した場 合 の処理範 囲 の 特定 で ある と考 えて い る。実務 上 , もっ とも多 く遭 遇 す るのが ,測 定途 中で機器 の脱 装や 再着装 が 発 生 し , 異常値 が あ る一 定期 間 に影 響 を及 ぼ してい る状 況 で あ る . そ うい った ,イ直の前後 の状 況 をみ て ,判 定 を行 う場合 に SASの デ ー タステ ップだ と,値 の先 読 み をす ることの難 易 度 が高 く,処 理 に困 る ことが 多 い . SASに おけるオブザベーション先読み 01 data wkli 02 set sashelp.classi + 1i 03 = -nl -n+ 2i 04 = -n2 -11<= <= nof then set sashelp.class(keep = age rename = (age = next-age)) point = nobs = nof; 05 if 1 -nl -n1 06 else call missing(next-age)i <= nof then set sashelp.class(keep = age rename = (age = next2-age)) point = nobs = nof; 07 tf L <-n2 -n2 08 else call missing(next2-age); 09 post-age=lag(age); l0 post2-age=lag2(age); 1 I keep name age next-age next2-age post-age post2-agei 12 run; 53

62.
[beta]
アルフレッド
アリス
′,― ,1う
キャロル
ヘンリー
ジュ‐ムズ
ジェーン
ジャヰット
ジェツリー
ジョン
ジョイス
ジュディー
ルイーズ
メアリー
フィリップ
―ト
ロ′ヽ
ロナ′
財ド
ー
ト マス
ウイリアム

参

6
7
な

10
:1

:2
13
14
15
16
17
le
19

Ert a6
̀t●

"蚊

t28ヱ

pctl e

̀

14

13

!3

19

14

苺
4

13

14

:̀

18

14

14

14

:?

13

13

,8

14

12

,2

12

12

15

12

15

13

12

14

15

13

i2

12

1審

13

12

11

:0

12

12

11

14

13

15

14

12

12

13

13

12

15

11

12

12

16

13

14

1:

15

13

:2

12

18

12

15

15

12

15

11

16

15

'2
15
11

:5
15

15

14

12

lS

15

12

11

15

上記 は単 純 に ,前 後 1‐ 2オ ブ ザ ベ ー シ ョンの 値 を参 照す る コー ドになる

.

setス テ ー トメ ン トと pOintオ プ シ ョンの組 み 合 わせ でデー タ格 納位 置 を直接 参 照 してア クセ スが 可能
で ある。

オブザベ ー シ ョンの前後 の方法 をとる方法 としては,他 に SCL関 数系,SQLプ ロシジャや EXPAND
プ ロシジ ャ(SAS/ETSラ イセ ンス必要)な ど多様 なものが存在す る

.

今回は前読み先読みに何 らか の追加条件 をつ けやす いか どうかの柔軟性 と,処 理速度か ら,ハ ッシュ
オブジェ ク トを使用 した例 につい て言及 したい

.

[1]体 温 を 1分 間隔で記録す る仮想の ウェア ラブルデバイ スのデ ー タ
[2]発 熱症例に対 して測定 している
[3]37.5度 未満になった ら解熱 とみな して フ ラグをたてる
[4]解 熱後 ,5分 以内に 37.5度 以上が計測 されていれば無効 とす る (先 読みで再発熱が確認 さ,は じ
めてその レコー ド判定 が確定)
左 下図 が対象 のテス トデー タで,右 下図は [4]の 条件 を考えず にく 37.5に フ ラグたて した もので ある

.

t itte

07:51:00
1 07M^R22:07:52:00
1 07MAR22:07:53:00

9

ID

10

time
07鵬 R22:07:51:00
07艤 A陀 2:07:52:00
07鵬 R22:07:53:00

val

亀

07‖ AR22:07:54:()0
07‖ AR22:07:55:00

1

07鮒 AR22107:56:00

07麟 AR22:()7:56:00

1

07‖ AR22:07:57:00

1

9

1
1

37.4
87.2
37.8
87.7
37.6
37.2
37.2
37.2

07MAR22:07:54:00
07麟 R22:07:55:0(〕

1)7)」 AR22:()7:58:(,0

07麟 R22:07:57:00
07鵬 R22107:58:00

1

07MAR22107:59:00

07離 AR22:07:58:〔 )0

37.1

1

97精 AR22:08:00:00

07MA禽 22:00:00:00

37.4

1

07‖ AR22:08:01:00

07MAR22:08:01:00

37.3
87.8
87.3

2

07‖ AR22:(:8:02:1)申

07‖ AR22108:02,()0

07鵬 R22:08:03:00
田

)7MAR22:08:02:00
1 〔
1 07MAR22108:03:00
1 07MAR22:08:04:00
2 07MAR22:07:51:00
2 07‖ AR22:07:52:00
2 07,lAR22:07:53:00
2 07‖ AR22:07:54:00
2 07MAR22:07:55:00
2 07‖ AR22:07:58:00
2 07‖ AR22:07:57:00
2 07MAR22:07:58:00
2 07‖lAR22:07:59:00
2 07‖ A倉 22:08:00:09
2 07鮒 AR22:08:01:00

87.4
87.2
37.l
3ア .3

37.2
37

07MAR22:88:04:00
07MAR22:07:51:00
07MAR22:37:52:00
97MAR22:07:53:00
07雌 AR22:07:54:00
07MAR22:07:55:00
07‖ AR22:07:58:00
07‖ AR22:07:57:00
07MAR22;07:58:00
07MAR22:07:58:00
07MAR22:00:00:00

38.1

37.4
37.2
37.l

37.3
37.2
87.2
38.2
37.2
37.1

07MAR22:03:02:00
07MAn22:08:03:00

38.4
87.3
37.3
87.9

07‖ AR22:08:04:00

38.1

07MAR22:08:〔 11:00

54

63.
[beta]
1オ ブザ ベ ー シ ョン ロの 37.4で あ るが そ の 2オ ブザ ベ ー シ ョン先 (=2分 後 )に 37.8と な ってい るため

,

持 続 とはみ な されず ,フ ラグを立 て な い こ とが正解 に な る。

θ′

data wkli
set tempi

θ3

if _N_=1 then doi

θイ

call missing(of

θ5

declare hash h 1 (dataset:"temp

θ6

(rename=(time--time val=-val))"

θア

,multidata:"yes",hashexp:

-time -val);

1 6) ;

1

0714AR22107:55:1,0

1

こ
0'14島 事
22:0':58:00

1

07鍼 ‐
AIR22:07:57:00

1

07僣 麟
癬
薔
2210'158:参 O

1

07M̀1122:07:59:00

1

07‖ A122:00:00:00

θ9

h 1. definedata("_time","_val");

′θ

hl.defrnedone0i

′′

end;

′2

if val < 37.5 then FL="Y"i

′3

do while ( h1.do_over0=0 );

′イ

2

′5

if 0< time-time<=300 then dol
if _va1>=37.5 then call missing(Fl)i

2

07鱚 AR??:07:5奪 :00

′6

end;

2

R22:07:53100
07稲 ハ

f7

end;

f∂

drop

f9

1
1

07MAR22:08:0!:00
07MAR22:08:02:00
1 07‖ AR22:00:00:00
1 1)7‖ AR22:08:04:00
2 07MAR22:07:51:00
2 1)7‖ AR傘 2:07:52:00

2

071AR22:07:53:00

2

1)7MAR2驚 :07:54:00

2

07,̀IAIR221 07:55:00

07MAR22,0':辱 ‐
艤:00
2 07‖ AR22107:57:00

-val _timei

runl

2

G7輻 AR22:08:OO:00

2

07撻 AR22:08:01100

2

07権 !iVや22[00:0會 :00

2

07僣 AR22[03:03:00

2

f路 22:喉 8:04800
07鑢 綱

05行 日でハ ッシ ュオ ブ ジェク トを宣 言 し,再 帰 的 に 自身 を格納 してい る

77
8
33絆3絆蒻鑢蒻鐵爾講

hl.definekey("ID');

7
3

θ∂

37.4

7線鱒
7絆認3
鍼絆鐸絆3

θ2

val

7鍼
3

time
07MAR22107:51:00
1 07‖ AR22:07:52:00
1 07MAR122:07:53:00
1 07ふ 饉
AF翡 22107:54:00
1

.

ハ ッシ ュオ ブジェ ク トは メモ リ上 で展 開 され るた め ,格 納 で き る容量 に限 りが あ るが ,基 本 的 に最低
限 の キ ー 情報 と,対 象 とな る数値 変数 に絞 っていれ ば基 本 的 に ,デ ー タが よほ ど巨大 で あ って も前後
参 照 処 理 でメモ リフ ロー が起 きる こ とは あ ま り想 定 で きな い

07行 日で multidata:"yes"と

.

してい る箇 所 がポイ ン トで ,そ れ に よつて 13行 日で ,症 例 番 号 (ID)を

キー と して状態で の 走査 が 可能 とな る

.

12行 日で単純 に 37.5未 満 にフラグを立 て た後 ,ハ ッシ ュオ ブジ ェ ク ト内で do̲overメ ソ ッ ドで 同 ID
の デ ー タを総 紙 め し,時 間 のス コー プ (5分 以 内)以 内 に ,37.5以 上 のデ ー タが あれ ば ,立 て ていた フラ
グを解 除す るよ うに してい る

.

13‐

17行 日のル ー プ は ,規 定時間 を過 ぎた場合や 一 度 37.5以 上 にな っ た際 にル ー プ を抜 け る とい う

処理 を入 れれ ば さ らに無駄 を省 き,高 速 化 す るこ とが で きる

.

今 回 ,示 した例 は極 めて単純 な例 で あ るが ,拡 張す る こ とに よって 多 くの パ ター ンに適 用 可能 な考
え方 とな る。

SQL,コ 三規表現,Proc DS2,Proc Lua,FCM:Pな ど
デ ーータハ ン ドリン グ周 りに関 して は SASに 拘 る必 要 もな く,OSS(Open Source Software)の 利 用 の

55

64.

方が相性 がよければ,バ リデ ーションの方法を検討 して うえで積極的に活用すればよい と考 える . また今回,ハ ッシュオブジェク トを取 り上げたが,SQLプ ロシジャの方 が処理効率 が よい場合 もあ れば,テ キス トデー タに対する処理で正 規表現 が活 きる場合 も多い.環 境 によつては DS2プ ロシジャ が効率的に動 く場合 も考 えられる.Luaで 制御す る こ とが有効な場合や ,異 常検知 のアル ゴ リズムを FCMPで 関数化できるケース も想定で きる . θ2 function rsumGd; θJ static x 0i θイ x=in*xl θ5 return(d; θ6 endsub; θ7 runi θ∂ options cmplib = work.functionsi θ9 data TEST i ′θ set sashelp.CLASS; ′′ if SEX=" A*" f2 run i アルフレッド アリス ー′ ′ マ ` ラ キャロル ヘンリー ジェームズ ジェーン ジャネット ジェフリー ジョン ジョイス ジュディー ルイーズ メアリー フィリップ ロパート ロナルド トーマス ウィリアム 39 籠 proc fcmp outlib=work.functions.commoni 野好好好野野好好野野奸奸好好野野野野界 θ′ 65.3 83 63.8 84.5 ao= 62.5 112.5 1.; 90.5 50.5 S,2 32.5 ,:2 S00 311 150 128 133 85 then sum-weight=rsum(weight); 上記 は FCMPプ ロ シ ジ ャの static機能 を利用 して ,関 数 で特定条件 にお け る累積処理 を行 ってい る 簡 単 な例 で あるが , この よ うに特 定 の 条 件 で ,症 例 ご とに測定 セ ッシ ョン ご とに何 らか の 累積 計算 を 行 う機 会 は多 い た め相 性 が よい。FCMPの hash機 能 や dictionav機 能 も同様 に有用 で あ り,作 成 し た 関数 は SQLプ ロ シ ジ ャの 中で も動 作 す るため,組 み 合 わせ によって 効 率 化 が 図れ るケ ー ス がある . 現 状 ,デ ジタル バ イ オ マー カー と して収 集 され るデ ー タの幅 は増 えて お り,デ バ イ ス も増 えて い る 状況 で あ る。同 じデ バ イ ス で も新 しい バ ー ジ ョンが で た り,処 理 ソフ トフ ェ アが更新 され る と,受 領 す るデ ー タが大 き く変 わ ってい るこ とも珍 しくない . 予 め ,決 め打 ちで 準備 す ることが非 常 に難 しい状 況 で あ るため,デ ー タや 状況 に応 じて ,持 ち得 る 技術 的 な選択肢 を多 く してお くこ とが今 後 のデ ジタル バ イ オ マー カー に合 わせ たデ ー タハ ン ドリング にお い て ,適 した態 度 だ と考 えてい る . ハ ン ドリングル ール の 設 定 と Fene」 ‐ Holtの 原則 (最 小 編集 箇所原則 ) 基 本 的 には,事 前 に根 拠 を以て ,デ ー タをカ ッ トす る閾値 の設定 の検 討 が行 われて い る こ とが原則 で あ る。 ただ し,実 際 に臨床試験 が 開始 し,デ ジ タル バ イ オ マー カ ー の オ ペ レー シ ョンが 始 まった後 にデ ー タ上 の 問題 が 生 じ,追 加 でハ ン ドリングル ール を設 定 しなけれ ば い けな い状況 は しば しば起 こ る . そ の 際 に,追 加 され たル ール の適 用 が どの程度 ,指 標 に影 響 を及 ぼす か ,適 用前後 の 差 分 で 見 られ る よ うに してお く こ とが望 ま しい .ま たル ール が 追加 され て行 く際 に ,ル ール 同士が影 響 を及 ぼ しあ っ た り,複 数 ル ール の適 用順 によって予 期 せ ぬ抽 出 に変 わ って しま うこ とが よ くある . ル ール の数及 びル ール で参照 され る変数 の数 が増 え る時 ほ どそ の リス クは大 き くな っ て い く . m個 のル ール が適 用 され m′ ≦mが 違 反 してい る レ コー ドが与 え られ た場 合 に, レコ ー ドが全ての 56

65.

検証ルール を満たす よ うに変更 できる変数集合 の最小(ウ ェイ ト付部分集合)を み つ ける最適化 問題 を 解 く方法論 を Fellegi― Holtの 原則 (最 小編集箇所原則)と 呼ぶ が ,極 力最小変数 の最小ルールで制御 で きるよ うにハ ン ドリングル ールの検討 と管理が重要になる.[3] 終わ りに 昨今 ,デ ジ タル バ イオ マ ー カ ー の 臨床試 験 へ の普 及 が加速 して お り,統 計解 析 担 当 と して関わ る機 会 が増 えた と感 じて い る.分 散化 臨床 試 験 の流れ もあ り,来 院 しな くて も ,試 験参加 協 力 者 のデ ー タを細や か に , そ して リア ル タイ ム に収集 で き る とい うこ とは素 晴 ら しい こ とで あ る .た だ し,未 だテ ク ノ ロジー の 発 展 に,オ ペ レー シ ョンが追 い 付 い てい ない部分 が大 き い と思われ る .特 にデ ー タハ ン ドリング以 降 の 処 理 では まだ十分 な知 見 が集積 され て い な い と感 じる。 当面 は ,新 しいデ ー タに対 して ,ハ ン ドリング・ 解 析 を行 う 担 当者 が ブ リコ ラー ジュで 対応 しな けれ ばい けな い 状況が続 く と思 われ る.そ うい つた 際 に本 稿 が少 しで も 何 かの助 け になれ ば幸いで あ る . 57

66.

引用文献 [1]日 本製薬 工業協会 医薬品評価委員会 臨床評価部会 タスクフォース, バイオマーカー(dBM)の 利活用 と要件",Apr,2022 医薬品開発におけるデ ジタル 塾1± pttLE墜 璽」 堅f壁里墨董 ユム 型alユ 饉量夏壁旦 1曇 立曇塁曇聖二と主里』墜⊇堅m2墨 ⊆ IEコ fLQ■ 」 I∠ 二 旦:■ と塁gi⊥ al̲.b:董 〕 ■ 1盤■ ]凛 ̲三 :玉 :受 :211生 ■ 2二 :f(Accessed Aug 17,2022) ̀運 [2]U.S.Dcpaliment ofHealth and Human Serviccs Food and Dnlg Administration for Rcmotc Da● Acquisition in Clinical lnvcstig Digital Health Technologies ions Dra■ Guidance for lndustry,Investigttors,and Other Stakeholders'' ,Jan,2022 hL"s://WW=.fdagOVた cgュ lalQ攣 ■lnfoI型 雲ion/望 廻:gL― fda― g塾 ldanco― documQ=s/dlg=al‐ h̀nith‐ tcchnolo望 es=rcmote― g.ュ isittΩ:L≦ 」 塾墨 ュニ塁1塾 ll̀2sll翠 :重 ≦ 」 ≧ls(Acccsscd Aug 17,2022) d二 ̀L」 [3]Mark van der Loo,Edwin de Jonge,地 道 正 行 (訳 ),高 橋 雅 夫 訳 ,藤 野 友 和 訳 ,安 川 武 彦 訳 ,和 田 かず 美 訳 ,''統 計 的 デ ー タ ク リー ニ ン グの理 論 と実 践 ―Rに よ るデ ー タ 編集 /欠 測 補 完 シ ス テ ム ー",共 立 出版 ,Fcb,2022 [4]森 岡裕 定義 FCMPの STATIC sねtemcnt,HASH objcctDICTIONARY o可 ectそ れ ぞれ に よ る LAG関 数 機 能 の ,SASユ ー ザ ー 総 会 2019 [5]森 岡裕 ,遠 山拓 ,田 中真史 ,中 川雄貴 SASに よる Raincloud Plotの 実装,SASユ ー ザー総会",2022 [6]森 岡裕 ,亀 井 亮太 , SASに お ける Pcrl正 規表現 の基礎 と実装 ",SASユ ーザー総会 2022 58

67.

マクロのすす め 〜 SASに プ ログラ ム を書 い て も らお う 〜 o森 田 祐介 ,浜 田 泉 ,石 川 (ノ ーベル フ ァーマ株式会社 優子 ,南 雲 幸寛 デー タサイエ ンス室) Encouragement of the SAS Macro Facility - Have SAS Write Programs for You - YusukeMorita, IzumiHamada, Yukolshikawa, YukinobuNagumo Data Science Offrce, Nobelpharma Co., Ltd. 要旨 慌 ただ しい 日々 を過 ごす SASプ ロ グ ラマ の強 い味方 が マ ク ロで あ る。マ ク ロ は ,SASに プ ロ グ ラ ム を書 いて も ら うための機 能 で あ る。 マ ク ロ を理 解 し,マ ク ロ を駆 使 す る こ とで コー ド量 が減 り,プ ロ グ ラ ムの流用性 も高 ま ることか ら,プ ロ グラ ミン グ業 務 の さらな る効 率 化 ・ 品質 向上が期待 で き る.本 稿 で は ,マ ク ロ初 心 者 を対象 にマ ク ロの 基 礎 か ら応用 ,そ して利用 の コツ を概 説 した .こ の機 会 に マ ク ロの習得 をす す めたい。 +*V* l- : -< ) tt;o/omacro RevisitSUGI_J; %do year:1982%oto2022;%SUGl_J(&year.);o/oend,;o/omend; 1.は じめに SASプ ログラマ の 日常 は慌 ただ しい .次 々 と舞 い 込 む 業務 依頼 ,期 限 間際 の仕様 変更 ,複 雑 なデ ー タ加 工 や デ ー タク リー ニ ン グ ,イ レギ ュ ラー デ ー タの対応 ,プ ロ グ ラ ムの不 具合修 正 (新 たな不 具合 を生 んで しま うこ ともある… ),デ ー タ更新 に伴 うプ ロ グラム再実行 と品 質 管理 ,い つ の 間 にか並走 しだす プ ロ ジェク ト た ち … .も ちろん 同僚 や 委託先 は快 く助 けて下 さる し, とき には依頼 主 に期 限 を相談 した りす る のだが ,気 合 で乗 り越 える とき もあ る.そ して ,今 年 も業務 の合 間 を ぬ って SASユ ー ザ ー 総会 に参加 して い る . そ ん な私 た ちの強 い 味方 が マ ク ロで あ る.マ ク ロは ,SASに プ ログラ ム を書 いて も ら うた め の機 能 であ る .も ちろんマ ク ロ を知 らな くて も,プ ロ グラ ミング業 務 を こなす こ とは十 分 に可能 であ る。 そ して マ ク ロ は ,お お よそ 中級 以 上 の トピ ックで ,必 ず しも習得 は容 易 で は な い .し か し,マ ク ロを理 解 し,マ ク ロを駆 使 で きるよ うになれ ば ,コ ー ド量 が減 り,プ ログラム の 流 用性 も高 ま るこ とか ら,プ ログ ラ ミン グ業務 の さ らな る効率化・ 品質 向上 が期待 で き る . 本稿 の執筆時点 で ,マ ク ロを習得 す る環境・ 教材 は十 分 整 つて い る.マ ク ロの公 式 トレー ニ ン グ コー スが 設 置 され てお り[■ 2],マ ク ロ言語 リフ ァ レンス (第 5版 )[3】 も公 開 され てお り,マ ク ロの解 説 を含 む 関連書籍 も市販 されてお り[4,51,ブ ロ グに解説 記 事 もあ り[6],英 語 の 学 習 も兼 ね て ヽ uTubeで マ ク ロ に関す るチ ュー ト リアル 岡も聴講 で き る .解 決 で きな い 疑 間 があれ ば ,SAS Jttan Discussionで 質 問す るこ とだ ってで きる[8]. 59

68.

一 方 で ,そ れ らの膨 大 な有益情報 へ の 橋 渡 しとして ,マ ク ロ初 心者 を対象 に ,業 務 に必要 と思 われ る要 点 を コ ンパ ク トにま とめ る こ とに一定の需 要 が あ るので はな い か と考 え,2〜 6章 に要約 した .ま た ,マ ク ロ の コ ツ ,つ ま り効率的 な使 い方 やそ の根 底 に あ る考 え方 も興 味 の 対象 ではな い か と考 え,7章 に ま とめた 最 後 に コー ドが総括 して くれ る ことを期 待 して 8章 に実例 を掲 載 した . . 2.‐ マク ロ とは 本 章 で は ,マ ク ロ機 能 とそ の仕組み を概 説 す る。また ,マ ク ロ習得 のメ リッ トがデ メ リッ トを上 回 るこ と を述 べ る 2■ . .マ ク ロ は SASに プ ロ グ ラ ム を 書 い て も ら うた め の 機 能 マ ク ロは,簡 単に言 うとテ キス トの置換機 能 である.Aと い う文字列を Bと い う文字列に置 き換 える機能 であ る。そ して,こ のテ キ ス ト置換機能 がたいへ ん役 に立つ。 なぜ な ら,プ ロ グラ ミング業務 では,似 たよ うな解析 やデー タハ ン ドリングを繰 り返 し行 つてい る場合が多いか らである.例 えば,他 のプ ロジェク トと 同 じ解析 を行 う,対 象 のデ ー タセ ッ ト名 だ けが異なる,対 象デ ー タの抽出条件 だ けが異なる,処 理対象 の変 数だ けが異 なる,設 定値や オプシ ョン指定 だ けが異なる,出 力形式 (行 数や列数 ,フ ァイル形式 な ど)だ け が異 な る.こ ういった場合 ,各 解析 の SASプ ログラムの大部分 が重複す ることにな り,差 異 が生 じるの は,ほ ん の一部 となる。つ ま り,基 準 とな るプ ログラムを コ ピー &ペ ース トで複製 して,変 更が必要な箇所 だけをテ キス ト置換すれ ば済む場合 が多 い 。 この基準 となるプ ログラムの設 定 とテ キス ト置換 を SASプ ロ グラム で実現するための機 能 がマ クロであ る。マ クロがプ ログラムを書いて くれ るのである . プログラムA data XXメ : ● ,nl2LB │ ‐ プログ│ラム間で , 大部分が重複する場合がある data xxx; set xxl wheIP FASF[=̀Y'; where PPROTFL==Y・ ■ set xx: .‐ i . . プログラムÅをコビニして ' m ・ プログラムBを 作成し 必要個所 燿変更すればよ覇` proc rel)Ort・ SASマ クロの出饉 明■︐ t ・ ヽ・ proc means data"' proc report ... run: 群 │lt壕 : quit; q̀疑 l : 2.2.マ ク ロ の 仕 組 み 私 た ち の 書 い た SASプ ロ グ ラ ム は ,SASの コ ンパ イ ラに よ つ て 解 釈 され ,実 行 され る.こ の と き ,実 は SASに は 二 種類 の コ ン パ イ ラが あ る。① マ ク ロ を解 釈 。実 行 す る マ ク ロプ ロセ ッサ ,② DATAス テ ップお よ び PROCス テ ップ を解 釈 ・ 実 行 す る コ ン パ イ ラで あ る .SASプ ロ グ ラ ム をサ ブ ミ ッ トす る と,ま ず ,① マ ク ロ プ ロセ ッサ が マ ク ロ部 分 だ け を解 釈 。実 行 し,DATAス テ ップ ま た は PROCス テ ップ の 命 令 だ け の プ ロ 60

69.

グラムに変換する。つづいて,② のコンパイラが,そ のプログラムを解釈 。実行する.な お,1996年 の SASユ ーザー会資料に,技 術的に詳細かつ正確な解説がなされている [9]. . rt .ti ir_r :11:litai:i ,: プEIグ ラム プ【 ::グ ラム中の マクロ部 分 だ けを 解釈 して置換 DATAス テップー PROCス テップを 解釈 して実 行 set : へ ′ here FASFL 、 │の マク 鞠 1)Ъ セッ サ ゆ ゆ ② コンパイラ 一e r ru n: .quit; 本稿 の主 旨は,こ のマ ク ロプ ロセ ッサを上手 に操 って,私 た ちの代わ りにプ ログラムを書 いて も らお うと い うことで ある . 2.3.マ ク ロの メ リッ ト 2.3.1.コ ー ド量 が減 る マ ク ロ を活 用 してプ ロ グ ラ ム 間 の重複部 分 を マ ク ロプ ロセ ッサ に書いて も ら うこ とで ,SASユ ー ザ ー が記 述す る コー ド量 は減 る こ とにな る。 これ だ けで も単純 に時 間 の節 約 につ なが るが ,コ ー ド量 に比例 して不具 合 が生 じる確 率 も増加 す るた め ,コ ー ド量 を減 らす こ とは結 果 的 に品質 を高 め る こ とに もつ なが る . 2.3.2.部 品化 す るこ とで流 用性 が向上す る マ ク ロ に よ り,あ る単位 の機 能 を部 品化 (モ ジ ュール 化 )で き る.部 品化 に よって一度作成 した プ ロ グラ ム を繰 り返 し利 用す る こ とや ,他 のプ ロ ジ ェ ク トで再利用す る こ とが簡単にな る .動 作確認 の とれ た プ ロ グ ラム を再 利 用 す る こ とで時 間 の節約 ,品 質 向上 が 期待 され る.ま た ,適 切 に部 品化 す るこ とで ,マ ク ロ内部 の詳細 を把 握 しな くて もユ ー ザ ー が マ ク ロ を利 用 可能 にな る . 2.3.3.メ ンテナ ンスが 容 易 にな る コー ドの重複 部分 をマ ク ロプ ログラム化 してお く こ とで ,仮 に 仕様 変更や不 具合 が発 生 した 場 合 に も,元 とな るマ ク ロプ ログラ ム を修 正 すれ ば,そ れ を利 用す るプ ロ グ ラ ム全体 にそ の修 正 が反 映 され るた め ,修 正 の反映漏 れ が な くな り,メ ンテ ナ ンスが容 易 に な る . 234.プ ログラムの柔軟性 が高まる マ ク ロを活用すれば,解 析結果やデー タセ ッ トの 内容 に応 じて ,プ ログラム を変更 させ る ことがで き,プ ログラムの柔軟性 が高まる.例 えば,該 当デ ー タがなければ処理 をス キップす る,投 与群 の数 に合 わせ て解 61

70.
[beta]
析 帳票 の列数 を 自動 的 に変 更す る,特 定 の ライ ブ ラ リ内 の デ ー タセ ッ トを 自動 的 に リス トア ップ して処理 を
繰 り返す こ と等 が可能 にな る.つ ま り,プ ログラマ が 都 度 プ ロ グラ ム を編集 す る必要 が な くな る

2.3.5。

.

公 開 され た マ ク ロプ ログラム を活 用 で きる

12]等
例 えば ,臨 床 開発 関連 では ,PhUSE[10],FDA川 ,熟 練 の SASプ ログ ラマ 〔
がマ ク ロプ ロ グ ラ ム を

GitHublに 公 開 してお り,さ ま ざまな機 能 を もっ た マ ク ロ を誰 で も参照 ・ 利 用 で き る.も ち ろん使 用 は 自己
責任 であ るが , 目的 に適 ったマ ク ロ を活 用 で きれ ば 効 率 的 であ る.ま た ,公 開 マ ク ロプ ロ グ ラ ムの コー ドを
読 む こ とは勉 強 に もな る.2021年 の SAS GlobalFommで は ,オ ー プ ン ソー スマ ク ロに関す る発 表 があ り
,

オ ー プ ン ソー ス の 定義 か らマ ク ロの 検 索方 法 ,マ ク ロの 実例 が 紹介 され て い る岡

.

2.4.マ クロのデメ リッ ト
2.4.1.マ ク ロ言 語 を習得す る必要 が あ る
繰 り返 しにな るが ,マ ク ロを解釈 し,実 行す るの は マ ク ロプ ロセ ッサ で あ る .し たが つて ,マ ク ロプ ロセ
ッサ に SASプ ロ グ ラマ の希望 を伝 え るた めの マ ク ロ言 語 を習得す る必 要 が あ る.た だ し,マ ク ロ言語 は

DATAス テ ップ の 命 令 と類似 してい るた め ,他 のプ ロ グ ラ ム言語 よ り比較 的容易 に習得 で き る

.

242.プ ロ グ ラ ム を解 読す る難易度 が上 が る
私 た ち SASプ ロ グ ラマ もプ ログ ラ ム を読 む機 会 が よ くあ る.マ ク ロ を含 む プ ログラム を読 む場合 は,マ
ク ロプ ロセ ッサ が どの よ うなプ ロ グ ラ ム を生 じさせ るの か想 像 しなが ら,プ ロ グラム を読 む 必 要 がある.つ
ま り,マ ク ロ を含 む プ ログラム は解 読 の難 易度 が上 が る場 合 が ある。 しか し,後 述す る NPRINTオ プシ ョ
ン な どで対処 可能 で あ る。

次 章 以 降 は ,マ ク ロ言 語 に つ い て 具 体 的 な説 明 を行 う。 なお ,本 稿 に登 場 す る SASプ ロ グ ラ ム は

Wndows10 PЮ +SAS94 M7環 境 (PC)で 動 作検 証 を行 っ た .ま た ,プ ロ グ ラ ム 中で は ,SASIELPラ イ ブ
ラ リに あ る CLASSデ ー タセ ッ トを利 用 した 。 SASIELPラ イ ブ ラ リに あ るデ ー タセ ッ トは ,SASプ ロ グ ラ
ム 中か らくsashelp.デ ー タセ ッ ト名 >と 記 述 す る こ とで 参 照 で き る。

<SASHELPラ イ ブ ラ リの CLASSデ ー タ セ ッ ト (一 部 )>
Name

9r-Ad
yt-)

9r*"v1.

litTt)-

18

,)>

11

')a-1 l

Sex

Age

手子 子子 子子子子子子
女女女男男女女男鶴寺

アルフレッ
アリス
一ノ
′
ヽ
ヽ
ラ
キ:ヤ ロ」
レ
ヘンリー

Height

VVeicht

苺

09

!125

13

565

04

13

65.3

98

i4

62.8

102.鬱

102.5

14

03.5

12

573

88

12

59.8

845

15

625

112.5

19

S2.5

04

12

59

99.5

11

縞lR

515

1マ イクロソフ ト社傘下の GitHub社 が運営す る Web上 でプ ログラムのバージョン管理 と公開を行 うためのシステム
httpS://gtthuL com/

4

62

71.

3.マ ク ロ変 数 を使 う 本章では,マ ク ロの基本的な機能 で あるマ ク ロ変数 について概説す る。 シンプル な機能 なが ら活用場面は 多 い .マ ク ロ変数 を習得す るだけで もプ ログラミングの効率化や品質 向上が期待できる . 3.1.マ ク ロ変数 とは マ ク ロ変数 はテ キ ス トを格納す る容 れ もので あ る。 マ ク ロ変数 に格 納 したテ キ ス トは プ ロ グラ ム 中で参 照 で き る.マ ク ロプ ロセ ッサ は,SASプ ロ グラム 内で マ ク ロ変数 の参照 箇所 を見 つ ける と,そ のマ ク ロ変数 に 格 納 したテ キ ス トに置 き換 える。テ キ ス トエデ ィタで行 う一 括 置換 を SASに 実行 して も ら うイ メー ジで あ る . 3.2.マ ク ロ変数 の作成 と参照 マ ク ロ変数 は%lctス テ ー トメ ン トを利 用 して作成 す る ク = マ ク ロ変数名 は最 大 32文 字 ,最 初 の 文字 は英字 また は ア ンダ ー ス コア ,そ の後 の文字 は英 字 ・ 数字・ ア ン ダ ー ス コアが使 用 可能 で ある.ま た大 文 字 と小文 字 は 区別 され な い .接 頭 語 AF,DMS,SQL,SYSは 後 述 す る 自動 マ ク ロ変数 と名前が衝 突 す る可能性 が あ るた め ,避 けた ほ うが よい国 . 作 成 したマ ク ロ変数 は ,マ ク ロ変 数 名 を 「&」 と 「。(ピ リオ ド)」 で挟 む こ とで ,プ ロ グ ラム 内で値 を参 照 で き る。なお ,マ ク ロ変数名 の後 ろが ス ペ ースの場 合 は ,自 動 的 に マ ク ロ変数名 の 終 了 と認識 され るた め ,末 尾 の ピ リオ ドは省 略 して もよ い [4]. &マ クロ変数名 . (末 尾の ピリオ ドは省略可 .│■ ) ■■│― ■ 零 Ⅲ マ ク ロ変数 の具体例 を示す。マ ク ロプ ロセ ッサによつて ,マ ク ロ変数 の参照部分 がテキス ト置換 され る 'マ ク ロ 変 数 の 作 成 と参 照 ′ ら■et greeting = Hello World′ ネput &greet■ ng.′ 2夫 口 :グ (こ 「He■ lo World」 とモ 浸ブ六′ t■ et 2■ year = 40, et corment=お めで と うご ざい ます ′ lput SASユ ‐―ザ ーー総 会 &year.周 年 &comment′ を ロ グに 「SASユ ー ザ ー 総会 40周 年 お め で と うござ い ます 」 と表 示 ′ ・ t■ et anavar=age, ☆マ ク ロ変 数 anavarを 定義 し,ageと い う値 を害IIり 当て る ナ男 女 別 に単 変 量 解 析 ′ proc unュ varェ ate data = sashe■ p.c■ ass, var&anavar.′ 丼マ クロプ ロセ ッサ に よ りageに 置 き換 え られ る class sex′ run′ '男 女 別 に 蜂 峰 図 (bee― swarm plot)を 作 成 ′ proc sgp■ 。t data = sashelp.c■ ass′ vbox &anavar. / category := sex nof■ scatter y == &anavar. x == sex / ]■ l■ tter′ run, 5 63 nooutl■ ers, , ,

72.
[beta]
マ ク ロ変数によ り,プ ログラムに一貫性 を持 たせ ることがで きる.例 えば,追 加解析や仕様変更 に よ り
,

年齢(age)で はな く体重(wcight)で の解析 を行 いたい場合は,%let an的 な=wcighと 設 定すれば,プ ロ グラム
の必要個所 が,マ ク ロプ ロセ ッサによって wciま tに 一括置換 され ることが保証 され る.も ちろん手動 で age
を weightに テキス ト置換す ることも可能で はあ るが,人 の手 を介す ることで修正漏れや ミス タイ プの リス
クがある

.

ま た ,CALLSnaUTXル

ー チ ン を利 用 す れ ば ,DATAス テ ップ でデ ー タセ ッ トの 変 数 の 内容 を マ ク ロ変

数 に格 納 で き る .次 章 で 説 明 す る制御 構 文 と併 せ て ,デ ー タ セ ッ トの 内容 に応 じて ,プ ロ グ ラ ム を 変 更 させ
る こ とが 可 能 に な り,プ ロ グ ラ ム に柔 軟 性 を 与 え られ る

CALL SYMPUTX(′

.

マ ク ロ 変 数 名 ′′ 格 納 した い 値 (DATAス テ ツ プ の 変 数 名 ))′

★男 女 別 の 生 徒 数 を数 え て ,そ れ ぞれ マ ク ロ 変 数 に格 納 す る ′

proc freq data = sashe■ p.class noprint′
‐
tab■ es sex / out = outl,
run,

data

nu■ l

if sex="男
・
run′

10

男子

′

set outl,

子"

52.631578947

then call symputx ( 'N_Male' , count) ;

f sex = :I女 子 " 1-hen caff symputx ( 'N Eemafe' , count) i

'マ ク ロ変 数 の 値 を ロ グ に 出 力 して確 認 ′

tput N Male : &N Male N Fema■ e : &N Female.′

大「N Male: 10 N Fema■ e: 9」

と出力 ′

また ,SQLプ ロシ ジ ャ の INTO句 を利 用 して ,デ ー タセ ッ トの変数 の 内容 を マ ク ロ変数 に格 納 で き る

● ´

:)が 必要

proc sq■ noprint′

SeleCt count into :N Male /夫

■nto :・ マ ク │コ 変 数 名 ヽ/

from out1

■が ち☆/
↑コロン (:)を 忘オ

/★

where sex = 1=男 子 "′
se■ ect count into

frorn outl

where sex = i:女 子

‐

t,
ツ

N Eemafe

00UNT

::′

異子

qu■ t′

9

47.368421053

10

52.631578947

●

夫マ ク ロ変数 の値 を ロ グに 出 力 して確認 ′
るpu

t N Male : &N Male N Femafe : &N Female.; * [i\ i{a le : 1! N fer,aie : 9i LIN)J;

∠人
︵
0

73.

SQLプ ロ シジ ャで は ,デ ー タセ ッ トの特 定 の変数 の内容 を 1オ ブザベ ー シ ョンにつ き一つ のマ ク ロ変数 と して ,複 数 のマ ク ロ変数 に 分割 して格納 で き る.8章 では , この 方 法 を活用 した事例 を紹介す る . 夫特 定 の デ ー タセ ッ トの 変 数 名 を マ ク ロ 変 数 var+に 格 納 す る ′ proc sq■ noprint, select name into:varl― /☆ nameに デ ー タセ ッ トの変 数 名 が 格 糸内され て い る 大/ /夫 該 当デ ー タの 数 だ け マ ク ロ変 数 が varl′ var2′ var3‑と 自動 生 成 され る '/ from dictionaryocolumns/夫 di ctionary.co■ umnsに デ ー タセ ッ トの 情 報 が あ る ☆/ where libname = :'SASHELPil and memname = :'CLASS::′ q「 ユ エt′ dictionary .col tỳle ″│, SASHELP CLASS m m m CLASS SASHELP CLASS SASHELP CLASS SAS‖ ELP len u n 鑢 側 SASHELP.CLASSは name 研 &var5. i &var6. ; mem泊 ●,7)e 針 &var4 . ; libname ★ロ グにNameと 表 示 ′ ナロ グに sexと 表示 ′ ナロ クヾ にAgeと 壕 たデ 示′ ナログにHe■ ghtと 表示 ′ ☆ロ グにwe■ 9htと 表 示 , ふ 蔀 &var1. ; &var2. ; &var3. ; ― ■ ■■ 錮 x e懸 e陸 鑓龍H tput tput λput tput tput %put デ ー タセ 4 8 8. 3 ま 変 数 が 5つ しか な い た め WARNING, 3.3.マ ク ロ変 数 は文 字 型 変 数 マ クロ変数は,DATAス テ ップと違 って,す べて文字型変数 として扱われる。このため,マ クロプ ロセ ッ サに数値型変数のよ うに演算を行わせたい場合,整 数の場合は%eval関 数,小 数を含む場合は%systtalf関 数 に演算式を渡す必要がある.(と りあえず,%evalと %sysevalfは ,演 算のおま じないとの理解で問題ない.) 夫マ ク ロ 変 数 は 文字型 変 数 もlet not5 = 1 + 4′ tput &not5.′ /☆ 口 ヽこ 1 + 4 , │ク と表 うミ,/ tlet equa15 = teva■ (1 + 4), そput&equa15。 , /夫 ロ グに 5と 表 示 '/ tlet not5 == 1.5 + 3.5, 宅put &not5., /■ 口 :グ に 1.3 ■ 3.5 と「 表示 !/ tlet equa■ 5 = tsyseva■ f(1.5 + 3.5)′ tput&equa15.′ /'ロ グ に 5と 表 示 ナ/ llet not5= teva■ (1.5+3.5)′ eva■ 関数は小数 点 の 計 算不可 の た め エ ラー /夫 ィ `/ なお ,格 納 され るテ キ ス トに よって マ ク ロ変数 の変数長 は 自動 調 整 され るた め ,デ ー タセ ッ トの 文 字型 変 数 の よ うに文字切れ を気 にす る必要 はない (た だ し,SAS9.4の 最 大長 は 65,534文 字 であ る). 3.4.自 動 マ ク ロ変数 マクロプロセ ッサが自動的に作成する自動マクロ変数もある.自 動マクロ変数は,実 行環境の確認,プ ロ グラ ム 実行 日時や実行 ユ ー ザ ー の表示 な どに利 用 でき る.い くつ か例 を示す . 自動マ ク ゴ変数名 内容 SYSVER SASの バー ジ ョン を格納 (例 :9.4) SYSDATE9 SASセ ッ シ ョ ン の 開 始 日を DATE9フ ォ ー マ ッ トで 格 納 (例 :01SEP2022) SYSLAST SASセ ッ シ ョ ン で 直 近 に 作 成 した デ ー タ セ ッ ト名 を 格 納 (例 :WORK.CLASS) SYSUSERID 現 在 の SASプ ロセ ス の ユ ー ザ ーIDを 格 納 (例 :morita.yusukc) 65

74.

上記は,ほ んの一 例であ り,以 下 のプ ログラムを実行すれば,自 動 マ ク ロ変数 の一覧 が確認 で きる.な お , 自動マ クロ変数や そ の格納内容 はバー ジ ョンや環境 によって異な る . t 宅 '自 動 マ ク ロ変数 とその値 の一 覧 を SASロ グに出 力 ′ automatic また ,プ ロシジ ャ の 実行結果 が 自動 マ ク ロ変数 に格 納 され る場合 もあ る .例 えば ,デ ー タセ ッ トを比較 ・ 照 合 す る COAPAREプ ロシ ジ ャの 結 果 が 自動 マ ク ロ変数 SYSINFOに 格 納 され るこ とを利 用 して , COI嘔 )AREプ ロ シジ ャ の結果 を分 か りや す く表示 す る提 案 が あ る[14,15]. 他 に も,直 近 で実施 した SQLプ ロ シジ ャ処理 の対象 オ ブザ ベ ー シ ョン数 が格納 され る 自動 マ ク ロ変数 SQLOBSが あ り,対 象 デ ー タ数 を把 握 す る際や該 当デ ー タの有無 に よって処 理 を分岐 させ る際 に活用 で き る . proc sgJ- noprint; create table work.class as ca'1 aal ☆以 下 の 処 理 と同 じ (WOrk に コ ピー )′ data work.c■ ass′ * set sas.he■ p.c■ as S′ f rom sashel-p. cf ass run′ quit′ tput&sqlobs.ォ proc sqlで 直 近 に 処 理 した デ ー タの oBs数 が 格 納 ′ 4.マ クロプ ログラム2を 使 う 本 章では ,マ ク ロの 主要機 能 で あ るマ ク ロプ ログ ラ ム に つ いて概説 す る.前 章 のマ ク ロ変数 とマ ク ロプ ロ グ ラ ム を組 み合 わせ る こ とで ,よ り複 雑 なプ ログ ラム を マ ク ロプ ロセ ッサ に書 いて も ら うこ とが で きる . 4.1.マ ク ロプ ロ グラム とは マ ク ロプ ログラ ム もマ ク ロ変数 と同様 に,テ キ ス ト置 換 を行 う機 能 で あ る.マ ク ロ変数 は ,プ ロ グラム 中 の 変数名 ,デ ー タセ ッ ト名 ,オ プ シ ョンまたは短文 テ キ ス トの置換 に用 い られ る場合 が 多 い 。一 方 ,マ ク ロ プ ロ グラム は ,あ るま とまった 単位 の SASプ ログ ラ ム ヘ の置換 に利 用 され る もので あ り,マ ク ロ変数 と組 み合 わせ るこ とで ,ま た ,制 御 構 文 を活用す る こ とで , さま ざまなプ ロ グ ラ ム をマ ク ロプ ロセ ッサ に柔軟 に 作成 して もら うこ とがで き る . 4.2.マ ク ロ プ ロ グ ラ ム の 作 成 ・ 呼 び 出 し方 法 マ クロプログラムは%macrO及 び%mcndス テー トメン トを利用 して作成する ム名 マ ク │ヽ , しヽ テ ク ト) フ ̲■ ■ ′ の マ ク 暦 プ ロ グ ラ ム名 マ ク ロプ ロ グラ ム名 は最 大 32文 字 ,最 初 の文字 は英 字 またはア ン ダ ー ス コア ,そ の後 の 文 字 は 英字・ 数 字 ・ ア ンダース コア が使 用 可能 で あ る[3]. 2マ クロ言語 リファ レンス (第 5版 )い 】 ではマ ク ロプログラムのことを単に 「マ クロ (処 理 )」 マ クロ機能全体 としての 「マ クロ」 と区別す るため,「 マ クロプログラム」 と表記する 8 66 と表記 しているが,本 稿では,SASの

75.
[beta]
マ ク ロプ ログ ラ ム をサ ブ ミッ トす る こ とで,マ ク ロプ ロセ ッサ にマ ク ロプ ロ グラ ム が登 録 され る.以 降 の
プ ロ グラムでは ,「 %マ ク ロプ ロ グ ラ ム名 」 と記述す れ ば ,そ の位 置 に マ ク ロプ ロセ ッサ に よって展 開 した
い テ キ ス トに置換 され る
らマクロプログラム名

.

・ この位置にテキス トが展開される ‐
・
/

マ ク ロプ ログラムの具体例 を示す
'マ ク ロプ ロ グ ラ ム の 作 成 と呼 び 出 し (参 照
t,macro univiaria te′

)

prOc un■ variate data = sashe■ p.c■ ass′

tunivariateが 以 下 のテ キ ス トに置 換 され る

var age′
c■ ass sex′

proc univariate data = sashelp.c■ ass′
var age′

run′
run′

.●

統mivariate'マ ク ロプ ログラム の 呼 び 出 し (参 照 )′

●■

tmend univariate′

class sex′

`
`←―こσ
)un■ var■ ateは 省日
各下r′

‐
1

̲̀■

.=̲

例 えば,繰 り返 し登 場 す る コー ドを マ ク ロプ ログ ラ ム 化 す るこ とで ,プ ロ グラム 中で マ ク ロプ ロ グラ ム名
を指 定すれ ば何 回 で も呼び 出 し可能 に な る。 もし仕様 変 更 が発 生 した 場 合 には,マ ク ロプ ロ グラ ム を修 正 す
れ ば ,そ の変更 が全 て の 呼び出 し個 所 に反 映 され る

.

4.3.マ ク ロ プ ロ グ ラ ム の 特 徴
4.3.1.呼 び出 し時 にマ ク ロ変数 を受 け取 ることができ る
2.1章 でも述べ た よ うに,基 準 とな るプ ログラム を コ ピー &ペ ース トして,一 部分 を書 き換 えたい場合 が
あ る。 この基準 とな るプ ログラム をマ ク ロプ ログラム 内 に格納 して,書 き換 えたい個所 と設 定 したい値 をマ
ク ロ変数 として,マ ク ロプ ログラム に指定できる。 この マ ク ロプ ログラム呼び出 し時に受 け渡す マ ク ロ変数
をマ ク ロパ ラメー タ とい う。マ ク ロパ ラメー タも,ユ ー ザ ー が任意 の名 前 を設定可能で,そ のマ ク ロプ ログ
ラム 内で参照可能 なマ ク ロ変数 とな る.マ クロパ ラメー タ としてデー タセ ッ ト名(ds⇒ お よび変数名(v額 )を
指定す る例を以下に示 す

.

'呼 び 出 し時 に マ ク ロ ハ ラ メー タ を 指 定

t:nacro univariate2(ds■

n′

var),

;

ら'マ ク ロ名 の 後 に マ ク ロバ ラ メー タを設 定 ,

proc univar■ ate data = &dsin.′

var■ ate2が 以下 のテキス トに置 換

var &var. i
cfass sexi

proc univaria te data

run i
tmend′

run;

%夫 呼 び 出 し時 に マ ク E!′ `ラ メ ー タ に 値 を 指 定 ′

iviariate2(dsin=sashelp.c■ ass′ var=age)

2■ロュ

=2iViariate2(ds■ n=sashelp.c■ ass′ var=we■ ght)

ら■

21"liVariate2(dSin=Sashe■ p.c■ ass′ var=he■ ght)
ま た ,マ ク ロパ ラ メ ー タに予 め既 定値 を与 えるこ ともで き る.こ の既 定値 を もつマ ク ロパ ラメー タをキー
ワー ドパ ラメー タ とい う。 キー ワー ドパ ラメー タは呼 び 出 し時 に指 定 しな けれ ば ,既 定値 が 自動 的 に設 定 さ
れ る .呼 び出 し時 に値 を指 定すれ ば ,そ の値 が設定 され る .し たが って ,ほ ぼ毎回決 ま った 値 を指 定す る
が ,稀 に指定値 を変 更 す る可能性 が あ るパ ラメー タは キ ー ワー ドパ ラメ ー タ と して宣 言 す る とよい

9

.

7︐
0
ハ

76.
[beta]
ナキ ー ワー ドバ ラメー タ (stats)の 例 ′

tmacro means(dsin′ var′ StatS=n mean StddeV m■ n median maX)′

proc means data : &isin. &stats.;
var &var. ;
class sex;
run;

var age,
class sex;

run,

Smend;
eanS(dS■ n=SaShelp.ClaSS′
Var=age)
p.ClaSS′ Var=age′
anS(dSin=SaShe■
夫statsを
指 定 し た 場 合 は ,指 定 値 が 採 用 ′

21■

を

'statsを 指 定 しな けれ ば 既 定 値 が 採 用

,

Stats = n mean stddev)

なお ,上 記 の dsinお よび v証 の よ うに ,既 定値 を持たな い マ ク ロパ ラメー タ を位 置 パ ラメー タ とい う
4■ 2.制 御 構 文が使 え る

DATAス テ ップでは ,条 件 分岐 の IFス テ ー トメ ン ト,反 復 処 理 の DOス テ ー トメ ン トが使 用 で き る.マ
ク ロ言 語 に も同様 に%ifス テ ー トメ ン ト,%doス テー トメ ン ト等 が用意 され て お り,デ ー タセ ッ トの 内容や
マ ク ロパ ラメー タの内容 に応 じて ,マ ク ロ プ ロセ ッサ の動 作 を変 更で きる.こ れ ら制御構 文 は マ ク ロ変数 に
はな い 機 能 で ,マ ク ロプ ロ グ ラム に柔軟 性 を与 える特徴 の一 つ となってい る

.

制 御 構 文 の例 として ,条 件 分岐 の%ifス テ ー トメ ン トにつ い て説 明す る

.

ら f条 件 文 A tthen 蜀 o′
・
(条 件 文 Aが Trueの 場合 の処 理
tend′

)

くte■ se ttf,自 件ゞ
IB tthen tdo′
て
(条 件文 Bが Trueの 場合の処理
)

tend′

>

.

< te■ se tdo′ ―
̲
(条 件 文 Aに も Bに も該 当 しない場合の処理 )
tend′

>

以下 に,条 件分岐 の実例 を示す 。入カデ ー タセ ッ トに該 当デ ー タがある場合 のみ ,単 変量解析 を行 うSAS
プ ログラ ム をマ クロプ ロセ ッサに生 じさせ る.つ ま り%ifス テ ー トメン トを利 用す ることで,デ ー タに応 じ
てマ ク ロプ ロセ ッサに出力 させ るプ ログラ ムが変更可能 になっている

.

3macro un■ var■ ate3(ds■ n′ var)′
prOc sq■ noprint, '入 カ デ ー タセ ッ トの oBs数 をマ ク ロ 変 数 nObsに 格 納 す る
Se■ eCt COunt(☆ ) int。 :nObS
from &dsin.′
quit′
tun■ variate3が 以 下 の テ キ ス トに置換 され る
を'該 当 デ ー タが あ れ ば 集 計 す る ′
ら■f &nobs. > O tthen %do′

prOc univariate data = &ds■

該 当デ ー タが あ る場合

n.′

var &var.′

proc un■ var■ ate data =
sashe■ p.class(where=(AGE > 50))′

var we■ ght,

class sex,
run′

Zend′

lelSe 2dOメ

%put NOTE:該 当 デ ー タ が あ りま せ ん ′

ciass sex′
run′

該 当デ ー タがない場合
tput NOTE:該 当デー タが あ りません ′

tend′
おmend′

2univariate3(ds■ n=sashe■ p.c■ ass(where=(AGE > 50))′

var=we■ ght)

―

0
1
8
ハ
0

77.

続 いて ,反 復処理 の%doス テー トメ ン トについて説明す る.文 法的には DATAス テ ップの反復処理 の DO ステー トメ ン トに%を つ けるだけである . マ ク ロ変数 =開 始値 tto終 了値 くをby増 分 >, (反 復 した い処理 3d。 ) tend′ %doス テ ー トメン トに よ り解析結果や デ ー タセ ッ トの内容 に応 じて,処 理 を繰 り返す ことがで き,プ ログ ラムの柔軟性 が向上す る。また,マ ク ロプ ロ グラム 自体に繰 り返 し処理がある場合 に,%doス テー トメン ト によ り記 述 を短縮できる場合 もある . ☆反 復 処 理 の 使 用 例 ′ timacro ■ist̲by̲4years(startyr′ endyr)′ t■ tlel l'Customer List of 19 proc ★4年 間 単 位 で 一一覧 作 成 を 繰 り返 す ′ data = (′ 省‐ 略 ), %do yr = &startyr. 2to &endyr. =by 4, %■ et edyr = Zeval(&yr. + 3)′ t■ tlel ::Customer L■ st of &yr. to & edyr.'I′ prOc print data == Sashelp.e■ ectr■ c noobs where &yr. く= year く= & edyr.′ 2003''′ ′ var year customer revenue′ run′ t■ t■ e, tit■ el tend′ ︐■ ・ らユist̲ゎ y̲4ylears(startyr=1996′ 2004 ヽ' &mend; 2007''′ endyr=2007) マ ク ロの制御構文には ,他 にも%do― %whlc,%do‐ %mtil等 がある。 しか し,初 心者 の うちは%ifと %doの 2つ で事足 りると思われ るため,本 稿 では扱 わな い . %ifも %doも マ ク ロプ ロセ ッサに対す る命令 である.一 方 ,DATAス テ ップ の IFや DOス テー トメン ト は,DATAス テ ップの コ ンパ イ ラに対す る命令 であ り,デ ー タセ ッ トの変数処理 に使用 され るこ とに留意 さ れたい .な お,SAS9.4M5か らマ クロプ ログラム内部でな くて も (オ ープン コー ドで)%i■ %then/%elseが 使 えるよ うにな った。2021年 の SASユ ー ザ ー総会 の発表資料 に制限事項 も含 め,丁 寧な解説 が ある[16]. 4.4.マ ク ロ 関 数 予 め SASに 用意 され た マ ク ロ関数3を 利用 で きる。これ らのマ ク ロ関数は,マ ク ロプ ロセ ッサ に よって実 行 され るマ ク ロプ ログラム である.DATAス テ ップでデー タセ ッ トを編集す るた めに利用 され る関数 と同 名・ 同機 能 であって も異 な るもので あるこ とに留意 された い。 以下にマ クロ関数 の一部 を示す 。 ヤ ク ロ 関数名 説明 %upcase(A?11),/ %lowcase(A?FU) 文字列を大文字/小 文字に変換する %trim(文 字 列 ) 文 字 列 の末尾 の 余 分 な スペ ース文字 を取 り除 く %index(文 字列 1,文 字 列 2) 文字列 1の 中に文字列 2が 含まれ ていれ ば,最 初 の位 置 (何 文字 目)を 返す .文 字列 2が 含 まれてい な けれ ば 0を 返す %syshnc(関 数名 ) DATAス テ ップ の 関数 をマ ク ロプ ロセ ッサ か ら使 用す る 3厳 密にはマ ク ロ関数とは別に, ソースコー ドとして提供 される自動呼び出 しマ クロ もある.マ ク ロの利用上は両者 を区別する必要 13〕 はないため本稿では区別 していない 11 69

78.

'マ ク ロ関数 の 使 用 例 ′ tlet low = abc123′ tput &low.′ ★ロ グに abc123と モ 終え R′ ★ロ グに ABC123と 予 長ブ六 tput tupcase(&■ ow。 )′ 老let up = A:BC123′ ・にABC123と tput &up.メ ナロ ク を示 ′ 電 tput tlowcase(&up.), ★ロ ク゛(こ abc123と ,な 牙ミ′ tlet trimtest=tstr(trirrmed? ),鶴 str関 数 で文字列 の 末尾 に スベ ー ス を残 す ′′ ‐ ` ☆ログに 'trimmed? :lと 表示 (ス ン ミー スあ り), tput:ttrimtest.:=′ ‐ ‖ ★ ン tput itttrim(&trimtest.)‖ ′ ロ グに tr■ mmed?"と 表示 (ス く― ス な し)′ Zlet indextest == 1234567890ABCDEF′ tput tindeX(&indeXteSt・ 7 1)′ ☆口!グ (こ 1と 表 示 ′ ヾ %put tindeX(&■ ndeXtest.′ ABC),■ ロ ク │こ 11と 表 示 ′ 宅put tindex(&indextest.′ Z)′ !ロ グ (こ 0と 表 示 (該 当 な し)′ 2put tsysfunc(■ og(1))′ 夫ロ グに oと 表示 (lo9は DATAス テ ップの関数 ), %put tsysfunc(exp(0))が ロ グに 1と 表 示 (expは DATAス テ ップ の 関数 )′ %put ?s fun c(today()′ ypmdd10。 )ォ ログに 実 行 日が表示 (2番 目の 引数 に formatを 指 定可能 )′ 4.5.マ ク ロ変 数 の ス コー プ マ ク ロ変数 に も ス コー プ ,つ ま リプ ロ グ ラム 中で参 照 可能 な範囲が あ る.ス コー プに よつ て globalマ ク ロ 変 数 と localマ ク ロ変数 に大別 され る .globalマ ク ロ変 数 は ,プ ログラムの どこか らで も値 を参 照可能であ る.一 方 ,local変 数 は ,そ の変数 が 宣言 され たマ ク ロ プ ロ グ ラム 内部 で の み値 を参照可能 で あ る . 'マ クロ変数 の ス コー フ ′ tg■ oba■ globa■ var′ tク ロー バ ル マ クロ変数 を宣 言 ′ timacro gユ o:baユ ̲ Ocaユ , var=ロ ー カル 変 数 で す ′を夫この マ ク ロ 内部 だ け参 照 可 能 ′ tlet g■ oba■ ̲var=グ ロー バ ル 変 数 です タ ネ■et■ oca■ tmend′ tg工 obaユ ニOca■ 'マ クロを実行 ′ tput&g10ba■ Var.メ ☆グロー バ ル 変 数 な ので , どこで も参 照でき る そput dOca■ var.′ ☆マ クロ外 な の で ロー カル 変数 は 参照 できない ′ , 初 心 者 の うちは ,ス コー プを意識 す る機 会 は さほ ど無 い か も しれ な い 。 しか し,チ ー ムで マ ク ロプ ログラ ム を分 担 して構 築 す る場合や ,マ ク ロプ ロ グラムで構 築 され た システ ム を利 用 す る際 は ,マ ク ロ変数名 の衝 突 を避 け るた め ,マ ク ロ変数 のス コー プ に留意 が必 要 とな る.(localマ ク ロ変数 を明示 的 に作成 す るため の%localス テ ー トメ ン トが用意 され て い る .) 12 70

79.
[beta]
4.6.特 別 な 文 字 へ の 対 処

(ク ォ ー ト処 理 )

ここまで説 明 してきたように,%4ゃ &は ,マ ク ロプ ロセ ッサに対す る命令 を示す文字である (マ ク ロ トリ
ガー とい う).し か し,%や &を は じめ,マ クロプ ロセ ッサに対す る命令 として扱 われ る文字5を ,命 令では
な く,た だのテ キス トデー タとして取 り扱 いたい場合 がある。 この よ うな場合 は,① そ のテキス トをシ ング
ル クォーテー シ ョンで囲む,あ るい は②%酪 廿関数 にテキス トとして解釈 させ たい文字列 を指定す るといっ
た対処法がある.以 下に例を示す 。
'特 別 な 文字 へ の 対 処 ′

data

nul■

′

る

coml NG=''100%勇 気 "′ 'NGマ ク ロフ ロ セ ッサ が 「'勇 気 」 を マ ク ロ呼 び 出 し と勘 違 い つ ′
`OKシ ン グル ク ォー テ ン コンで 挟 まれ た 文字 列 に は 立 ち 入 らな い ′
com1 0Kl=71001勇 気
com1 0K2=嶋 nrstr(1002勇 気 )"′ 'OKマ ク ロフ ロセ ッサ に
数 で 文 字 列 と連 絡 ′
:′

=nrstr関

com2̲NG=1'ぐ り&ぐ ら"′

com2 0Kl = 7く ゛り&く ゛ら '′

゛

ナNGマ ク ロフ ロセ ッサが 「&ぐ ら」 をマ ク ロ変数 参照 と勘違 いす る′

'OK′
゛

com2 0K2 = 1'そ nrstr(く り&く ら)';′ 'OK′
run′

この よ うに%や &な ど,マ ク ロプ ロセ ッサ に とっ て特別 な意 味 を もつ 文字 (命 令 )に つ い て ,「 これ は あな
た に対す る命 令 じゃな いです よ」 とプ ロ グラム上 で 明示 す るこ とを クォ ー ト処理

(ク ォー テ ィ ング)と い

う。 本稿 では触 れ な いが,マ ク ロ変 数 の値 に,ク ォ ー ト処理 が必 要 な文字 が含 まれ てい る場合 ,つ ま り,マ
ク ロプ ログラ ム の 実行 時 にクォー ト処 理 が必要 な場 合 もあ る。そ の よ うな複雑 なケ ー ス ヘ の 対処 と前項 のマ
ク ロ変数 のス コー プ も含 めて ,2019年 の SASユ ー ザ ー 総会 の発 表 資 料 に丁寧 な解説 が あ る[17].

5。

マ クロをデバ ッグす る
「犬が西向きゃ尾 は東」で,マ ク ロ を書 けばバ グが生 じる。 したがつて,マ ク ロを効率的にデバ ッグす る

技術 も重要である。マ クロをデバ ッグす るときは,マ ク ロプ ロセ ッサが,マ ク ロプ ログラムを どう解釈 し
,

結果 として どの よ うな SASプ ログラム を生 じさせ たのかを知 ることが有用である.こ のため,マ ク ロのデ
バ ッグを効率的 に行 うためのオプシ ョンが用意 され てい る.以 下に,よ く使用す るオプ シ ョンの例 を示す
オ プ シ ョン名

.

内容

●

.

.‐

.

.

―
│

ヽ4PRnヾ T

マ ク ロ プ ロセ ッサ に よ り生 成 され る SASプ ロ グ ラ ム を SASロ グ に 表 示 す る

MLOGIC

マ ク ロプ ロセ ッサ が マ ク ロパ ラ メ ー タに どの よ うな値 を受 け取 った か ,%if条 件 分岐 を

Truc/Falscの どち らに判断 した か ,マ ク ロの 開始 点 と終 了点 を SASロ グに表示 す る
SYヽ4BOLGEN

マ ク ロプ ロセ ッサ が ,マ ク ロ変数 を どの値 に置 き換 えたか SASロ グに表示す る

これ らのオ プ シ ョンを指定す る こ とで ,SASロ グ に マ ク ロプ ロセ ッサ か らの情報 が 出力 され るよ うにな
る .し か し,上 記 オ プ シ ョンを指 定 して も SASロ グ を読 み解 くの が 困難 な場合 もあ る。 そ の場合 ,mmeオ
プ シ ョンでマ ク ロプ ロセ ッサが出力 した プ ログラ ム 全 体 を別 フ ァイ ル と して 出力す る こ とも可能 で あ る

.

(マ ク ロの学 習 に も活用 で きる.)

43つ だけ例外がある.%INCLUDE,%LISTお よび%RUNは DパTAス テップの命令である.マ クロプロセ ッサは知らんふ りをする
5 +̲■ >=¬ 人 ;,#blankAND OR NOT EQ NE LE ET GE GTINが 該当する
/く

│〜

13

71

80.

ナdeougモ ー ドの とき は ,マ ク ロ ア ロセ ッサ が 出 力す るア ロ グ ラ ム を 外部 フ ァイ ル に 出力 す る マ ク ロの 例 ′ opt■ ons mlog■ c symbO■ gen mpr■ nt′ 3maCrO my pr■ nt(dS■ n′ debug=N /ナ キー フー ド′やラ メー タ ナ/), 2■ f &debucI. = Y らthen Zdo′ ☆出 カ フ ァイ ル を 指 定 ′ f■ ■ename mprint i.Ymprint.sas:′ opt■ ons mprint mfi■ e, 2'mfileで ` mprintの 出 力 を フ ァ イ ル に す る ′ tend′ proc print data : &isin. noobs label; run i Ernend; 2町 ″print(dS■ n=SaShe■ poclass′ debug=Y) Opt■ OnS nOm109■ C nosymbolgen nomprint nomf■ ‐ ′ )リ ー ・ le′ /' オ :フ シ′ョン ヒ ッ│ヽ 大/ オプ シ ョンの 指 定に よ り,以 下 の よ うに SASロ グにマ ク ロプ ロセ ッサか らの情 報 が 出力 され る よ うにな る。また ,指 定 した フ ァイ ル 名 で MttINTオ プ シ ョンの 出力 結 果 が出力 され る。 6 C C │ Y です。 を Y V opt proc S pr mpr nt nf nt data sashelp. mprint.sas ass │:撥 RI「 か ら生 成 き れ た 黎 ク ロ 出 力 は 外 部 フ ア イ ル N r AS User̀≧ 響じヨkギ mac ro¥ 鶴pF nt NT(TEST): run: sa S :こ も 書 き 込 ま れ ま す デ ー タ セ ッ 卜羅 鉦 LP∝ 恭 Sか ら 19オ ブ ザ ベ ー シ ョ ン PR00EDじRE PR爾 処 理 (合 計 娘 穣 時 間 ): 処理時間 CPU日 寺晨覇 C(TEST) 0.90静 0.62 1, ■, L .■ │ また,デ バ ッグでは,マ ク ロ変数に格納 され た値 の確認が有用 なケース も多 い .以 下に,マ ク ロ変数 をタイ プ別にま とめて SASロ グに出力す るプ ログラムの記述例 を示 す . 'マ ク ロ変数 を タ イブ別 に ま とめて確認 す る ′ tput̲g■ Obal̲′ `グ ロー バ ルマ クロ変数 の一 覧 をSAsロ グに 出 力′ lput ■Ocal′ アロー カル マ クロ変数 の一 覧 を SASロ グに 出 力 ′ tput user, ,ユ ー ザ ー 定義 のマ クロ変数 の ‐覧 をsAsロ グに 出力′ 14 72

81.

6.マ ク ロ をライ ブ ラ リとして整 理 して活 用 す る 作成 した マ クロは積極 的 に活用 したほ うが良い。一旦動作 した マ ク ロプ ログラム も,別 の活用場 面では思 いが けず不具合や改善点が見 つ かることもある。つ ま り,マ ク ロは使 うほ どに洗練 され ,品 質 も向上 してい く.そ こで本章では,作 成 したマ クロプ ロ グラム をライブラ リとして整理 し,プ ログラムか ら呼び 出 し可能 にす る方法 について説 明す る . 以 下 に マ ク ロ ライ ブ ラ リを作成す る手順 を示 す 。 1)マ ク ロ を保管す る フ ォ ル ダ を用意す る。 (フ ォル ダは複 数 あ って もよい ) 2)各 マ ク ロプ ログラ ム に つ き ,1つ の フ ァイ ル に格納 して 1)の フ ォル ダに保 管 す る . この とき,フ ァイ ル 名 は マ ク ロ名 と同 じにす る必要 が あ る6.(マ ク ロ名 .sぁ とす る ) 巴aesevsas aaesumsas 巳figpea・ sas 巳fig̲s・ tsas 駐figcore sas 巳freq̲b■ にsas 巳 b̲u「 nsas 巳 sum̲by tに sas 囲xlsclosesas Exlsopensas .1,,.o o o o o o o e o o o ⑦ ⑨ O O ⑫ ② ② ⑫ ② ⑦ ⑦ 検討中 巴aぃ ocptsas 巴aesubgrsas ELflg̲boxpsas 巳figpopsas 巳fi9̲spagsas 巳freq.sas 巴freq」 osssas 餞bvs̲sunsas 日summarysas 自xisfusas 巳xisoutsas 3)マ ク ロ を呼 び 出す 側 の プ ロ グ ラ ム で ,以 下 の MAUTOSOURCE及 び SASAUTOSの 2つ の オ プ シ ョン を 指 定 す る .こ の とき ,SASAUTOSに て 1)の フ ォ ル ダ を指 定 す る 'マ ク ロ を ライブ ラ リと して活 用す る′ Opt■ OnS inautOSOurCe SaSautOS=(SaSautOS′ ☆()内 の sasautOsは 消 さな い こ と′ Opt■ OnS rnautOSOurCe SaSautOS=(SaSautoS′ . :'C:Ysas¥mymacros'1)′ 7i C:YsasYnヽ yrnacros': 7i C:¥sasYyol̀rmacrosi=)′ 夫複数 の フ ォル ダを指 定 可 能 ′ これ で ,マ ク ロライ ブ ラ リ中 のマ ク ロプ ロ グ ラムが 呼び 出 し可 能 にな る また ,本 稿 では扱 わ な い が ,組 織 と して共 有 マ ク ロライ ブ ラ リを整備 ・ 活用 した事 例 は ,過 去 の SASユ ー ザ ー 総 会 に複数 の報告 が あ る[18,19,20]. また,SAS94 M6以 降,Webベ ースのバー ジ ョン管理 ツール で ある GitHubと の連携機能が搭載 され てい る.GitHub上 でマ ク ロフ ァイ ルのバー ジ ョン管理 を行 い,SASか ら直接 GitHub上 のマ ク ロプ ログラム を include可 能 となつてい る[21].多 くのオープ ン ソースマ クロが GitHub上 で管理 。公 開 されてお り[10‐ 13], GitHubと の連携機能につい て今後の発展 が注 目され る。 6 UNIX環 境では,マ クロプログラム名 とそのファイル名をすべて小文字にする必要がある 15 73

82.
[beta]
7.マ ク ロの コ ツ
どんな道具 も正 しく使 うほ どに真価 を発揮す る。本章 ではマ クロを作成 す る際に留意 したいポイ ン トを説
明す る。浅学に して著者 らの経験 に偏 った内容 もあるか も しれない.PhUSEが 「Good PЮ Jmming Pr¨ ticc
ln Macro Developmc威 」 を公開 してお り[22],マ ク ロ開発 の指針や考慮す べ きポイ ン トを学ぶ ことがで きる

.

なお ,組 織 の コーデ ィングルール や ガイ ドラインがある場合 には,そ ち らを優先 されたい

.

7.1.マ ク ロで コー ドの重複 を排 除す る
マ ク ロに よ リコー ドの重複部 分 を極 力 ま とめて ,プ ロ グ ラ ム全体 を コ ンパ ク トに保 つ のが ポイ ン トであ
る。そ のために ,マ ク ロプ ログラム を ど う分割 して構 成 す るか ,マ ク ロパ ラメー タに何 を設 定 す るか ,マ ク
ロ作成前 の設計 が大 事 で ある.し か し,こ のた めには ,一 定 の業務経 験 を積 んで ,マ ク ロプ ロセ ッサ に作成
させ たい コー ドの イ メ ー ジが浮 かぶ よ うにな らない と難 しい 面 もあ る .ま ず はマ ク ロを含 ま な い プ ロ グラ ム
を作成 して みて ,重 複 部 分 をマ ク ロ化 してい くとい うア プ ロー チ もあ る .い ずれ にせ よ コー ドの重 複部分 は
マ ク ロ化 を考慮 す べ きポイ ン トで あ る。

T〒

プログラムA

プログ│ラ ムC

重複部分奪

■

重複部分1

T

コ ー ドの重複部分を

□化して括 りだす

重複部分霧

重複部分2

菫鶴難分3

重複部分 2

マクロ
プログラム2

重複部分3

■マクロ
プ書グラム3

7.2.マ ク ロ の 機 能 と入 出 力 を 明 示 す る
そ のマクロプ ログラムが, どんな機 能 を提供す るマ ク ロか,出 力は何 か ,入 力は何かの 3点 を明示す るこ
とが,使 いやす いマ ク ロを作成す る うえで重要である。そのマ クロの機 能 を的確 に表現 したマ ク ロプ ログラ
ム名 とし,必 要 な入 出力はマ ク ロプ ログラムのマ ク ロパ ラメー タとして明示 す る.そ のマ ク ロパ ラメー タ名
も端的で分か りやす いネー ミングを心 掛 けたい.ま た , コメン トも適切 に活用 して必要な情報 を補足す る

.

事例 を用 いて説 明す る。以下は,デ ー タク リーニ ングの名著 「Codyls Data Cleaning Tcchniques Using
SAS」

に掲載 され た外れ値 を検出す るマ ク ロプ ログラムの宣言部分であ る[231.

*Method using ar.t:onatic cutiier

Emacro Auto_Outliers

det=c;io:t;

(

Dsn=,
1..- -- r i.o'.- '
ID=,
\tar= o. I! \; .L'e
Var fist=, /- List cf variabi€s .o check */
/- leparate names with spaces -/
Trim=.1, /" In:eger 0 tc n : nunber i_c arti(t + /
i+ f::crt ea.ch rali; rf betw--en C anrl .5, */
/- propcr:icn r-c tarn r:-l each ,"a.l + /
N_sd:2 /+ l{unber of siandard .eviar-crns * /);
16

74

83.

コメン トの 補 助 もあ るが A■ o Outliersマ ク ロは外 れ値 を検 出す るマ ク ロであ る こ とが読 み取れ る .入 力 として,対 象 デ ー タセ ッ ト名 (Dsn),オ ブザベ ー シ ョンの ID変 数 名 (ID),外 れ値 を検 出 した い対象 変 数名 (V密̲list),(統 計 の知識 が前提 で あ るが)外 れ値 を抽 出す るた めの 条件 (■ h,N̲sd)を 指 定すれ ば よい こ と が分 か る。欲 を い えば ,外 れ値 が P五 ntプ ロシジ ャで 出力 され る の で ,マ ク ロプ ロ グ ラ ム名 を Pri■ Outliers と した方 が ユ ー ザ ー に よ り優 しか ったか も しれ な い (Autoは プ ロ グ ラ ム なので 自明 で あ る). 7.3.マ ク ロの 内部 をブ ラ ックボ ックス化 し,抽 象化す る 抽象化 とは ,マ ク ロのユー ザ ー はマ ク ロ内部 の アル ゴ リズム を知 らず とも,マ ク ロプ ロ グラ ムの機 能 を利 用可能 にす る こ とで あ る.こ れ はプ ロシジ ャを利 用 す るイ メー ジ に近 い .例 えば ,私 た ちは SORTプ ロ シジ ャに入 出力 の デ ー タセ ッ ト名 とソー ト変数名 を指 定 す れ ば ,プ ロ シ ジ ャ内部 の ソー トアル ゴ リズ ム を意識 す ることな く 目的 を達成 で きる。 この よ うに,マ ク ロ プ ロ グラム を作 成 す る際 は ,ユ ー ザ ー にマ ク ロ内部 を意 識 させず に ,必 要 最小 限 の入 出力 の指定で , 目的 の機 能 を提供 す るプ ロシジ ャをイ メ ー ジす る。 やや発展 的 な 内容 にな るが ,優 れ たマ ク ロは ,そ の 出力以外 に実行 され た痕跡 を極 力残 さない .マ ク ロの 内部 で ソー ト順 も含 めて入 カ デ ー タセ ッ トは変 更 しな い よ うにす る。 また,マ ク ロの 内部 だ けで作成 す る一 時的な workデ ー タセ ッ トは ,名 前 をア ンダーバ ー oで 始 めるな ど して マ ク ロ外部 の デ ー タセ ッ ト名 と衝 突 しない よ うに配 慮 す る.入 力 した ものに意図せ ず 変 更 が生 じる と,ユ ー ザ ー は ,そ のマ ク ロ内部 を確 認 す る 必要が生 じるか らで あ る.ま た ,「 立つ鳥 ,跡 を濁 さず 」 の精神 で ,マ ク ロの終 了時 に マ ク ロ内部 で 作成 し た workデ ー タセ ッ トを削除す る こ ともあ る . 7.4.マ ク ロ プ ロ グ ラ ム は な る べ く シ ン プ ル を 保 つ プ ログラム設計 の原則 に 「分割 して統治す る」お よび 「Keep it simple,smpid」 があ り,マ ク ロプ ログラム をなるべ くシ ンプル に保 つ ことを推奨す る.こ れ は,マ クロプ ログ ラムの汎用性 を高 めることとメンテナ ン スやテス トを容易 にす ることが狙 いである。また ,新 たにマ ク ロプ ログラムを作成す る場合 は,既 存 のマ ク ロプ ログラムヘ の入力方法 を工夫すれば新たに作成せ ず とも済まないか,あ るいは既存 のシンプル なマ ク ロ プ ログラム を利 用 して (呼 び出 して)作 成できな いか検討す る.品 質 の担保 され た既存 のマ ク ロプ ログラム を活用す る こ とで ,マ クロプ ログラム間の コー ドの重複 を予防 し,か つ新たに作成す るマ ク ロプ ログラムの 品質 も担保 しよ うとい うのが狙 いで ある . 7.5.コ ー ドの 読 みやす さや 理 解 の しや す さに も配慮す る マ ク ロを理 解 し,い ろい ろな制 御 構文 も活用 で き る よ うにな る と,SASに プ ロ グ ラ ム を書 いて も ら うのが 楽 しくな り,%や &が 飛び交 う複 雑 なプ ログラム に な る場合 もあ る。 もちろん ,そ の こ と自体 は マ ク ロ を理 解 してい る証 拠 で あ り,マ ク ロ プ ロセ ッサ も文法 的 に 間違 って い な い 限 りは指示通 りに動 いて くれ る。 一 方 で ,協 業す る他 の プ ロ グラマ や 未 来 の 自分 がプ ロ グ ラ ム を読む機 会 も多 々 あ り,コ ー ドの読 みや す さや 理解 の しやす さを優 先 して ,あ えて マ ク ロ化 しない (マ ク ロ化 しす ぎな い )と い う判 断 が適 切 な場合 もあ る[24]. また,マ ク ロ プ ログラ ミングで も DATAス テ ップ 同様 にネ ー ミン グが重要で あ る。イ ンデ ン ト (字 下 げ)を 適切 に行 い ,マ ク ロの 条件 分 岐や反復構 造 な どを把 握 しや す くす る,効 果 的 に コ メ ン トを入 れ るな ど,コ ー ドを読 む 人 へ の配慮 も大切 に したい . 17 75

84.
[beta]
7.6.小 さ く始 め る
小 さく始 めて ,少 しずつ理解す るのが習得 の コツである.最 初 はマ ク ロ変数 を使 うところか らで もよい

.

見本プ ログラムの よく変更す る部分 だけをマ ク ロ変数化 して,プ ログラムの 冒頭 で設 定可能にす る,先 行す
るプ ロジェ ク トのプログラム を改変 して利用す る際 に,重 複部分 をマ ク ロ化 してみ るな ど,小 さく始 めるの
が コツで あ る。また,簡 単なマ ク ロプ ログラム を解読す る練習 も役立 つ

.

マ ク ロを作成す る手順 として ,ま ずマ クロを含 まず に動作す るプ ログラム を作成 し,少 しずつ マ ク ロ化 し
てい くアプ ロー チが推奨 されて い る町 これ に よ リマ ク ロプ ロセ ッサ ヘ の命令 に誤 りがあるのか,マ ク ロプ
ロセ ッサは正 しく動作 してい るが,出 力 され るプ ログラムに誤 りがあるのか切 り分 けが容易になる。

8.マ ク ロ の 実例
著者 らが業務 で実際に作成 したマ ク ロプ ログラム を紹介す る.業 務 で繰 り返 し経験す る事例であ り,な る
べ く最小 限 のプ ログラム編集 で対応 できるよ う意 図 している

.

8.1.特 定 の フ ォル ダ内 の SASデ ー タセ ッ トを 1つ の Excclフ ァイ ル に変 換す る
SASデ ー タセ ッ トをデ ー タセ ッ ト別 にシー トを分 けて Excelフ ァイ ル に変換 して ほ しい と依頼 を受 け る。
もちろんデ ー タセ ッ トの数 だ け proc expo■ また は sctス テ ー トメ ン トを記述 して も よいの だが ,そ の よ うな
繰 り返 し処 理 は マ ク ロ化 して SASに プ ログ ラ ム を書 いて も ら うのが よい。
1■
1■

bnamte sas i:<fullpath for the fo■ der w■ th sas― datasets>!r access=readon■ y′
bname x■ s xlsx :iC:Ywork¥f■ lename.x■ sx:│タ

Smacro sas2xLsxi
/夫 ラ イ ブ ラ リ

SASに あ る デ ー タ セ ッ トの 情 報 を マ ク ロ 変 数 DSl〜 DS#に 格 納 す る 夫/

proc sq1 noprint;
select lowcase (memname)
into :ds1 from dictionary. tables
where fibname : "SAS",'
quit;

dictiona

tables

ツ

ト

SAS

ADAE
ADEC

DATA
DATA

Adce E@ts Aralysis Datut
E:pcue a Colhcted Frolysis

SAS

萬OLB

DATA

L.b0atqy Data Aialysis Datet

D.t6et

t6i.rl

Hb+,1e hkic

n{#

贅フーー タ」
レにう
ビ ッ を 1ン 卜 ず つ Exce■ フ ァ イ ア
旦力日して 、ヽく '/
tdo ■ == ■ ■to &soloos.′
│ヽ

/′

data xis.&&ds L.′
set sas̲&&ds&■

/★
&■ を重 ね ろ 点 が ホ イ ン
′

│ヽ

&&os&■ ⇒ &ds+と 解 釈 され る ナ/

.′

run,
tend′

tmend′

tsas2x■ sx
上記 マ ク ロ は ,冒 頭 でデー タセ ッ トのあ る フ ォル ダ と出力先 の Excelフ ァイル を指 定す る必要 が あ る。そ
こで,上 記 マ ク ロプ ログラ ム が 置 かれ た フ ォル ダ 内 の SASデ ー タセ ッ トを,同 フ ォル ダに既 定 の Excelフ ァ
イ ル名 で 出力 す るよ うにプ ロ グ ラ ム を改変すれ ば ,案 件 ごとにプ ロ グ ラム を編 集 す る必 要 がな くな る

.

(も ちろん 不 測 の事態 が起 き る可能性 があ るた め

,SASロ グ確認 お よび 出カ フ ァイ ル の確認 は行 う.)
18

76

85.
[beta]
8.2.特 定 のフォル ダ内の SASデ ー タセ ッ トを XPTフ ァイル に一 括変換す る
医療用 医薬品の承認 申請では,原 則 として 申請電子デ ー タ提 出が求め られ てお り,該 当デ ー タを XPT形
式 で提 出す る必要があ る.こ のため SASデ ー タセ ッ トを XPT形 式 に変換す る機会がよくある。なお ,以 下
では mcListマ クロプ ログラムは割愛 してい るが,フ ォル ダ とファイルの拡張子 を指定すれば ,指 定 フォル
ダにあ る該 当ファイル 名 を,指 定 したデー タセ ッ トに返却 して くれ る.抽 象化 の 良い事例であ る
.

'特 定 の フ ォル ダ内 の sASデ ー タセ ッ トを xPTフ ァイ ル に
opt■ on nofmterr m■ og■ c mprint symbolgen′

tlet xpt=tstr(c:¥wOrkYxpt)′
et sas=tstr(C:¥workYsas)′

一―括 変 換 す る ′

を'xPTフ ァイ ル を出力す るフ ォル ダ′
`

%★ SASデ ― タセ ツ トがあるフォル ダ′

l■

・ ''''一 '以 下変 更 しな い ヽナ暴 '・ ''′

timtacro sas2xpt(xptd■ r′ sasdir)′
%贅

%=フ ァイ ルー 覧を取 得 す る′
%

%fi■ eList(
d■ rectory=tsuperq(sasd■ r)′

/☆ D■ rectorЬ ア to read !/

/ス Output data set to create '/
/' St)ace de■ ■rn■ ted extensions to include
sens■ t■ ve. Leave blank to not st,bset based oll extens■ on '/
olュ t==

sas′

extens■ ons=sas7bdat

)

DSN赳 てE#)に 格 納 す る ′

ナフ ァ イ ル ー 覧 を マ ク ロ 変 数 (DSNAMEl〜

proc sqi nopr■ nt′
se■ ect

from

dsname

■nto

: dsnamel

―

sas′

qu■ t,
3・ 該 当 フ ァ イ ル が な い 場 合 は 終 了 ′

ら■f &Sq10]3S. = O ithen lreturn′

l■

bname

sas ''2superq(Sasd■ r)'' access=readon■ y,

そdO ■ = ■ ttO &3qlCbS.′
老ズーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー′
を'SAS7BDATを xPTIこ 変 換 す る ′

老ナ

libname _xpt xport "?superq (xptdir) Y&&_dsname&i. . .xpt";
data _xpt. &&_dsname&i. ;
set sos.&& dsname&i.;
run;
?end;
%'立 つ 鳥 跡 を濁 さず ′

libname sas c■ ear′
■■bname ̲xpt c■ ear′
prOc datasetS ■ibrary=work no■ ■st′
de■ ete sas,
run′

quit;
Smend;

Zsas2tttrrt (xptdir:?superq (xpt) , sasdir=%superq (sas) )
19

77

Not case

86.

9.終 わ りに マ ク ロ初 心者 を対 象 に マ ク ロの基礎 か ら応 用 ,そ して 利 用 の コツを概説 した .マ ク ロプ ロセ ッサ にプ ログ ラ ム を書 いて も ら うイ メ ー ジが伝 われ ば 幸 いで ある。 な るべ く平易 な説 明 を心掛 けたが力及 ば ず ,マ ク ロは 難 しい と感 じたか も しれ な い。 しか し,一 度 にす べ て を理 解 す る必要 はな く,著 者 らもた く さん の トライ & エ ラー を経験 し,必 要 に迫 られ なが ら時 間 をかけて少 しず つ 会得 して きた とい うのが実状 で あ る .や がて理 解 で き る 日が訪れ る と気 軽 に考 え,引 用 文 献等 も ご参 照 頂 けれ ば幸 いで あ る .マ ク ロプ ロセ ッサ は ,そ っ と 出番 を待 ってい る . 連絡 先 :mor墨 坐型k璽 墨重回ロュ聾生∞m 引用 文 献・ サイ ト [1]SASマ z口 言語 1:必 須要素 [2][zLsI:笠 」 :=i三 董:2二 重:虚 :重:∠ :=:■ を:乞 :生 [3]塾生墾墾 望」■重重邑ソファレン乙【 隻 5腿 ュ =ヱ [4]高 浪 洋平,舟 尾 暢男.統 計解析ソフ ト「SAS」 [5]Michelc M.Burlew.SAS MacЮ Programming M [6] ''マ ク ロ 言 語 入 門 ''. [7]]塾 と口理:QllQュ ニ」 Mヒ 連〔 ⊇ 塁=Q̲1日 [8]SAS塾 2型 [21旦≦ 211昼 1菫 ̲」 (改 訂版).カ ットシステム,2015,586p eEぉ y.SAS Press.2014,368p 忘備録 2016‑05‑10 g堕 :ェ 1:型 :111盤 ̲̲LI SAS」 :l」 ⊇ 里12LL:Il壺塑:1111=̲壁 埜整:I辿互■ 2021012■ ̀⊇ ≦ ≧ ユ [9]石 川 亨 .マ ク ロ言 語 テ クニ カル ガ イ ド.日 本 SASユ ー ザ ー 会 論文集.1996,p541‐ 549 [10]里 』壁≧坐1」10p尊 狙LS⊆ ilpttL :重 [11]二 ⊇△ llI1112垂 L=上 ic』 pl墜 ニ ̲』 ̲重 [12]Scott Bass SAS Macros [13]QttL艶 里⊆墨△墾 ̲M盤 ⊇ミユ生笙■Wh⊆ 盤±塾望 [14]二 塾蝉 ∠里ヱヱ生2饉 塁墾二透 堕三二二重力L̲皿 墾正三堂とを三∠里変数工菫堡主る董''.ゴ プ 100 =夕 不テツ 互旦至墨■重王一生つ016■ 0. [1511:≧ f:Ql121聖 ::ユ g PROC COMIl△!:L!::CQd壁 1̲Tl:≧ 2̲Usc of:壁 ̲̲12△ユ :』 :::≧ ̲]E tlllg」 :lQ!:L [16]査 :□ 重笙 %il%働 壁=‰ 42の 生―zと ≡二■ドニの禾」星 と 24墜 1墜 :の sI△ sヱ ̲z里 』 2:壺 三 │二 つぃ て,sAsュ ー ザー総会 論文集.2021 [17] 木本 早紀 .ク ォ ー ト処理及 び ス コー ブ ヘ の理解 深 め る.SASユ ーザー総会諭 支集.2019,p141‑150 [18]竹 田 真,佐 藤 智美.社 内マクロライブラリの構築について。SASユ ーザー総会論文集.2001,p37‐ 44 [19]柳 沢 健太郎, 常吉 華奈,山 本 典子.臨 床試験における集計解析用 SASプ ログラムの標準化 .SASユ ーザー総 会論文集.2004,p3744 [20]田 村 洋介.SASマ クロライブラリの開発/管 理/運 用.SASユ ーザー総会論文集 .2007,p123‑134 [21]''H型 堅」≧塑盤2ュ 菫生 ̲ェ Ql二」塾△ fi」 2■≦』⊆ 堡 LュIL」3と ビ sAS EL≧ gfL:型 21≧ LLLIl [22] Good PrQgramml■ g Pttctlcc ln Magro Dcycl∞ 聖 c」 t''.Pl,USE△ 」vallcc Hub 2o21‑09‑21 [23]Ron Cody.Cody's Data Clcaning Tcchniques Using SAS.SAS Press.2017,234p [24]市 橋 里絵 ,江 口 幸 子 ,渡 邊 大丞 ,月 田 あづ さ. Standard Templatc Prograns"の 開発 .SASユ ー ザ ー 総 会論文集 2010,p381‑383 20 78 .

87.

SASシ ステム

89.

SASに お け るPerl正 規表 現 の基礎 と実 装 o亀 井亮太 1,森 岡裕 1 (1イ ー ピーエ ス株 式会社 ) Basics and Implementation of Perl Regular Expressions in SAS Ryota Kameil, Yutaka Moriokar (tEPS Corporation) 要旨 SASの 正 規表現 は以 前 か ら PRX系 統 の SAS関 数 を中心 と して Pcrl正 規 表 現 準拠 でサポ ー トされ てい る . 日本 語 で も リフ ァ レンス が Wcb公 開 され てい るが ,基 本 的 な ユ ー ザー ガイ ドとな るよ うな書 籍 や 発 表 が 国 内 で 充分 に共有 され て い る とは言 えな い のが 現状 と考 えて い る .近 年 ,分 野 を問 わず にテ キ ス トマ イ ニ ング の 重 要 性 は増 してお り,文 字列デ ー タの ハ ン ドリング技術 の 一 つ として ,正 規 表 現活用 の需 要 は ,今 後 ,よ リー 層 増 してい くと思 われ る。医薬 品 開発 の 分野 にお いて も CDISC標 準化 が 浸 透 し,英 数字 中心 の ASCH文 字 で デ ー タセ ッ トが 規 則 的 に構成 され てお り,正 規表現 と非 常 に相性 が よい .ま た,昨 今 ウ ェア ラブ ル デ バ イ ス な どに よるシ ス テ ム ロ グ的テ キ ス トデ ー タのハ ン ドリ ン グ機 会 も増 えて い る.本 稿 で は高度 な応 用例 を 示 す の で はな く,正 規 表 現 利 用 の基本 的部 分 を紹介 し,利 用 の裾 野 を拡 げ る こ とを 目的 とす る . キー ワー ド :正 規表 現 ,Pcrl正 規表現 ,PRX関 数 正規表現 とは 正 規 表 現 とは,形 式言 語 理 論 にお け る正則 言語 の分野 で誕 生 した体系であ る .た だ し,そ の 後 ,コ ン ピュー タ処 理 の世界 での利 用 が 盛 ん にな り,狭 義 にはなるが ,文 字 列 の 特徴 を表 す パ ター ンを記 号 的 に表 現す る方 法 とい え る。正規表 現 を用 い ることで様 々 な条件 か ら,特 定 の パ ター ン を検 索 した り,置 換 した りす るこ と が可能 とな る.SASで は ,プ ログラム言 語 Pcrlの Per1 5.6.1の 修 正 バ ージ ョンに則 した正規表 現 が 実装 されて お り,PRX‐ か ら始 ま る関 数名 が付 け られ て い る.た だ し,厳 密 な点 での Perlと の機 能 の差異 につ い て は ,SAS 社 Webペ ー ジで, Pcrl Artistic Liccnsc Compliance"を キー ワー ドに検 索すれ ば ,そ の時点で の最 新 の SAS社 の 実装 ス タンス と,Perlと の相違点 が確 認 で きる。 正 規 表 現 の一般 的 な例 を郵 便番号 を用 い て ,以 下 に示す . 日本 にお ける郵便番 号 は xxx― ЖЖ (xに は数 字 が入 る)と され て お り,3桁 の 数 字 に続 きハ イ フ ン ,4桁 の数 字 か ら構 成 され る.正 規 表 現 を用 いて 郵 便 番 号 は¥d{3}等 d{4}と 表 す ことが で き る。なお ,¥d,{x}は メ タ文字 と呼 ばれ る もので ,詳 細 は後述す る . 81

90.
[beta]
基 本 Perlメ タ文字
正 規 表 現 内では ,使 用 す ることに よっ て 特別 な意味 を持 つ 文 字や記号 が 存 在 す る。それ らを総 称 してメタ文
字 とい う. w"を 例 に挙 げ る と,正 規 表 現 内で は,英 単語 を構 成 す る文字 を示 す (ア ル フ ァベ ッ トの 小 文字 aか
ら z,大 文字 Aか ら Z,数 字 0〜 9,ア ン ダ ー ス コアが該 当す る).ま た ,大 文 字 表 記 の W"は 英 単 語 を構成す る
文 字 以 外 を示す( !"等 の 記 号や漢字 ).正 規 表 現 で使用 され るメ タ文字 は数 多 く存在 し,こ れ らの メ タ文字 を
組 み 合 わせ ることで , 目的 の文字列 の 検 索 ,置 換 を行 うこ とがで きる.代 表 的 な メタ文字 を以 下 の 表 に記載
す る。
マ ッチす る条件 の説 明

使用例

マ ッチ す る文字列 の例

任意 の 1文 字

RN

PEN,PIN

英単語 を構 成す る 1文 字

¥w¥w¥w

ABC,aaa,O Z

¥W

英単語 を構 成 す る 1文 字 以 外

¥ヽ 7¥ヽ7¥W

!!@,#(#

¥s

空 白文字

A¥sC

AC(Aと Cの 間には半 角 ス ペ ース

¥S

空 白文 字 以 外

A¥SC

ABC,A+C

¥d

半角数 字

¥d¥d¥d

123,009

¥E)

半角数 字 以 外

¥D¥D¥D

ABC

0回 以 上 の繰 り返 し

Go*d

(:}d,God,(〕 ood

十

1回 以上 の繰 り返 し

Go+d

God, Good, Goood

{n}

n回 の 繰 り返 し

Go{1}d/Go{2}d

God/(〕 ood

{n,}

n回 以 上 の繰 り返 し

Go{1,}d

〈
}od,Good,Goood
二

{n,m}

n回 以 上 ,m回 以 下 の繰 り返 し Go(1,2}d

メ タ文字

¥w

0〜

1回 の繰 り返 し

文字列 の 先 頭

)

God,Good

Go'd

Gd,God

∧ABC

ABCDEFG(マ ッチす る)
̲ABCDEFG(マ ッチ しない)

S

文字列 の 末 尾

ABC$

̲ABC(マ ッチす る)
ABC̲(マ ッチ しない)

¥b

単語 の 区切 り位 置

¥bana¥b

めc ana(マ ッチする)
analysis(マ ッチ しない)

[XXX]

指定 され た文字のいず れ か

A[BCD]E

SAS関 数お よび コールルー チ ンの紹介
―PRXCHANGE関

数

正 規表現 を使 って,文 字列 の置換 を実行 す る。

0l data reverse;
02 input name $20. ;
03 cards;
04 Taro, Yamada

82

ABC,ACE,ADE

91.
[beta]
θ5 SatOrLl,SatOnaka

li*9P v F reversel

θ6 Kazuto Tonoma

name

Taro, Yamada

θア ;

Satoru, Satonaka

θ∂ run;

l(azuto Tonoma

θ9 data conlp;
′θ

sct rcvcrsc;

ff

rcv̲namc=prxchangc(ls/(¥w+),ew+)/S2,Sl′ ,‐ 1,namc);

f2

②

①

′
θ run;

③ ④

【
データセットcomp】
name

デ ー タセ ッ ト reverse内 の 変数 nameに お いて ,

rev

Taro, Yamada
Satoru, Satonaka

Yamada, Taro

Hazuto Tonoma

Hazuto Tonoma

Satonaka, Satoru

,"で 区切 られ た前 半部分(名 前 )と 後 半部 分 (苗 字 )を 反 転 させ

たい場合 は ,11行 日にて pⅨ change関 数 を用 い て行 う。
isow+),ew+)/S2,S1/'が 正 規 表 現 パ ター ンを表現 す る部 分 とな る

.

① s/:置 換 を行 う際に関数 内の先頭 に記載す る必 要性 がある

.

ew十 ):メ タ文字 である¥wで 英単語 を構成す る文字 を検索 し,十 でそれが 1回 以上存在す ることを表す正規表
現 となる。つ ま り,空 白以外 の英単語を構成す る文字 が該 当す る

.

ew十 ),ew十 )と な り ,"の 前がSl, ,"の 後がS2と して キャプチャバ ッフ ァに登録 され る。 ここでの 「キヤプチ
ャバ ッファヘ の登録」 とは,部 分 として認識 され ,一 時的に登録 されてい るとい う意味である。
② /S2,S1/で キャプチャされたS2,Slの 順で出力す るよ うに指定 している。つ ま りは入れ替えを行 つてい る

.

③ ここでは,一 致 を検索 して一致す るパ ター ンを置換す る回数 を指 定す る.‑1と す ることで,単 語 の末尾 に
到達す るまで一 致 したパ ター ンが置換 され る。
④ 変数 の指 定 を行 う。
デー タセ ッ トcompに 着 目す る と,1オ ブザベ ー シ ョン ロの namc=

Tao,hmada"で は ,"で 区切 られ た 2つ

の 1文 字以上 の英 単語を構成す る文字が存在 し,① にて定義 され た正規表現にマ ッチす る.マ ッチ した ,

,"

で区切 られた前 半部分(T釘 o)が $1と してキャプチ ャ され ,後 半部分 αamada)が $2と してキャプチ ャ され る

.

②では,キ ャ プチ ャされ たSl,S2を rcv̲namcで は$2,Slの 順で出力す るよ うに指定 してい るため,rcv̲namc=
Yamadι T密 o"と な る

.

一方で,3オ ブザベ ー シ ョン ロ name=

Kttuto Tonoma"で は,正 規表現内で指定 した条件 である ,"が ないた

め,マ ッチ されず に名前 と苗字 の反転 が行われ な い

.

¨PRXMATCH関

数
パ ターンの一 致 を検索 し,マ ッチ したパ ター ンの位 置 を返す。国内 の携帯電話番号 を例 に出す

data telnum;
input name $16. num $20.;
datalines;

Shigeno090-1lll-1111

83

92.
[beta]
Sato 222‑2222‑2222
Shilnizu 080‑1234‐ 5678
Kato 090‑6666‐ 555

run

data match;

【
出力結果】←

set teinuin;

name:Shigeno position:l posilio:r2:4d

position=prxinatch(1/0[789]0‑¥d{4}‐ ¥d{4}′ ,nunl);

nam-Sato

poshon2=pⅨ match(ソ ‐
¥d{4}‐ ¥d{4}′ ,num);

position:0 positioo2:4<r

oame:Shimizu position:l position2:4.

put nanlc:=positlon=position2=;

name:Kato position:0 position2:0!

run;

positionで は , 日本 の携帯電話 番 号 0{7,8,9)0‐ xxxx¨ xЖ x(xは 数値 )の パ ター ンに一 致 した 際 の最初 の位 置 を表

し,posHo虚 で は ,‐ ЖЖ ―
xxxxに 該 当す る最 初 の位 置 を表 してい る

.

デー タス テ ップのwhcrcス テー トメン トにおいて ,prxlnatch関 数 を利用す ることがで き,条 件に合致す る レ
コー ドのみ を抽 出す ることがで きるため,処 理効 率が よい

.

data tel;

【
抽出結果】゛

set telnum;

name:Shigeno num:090-I I l l-l I I l€

where prxmatch(/0[789j0+d {4 } +d {4 }/, num);

nainlσ =Sll董 Dizu nunl==080‐ 1234‐ 5678̀]

run;
¨PRXPARSE関

数

PR測ARSEを 使 用す る と,正 規 表 現 の定義 を コ ンパ イル す る こ とが で き る.こ こで い うコ ンパ イル とは

,

正 規表 現 をそ の デ ー タステ ップ 内 で呼び出せ る形 に して ,そ の情報 を変 数 に入れ る こ とで あ る。 コ ンパ イル
され た正規 表 現 の入 った変数 を指 定すれ ば,毎 回長 い 定義 を書 か ず に ,簡 易且 つ 高速 に呼び 出 して利用 で き
るよ うに な る とい うイ メー ジで理 解 すれ ば よい

.

0l data sport;
02 input name $10. ;
03 cards;
04 baseball
05 football
06 golf
07 gateball

08;
09 run;
10 data ball;
II
set sport ;

84

93.
[beta]
【出力 結果】

′2

retain re ;

′3

nnms=foas6fua11 re=1 match=l

if _N_ = 1 then do ;

′イ

nrmsdptl6all re=l match=1

1s = pxparse('/(*w+)balV') ;

f5

aaEFgolf

end;

′6
′7

match = prxmatch(re, name) ;

rE=l match=0

name=gxfsfall 1p=l matcdr=l

run

13‑15行 日の if N=1条 件 のループ部 分 は ,SASの 場 合 ,デ ー タ読み込み に伴 って各 オブ ザ ー ベ ー シ ョン
ご とに処 理 を行 うシス テ ム にな るが,コ ンパ イ ル の作業 はデ ー タ ステ ップ中 に 1回 の実行 で有 効 で あ り,何
回 も実 行 して も処理 上 ,無 駄 になる.そ の た め ,こ の よ うな設 定 を してデー タ ス テ ップで 1回 の み の正 規表
現 コ ン パ イル を行 うこ とが あ る。ただ し,現 在 の SASで は正 規 表現部分 を静 的 に定数 で定義 して い る場合
PIO【

,

PASEに よる コ ンパ イ ル は 1度 しか実 行 され ない よ うに制 御 されてい るた め ,無 くて も問題 の な いル ー

プで あ る

.

14行 日で変数 rcに ,

ball"の 前に 1文 字 以 上 の英単語 を使 用 してい る単語 に マ ッチす る とい う正 規表現 が

コ ンパ イ ル され て格納 され る

.

そ して 16行 日で prxmatch関 数 の第 一 引数 に変数 reを 指 定 す る ことで正 規 表 現 が 適用 され る
¨PRXPOSN関

.

数

PRXMATCH,PRXCImNGE,PRXSUBSTR PRЮ CXTの い ず れ か の結果 を使 用 して正 規表現 で指 定 され たキ
ャ プチ ャバ ッフ ァを返 す .(PR測 )OSN単 体 で使 用 して も,キ ャ プチ ャバ ッフ ァ が 事前 に他 の 関数 や コールル
ー チ ンで 作 られ ていな けれ ば ,返 す もの が な い ため期待す る結 果 は得 られ な い 。 )
再度 の 説 明にな るが ,キ ャ プチ ャバ ッフ ァ とは ,正 規表 現 に よ ってマ ッチ した とみ な され た箇 所 を括弧 で
指 定 して ,一 塊 の部位 と して認識 させ る方 法 にな る

.

01 data Names;
02 input name $20.;
03 cards;
04 Suguru, Egawa
05 Daisuke, Matsuzaka
06 Roki, Sasaki
07 Suzukilchiro

08;
09 run;
10 data FirstlastNames;
II
length first last $10. ;
12 set Names;
13 re=?rxparse('(+w+),@w+)/);
I4
if prxmatch(re, name) then do;
15 first:prxposn(re, 1, name);
6 last:prxposn(re ,2, name);

【出力 結 果】
name:Suguru,

Egawa

name:Daisuke,

Matsuzaka last--Matsuzaka fircFDaisuke re=l<'

last--Egarva fust:Suguru re:l€

uame:Roki, Sasaki

last==Sasaki

name:Suzr:kilchiro

last:

1

85

first=IIこ oki

is←

re==1く」
re=1♂

94.

17 end; l8 putnarne: lasF firsFre=; 19 run; 13行 日の正 規表 現 変数 ew+),ew十 )の 部 分 につい て ,¥w+は 1文 字以上 の 英 単語 を示 して お り,そ れ が括弧 で 囲 まれ て ,"で 区切 られ ている.こ れ は ,2つ の 1文 字 以 上 の英単語 が ,"で 区切 られ てい る こ とを示す正 規 表 現 で あ り,前 半 1つ 目の単語部分 が ,キ ャプチ ャバ ッ フ ァの 1つ 日とな り,後 半 の 2つ 目の 単語部分が キ ャ プチ ャバ ッフ ァ の 2つ 日となるよ うに定義 され てい る . 14行 日の if prxlnatch(re,name)■ en dOル ープ は,定 義 した正 規表現 で の 照 会 を行 い ,マ ッチ した場合 ,つ ま り照会 のパ ター ンが 対象文字列 に含 まれ ることが確 定 した場合 のみ ,doル ー プ内の処理 を行 う . こ こで pⅨ match関 数 に よる照合 が 行 われ てい るこ とに意 味 があ り,こ の 関数 の働 きでパ ター ンマ ッチが起 きた こ とで,キ ャプ チ ャバ ッフ ァに マ ッチ 中の部分塊 が そ れ ぞれ登録 され た こ とにな る。 15行 日で prxposn関 数 の第 2引 数 に 1を 指 定す る こ とで ,pⅨmatchで マ ッチ した キャプ チ ャバ ッフ ァ 1( ," で 区切 られた前 半部 分 )を 元文字列 か ら抜 き取 った結 果 を返 す . 16行 日では,同 様 に 第 2引 数 に 2を 設 定 してお り,キ ャ プチ ャバ ッフ ァ 2( ,''で 区切 られ た後 半部分)を 抜 き取 って変数 に代 入 してい る。 ―PRXPAREN関 数 パ ター ンマ ッチ ン グ を行 った結果 にお い て ,マ ッチ した 部 分 パ ター ン (括 弧 で グル ー プ化 され て い る正規表 現 の一 部分 )の 最 初 の 番 号 を返す . 01 data score; 02 score='040002003'; 03 prxid:prxparse('(t)l(z)l(s)/'); 04 pos:prxmatch(prxid,score) 05 paren:prxpa"ren(prxid); 06 put score: pos: paren=; 07 run; ; [出 力 結果】 scorF040002 003 pos:ll paren:2€ prxidで pⅨ pTseに て ()で 囲まれ た 1,2,5の 番 号 を定義 す る posで ,scorcか ら prxidの 条件 に一 致 した値 を返す . . parenで は,prxid内 で定義 した括弧 の 中で ,マ ッチ した 括 弧 の番号(今 回 で あれ ば,2つ 目の 括 弧 である 2" が マ ッチ され る)が 返 され る . ¨PRXNEXTル ー チ ン 1つ の 文字列 内 で ,マ ッチ したパ タ ー ン位 置 を全 て取 得 したい ,マ ッチ した 部 分 を全て抜 き 出 したい とい う 状 況 は多 く,そ うい っ た場合 コール ル ー チ ンで あ る Pに い EXTが 有効 にな る。 コール ル ーチ ンの た め ,戻 り値 を持 た な い代 わ りに ,引 数 が更新 され る . CALL PE(卜 EXT(正 規 表現 ID,開 始位 置 ,停 止位置 ,対 象 変数 ,マ ッチ した パ ター ンの位 置 ,マ ッチ したパ タ ー ン部分 の長 さ)と な ってお り,マ ッチ した場合 ,開 始位 置 がマ ッチ箇 所 以 降 の検 索 に な る よ うに 自動 更 新 され るため,do whileル ープ等 と非 常 に相性 が よい . 86

95.
[beta]
θf

data wkl;

″

input text $20.;

θθ cards;
θイ cathatbutgot
θ5

badgoodmat

θ6
θ7

08 data wk2;
09 set wkl;
I 0 ExpressionlD = prxparse('/[a-z]atl');
I I start: l;
12 stop: length(text);
13 call prxnext(ExpressionlD, start, stop, text, position, length);
l4 do while (position > 0);
15 found = substr(text, position, length);
16 output;
17 call prxnext(ExpressionlD, start, stop, text, position, length);
18 end;
19 run;
入カデータセ ット:wkl】
【
text

cathatbutcot
2

badgoodmat

出カデータセ ット:wk2】
【
start
4

12

cat hatbut eot
badgoodmat

7

12

11

10

嵐は嵐

onID

cathatbutgot

found

入 力 され た 2obsの 文字列 か ら[a― z]atに マ ッチす る 3つ の部分 が subs廿 関数 で一致 位 置 と長 さを指 定 して
抜 き取 られ て ,出 力 されて い る こ とがわか る

.

入門者 が混乱を生 じやす い正規表現 の機能
正 規表現 に つ い ては ,様 々 な書 き方 に よ り,柔 軟 な マ ッチ ングが で き る よ うに機 能 が備 え られ て い る。 た
だ し,あ る程 度 の慣 れ が必 要 で あ るた め,入 門者 が 順 きやす い と思 われ る表現 につ い て ,い くつか 取 り上 げ
たい

.

先 読 み・ 後 読 み
―
肯定先読み
肯定先読み とは ,指 定 されたパ ター ンと部分文字列 が一致 した場合 に ,そ の部分文字列全体ではな く先頭位

87

96.
[beta]
置 にマ ッチ させ る記述 とな る。書 き方 としては(?=xxx)の 形 で表 され ,xxxで 条件 とな る正規表 現 を指 定す る
θ′ data sport ;
θ2

input name $20. ;

θ3

cards ;

θイ baseball
θ5

football

θ6

ball

θ7

base

θ∂ basecamp
θ9

rebaseball

fθ

′f

run ;

f2

data ball;

fJ

set sport;

′イ

re:prxparse('/base(?:ball)/');

【
出力結果】

′5

if prxmatch(re, trim(name)) then do

nane=basebatt

f6

call prxposn(re,O,position, length) ;

′7

put name: re: position: length: ;

name:football re:l position:.length=.*
re:l position=. length:.tffirne:ball

f∂

f9

re=l position=l length=4■

ruune:base rel positior. length=.<nalne=basecainp re=l position=.lengtll=.く

end;

」

name:rebaseball re:l positiae3 length:4-

run ;

14行 日で basc(?=ball)と す る こ とで ,bdlの 直 前 に baseと な る文 字 列 が マ ッチ し,マ ッチ に ball自 体 を含 ま
な い。つ ま り bぉ cの 後 に banが 続 くかを,先 に見 に行 き,そ れ が 肯 定(合 致 )し た こ とを確認 した 後 で戻 って
きて bぉ eに マ ッチ して い るイ メー ジであ る.そ れ 故 に肯定先 読 み と言 われ てい る .該 当す る最 初 の位 置 が
pos‖ on内 に 出力 され る

.

call pⅨ posnは コールル ー チ ンで ,第 3引 数 で マ ッチ したパ ター ンの位 置 ,第 4引 数 で マ ッチ した長 さを更

新す る。

name=basめ allで は,最 初 の 1文 字 目が マ ッチす るた め position=1と な り,name=rebぉ eballで は ,3文 字
目か らマ ッチす るため posHon=3と なる

.

肯定先読 み を利 用す る と,以 下 の よ うな文字列 を マ ッチ させ る こ とがで きる
「1つ 以 上 数 字 を含 んだ 5文 字 以 上 の文字列 」

01 data bangou;
02 length name $20.;
03 name:'12a';output;
04 name:' abcdeefl ';output;
05 name:'Abcdef:outputl
06 name:' abcl de';output;
07 name:'abcDe';output;

88

97.
[beta]
θ∂ run;
θ9' data ballgou2;

【出力結果】

′θ

set bangou;

name:12a rrl position:. length:.*

′f

re=pⅨ p"se(ソ (?=.*¥dttw{5)¥b′ );

′2

ifprxlnttch(re,trim(name))then do;

′3

Call pⅨ pOSn(re,0,pOS五 〇n,lenざ h);

′イ

end;

′5

put nalne=re:=pOsition=length ;

name=abcdeei re=l position■ 4 1ength=5■

namrAbcdef rrl position:. length:.<:
name:abclde rrl position:2 leoglh:5<-

namrabcDe rrl position:. length:.<-

namrlZabc re-l position:l length:5+

′6 run;

11行 日(?=.*¥d)と す る ことで,文 字列 の先頭から任意 の文字 が続 いた後 に数字がマ ッチす るか どうかを先 に
調 べ ,マ ッチ した場合 は,文 字列 の先頭 か ら任意 の文字 が 5文 字続 く文字列 とマ ッチす る

.

positionに は,文 字列 の 中で最初にマ ッチ した場所(数 字 を含 む 5文 字 の文字列)を 表 し,lenghは その長 さ(今

回 の場合は 5文 字 と指 定 しているので 5)が 出力 され る

.

‐
否 定先読み
否 定先読み とは,指 定 されたパ ター ン と部分文字列が一致 しなかった場合 に,先 頭位置 にマ ッチ させ る記述
とな る.書 き方 として は(?!xxx)の 形 で表 され ,xxxで 条件 とな る正規表現 を指定す る

.

01 databall2;
02 set sport;
03 relxparse('/base(?lball)/');
04 if prxmatch(re, trim(name)) then do;
05
call prxposn(re,0, position, length);
06 end;
07 put name: re: position = length: ;
08 run;

出力結果】
【
name:baseball re:l position:. length:.+

name:football r=l position:. Iength:.c

name:ball re:lposition:.lengt6:.a'
name:base re:lpositiou:lleagth:4!
namrbasecamp re:l position:1 letrgth:4!
name=rebaseball re:l position:" length:.r:

3行 日で base(?!ball)と す ることで,ball以 外 の文字(空 白を含 む)の 直前 に baseと なる文字列 がマ ッチす るが

,

マ ッチは bdlの みが含 まれ る.つ ま り,bascの 後に ballが 続 くかを先に検 索 し,そ れが否 定(合 致 しない)さ れ
た こ とを確認 した後 で bascに マ ッチ してい るイメージで あ る.該 当す る最 初 の位置 が poshon内 に出力 され
る

.

namc=base,basecampで は,最 初 の 1文 字 目がマ ッチす るた め position=1と な り,そ の他 の namcは マ ッチ
しない

.

¨
肯 定後読み
対象 の文字列をパ ター ン とマ ッチ させ る点は肯定先読み と同様であるが ,肯 定後読みでは,パ ター ンと部分
文字列 が一致 した場合 にその部分文字列 とマ ッチす るので はな く,部 分文 字列 の末尾位置 にマ ッチす る.書
き方 としては(?く=xxx)の 形 で表 され ,xxxで 条件 となる正規表現 を指定す る

.

01 data ball_a;
02 set sport;

89

98.
[beta]
03 re:prxparse((?<:base)balU');
04 if prxmatch(re, trim(name)) then do;
05
call prxposn(re, 0, position, length);
06 end;
07 put name= re: position: length: l
08 run;

【
出力結果】 name:baseball re:l position:5 length:4+
nanc=football re=l position=.length=.ご

namrball re:lpositiotr:.leng&:.<j
namrbase re:lposition:.leogth:.+
name:basecamp re:l posidon:. length:.+.

name=ebaseball re:l position:7 lengthd<-

3行 日で (?く=basc)と す る こ とで文字列 を先 頭 か ら右 にず ら しな が ら,baseと マ ッチす るか調 べ ,マ ッチ した
場 合 直 後 に ballが マ ッチ す るか否か を調 べ る。bascと マ ッチ した 場合 にお い て ,ballが マ ッチ した 場合 の位
置 が position内 に出力 され る

.

namc=bぉ cb狙 では ,5文 字 目がマ ッチ す るた め posmon=5と な り,name=rcbascbalで は ,7文 字 目が マ
ッチす るた め pos‖ on=7と な る

.

‐
否 定後読み
否 定後読み とは,指 定 され たパ ター ン と部分文字列が一致 しなかった場合 に,末 尾位置にマ ッチ させ る記述
とな る.書 き方 としては(?<!Ж x)の 形で表 され ,xxで 条件 となる正規表現 を指 定す る

.

01 databall_a2;
02 set sport2;
03 r*pxparse('(?<!base)ball/);
04 if prxmatch(re, trim(name)) then do;
05
call pxposn(re, 0, position, lenglh);
06 end;
07 put name= re: position = length: ;
08 run;

【
出力結果】

nam-baseball re:lposition:.leagth:.<r

name{ootball re:lposition:5length:4+
name:baIl
r-l positiol:l length=4c
name:base re:l position:. length:.*r
name:basecamp re=lposition:. length:.€
name=rebaseball re=lposition:. lengtlp.a:

3行 日で(?く !base)と す る こ とで,文 字 列 の 先頭 か ら右 にず ら しなが ら,bascと 一 致 しない場合 マ ッチ し,次
の 文 字 が ballと マ ッチす るか確認す る。bascと 一 致せず ,か つ 直後 に ballと な った場合 にマ ッチす るこ とに
な り,該 当す る最初 の位 置 が posHon内 に 出力 され る

.

namc=お otballで は ,5文 字 目がマ ッチ す るた め posmon=5と な り,namc=ballで は最初 の 1文 字 目が マ ッ
チす るた め position=1と な る。

最長 0最 短一致
最 長 一 致 とは,条 件 を満 たす ものが文 字 列 内 に複数 あった場 合 は一番長 い 条 件 に マ ッチす る。正 規表 現 では
特 に 明示 しない限 り,最 長 一 致が基本 とな つてい る。
#base#ball#を 例 に とる と以 下 の よ うな結 果 とな る

.

0l data consis ;
02 name= "#base#ba1l#" ;
03 re : prxparse('/#Yw.+#l') ;
04 if prxmatch(re, name) then do ;

90

,

99.
[beta]
05
con: prxposn(re,0,name) ;
06 end;
【出力結果】
07 put name: re: con: i
nam。十base#bal齢 ぉ=l con=#base#ball#♂
08 run;
3行 日の prxparse(ソ 将 w.■ ′)で #"で 囲 まれ た文字列 をマ ッチ させ る正 規表 現 を利 用す る と,#base#ball#の 最
初 の #"か ら最後 の #"ま で を一 括 りと して マ ッチ され る

.

#bぉ e#ball#に は#が 3つ 存 在 し,3行 日で 定義 した#で 囲 まれ た文字列 とい う条 件 にマ ッチす る のは ,以 下 の

3パ タ ー ンが あ る

.

(1)1つ 目の#と 2つ 目の#に 囲まれ た base
(2)2つ 目の#と 3つ 目の#に 囲まれ た ball
(3)1つ 目の#と 3つ 目の#に 囲まれ た base#ball
最 長 一 致 で は,一 番 長 い 条件 にあた る(3)が 採 用 され て#base#ball#が マ ッチ され conに 出力 され る

.

一 方 で ,最 短 一 致 とは条件 を満 たす もの が文字列 内に複 数 あ った場合 は一 番 短 い 条件 にマ ッチす る
θ′ data consis̲1;
θ2

naine='1#base#ball#'';

θJ

re=prXparSe(1/#¥W.+?#′ );

θイ

ifprXInatCh(re,nmle)■ en dO;

θ5

COn=plXpOSn(re,0,narne);

θ6

end;

θ7

putname=re=con=;

【
出力結果】
name--#base#ball# re:l con==#base#.

θ∂ run;

3行 日の pⅨpTsc

轄w.+?#/1)で ,¥w.+の 後 に ?"を 追加 す る こ とで ,「 #base#ball#」

内で #"で 囲 まれ る最 小 の

文字 列 をマ ッチ させ る こ とがで きる。
上記 の (1)〜 (3)の 条件 の 中 か ら,最 初 に マ ッチす る一番 短 い 条件 で ある(1)が 採 用 され ,#bぉ c#が conに 出力 さ
れる

.

SASに おけるPerl正 規表現 の実装例
実装 例①
正 規 表 現 を利 用す る こ とで ,変 数 NUMに xx‐ w(μ =1〜 11,yy=1〜 30)が 振 られ て い る膨 大 なデ ー タセ ッ トex
の 中 か ら,条 件 に合 っ た変数 NUMに 対 す る処理 を容 易 に行 うこ とが で き る

.

01 data ex_l;
02 set ex;
03 conditionl:prxparse('s/^1{1}-[-8]l^2-[-30]l^3-[1-5]l^6-[1-3]17-ll^10-[1-3]/$l/);
04 condition2:prxparse('s/^10-[-3]/$l/) ;
05 condition3nrxparse('s/3-31^10-[1-3]/$1/)
06 if prxmatch(conditionl,NUM) then CI_FL ="Y" ;
;

91

100.
[beta]
θ7 ifprxinatch(condition2,N■ ふ4)then C2̲FL="Y";
θ∂ ifprxln■ ch(condition3,Nl■ 4)then C3̲FL=‖ Y‖
θ9

;

run;

)conditionlて コま, :変 :̀飲 11ヾUヽ 1が
3イ子目σ
1〜 3)の

い ずれ かの 場 合 に Cl̲FL=

1‐

x(x=1〜 9),2‐ x(x=1〜 30),3‑x(x=1〜 5),6‐ x(x=1〜 3),7‐ 1,10‐ x(x=

Y"と な る よ う定義 して い る

.

4行 日の condmon2で は ,変 数 NUMが 10‑x(x=13)の 場 合 に C2̲FL=

Y"と な る よ うに定義 して い る

5行 日の condHon3で は ,変 数 NUMが 3‑3,10xx=1〜 3)の 場合 に C3̲FL=

.

Y"と な るよ うに定 義 してい る

.

実装例②
日付 デ ー タの入 った デ ー タセ ッ トか ら,不 正 なデ ー タ を 検 出 し正 しい フォー マ ッ トヘ と置 き換 え る

.

なお今 回 の例 で は ,YYYYMM‐ DD(2022‑01‐ 01等 )を 正 しい フ ォーマ ッ トと して お り,MM及 び DD部 分 が

,

1桁 の 場合 は頭 に 0を 追記 す る処理 を行 い ,不 正デ ー タ と して は扱 わない こ と とす る

.

また ,YYYY部 分 が 2000〜 2029以 外 の 場 合や ,MM部 分 が 01〜 12以 外 の場 合 ,Unが 含 まれ るデ ー タは不
正 デ ー タ として置 き換 えは行 わない こ と とす る

.

θ′ data day̲data;
θ2 input Sl` I)・ S20.;
I`

θθ cards;
θイ 2021‐ 08‐ 01
θ5

2022‐ 8‐ 12

θ6 2020‐ 01‐ 5
θ7 2022‐ 2‐ 22
θ∂ 202x‐ 01‐ 11
θ9 2022‐ Un
′θ 2022‐ 1‐ lJn
′′ 2035‐ 90‐ 10
′2 ;
′3

run;

′イ data day̲changc;
′5

set day̲dtta;

f6

ifprxlnatch(ソ 20[012]¥d‐ [01]?¥d― [0123]?¥α 7,trim(STDT))^=O thcn che=‖ OK‖

f7

elsc chc=="NG:';

′∂

ifchc="()Iく "then dO;

′9

m̲STDT=prxchange('s/‐ ed{1})‐

2θ

d̲STDT=prxchange(ls/‐ ed{1)S)た OSl′ ,̲1,廿 im(STDT));

2′

iflcngh(m̲STDT)=10 thcn com̲STDT=m̲STDT;

/‐

OSl‐ ′
1声 im(STDT));
,‐

22

clse if lengtll(d̲STDT)=10 then com̲STDT=d̲STDT;

23

cnd;

2イ

put STDT=che=com̲STDT=m̲STDT=d̲STDT;

92

;

101.

25 run 出力 結果 ] 〔 ST]D)T=2021‐ 08‐ 01 che:OK com_STDT=2O21-08-01 m STDT=2021‐ 08‐ 01 d STDT=2021‑08‑01 ST】 D)T=2022‐ 8‐ 12 che:OK com_STDT:2022-08-12 mi STlD)T=2022‐ 08‐ 12 d STDT=2022‑8‑12 STDT=2020‐ 01‐ 5 che:OK com_STDT:2020-01-05 m STDT=2020‐ 01‐ 5 d STl)T=2020‑01‑05 STDT=2022‐ 2‐ 22 che:OK com_STDT:2022-02-22 nl STI)T=:2022‑02‐ 22 d STDT=2022‑2‐ 22 ST】 D)T=202x‐ 01‑11 che:NG COM_STDT: d STDT= STDT=2022‐ Un che:NG com_STDT: STDT=2022‐ 1‐ Un che:NG COM STDT= m STDT= m STDT= m STDT= d STDT= ST】 D)T=2035‐ 90‑10 che:NG COM_STDT: m STDT= d STDT= d STDT= 16行 日で ,prxmatchを 用 い て不 正デー タを検 出す るた めの正規 表 現 を定義 してい る。YYYYMM‐ DDの 正 し い フォー マ ッ トとな ってい る ものは cheに OKと 出力 され ,デ ー タが不完全 な も の や ,不 明 日付 (UN)が 入 っ てい る もの は不正デ ー タ と して cheに NGが 出力 され る.た だ し,MM,DD部 分 が一桁 の もの に関 して は 今 回は不 正 デ ー タ として扱 わず ,0を 追記 す る形 を とってい る , . また ,pⅨ match関 数 内で trim関 数 を用 いて い る理 由 として は ,SASの 文字変数 は変数長 が固定長 で あ り , 変数 の 後 ろ に後置 ブ ラ ンクが 発 生 しやす い た めで あ る.空 白文 字 を マ ッチ させ る¥s,文 字列 の 末尾 を認 識 す る$等 を使 用す る際 には意 図 しない マ ッチ ングの 挙動 を示す こ とが あ る.面 m関 数 を使 用 し,後 置 ブ ラ ン クを 削除す る こ とで意図 しない マ ッチ ング を避 け る こ とができる.SASで 正 規表現 を利 用 す る際には 廿im関 数 を 用 いて ,変 数 内 の後置 ブ ラ ン ク を削除す る こ とを推 奨す る . 18〜 24行 日の処理 は ,不 正 デ ー タではない場 合 に行 う処理 とな る . 19行 日で は ,MM部 分 が一 桁 の数字 であ る場合 には ,pⅨ changc関 数 を用 いて ,‐ で 囲 まれ た数字 を キ ャプチ ャ し,キ ャプチ ャ され た数 字 の 直前 に 0を 追記 す る処理 を行 い ,m̲釘 DTに 出力 す る。 同様 に ,20行 日では DD部 分 が一 桁 の数字 で あ る場合 に,prxchmge関 数 を用 い て末 尾 の数字 をキ ャ プ チ ャ し,直 前 に 0を 追記す る処理 を行 い ,d STDTに 出力す る . 21,22行 日で は,出 力 した m̲STD■ d̲STDTが YYYY‐MM― DDの 正 しい フ ォ ー マ ッ トに則 つて い る際 に com STDTと して出力 され る よ うな処理 を行 い ,正 しいデ ー タ と した 。 最後 に 正 規 表 現 は , 日頃の処理 へ の応 用度 が 高 く,不 明 日付 の検 出及 び 置 換 ,ASCII文 字 の検 出等で活 用 で き る 技術 だ と考 え られ る.今 まで SAS関 数 をい くつ も重 ね掛 け して処理 してい た もの が ,正 規 表現 を使 うこ とで , 最適 化 され ,可 読性 も上 が る可能性 がある。 ただ し,新 しい技 術 を業務 で使 い ,管 理 ・ 保 守 してい く場合 には ,ま ず 教育 と普 及 が必 須 にな る.個 人 的 印象 を含 む が , SASの 正 規 表 現 の利用 には ,メ タ文 字や正規 表現 の 記 載 方法 を含 めて最 初 に覚 え る こ とが多 い 点や ,コ ンパ イ ル や キ ャプ チ ャバ ッフ ァ とい った 日に見 えな い 情 報 を意識す る必 要 が ある点か ら,基 本 説 明や 実装 例 が豊 富 にない と利 用 に二 の足 を踏 む ユ ー ザ ー が 多 い と考 えて い る。本稿 が ,そ ういっ た ユ ー ザ ー の背 中 を押 す 一 助 になれ ば幸 い で あ る。 93

102.

参 考文献 [1]SAS① Ⅵsual Data Mining ttd Machine Lcaming 8.1 [2]SAS① 9.4 Flmctions and CALL Romnes:Rctrence,Fitt Ed五 on [3]杉 山 貴 章 ,木 本 裕 紀 .正 規 表 現 書 き方 ドリル .技 術 評 論 社 ,2011,279p [4]TATSUO IkШ a(2021)先 読 み と後 読 み を使 っ た パ タ ー ン https:〃 www.javadnveJp/regex― basic/wHtinゴ index2.htmI (最 終確認 日 2022年 08月 18日 ) [5]古 隅 弘樹 ,企 業デー タを統合す るための名寄せ処理技法 ,SASユ ー ザー総会 2011 94

103.

DDEの ま と め とDDEの 代 替 と して の OSS 関根 暁史 (藤 本製 薬 株 式会社 ) The basics of DDE and Python modules as the substitute of DDE. Satoshi Sekine Fujimoto Pharmaceutical Corp. 要旨 DDEと は どの よ うな もの で あ っ た か基 本 を解 説 し、 DDEの 代 替 と して OpenPyXLと PySimpleCUIを 紹 介 す る。 +*V* F^: DDE@ynamicDataExchange), PC-SAS, DDEExecute, OSS(OpenSourceSoftware) 1.は じめに DDEと は 、 SASか ら Windowsに 命 令 して Excel帳 票 の 体裁 変 更 等 を行 う仕 組 み の 事 で あ り、 SASユ ー ザ ー の 間 で は未 だ に人 気 の あ る方 法 で あ る。 SASか ら Windowsに 直接 指 令 で き る こ と もあ っ て 、 DDEを SAS機 能 と思 われ て い る ユ ー ザ ー も少 な か らず 居 る よ うに思 われ る。 先 ず は この DDEの SAS か らの操 作 法 を振 り返 る。 DDEは も う古 い 技 術 で あ る た めか近 年 そ の機 能 の一 部 が 欠 落 しか け て お り、 そ の 原 因 が SAS側 に あ る の か WindOws側 に あ る の か 見 定 め るた め に、 SASを 介 さず に DDEを 扱 う方 法 も次 に紹 介 す る。 更 に DDEの 代替 法 と して 、 EК elフ ァイ ル の 開 け 閉 め をせ ず に Excelを 操 作 で き る Pメ honの OpenPyXLと SASと を組 み合 わせ て 使 用 す る方 法 を提 案 す る。 ま た VBAツ ール の よ う な使 い 方 が で き る PySimpleGUIも 併 せ て紹 介 す る。 2.PC… SASか ら DDEを 動 か す Excelフ ァイ ル にセル 内改行 コー ドが含 まれ て い る と、 SASの バ ー ジ ョンに よって は上手 くイ ンポー トで きなか っ た りす る。文字 切 れ したまま SASに 読 み込 まれ て しま うの を防 ぐた め には、事前 に改行 コー ドを消去 してお く必要 が あ る。 DDE(動 的デ ー タ交換 )を 用 い る こ とで、SASか ら連続 的 に、Excel の改行 を解 く→ 読 み込む とい う命 令 が 可能 とな る。 近年 では p■ 文 を使 わな く とも pЮc streamで DDEの 命令 を下せ るよ うにな ってい る 6)。 以下 は PC‐ SASか ら、Excelの 改行 コー ドを他 の文字列 (^n)に 置 換 す る命 令 を与 える DDEプ ロ グ ラ ムで あ る(&vblf の 引数 の渡 し方 な どの詳細 は Web掲 載 プ ログ ラ ム を参 照 nlenamc ddeス テ ー トメ ン トを用 い る こ と で 、SASと Windowsを 直接 接 続 で き る。 )。 95

104.
[beta]
■lename Cmd dde"eXCellSyS

m";

%let kalよ 0=[;
prOC Stream O■ ■le=Cmd reSetdelim=‖ br";begin%nrS廿 (&kakkO.)
Open("&inpath・¥&̲inile.")]br neWline;
[e■ 0<falSe)]br neWline;

[WOrkb00k.SeleCt(‖ Sheet l")]br neWline;
[select("cl:c2‖ )]br ne、 vline;
[fOnnula・ replaCe("&Vblf.","^n")]br neWline;

[save.ぉ (‖ &。 utpath.¥&̲。■me.")]br newline;

議 │

Ⅵ S訂

Ⅵ SE

1投 与 目1

2022104110

202■ 椰3ず 11メ ■o7155
一

0755

■

1投 与 開始 日

■

m2203■ 1

・.■

20■ 210,411●

l

● ・

14週

―

Sheet l

1235

・

1235

後

投 与開 始 日籠
控 与前
4週 後

│・

'卜

‐

Sheet l

①

①

しか し上 記 プ ログラム を実行 す る と、Exce12016以 降 [e■ or(ね lsc)]が 効 いて お らず 、以 下 の よ うなダイ
ア ロ グが 出 る よ うにな って しま った。
Micresef* Lx;el

●

X

4件を置換しました。
OK

このメ ッセージの OKボ タンを手動で押 さねば先の工程に進 めな くなったので 、 プ ログラムの 自動
化 が達成 できなくなって しまった。 これ以外 にも 「ファイル を上書 き保存 して よいか ?」 どうかのメ
ッセー ジが 出るようにな って しまっている。
これ らの原因が SAS側 にあるのか WindOws側 にあるのか見極 めるために、次章では SASを 全 く使
用せず に DDEを 操作す る方法 を検討す る。

3.SASを 介 さず に DDEを 操 る
SASに 依 存 せ ず に、例 え ば VBScnptの 中 に DDEコ ー ドを書 い て 実 行 す る こ とが で き る。

DDE通 信 を 開始 させ る と こ ろ は 、 ■len額le ddeス テ ‐― トメ ン トと
良 く類 似 して い る。 そ の 他 は ほ ぼ 2章 と同 じ コ ー ドを DDEExecuteの 中 に記 入 す れ ば実 行 で き る。 DDE

DDEInitttc(‖ cxccr∵ 'system")と 書 い て

通信 終 了 時 に DDETerminate(cmd)と 書 くべ き で あ るが 、 これ は省 略 す る こ とが で き る。
以 下 は 改 行 コー ドを置 換 す る 、 SASで も VBAで もな い VBScnptコ ー ドで あ る。 これ な らば SASの

96

105.

無 い 環 境 下で も運用 可 能 であ り、DDEが SAS機 能 で な い こ との証 明 に もな る。 Set ex:CreateObject("Excel.Application") cmd:ex.DDEInitiate("excel", "system " ) ex.DDEExecute cmd," [open(" "&inpath.Y&_infi Ie. " ")] " ex.DDEExecute cmd," [error(false)] " ex.DDEExecute cmd,"[workbook.select(""Sheet 1 "")]" ex.DDEExecute cmd,"[select(""c I :c2"")]" ex.DDEExecute cmd,"[formula.replace(" ""& vblf &rrrrrr,rril^nr,r)]rr ex.DDEExecute cmd,"[save.as(""&outpath.Y&_outfi Ie."")] " 上 記 プ ログラム を実行 して も 2章 の ダイ ア ログメ ッセ ー ジは 出続 けて い るので、 この 問題 は SAS側 で は な く Excel側 にあ る こ とが判 明 した。 次 章 で は この ダイ ア ロ グを出 させ ず に 、Excelの セル 内改行 コー ドを消去 で き る方法 を模 索す る。 4.ダ イアログを出 させずに DDEを 操 る [error(翻 se)]は Exce12016以 降機 能 しな くな って しま っ て い るが 、VBAコ ー ドと して の 同様 の機 能 で あ るDisplayAle■ s=偽 lseは 生 きて い る。 以 下 の よ うな VBAコ ー ドが 書 か れ たVBScriptを 用 い て Excelフ ァイ ル を立 ち上 げ た の ち、連 続 的 に2章 ま た は 3章 のDDEプ ロ グ ラ ム をそ の ま ま実 行 して し ま え ば 、 改 行 コー ド置 換 とフ ァイ ル 上 書 き保 存 に 関す る メ ッセ ー ジ は 出 な くす る こ とが で き る。 Set ex:CreateObj ect("Excel.Application" ) ex.Visible:True ex.Workbooks.Open( " &inpath.Y&_infi le. ") ex.DisplayAlerts:false この よ うに Excelフ ァイル を立ち上げて い るときに DDEの 書き込みはできて しま う。意図 していな くとも人間がデー タを改 ざん して しま う恐れ もあるとい うことで、 このことはセキュ リテ ィ的に DDE の最大 の欠点であるとも言 える。 5.OpenPyXLに よる Excelの 操作 色 々 と問題 を抱 えて い る DDEで あ つ た が 、そ の代 替 OSSと して Pメhonの OpenPyXLを 提案す る。 DDEの 代替 としてす ぐに VBAが 思 い 浮 かぶ と思 うが 、Excelの 開 閉を必要 とせ ず処理 が 高速 で あ る OpenPyXLの 使用 を強 く推 奨 したい。 97

106.

5‑1.OpenPyXLに よる改行 コー ド除去 OpenPyXLに よ り Excelフ ァイル を開 く こ とな く ローードし、Sheet lの 1・ 2列 目に含 まれ る改行 コー ド (Pメ honで は¥n)を 文 字 列 旬 に変換す る。 これ に よ り前 章 までの改行 コー ド置 換 プ ログ ラ ム と同 じ動 きを す る し、 ダイア ロ グが 出 るこ とももち ろん ない。 from openpyxl.styles import Alignment from openpyxl import load_workbook wb:load_workbook("&inpath./&_infi le. ") My_Value:["Yn"] ws=wb["Sheet 1"] for list in My_Value: for row in ws.iter_rows(min_col: l,max_col:2): for cell in row: if list in str(cell.value): new_texFcell.value.replace("Yn", " ^rr", cell.value:new_text wb. save(" &outpath./&_outfi le. " ) 上 記 の PメhOnコ ー ドはPC¨ SASか ら命 令 す る こ とが で き る7)。 もち ろ ん Jupメ erNotebook+sttpyの 操 作 で も構 わ な い 。 5… 2.Excelフ ァイ ル を読み込んで SASデ ー タセ ッ ト化す る OperyXLに よ り Excelを ロ ー ド し 、 Sheet lの 情 報 を 一 旦 pttd器 で デ ー タ フ レ ー ム に す る 。 次 に saspyで デ ー タフ レーム を SASデ ー タセ ッ ト化 の上 、sashelp̲classと い う名前で&outpath.に 保存 して し まう 9)。 Pythonに は Workフ ォル ダ とい う概念 がないので、永久 SASデ ー タセ ッ トとして保存 してい る。 SASデ ー タセ ッ トは出来ているので、 これを SASが そのまま続 けて活用す ることがで きる。 import pandas as pd from openpyxl import load_workbook wb:load_workbook("&inpath./Class.xlsx" ) ws:wb["Sheet 1"] data:ws.values columns:next(data) [0 :] df:pd.DataFrame(data,columns:columns) import saspy sas:saspy. SAS session0 sas.saslib("dbox","base", "&outpath. ") sas.df2sd(df,"sashelp_class","dbox") R︶ Q︶

107.

sashelp_class Class.xlsx ア レッド 男子 11 女子 女子 菫3 84 lS 9S 112.5 3heet l ‐ ■│ 子 子 子 女 女 女 アルフレッ アリ ス ―′ ノ ヽ ヽ ラ キャロル 読込 19 84 13 98 14 1025 上記 は 、 Excelの 1行 日が ヘ ッダー として使 用 されていて 且 つ ヘ ッダー部 に全 角文字や スペ ー ス が 使 われ てい なか った例 であ り、例外 の場合 はプ ログラムの 改 変 の必要はあ る。 5… 3.SASデ ー タセ ッ トの 内 容 を Excelフ ァイ ル に書 き込 む Excelで 雛形 を事前に作 っておいてか ら、そ の雛形 の体裁 を崩 さずに SASデ ー タセ ッ トの数値情報だ けをま とめて出力できるのが DDEの 魅力 であった。それを OSSで 実現する ことを考える。 DDEは 広い レンジを決めてま とめて情報 を出力できたが OpenPyXLで は 1セ ル 1セ ルずつ しか情報 を出力す ることができないので 、出カパー トは pandasモ ジュール に委ねることとす る。SASデ ー タセ ッ トを sas7bdatモ ジュールでデ ー タフ レーム化 した後、そのデ ー タフ レーム情報 を pandasで @tcmp@ シー トに出力する。次 に OpenPyXLを 用 いて 、@temp@シ ー トの内容 をオ リジナ ル シー トのセル に コ mp@シ ー トを削除す る。 このよ うな方法 を採 る ピー&ペ ース トして行 く。 全 ての工程 が終わ った ら@ ことで、雛形 の Excelの 体裁 (罫 線や字体)を 壊 さずに、SASデ ー タセ ッ トの中身 を出力することができ た。DDEよ りも複雑な工程 を踏 んで しまったが 、処理速度は DDEよ りも高速 であることを実感 でき た。プ ログラムは複雑であるため掲載を割愛 させて頂いた。 Tem plate.xlsx ) v 2 h\&>ct= Template.x:sxに @temp@シ ートを作 つ LLT て、pandasで SASデ ータセツト (sashelpメ lass)の 内容を吐き出す マ 14‐ 1125 女子 18: 84 1女 子 13 98 鑢・ ・ 女子 国 が he p r a55離57団 ま 体重 ,日 :資 11 夕 前 :│││││1難 鏃 .縦 ││││││ltや `ノ ‡ │1蔭 ││││││1苺 14 112.5 女子 13 90 女子 14 男子 力 子 ,ヽ ―,ヽ ラ ++ I?IL ■ ̲ L望 璧 =」 じ 体重 ./ ス 面 !1 生 論 ・贅 ‐ 0饉 mp⑪ ̲ │ │■ 最後 に@temp@シ ートを削除 '世 綱 ○ openpyxlで 、@temp@の 内容を Classシ ート ヘ 1セ ル 1セ ルずつコピー&ペ ーストする 99

108.

SASデ ー タ セ ッ トの 内 容 を Excelグ ラ フ に 書 き込 む 5‑4。 5‐ 3章 とほぼ同様の方法であ るが、Excelグ ラ フの雛形 に書き込む こともできる。カプラ ンマイヤー 図が定義 されて い るが、生存 曲線デ ー タとAt Risk数 を空に した雛形 を用意 した とす る。 ̲‐ ̲二重 三 二 二 五 三 二 ̲ニ ユ ー ‐ ̲̲̲̲̲:L‐ 111̲̲.̲̲̲´ ̲̲̲̲...̲̲̲‐ :‐ =11̲122:AML .̲̲1̲̲̲̲‐ ‐ Time l:ALL Podu戯 一日mに Sut、 ●l[お timaes 一 一 一 一 一 一 一 ・ 一 ︱ 一 に 一 一︱ 一 ⁚ ・ 「 る 一 ︵ 資︶ 俳 譜 性 鋼 一 瑯 ・ │、 . Disease― Free Survival Time(Days) ‐ ‐ ‐ ― ― ‑2:AML― HEh RIよ ‑1:ALL ・ At Risk 0 ..1 500. 一 一 ‐3:AML― Low Rsk 1000 1500 200(, 2500 1:ALL 2:AML― High Risk 3:AML― Low Risk この空 の雛形 に OpenPyXLを 用 いて proc LIFETESTの 結果デ ー タセ ッ トの内容 を出力す る。5‐ 3章 で は@temp@シ ー トを作ってその内容 をコピー&ペ ース トしていたが、その工程を生存 曲線デ ー タ用 とAt Risk用 とで 2回 繰 り返す。 ヽ■ Time l:ALL 2:AML― 0 100 1 11 100 1 Prcduct-Limit SurviEl Estimates 一¨ ︵じ 排 響 樺 創 る 1 9736842 ヽ、 ̲‐ ‐ 工 ヽ ̲',ヽ ヽ ̲‐ ̲̲̲ ̀ │IL̲│̲] る 1000 500 1500 2000 Disease-Free Survival Iime (0ays) ‑1:ALt 1:ALL 2:AML― Hi[ 3:AML― Lo. 38 45 54 ― ― ― ― ― ‑2:AML― Htt RISく 16 13 36 1 2 9736842 1 2 9730842 97777 11 一 ‑ 3:AML― Low Rsk 2 10 7 27 18 10 9736842 97777 10 9736842 97777 16 16 32 32 35 35 47 47 48 48 53 53 55 9736842 97777 9736842 95555 9736842 95555 9736842 93333 9736842 93333 9736842 93333 9736B42 93333 9736842 88888 9736842 88888 9736842 86666 9730842 86666 9736842 86666 9736842 86666 打ち切 りの上 ヒゲが表現 され ているが、 これ は一筆書きの折れ線 を描 くことで実現 した。 つ ま り出 力する生存 曲線用デー タの持 たせ方次第で打ち切 りの ヒゲは表現できる。 5‑5.OpenPyXLで Excelグ ラ フ を描 く 5¨ 4章 では Excelグ ラフが事前定義された雛形に数値を書き込んでいたが、OpenPyXLの Ch前 オブジ ェク トは書き込まれた数値 を元に Excclグ ラフ自体を作 り出すこともできる。 カプランマイヤー図であ れば Chmオ ブジェク トの下の scncsオ ブジェク トの使用がよいであろう。以下は SASデ ー タセッ トを proc EXPORTし た Excelデ ータを元にグラフを描 いている。 100

109.
[beta]
Product-Limit Survival Esti mates
100

■

│

1‐

︵
訳一M
世燿性 期

f… L.

も
ヽ
ヽ

¬

■

ヽ
1̲̲.LL L

:¬ 、
LL

0
0

500

10∞

15∞

Diseas← Free SuⅣ

‑1:ALL

A Risk

"■

20∞

― ―‑2:AMt― High Risk

Ъ

l:ALL

2500

3000

:Time{DaVS'
――‐―…3:AⅣ IL■ Low R:sk

6oo looo lsoo 2ooo Zsoo

2:AML― Hlgh RIsk
3:AML― Low Risk

16
13
36

2

11

10

7

27

18

Chart=SCa"erCha■ ()
chart.y̲欲 isltle="生 存確 率 (%)"
Cha■ .y̲aXiS.SCalin〔 FSCaling(min=0,maX=100)

chart.y̲axis.maJorUnit=25

chatx̲axis■ tle="Disease― Free Sur宙 val■ me(Days)‖
x=Retrence(ws,min̲col=1,min̲■ ow=2,max̲row=1000)

y=RctК nce(ws,min̲col=2,min̲row=2,mlⅨ ̲row=1000)
senes=Series(ゝ x,title=‖ 1:ALL")
series.graphicalProperties.linc.solidFill="000000‖
scriesモ raphicalPropcmes.line.widtll=pixels

Ю̲EMU(2)

ChaiSerieS.append(SeneS)

但 しグラ フ タ イ トル の 文字 サ イ ズ や 字 体 の 制御 は 効 か な い よ うで あ る。 き め細 か い 制御 に 関 して

OpenPyXLは VBAよ りも劣 る。

6.PySimpleGUIに よ るア プ リの 開発
6‑1.Excelの セル 内改行 コー ドを置換す るツール
以 上 は全 て CLIに よる操作 で あ っ たが、VBAツ ール の よ うな GUI操 作 がで き るアプ リが欲 しい とい
うユー ザー もお られ る と思 う。PySimpleGUIを 用 い れ ば、Pメ honの コー ドを GUIイ ン ター フェー ス で 操
れ るツール に仕 立 て る ことがで き る。
・・(途 中省 略)・・・の 部 分 に 5… 1章 の コー ドを書 き足 して「Excel改 行 コー ド置換 アプ リpy」
例 えば以下・
とい うフ ァイ ル 名 で 保 存 して しま えば 、改行 コー ドを置換す る GUIア プ リを作 り上 げ る こ とがで き る。

1()1

110.

ilnport PySimpleGUI as sg import openpyxl,os layo甕 =[[sg.Tぐ Excelブ ッ クの全 改 行 コ ー ドを置換 しま す ')], [sg.T(1フ ァイ ル 選 択 1),sg.In餌 ■ 対o,s3FileBЮ wse(key='■ lel')], [Sg.Submit(),Sg.CanCel()]] window=sgoWindow('エ クセ ル 改行 コ ー ド全 消去 ア プ リ',layout) 、 、7hile l` rue: eVe ,ValueS=WindOWre () ifeven←=sg.WIN̲CLOSED or event==iCancer: break elifevent=='Subn■ it': dOC=ValueS[:■ lel'] pathS=OS.path・ dim帥lC(dOC) name=OS.pathoSpliteXt(OS.path.baSenane(dOC))[0] Curent=OS.getCWd() doc2=currem+ソ +name+'改 行 コ ー ド置換 .xlsxi Wb=OpenpyXl.10ad̲ヽ VOrkb00k(ValueS['■ lel']) (途 中省 略) 、 vb.save(doc2) sg.pop叩 (1置 換 完 了 しま した 1) WindOWC10Se0 「Excel改 行 コー ド置換 ア プ リ.py」 を左 ダ ブル ク リックす れ ば以 下 の よ うなイ ンター フ ェー スが立 ち 上 が る。 この BrOwseで 対 象 フ ァイル を指 定 し Submitボ タ ン を押せ ば、対 象 フ ァイル名 に 「 改行 コー ド」 と付 与 されて全 シー トの改行 が解 かれ た フ ァイル が 自動 的 に出来上 が る よ うにな って い る。 全濃去アプリ tエ クセル改行]― ド × Exceげ ック①士改行 コー ドを置換 します フ ァ イ │卜 選額 Brswse :Subttit i Cancel 102

111.

brget̲改 行コー ド置換 .xlsx Target.xlsx 」 」 vlslr 07=」 ,5 挫 与開始 日 挫与前 2022'04,10 12・ 15 =週 後 一 ・■ ■022()3,11 Ⅵ S「 202203111・ in07155 2022「 04r.10占 n1235 ■ 投与 開 始 日・ 穀与 前 li月 後 6‑2.Pylnstallerに よ る Pythonフ ァイ ル の EXE化 「 6‐ 1章 で作 つた Excel改 行 コー ド 置換 アプ リ.py」 は、Pメ honや 各種モジュールがイ ンス トール された 環境下 で なければ動作 しない。 しかし pyフ ァイルは Pylnstallerモ ジュール を使 うことによって、Python が存在 しない環境であ って も運用できる「Excel改 行 コー ド置換 アプ リ.exe」 に変換す ることができる 8)。 これで 実行環境を選ばないツール を配布 で きることになる。但 し Pylnstallerは コマン ドプ ロンプ トで実 行す るモ ジュールであることに注意 された い。 Pylnstallerの 実行手順 としては、「Excel改 行 コー ド置換 アプ リ.py」 の存在す るディ レク トリにおいて 「pyinstaller Excel改 行 コー ド置換 アプ リ.py」 と実行→ 同階層 内に 「pyinstaller Excel改 行 コー ド置換 アプ リ.spec」 が 出来上がるのでその内容 の うち eК lude binaHes=True,を a.binaHes,a.zip■ les,a.datas,と 書 き換 え る→ 「pyinstallcr Exccl改 行 コー ド置換 アプ リ.spec」 と実行 → distフ ォルダ内に 「Excel改 行 コー ド置換 ア プ リ.exe」 が 出来上がつている。 .諄 置換アプリ P ttceは 行]― ド ード .α e 置換アプリ 粗l Lcel改 行コ 筆者 の環境下の 「Excel改 行 コー ド置換 アプ リ.exe」 のフ ァイルサイズは約 27MBと 、やや重たい もの となつてい る。 7.ま とめ Excelの 体裁 を変更 した り、 簡 単に Excclの 読 み書 き した りで き る ところが DDEの メ リッ トで あ った。 DDEは SASと は関係 の な い機能 であ り、 SASが 介在 しな い 環境 下で も動 かせ る こ とも判 っ た。 しか し Excelを 開 か な い と処理 で きな い点がセ キ ュアー でなか った り、近年 DDEの 一 部機 能 の欠 落 が始 まった りとデ メ リッ トも存在 す る。 DDEを OSSに 切 り替 え る と した ら、Excelの 開閉を要 しない OpenPyXLが 適 してい るで あ ろ う。DDE の簡便 さは失 われ て しま うが、 ほ とん どの DDE機 能 をまか な うこ ともで き、処理 も高速 で あ る。 以 下 の 表 に DDE,OpenPyXLそ れぞれ の 長 所 。短所 を ま とめた。 103

112.

DDE OpenPyXL Windows環 境 で あれ ば動 く Pythonが イ ンス トール された環境 下 でなけれ ば動かない フ ァイル の 開 け閉めをす るの でデ ー タを加 工 フ ァイルの開け閉 め を しないのでデ ヽ ―夕を加 して しま う恐れ がある 工 して しま う恐れ がない フ ァイ ル の 開 け 閉 めをす る の で 実 行 時 間が長 フ ァイルの開 け閉 め を しないので 処 理 が高速 い フ ァイル の 読 み 取 りと書 き込 み が比 較的簡便 フ ァイル の読 み取 り と書 き込 み に は 手 間 がか かる 一 部機能 の 欠 落 が始 まつてい る DDEよ りも関数 が豊 富 DDEの 情報 は入手困難 OpcnPyXLに 関す る情 報 は豊富 参考文献 1)Koen Vyvcrman(2002).Using Dynamic Daね Exchalgc to Export Your SAS DttatolMS Excel― Against Al1 0DS, Pttt I― , SUG127 Paper 5‐ 27 2)Kocn Vyverman(2002).C ating Custom Exccl Complctc Walkthrough, SUG127 Paper 190‐ ЦZorkbooks'om Base SAS wi■ Dynanic Dtta Exchange:A 27 3)John Hc(2003).ODSorDDEお r Data Present試 lon― ―APrclimina,Compttison ofOutput iom Di crci Sourccs, SUG128 Paper 145‑28 4)LeRoy Bessler(2006).SAS― with‐ Exccl Applicttion Developme■ :Tools and Tcchniqucs, SUG131 Paper 022‐ 31 5)Danting Guo(2016).The Simple Applicalon of SAS DDE in Excel, PharmaSUG China 2016‑Paper 93 6)関 根 暁史 (2017).proc STREAMに よ る Andysis Results Metadataの 作 成 ,SASユ ー ザ ー 総 会 2017論 文 集 7)関 根 暁史 (2019).SASか ら Pythonを 操 る,SASユ ー ザ ー 総会 2019論 文 集 8)関 根 暁史 (2021).SASか ら始 め る RPA〜 SASか ら tsClinical Memdda Dcskop Toolsを 操 る 〜 ,SASユ ー ザ ー 総 会 2021論 文 集 9)hlpS://SaSSOiWae.gi■ ub.iO/SaSpy/api.html 10)https:〃 w.atwki」 p/sas̲hclp/pages/34.html ll)https://w五 wikijp/sasmemox/pagcs/76■ tml 104

113.
[beta]
SASに よるWordleの 実装
O川 上

貴弘

1、

森 岡 裕 2、 筒 井

2ィ
(1ジ ー リンクシステム コ ンサ ルテ ィン グ株 式会社、

杏奈3

̲ピ ̲ェ ス株式会社 、3大 阪大学 医学部

附属病院)

Implementing the Wordle game in SAS

Takahiro Kawakamir, Yutaka Moriok*, ArnaTsutsui3

'G-Link System Consulting,

2EPS Corporation, 3Osaka University Hospital

要旨
'lWordlc"と

‖
は 、2021年 末 よ り世 界 的 に流行 して い るWcbベ ー スのパ ズル ゲーム で あ る。 この WOrdlc"に つ

いて米国SAS本 社 でDircctorを 務 め るChris Hcmcdingcr氏 が SASで 実 装 す るな らど うす る ?、 と SNSで ア ンケ
ー トを実施 した。 それ を筒井 が 日本 語 で紹介 し、 そ してそれ に 2人 の 日本 ユ ー ザ ー 、川 上 と森 岡 が 即座 に反
応 し、 1日 の うちに、プ ログラ ム を実装 して各 自の ブ ロ グで公 開 した 。 それ を Chis氏 に報告 した ところ 、翌
日に彼 が投 稿 した SASの 公 式認 定 ブ ロ グで 2人 の ブ ロ グ記事 が紹 介 され た。 プ ロ グ ラ ミング技術 の上 達 の 本
質 は、楽 しむ こ と遊ぶ ことで あ り、 同好 の士 が 交流 す る こ とか ら新 しい ものが生 まれ る。 そ の非 常 に よい例
で あ り、 日本 の SASユ ー ザ ー コ ミュニ テ ィにお い て も興 味深 いで き ご とであった と考 え る。せ つか くの機 会
で あ るので 、 三 者 三様 の コー ドを解 説 したい。

+*9 - r^ : Wordle, Report Writing Interface (RWI) , SAS/AF

1.は じめ に
Wordleと は、Josh Wttdle氏 が開発 した、5文 字 の 単語 を当てる一 日一 間の Webベ ー スのパズル ゲーム であ

る [1]。 ユ ー ザ ーの入力 した 5文 字 の単語 につい て 、各 アル ファベ ッ トが正 しい位 置 にあれば緑 、位 置 が異 な
れば黄色、使 われ ていなけれ ばグ レー とい うレス ポ ンスが得 られ る (図 1)。 これによ りお題 の単語 を推測 し、

6回 以内に正解 を見つ けるとい うものである。推測 に際 し、ユー ザ ー が入力 できる単語 は事前に用意 され た
「推測許容 リス ト (a1lowed‐ guesscs;1.1万 語)」 または 「正解 リス ト (answers;0.2万 語 )」 に含まれ る有効 な
単語 に限 られ 、意味のない文字列 は入力できない よ うになってい る [2],[3]。

105

114.

WordEe □E 0 E l」 : (図 l Wordleの プ レイ画面 の一 部 ) 2021年 10月 に一般公 開 され 、 同年 12月 に結 果 を SNSで 共 有 す る機 能 が追加 され た ことで広 く注 目され ることとな つた 。 2022年 1月 31日 、一 日当た りの プ レイ人数 が 何 百万人まで増加 した時点 で 、本 ゲ ー ム は NcwYorktimesに 買収 され た [4]。 日本 で もポケ モ ン Wordle、 日本 語 版 の WORDLEja等 の派生サ ー ビス も リ リース され て い る ことか らもそ の 人気ぶ りが 窺 え る。 2022年 3月 15日 、そ の Wordleに ついて米 国 SAS社 の Chris Hemedingcr氏 (以 下 Chris氏 )が 以 下 の ア ン ケー トを SNSに 投稿 した (訳 は 引用者 に よる)[5]。 「も し SASフ ° ログラム で #WOrdlcゲ ーム を構 築 す る とした ら、推 測 をチ ェ ックす るた めに どの よ うなテ ク ニ ックを使 用 します か ?」 用意 され た 手 法 は以下 の 4つ で あ つた。 。 デ ー タ ス テ ップで配 列 ・ デ ー タ ス テ ップで ハ ッ シュオブジェ ク ト ・ B化 で行列 。正規表現 この ツイ ー トに対 して 、筒 井 が 反応 し、そ の 筒 井 の反応 を見 た 森 岡 、川 上が好 奇 心 か ら一 晩 で実 装 し、各 自のブ ログで公 開 した。 森 岡は推 測 の チ ェ ックには 「デ ー タステ ップで ハ ッシュオブ ジ ェ ク ト」 を採 用 し、推 測 の 出力 には Repo五 Writing lmerfacc(RWI)オ ブ ジ ェ ク トを使 用す る こ とで、Womleの サイ トでの見 栄 えに再 現性 の 高 い 出力結 果 を、デ ー タ ス テ ップか らダイ レク トに出力す る コー ドを作成 した [6]。 一方川 上 は 、比 較 的古 くか ら使 用 されて い る技術 を使 った コー ドと、SAS晨 Fに よ る G判 茄 cal User licrfacc (GIⅡ )ア プ リケ ー シ ョンの 作 成機 能 を組 み合 わせ 、Wordleと 同様 に直感 的 に遊 べ るアプ リケ ー シ ョンを作 成 した [7]。 翌 日の 2022年 3月 16日 、筒 井 が SNSを 通 じて Chis氏 に森 岡 、川 上 の投稿 を紹 介 した ところ、 当 日に好 意 的な レス ポ ンスが得 られ 、 さ らに翌 日の 2022年 3月 17日 、Chis氏 が投稿 した SASの 公式認 定 ブ ロ グに も両名 の記 事 が 紹介 され る こ と とな った [8]。 最 初 の 投稿 か ら 24時 間以 内に実装 お よび公 開 した の は世 界 中 で森 岡、川 上 の 2名 だ けで あ っ た。 せ つか くの機 会 であるの で 、 三 者 三様 の コー ドを解説 したい と思 う。 106

115.
[beta]
2.コ ー ド角早i説
2…

1.Chis氏 のブ ログ掲載 コー ド

1
2
-r
4
j
6
7
8
9
l0

options dlcreatedir;
,klet repopath=%sysfunc(getoption(WORK)) /wordle-sas;
I i bname repo "&repopath. " i

data _nu I l_;
rc = gitfn_clone(
"https: / / g i thub. com/sascommun i t i es/word I e-sas ",
"&repoPath. "

);

put 'Git repo cloned ' rc=;

run;

この コー ドは、Chris氏 のブ ログに 掲 載 されてい る コー ドを一 部抜粋 した もので [8]、

SASセ ッシ ョンで 自

動 生 成 され るフォル ダ配 下 に、関連 コー ドー 式 を GitHubの リポ ジ トリか ら コ ピー してい る。

1行 日の dicreated士 は libnamcス テ ー トメ ン トで存在 しな い フォル ダ を指 定 した際 に、指 定 した フォル ダを
強 制 的 に作成す るオ プ シ ョンであ る (SAS9.3か ら追加 。デ フォル トは OFF)[9]。 ただ し、既 存 の フ ォル ダ下
に しか 作成 できない 点 は注意が必要 で あ る。

5行 日の gin̲c10nc関 数 は gitの リポ ジ トリを コ ピー す る機 能 を持 ち、 SAS9.4 TSlM6で 追加 され た関数 で
あ る [101。 Publicな リポ ジ トリは もち ろん 、認証情報や Secure Shell(SSH)鍵 を使用す るこ とで Privateな リ
ポ ジ トリもコピー す る こ とができ る。
この よ うに、新 しい 関数 を使用 して コ ピー &ペ ー ス トや ダ ウ ンロー ド等 の 余 計 な手 間 をか けず に 自分 の作
業領 域 にプ ログラム を展 開す るスマ ー トな コーデ ィ ング は流 石 で ある。

2‐

2.Ch五 s氏 の コ ーード
続 いて、リポジ トリに含まれるプ ログラムの本体 wordlc― sas.sasに ついて見ていく。
璽IPPDИ 塑 界 Tcmp¥SAS Temporary Files」
WORKラ イブ ラ リは通 常、 「%ZOCИ 」

以下 に、起動 時 のプ ロセ ス

IDの 付 い たフォル ダが 作 成 されて割 り当て られ るた め 、 上 記 の コー ドで リポ ジ トリを コ ピー していれ ば、以
下 の フォル ダに格 納 され てい るはず で あ る。
「%ZOCИ ZИ PPDИ rИ %評 TcmpSAS Tcmporav Filc伴 ̲TDP″ ο ss′ D̲%CO:MPこ ノ
TERⅣ ИνF%評 WOrdlC‐ SaS」
まず 、Chis氏 は以 下 の 点 に言及 して い る。
・ 回答 の 5文 字 の 単 語 リス トは、Frcshman氏 が WOrdlcの Webサ イ トの ソー ス コー ドよ り抽 出 した正 解 リ
ス トと推測許容 リス トを使用 して い る (実 は森 岡 と川 上 は推 測許容 リス トのチ ェ ックを実装 してお らず 、
正 解 リス トでの チ ェ ックのみ とな って い る)。
。結 果 の 出力 につ い て は、 当初 は川 上 同様 PROC REPORTを 使 用 してい た が 、森 岡 のブ ロ グ を参 考 に変更
を加 えた。

107

116.
[beta]
ブ ロ グお よび SAS Communityの 投稿 で本 人 による解説 が あ り、また、 コー ド自体にかな り細 か くコメン ト
が付 いてい るため、こち らも一部を抜粋 して解説する [11]。

et p i ck = %sysfunc (rand (lnteger, 1, &wordcount. ) )

% I

鬱

data _nul l_;

set words (obs=&p i ck. fi rstobs=&p i ck. ) ;
ca I

I symput (' gamep i ck' , word)

;

run;
プ ロ グ ラム 内には 3つ のマ ク ロ (startGame、

repo■ Status、

四ess)が 定義 され て お り、 この コー ドは startGame

マ ク ロ 内 の もので あ る。 secdが あれ ばそ の 単語 を正解文 字 列 と してセ ッ トし、 そ うでなけれ ば ラ ン ダ ム なオ
ブザ ベ ー シ ョンの単語 を取得 してい る。

1行 日で は、ランダ ム な オ ブザベ ー シ ョン を指定す る際 に 、R触 ⑪ 関数 を使 用 してい る。 特 定 の範 囲 の乱
数 を取 得 したい場合 、以 前 は ユーザ ー が rmmi関 数で一 様 分 布 か ら生成 され る数 値 を使用す るな どの工夫 が
必 要 で あ ったが [10]、
なった

[10]。

SAS9.4M5か ら RAND関 数 で distributionに NTEGERを 指 定す るこ とが で き るよ うに

これ に よっ て 、特定範 囲 内 の 整 数 の乱数取得 が 容 易 になって い る。

3行 日の デ ー タセ ッ トオ プ シ ョン(obs=&pick」 rstObs=&pick.)の 部分 は SAS Base Programmingの 試 験 で もよ
く出題 され る内容 で、OBSと FIRSTOBSで 重複 したオブザ ベ ー シ ョンだ け、つ ま り同 じ数字 を指 定す るこ と
でそ の 1オ ブザベ ー シ ョンだ けが抽 出 され る とい う指定 に な る。

θ′

proc odstext;

θ2

p "%sysfunc(upcase(&guess.)) is not a valid guess."

/ style=[color=blue just=c fontweight=bold1

θ3
θイ

;

run;

この コー ドは guessマ ク ロ内のもので あ る。
proc odstextは SAS9.4か ら追加 され た プ ロシージャで、Outp前 Dclivcw System(ODS)の 出力先 にテキス ト

を出力す ることができる [12]。 任意 のテ キス トをデー タセ ッ トを介 さず ODSに 出力できるよ うになったこ
とで、補足や今回の よ うに結果等を出力 す るには最適であ る。
また、Chis氏 の当初 のア ンケー トの趣 旨であったチェ ック方法について は、以下のように配 列 を使用 して
い る。 (ペ ージの都合 で一 部改行を加 工 してい る。)

01
02
03
04
05
06
07
08
09

array check{5} $ 1 checkedl-checked5

array stat{5} $ 1;
I

ength status $ 5;

array word{5| $ l;
array suess{$l $ 1;
do i = I to 5;

word[i] = char ("&gamepick. ", i)

;

guess[iJ = char("&guess", i),
end;

108

117.

10 doi=1toS; if guessIi]rvordIi] then doi 11 12 statlil = 'G' 6hsskIi]=guessIi]; l3 14 word[i]='0' end; I5 end; I6 17 doi=lto5; if stat[i] ^= 'G' then do; 18 19 o = whichc(guess[i], of word[*]) if c)0 then do; 20 21 e5s6k[;]=guessliJ; 22 stat[i] ='Y'; end; 23 24 else doi 6hseklil=guessliJ; 25 26 stat[i] ='3'; end; 27 ; ; 6‑9行 日で 、答 え とユ ー ザ ー が入 力 した文字列 を要 素数 5の 配 列 に 1文 字ず つ 格 納 し、 10行 日以 降 でチ ェ ックを して い る。配列 を使 用 す る こ とで複数 の 変数 に対 す る コー ドを doル ー プで ま とめて処理 す る こ とがで き、視認性 お よび 処理速度 の 向上 に寄与できる。 11‑15行 日で、入 力 文字 と正解 文 字 が一致 していれ ば G(緑 色 の フ ラグ)を 、 18‐ 23行 日で 、 正 解 に一致 してお らず 、配列 の 要 素番 号 を返す whichc関 数 で 1以 上 の値 が 返れ ば (つ ま り正 解 に含 まれ るが場所 が異 なる場 合 に )Y(黄 色 )を 、いずれ も合 致 しな けれ ば B(灰 色 )を 保持 してい る。 そ して repOrtStatusマ ク ロで 、gucssマ ク ロの 実行 結 果 を元 に 出力 す るよ うに して い る。そ の 際 に RWIと 呼 ばれ る、SASデ ー タステ ップ で レポー ト出力 の 作 成 や 設 定がで き る機 能 が用 い られ て い る [12],[13]。 具 体的 には、デ ー タ ス テ ップ内で 出力 時 の色 の制御 を行 い そ のまま結 果 を出力 してい る。 さ らに同デ ー タ ス テ ップ 内で、正解 に要 した ター ン数 に応 じた メ ッセ ー ジ (1回 日で正解 な ら GENIUS!な ど)を 表示す る機 能 が組 み込 まれ て い る。 そ ういった 条 件 分 岐 による追加 処 理 を組 み込 み や す い の もデ ー タ ス テ ップ内で利 用 で きる RWIの 特性 な の で 、それ を最 大 限活 か したク リエ イ テ ィブな コー ドとい える。 なお 出力部分 を森 岡 の アイデ アを参考 に RWlに 変 えた経緯 が あ るため、プ ロ グ ラ ム 中 の コメ ン トに 「Credit br this ttpro¨ h goesto my SAS ticnds in Jap鑢 !」 2‐ と掲 載 され て い る [11]。 3.森 岡 の コ ー ド 以下 の コー ドは森 岡 のブ ロ グ に掲載 され てい る コー ドを一部 抜 粋 した もので あ る [14]。 出力部分 に RWIを 採 用 した こ と と、推 定 のチ ェ ック の仕組み にハ ッシ ュ反 復子 オ ブ ジ ェク トを利 用 した のが 特徴 とな ってい る。 それぞれ に つ い て簡 単 に補 足 す る。 109

118.
[beta]
θ′

if _N_=1 then do;

θ2

dec l are hash hl (dataset: "ANS" , ordered'."Y") :

θ3

declare hiter hil ('hl') ;

θイ

h1. def i nekey ("N0") ;

θ5

h1. def i nedata ("N0", "WD") ;

θ6

hl. def i nedone 0 ;

θア

end;

θ∂

+ffi.

.

θ9

rc = hil. first0;

′θ

do whi le (rc = 0);

′′

if position=NO and AR=WD then baokground= "green"i
else if missing(color) and AR=WD then background= "darkyellow":

′2
′3

rc = hil.next0;

′イ

end;

上記 の部分 はハ ツシユオブ ジエク ト、ハ ッシ ュ反復子オブジェク トともに、デー タステ ップ内で、メモ リ
上に参照テ ー ブル を格納す る機 能 である。そ こに正解 となる単語 リス トを格納 し、ユー ザー入力が単語位置
も含めて一致 しているか、単語 の一 致 のみかを判 定 している [15]。
金ぉく)の 部 分 でハ ッシュ反復 子 オ ブジェク トに格 納済 の正解 リス トか ら 1文 字ず つ 取得 して 、単語 が正
解 に含 まれ て い るものか 、 かつ 単語位置 まで あ って い るかを照合 してい る。

I odsout ob 0 ;

θf

dc

θ2

+ffi. .

θθ

ob. layout-gridded(columns:5, rows: 1, column_gutter:' 2mm' ) ;

θイ

ob. region0;

θ5

ob. table_start0;

θ6

ob. row_start 0 ;
ob. format_oel I (data:AR, style_attr:text);

θア
θ∂

ob. row_end 0 ;

θタ

ob. tab I e_end 0 ;

′θ

cal I missing(background)

′′

end;

f2

ob. layout_end 0 ;

;

上記 の 部 分 がRWIに よって 、 出力 を生成 して い る部 分 とな る。declare(省 略形 dcl)odsoIで オブ ジェク ト
を生成 し、 oblり out̲『 idded(columns:5,rowsil,column̲guier:'2mmi)で

2mm間 隔 をあ けて5列 1行 の レイ ア ウ ト

を、Ob■ Ow̲StartO;〜 obЮ w̲endo;で 一 列 の 出力 を定 義 した。 そ こで 先 のハ ッシュ反 復 子 オ ブ ジェ ク トに よる

11()

119.

照合結 果 か ら生成 した色 情報を付与 して obおmlat cellメ ソ ッ ドでセル出力 を行 つている。これ によ り以下の よ うな実行イメー ジが得 られ る (図 2)。 = A ¬ 塵■ 「 ピ1̲│ H■ 涎 壼 蛯 ¬ R 「 腑 □ 目 L三 整 二 │ R E (図 2 L RWIに よ る出力 S S ) 2‑4.川 ̲Lの コ ーード (Basc SAS) デ ー タ ステ ップ と配 列 を使用 して実 装 す る予定であ った が 、ゲ ー ム として成 立 させ るため に マ ク ロ化 [16]、 さ らに キ ー ワー ドを入 力 す るためのイ ン タ ー フェース を用 意 し、結果 はシ ンプル な ODS HTMLで 出力す るよ うに した 。 まず 、 正答 単語 リス トのデ ー タセ ッ トを作 成 し、 どの単語 を使 用す るか は 、 マ ク ロ変数 resobsに オブザベ ー シ ョン番 号 を格納 す る こ とで指定 した 。 推 測 のチ ェ ックお よび結 果 の出力以外 に 、入 カイ ンター フ ェー ス として%Windowス テ ー トメ ン トを使用 し た。 %Windowは 手軽 に User lnterface(UI)を 作成 でき、文 字 パ ラメー タをマ ク ロ変数 に格 納 す る こ とに適 し て い る。 また、 これ に よってゲーム実行 時 に毎 回文字列 を変 更 しなが らマ ク ロ参 照 コー ドをサ ブ ミッ トす る 手 間 を省 くことがで き る。 θ′ #4 @8 "Enter 5 charactors and press Enter" θ2 #6 @8 input 5 ATTR=underl 'ne REOUIRED=yes 上記 は%Windowに お ける定義の一部 で あ る。文字列や入カ フ ィール ドにつ いて、#で 表示行 を、@で 表示 列 を指 定できる。 引用符 が あれば単な る文字列 として表示 され 、引用符 がない文字列はマ ク ロ変数名 として 識別 され て入カ フ ィール ドとして表示 され る (当 然なが ら、有効 なマ ク ロ変数名 である必要 が ある)。 マ ク ロ変数名 の後には フ ィール ド長、属性 が指 定 できる。 ここでは入力時にわか りやす くす るため、下線付 き属 性 の ATTR刊 ndcrlineと 入力必須の REQlЛ RED=yesを 指定 している。 %Windowで 定義 した ウ ィ ン ドウは%displayス テ ー トメ ン トで実行 で きる。 実行 イ メー ジ は以 下 の通 りで あ る (図 3)。 111

120.
[beta]
ヨ

警嬌・

WORDL帥 IN面 ヽT

翻 マ ン ド ニ>
‐
1曖 IDLE itt SAS
韓elc‐ o鶏 e to │ヽ 鑢

言nt書 │「 薔B Cha「 aCtD「 S

t.

̀■ ■

・・

I̲̲

.

and preSS Entき r
.

1苺

‐
‐

(図 3%displり の 実行結果 )

θ′
θ2
θ3
θイ

data -nul l-;
fi le print;

put 'not 5 charactors!' i
run;

ま た 、 Chris氏 は PROC

ODSTEXTを 使 用 して HTMLに メ ッセ ー ジテ キ ス トを 出力 した が 、 こ こで は 2行

日 の よ うに ■lcス テ ー トメ ン トの 出力 先 と して printを 指 定 す る こ とで 、 同 じ よ うに文字 列 を ODSに 出力 し
て い る。 (た だ し、 細 か い 書 式 は指 定 で き な い 。 )

入 力 文字列 のチ ェ ックはマ ク ロに よ るル ー プ処理 で行 っ た。 配列 を使 用 す る実装方法 と コー ドは ほ とん ど
変 わ りが な く、 また 、配 列 の方が処理 ス ピー ドが圧 倒 的 に早 く、 メモ リ消 費 量 も少 ない の だ が 、天邪鬼な筆
者 は あ えて Chis氏 の 提 案 しなかった方 法 と して 、配 列 を使 用 しない コー ドを採 用 した。 (参 考 まで に、パ フ
ォ ー マ ンスの調査 に は FULLSTDERシ ス テ ム オプ シ ョン を有効 にす る とよい 。 )
θ′

%iet keychars=5;/*キ ー ヮー ドの文 字数 を5と 定義す る */

θ2

/*中 田
各 */

θ3

1ength resl― res5 $2;

θイ

%do i=苺

θ5

res&i=cats(char(upcase(″ &input″ ),&i)

′

θ6
θ7

%to &keychars;

,indeX(WOrdie,Char(upCase(″ &input′ ),&i)));
%end;
(筆 者 の コー ド)

/2
ρ﹀
っ
nυ

array res[5] $2 resl-res5;
do i=l to &keychars;

?´
^υ

res{i}=661s(char(upcase("&input"), i), index(wordle, char(upcase("&input"),

i)));

/4
nυ

end;
(配 列 を使 用 した コー ド)

こ こで は、入力 文 字 列 チ ェ ック と して 、入力 した文 字 +そ の文字が答 え の 何 番 目にあ るか 、 とい う組み合
わせ の 文字列 を作成 してい る。結果 は 1文 字 目と 2文 字 目の数値 を CATS関 数 を使 って結合 した。 CATSは
数 値 の 場合 には bcst出 力 形式 で変 換 した上 で、各文字 列 の 前後 のスペ ー ス を削 除 して結合 す る関数 である。
た だ し、CATS関 数 は 定義 され てい な い 変数 に値 を割 り当 て る場合 に変数 長 を 自動 的 に 200バ イ トに設 定す

112

121.
[beta]
る。 これ で は パ フ ォーマ ンス に影 響 が あるた め、可能 な限 り lenghス テ ー トメ ン ト (配 列 であれ ば arrリ ス
テ ー トメ ン ト)を 使用 して、予 め変数 長 を定義 してお くべ きであ る。

θ′
θ2

%do i=l %to &keychars;

compute res&i;

if substr (res&i, 2)="0" then

θ3

cal I def ine LC0L-,' style',' style={background=gray}' ) ;

θイ

eIse if substr(res&i, 2)="[,i" 16sn

θ5

cal I def ine LC0L-,' style',' style={background=green}' ) ;

θ6
θ7

e lse

cal I def ine LC0L_,' style',' style={background=DlC513J' ) ;

θ8

res&i=substr (res&i, 1, 1) ;

θ9
′θ
′′

endcomp,
%end;

上記 の PROCス テ ップでは、 COMPUTEス テ ー トメ ン トでデ ー タ に応 じた背景色 の 設 定 を行 ってい る。

3行 日〜 8行 日で、入力文字 列 チ ェ ックで生成 した文 字列 の 2文 字 目の 数字 に応 じて色 を変更 し、9行 日で
実 際 に出力す る文字 として 1文 字 目だ けをデ ー タ と して使 用す る、 とい う処理 を して い る。
当初 は、%Windowsと ともに、%DO%uCILル ー プ を使用 して 6回 ま で連 続 で試 行 で き るよ うな仕組 み を
作 ろ うと した が 、 submitし た コー ドが全 て実行 し終 わ った後 で しか ODSの 結果 が表 示 され ない

(%DOル ー

プ 内にい る限 り、ODSの 結果 は表 示 で きな い)た め 、毎 回 submitす る こ とを前提 の コー ドとした。

X COMMANDで 生成途 中 の HTMLフ ァイル を外 部 ブ ラ ウザで強 制 的 に開 くこ ともで き るが、SASか らフ
ォ ー カ ス が外 れ て しま うため、今 回 の 趣 旨にはそ ぐわ な い。そ こで 、上記 コー ドとは別 に AFア プ リケ ー シ ョ
ン を作成す る こ とを思 い付 いた の で 続 けて紹介す る。

5,川 上 の コ ー ド (SAS/AF)
SAS/AFは SASで GUIア プ リケ ー シ ョンを作成 す る こ とができ るプ ロ ダ ク トで あ る。GUIア プ リケ ー シ ョ
ン を作成す るた めの機 能 は フ レー ム とプ ログラム ス ク リー ンの 2種 類 が用 意 され てお り、 フ レー ム で は オ ブ
ジ ェ ク トベ ー ス で一般 的な GUIア プ リケー シ ョン (図 4)を 、 プ ロ グ ラ ムス ク リー ンで は文字 ベ ー ス の ア プ

2‐

リケー シ ョン (図 5)を 作成 す る こ とがで きる。

■

一

{F'F'i"G
(図

- lrl,,-.]__

4フ レー ム

EeIj]--,1,5Pja_:11:
(図

)

113

5プ ログラム ス ク リー ン

)

122.

今 回 は、 レイ ア ウ トを よ り簡 易 的 に作成す るた め 、かつ 、ODSに よる HTMLの 表示 で はな く、同 じ画 面 で 入力 して結 果 を更新す る構 成 とす るた め、 プ ロ グ ラ ムス ク リー ン を選 択 した。 一 見 クラシカル な文 字 ベ ー ス の画面 で あ って も、アプ リケ ー シ ョン として一通 りの機 能 を有 してお り、それ らが SASの コマ ン ドで実現 で きる ところ はプ ログラムス ク リー ン開発 の 面 白い ところであ る。 プ ロ グ ラ ム ス ク リー ンで は 、画 面 レイア ウ ト編 集 を行 うデ ィ ス プ レイ ウィ ン ドウ、動作 ソー ス コー ドを記 述す る ソー ス ウィ ン ドウ、画 面 の一 般 的な設 定 を行 う一般属性 、入 カ フ ィール ドの設 定 を行 うフ ィール ド属 性 の 4つ の 画 面 で開発 を進 め て い く。 プ ロ グ ラ ム ス ク リー ン を SASカ タ ロ グ内 に作 成 す るた め、まず 、任 意 の ライ ブ ラ リで SASカ タ ロ グ を作 成 し、カ タ ロ グ 内 に 「プ ロ グ ラ ム ス ク リー ン」 を作 成 す る。 以 下 で は 、 SASUSERラ イ ブ ラ リに WORDLEカ タ ロ グ を作 成 (図 6)し 、作 成 した カ タ ロ グ 内 で プ ロ グ ラ ム ス ク リー ン を新 規 作 成 (図 7)し て い る。 F¬ 饉3 テー ブ ,: ④凛 ◆ インターフエイス ︹一 ム 鵬蒻 贈レ . 固か フ Q 卿 1'1 「E鑢 カタ[:グ (図 6ラ イ ブ ラ リで の新規作成 メ ニ ュー )(図 7カ タ ロ グ内での新 規 作成 メ ニ ュー ) プ ロ グ ラ ム ス ク リー ン を作 成 す る と、画 面 一 杯 の ウィ ン ドウが生 成 され るので 、 まず はツ ール >一 般 属性 か らウィ ン ドウサイ ズ を決 定 す る (図 8)。 また 、背 景 色 を変更す るた め には、コマ ン ドバ ー で「c010r backgound bl¨ k」 の よ うに COLORコ マ ン ド (図 9)で 指 定 す る。 COLORコ マ ン ドは 「COLOR対 象 色 属性 」 の よ う に指定す る こ とで、対象 の 色 や 属性 を変更す る こ とがで きる。 この 時 、b¨k『 oundは 背景 、blackは 変更す る 色 を意 味 して い る。背景 が黒 い ままでは黒 い文 字 が識別 で きな い の で 、合 わせ て文字 色 (text)を 自 く (whitc) す るた め に 「color tcxt wh 」 も実行 してお く。 : 灌 開始 列 列数 : 50 コマンド ヘルプ :̲… …… … キー設定 : ………… 参照するデータセット : ̲.… … ̀ 行数 30 : 一般民性 (図 8‑般 属性 フアイず 瞑D ′ 偏皇(コ 表示に)ツ ール① 実行C color bEckBround bldckl (図 9コ マ ン ドバ ー ) ) 続 い て 、説 明文 、ユー ザ ー が入 力す る 5文 字 分 の フ ィール ド、お よび結果 を表 示す るた めの 1文 字分 の フ ィール ドと して 5文 字 ×6回 分 の フ ィール ドをそれ ぞれ入力 、作成 す る (図 10)。 説 明文 は入 力 した通 りに表 示 され る。 フ ィール ドに つい て は、 %Windowの 時 と同 じよ うにマ ク ロ変 数 だ と考 えれ ば よい 。 つ ま り、 &で 始 ま り、 有効 な SAS変 数名 であ る必 要 が あ る。 ここで は 、 ユ ー ザ ー が入 力 す るた めの フ ィール ドを KWRDと した。 また、入 力 す るフィール ドは 自 く反転 (reverse)さ せ たいた め 、 「&Km」 TEXTの 意 )し て COLORコ マ ン ド「color mtext white reverse」 転 させ て い る。 114 を作成 後 、選択 (mtcxt:Maked を実行 す る こ とで、入力す る フ ィール ドを反

123.
[beta]
1バ イ トのフ ィーール ドは&の み とす る。 なお、&付 き の フ ィーール ドと して認 識 させ るた め に、 フ ィール ドと
フ ィール ドの間 は必 ず 1バ イ ト分 空 けてお く必要が あ る点 に注意 が必 要 で あ る。
S

回

\{elcome to WoRDLE in SA5!

Enter Keywords and press Enter

EMii

1一

(図 10編 集 中の 画 面 レイ ア ウ ト)

続 い て、ツール >フ ィール ド属性 を開 き、作成 した フ ィール ドの属性 を変 更す る。

KWRDフ ィール ドはデ フォル トで以 下 の よ うにな って い る。埋 め込 み 文 字 は初期表示 され る文字列 で あ っ
て不 要 なため、削 除 してお く (図 11)。
SBり ILB Aπ RI゛ rORDLEPRCG性

i、

111冨

●̲
・
・
=1
Fユ ー で フ ィ ー ル ド を 参 照 し て く だ さ い =

[裏

リアス

=イ タ ィプ

KWRD
CHAR

:

:

出 力形 式
入 力形 式
エ ラ ー色

:

:1

フ レーム

KWじ

フ ィ ー ル ド名

選 択 グル ープ
保護
位置調 整

行

発

長 さ :5

:16

□

埋め込み文字
INITIAL
nrenr cENTER r.roNE

:ェ S l回

|s

:

: RED

:6

´、ル

眉慇鼈
主
│ : REVERSE

=│

入

ス ク ロ ー │し コ マ ン ド ′ ま た │ま

=,

リス ト
初 期値
置襲

:

:

t)1=I

:

CAPS CURSOR REQUIRED @T

NOPROTIPT NON-DTSPLAY

(図 11フ ィール ド属性 )

&の み で定義 した 1バ イ トのフ ィール ドはデ フォル トで は変数 と して認 識 されず 、 タイ プ に ACT10Nが 割
り当て られ てい る (図 12)。 ここで は結 果 の文字列 を表 示 させ た いた め 、 タイ プは CHARに 変 更 し、エ イ リ
ア ス (別 名 )に resXY(Xは 行番 号=試 行 回数 、Yは 列番 号 =何 文字 日か )を 指 定す る (図 13)(こ の命名 規
則 にす る理 由は後述 す る)。 また、 この フ ィール ドには入 力 せ ず 、表示 に の み使 用す るた め 、保護 の YESを
ク リック して反転 させ る。
6

S BUlLD ATTRWORDL=pR毎 1懇 M:編 轟
ス ク ロ ー ル コマ ン ド′ ま

フ ィー ル ド名

ACT10NI

メ
し―

行

:7

71-)l,FE:

発
埋 め

保護

:
:

:

塵黎
:亀

│卜

: REVERSE

ヘルプ

ク E]― ル コ

:

(図 12初 期 値 )

た

ン

FTELD2 au*h:1
1

遼

:

t1 :Z

グループ

CHAR

,13

埋

N0

RED

農 1盤 : : REVERSE

(図

115

Fキ ーで フ ィール ドを参照 し

13変 更後 )

へ」
レプ

I
醸 薗C

FIELD2

:

:1

ス

スプ 式 鷺 色
アイ形形 一
リタカカ ラ
出入
イ
I

:

フ レー ム

薔 G

エ イ リア ス
タイプ
出 力形 式
入 力形 式
エ ラ ー角

: FILD2

は Fキ ー で フ ィー ル ドを参照 し

124.
[beta]
続 い て 、 ツール >ソ ー ス ウィ ン ドウに切 り替 える。
こ こで は実際に動 作 させ るための コー ドを記述す る。通 常 の SASプ ログ ラ ム (も 書 けるが)で は な く、SAS

Component Languagc(SCL)と 呼ばれ る SAS/AFア プ リケ ー シ ョンを制御す るた め の言語で記述 して い く [17]。

SCLで は、基本 的 に ラベ ル と呼ばれ る単位 で コー ドを記 述 す る。共通す る の は INITラ ベ ル 、MAINラ ベ ル 、

TERMラ ベ ル で、それ ぞれ アプ リケ ー シ ョンの起動時、デ ー タ の 変更時、 ア プ リケ ー シ ョンの 終 了時 に動作
す る。 また、 フ ィール ドが 存在す る場 合 は 、 フ ィール ドに対応 した変 数 ラベ ル を使 用す るこ ともで き る。 ラ
ベ ル は 「キー ワー ド

:」

で始 ま り、 噴 turn;」 で 終 了す る。

θ′

array res[30] $i resll-res15

θ2

res2l -res25

θ3

res3l -res35

θイ

res4l -res45

θ5

res51 -res55

θ6

r esO 1 -res65 ;

θ7
θ∂

I i d_answer=nake I i st (5) ;

θ9

dsid=open (' W0RK. LIST',' I' ) ;

′θ

if dsid)0 then do,

′′

rc=fetchobs (ds i d, resobs) ;

f2

if rc=O then do:

′θ

answer=getvarc (dsid, |) ;

′イ

do i=l to 5;
I i d_answer=set i temc (l id_answer, substr (answer

f5
′6

77

end;

′∂

rc=c I ose (ds i d) ;

′9

i澤

),i);

end;

end;

上 記 は INITラ ベ ル に 記 述 した SCLコ ー ドで あ る。1‐ 6行 日で は 6回 分 の 回答 結 果 を表示す るた めの 1文 字
毎 の 配 列 を定義 してい る。

8行 日で は SCLリ ス トを作成 してい る。SCLリ ス トとは、SCLで 扱 うこ との で き るデ ー タの集 合 体 で ある。
配 列 は種類 、長 さ、数 を あ らか じめ定 義 してお く必要が あ るが 、 SCLリ ス トは必 要 な時に作成 し、 数値 で も
文 字 で もオブ ジェク トで も格納す る こ とが で き、ネ ス トもで き る とい う点 で配 列 よ りも柔軟 に使 用 す るこ と
が で き る。 また、デ ー タ を保 持 させ て お け ば 、デ ー タセ ッ トにア クセ ス す る よ りも遥 か に高速 に ア クセ ス で
き る点 も大 きなメ リッ トで あ る。

9行 日以降では、正解 とな る単語 の 文 字 列 をデ ー タセ ッ トか ら取得 し、 SCLリ ス トに保 存 して い る。opcn
関数 を使 用 してデー タセ ッ トを開き、量 chobs関 数 で指 定 したオ ブザベ ー シ ョンにアクセ ス 、gctvttcで そ の

116

125.
[beta]
オブザ ベ ー シ ョンの単語 (こ こでは文字型 )を 取得 してい る。取得 した単語は後 でチ ェ ックに使 用す るため、

1文 字ず つ SCLリ ス トに保存 している。

θf

do i=l to 5;

θ2

idx=SEARCHC(l

θ3

f ieldname=cats (' res', execcnt, i) ;

θイ

res {5*(execcnt-l)+i }=substr (upcase (KI|{RD), i, 1) ;

θ5

if idx=O then do,

id-answer, substr (upcase(KllRD), i, 1)) ;

θ6

rc=field('color grey r', fieldname) ;

θ7

success=0,

θ∂

end; e I se

θ9

if idx=i then do;
rc=field('color green r', fieldname)

fθ

′′

end; e I se

′2

doi

;

fJ

rc=field('color yel low r', fieldname);

fイ

success=0;

f5

end;

f6

end i

′7

KWRD=";

′∂

if success then do;

′9
2θ

ro=f ield(' protect',' KWRD' ) ;
end:

上記 は MAINラ ベ ル に記 述 した コー ドで あ る。 MAINラ ベ ル は フ ィール ドい ず れ か の値 の変 更 が確 定 され
る度 に実行 され る。 通 常 は、英数字 を入 力 して ENTERキ ー を押 した タイ ミング と考 えて差 し支 えない。

2行 日で は、入 力 した文字列 に対 して 、 SEARCHC関 数 を使 用 して答 えの SCLリ ス トか ら何番 目に格納
され て い るか を取得 して い る。 この 関数 は Chris氏 の WHICHC関 数 と同 じ考 え方 で あ る。
1‐

3行 日で は、実行 回数 (excccnt)、 文字数 (i)か ら対応 す るフ ィール ド名 を作 成 す る。 図 13で エ イ リア ス
を rcsXYに 設 定 し、NITラ ベ ル の 1行 日で κs配 列 を作成 した の は、 この よ うにル ー プ処理 で生成 しや す い
名 前 とす るためで あ る。

5‑15行 日で は、SEARCHC関 数 の結果 を用 い て 、フ ィール ドの色 を変 更 してい る。図 9等 にあ る COLORコ
マ ン ドは 、 コマ ン ドバ ー で はそ の まま実行 で き るが、SCLで は FIELD関 数 のパ ラ メ ー タ として実行 す る。
実行 回数 と文字数 に対応 した結 果 フ ィール ド名 に対 して FIELD関 数 で COLORコ マ ン ドを実行 して い る
が 、COLORコ マ ン ドで は、色 の変更、表示 属性 (下 線 、反転 )を 指 定 で きるた め、反 転 させ てセ ル の よ うに
表示 させ て い る。 (Rは Rcvcrscの 略で あ る。)
最 後 の 19行 日の PROTECTコ マ ン ドで は、全 て一致 していれ ば入 カ フ ィール ドを編集 で きな い よ うに保護
状 態 に して い る。

117

126.

θf KWRD: θ2 return; θθ term: θイ return, 1行 日は フ ィール ド編集 時 に動 作す る変数 ラベ ル 、 3行 日はアプ リケ ー シ ョン終 了時 に動 作 す る TERMラ ベ ル だが 、 い ずれ も今 回 はぞれぞれ で処 理 を行 わない た め 、 ラベ ル の 終 了 キー ワー ドであ る remmの みを記 載 してい る。 最 後 に、実行 >コ ンパ イル を行 い アプ リケー シ ョン と して実 行 コー ドを生成 す る。 プ ロ グラムス ク リー ンはダブル ク リックでは編集 画 面 が 開 い て しま うた め 、実行 す るた め に は 図 14の よ う に、右 ク リック >実 行 を選 ぶか 、以 下 の コー ドで実行 す る。 警イプ 々イヤ 名前 璽 回 轟 1甲 L̲=.:.̲̲̲̲爾 i皿^…1≧Π 機 ‐ 腹 │ : 固くG⊇ 〕 │ : 表示0 1 霊■1旦 コンバイルo : (図 14実 行 方 法 ) θ′ proc display c=sasuser. vvordle. wordle. program; θ2 run %Windowに 対 応 した %displayと 同 じで 、作 成 した プ ロ グ ラ ムス ク リー ン は 「PROC DISPLAY」 る。 (「 C=」 は Cata10gの 略 で あ る。 ) 図 15は 起動 直 後 を示 し、何度 か試 行 した結果 は図 16の よ うにな る。 Sや bRDLE ユ 1年 ORDLE Velco経 e to ヽ VORDLE in SAS! =│二 Welcome to やORDLE in SAS: ̀‐ E口 ter KeyWO「 dS and press Enter Ente「 Keywords and press Entor llll lllll 118 闘興ロロ︼■ ● (図 躍 欝鶴日 ・ 口 ■■ = 15起 動 時 ) n=■=一EE︼ 日 H 圏 日 . (図 16試 行 イ メー ジ ) I TI で実行 す

127.

3.最 後 に 冒頭 に示 した通 り、Wordlcと い う 1つ の題 材 が三者 三様 の コー デ ィ ングに よつて 実現 され た もの を順 に紹 介 した。 SASの 豊 富な機 能 に驚 く とともに、 自身 が 普段 か ら作成 す るプ ロ グラム にお い て も、他 の アプ ロー チ に よって実 現す る方法が あ る とい うこ とも示 唆 してい る。 また、単 に論 文 、事例や マ ニ ュアル を参考 に して コー デ ィ ン グ をす る よ りも、 コー デ ィ ング したか ら こそ 他者 の コー ドお よび SASの 機 能 へ の理解 が深 ま る こ とを実感 した 。医薬 品業界 で行 われ てい る解析 プ ロ グ ラ ムの ダブル プ ロ グ ラ ミング も、お 互 いが どの よ うな アプ ロー チ を採 っ た のか 、 どの よ うな コー デ ィ ングで 実 現 したのか を勉 強 し、成長 の糧 とす る よい機 会 で あ る と思 う。 業務 と して は難 しいか も しれ な い が 、今 回 の よ うなお題 を決 めた遊 び の プ ログ ラ ミング体験 も、そ の 後 の フ ォ ロー 次 第 で SASプ ロ グラ ミングの理 解 を深 め る一つの方法 に な り うるのではな い だ ろ うか。 4.謝 辞 遊び のプ ログラミングを通 して 、新 しい機能 に触れ、知 らない機 能 を吸収 し、SASへ の理解 を深 め、成長 す る機会 と、快 くブ ログの内容紹介 へ の許可 を与 えて くだ さった Chis Hemcding∝ 氏 に感 謝 申 し上 げます。 5.引 用 文 献 [1] The New York Times Company, Wordle,"2022. https:〃 www.nytimes.cOnゴ games/wordlyindex.html(accessed Jul.29,2022). [2] C.Freshman, NYTimes Ⅵ石 Ordle answers fl・ om source code in alphabetical order,''M:ar.04, 2022.https://gist.github.comた ■eshmanノ a7b776506c73284511034e63af1017ee(accessed Jul. 29,2022). [3] C.Freshman, NYTimes Ⅵ石 ordle allowed guesses,not including answers,''Mlar.04,2022. https:〃gist.github.coln/c■ ,eshm.anノ 40608e78e83eb4eld60b285eb7e9732f(accessed Jul.29, 2022). [4] The New York7■ mes company, wordle ls Joi五 ng The New York Times Games,"Jan.31, 2022.https:〃 www.nytcO.cOm/press/wOrdle‐ new‐ yOrk‐ tilnes― games/(accessed Jul.29,2022). ordle game in a SAS program,what [5] C.Hemedinger,̀讐 SASUsers lf yOu were to bu■ d the#Ⅵ 石 technique wotlld you use to check guesses?,''7bを ι ι θ F,ゝ 4ar.15,2022. https://twittencon1/cjdinger/status/1503707344907251715(accessed Jul.29,2022). [6] 森岡裕, データステップ100万 回 SAS新 手一生:Wordleを SASで 実装 してみた。判定はdo over ι θ とhash iterator object)...,"7Lぼ ι ろヽlan 16,2022. https://twittencom/sasyupi/status/1503943550337454080(accessed Jul.29,2022). [7] ・ 川 上 貴 弘 , や って み た SASで WORDLE‐ 我 輩 はブ ロ ガ ー で は な い 。 ネ タ もま だ な い ,"71カ ι ̀α , Mar.16,2022.https:〃 twitter.com/iapelin/status/1503950571862368257(accessed Jul.29, 2022). 119

128.

[8] C.Hemedinger, Programmingthe Ⅵbrde gamein SAS,''17乃 θ S4S'υ塑塑%Mar.17,2022. https:〃blogs.sas.col■ /content/sasdul■ my/2022/03/17/wordle― sas/(accessed Jul.29,2022). [9] SAS Institute lnc.,SИ S O,ィ 1シ isιθ ″θp″b″ srКθ rb θ ″ι θ ,5th ed.Cary NC,USA:SAS Institute lnc.,2022.Accessed:Jul.29,2022.Available: httpS://dOCumentationosas.com/api/collections/pgコ nsascdc/9.4̲3.5/docsets/1esysoptsref/content /1esysOptsre■ pdf?10cale=en [10]SAS InStitute lnC.,S4SOフ イFυ″θ″・θ″s ar′ ιИ工 !ι Rο ″″ηθ srRθ髪) θ θ,5th "θ ed.Car"NC, USA:SAS Institute lnc.,2022̲Accessed:Jul.29,2022̲Aivaiable: httpS:〃 dOCumentation.sas.com/apycollections/pgmsascdc/9.4̲3.2/docsetsД efunctionsre″ cOnte nt/1efunctionsrelpdPlocale=en [11] C.Hemedinger, How to proram the Wordle gamein SAS,''34S aο ″ υ″ ″bs Lあ誦22,ぅ :Mar. 2・ 18,2022.https://conllnunities.sas.con1/t5/SAS‐ COmnlunities‐ Iibrary/11ow― to‐ program‐ the‐ Wiordle‐ garne‐ in‐ SAS/ta― p/802783(accessed Jul.29,2022). ・ [12]SAS Institute lnc.,SИ S 0 9ィ θ″′ P′ ιaθ方Иθ て/1シisιθttrИ ごフa″ θθ′乃pλs,3rd ed.Cary NC, USA:SAS Institute lnc.,2019.Accessed:Jul.29,2022̲A:vailable: httpS:〃 dOcurnentation.sas.com/apν collections/pgnlsascdc/9.4̲3.5/docsets/odsadvug/content/o dsadvug.pdfア 10cale=en [13]望 戸 遼 , Repo五 W五 ting I前 erね ceに よ るデ ー タ ス テ ップ で の HTML形 式 レポ ー ト作成 の 検 討 ," ` in SИ Sユ ーデーだ分励文集,Aug.2017,pp.14鮮 160. [14]森 岡裕, Wordleを SASで 実装 してみた,"デニタステンノンθθリ シiS筋 :手 一生,Mar.16, ケ/フ ′ 2022.https://sas― tumesas.blogspot.coln/2022/03/wordlesasdo‐ overhash― terator‐ Object.htnll (accessed Jul.29,2022). [15]SAS Institute lnc.,SИ S 0 9ィ z′ ″gυ ′♂θКθ蜂 θ θr a,′ οθp亀 6th ed.Cary NC,USA:SAS "θ Institute lnc.,2019.Accessed:Jul.29,2022.2'Evailable: httpS:〃 dOCumentation.sas.con1/apゴ collections/pgn■ sascdc/9.4̲3.5/docsetsArcon/content/1rcon. pdf?locale=en [16]SAS Institute lnc.,SИ S O,ィ ル笏arο z′ ″gυ ′♂θr Rθ :ん郵θ″ ,5th ed.Cary NC,USA:SAS Institute lnc.,2022.Accessed:Jul.29,2022.Available: httpS:〃 dOCumentation.sas.con1/apycollections/pgコ ̀θ nsascdc/9.4̲3.5/docsetsた ncrolre夕 contentた nc rolreipdPlocale=ein [17]SAS Institute lnc.,SИ SO aθttPο "θ"′ z′ ″g″ ′♂θ,4・ Bθ蜂照θ θ ,3rd Institute lncり 2019.Accessed:Jul.29,2022.2ヽ vailable: "θ ed.Cary NC,USA:SAS httpSi〃 docunlentation.sas.com/apν docsets/sclref/9.4/content/sclre■ pdf210cale=zh‐ 120 CN

129.

COMPAREプ ロ シ ジ ャ の 便 利 な 使 い 方 田中 真 史 (イ ー ピー エ ス株式会社 統計解析部 ) How to Use PROC COMPARE More Effectively Masashi Tanaka Statistics Analysis Department, EPS Corporation 要旨 SASを 用 いた業務 にお い ては、COMPAREプ ロシジ ャで SASデ ー タセ ッ トを比較 しなが ら作 業 を進 め るこ と が通 例 で ある。そ の た め 、作業者全員 が COl唖 )AREプ ロ シ ジ ャにつ いての 十 分 な知識 を得 てい る こ とが望 ま しい が 、全員 に リフ ァ レンス を熟読 す る余 力 と興味が あ る とは 限 らな い。 本 稿 で は、COMPAREプ ロシジ ャ を活 用す るための知識 を簡潔 に示 し、及 び SASで ツール を作成 す る際 の基 本 的 な技術 を紹介 す る。 キ ー ワ ー ド :COMPAREプ 1. ロシ ジ ャ 、 ツ ー ル 作成 、 ダ ブル プ ロ グ ラ ミン グ 緒言 COMPAREプ ロシ ジ ャは、メイ ン側 と QC側 のプ ロ グ ラ マ が独 立 にダブル プ ロ グラ ミングで SASデ ー タセ ッ トを作成 してそれ らを比較す る際や 、 SASデ ー タセ ッ トの修 正前 後 で意 図 した 変更 のみ が発 生 してい る こ とを検 証す る際 に用 い る非 常 に重要 な プ ロシジ ャで あ る。 一 見す る と説 明不要 な プ ロシジ ャ で あ るが 、活用 す るには、オプ シ ョン を上 手 く設 定す る必 要 がある。本 稿 で は、改 めて COMPAREプ ロシジ ャ の 実際的 な用 い 方 を整 理 した。 2章 で は COl岨 )AREプ ロ シジ ャを使 用 す る際 に頻 出す る ス テ ー トメン ト及 び便利 なオ プ シ ョン を コー ド例 と共 に示 した。3章 で は COI嘔 )AREプ ロ シ ジ ャで ツール を作成 す る際の周辺 技術 を紹 介 した。 本 稿 で は SASの バ ー ジ ョンは 94M7(日 本語版 )を 用 い た 。 2. COMPAREプ ロ シ ジ ャ の ス テ ー トメ ン ト及 び オ プ シ ョン 2.1.COMPAREプ ロシジャのステー トメン ト COMPAREプ ロシ ジ ャ の ス テ ー トメ ン トは 、PROC COMPAREス テ ー トメ ン ト及 び RUNス テ ー トメ ン ト を 除 く と、BY、 ID、 VAR及 び WITHス テ ー トメ ン ト並 び に 多 く の プ ロシ ジ ャ に共 通 す る LABEL、 ATTRIB、 FORI山 ヽT及 び WHEREス テ ー トメ ン トで あ る [1][2]。 本 章 で は使 用 頻 度 が 高 い WⅢ RE及 び IDス テ ー トメ 121

130.

ン ト並 び に状況 に よつ て は便利 な VAR及 び WITHス テー トメ ン トを取 り上 げ る (コ ー ド 2.1)。 本 稿 では 、 BASE=及 び COMPARE=オ プ シ ョンで 指 定 す るデ ー タセ ッ トを、それ ぞれ ベ ー ス デ ー タセ ッ ト及 び コ ンペ ァ デ ー タ セ ッ トと呼ぶ 。 テ ス ト用のデ ー タ セ ッ トM(Manメ イ ン側 )と S(Sub、 QC側 )は 、特 に断 りが無 い 限 リコー ド2.2で 定義 した。 ● COMPAREプ ロ シ ジ ャ の 中にス テ ー トメ ン トを指 定 しな い 場合 オ ブザベ ー シ ョン を上 か ら順 に比較 す る (コ ー ド2.3)。 筆者 は この使 い 方 をす るこ とが 多 い 。 ● WHEREス テー トメ ン ト ベ ー スデ ー タセ ッ トと コ ンペ アデ ー タセ ッ トに WttRE条 件 を指定 して オ ブザ ベ ー シ ョン を絞 り込む。 ● IDス テ ー トメ ン ト ID変 数 の値 が同一 で あ るよ うなオ ブ ザ ベ ー シ ョンを比 較 す る (コ ー ド2.4)。 BYス テ ー トメ ン トは BY 変 数 ご とに SASア ウ トプ ッ トを作 成 す る点が IDス テ ー トメ ン トと異 な り、 ア ウ トプ ッ トの サ イ ズが 巨 大 にな ることが多 い が 、 ほ とん どの場 合 、IDス テ ー トメ ン トで代替 可能 で あ る。 ● VARス テ ー トメ ン ト 選 択 した変数 の み を比 較す る (コ ー ド2.5)。 ● WITHス テ ー トメ ン ト VARス テー トメ ン トと一 緒 に用 い 、 VARス テ ー トメ ン トで指定 した 変 数 と異 なる変数 を比 較 す る (コ ー ド 2.6)。 コ ンペ ア す る前 にデ ー タ セ ッ トオプシ ョン な どで変数 を リネ ー ム しな くて も COMPAREプ ロ シ ジ ャのみ で同等 の こ とが実 現 で き る。 コンペ アデ ー タセ ッ トを指 定せ ず にベ ース デ ー タセ ッ トのみ で実 行 した場合 は、 ベ ー スデ ー タセ ッ ト内の異 な る変数 を比較す る。 /*コ ー ド 2.1*/ PROC COMPARE くOρ tiOη s〉 ; WHERE ″力ere― eχ ρressiOη J ID ソariabι ers,; VAR variabι ers,3 wITH νariα bι ers,5 RUN; /* コ ー ド2.2*/ data m; 1 input a bj cardsj fl vttunaele worlcM a 1 2 3 runj data s; input a b; 11 22 34 既塾ⅥBぼ「ABLE Worに 3 b ca nds; ; run; 122

131.

/*コ ー ド 2.3*/ proc cc)mpare base = m comp = sJ run3 基準 比較 b b 3.0000 4.00001 差 %差 1.0000 33.3333 /*コ・― ド 2.4*/ proc compare base = m comp = si id aS run3 基準 比較 b b 差 %差 3.0000 4.0000 1.0000 33.3333 /*コ・― ド 2.5*/ proc compare base = m comp = si var aJ run; NOTE:不 等 な値 は あ りませ ん 。比較 した 変 数 はす べ て同等 で した。 l* =- F' 2.6 *l pnoc compare base = m comp = s; var a; with b; run; 較 b 基準 OBS a 3.0000 4.0000 差 %差 1.0000 33.3333 2.2.PROC COMPAREス テー トメ ン トのオプシ ョン PROC COMPAREス テ ー トメ ン トには、41種 類 のオプ シ ョンが 用意 され てい る [3]。 本 章 では 、特 に有用 な 12種 類 を選 んで解説 を加 え る。 123

132.

● BASE= は Alias(別 名 )で あ る 。 ベ ー ス デ ー タ セ ッ トを 指 定 す る 。 「DATA=」 コ ン ペ ア デ ー タ セ ッ トを指 定 す る 。 「COMP=」 及 び 「C=」 は Aliasで あ る 。 COMPARE= ● NOPШ NT SASア ウ トプ ッ トを 抑 制 す る。 ● WARMNG ロ グ に WARNINGメ ッセ ー ジ を 出 力 す る (コ ー ド 2.7)。 ● LISTALL ● ベ ー ス デ ー タセ ッ ト及 び コ ンペ アデ ー タセ ッ トに、共通 でない 変数 及 び オ ブザベ ー シ ョンが存在す るこ とを出力 す る (コ ー ド2.8)。 コー ド2.8で は、 ベ ー スデ ー タセ ッ トMの み に変数 Cと A=3で あ るよ う なオブザ ベ ー シ ョンが存在 す る場 合 の結果 を示 した。 「オブザ ベ ー シ ョンの比 較 結果 」 は、IDス テ ー ト メン トに変 数 Aを 指定す る こ とで 出力 した。 ● MAXPRINT= デ フ ォル トは 「MAXPRINT=(50,500)」 であ るが 、例 えば 「MAXPRINT=(20,200)」 と指 定す る と、SASア ウ トプ ッ トに出力す る不 一 致 箇所 の 数 を各 変数 20個 以 内、合計 200個 以 内に抑 制 で き る (コ ー ド2.9)。 コー ド 2.9で は、 ア ウ トプ ッ トの 出力 のた め に 、不 一 致箇所 が十分 に 多 いベ ー ス デ ー タセ ッ トとコ ンペ アデ ー タセ ッ トを比較 した。 本 オ プ シ ョンを 明示 的 に指 定す るこ とで コ ンペ ア結 果 の 視 認 性 が改善す る こ とが あ る。 /■ コー ド 2.7*/ proc compare base = m comp = s warn■ ngl; runJ WARNING WARNING 次の 1変 数の値は不等です :b デー タセ ッ トWORK.Mと WORK Sに は不等 な値があ ります。 /*コ ー ド 2.8*/ proc compare base = m comp = s listal13 id a; runJ WORKⅢ に あ って WORK.Sに な い 変 数の リス ト Variable Type Length c Num 8 オ ブザ ベ ー シ ョンの比較結 果 オ ブザ ベ ー シ ョン 3(WORK.‖ )が WORK Sに は あ りませ ん a=3 /*コ ー ド 2.9*/ prOC COmpare baSe = m comp = s maxprint = (20, 200); runS NOTE 変数 aの 出力制限 MAXPRINT=20に 達 しま した。 これ 以上 、出 力 しません 。 NOTE 出 力制 限 MAXPRINT=(20,200)に 達 しま した 。 これ 以上、出 力 しませ ん 。 124

133.

ベ ー ス デ ー タセ ッ トと コ ンペ アデ ー タセ ッ トの差分 を SASデ ー タセ ッ トと して 出力す るた め に、次 の 4つ の オ プ シ ョンはセ ッ トで覚 えると良い で あ ろ う (コ ー ド2.10)。 ● OUT= 出力す るデ ー タセ ッ トの名 前 を指定す る。 ● OU・ IBASE= ベ ースデ ー タセ ッ トのオ ブ ザ ベ ー シ ョンを 出力す る。 OUTCOMP= ● OU′ INOEQUAL コンペ アデ ー タセ ッ トのオ ブ ザ ベ ー シ ョンを 出力 す る。 ● 不一 致 の オ ブ ザ ベ ー シ ョンの み を出力す る。 /*コ ー ド2.10*/ proc compare base = m comp = s out = z 《 )utbase outcomp outnoequalj runS 1 BASE 00MPARE 浮 動 小 数 点 誤 差 を 無 視 して 数 値 変 数 を 比 較 す る 際 は 、 h彊 THOD=ABSOLUTE」 と設 定 し、 及 び 「CRITERION=」 オ プ シ ョンに十分 に小 さい数値 を設 定 す る。 SASデ ー タセ ッ ト作成 時 に 明示 的 に lE■ 0程 度 で 端 数 処 理 して 浮 動 小 数 点 誤 差 に 対 処 して い る場 合 は 、 これ らの設 定 は 不 要 で あ る。 鴫伍 THOD=ABSOLUTE」 を推奨す る理 由 は次 の通 りで あ る。 「METHOD=ABSOLUTE」 と指 定す る と、χ及 びッを比較する値、43S(.)を 絶対値、γを 「CRITER10N=」 で設定した値として、ИBSo― χ)>γ であれば不一 致 とみ な す [4]。 幅伍 THOD=PERCENT」 と指 定す る と、100(■ 3So― χ)/И BS(χ ))>γ (χ ≠ 0)又 はγ ≠ χ=0 で あ れ ば 不 一 致 とみ な す 。故 に し ETHOD=PERCENT」 と指 定 す る と、χ =0付 近 で浮 動 小 数 点 誤 差 に対 応 で き な い 場 合 が あ る。 「MHHOD=RELATIVE(δ ● )」 も同様 で あ る。 〕 ИETHOD= デ フ ォル トは い ETHOD=E測 ST」 で あ り、浮 動 小 数 点 誤 差 に 反 応 す る。浮 動 小 数 点 誤 差 を無視 した い 場 合 は 、 いETHOD=ABSOLUTE」 ● とす る (コ ー ド2.11)。 CRITER10N= ROU卜 D関 数 が lE‐ 12付 近 で フ ァ ジ ー 処 理 を行 うな ど 、 SASシ ス テ ム は lE42付 近 で エ ン ドユ ー ザ ー に は 詳 細 不 明 の 端 数 処 理 を行 つて い る よ うで あ る [4]。 そ の た め 、そ の 桁 か ら少 し大 き く とつ て 、 lE‐ 10と す る の が 良 い と思 うが 、業務 で は 実 績 が あ る数 値 を設 定 す れ ば 問題 な い で あ ろ う。 /*コ ーード 2.11*/ data m; x=0。 15 runJ data s; x=1‑0。 95 run3 proc compare base = m comp = s method = absolute criterion = te-7a; run; 125

134.

す べ てのオブザ ベ ー シ ョンが同等 な変数の数 不等 なオ ブザ ベ ー シ ョンを持つ変数 の 数 :0 不等な値の数 (合 計 ):0 完全 に同等でな い値の 数 (合 計):1 ■更,kl,自 │ : 2.7756E‑17 3. COMPAREプ ロシ ジ ャ の 周 辺 COMPAREプ ロシジ ャを用 いた検証用 の ツールは、業務 内容 に応 じて最適 化 されてい るはず で ある。一般 にツール は次第に複雑 化 して、次第に ソー ス コー ドが理解 しに くくなるが、コ ンペ ア用のツール については、 しば しば用い られ る共 通 した技術 とい うものが存在す る。 それ らを本章で述 べ る。 3.1.SYSINFO自 動 マ ク ロ変 数 コンペ ア結果 の概要 は、COM■REプ ロシジャの実行後 に SYSINFO自 動 マ ク ロ変数に整数値 で格納 され る (コ ー ド 3.1)[6]。 2・ (れ 16、 SYSINFOに 格納 され る値は、 コ ンペ アー致を表す 0並 びに コンペ ア 不 一 致 を表す =1,… ,15)、 す なわ ち 2、 4、 8、 16、 …、32768及 びそれ らの和である。 この うち、覚 えるべ き値は、0、 4096及 び 32768で あろ う (表 3.2)。 SYSINFOが 4160以 上の場合は、特 定 の変数が片方 に しか存在 しな い とい った場合 もあ るが、ベースデー タセ ッ トとコンペ アデ ー タセ ッ トのオブザベ ー シ ョン数 が不一致であ る可能性 が高い。 メイ ン側 と QC側 でダブル プ ログラム を行 う際は、まず は 4096の 状態、す なわ ちオブザベ ーシ ョン数 が一致 して 値 のみが不一致 の状態 を 目指 して SASデ ー タセ ッ トを検証するとスムー ズ であろ う。 /*コ ーード3.1*/ proc compare base = m comp = sJ run3 %put &=sysinfoS SYSINFO=4096 /*表 3.2 SYSINFO自 動 マ ク ロ変数 に格 納 され る値及 び そ の 意 味 */ 0 16 4096 4112(=16+4096) ≧4160(=64+4096) 32768 ベ ー スデー タセ ッ トと コ ンペ アデー タセ ッ トが 一 致 変 数 長 のみ不 一 致 値 の み 不 一致 変 数 長 及 び値が不 一 致 {直 とオ ブザ ベー シ ョン数 が不 一致 (な ど ) デ ー タセ ッ トが存 在 しな い 3.2.XPTフ ァイル と元の SASデ ー タセ ットの コ ンペア 臨床 試 験 において は 、 SASデ ー タセ ッ トを SAS XPORT形 式 (XPTフ ァイ ル )に 変換 して か ら規 制 当局 に SASデ ー タセ ッ トを XPTフ ァイ ル ヘ 正 しく変 換 で きてい る こ とを検証す る手順 と して 、以下 の 2種 類 が ある。 どち らの方法で も良 い の だ が 、2番 目の 方 法 では、XPTフ ァイ ル にはオ ブザ ベ ー シ ョン数 提 出す る [6]。 の メ タデ ー タが含 まれ て い な い ため、ア ウ トプ ッ トに 「OBS数 」 が 出力 され な い。 126

135.

● XPTフ ァイ ル を WORKラ イ ブ ラ リに SASデ ー タセ ッ トと して コ ピー し、死 の SASデ ー タセ ッ トと比較 す る (コ ー ド3.3)。 ● XPTフ ァイル と元 の SASデ ー タセ ッ トを直接 比較す る。 /*コ ー ド 3.3*/ 1ibname sdtm ixxx¥yyy¥zzzl' access = readonly3 1ibname xpt xport ixxx¥yyy¥zzz2¥dm.xpt'メ /*XPTフ ァイ ル を SASデ ー タ セ ッ トに 変 換 して か ら比 較 */ proc copy in = sdtm out = xptう select dm3 runi proc copy in = xpt out = work; run; proc compare base = dm comp = sdtm.dm; run; libname xpt; /*XPTフ ァイ ル と SASデ ー タ セ ッ トを 直 接 比 較 */ proc copy in = sdtm out = xpt3 select dmJ runJ proc compare base = xpt.dm comp = sdtm.dm; run; libname xpt; VAR数 OBS数 デー タ 作成 日 更新 日 XPT.DM SDTM.DM 1 6AUG21:15:57:40 16AUG21:15:57:40 16AUG21:15:57:24 16AU021:15:57:24 ラベル . Demograph i cs 20 Demographics 3.3.変 数 の 順 番 の 比 較 COMPAREプ ロシジャは変数 の順番 を比較 できないので、変数 の順番 を比較す る際は工夫が必要で ある (コ ー ド3.4)。 比較の際に WORKラ イブラリに SASデ ー タセ ッ トを出力 しない コー ドを示 したが、CONTENTS プ ロシジ ャで出力 した SASデ ー タセ ッ トの変数 VAnWMを 比 較す るな ど、他 の方法で も問題 ない。 /*コ ー ド 3.4*/ data m5 inputi a b ci cardsJ l l ■ run3 data s; input a c b; ca rd s; 127

136.

111 run; data ̲null̲j idl = Open(lm:)5 id2 = open(tsl)3 if attrn(idl, invarsl)^= attrn(id2, invarsi)then doS put=WARNING:=+■ :変 数 の個 数 が違 い ま す 。 1; endJ elSe dO i = l tO attrn(idl, inVarSt)3 if varname(idl, 1) ^= varname(id2, i)then doJ put躙 ARNING::+lit番 目の 変 数 名 が 違 い ます 。 i3 endi endj run; WARNING:2番 目の変数名 が 違 います 。 WARNING:3番 目の変数名 が 違 いま す。 3.4.LIBNAⅣIEス テ ー トメ ン ト及 び ODS LISTINGス テ ー トメ ン ト LIBNAMEス テー トメン トのポ イ ン トをま とめたが、詳細な説明は不要であろ う [3]。 (ACCESS=READONLY)に す る。 ● フ ァイ ル を 出 力 す る とき以 外 は 、必 ず 読 み 取 り専 用 ● 複 数 の フ ォル ダ パ ス を指 定 す る こ とで連 結 ライ ブ ラ リが作 成 で き る ● フ ォル ダ パ ス は LISTオ プ シ ョン で表 示 で き る (コ ー ド 3.6)。 (コ ー ド 3.5)。 ま た は 、 PATHNAME関 数 で 取 得 す る。 コ ンペ ア 結 果 をテ キ ス トフ ァイ ル で 出力 す る際 は 、 ODS LISTINGス テ ー トメ ン トを用 い る (コ ー ド 3.7) [9]。 外部 フ ァイ ル を 出力 す る ツ ー ル で は 、最 初 に ODS̲ALL̲CLOSE及 び ODS トで 出力 全 体 を抑 制 してお い て 、 必 要 な ときの み 出 力 を行 うの が無 難 で あ ろ う。 /*コ ー ド3.5*/ 1ibname m (:XXX¥yyy¥ZZZl'り !xxx¥yyy¥zzz2:) access = readonly5 /*コ ー ド3.6*/ 1ibname wlork listS %put %SySfunC(pathname(WOrk))j /*コ ー ド3.7*/ ods̲all̲close5*す べ て の 出力 を抑制 3 ods noresultsi*結 果 ウィ ン ドウの出力 を抑 制 3 /*結 果 を SASア ウ トプ ッ トの み に 表 示 す る場 合 */ ods listing3 prOc cOmpare base = m comp = s, run3 ods ̲ 11̲ losei /*結 果 を外 部 に 出力 す る場 合 */ ods listing ‐ File = 'xxx¥yyy¥zzz¥CompareResults.txtlj proc compare base = rn comp = s, 128 NORESULTSス テ ー トメ ン

137.
[beta]
run;
ods _all_ close;

3.5.RENAME関 数
[NG]CompacRcsults収 tの フ ァイ ル 名 で コ ンペ ア 結 果 を 出 力 し、 コ ン ペ ア ー 致 の とき 、 す な わ ち SYSNFO
自動 マ ク ロ変数 の 値 が 0に な った と き に 、 RENAME関 数 で 出 力す る フ ァイ ル 名 を[OK]CompttcRcsultstttに

RENM関

リネ ー ム す る と、 フ ァイ ル 名 か ら コ ン ペ ア 結果 が 判 断 で き て 非 常 に便 利 で あ る

(コ ー ド 3.8)。

数 で 外 部 フ ァイ ル の 名 前 を変 更 す る に は 「RENAME(ο 〃拗 物 ′,″

の構 文 を 用 い る [7]。

"―

κα″ら FILE)」

l* =* I." 3.8 */

ods _a11_ close;
ods noresults;
filename f 'xxxYyyyYzzzYING]CompareResults.txt' ;
ods listing file = f;
proc compare base = m comp = s.i
run;
ods _all_ close;

%if &sysinfo. = O %then %do;
%Iet filename = %sysfunc(pathname(f) );
%put %sysfunc ( rename (&f i1ename.,

%sysf unc (tranwrd (&filename

[NG],

[OK])), file))3

%end;

filename f;

3.6.SASデ ー タセ ッ トのメタデータの取得
SASHELP.VTABLE:又 │ま DICTIONARY.TABLES

`
―タセ ッ トラ ベ ル (ME:MLABEL)、 作 成 日
か ら、 デ ‐

(論 理 )オ ブザベ ー シ ョン数 (NLOBS)な ど、41種 類 の SASデ ー タセ ッ トの メ タデ ー タが得

(CRDATE)、

られ る (コ ー ド3.9)[11]。

フォル ダ 内 の 多数 の SASデ ー タセ ッ トの コ ンペ ア結果 を集 約 して一 覧 を作 る場

合 な どに、これ らの 情 報 が活用で き る。 ひ とつの SASデ ー タセ ッ トの メ タデ ー タを取得 す る場 合 は、マ ク ロ
言 語 で取得す るの が簡 単 で 、 ここで はオ ブザベ ー シ ョン数 を取得す る例 を示 した。

l* =* i^ 3.9 */
/* DICTIONARY.TABLES */

proc sq1;
create table tables as

select libname

, memname
, memlabel
, cndate
, nlobs

from dictionary.tables
where libname = 'SASHELP'
and memtype = 'DATA';

quit;

t

/* SASHELP.VTABLE */
data tablesJ
set sashelp.vtablel

where

libname =

SASHELP!;

129

138.

where same memtype = 'DATA'; keep Iibname memname memlabel crdate nlobs; run; /*(論 理 )オ ブザ ベ ー シ ョン数 の 取 得 */ %let id =%SySfunC(Open(SaShelp.ClaSS)); %let nOf=%SySfunC(attrn(&id., n10bS)); %put %SySfunC(C10Se(&id。 )); %put &=nof; NOF=19 4. 結語 最 終 的 な成 果物 は実績 が あ るツール で 作 成 及 び検証す る と して も、作業 に応 じて ツール を 自作 す る と業務 の進 捗 が 良 くなる。 ツール 作成 のた めに は 、 デ ー タハ ン ドリン グや統計処理 の 周 囲 の技術 を知 つて い るこ と も重 要 で あ ろ う。COMPAREプ ロシジ ャ の よ うな基本的 な プ ロ シジ ャで あ っ て も、詳 しく リフ ァ レンス を読 む と新 た な発 見があ り、知 識 は増 える も の で あ る。そ して 、 ツール を作成 す る に は実際 に動 く コー ドを書 け る こ とが必 要である。 本 稿 で紹介 した コー ドは 、 SASに お け る筆者 の 「手癖 」 の 一 部 であ る。 引用文 献 1.CONr,ARE Proccdurc.(オ ン ライ ン)SAS Institute lnc.(引 用 日:2022年 8月 19日 .) h■pS://dOCumentation.sas.com/dOc/en/pgmsascdυ 94̲3.5/proc/nlnwxbchh5hpulnlh28kmici2awd.htm. 2.Stttcmcnts with tlle Samc Function in Multiplc Procedures.(オ ン ライ ン)SAS Institutc lnc.(引 用 日:2022年 8 月 19日 .)https://documcntation.sas.com/doげ eゴ pgmsascdυ 9.4̲3.5/pЮ c/nlm15doOo vailrptm92hgbclw.htm. 3.PROC COMPARE Stttcment.(オ ン ライ ン )SAS Institut lnc.(引 用 日:2022・ 年 8月 19日 .) httpS://dOCume前 江ion.sas.com/docた ″pgmsascdc/9.4̲3.5/procた Ocly14wyd3u7ynldmtpae」 1lsn.htm. 4.The Equalけ Critcrion。 (オ ン ライ ン)SAS Instimte lnc.(引 用 日:2022年 8月 19日 .) h■pS://dOCumentatiOn.sが .com/doc/eゴ pgmsぉ cdc/9.4̲3.5わ roc/pObbu58eqgufWzn16zafmlhvzfW2.htm. 5.ROUND Function.(オ ン ライ ン)SAS Insthtc lnc.(引 用 日:2022年 8月 19日 .) httpS:〃 doCume載 誠ion.sas.com/doc/cn/pgmsascdc/9.4̲3.2/1cinctionsreyp016cmga7p8qhlejh6cbcvmOc9.htm. 6.Macro Retum Codes(SYSNFO).(オ ン ライ ン)SAS Instimte lnc.(引 用 日:2022年 8月 19日 .) ht,s://documcnt誠 lon.sas.com/doc/cゴ pgmsascdca4̲3.5わ roc/11ljbbrntzサ a8nllu77t35d19.htm. 7.承 認 申請時の電子デ ー タ提出等に関す る技術的ガイ ドについ て.(オ ン ライ ン)独 立行政法人 医薬 品医療 機器 総合機構次世代審査等推進室長 .(引 用 日:2022年 8月 19日 ぅ h■ ps://、 vヽ ″ w.pmda.gojp/■ leダ 000204728.pdf 8.LIBNAME Stateme■ .(オ ン ライ ン )SAS Institutc lnc(引 用 日 :2022年 8月 19日 ぅ httpS://dOcume載 江ion.sas.com/doc/cn/pgmsascdc/94̲3.5/1cstmtsglobalた lnk65k2vsfmxhlwu17金 ltzszbp.htm. 9.ODS LISTING Statcmcnt.(オ ン ライ ン )SAS Institute lnc.(引 用 日:2022年 8月 19日 .) hl■ )s://documcnt江lon.sas,com/docん n/pgmsascdc/9.4̲3.5/Odsug/nllyhxsOue101inlsnowd4cdd15q.htm. 10.RENAME Function.(オ ン ライ ン )SAS Institute lno(引 用 日 :2022年 8月 19日 .) h■ps://documcnし ■ion.sas.com/doc/enノ vdl■ 1lmlcdc/8.1/1cilnctionsreyp14axci31■ o3eganlokbcydvbt433.htm. 11.Accessillg SAS Information By Using DICTIONARY Lblcs.(う なン ライ ン)SAS Institutc lnc.(引 用 日 :2022年 8月 19日 .) htps://documcnね tion.sas.com/doc/en/pgnsascdc/9.4̲3.5/sqlprocん 130 02s19q65mw08gn140bwih7spx7.htm.

139.

Pythonと SASを 活用 して解析結果 比較作業 を効率化 小林 (日 本 た ば こ産 業 株 式 会社 聡晃 医薬 事 業 部 臨 床 開発 部 生物 統 計 チ ー ム) Mよ e Ow Analysis Results Review More E伍 cicm by Python and SAS Toshiaki Kobayashi Biostatistics Team, Pharmaceutical Division, Japan Tobacco Inc. 要旨 ■fフ ァイル で 作 成 され た解 析 結 果 と SASで 作成 され た解析結 果 を比較す るた めに ,■ fフ ァイル を SASデ ー タセ ッ ト化 し,SASの PROC COMPAREを 使用 す る事例 が報告 され てい る。 しか し,■ fフ ァイ ル を SASデ ー タセ ッ トに変 換 す る方針 を採 用 す る と,プ ロ グ ラ ム が複雑 に な り,プ ログラ ム の解 読 とマ ク ロ化 に多大 な 時間 と労力 を要 していた。 また ,■ fフ ァイル 出力 直 前 の SASデ ー タセ ッ トを用 い て比 較す るこ ともあ るが ■fフ ァイ ル 出力 時 に指定す る並 び順 の 間違 い には気 づ かない こ とが あ った。これ らの 問題 を解決す るた めに , , 今 回 の検討 で は,プ ログラ ミング言 語 である Pメ hon及 び公 開 され て い る Pythonラ イ ブ ラ リ(Pttdasや SASPY 等 )と SASを 組 み合 わせ て確 認 業務 の効率化 を行 っ た 。 まず ,■ f形 式 の集計結果 フ ァイ ル を doc形 式 を経 て Pandasの デ ー タ フ レー ム に変換 した。次 に SASPYを 用 いて SAS上 でデ ー タフ レー ム を SASデ ー タセ ッ ト化 し,最 後 に若 千 の デ ー タ操 作 に よ り PROC C01岨 lAREに よる比 較 が可能 とな った 。 本 発表 の 内容 に よつて , 解析結果確 認 業 務 を効率化 す る こ とが期待 で き る。 キ ー ワー ド :解 析 結 果 比 較 ■fdoc Python SASPY PROC COMPAR:E 一 本文開始 点 一 1.は じめ に 製薬業界 で は解 析 結果 を 重f形 式 で出力す るこ とが 多 い。 品質確 認 を 目的 と して ,生 物統 計担 当者 が ■fフ ァイル 形 式 の解 析 結果 を確認 す る際 に,自 身 で 作 成 した解析結果 と比較 を して結果 の 妥 当性 を確認 す る こ と が ある。解 析 結 果 を格納す る ■fフ ァイル のペ ー ジ 数 が少 なけれ ば , 日視 に よる確認 で 対応す るが ,ペ ー ジ 数 が多 くな る と 目視 に よる対応 が 現 実的ではな い こ とが ある。 この 問題 に対応 す る方 法 と して ,PROC COMPAREを 用 い て SASデ ー タセ ッ ト間 での比 較 を行 い ,作 業 を効 率化 したい。 ■f出 力直 前 の デ ー タセ ッ トを入 手す ると,指 定 して い る変数名 や デ ー タの構 造 が 異 な ってい る こ とが あ り,PROC COMPAREに よる比 較 をす るために必 要 とな るデ ー タ操 作 に時間がか か っ てい た。 PROC 131

140.

REPORTの オ プ シ ョンに よ リ レコー ドを並び替 え て い る段 階 で発 生 した不備 に 関 して は ,出 力 直前 のデ ー タ セ ッ トを比 較 して も気 づか な い こ とが あ った。 現在 , ■fフ ァイ ル を SASに 取 り込 む SASの プ ロ シジ ャは存在 しない。 Hfフ ァイ ル を SASデ ー タセ ッ ト に変換す る方 法 が課題 とな る。 これ までに提 唱 され た方法 として ,NΠ LEス テ ー トメ ン トを用 いて ,1ず デ ー タを取 り込 み ,デ ー タセ ッ ト化 す る方法 が あ る(1)。 しか し,こ の方 法 では rを 制御 す るタグセ ッ トを解 読 し,解 析 帳 票 の設定 に応 じたデ ー タ操作 を行 う必 要 があるので ,マ ク ロ を汎 用 的 に使 用 で きな い。 タグセ ッ トが含 まれ な い フ ァイル で あ る wordや 歯 フ ァイ ル に変換すれ ば ,デ ー タ操作 が 容 易 にな る。 変換 した wordや 歯 フ ァイル を Exccl(2)や Access(3)に 取 り込 ん で か ら,SASデ ー タセ ッ トに変換 して い る事例 も報告 さ れ てい る。 近年 ,プ ロ グ ラム言語 で あ る Pythonを 活用 した 事 例 が SASユ ー ザ ー 総会 で発 表 され る こ とが 多 くな り , 製 薬業界 で も SASだ けでな く Pythonを 用 い る場 面 が増 えつつ あ る。 2021年 に開催 され た Phamla SUGで は ,Bcn Bocchicchioら が Pメ hOnと SASを 用 い て ,wordフ ァイル をデ ー タ フ レー ム に変換 し,SASPYと い うパ ッケ ー ジ を用 いて ,デ ー タ フ レー ム を SASデ ー タセ ッ トに変換 した 事例 を発 表 して いた(4)。 これ らの発 表 内容 を考 慮 し,■ fフ ァイ ル を wordフ ァイ ル に変 換 す る過程 を Pメ honプ ロ グ ラム部 分 に追加 すれ ば ,よ り 簡便 なプ ロ グ ラ ム で ■fフ ァイ ル 形 式 の解析結 果 を確 認 す る作業 を効 率化す る こ とが期待 され た 。 本発表 で は具 体 的な事例 に基 づ い て ,貢 fフ ァイ ル か ら wordフ ァイ ル ,デ ー タ フ レー ム ,SASデ ー タセ ッ ト変換 ま で の 流 れ と使用す るプ ロ グ ラム を示す 。 2.想 定 す る事例 被験者 背 景 の集 計結果 を検 証 す る。 以下 の よ うな解 析結果 (図 1)を 得 て ,■ fフ ァイ ル に結 果 を出力す る (図 2)(5)。 解 析 結果 の確認 を行 う担 当者 も図 1に 示 したデ ー タセ ッ トを得 た と仮 定す る。 日視 で も確認 は 可能だが ,時 間 がかか りかつ 見 落 と しの リス ク も あ る。確認 を行 う担 当者 は複数 品 目か つ 複数試 験 を担 当 し てい るた め ,確 認 作業 にか け る時 間 を効率化 す る必 要 があった。 ■fフ ァイ ル を簡 便 なプ ロ グ ラム で SASデ ー タセ ッ トに変 換 し,PROC COMPREに よる比 較 をす ることに した 。 図 1:集 計 結 果 を格納す る SASデ ー タセ ッ ト 132

141.

A A いいけはい A ‐ ΠEM PARAM N Mean VARl 100 602 11.1 Min 30 Median 620 Max 00 Ase: n (H) く 65 30{300) Aee: n (S) 65く =― く75 65(65.0) Aee: n (S 75く = 5(5.0) 10 Sex: n (S) 11 Sex: n (S Male Female 55(550) 45(450) 12 Heieht (cm) Heieht (cm) N Mean i00 SD 1032 Min 1401 Median 158.25 17 Heieht (cm) Heieht (cm) Heieht (cm) Heieht (cm) Max 1052 10 Heieht: n (S) く 150 19 Heieht: n (SJ Heieht: n (S) 150く =¨ く170 20 25(250) 67(670) 3(30) 21 Weicht (ke) N 100 22 23 24 25 Weieht {ke) Weieht (ke) Weicht (kE) Weicht {ke) Weieht (ke) Mean 55.32 A SD A A i3 14 15 16 157.34 170く = SD 1095 Min 383 6667 Median Max 100.0 く55 20 Weieht n (S Weieht: n {ff} 29 n(鰤 70く = 41(410) 43(400) 11(110) 26 27 55く =― く70 133

142.
[beta]
図 2:出 力 され た rtfフ ァイ ル

Des∝ 帥 vè

D口 gA↓

(N=100ソ

(un蔵 )で

Ageけ earヽ

100

N■

Meah"
̀02●

SO●

Mini

∝

P

M●
̀│●

Agei n(%や

"

620■・
88・

●35●

30(300)・

65く =‐ くアタ'

65(65̲0ド

75く =や

5(50「
55(550ン

Sexi n (%).

45(450「

Femal+'

‐

Pal蕗 ‐
¬of]´

図 3:NFILEス テ ー トメ ン トで 作 成 した ■fフ ァイ ル を SASデ ー タセ ッ トに 変 換
data
0*brdrcf I *c ltx lrtb*c lverta lbYc lcbpat 8Yc lpadt 6 0*clpadft 3*c lpadr 6 0*c lpad{r 3*c
(Unit)Ycell}
*pardlplainlintbl*keepn$sb6()*sa6[)Yql*lt*fslSYcll{Parameter

*c lbrdrtYbrdrsYbrdrw
42

I SYbrdrcl

1*c lbrdrbYbrdrsYbrdrw2

43

*pard*p la in* intb l*keepn*sbE 0Ysa6 0*q l*{ 3Yfs 1 SYcl 1{Descr ipt ive{* I ine}

44

StatisticsYcelll
Ypard*plain*intbl$keepnYsb60*sa60*qeYJ3*{s I SYcf l{Drue A{+line}
(N
= 1O0)#cell]

45
46
47

{*row}

48

+trowd+trkeepYtrqc
*cltxktb*c lverta lt*c lcbpatEYc lpadt E 0*c lpad{t 0Yc lpadr 6 0Yc lpadlr SYce llx { I 4 7
+clix htb+c lverta lt*clcbpatBYc lpadt 6 0Yc lpadft 3Yc lpadr6 0Yc lpadfr 3*ee llxE I 1 ?

49

+c Itx htb+c lverta lt+clcbpat EYclpadt 6 [)Tc lpadfl $Tc lpadr 60Ye lpadfr i*cel lx I 2 4 5 0

52
53
54
55

Ypard*plain*intblYsb60*sa60*qlY{3*fs I SYcf l{Aee (year)}eell}
#pard*plain*intbl*sb60*sa6OYqlYl3*fs I SYcf l{NYcell}
YpardYplain*intblYsb60Ysa60*qc*{3*ls I 8*cl 1{1 00#eell}

56

l*rowl
YtrowdYtrkeep*trqc

57

Ycltx lrtb+c lverta lt+c lcbpat 8Yc lpadt 6 0*c lpadft 3*c lpadr 60*c lpadfr SSce I lx 4 I 4 7

58

+cltx ktb+c lverta lt+c lcbpat 8*c lpadt 6 0Yc lpadlt 3*c lpadr 6 0Yc lpadfr SYce I lx 6 I I 7
{cltx ktbYe lverta lt#e lebpatBYc lpadt 60*c lpadlt 3*c lpadr 6 04c lpadfr SYce I lx 1 2 { 50
YpardYplain{intbl$sb60Ysa60*qc*13*{s I S*cl 1l}cell}
TpardYplain*intbl*sb60Ysa60Yql*{3Yfs
I EIel 1{Mean*cell}

59
60
61

62
63

僻row]

選択 した箇所に年齢 の 平均値 である 602が 格納 されて い ることがわかる。 タグセ ッ トを扱 う場合 ,文 字列操
作 に 関す るプ ログラム を作成する必要 があるが,本 発表 で は詳細には言及 しない。
図 4:出 力 され た イ ンデ ン トを含 む ifフ ァイル

134

143.

Paramd∝ (unD‐ 梅 e〈 yearド Drug Al Descripuv● Statstcs一 (N=100)‐ N・ こ 100■ lulean- 60̲2■ SD― 111‑ 30■ Min‐ 1細 ednn‐ 62̲('■ ' Max‐ ■ 38 結果 を表示す る際 に,項 目に対 して ,イ ンデ ン トを挿入す る場合 が ある。今回 の検討 ではこのパ ター ン も考 慮 した。 3.提 案 す る方 法 貢fフ ァイ ル か ら docx形 式 へ の 変 換 ,docx形 式 の フ ァイル か ら SASデ ー タセ ッ ト化 まで の過程 を Python で処理す る。 (1)作 業環 境 のパ ス を指 定 す る。 検証対象 とな る ltfフ ァイ ル を指 定す る。 デ ー タ フ レーム及 び SASデ ー タセ ッ トで使用す る変 数 名 を リス ト形 式 で指 定す る。 SASデ ー タセ ッ トを出力す る場所 とデ ー タセ ッ ト名 を指定す る。 (2)Pythonで rtfフ ァイル を docx形 式 に変更 して保 存す る。 (3)docx形 式 の WOrdフ ァイ ル に含 まれ る表 の 数 を取得 し,表 中 の各 セル に含 まれ るデ ー タを取得 す る こ とを繰 り返す。 取得 したデー タはデ ー タ フ レーム に蓄積 され る。 (4)SASPYに よ り,SASを 起 動 し,デ ー タ フ レー ム を SASデ ー タセ ッ トに変換 し,指 定 した 出力 先 に 出力 す る。 SASデ ー タセ ッ トを得 てか らは ,空 白行や列 ヘ ッダ ー に相 当す る情 報 を削除す る等 の SASに よるデ ー タ 操 作 を行 う。 デ ー タ操 作 の後 で ,PROC COMttREを 行 う。 4.実 装 例 検討 の 際 に使 用 した IT環 境 を以 下 に示す 。 ― 項 目詳細 ハ ー ジ ョン OS VVindows 10 21H2 Software Python 3.7.1 Python Library ntllnpy 1.14.6 Python Library pandas 0.25.0 Python Library win32com 303 Python Library docx 0.2.4 Python Library saspy 3.7.4 項目 135

144.

ぽ フ ァイ ル か ら docx形 式 へ の 変換 ,docx形 式 の フ ァイル か ら SASデ ー タセ ッ ト化 まで の過 程 を Python で処理 を行 うプ ログラム を以 下 に示す 。 まず ,■ fフ ァイル や 出力先 の デ ー タセ ッ トで使用 す る変 数名 の設 定 を行 う。 プ ログラ ムの説 明 Pylhon Code #Program for single dataset 必要 な ライ ブ ラ リの呼び 出 し from glob import glob import re import os import win32com.client as win32 from win32com.client import constants import pandas as pd from docx import Document import saspy import pandas as pd from IPython.display import HTML Windowsで の Path指 定 の 際 に エ ス ケープ import unicodedata シー ケ ンス を無効 に して い る。 ile=貢 fフ ァイ ル の名 前 を指 定 path=cdirと フ ァイル名 を連 結 し, フ ァイ #use r to escapc ル が格 納 され てい る pa■ を取 得 #coding:utf‐ 8 ou"a■ =出 力先 を指 定 cdiF r'D:¥SAS̲User̲2022¥RttsamplesI dataset=出 力 す る docxフ ァイ ル と SAS ■le=lt dlnl.rtf デ ー タセ ッ ト名 path=OS・ ptth.jOin(Cdir,■ lC) collist=出 力 す るデ ー タ フ レー ムや SAS outpa■ =r'D:¥SAS̲Uscr̲2022¥Rtl̲samples' デー タセ ッ トで使用す る変 数 名 を リス ト dttaset=it dml: 形式 で指 定 collist=['PARAM',IITEM∵ VARF] 次 に,Pythonで 定義す る関数 部分 の説 明 を行 う。 136

145.

プ ロ グラ ムの説 明 Python Code 関数 を定義 def change_rtlto_sas_format(fi lelath,outpath,dataset, collist) : : win3 2. gencache.EnsureDispatch('Word.Application') Wordア プ リケー シ ョンで ■fフ ア word イル を開 く。 doc = word.Documents.Open(fi lejath) doc.Activate0 ぜ フ ァイル を docx形 式 で別 名保 存す る。ncw ilcあ sに は docx形 # Rename path with .docx 式 の フ ァイ ル が保 存 され て い る場 new_fi le_abs 所 が格 納 され てい る。 : os.path.abspath(fi lejath) new_file_abs : re.sub(rY.Yw+$','.docx', new_file_abs) # Save and Close word.ActiveDocument. SaveAs( new_file_abs, FileFormat=constants.wdFormatDocumentDefault ) docx形 式 の フ ァイ ル 中 に あ る表 の doc.Close(False) 数 を tめ lc countに 格 納 す る。 各表 リス ト形式 で取得す る。 : Document(new_fi1e_abs) table_count : len(document.tables) リス ト形式 のデ ー タ をデ ー タフ レ dflist=[] ー ム に変換す る。デ ー タ部 分 にイ for i in range(table_count): のセル に格納 され てい るデ ー タを ンデ ン トが挿入 され て い る場合 document table: document.tables Ii] , イ ンデ ン トを除去す る。 日本語デ ー タを解 析結果 に含 む 場 合 に data : [[unicodedata.normalize("NFKD",cel1.text) for cell in row.cellsl for row in table.rowsl は ,''NFKD"を "NFKC"に 変 更す df : pd.DataFrame(data,columns=collist) る。 dflist.append(df) 61 : pd.concat(dfl ist,ignore_index=True) SASを 開始す る。 Libnamcス テ ー トメ ン トで出力先 を指 定す る。 sas = saspy.SASsessionQ デ ー タフ レーム を SASデ ー タセ sas.saslib('OUT', path=outpath) ッ トに変換す る。 typeを 用 い るこ Result とで ,Jupメ er Notebookで デ ー タ type(Result) の確認 を行 う。 type(sas) : sas.df2sd(df, table:dataset,libreF OUT') change_rtlto_sas_format(path,outp 定義 した 関数 の 呼び 出 し 137 ath,dataset,collist)

146.
[beta]
以 下 に示す SASデ ー タセ ッ トを 難fフ ァイ ル か ら得 た。

Q unirraale rMpr.t-dm1
PARAM

笏
2

Aee (year)

Descr ipt iveStat ist ics

Drue

N

100

Mean

60.2

SD

I l.t

Min

s0

Median

62.0

Max

88

N=10

く65

30(30.0)

10

65く =― く 75

il

75く =

65(650)
5(50)

Aee, n (#J

12

13

Sex: n (S)

11

Female

55{550)
45(450)

Descr ipt iveStat ist ics

Drug A(N= 10〔 〕

Male

15

17

Parameter (Unit)

+一

SD

Median

158.25

23

Max

105.2

10

Heieht (cm)

N

100

19

Mean

20

15734
1032

Min

110.:

24

変換 した SASデ ー タセ ッ トを用 い て ,SASに よるデ ー タ操 作 を行 う。 デ ー タ操 作 は集計表 の 形 式 ご とに
異 な る こ とと,SASに よるデ ー タ操 作 の ほ うが慣 れ て い るた め ,デ ー タ操 作 部 分 を Python部 分 か ら分割 し
た。
プ ロ グラムの説 明

SAS Code

す べ ての列で空 白とな つてい る行

data T_D]rlI_lrlain;

や列 ヘ ッダー に相 当す る情報 を削

set lilAIN. T_D]I4I ;

除す る等の SASに よるデ ー タ操

if missing(cats(of _character_)) then delete
f PARAM = "Parameter (Un i t) " then de ete;

作 を行 う。

i

I

run;

data T-DMI-lrlain;
set T_D]tlI_]rlain;

retain PARAM2;

if PARAM ne "" then PARAil2 =PARA]rl;
drop PARAM;
run;

data T_DMI_]tlain;
set T_DMl_]tlain;
rename PARAM2 = PARAM;

run;

138

147.

これ らの デ ー タ操 作 の 後 で ,PROC COl唖 AREを 実 施 し,■ fか ら取 り込 ん だ SASデ ー タ セ ッ トと SASで 作 成 した SASデ ー タ セ ッ トが 同 じ結 果 とな る こ とを確 認 した 。 ││‖ PAREブ ロシジ ャ リIR‖ .T」 ‖1」 AINと EUB.T」 ‖1の 比較 (‖ ETHOD=RELATIで E(2.22E‑10), CRITER10‖ =0.□ 0□ 1〕 オ ブザ ペ ー シ ョンの要 絢 レポ ー ト OBS 基準 最 初 00日 3 最 後 の 088 1 20 比較 1 29 共通 Oオ ブザ ベ ー シ ョンの 数 :29 りORH.T」 Ml」 AIN力・ら読み 込 ん だオ ブザ ベ シ ョンの数 (合 計 〕 :20 3」 B.T」 Mlか ら読み込ん だ オ ブザ ペ ーシ ョンの 数 (合 計 〕 :20 比較変数 の うち どれか で等 し くないオ ブザ ベ ー シ ョンの数 す べ ての 比 較 変数が同等 な オ ブプ ベ ーシ ョンの 数 :29 :0 ‖OTE:下 等 な値 は あ り ませ ん 。比 較 した変 数 は す べ て同 等 で した 。 5。 留意す べ き点 chcp 65001を 使 用 す る と UTF‐ 8形 式 のダブル バ イ ト文 字 を コマ ン ドプ ロンプ トで扱 え る よ うにな る。 フ ァ イル パ ス に 日本 語 を含 む場合 ,こ の 操 作 が必要 とな る。 表 の構 成 や列 ヘ ッダー の名称 に よって必要 なデ ー タ 操 作 が異 な るた め ,本 発表 で提 案 した Pメ honプ ロ グ ラ ム は SASデ ー タセ ッ ト化 までの対応 に したほ うが , プ ロ グラムの 管 理 が容 易 であ る と思 われ る。 SASPYは SASラ イ セ ンスが存 在 す る環境 でのみ使 用 で き るの で ,SASラ イ セ ンス が プ ログ ラム 実行環境 に存在 しな い 場合 に は ,本 発 表 内容 を実装す る こ とはで きな い。 代 替案 として ,Pythonプ ログラ ム で CSVフ ァイ ル を生 成 し,SASを 用 いて CSVフ ァイ ル を SASデ ー タセ ッ トに変換す る方 法 が考 え られ る。 6.公 開 プ ロ グ ラ ム の 説 明 レ名 フ ァイァ 説明 compare_test.sas 仮想 的な解析 結 果 を用 いて ,■ fフ ァイ ル を作成 す る。 Comparcpyを 実 行 し,Jフ ァイ ル か ら SASデ ー タセ ッ トを取得す る。 そ の後 ,こ の プ ロ グラ ム で のデ ー タ操 作 を経 て ,■ fフ ァイ ル の 作成元 となった SASデ ー タセ ッ トと PROC C01唖 lAREに よる比較 を行 う。 compare_test_with_indent. sas 仮想的な解析結果 を用 いて ,イ ンデ ン トを用 いた rtfフ ァイル を作 成す る。それ以外 は ,compare tcst.sasと 同様 の動作 を行 う。 139

148.

■fフ ァイ ル か ら wom形 式 ,デ ー タ フ レー ム を経 て ,SASデ ー タセ Compare.py ッ トを取 得 す る。 このプ ロ グ ラ ム で SASデ ー タセ ッ トの 変数名 を指 定す る。 7.考 察 本発 表 内容 は,rtfフ ァイ ル に出力す る直前 の SASデ ー タセ ッ トを入 手 で きな い 状 況 で ,解 析 結 果 の妥 当 性 を確認 す る際 に役立 つ と思 われ る。 ifフ ァイ ル をデ ー タ操 作 しや す い形 に簡 単 に変換す る方 法 と して ,Python等 の他 の 言語 を使 用 す る こ と が候補 と して挙 げ られ る。 今 回 は SASデ ー タセ ッ ト間 の比 較 とい う方 法 を報告 した が ,デ ー タフ レー ム 間 の比 較 に も転 用 できる。他 の プ ロ グラム言 語 に 目を向ける と,簡 単 に解決 で き る可 能性 が あ るこ とを留意 し た い。 8.参 考 文 献 Control Utilityお r Chccking RTF Ou"ut lmmedittely (1)Michiel Hagendoorn,Savc Those Eyes:A Qualiサ ‐ and Accurately (2)Jay Zhou,2009,Importing Dtta'om Microso■ Word i前 o SAS 面 lizing Microsoi① (3)Ajay Gupt 2010,Impomng Data tom RTF Outputinto SAS① Acccss/Wod in an intriguing,eJicient way (4)Ben Bocchicchio,2021,Harncss analyticd s"cnghs:SAS,Rっ Pン thon Web SeⅣ ices (5)太 田裕 二 ,2017SASユ ー ザ ー 総 会 ,ODS機 能 と REPORTプ ロシ ジ ャ を 用 い た 解 析 帳 票 の 作 成 一 こ れ か ら業務 で利 用 を始 め る人 の た め に ― (6)塁 =El左 py堕鯉 立笙 k螢 堡三埜 壼■ o里 生 墜 stlons/ュ 堡:4墾 全42/聾 ュltiplC=塁 f受 ‐tO:dQ墜 ::真 19‑9pュ YttSiQ旦 」 重興 二 140

149.

き み は SASと Pythonを つ な ぐSASPyを 知 っ て い る か ? 〇坂 巻英 ‑1 小野潔 2 (1坂 巻総合研 究所 2株 式会社 イ ンテ ック) How to build an integrated development environment to execute Python code and SAS code on Jupyter Notebook - Introduction of SASpy module Name Yoshikazu Sakamaki / Kiyoshi Ono 要旨 デ ー タサ イ エ ンスの 普 及 に伴 い SASユ ー ザ の 多 くが Pythonユ ー ザ ヘ と移 行 しつ つ ある。 Python上 に は様 々 な モ ジ ュール が用 意 され てお り高 度 な分析 が 行 え る半 面 、 フ リー ウ ェ ア で あ るが故 に SASの Technical Supportの よ うな組織 が存在 せ ず 、 バ グが生 じた 際 に気軽 に質 問す る相 手 がいない 、 とい っ た状 況 が 発 生す るの も事 実 で ある。 そ のた め pythonを 使 用 しつつ も SASで 行 え る処理 に 関 して は使 い 慣 れ た SAS環 境 を使 用 した い 、 とい う SASユ ー ザ も多 い。 こ う した ニー ズ に応 え るた めに SAS社 で は Jupyter Notebook上 で Pythonと SASを 同時 に使 用す るこ とを可能 とす るモ ジュール で ある SASpyを 開発 した。本稿 で は SASpyの 概 要 につ いて説 明す る。そ の上 で 、online上 にお いて 無料 で使用 でき る SAS OnDemand for Academicsを 利 用 して環境構 築 を行 い 、 Jupyter Notebook上 か ら Pythonコ ー ドと SASコ ー ドを同時 に使 用す る方 法 につ いて 紹介す る こ とを 目 的 とす る。 +*7- i.^ : SASpy, SAS-KerneI, Jupyter Notebook, SAS 0nDemand for Academics 1.統 合 開発環境 Jupyter Notebookと は AIや 機 械 学習 が注 目を集 め る中、Rや Pythonと い った統計 解 析 を行 うた めの フ リー ソフ トに触 れ る機 会 が 増 えて きて い る。従 来 、 こ う した ソフ トウェ ア を使 用す る場合 、個 々の ソフ トウェ ア を PCヘ イ ンス トール す る必 要 が あ るが、 ソフ トウ ェ ア間でイ ン ター フ ェー スが異 な る、デ ー タの移 管 に時 間 が 掛 か る、 とい った 使 い難 さが あ り長 い 間課題 と され て きた。 こ うした課題 を改善す る こ とを 目的 と して 、2015年 頃 にデ ー タサイ エ ンテ ィス トが 日々 の業務 の 中で使 用 す る様 々 な ソフ トウ ェ ア を WEB上 で使 用 す る こ とを可 能 にす る統 合 開発 環 境 (Integrated Development Environment;IDE)が 開発 され た。 これ が Jupyter NOteboOkと 呼 ばれ る もので あ る。 141

150.

デ ー タサイ エ ンス にお いて使用 され る ソフ トウェア は 、それぞれ に長 所 と短 所 があ り必 要 な機 能 に応 じて 使 い 分 けた い と考 え る こ とも多 か っ た が 、統合 開発 環 境 の 登場 に よ リデ ー タサ イ エ ンテ ィ ス トは 肥 B上 の 同 一 ペ ー ジにお い て Rや Pythonと い った異 な る ソフ トウェ アで書 かれ た コー ドを作成す る こ とが可能 になっ た ので ある (Phillips(2019))。 そ の後 、2019年 頃 に SAS社 は Jupyter Notebook上 で SASコ ー ドを使 用 す る こ とを可能 にす るモ ジュール を開発 して リリー ス した。 これ が SASpyと 呼 ばれ る も の で あ る。 これ まで Jupyter Notebook上 で SASpyを 使 用 す る場合 、PCに SASが イ ンス トール され てい る必 要 が あ った。近年 で は条件 が緩 和 され 、SAS OnDemand for Academicsの ア カ ウ ン トをユ ー ザ が保 有 して さえいれ ば、 SASの ライ セ ンス を保 有 してお らず 、PCに SASが イ ンス トール され てい な い環境 で あ って も Jupyter Notebookか ら SASコ ー ドを作成 し、実行 す るこ とが可能 なお JupyteNotebookは GoogleColaboratory(Googleク ラ ウ ド)に も採 とな ったので あ る (Matise(2019))。 用 され てい るが SASPyは 残念 なが ら現 時点 では作動 で きな い状況 にあ る。 SASpyモ ジ ュー ル を ドライバ 代 わ りに使 用 した上 で SASと Pythonを 接続 したイ メー ジ 図 を図 1に 示す。 PR,0〔 ,HPSPHT… ; Rt'N; ly&on LST SASIり mydatrJtp!trti(...) .SAtt Settion LOG 図 l SASpyを 使 用 して SASと Pythonを 接続 したイ メ ー ジ図 l鸞0111韓 職簸 鐵y 1 本稿 では SAS社 が SAS OnDemand for Academicsに お い て公 開 してい る Jupyter Notebookの 使 用方法 、 並 び に、Midwest SAS Users Group 2021 Conferenceに お け る Matise(2019)の 報・ 告 を:基 │こ Jupyter Notebook上 で SASpyの 環境 を構 築 す る手順 につ い て説 明す る。 併 せ て 、構 築 され た環境 上 で SASコ ー ドが実行 可能 で あ る こ とを確認 した結 果 につ いて報告 す る。 2.Jupyter Notebookの 環 境 構 築 2‑lSAS OnDemand for Academicsの ア カ ウ ン ト取 得 環境構 築 に先 立 ち、 SAS OnDemand for Academicsが 使 用 で き るよ うに ア カ ウン トを取得 して お く必要が あ る。 SASOnDemandforAcademicsの Loginア カ ウ ン トは メール ア ドレスの形 式 とな つてい る。 登 録 したメール ア ドレス と PassWDを 後 の設 定で使 用 す るた めメモ してお く と良い。 図 2は SAS OnDemand for Academicsを 起動 した際 の 画 面 で ある。 上側 の枠 線 で 囲まれ た 部 分 をク リックす る こ とに よ り SAS Studioが 起動 して WEB上 で SAS Studioが 使用 で きる よ うに な る。 また、下側 の 枠 線 をク リックす る と環 境設 定 に必 要 な情報 が表示 され る。 下側 の枠線 を ク リックす るこ と に よ り表示 され る画 面 を図 3に 示す 。 1[出 典]SAS社 HP上 の資料 よ り抜粋 https://、 、へ●sas.cOmノ content/dam/SAS/support/en/sas‐ 〜 global‐ forum‐ proceedings/2019/3238 142

151.
[beta]
+

O

A

′ や め

O htoc,wel(ome.odass,.om/home

O」

金 Asiaお 昴 cl

ISSaS
SASO OnDemand for Academics

Dashboard
Pianned

EvenE

Not;ces

RefeBa@

EnEl!merc

畿

EgquentlyAsked O!e*ic
SAS OnDemandlorA@d

望墨豊量 」 L

W"e and run SAS code with a We卜 機 、
ed Sが.development en囀 =onment

Ouotas {learn more}

T

Hcme Directo'y (1 .2MB/5

bther Ways to Access 5456 OnDemand forAedemie Resources
PY、

L; 墜 gu基 勁 appli€tions to run SAS.

h" sas onoemand br Aodmie ho@i! eniiifien{lfpl{jiulEejSlens

図 2 SAS OnDemand for Academicsを 起 動 した際 の画 面

SOb=R

SSas
'_authlnro'

' CreatesscfgJxMnrl.rycontainingthefollordnginforrot'onbasedonyoirssO.DemandlarAcdemi6HemeRsgion
. Yo! en simply copy and paste he entirc code blo* below Ee sure lo u nc@ment ooly the iomhosl key tor your hore region You can bale Se others commenled ou or delete
N∝ E:bu頭 1lilev need to change the JAVA loca」

o■ (a

ron L

uX OF MacOS,the

would bs more like lusrlbi.rjava')

StS-conf g-nanes:['oda']

oda: i'Java' : 'C:YlProsra Flle6 {106)+}Cornon Fllesltoracle*}Javattjavapath**java.exB',
$lJS Hore necion l

'lomhost': ['odaus0l-us{2.oda.s6.con','oda{s02-usr2,oda.sas,co!','odarso3-usl2.oda.sas.con','odars!4-us{2.oda.sas,com']
tUS Hoie Resion 2

$'iorhost': ['odarsol-usiz-2.oda.sas.com','odauso2-us[2-2.oda.sas.con'],
lEu.opsan Hooe Rsslon I
S' ioiho6t'

: ['odars0l-eurl.oda.sas.coi','odarso2-eurl.oda.sas.con'],

t'lorhost':

['odarsol-apsel.oda,sas.cor','odelso2-apse].oda.3as.con'1,

SAsla Paclf ic Hone Resion 2

S'lonhost': ['oda{sol-apsel-2.oda.s6.con','odauso2-&se1-2.oda.sas.cor']
'lonport' : 8591 ,
'authkey'i rode',
'encoding':'utf-8'
)

Rrn S: tollowjng commands in yolr Py{hon command vrindowto getthe tull pabname d}frere ro save yer$scfglBrsonal.py file

図 3 下側 の枠線 をク リックす ることによ り表示 され る画面

2‑2JAVAの イ ンス トール
次 に ュ VAを PCに イ ンス トール す る。SASpyを 使 用 す るに当た り、最 新 版 の ユ VAが 必 要 にな るよ うで あ る。
本稿 では jdk‑18.0.2を イ ンス トー ル した上 で環 境 構 築 を行 った。 デ フ ォル ト設 定 に於 いて JAVAの イ ンス ト
ール 先 とな る pathは 以下 の通 りで あ る。 この後 の設 定でイ ンス トー ル 先 となる pathを 使用す るた め 、 JAVA
のイ ンス トール 先 とな る pathに つ い て もメモ してお くと良い。

[JAVAの イ ンス トール 先 ]
C:¥¥Program Files¥¥Java¥¥Jdk‑18.0.2¥

143

152.

2‑3 Pythonの イ ンス トー‐ ル Pythonに つ い て も最新版 の イ ンス トール を行 った。Anacondaを 使 用 す る とこの後 で行 う Jupyter Notebook の イ ンス トール 作業 を行 う必 要 が な くな るよ うで あ るが 、 ここでは Python3.10(現 時点 で の最 新版 )を 改 めて イ ンス トール した 。イ ンス トー ル 先 の pathは デ フ ォル ト設 定 で以 下 の よ うにな る。この後 の設 定 でイ ンス ト ール 先 とな る pathを 使用す るた め、 この pathに つ い て もメモ してお くと良 い。 [Python3.10の イ ンス トー ル 先 ] ーザ名 ¥AppData¥Local¥Programs¥Python¥Python310 C:¥Users¥ユ ー ール .ト ー 2‑4 Jupyter Notebook σ)イ )/ジス 次に Jupyter Notebookの イ ンス トール作業を行 う。インス トールは Python3.10を 起動 した上で、pipコ マ ン ドに よ り行 った。 [p:p ooimnd] pip install jupyter 2‑5 SASpyの イ ンス トール こ こで Python3.10に 対 して SASpyの イ ンス トー ル を行 う。イ ンス トー ル は以 下 の pipコ マ ン ドに よ り行 っ た。 [pip oominand] pip install saspy 2‑6 configフ ァ イ ル の 設 定 次に以下 の 2つ の環境 フ ァイル を構 築 し環境設 定 を行 う。 sascfg̲personal.py sascfg⊇ ersonal.pyを 以下 の手順 に より作成す る。 [手 順 1]図 3の 枠線で囲まれ た箇所 を全て コ ピー した上でメモ 帳 な どに貼 り付 ける。 [手 順 2]javaの イ ンス トール 先 に関す る path情 報 を[JAVAの イ ンス トール先]に 変更す る。 [手 順 3]Home Regionを Asia Pacificに 変更す る。 [手 順 4]フ ァイルの拡張子 を pyに 変更す る。 [修 正後の SaSCfg」 ersonalの イ メージ] ‑18」 0.2¥¥bin¥¥Java.exe' oda = {'j aYa' :' C:YYProgram FilesYY.JavaYY 」 ≦ 』 ≦ #Asia Pacific Home Region 1 ' iomhost' : l'odaws0l-aose1. oda. com',' odaws0?-apsel. oda. sas. com' ], 」 uthinfフ アイル の作成 [手 順 5]̲authinfと い う名 前 の フ ァイル を作成 し以 下 の 1行 を追記 す る。 oda user ********@************** password +++++++++++ ただ し´ ********@************** 十++++++++++ SAS OnDemand for Academics‐ で設:定 し.た LoginID SAS OnDemand for Academics K゛ 設 天Ёlン プこ PaSSWD である。 144

153.

2‑7 sascfg̲personal.py及 び̲authinfの 保 存 sascfg̲personal.py及 び̲authinfを 以 下 の フォル ダ に保 存す る。 sascfg=personal.py sascfg.pyが 保存 され ているフォル ダ と同一のフォル ダに格納す る。 なお、 このフォル ダは以下の方法 で検索することがで きる。 [検 索手順] Python上 で以下の コマ ン ドを実行す ることで sascfg.pyが 保存 され ているフォル ダを把握 す ることがで き る impOrt saspy lmport os print(saspy.̲file̲.replace('̲init̲.py', 'sascfg̲personal.py')) なお、デ フォル ト設 定では以 下 の フォル ダが設 定 され て い るよ うで あ る。 C:¥Users¥ユ ーーザ名 ¥AppData¥Local¥PrOgrams¥Python¥Python310¥Lib¥site― packages¥saspy ̲authinf C:¥Users¥ユ ー ザ名 2‑8 Jupyter Notebookの 起 動 これ らの環境構 築 終 了後、Python3.10の 実行環境 か ら以 下 の comandを 入力す るこ とに よ り、Jupyter Notebookを 起動す る。 なお Jupyter NOteboOkは WEB上 に表示 され る。 [oommand] PythOn ―m Jupyter Notebook Command実 行後に Jupyter Notebookが 起動 した状態 を図 4に 不す。 6 O lo.alhcsts8ri;/ir* ヽ。 一∝ A j Jrpyt", Files Rulning + も 藤 5議 Clusle6 *led itms to pedm adons on 6em uproad l"f*:2 .│● b 3● Ooc 3わ etC 図 4 Jupyter Notebookが 起動 した 状態 この状態で Python 3(ipykernel)(枠 線部分)を ク リックす ることでプ ログラム入力画面 を表示 させ る こ とができる。 2‑9 Jupyter Notebook上 で の SASの 環境構 築 Jupyter Notebook起 動後に以下のコマンドを実行することにより SASの 実行環境が構築できるようであ る。 145

154.
[beta]
[oomand]
sas = saspy.SASsession(cfgname=″ Oda″ )

Jupyter Noteb00kを 実行 した ところ以 下 の よ うな画面 が表 示 され SASが Jupyter Notebook上 で認識 され
てい る こ とが確認 で き る。

In[2]

:●

In i3]

sas-&is i on'.' saspy.SASsess i on {}

portl sas,y

Llsine SAS llonf ig named: oda

[At [onnection established. [ubprocess id is 2!l12
図 5 SASの 実行環境確認

3 SAS一 Python間 にお ける連 携 の 確認
こ こで SAS― Python間 でデ ー タの移 管 を行 うこ とに よ り、本 稿 で設 定 した SASpyが 正 しく機 能 してい るこ
とを確 認 す る。

3‑lSAS側 か ら DataFrame(pandas)へ の デ ー タ 移 管
まず 初 めに Pythonコ ー ドを用 いて SASの sashelpラ イ ブ ラ リにデ フォル トで保 存 され てい るデ ー タセ ッ
ト sashelp.carsを SAS OnDemand for Academics側 か ら抜 き出 し、嘔 B画 面 上 にデ ー タセ ッ トの 内容 を表示
させ た上 で 、pandasの DataFrameに 出力 し csv形 式 で Local環 境 に保存す る作 業 を行 ってみ る。 動 作確認 に
使用 した コー ドを以下 に添 付 す る。
[使 用 した Pythonコ ー ド]

■
mport pandas
cars E sas.sasdata(″ cars″ ,″ sashelp″ )
cars.head()
(コ ー ドの説 明)SAS

dataset名 =sas.sasdata(″ SAS dataset名

″
,″

″

SASラ イ ブ ラ リ名 )

In [3]: cars = sas.scdata("cars","s*help-)
cars.head 0

ake

ttOdd 'ype Ongin

0 AeE
S

̀o

=,10,0

2КO● ,

21,● ●

ndO「

S HOr"pORr m

̲Ci●

MPC̲H

hw"W● ●ht Wヽ eeibase Lonl●

2̀0

一
¨

蓼ea3m

鍋●

︻ 一
´

2 AaE
3 A@ra
4 A0E

RSX■

瞭 eTram MSRp 10vace EnOineS2e Cソ
〜
却

I 406

勘 紬 続餞続

lut[e]

221

図 6 DataFrame上 に あ る 「cars」 の 内容 を 嘔 B画 面 に表 示 させ た結果

こ こで 、 sashelpに 保 存 され ていたオ リジナル の SASデ ー タセ ッ ト carsと 区別 できるよ うに、 DataFrame
上 のデ ー タセ ッ ト「cars」 の 最 終列 に新 しい列 :「 NELCOL」 を追加 し、全 ての レ コー ドに 0を 設 定 してお く。
そ の上 で 、DataFrame上 の デ ー タセ ッ ト「cars」 を csv形 式 に変換 し、Local環 境 に保 存 してみ る。動作確認
に使 用 した コー ドを以 下 に添付す る。
[使 用 した Pythonコ ー ド]

df=cars.to̲df() #SAS dataset「 cars」

を pandasの DataFrameに 変換 しdfと 名 付 け る

146

155.
[beta]
df['NELCOL']=0

#DataFrame上 の 「cars」 に対 し最 終列 に 「肥 LCOL」

di to̲csv(″ C:¥Temp¥cars.csv″ )#DataFrame上 の 「cars」

を追加

を csv形 式 に変換 して Localに 保 存

コー ドの 実行 後、Windows上 の ライブ ラ リ 「C:¥Te呻 」 に保 存 され てい る 「cars.csv」 を開 きデ ー タの 中身
を確認 して み る。 「C:¥Te叩 」 に保 存 され て い るデ ー タセ ッ ト 「cars.csv」
自警
}R宇 ⊂E〉 日

F

タッ
チ

ベーシレイアウト

肇入

"=0・ I B r」 ・
・
ク ―卜 ●│
"'鷲

―

示する

記遣

‐

轟

v咤 ‐%,、
ヽ1
被イ
直

して 載
=≡ ロ セた̲̀合・

日

願畢

F骸

EF^ -

匡フ

ま 肇 ま 難 Jス 離
嘔│
なイル
│

8xe E€n-

│

一〇
W.

.

Ю¨
̀

Ю一
Ю

,,:̀0

1

Europe Ali

一5 一
1 1 ・
Ю

Europe F.ont

Sedan Europe Front

4 1
8 6
・2 ・3 一∞ 一2 ・2

,,̀),8

︐

̀01∞

m,6,

マ一
一

,

106

∝ 一

"0

・2
2
5
6
嚢一
魏・
螂一
・ユ一
4
3
3

',1'5

︲
1 一3● 0 ・5 .
o ま 一1
3
螂 一露 一2 一苅 ・
3

お

FⅢ t

R・

ρ

│

WheelbaS Lendn

9 お 2
2 ・

,nt

EneineS:2,Cylinders

螂節 一
a郷め.
加・
mm冽勿

lnvoice

郎 ︐● ■ *■
一

hMSRP

,κ l、 t

出

'▽

trL

0
011い ,●

ヽ・

A4 3.0 4dr

m

A41.8T co Sedan

.

A4 1.8T4cSedan

i
一S
A

NSX coup Sports

リ

"謗

一

3.5 RL w/lsedan

. ・ ●
a

3.5 RL 4drSdaf,

a
i 一
S 轟
A

A Acuta

Sedan

a
i
S
A

fL 4dr

ヘルプ

一

ISX 4dr Sedan

3 Acura

一﹄ ・焼

2 Acura

一 .

RSX Type Sedan

﹄
.

1 Acura

=

晩

子0●

が

表示

返して全
諄折り

時

フ
オ
ント

●1

校閲

=目 =)‐

vム ‐ [・ │≡ 曹 ≡

n
i

M

データ

感球

‐11‐ Aだ

壺ル タ
ク

=A,Oi

致式

載ケ
鉢冽

1高 」
墜

ネーム

Σ 団 0

4レ
フ
ア

の 内容 を図 7に 示す 。

図 7 デー タセ ッ ト「cars.csv」 の内容
デ ー タセ ッ トを Excelで 開 い て 内容 を確 認 した 結 果 、 最 終 列 に 「嘔 唯 COL」 が 新 しく追加 され て お り

DataFrame上 の デ ー タセ ッ ト「cars」 が正 し く Localに 保存 され た こ とが確認 で き る。

3‑2 DataFrame(pandas)か

ら SAS側 へ の デ ー タ 移 管

次 に DataFrame上 に 存 在 す るデ ー タセ ッ ト 「cars」 を関数 sas.df2sdを 使 用 して SAS OnDemand for

Academics上 に SAS形 式 で保 存す る作業 を行 っ て み る。
なお 、この 動 作確認 を行 うに 当た り、事前 に SAS OnDemand for Academics上 に新 しい ライ ブ ラ リ「MYDATAl」
を作成 して お き、保存先 の ライ ブ ラ リとして使 用 す ることとす る。 動作確認 に使 用 した コー ドを以 下 に添付
す る。 また Pythonコ ー ドを Jupyter Notebook上 で実行 した結 果 を図 8に 示す。
[使 用 した Pythonコ ー ド]

sas.saslib(libref='mydatal', path='/home/u60XXXXXX')
′
sas.df2sd(df,″ cars̲new′ ,″ MYDATAl″ )
(コ ー ドの説 明)

sas.saslib(libref='pathで 指 定 され た ライ ブ ラ リに付 け る ライ ブ ラ リ名 ', path=' SAS OnDemand for
Academics上 で個人 に割 り当て られ た識別番 号 ')
″

″

sas.df2sd(SAS側 に出力 した い DataFrame名 ,″ SAS側 のデ ー タ セ ッ ト名 ,″ 出力先 ライ ブ ラ リ名 )

147

156.
[beta]
III[20]:.sas.sas lll

‐

b(libref='m"attl',path='議 ome/u60035301')

sas.df2sd (df,tar3」 ew″ ,″ 購
VDATAl″ )

一 鍋
田冊硼 帥則

libnane mydatal

SASシ ステム

2022年 7月 28日 本曜 日 07時50分 00秒

SASシ ステム

2022年 7月 28日 本曜 日 07:部 0分 00秒

'/home/u60635331' ,

田
701
1ul〔 10]:

Llbref
Table

= IYDATAl
= cars new

Dsopt s ={}
Results = Pandas

図 8 Pythonコ ー ドを Jupyter Notebook上 で実行 した結 果

ここで SAS OnDemand for Academicsを 開き、 ライ ブ ラ リ :MYDATAlの 中に DataFrame上 のデー タセ ッ ト
「cars」 が SASデ ー タセ ッ ト「cars̲new」 として 出力 され てい る こ とを確 認 す る。 デ ー タ セ ッ トを確認 した
結果 を図 9に 示 す 。デ ー タセ ッ トを確 認 した結果 、最 終 列 に新 しい column「 配 LCOL」 が追加 され てお り、こ
の デ ー タセ ッ トが DataFrameに 由来 す る もので あ る こ とが確認 できる。
動 作確認 を行 っ た結果 、

1.SAS OnDemand for Academics上 の SASデ ー タセ ッ トを Python側 へ 移 動 し DataFrame形 式 に
変換 で き る こ と

2.DataFrame上 のデ ー タを csv形 式 に変換 で き る こ と
3.更 には DataFrame上 のデー タ を SAS ODemand for Academics側 へ 戻す ことが 可能 で あ る こ
と

4.こ れ らの 処 理 を Jupyter Notebookを 使 用 して 同 一 の 駆 B画 面 上 で実行 す る こ とが 可能 で あ
るこ と
を確認す る こ とが で きた。
OA&hftps//odrm6{ps€1.oda.*..om,/sAstudtoliah?rocale-latane=GM]s;t:8rytzslAqqakael=sr-1i7J3!-MQqkccrlcr&5rl6M5-csA'6*Gt,..t}

o o o SASプ ログラマ 00

sAsG Studi,

〉サーバーフアイルとファ,レタ

昇 'teま ̲20220106×

)タ スクとユーティリティ

ビュー

̀

夕名 ‐
lサ

目

MYOA■ ▲

̀MiSAS̲DATAS「

Qユ t, 日 ,C
0

露

轟

ζ

満

̀428合

計列数116

すべて選択

●
●●゛
'

● ̀D「 │【 TO・

│

日 o MSR。

̀鬱 MVDATAl

回亜菫亘
MV̲韓 S̲DATAS師

=コ

● 01・ V。 IC
● oE^9i、 eSi=e
ブロ八ティ
前
ラ 名

薇

こ 黛
長 種

,日 WEEヽ VORК
,罰 WORく

・
マフイルタ│(な し

● △ O=0「

〉目I MVDATA

IJ"PSAMP

D「 A'C'ヽ ̲ヽ 二WX

● △ Type

IJ'MAPSSAS

,日 SASDATA
,静 S● 5HELP
,評 SASuSER

:^′

● OM。 lel

̀つ

′J,マ イラインラリ
,ぎ Mへ 。
S
,齢 MAPSGFK

〉霊

議

● △ M8ke

田

,塵 はTEST

合計行数

X

図 9 SAS OnDemand for Academics側 で 「cars̲new」

148

の 内容 を確認 した結 果

サインアウト

157.

4 Jupyter Notebook上 で の SASコ ー ドの 実行 ここで 、Jupyter Notebook上 で SASコ ー ドを実行 す る方法 につ いて 説 明す る。 これ まで SAS OnDemand for Academicsで SASを 実行 す るた めには SAS Studio上 で SASコ ー ドを記述 す る 必 要 があった。 本 稿 で紹介 した方 法 に よ り Jupyter Notebook上 で環 境設 定 を行 うこ とに よ り、Pythonコ ー ドを作成す る画 面 と同一 の画面上 で SASコ ー ドを作成 し、SAS OnDemand for Academics側 の SASデ ー タセ ッ トに対 して分析 や デ ー タ加 工 を行 うこ とが可能 とな る。 本稿 では例 と して 、先 に作成 した SASデ ー タセ ッ トmydatal.cars̲newに 対 して meansプ ロシー ジ ャを用 い て基礎統計 量 を算 出 した結果 を紹 介 す る。動作確認 に使 用 した コー ドを以 下 に添付す る。また Pythonコ ー ド を Jupyter Notebook上 で実行 した結 果 を図 10に 示 す。 [使 用 した Pythonコ ー ド] sas,submitLST(″ ″″ proc means data = mydatal.CARS̲NEW ; run; ″″″ , method='listorlog') (コ ー ドの説 明) Jupyter Notebookか ら SASコ ー ドを実行す る場合 、 sas.submitLST関 数 を用 いて 以 下 の よ うな コー ドを作 成 す る必要 が あ る。 ″″ sas.submitLST(″ ここに SASコ ー ドを記載 ※ ″″″ , ″″″ method='listorlog') (ダ ブル クォ ー テ ー シ ョン)を 3つ 繋 げて書 く必 要 が あ る 111[:]1: sas.submittST(″ … Ⅲl oc meall=:lュ ta t iヴ 131.1.Cl` lS」 ET: ″″ , method=・ li3to「 IⅢ ') SASシ ステム MEA卜 Sプ ロシジャ ■ ﹁= コー= 変数 手 │ 覆 準偏 差 爆:′]ヽ ,直 最 大値 . ̀瘍 ‖PC̲Citソ 図 10 mydatal.cars̲newに 対 して meansプ ロ シー ジ ャを用 い て基礎 統計量 を算 出 した結果 また図 11は data stepと macroを 組 み合 わせ た SASコ ー ドを Jupyter Notebook上 で 作成 した例 で あ る。 コー ドを実行 した結 果 、SAS OnDemand for Academics側 に meansプ ロシ ー ジ ャを実行 した結果 生成 され る outputフ ァイ ル が正 しく出力 され て お り、data step、 proc step、 macroプ ログラ ム にお いて SASpyが 正 し く機 能す る こ とが確 認 された。 149

158.
[beta]
SASe StudiO

[trE L/= SAS =- F]

〉サーパーファイルとフォルダ

sas.submitLST(""

)タ スクとユーティリティ

%omacro main(xvar);

│ス ニベット

data test l

▼ ライプラリ

set mydatal.cars-new ( keep = &xvar.) ;

目

run;

イライプラリ
̀ぎ ,マ

ざ

目 1,

市

>き APS
,訴

proc means data = test i

,日9'.'APSGFK
I暮 ]腋 APSSAS

var &xvar. i

I□ 露YDATA
尋 財YOくTA l

output out = out_&xvar. i

>目 CARS̲NEW

runi
>ロヨOUT̲ENGINESIZE

%mend main i

,日 OULINゞ 01CE

%main(MSRP);

TES

%main(Invoice);

1畠 ,SASDATA

〉」 SASHELP
レg SASuSER

%main(Enginesize) ;

,劇p STPSAMP

rntr, method='listorlog')

,フ ァイんシヨートカット

図 1l data stepと macroを 組 み合 わせ た SASコ ー ドを Jupyter Notebook上 で作成 した例

5結 論
本稿 で は Python環 境 か ら SASコ ー ドを実行 す るた めのモ ジ ュール で ある SASpyの 紹介 を行 った 。環境構 築
を行 い Jupyter Notebook上 か ら コー ドを実行 す る こ とで、 同 一 の WEB画 面上 で pythonコ ー ドに よ り SAS側
のデ ー タ セ ッ トを閲 覧 で き る こ と、Pandas上 で DataFrameの 形 にな ってい るデ ー タ を SAS形 式 のデ ー タセ ッ
トに変換 し SAS側 へ移 管す る こ とが可能 で あ る こ と、pythonコ ー ドの開発画 面 か ら SASコ ー ドを実行 す るこ
とが可能 で あ る こと、等 を報 告 した。 そ の上 で 、実 際 に Jupyter Notebook上 で Pythonや SASを 用 い て作成
した コー ドを実行す る こ とで 、 SAS― Python間 で 相 互 にデ ー タ を移 管 できる こ とを確 認 した。

AIや 機 械 学 習 の普及 に よ り pythonユ ー ザ は年 々増加 す る傾 向 に あ る。 一 方 で 、古 くか らの SASユ ー ザ の
中には pythonで しかで きな い こ とは pythonに 委 ね 、デ ー タ加 工 等 の 基本的 なオ ペ レー シ ョンに 関 して は SAS
コー ドで処 理 す る、 とい うよ うに ツール を使 い 分 けた い 、 と考 えて い るユ ー ザ も多 い のが 現状 で あ る。
本稿 で紹 介 した開発 環 境 を利 用す ることに よ り、 こ うした 分 析 ツ ール の使 い 分 けが可能 とな り SASユ ー ザ
の利便性 が高 ま る と期待 で き る。
本稿 で 紹 介 した SASpyに 関す る知見が SASユ ー ザ に とって 分 析 業務 を行 う上 で の一 助 となれ ば幸 い で あ る。

参考文 献

1. J. Phillips(2019), A Complete Introduction to SASPy and Jupyter Notebooks, paper.3238-2019
https:/,/www. sas. comlcontent/dan/SAS/support/enlsas-g1oba1-forum-proceedines/2019/32382019. pdf

2. J. Matise(2019), Connecting to Datasets through Python and SASo, Midwest SAS Users Group MWSUG
2021 Confererce, Paper 47-2019

https : /,/www. mwsug. orglproceedings/2019/ALIMWSUG-2019-AL-047.

150

pdf

159.

SASシ ステム/人 三二 知能 O Al

161.

きみは正 し く少数デ ー タを判別 してい るか ? 〜機械学習 に よる不均 衡 デ ー タの理 論体系 〜 o小 野 潔 1、 坂 巻 英 一 (1株 式 会 社 イ ン テ ック ) Theoretical System ofMachme Leamingお rlmbalanced Da● Kiyoshi Ono/1NTEC Inc. Yoshikazu Sakalnaki 要旨 不均衡 デ ー タ (Imblaced Data)は 、 ターゲ ッ ト変数 の負事例 が極端 に少ないデ ータの ことで あ る。 そのためモ デ ル の評価 は従 来 の指標 では正 しく判別 で きない。従来 の指標 であ る Fl値 、ROC曲 線、 AUC値 ではモデルの評価 に不適 であ る。不均衡 デ ー タ分析では F2値 、PF曲 線、Recall値 を利用す る。 不均衡 デ ータの理論 は、不均衡 デ ータの理論体 系 は① Data― Level ApprOach、 ② Ensemble Learning Approach、 (3)Machine Learning ApprOach、 ④ Cost― sensitive Learning ApprOach、 Anomaly ApprOach、 ⑤ Deep Learning ⑥ CalibratiOnに 大別 され る。 ① は Over― sampling,Under― samplingに 分 け られ る。前者は少数 クラスを Over― Samphngし 、後者は多数 クラスを Under― Samplingす る。④ は少数 クラ スを誤判別 した場合に、高 コス トのペナルティを発生 させる。⑤ は進歩が目覚ましい深層学習を利用 し た異常検知やデ ータ生成である。 実務 で よ く使 わ れ る手法 は Over‐ Samplingの COst― sensitive Learningで あ る。 SMOTE、 少数 デ ー タの誤分類 に重 い ペ ナ ル テ ィ課 す SASの SMOTE利 用 には、 Score Cardの ライセ ンス が必 要 で あ るた め、 一 般 SASユ ーザ ー は SASで 自主 開発 す る こ とが 多 い。多数 の 不 均衡 デ ー タのサ ンプ リングや分 類 器 は Pメ honの ライ ブラ リimbalanced■ earningに 含 まれ る。そ こで SASPyを 利用 して JupyterNOtebOok か ら SAS On Demandお r Academics for Academicsの SASデ ー タ セ ッ トを取 り込 み、 Python機 械 学 習 で不均 衡 デ ー タ分析 を試 みた。 実例 は筆者 の 中小企業 の与信 モ デル を紹介す る。不均衡データの分析戦略は、①Under― Sampling でターゲットを正事例 :負 事例 =111の サ ンプ リングを行い、②分類器は RandOm― Forestを 採用 し、③ 倒産確率 はモデルの確信度を事前分布でベイズ更新 して求めた。 AI業 界 では、2020年 以降、与信モデルのオル タナテイブデータ (代 用データ)を 利用 した与信モデ ル構築が注 目を集めている。オルタナティブデータは不均衡なケースが多 く、与信 モデルに利用す るに は工夫が必要 である。最近では深層学習を用いた異常検知、データ生成 の利用が試みられた。 キ ー ワ ー ド :不 均 衡 デ ー タ F2値 imblaced I)ata オ ー バ ー サ ンプ リ ン グ F2 score()ver― Sampling 153 ア ンダ ー サ ン プ リ ン グ SMOTE SASPy Under― Sampling SMC)TE inbalanced― learning

162.

1 はじめに 不均衡 デ ータの分析 は、均衡デー タのモ デル評価 と違 うので、最初 に評価 指標 を説明す る。次 に不均衡 デー タの理論 は無数 にあ るので、本報告 で は代表理論 を説明す る。SASの 不均衡 デー タの取 り扱 いについ て、 SAS Global Forumの 論文 を紹介す る。事例 は、筆者 が過去 に発表 した Ono Modelを 不均衡 データの 観点 か ら解説す る。最 後 に最近流行 のオル タナテ ィブデータデータを言及す る。 な お 本 報告 は不均衡 デ ー タの 2値 判 別 問題 を対象 と し、 多値判別 は対 象 に しない。 また SASPyの 利 用法 プ ログラムは共同発表者 の坂巻が別 に発表す る。 1.1 実務 の不均衡データ 不均衡 データ (Imblaced Data)と はターグ ット変数 の負事例 が極端 に少 な いデ ータの ことで あ る。多 くの実務 デ ータは不均衡 デ ータで あ る。 例 えば不正 ・詐欺 の検 出、機器製造 ・ 検査、病理数 が少 な い医 療診 断、 中小企業倒産 な どは負事例 の少数 クラスの正 しい分類 が大 きな価値 を持 つ。 金 融業 では最小限 300個 以上 の負事例 (倒 産数)が な い と、安定 モ デル を作 れない。例 えば中小企業 融資 の倒産率 がわずか 0.1〜 0.5%と い うことが ある。 このデータをモ デル化 した場合、2分 割 (分 岐)の 決 定木 で は、第五層 2料 5=32ノ ー ド、第六層 2**6=64ノ ー ドが有す ると、 第 五層 の 1ノ ー ドに合 まれ る 負事例 は平均 300÷ 32■ 10個 、第六層 約 5個 になる。 しか し第七層 にな る と 1ノ ー ドに負事例 が 3個 未 満 に な り、信頼性 が著 し く低下す る。 もち ろん決定木 のアル ゴ リズムで ノー ドに含 まれ る負事例 の個数 を偏 らせ るのだが、 負事例 300個 では第七層以下 でオーバ ー フィッチ ングが 予想 され る。 倒産率 0.1%、 負事例 300件 か ら母集 団 を推定す ると、総融資件数 は 30万 件 になる。 この件数 は実務 の 中小企業融資では′ヽ― ドルが高 い。 また新規事業立上 げでは実務 データが わずか 2年 しか な く、倒産 件数 が数十件、倒産 の定義 を拡張 して も 50件 に満たない場合 は不均衡 デ ー タ分析 が欠かせ な い。 2 指標 2.1 不均衡データの分布 不均衡 はデー タに依存 す るため、明確 な定義がない。 一般 に Imbalance ratiO=30%未 満 で不均衡 デー タ と言 えるが、筆者 は Imbalance ratioが 10%未 満 な らば、不均衡デー タの分析 を考慮す る。 imb。 :anCe ra‖ 。=傷 欝静器 少 数 事 象 の分布 が 、 判 別 へ影 響 を与 え る要 因 は、 ク ラス 分離 可能性 、 ク ラ ス 内 のサ ブ ク ラス タが あ る。 図 1の 不均衡 デ ー タ の分 布 な らば線 形 判 別 可能 であ る。 実 際 の分布 は図 2,図 3が 多 い。 図 2は クラス の 分 離 性 (Class separability)と い い 、 ク ラス間 のパ ター ンが重 な る と、 ル ール 発見 が難 し くな る。 図 3は ク ラス 内 のサ ブ ク ラス タ(Within class sub― clusters)と い い、 1つ の ク ラスが複数 のサ ブ ク ラス タか ら構 成 され てい る。 これ らのサ ブ ク ラ ス タ は,同 数 を合 む とは限 らず、 サ ブ ク ラス間 の ク ラス分布 が不 均 衡 を生 じさせ 、 ク ラ ス の分離境界 を見 つ け る ことを困難 にす る │ ̀ヽ clos 00 0 ・ ぶ。 曲 珊 図 1不 均衡 デ ー タの分 布 図2 o● 0■ ●0 ヨ●▼ 1環 Ooss クラスの分 離性 154 ● ●● ● M● ori"00 図 3 クラス 間 の サ ブ クラス タ

163.

2.2 0onfusion Matrix&Metrics(指 標 )の まとめ Conhsion Matrixお よびその数値 を利用 した指標 は表 1&2に ま とめ る。 Modei Predict TN : Tlue Negatives FP : False Positives Negative Positive Negative TN FP Positive FN TP FN : False Negatives TP : Tlue Posifives Actual 表 l Confusion Matrix 一般向 き 計算式 指標 (TP+TN) Accuracy /(TP+TN+FP+Fn) 和 名計算式 Modelの 予想の総正解数 / 全総数 / 現実の総Posive数 TP rate 真 陽性 率 TP/(TP十 FN) Modelの Posive予 想の正解数 TN rate 真陰性率 TN/(TN■ FP) Modelの Negative予 想の正解数/ TP/(IP+FP) Modelの Posive予 想 の正 解 数 NP volue TN/(TN+FN) Modelの Negat市 e予 想の正解数/ Modelの 総Negative傷 FP rate 偽陽性率 FP/(FP+TN) Modelの Pos市 e予 想の誤数 偽陰性率 FN/(FN+TP) Modelの Negati 和名 Accuracy 正確度 Recall 再現度 Sensitivity 現実の総Negative数 PP volue FN rate 英名 感 度 真 陰性 率 , Modelの 総 Posmve数 Precision 精度 適合 率 有効なクラス ROC軸 Minority Class O 不 均衡 向 き O Maiority Class O Minority Class Maiority Class / 現実の総Nagative総 数 ○ 予想の誤数 / 現実の総Pos‖ ve総 数 偽陰性率 表 2各 種 指標 確率 モ デルの閾値 (threshold)は あ る確 率以上 であれ ば 正事例 として分類 で き、逆 にあ る確率未満 であ れ ば負事例 と判定す る。表 2の 全指標 は確 率 モ デルの閾値 と依存 関係 にある(図 4)。 閾値 が依存 関係 がある が変更 され る。 モ デルの指標 に使 われ る Accuray、 Precision、 場合、 閾値 を動 かす と指標 measureは 閾値 と依存 関係 があ る。それ に対 して、ROC曲 線 、 ROC― AUC、 Recall、 F― Precision― Recall曲 線、PR― AUCは 閾値 と関係 な く独立 してい る。なお機械学習 の確率 モ デル の閾値 は、Precisionと Recallの 調和平均 である Flが 最 も高 くな る値 が最適 な閾値 とな る。 independent ofthe PrObabHity 「 hreshold Metrics PGcision-Relail Curye5 ACCOraw the pre● sion,R∝ att',core Threshold coofusion Matrix F'R FNR ,fibalaoce Accu.qy 図 4各 種 指 標 と確率 モ デ ル の 閾値 の関係 23 ROC曲 線 と PR曲 線 ROC(Recei宙 ng Opertting Charactenstic)曲 線 は 、分類器 が正 事例 と負事例 の分離性 の評価 に使 われ る。閾値 を動 か して、縦軸 TPrate(再 現性、Recan)、 横軸 FPrate(偽 陽性)を 表現 した ものであ る。 モ デル評価 に用 い る ROC― AUCは ROC曲 線 の下 で の面積 で定義 され る。均衡デー タで は ROC‐ AUCが 高 いほ ど、 そのモ デル は両 クラス の予測 に優 れて い る。 155

164.

Precision― Recall曲 線 は Precisionと Recallの 曲線 で あ り、少数 ク ラス の判別 に使 わ れ る。Recallを 横 軸 に、 PrecisiOnを 縦軸 に して 、 上 位 の値 か ら順 に折 れ線 で 描 く。 PR曲 線 を構 成 す る PrecisOn= TP/(TP+FP)と Recall=TP/(TP+FN)は 、少数 ク ラス の TP数 を分 子 とす る比率 で あ り、構 成要素 に多 数 クラス の TNが 含 まれな い。 そ の ため少数 ク ラス の 判別 に向 く。 言 い換 え る と ROCは 「負事例 を負事例 と、正 事 例 を正事例 と両 者 が正 しく予測 す る こ と」 を評価 す る。 それ に対 して PRは 「 負事例 を負事例 と正 し く予 測 す る こと」 の み を評価 す る。 そ して不均衡 デ ー タの場合、 多数 ク ラスの正事例 を正 事例 と予測 す る こ とは容易 で あ る。 ROCが 負事例 を負事例 と予測 で きな くとも、 大 多数 の正 事例 を正 事例 と予測 す るモ デ ル は ROC‐ AUC値 が高 くな る。 一 方 で、PR― AUCは 負事 例 を負事例 と予測 す る こ とのみ を評 価 とす るため、正 し く正 事例 を正事 例 と予測 して も全 く評価 しな い 。 不 均衡 デ ー タ分析 で は少数 ク ラス の 負 事例 を正 し く予測 す る ことが 重 要 の た め、ROC― AUCよ りも PR― AUCが 評価 指標 と して適切 で あ る。 PR曲 線 は歪 ん だ分布 を持 つ 不 均 衡 デ ー タ に対 して 、 ROC曲 線 に比 べ て判別力 あ る。 ただ し少数 ク ラスが僅 か しか な い場合、 PR曲 線 は ジ グザ グな折 れ 線 グ ラフにな る。 わず か な正解数 の 相 違 で、PR曲 線 が大 き く変 化 す るので、 モ デ ル の 判別 力 を比 較 す る ときは、 PR― AUC値 の みで は決 め るのでな く、 他 の指標 と共 に総合 的 に判 断す る。 a l a:ROC図 b:PR図 ̀ 08 00 04 赤線 (実 線 )が 青線 (点 線)よ 02 0 02 04 0お 0.0 1 0 り判別力 が大 きなモデル 0 04 02 FPR 06 08 1 Reca‖ 図 5 ROC曲 線 と PR曲 線 2.4 その他の指標 F-measure Geometric Mean Dominance IBA(M) 島= C― (l + il)?. rc*ril. re*irmr ra拗 ″ キFed゛ :鍼 ヂ・ ‐ ヾ長 年 Xギ 為 ‐ v編 而 萬 西 両 Donlinace=.TPR― TNR=Recall― TNR lBAo(lt/) : (1 + a x Dominace) lVl 表 3 その他指標 =1)の ケースであ り、Flは Precisionと Recallの 調和平均である。不均衡データ分析 では (β =2)を 代入 し、Reca11に F‐ measureは モデル比較 に使われる指標 である。Flス コアはF― measureの 重みを置 くF2を 利用する。 156 (β

165.

3 3.l Calibration Probability Calibration Calibration(較 正 )は 、 モ デ ル の 出力確率 (確 信 度 )を 各 クラス に属 す る確 率 に補 正 す る ことを指 す。 判別性 能 が 高 いモ デル (Label判 定 が良 いモ デ ル )で も、Calibrationが 悪 い こ とが あ る。例 えばモ デ ル が確率 99%で 倒産 イベ ン トが起 こる と予想 した が 、 そ の企業 の倒 産 イベ ン トの発 生確 率 が 80%で あれ ば うま く倒 産 確 率 を算 出 して い な い ことにな る。 Calibrationは 分 類 器 の事後確 率 を適切 に調整 され た 推定値 を補 正 す る。 Calibration curveは 、予 測 確 率 と実際 の確 率 が一致具合 を示 す。分類 器 に よ り Calibration cuⅣ eに 特定 の歪 みが あ る。 ロジス テ イ ック回帰の Calibrationは クラス ご とのス コアが正 規 分布 す るよ うに設 計 されて い る。 対 して Naive Bayesや Adaboostを 含 む多 くの分 類 器 のス コア分 布 が大 き く歪 んで い る。 つ ま り分類 器 によ りCalibrationが 必要 に な る。確 率的予測 の較正 を実行 す るた めの 2つ のア プ ロ ー チ、 パ ラメ トリックアプ ロー チお よびアイ ソ トニ ック回帰 (suearn.isotonic)に 基 づ くノ ンパ ラメ ト リックア プ ロー チがあ る。 HE : scikt-learn / / / https://scikitlearn. org/stable/modules,/calibration.html / ノ + side(6(cr(e 図 6 各種分類 器 の Calibration CuⅣ e 3.2 Brier Score(ブ ライア ス コア ) Brier Scoreは データの確率推定値 の精度 を測 る指標 である。観測 ラベル と予測 された確率の二乗差 の平均値 の総和 で算出す る。 クレジ ットス コアで は、正常/延 滞 の ラベル予測 のほか に、何 %で 延滞 す るのかを予測 す る必要があ る。 その確率が正 しけれ ば、延滞確率 に見合 う融資金額 や利率、ポー トフォ リオでの許容 アセ ットな どを、 リス クコン トロールができる。 したが って与信 モ デルで は Brier Score は必要 にな る。 繊率予測 した値 とラベリ ス0′ 1)と の二乗誤差の平均。 ■ ″ Bs=土2笹 、1(嘉 ̲a)2 「 ・ 二:予 測された確率 00̀:実 際に鐘こつたか(∈ {0,1}) 157

166.
[beta]
4 分析 手法
4.1 不均衡データの機械学習体系
不均衡データの理論体系は①Data― Level Approach、 ②Ensemble learning Approach、 ③Machine
Learning ApprOach、 ④ COst― sensitive Learning Approach、

⑤ Deep Learning Approach、

⑥ Cahbration

に大別 される。①は Over― sampling,Under― samplingに 分けられる。前者は少数クラスを Over‐

Samphngし 、後者は多数 クラスをUnder― Samplingす る。④ は少数 クラスを誤判別 した場合に、高 コ
ス トのペナルティを発生させる。⑤は進歩が目覚ましい深層学習を利用 した異常検知やデータ生成であ
る。⑥Calibrationは モデルの出力値を実際の確率に補正するプロセスを指す。
itrcoe
少勤ウラスのデ■ を1や す6MOIT=,
‐ Sy摯金∝で蒻in。 ア
詢 ,機 gT

∝● 輌

,OVe●

'ng

■ 運傍にあるデ‐夕を増やす・

ヽ 0● e
1菫

l画面≡iTHI咆 閣
Urle€.Eirt

多数ウラスのデ‐夕を週らす 。

粋prtth

学習分類鰤

大

● boing
ひ
̀,e■

uica‐
‐
「====● =‐ 3

嘔 :Ne」 鋤′R磯

sed N

Co・ id

NN)

Ns Ui$ i,hCeGrp,int
b=踏 ヽLhtt undを い,メ ing
N餞 摯s Net蒻

Edl

│れ

難o(繁 籍
;

"饉

Or華 ISt磯 勢│に 0■ (OSSi

響

Nc‐

肇‐
olol G機 ,ing詭 ●(ヽ 織

)

3rggng Raaarm fu.:rs
AI● 3o,

│、

130職 e

│
S'VI、

‐ジョ
奎
標鶴
殉♭
」リズムの修期
日ヽ
ン

機械学習の不均衡
デー校.(D理 論体系

M構

小iⅢ llearttApp菫,a●

1

決定本

:^̀

,、 'C●
I

mbrlar ced icg.€ssorTt50it-Its$

=^

時系列デ‐夕対応S■ 0■ R

少数データ0誤 分類に重 ,バ ナルティ
を調す損矢関数
コストセ:″ ティ
リ学習
Co6t{enstive Leming Approach

Cls-re€?iive 9
Co● Sen

j

力eLo3S:に 驚 輌:SIlon 鶯
ei:「

Calrs€nsiireoicbionLe
ム●
oロ ョ
ッDete● oぅ AOγO工 ■ ̲
` 敬師なし =
異鸞 柳 型7'D■

綺

=oこ

鷲

t

er

致師おリ ー 蓼数あり

鍵e,難 ざ囃 AP,髯

働

生成深層学習
;

:

化学習聖フフB‐ チ

p●

5詢 lⅢ Q鮨

=on

i

t,、

J編

■,,壼殿 盟 卑 鰹 聖

=「

E)、

,

フル」リ
ズムに基づ て事前分布議 定し
つつ事後分布携 正する手法
6ヽ

図 7 機械 学 習 の不均衡 デ ー タの理 論体 系

158

167.
[beta]
42 モデル構築手順 の概 略
不均衡 データのモ デル構築手順 は基 本的 に均衡デ ー タのモ デル構築 と同 じである。デー タ準備 はデ
ータ ク リーニ ング、加 エ デ ータの生成 、 カテ ゴ リデータの WOE変 換 1を 行 う。サ ンプ リ ングす る場合
は Under― Samplingも しくは Over― Samphngを 選択 し、分析 データを準備 す る。
分類器選択 では、機械 学習系、Ensemble学 習、深層 学 習、Cost‐ Sensitive学 習 があ る。次 にモデル
評価 を行 うが通常利用 す る指標 と異 な る指標 を採用す る。 モ デル を決定 すれ ば k‐ おldク ロスバ リデ ーシ
ョンを行 う2。 モ デル の精度 を向上 させ るため、 このすべ ての工程 を繰 り返 す。最後 にもし Label判 定
だ けでな く、発生確率 も必要ならば、事後確率 を補正 し、実際 の確率 に近 づ ける。重要点 は不均 衡デー
タの分析 はデー タに依 存 す るため、最適理論 を求めるに は多 くの手法 を試行 錯誤す るしかな い。
なお本報告では この章 の「モデル構築手順 の概略」 に基 づ き説明す る。

Dea Clc.ning

Data Preparation

Wα 〈Weに ∝ Evi機 にe)

Ufld<-Sampling
Data S議

8

pl:喩

Ovs-Sanpling
Lo8,玉 lc

D<ision Tr€
種 撻 学習
,臀蒻

Baggiag

εosen■ ●e

爾Oo気 森g

分 類器選択

Coi Senrtiv!

不均 衡 デー
「夕の
モ秀 レ構 築 手 順

Regr6sioa

Con Seisi:ive Decision T.e
Aぃ 、
季Encoder

深 層 学習

デ‐
惨生成
深層強 化 学習
撃
薔 ︲ ︐ ︲
.
.
....
.
.
.
.
.
.
.
.

pRC
F2
R● ●
●,

適サ慮指標によるモデル 退難瞑

ンは 戸 鍼ン

1

IBべ M)

Erig Score
k―

お!dク ロスパリ
デ シ黎
ンの藩別鰺品が継g
「
Calibratお n

事 後 確率の補 正

ベイズ更新

=

麟 ■ ″饉
で
″名な議‐
参=鶴=薄
疇鰺
"レ

図 8 不均衡 デー タのモ デ ル構築手順

l Weight of Evidence:カ テ ゴ リデ ータを数値 へ変換 す る統計学の手法 。
2こ の ときデータの拡張

(縮 小 )は 学習デー タにのみ を行 い、検証 デー タ、 テス トデー タに対 してはデータ拡張 を行わ

ない。 つ ま りtrain̲testspht後 に trainに のみ にデータ拡張 を行 う。 ダ ミーデータで評価 す る ことを避 け、実際 デ ータ
の比 率 で精度評価 を行 うためであ る。

159

168.
[beta]
5 サンプリングの手法
Over― Samplingは 少数 ク ラス の デ ー タを ラ ンダ ム に重複 させ るが、 この技 法 は結果 にバ イア ス を生 じ

る。Under― Samplingは 多数 ク ラス のデー タを無 作 為 に削除す るが、 この技 法 は情報 を失 う可 能 性 があ る。
そ の点 SMOTEサ ンプ リ ン グは 少数 クラスのデー タ を新 しい合 成少数 デ ー タを作成 す る。他 のサ ンプ リ
ン グ手法 の偏 った 結果 や情 報 の 喪 失 とい った 問題 が解 決 され るので、 不 均 衡 デ ー タのサ ンプ リ ングに広
く使 われて い る。 Samplingの 技 法 は無 数 に存在 して お り、例 えば SMOTEが 亜 流 だ けで も 85種 類 もあ
る。表 4に 主 要 なサ ンプ リ ング手 法 をま とめた。
なお 5章 の 図 は断 らな い 限 り imbalanced― learn documentatiOn3か らの出典 であ る。
UnderSamplirg

OverSampling

Random Uiidersainpling

Random Ovelsampling

Condensed Nerest Neighboun

SMOTE

Tomよ Links

SIM【

One Sidё d Selection

SM:OTE― N

Edited Nearest Neghboure

Bordcrtie SMOTE

Repeated ENN

SVM SMOTE

A■

OTElNC

KNN

Neighbourhood CleaningRule

ADASYN

Nar Miss
Instance Hardness Threshold

表 4 サ ンプ リ ン グの種類

5.1

0ver― Samp‖ ng

OverSamplingは 少数 ク ラス のデー タを増加 させ る技 法。
"単 =寧
RandomOversSa mpler

少数 クラスのN(0,1)か らランダムに値 を取 り出 し、 ノ
イズを加え新 しいデー タを生成す る。
I‐

‐
メ
マ

̲̲

‐
饒 ::鶯

鶴ゆ
:'`

少 数 デ ー タ を 単 純 に コ ピ ー す る の で は な く、 検 出 した

SMOTE
(Sythctic Minority
()ver― sarnpling

ラ ス を分 離 し、 KNNで

`■¨.、 ● :

ヽ1,ド 縣:゛
‐
‐
‐

k個 の 近 傍 デ ー タ を 学 習 さ せ

1‐

i

´i

1饉

つ け る。 あ る サ ン プ ル と近 傍 の サ ン プル の 間 に 内 挿 し
た 新 しい サ ン プ ル を 生 成 す る。 少 数 ク ラ ス の 全 サ ン プ

:I辟

ル に 繰 り返 す 。

SMOTEの 発 展 さ せ た も の で 、 少 数 ク ラ ス の デ ー タ付
増 や す。 多数 派 ク ラ ス が 付 近 に多 い ほ ど 多 め にデ ー タ
を増 や す こ と で 、 ク ラ ス 境 界 付 近 に 重 点 的 に デ ー タ を
増 や す 。 分 類 が 難 しい サ ン プル か ら は、 よ り多 く の 合

︲
.
・李リハ一
⁚

近 の 多数 ク ラ ス の 存 在 情 報 (重 み )を 動 的 に 加 味 して

ADASYN

‐

1‐

る。 少数 ク ラ ス の あ る サ ンプル に 最 も近 い k個 近 傍 を見

成 デ ー タが 生 成 さ れ る。

表 5 0ver― Samphngの 例

a f 11p5;//imbalanced-1earn.o r g/ stable

/

160

辟

Tcchniquc)

.1:│

近 接 デ ー タ と の 内 挿 を 使 っ て デ ー タ を増 や す 。 少 数 ク

:A ・
==)

111膊 ]:機̀

169.

5.2 Under― SarTlpling 多数 クラ ス のデー タを減 少 させ る技法。 qO̲ n中 ■ →・ しビ驚 ・ 域 ず 卜 議響 諸 Random Under-Sampling CI Remove noisy observafions :け 00 ̀ ̀00 :t警 ● :毒 Mむ ●● … :臨 爾ゆ ^● ● ・ ̲ぜI◆ 0∬ ★ 露電 ● 0 ^ 輸 峰ぬ 当け ″. ●50■ o0 ..erご 。。 ・ 督撃電 Retain Closer Observations ● ■彎 0:誓 │ " 0■ ̲0 0 QQ■ ●● r8..・ 緩l翻鷺 表 6 Under‐ Samphngの 例 5.2.l TOMEK LINKS 分布 の近 い反対 ク ラスのペ アを Tomck linkと 呼 び、 各 ペ アの多数 ク ラス のデータを削 除 す る と、 少数 ク ラス と多数 ク ラス間 の境界 が 明確 に な り、分類 が 容 易 に な る(図 9参 照 ) Yo頷 橘 ゛筆 roわ 衛 。わS in ● 一 一 一 一 一 一一 一 一 一 一一 ・ ・ ・ 一 ・ ´ ヽ・ ︐ .■ な ぃ,饉 凛 奪 yr■ ・ ″ 1 :夕 霧 暉 撼口, 図 9 Tomek Linkの 手順 161 凛ツ ● ● ● 00 S辱 獣 霧 青 "罐 ● o oO■ ●● 0" ■ ヽ ∫ ″ ● 鰺 / " ⇒ ●● ●● ● ●5● t● ● Ⅲ′ … / ﹃ ● ・ 蹴 襲 I燿甲 懺静奇 ●● '1,L̲s,■ 1● 1総 鷲o. 9y=燿羮

170.
[beta]
6

1三 nsennble Learning Approach

Ensemble学 習 はアル ゴ リズムで Baggingと B00stingに 大別 で きる(図 10)。 これに Under―
Samplingや Over― Sampling、

Cost― Sensitive― Learningを 組 み合わせ る ことで、多数 の Ensemble

Approachの 技法 がで きる (図 11)。
Ensemble Approach

tundom aorss

崚応菫
Crad ent Boc● ing Machine

高コ
=「

「
AsyE'lgble

嘔

い 郷い い

Boosting

霧
一

Ensemble Leaining

Data Preprocessing - Ensemble li:arning

Ensembles

Bagging

図 1l Ensemble Learningの 種類

図 10 Ensemble Lcarningの 大月
│」

7 Cost Sensitive Learning(CSL)
均衡 データのモ デ ルで は異な るク ラスの誤判定 も同 じコス トにな る。 しか し不均衡 デ ー タでは、
異 な るクラスのイベ ン トを誤分類 した コス トは同 じで はない。CSLは 誤分類 の コス トを考慮 した学
習 であ り、その 目的 は誤分類 コス ト誤差 の総和 を最小化 す ることであ る。 ただ コス トの決定 が難 し
い。実 ビジネスのモ デルで は損失 をそ のまま入力す る こともあるが、 あま り高 コス トではモ デル を
歪 ませ ることにあ る。表 7に Cost Matrixの 例 を示す
Actua:Positive

Mode:NeFtive

C(0,0)

TN

c(0,1)

ModelPostitive

C(1,0)

FP

c(1,1)

Actual Negailve
ModelPostitive

C(1,0)

TP

Actual Positivi

=0
‑1

c(0,1)

‑1

c(1,1)

=0

c(0,1)
c(1,1)

Actual N

均衡 デ ー タ の COST MATRIX

Positive

Model Negaive

C(0,0)

=0

Mode:Post蘭 ve

C(1,0)

‐1

不均衡 デ ー タの COST MATRIX

:100

:0

表 7‑l Cost Mat五 xの 例
Logislic Regression― CosI FUnCliOn
h(X)・

T=:F

,(3)・

:Σ 彙 ::(た ●)― ン)2

h(x)‐
,(β

‐103(h(o)
)=CO●

,(β

)=CoSt(hO)."=ッ 10g(h(X))― (1ッ )log(1‐ h(X))

(X).y)・

,(獅

{ ‐log(1‐ ll(x))iFy=0

'

(%(・ )1等 ″
(喝 0,
瞥″

‐
l九
臓‐
・′
二

″
為 Σλ]蔵
く

pn*= proPdioo oI obseMuo6ol

)・

Ⅲ

)=CO● (h(ゆ ,y)・

,C)=COStO(X).つ ・

'Decision Trees
a。 .̀・

F■

).lΣ 籠1:(│く 0̲ン )2

ify=1

,(β

(1〕

Weighied Logis'ic Regression

‐
lo3 0(o) :Fy=1

{ ‑1。 8(1‐ h(→ )ry=o
‐Wlyl。

c1q,ot =

\!' ne,r1oyl ,

y)10g(1‐ h(X))

8(h(X))― ヽ

Decision lrees

"(1‐

簗・ 1ル Σ ′

rilj ,rro*1rn

(ỳ‐

″
(お ‐
Σ餃(1臓 ,蹂

,

,rr
│

(掏 ‐Σ臓:ば 臓
・
・n→ ″

‐,‐
Σヵ̀彎 ゛

,

│

煙 型 L̲里ピ 型 ゴ
表 7‑2 分類器 の重 付

= oroDodbn

1)

of .BeMioni

ot

︹∠
ハ0

171.

8 深層学習 8.1 異常検知 異常状態 が決 まって い る場合 は、あ らか じめ異常状態 を教 師 あ り学習 で、覚 えてお き、同 じ状 態が発 生 した場合、異常状態 とす る。教 師な し学 習 で は正常状態 を学習 し、 いつ もと違 う状態 が生 じた場合、 異常状態 と定義す る。 ここで は教師な し学 習 の AutoEncoderを 利用 した異常検知 を紹介す る。 8.2 .AutoEncoder 深層学習 AutoEncoder(自 己符号化器)は 、 デ ー タの特徴 を提 えることに特化 してお り、構造 が複雑 で な く汎用 的 に使 える。AutoEncOderは 教 師 な し学習 によ り、 デ ータの特徴抽 出 を行 う。AutoEncoderは 入力層 と出力層 のニ ュー ロン (ユ ニ ッ ト)数 が 同 じであ り、 しか も入力層 と出力層 を同 じ数値 を入れて 「教 師 な し学習」 を行 うニ ュー ラルネ ッ トワー クである。入力層 と出力層 に同 じものを入れ る ところが AutoEncoderの ミソであ る。 異常状態 の特徴 を抽 出 には まず正常 デ ー タの線形次元圧 縮 を行 う。従来 は主成分分析 が使 われて き たが、Auto Encoderも 次元圧縮 と特徴抽 出 が可能 である。AutO EncOderの 隠れ層 は 1層 のみ に し、 隠 れ層 の次 元 を入力次元 よ りも小 さ くす る。次 元数 は各層 を構 成 す るニ ュー ロ ン (ユ ニ ッ ト)数 を意味 す る。学 習後 は入力層 を次元圧縮 した値 が、 隠れ層 に生成 され る。学習 した AutoEncoderに 異常状態 のデータが入力 され る と、大 きな誤差が発 生 し、 これが異常値 と判定 され る。 lnput Hidden ‐ ̲̲̲,‐ ‐ .‐ :‐ ̲ ̲苺 .̲, ‐ ,‐ .‐ :‐ ,‐ ′ ‐ ‐ 1‐‐ ‐ ‐ ̀‐ ̀‐ .・ t,‐ .=.‐ t‐ Output Hidden )■ encoder │││││││││‐ 、 ,‐ ││● decoder 図 12 AutoEncOder 83 その他 の機械学習 生成 深層 学 習 は、 少数 ク ラスの デ ー タ生 成 が で きるので、 SMOTEと は別 手 法 と して注 目 され て い る。 また深層 強化 学習 で は Cost‐ Sensitiveの よ うに誤 間違 いの とき に低 ポ イ ン トと し、 それ を学 習 す る。今 後、深層 学 習 の利用 が見 込 まれ る。 163

172.

9 SASの 不 均衡 データ分 析 9.l SASの 不均衡データに関する論文 SAS GLOBAL FORUMで 発表 され た SASの 不 均 衡 デ ー タに関す る論 文 を紹 介 す る。 どの論文 も発表者 自 GLOBAL FOURM 身 が SASプ ロ グ ラムで SMOTEを 開発 してい る。 SMOTEの アル ゴ リズ ム は下記 SAS 2018"Predicting Rare Events Using Speciahzed Samphng"を 参 照。 DIRECTV、 SAS GLOBAL FORUlv12015 データサ ンプリングをSMOTEと Under‐ Sampling技 術 の組み 合わせをSAS EnterpnseMinerで 実装 し、解約 モデルを構築 した。少数 ク ラスにSMOTEア ルゴ リズム を適用 し、かつ多数 クラスのUnder‐ I)ata sanlPling lmlprovcrnent by developing Samplingに より、識別 レベル を向上 させ、モ デルの特異性 と感度 を高め Lina Guzman Sヽ 40TE technique in SAS た。SMOTE近 傍 はユー クリッド距離 を用 いるが、 この尺度は連続または SASの SMOTEに よるデー タサンプリングの改良 数値変数 にのみ有効であ り、混合型 には不向きである。混合型の変数の 類似性尺度はGowcr係 数が適切 な尺度であった。 クラスの不均衡の影 響を軽減す るために、①新 しい少数 クラスの合成例 SAS GLOBAL FORUIV12018 を生成す るSMOTEと 、②多数 クラスのデータをクラスの境界から取 り除 Jonathan Boardman, くTOmek link under‐ Sampling、 ③SM10TEと TOmek link Under‐ Kennesaw State Mitigating the effects of class iinbalance using SOTE and T()]И EK link undersampling in SAS SASに おけるSMOTEと Tomek lindに よる不均衡 データの影響軽減 Samplingの 組み合わせ (SMOTE+Tomek)を SASに 実装 した.分 類器は University ランダムフォレス ト、 ニュー ラルネ ットワーク、サポー トベ クターマシ Kyle Biron, Kennesaw ン、ルールイングクションを採用 した。その結果、SMOTEと SMOTE+TOmekは 、 クレジ ットカー ドの不正取引検出を改善するため の、効果的な前処理方法 であった.両 手法 ともRccal値 の向上、FN/FP比 State University Ryan Rimbey, Kennesaw State Univenity を低下させ、不正に対する感度が向上 させた。 また両サ ンプ リングは ROC値 を向上 させた。 甲状腺検査データの分類 のために、SAS Enterpnse― Guideで proc suⅣ eysdect,pЮ c modeclusを 使用 したSMOTEア ルゴ リズムを開発 し SAS GLOBAL FORUⅣ 12016 Rhupesh Damodaran Predicting Rare Events Using Speci」 lzed Sampling Techniques in SAS SASの 特殊なサ ンプ リング技法による希少事象の 予測 Ganesh Kumar and Kiren た。 4種 類 のデータセ ット (notnsampled,ma,Or● minoity over‐ sampled with ma,ority under‐ Raj Mohan Jagan Mohan, under‐ sampled, sampled)を 構築 し、分類器 は決定木、勾配 ブーステ ィング、ルールインダクションモデル を採用 し Oklahoma State た。その結果、ROC値 、KOlmOgOrOv‐ SmimOv統 計お よび誤分類率に基 University づ き、少数データSMOTEサ ンプ リングを使用 したモデルが、良い結果が 得 られた。 一般 にヘルスケアデ ータが不均衡データで ある。データはCDC(Centers SAS GLOBAL FORUM12020 おr Diseasc Control and Pr‐ cntion)か ら、32の 特徴変数 とターグ ット変 数、60816個 、ターゲ ット1%程 度のデータ を入手 した。サ ンプ リング Liyuan Liu,Meng Han, A Data― dnven Approach to Understand Mild Yiyun Zhou,Gita はRandom Over― sampling、 Random Under‐ sampling、 Cognitive lmparment from lmbalanced Data Tasoobshirazi SMOTE(Advanced Over― sampling)、 Using SAS (KENNESAW STATE Over― sampling and undcr― sampling)、 SMOTEENN(Advanced cornbine SMOTETOmek(Advanced cOmbinc SASを 用いたデータ駆動型アプローチによる不均 UNIVERSITY) over― sampling and undersampling)、 衡データのMCI要 因 の解明 BOOsting,Neural Networkを 採用 した。その結果、評価指標 はRecal値 が 分類器はDccision Trcc,Gradicnt 最 も重要であ り、F」 se POsi● vesを 見逃 して もRecan値 でカバーできた 表 8 SASの 不 均衡 デ ー タの論 文 9.2 SASに おける不均衡 データの モデル構 築 法 9.2.l SASの SMOTE&丁 omek Linkの 設 定 SASで は Enterprise Minerと Credit Scoringか らス コア リン グモ デ ル (与 信 モ デ ル )が 構 築 で きる。 SAS Credit Scoringノ ー ドは、 クレジ ッ トカー ド等 の与 信 モ デ ル 用 に開発 され た EnterpriseMinerノ ー ド であ る。 そ の Score Cardノ ー ドの Over― Samphngと Under― Samplingの オ プシ ョンで 、 SMOTEや Tomek Linkを 指 定 で きる4。 a https://documentation.sas.com/doc/ja/vdmmlcdc/v_011/vdmmlref/p10uiOg1wnf6etn11t0zi4kj52el.htm 164

173.

Retrence Helpに よれば SMOTEは Credit Scoringお r SAS Enterprise Minerの 基 本 バ ー ジ ョンに合 ま れ な い ため、 SMOTEを SASで 動 かす には SAS Score Cardの ライ セ ンスが必要 で あ る (筆 者 は ライセ ンス を有 しな い ので未確認 )。 9.2.2 SAS EnterpriseMinerを 用いたモデル構築法5 SAS Enterprise Minerで ターグ ッ ト変数 の水準 の比 率 が極端 に小 さいデー タを用 いて、 モ デル を構築 す る場合、① Over― Samplingし 、② モ デルの出力値 に事前確率 の調整 を行な う。 Over― Samplingに よ り、ター ゲ ッ ト水準 の構成 比 が元 デー タ と異 な るため、 モ デ ル 算出後 にターグ ッ ト水準 の確率値 を元 データの確率 に適合す るよ うに調節す る (次 章 で説 明)。 そのた め、 ユ ーザー定義 の事前 ベ ク トル を [入 カデー タ ソー ス]ノ ー ドのタ ー ゲ ッ ト・ プ ロ ファイラで設定 (表 9)。 [サ ンプ リ ング]nodeの [サ ンプ リング方法 ]の 設定画面 で、 [層 別抽出法 ]を 選択す ることで、 ターグ ッ ト変数 の水準 1/0の 比率が 1:1の Over― Samplingの 設定 がで きる。 タ ーゲ ッ ト値 事前確率 0.02 0.98 表9 入力例 :タ ー グ ッ ト1(0.02)/タ ーゲ ッ ト0(0.98)の 場合 も しモ デ ル の予 測 に説 明が必 要 な らば、分類器 の オ プシ ョンで LIME法 (Locally lnterpretable Model― Agnostic Explanation)と Hyper― SHAP(Kernel Shapley additive explanations)法 を指 定 す る。 10不 均衡デ ータのモデル 事 例 10.1 中小企業の与信モデル 個人 ロー ンの デ ータ は負事例 デ ー タが多 いが、 中小企業 の倒産 デー タはメガバ ン クで もデ ー タ蓄積量 が少 な く、少数負事例 データの問題 が発生す る。 筆者 は正常企業 の Under― Samplingと Baggingモ デル の組 み合わせ で 開発 した。実例 は筆者 が過去 に発表 した与信 モ デル を紹介す る。不均衡 デ ー タ分析戦 略 は、①Under‐ Sampling でターグットを 1:1の サ ンプリングを行い、②分類器はRandom― Forestを 採用 し(図 13)、 ③倒産確率はモデルの確信度を事前分布でベイズ更新 して求めた (図 14)。 ③ はラベルだけ求めるならば不要であるが、金融業では企業の倒産 リスクに対する準備金を用意する ↓ ↓ ↓ ↓ ↓ ↓ ゝ 鴫鴫鴫モ鴫哺鴫8 ﹈鴫鵡鴫モ編哺鵡囃鴫鴫蝙哺 √︑ ■ t t ︐ イ︑ ∫︑ 8 曖嘔鴫哺輯囃一■ ・翡鴫哺・鴫一一一一囃一一 ぃ ︑ く薔 ご︑ ■ . ︐ ︐ヽ ノ . 可 0 湊 =ホ でC蛇唯 戸 ・● ●崚 ● ● ・︱ ● ・︱ ● 決定ホ つ ↓ ↓ 図 13 Under― Sampling+Baggingモ デル 5 https://www.sas.com/offices/asiapacific/japan/service 165 回回囲国回国国國国國 l lJ T l● ﹁ =ホ ・︱ ・●●● ・︱ ・●● ● 渋 饉整Z=蛮整」 … 図 14 筆者 の中小企業与信 モ デル /technical/faq/list/body/emO03.html

174.

必要 が あ るため、与信 モ デル は倒産/非 倒産 の ラベル だ けで な く、個別企業 の確率 が必須 にな る。開発モ デル の 出力値 (確 信度 )は 50%を 中心 したガウス分布 とな る。倒産発生確率 はその確信度 の事後分布 を 事前分布 でベ イズ更新 す る ことで算出 で きる。 前章 の SASの 不均 衡 デー タのモデ ル構築 で、事前確 率 を調整設定す るが、 これが事後確率 のベ イズ 更新 に使 われ る。 10.2オ ルタナティブデータ分析 オル タナティブデ ー タ とは、投資判 断 のために使 われ るデータの うち、従 来 の決算開示、 一般的な公 開情報以外 のデータ群 の総称 である。経済 ニ ュースの記事 、SNSの 投稿、 POSデ ータな ど、従来 は分析 難 しか った ビッグデ ー タが、海外 の金 融機 関 を中心 に利 用 が広 まって い る。過去 に も機 関投資家が公開 情報 以外 の統計デ ー タ を投資判断の利用 があったが、 それ はあ くまで人間 の判断 を補 うための補助的な 情報 であ り、 また扱 え るデ ータ量 も種類 も、 さらには コ ンピューター環境 も限 られていた。 近年 の機械 学習や 自然言語処理 の技術 が普及 によ り、 ビ ッグデー タ を利用 したモ デ リ ングが よ り容易 にな ると、 + α生 成 のための新情 報源 としてオルテ ィナナティブデー タの利用が始 まった。 与信 分野 では、 オル タナテ ィブデー タは個人信用情 報 や個人属性以外 の情 報 を指す。例 えば振込情報 や動 的 な入出金 の動 き等 を指す。筆者 の与 信 モ デルで も、預金 フラグ・振込情報 フラグな ど月末時点 の 静 的 デ ー タを説明変数 に加 えたが、寄与度 は少なか った。動 的な動 きをモ デ ルで利用す るには コ ンピュ ー タの発達 が必要 で あ った。2000年 頃 か ら自社データで与信 モ デル +α (自 社 のオルタナテ ィブデー タ) がで きないか と、デ ー タ分析が盛ん に行 われてい る。 オ ル タナティブデ ー タの多 くは不均衡 デ ー タであ る。 そのため深層学習 の異常検知やデ ー タ生成の研 究 が注 目されてい る。 11不 均 衡 デ ー タ分 析 のライブラリ 11.l SASPyを 利用した Python imbalaced― learnラ イブラリの不均衡データ分析 SASの SMOTEを 利 用す るには、Credit ScOring fOr SAS Enterprisc Minerの ライセ ンス が必 要 であ る。 それ に対 して P honの 不均衡 デ ー タ学習 の imblanced― learnラ イ ブ ラ リで は拡張 サ ンプ リングや 分 類 器 が揃 って い る。 そ こで本報告 で は SASPyを 利 用 して SAS On Demandfor Academicsの タ セ ッ トを Pythonに 取 り込 み、P 構築 は P SASデ ー honの imblanced― learnで 分析 した。 なお深層 学習 AutoEncoderの honの Keras(AIフ レー ム ワー ク)を 利 用 した 。 SASPyは SAS社 が開発 した Pメ honコ ー ドで SASセ ッシ ョンを起 動 で き る Pメ honパ ッケ ー ジ ライ ブ ラ リ"で あ る。 ロ ー カ ル PCの Jupメ erNotebookか ら SASPyを 利 用 で き る (た だ し Google Colaboratoヮ の JupyterNotebookか ら接続 で きない)。 なお共同研究者 の坂巻 が SASPyの 詳細 を SASユ ーザ ー総会 2022で 報告す るので、本報 告 で は SASPy 等 の プ ログラ ミング取 り扱 いは略す る。 11.2 SASPyと は SASPyは SAS社 が Pythonプ ロ グ ラ ミング用 に開発 したモ ジュール で 、 SASシ ステム に代 わ るイ ンタ フ ェース を提供 す る。 SASPyを 通 じて SASプ ロシー ジ ャは PtthOnス ク リプ トと構 文 で 実 行 で き、 か つ 、 SASデ ー タセ ッ トか ら P,honデ ー タ フレー ム の 間 にデータを転送 で き る。 それ に よ り、 SASか ら P honの フ ロー制 御 を行 うことが で き、逆 に Pythonか ら SAS分 析 を ス ク リプ トに組 み込 む ことがで 166

175.

き る。 今 回 は各 フレー ム ワー クの機 能 を活 用 す るために、 SASで デ ー タを前処 理 し、 P"hOnで モ デ ル を構 築 した。 プ ロセ ス 全体 か らみ る と、 Pメ hon環 境 で SASコ ー ドヘ のダ イ レ ク トア クセ ス を可 能 にす る SASPyモ ジュール を使 用 して い るので、 1つ の フレー ム ワー ク に統合 され る。 SASPyは SAS GLOBAL FORUM2019に 、 多数 の SASPy事 例 、 プ ログ ラ ミングに関す る論 文 が あ る ので 、本報告書 の 13章 参 考 で紹介 す る。 Typl I Wormow mth both SAS and non‐ SttБ SAS data 」聖聖性 N3″ wo S寝lS 摯 ̀ now tsing SASPy " L 鰺 ‡ 彿鸞 迎蝉 Fpり thOn 国□ 1 ゆ鑢 ‐ 1 ¨ │ IC° r 聖 lp中 ― │1‐ │‐ │型 │一 │― │メ │ │ │0∩ │‐ 黎 鋏 颯 晰 鰺 覇 顧 図 15 SASPyの 利 用 (出 典 :SAS社 Homepage) 12お わりに 不均衡データのモ デル の評価 は、PR― AUC、 Recall、 F2な どが適す るが、 PR曲 線 に大 きなぶれがあ る場合 は、複数指標 で総合判定 した方 が良 い ことがわか った 。機械学習 の不均衡 データの理 論 は無数 に あ り、最適 な理論や技法 は施 行錯誤 で確 かめ るしかない。 また従来 の不均衡 デ ー タの理論 と全 く違 う、 深層学習 による少数 クラスのデータ生成 あ るい は異常値 を少数 クラス とす る、新 しい理論が出て きた。 本報告 ではその一部 の理 論 や技法 を紹介 した。 モ デル構築 の最後 に出力値 を実際の確率 に近似 させ るため に CalibratiOnす るが、筆者や SAS Credit Score Cardで はベ イズ更新で求め る。 実務 ではオルタナテ ィブデ ー タの利用 が今後、広 が って い くが、その多 くは不均衡デ ー タで あ り、 その分野 の発展 が期待 され る。 標準 SASに 存在 しない Pメ honの 関数や ライブラリは、SASPyを 利用す る ことで、JupyterNote上 で 実行 で きることを確 か めた。SASと Pythonが 1つ のフレーム ワークに統合 された ことで、SASPyは 使 い勝手 の よいプ ラッ トフォー ムで なった。 今 回、機械学習 の不均衡 デ ー タの理論体 系 とい うテ ーマ で したが、すべ て を リサ ーチで きなか った ことをお詫び します。 また業務上のノウ′ヽウもあ り、Pythonプ ログラムは SASユ ーザー会 での公 開 は 控 えさせていただ きま した。 167

176.

13参 考文献 1.Chawla,N.V"Bowyer,K.ヽ M,Hall,L.0.,&Kegelmeyer,W.P.(2002).SMOTE:synthetic minoriり over― sampling technique.Journal of artiicial intelligence research,16,321‑357. 2.Han,H.,Ⅵ rang,ヽ V.Yり &Mao,B.H.(2005).Borderline― SMOTE:a new Ovcr― sampling methOd in inlbalanced data sets learning.In lnternational conference on intelligent computing(pp.878‑887). Springer,:Berlin,Heidelberg. 3.He,Hり Bai,Y.,Garcia,E.A.,&Li,S.(2008).ADASYN:Adaptive synthetic sampling apprOach fOr ilnbalanced learning.In 2008 1EEE InternationalJoint Conference on NeuraI Networks(pp.1322‑ 1328).IEEE. 4.Bunkhumpornpat,C,Sinapirolnsaran,K.,&Lursinsap,C.(2009).Safe― level― smote:Safe― level― syn― thetic nlinority over― sampling technique for handling the class inlbalanced problenl.In iPacific― conference on knowledge discovelγ Asia and data rnining(pp.475‑482).Springer,Berlin,Heidelberg. 5.Fcrnindez,A"Garcia,S.,Herrera,F.,&Chawla,N.V.(2018).SMOTE forlearning iom imbalanced data:progress and challenges,marking the 15‑year anniversary.Journal of artincial intelligence re― searclh,61,863‑905. 6.Fernindez,A.,Garcia,S.,Herrera,F"&Chawla,N.V.(2018).SMOTEお r learning■ om imbalanced data:progress and challenges,marking the 15‑year anniversary.Journal of artificial intelligence research,61,863‐ 905. 7.小 野潔 データマイニングを利用 した融資モデルの現状と課題",人 工知能学会研究会資料 SIGナ , A004,pp49‐ 54,2001. 8.小 野潔 与信モデル構築'',2014年 日本 SASユ ーザー会研究発表論文集,SAS Institutc Japan,2001. , 168

177.
[beta]
14(参 考 )SASPy論 文サーベイ
SAS GLOBAL FORUM2019の SASPy事 例 、 プ ロ グ ラ ミング に関す る論文 を紹 介 す る。
Paper SAS3455-2019n Visualization with SAS @ Viya @ and
Python

統計 プ ロ グ ラ ミングのサ ンプル を使 って、Juprer Notebookか

らSAS Ⅵ yaの 機能 を呼 び出

し、最終 的 に、 mpld3で 作 られ た静的なグラフを動 的 グラフに変更 した。

Joe Indelicato, SAS Institute Inc.

Paper 3610-2019 SWAT's it all about? SAS Viya@ for Plhon Python SWATを 通 じて、 CASセ ッシ ョンヘ接続 し、Pメ honか らCASヘ データを ロー ドし、
さらにCASア クシ ョンで実 行 して分析す る一連作業 をデモ ンス トレーシ ョンの形 で紹介。

Users Canie Foreman, Amadeus Sofmare Limited

5A53368-2019 Deploying Models Using SAS@ and Open モ デ ル の構 築 に応 じ、Docker、

Flask、 Jenkins、
Jupメ er、 Pメhonな どのオープ ンソース プロ
ジェク トとの組 み合わせで、 SASを 使用 してモデル を展 開す るためのDevOpsプ リ ンシパル

Source
)ared Dean, SAS Institute Inc.

Paper 3475-2019 SAS 6 and Open Source: Two Integrated
Worlds
Iesse Luebben and Radhikha Myneni, SAS Institute Inc.

Paper 3238-201,9 A Complete Introduction

to SASPy and

fuplter Notebooks Jason Phillips, PhD, The University oi
Alabama
Paper 3825-2019

の使用例 を紹介。
現在、 デー タサ イエ ンテ ィス トた ちは多様 な コマ ーシャル 、オ ープンソースの ツール を使 っ
てデー タ分 析す る。そ こで SASが 提供 しているオー プンソースツール とのインテ グ レー シ ョ
ン機能 に よ り、 どのように エ ン ドツー エ ン ドの分 析 ワー クフ ロー をサポー トす るベ ス トプラ
クテ ィス について紹介。
Iup"cr Notcbooksの 概 要 説 明 か ら始 め 、 次 にP"honコ ー ドか らSASセ ッ シ ョ ン と シ ー ム レス
に通 信 す る こ と を可 能 にす るSASPyの 本 質 的 な概 念 の 説 明

SAS Viyaを 通 じて、Pメ lonと SASを 使用 してデータガバ ナ ンスに関す る戦略 を立 て、機械学

MaIe SAS Viya Realize Strategic Data Science

-Data Governance, AI platform and AI SAS programmerRyo Kiguchi, Katsunari Hirano, Yoshitake

習やデ イー プランニング (CNN、 RNNな ど)の 効果的 な マ ッチ ングに基 づ いてデー タサ イ
エ ンス を最 大化 しているこ とを紹介。例 として、当社、塩野義製薬株式会社が開発 した臨床
データ解析 用 のSASプ ログ ラム を半 自動化作成す る「AI SAS Programmer」

Kitanishi;SHIONOGI & CO., LTD.
Happens After You Deploy Your Models and Decisions

システム を紹介

SASモ デル、 オープンソースモ デ ルお よびPκ dicuve Model Markup Languagc(PMML)モ デ
ル まで説明 。

David R Duling, SAS Institute Inc.
Paper 5A53236-2019 Plalng Favorites: Our Top 10 Model
Studio Fearures in SAS @ Visual Data Mining and Machine
Learning
Wendy Czika and Peter Gerakios, SAS Institute Ioc., Cary, NC

SAS Visual Data Mining and Machinc Lcarning(通

称 VDMML)が

パ イ プ ラ イ ン 中 心 と した

豊 か な モ デ リ ン グ環 境 を提 供 して い ま す。 共 同 モ デ リ ン グ環 境 で 、 デ ー タ の前 処 理 を し、 教
師 あ り学 習 モ デ ル を使 用 して 予 測 分 析 。 評 価 され て い る 10個 のVDMML機 能 を紹 介 。

SASの デ ィー プランニ ングが 提供 しているオブジェク ト認識機能 とセ マ ンテ ィックセ グメ ン
Paper SAS3317-2019 Exploring Computer Msion io Deep テー シ ョン機能 を説明。特 にオ ブジェク ト検出 によ く使 われてい るFaster R― CNNと YOLO
Learning: Object Detectiof, and Semantic Segmentatiol

(You only look oncc)、

セマ ンテ ィックセ グメ ンテー シ ョンによ く使 われてい るU‐ Nctと な

Xindian bng, Maggie Du, and Xangqian Hu, SAS Instiute ります。本 文 は、 ディープ ランニ ング用のオー プンソースPメ hOnパ ッケージDLPyに 加 え
て、SAS Visual Data Mining and Machine Learningで 使 われい るア クシ ョンセ ッ トを使用 す

Inc., Cary, NC

る方法 も説 明。
Paper 3179-2019 Can't Find The Right CAS Action? Create
10

Your Om Action Using CASL
Brian Kinnebrew. SAS Institute IncPaper 5AS3UZ6-2019 lhe Power ot RhSl APl and CLI with

11

SAS@ Msual

Analytics 8.3 - Automate Your Tasks with a Batch

IoL Rain Krno SAS In<tin,relnr
Paper 3113-2019 REST Easier with SAS@: Using the LUA
12

SASの Clound AnⅢ Ⅲc ScMccs Languagc(CASL)は CASア クシ ョンを実行す るため コー
デ ィングユ ーザ向 けのプ ロ グラ ミング言語仕様 の説明。

SAS Ⅵya3.4で REST APIと CLIを 使用 し、各業務場面 で上記 の ビジネスタス クを達 成す る方
法 を紹 介

.

PROC LUAを 使用す ることで SASの REST APIと 簡単 に通信 す る方法 を紹介

Procedure to Simplify REST API lnteractions

.

Steven Major, SAS Instiute Inc.

Paper 3725-2019 Embracing the open API ecosystem to give
13

analltics an organizational operational landing spot

Olivier Thierie, Wouter Travers, and Andrew Pease, Deloine
Belgium.
Paper 3089-2019 Working with Both Proprierary and Open14

Source Sofmare

Python内 か ら の画 像 認 識 に CASを 活 用 す る方 法 、 か つ Kattaを 使 用 して リア ル タ イ ム で SAP
や Salesお rceな どの組 織 シ ス テ ム に 結 果 を公 開 す る た め の カ ッパ ア ー キ テ クチ ャ の 設 定 に つ い
て説 明 。

′`ンズ オ ンワー クシ ョップは、 SASと オープンソース ツール と組 み合わせ る方法 に焦点 を当
て る。 オ ー プ ンソース統合 ノー ドとswatパ ッケージを使用 してRで 予測 モデル を構築 す る。

Ernestynne Walsh, Nicholson Consulting Ltd

出典 :SAS Global Forum 2019論 文紹介シリーズ 第2回 「Pメ honか らSAS9を 活用するコーディング事例紹介」
LL■ ■
■」量Qgisュ全興

Lq肛奎ェ
:LLIIi2■ 2■ と
こ
219」 ■
上1:重 旦ュ■
壬lQLaLig■」
」.2219「 pl:Qc‐
:∠

cings‑2/

表 10 SASPyの 論 文 サ ー ベ イ

169

179.

SASシ ステム/そ の他関連分野

181.

SASに よる申請電子デー タ提 出構造m5フ ォル ダ の検証 山野辺浩己 (イ ー ピー エ ス株式会社 ) Valid ion ofm5 folder with SAS Hiroki Yamanobe (EPS Corporation) 要旨 PMDAへ の 申請電子デ ー タ提 出 にあた り,「 m5」 フォル ダ(以 降 m5フ ォル ダ)と 呼 ばれ るフォル ダ構 造 で あ るこ とが求 め られ る.ゲ ー トウ ェイ システ ム を通 して提 出す るた め ,m5フ ォル ダ の格 納 ・ 構造 には フ ァイ ル 名 や パ ス長 の 制 限等 の厳格 な規 則 が あ り,そ の確認 作 業 は 目視 で は誤 りが発 生 しや す い 問題 点 を抱 え る .シ ステ ム が機 械 的 に受 け入れ確認 す る もの を,人 が 同等 の精度 で検 証 す る こ とは難 しく,差 し替 え等 に よ り再 実行す る こ とな どを踏 まえ る と,機 械 的 に検証 す る こ とも必 須 にな る と考 え られ る . 本稿 で は ,m5フ ォル ダ の命 名・ 構 造規則 へ の 準拠性 の検証 を,機 械 的 に実施す る手段 と して SASを 用 い 効 率化 した例 を紹介す る , . キー ワー ド :m5,機 械的検 証 ,効 率 化 1.は じめ に 独 立行 政 法 人 医薬 品医療機器 総 合 機 構 (以 降 PMDA)は ,新 医薬 品 の 承認 申請 にお い て 申請 電子 デ ー タ の提 出及び ゲ ー トウェイ システ ム利 用 を必須 と してい る .そ のた め申請 者 は ,CDISCと 言 われ る国際的なデ ー タ 標 準 に従 った 申請 電子デ ー タを作成 し,提 出は ゲ ー トウェイ システ ム を通 す必要 が あ る .CDISC標 準 に従 っ た 申請 電子 デ ー タは ,2020年 4月 の新 医薬 品 にお け る原則義務 化 以 来 ,多 くの情 報 共 有 が行 われ て い る . CDISCへ の 準拠性 の検証 とい う点 で は ,PMDAが 採 用 してい る Pinnacle21社 のシステ ム を用 いた 手法 が 共 通 認 識 とな ってい る . 一 方 ,ゲ ー トウェイ システ ム を通 す にあた って 必 要 な m5フ ォル ダ作成 において は ,申 請電子 デ ー タ に比 べ る と情報 共 有 が盛 んで はな い 印 象 が あ り,そ の検 証 手法 につ いて も,各 社 が独 自に実 施 してい る状 態 だ と 認 識 して い る.m5フ ォル ダ作成 に 当た って は ,申 請 電子デ ー タ 。付 随 す るメタデ ー タ・ レガ シーデー タや 薬 物 動態 に関す る資料 を,厳 格 な フ ォ ル ダ構 造規則 等 を遵守 した形 で配 置 す ることが求 め られ る . 詳細 な構 造規 則 や命名規則 は ,PMDAの 認 申請 時等 の 電子デ ー タ提 出 に関す る技術 的 ガ イ ド(令 和 4年 4月 ‖ a‖ か ら z‖ 」かつ 「数 1日 )を 参 照 され たい。フォル ダ の 規則 例 を挙 げ る と「32字 以下」で 「アル フ ァベ ッ トの ‖ ‖ ‖ ‖H」 かつ 「ハ イ フ ンー マ イナ ス "― "」 で あ ること,ま た構 造 につ いてだ が 原 字 の 0・ か ら 9‖ 」 かつ 「ロー ライ ン 173

182.

則 として指定 された もの を除 いて 「サブフォル ダ等 を追加 しない」 とされている.上 述 のルール 1つ を取 っ ても, 1試 験 につ き 10以 上 の フォル ダが必要 とな る m5フ ォル ダにお いて 目視 での確認 を十分 に行 うには難 しい。 さらに個 々のファイル についての規則遵守性 の確認 ,そ して 1申 請 につ き複数 の試験分 を確認す る と なると更に精 度 が 落 ちる可能 性 が 高 ま るので ,全 て を人力 で確認 す るこ とは推 奨 しがた い . ここで例 を挙 げた フォル ダ規則 については,何 らかのプ ログラム言語 による確 認 が容 易 かつ 効率的である と思われ るが , どの よ うな言語 で どのよ うな ロジ ックをもって検証す るかは,多 くの選択肢が考 え られ る . 本稿は,m5フ ォル ダ作成 につい て CDISC標 準準拠デ ー タを作成す る部署が役割 を担 つてい ることが多 いで あろ う点 を踏 まえて,そ れ らの部署で一般 に用い られ るソフ トウェア である SASを 使 い検証 し,効 率化 した 例を説明す る . 2.作 成 した階層構造情報 の取得 m5フ ォル ダ の規則遵守性 を検 証 す るにあた り,ま ず 階層構 造情 報 を取得す る.SASで フ ォル ダ の階層構 造情報 を取得 す る方法 につ い て は い くつか存在 す るが ,本 稿 で は PIPEエ ンジ ン を用 い て取得 す る方法 を示 す .PIPEエ ンジ ン とは,menameス テー トメ ン ト内 で使 えるア クセ ス デ バ イ スで ,OSの コマ ン ドの実行 結 果 を受 け取 る こ とが可能 とな る もの である。今 回 は ,m5フ ォル ダが保 存 され てい る場所 (パ ス)を 与 える こ とで ,m5フ ォル ダ内にあ るす べ て の フ ァイ ル 及 び デ ィ レク トリの 情 報 を取得す る。チ ェ ック ツール と して 将来的 に作成 者 以外 の 多数 の 担 当者 が使用す る こ とを前提 に作 るた め ,対 象 パ スのデ フォル ト値 をプ ロ グ ラ ムの実行 パ ス と同一 として 自動 取 得 す るよ うに し,マ ク ロ変数 PATHに 格納 した(使 用例 は [COdel],[COd´ ] 参照 )・ 今 回 は ■lenameス テー トに よ る階層構造 情報 取得 は ,2つ の 情報 を ソー ス と して 読 み込 み を行 っ た .1つ 日は[Codel]に 記載 した全 フ ァイ ル・ デ ィ レク トリの情報 ,2つ 日は [Code2]に 記載 した 隠 しフ ァイ ル の一 覧 である。 [Codel]の プ ロ グ ラムで は ,■ lenameス テ ー ト内 に"FILELIST"を 宣言名 として ,PIPEエ ンジ ン指 定 の も と,ダ ブル コー テ ー シ ョン内 の値 を実行 してい る .実 行 結果 は OSに 依 存す る ものの WindOws環 境 下で は コ マ ン ドプ ロン プ トにお いて 対 面 で実行 した際 の結 果 が返 って くる .cmdコ マ ン ドで あ る,''di「 ', /b", /s"は ,そ れ ぞれ 「オブ ジ ェ ク トの一 覧」 ,「 オ ブ ジ ェ ク ト名 の み 」 ,「 サ ブデ ィ レク トリ内 を含 め る」 を 意 味 し,指 定 した パ ス 内のす べ て の フ ァイ ル・ デ ィ レク トリの一 覧 を取得 で きる . [Codc2]の プ ロ グラム は ,[cOdcl]に "/a:h"を 追加 してい る.こ れ は非表 示 フ ァイ ル に限定 して情 報 を取得 す るこ とを意 味 してい る.非 表 示 フ ァイ ル につ い て は後段 で説 明す るが ,非 表示 フ ァイ ル を格 納 しない こ とと したいた め 2つ の ソー ス を も とに検 証 を進 めてい く。 ** Oodel: filename FlLELIST PIPE **鉾 ф 2i filename HIDDEN PIPE ′ ′ dir /b /s &PATH.′ ′ ″ ′ ′ dir /b /s /a:h &PATH ; 今 回必要 な情報 として は ,フ ァイ ル 名 の一 覧 の み だが ,取 得 され る の はル ー トか らの全 パ ス とな る.実 際 のチ ェ ックには m5フ ォル ダ にお け る階層及 び フ ァイ ル・ デ ィ レク トリ名 の情報 を用 い るた め ,そ れ ぞれ の 174

183.

情 報 を変数 M5PATH,変 数 FILENAMEに 格納 した([Code3],[画 像 1]参 照 ).ま た対象 が フ ァイ ル かデ ィ レク トリかの情報 を変数 FILEFLに ,フ ァイ ル の うちデ ー タセ ッ ト(XPT形 式 )で あれ ば変数 DSFLに 格納 した 。 隠 しフ ァイル の一 覧 も同様 の構 造 で読 み込 み ,デ ー タ セ ッ トHIDDENLISTと して作成 した 。 ** Oode3: data FILELIST; ength=$1 000. ength=$500. ength=$1 00. abe 一 二 I ength=$500. I abe 一 一二 ength=$20 abe ength=$2O I abe CATl 1 二 CAT2 MESSE TARGET GRADE 一 ength=$200. I abe ength=$200. I abe ength=$S abe ト ル ″ イ クジ ″ ト エ一 バ ア フ″ ″ ジ セ ″ 一 象 所 別 ブ ツ象 レ 対 場 種 オ メ対 グ attrlb FULL M5PATH FILENAME PATH I infile FILELIST; input i=UL̲L $: ′ ′ TARGET =′ ¥m5¥′ ′′ ′′ ); ),1,′ 「 RETRACK=scan(tranwrd(FULL,̲TARGET,′ ′ ′ M5PATH =scan(tranwrd(FULL,strip(PRETRACK),″ ),1,″ ); ′′ FILENAME=scan(M5PATH,‑1,′ ¥′ ); ′′ ′ ′ ′′ ′ PATH =scan(tranwrd(M5PATH,″ ) ′ ′ ¥′ │lscan(M5PATH,‑1,′ ¥′ ),′ ),1,′ .′ ): FILEFL =oount(FILENAME,′ ′ DSFL =oount(FILENAME,′ .xpt″ ); ; │′ │′ │′ │′ │′ │′ SEONO=̲n̲; drop ̲TARGET PRETRACK: call missing(of MESSE GRADE CATl CAT2 TARGET); 画像 1 r i sYadam*dat aset s+adae. sasT bdat *ms+dat aset s+st udy 1 *ana I ymSYdatasetsystudyl+ana I ysi s+adam+datasetsVadrs. pdf YmbYdatasets+studylSana I ysi s+adamgdatasets*ads l. xpt +mS Ydataset s+st udy I +ana I ys i s+adam+dat aset s*def i ne. xm I +m5+datesets+studvl*ana I vsis9adam+datasets*def i ne2-0-0.xs I sas +m5 *dataset s+st udy I +&na I ys i s*adam*p rograms+st udy I -adam-adae. I . sas *m5 ydatasets+sl udy 1 +ana I ys i sYadam+p rog ramslst udy 1 -adam-eds ysis+adamyprosrams*studyl sas *ena I 4-2-l-1. +m5+datdsels+sludyl -stat-l at 4-2-2 . s&s *m5 *dat aset s+st udy 1 *ana I ys i s+adam+p ros rams+st udy 1 -st -1 -1 +nSVdatasets+studyl+ana I ysis+adam-i*adae. +mSydatasets+studyl+cna I ysis+adamj*adcm. xpt +mEYdatasets*studyl+ana I ysis+adam-j yadmh. xpt pt adrE.pdf ads l. xpt def ine.xml def i ne2-0-0.xs I st udy I _adam_adae, sas st udy l _adam-ads L sas st udy 1 _st at _1 4_2 _1 _l . sss st udy I _st at _1 4_2 _2 _1 . sas adcm.xpt admh.xpt Yms +dat aset sgst udyl +ans I ys i s+adil+dat aset s +m5 +dal aset s+st udyl Y?na I ys i s+adam+dat aset s yms +dat aset sgst udy I *ana I ys i sYadam+dat aset s +m5 +dat aset s*st udyl *ana I ys i s*adam*dat aset s Yms *dat aset s*st udy I *ana I ys i s+sdffi+prog rams +s5*datasets+studyl+rna I ys i sYadah*progrdms ys i svad&m+programs ys i s+adm+programs I ys i s*adamj *n5 gdatasets*studylYana I ys i svadamj +mSYdatasetsYstudyllhna I ysi sYadamj Ym5+datasetsYstldy1*ana +m5+datasets+studyl+ana YmSYdatasets$studyllhna I I 3.階 層構造情報 の検証 取得 した階層構 造 情 報 につ いて ,SASデ ー タス テ ップ で規則 へ の準拠 を逐 次 ,検 証 して い く.確 認 す る規 則 は ,「 隠 しフ ァイ ル 違反」 ,「 指 定 階層 変更違反 」 ,「 規 定 パ ス長超 違反 」 ,「 標 準階層 外 フ ォル ダ違 反 」 ,「 無 フ ァイ ル の デ ィ レク トリ違 反 」 ,「 SASデ ー タセ ッ ト違反 」 ,「 規 定デ ィ レク トリ名 長超違 反 」 ,「 規定 フ ァイ ル 名 長超違反 」 ,「 規定デ ー タセ ッ ト名 長超違反 」 ,「 規 定外文字違 反 」 に分 け,大 き く 「隠 しファイル 検 知 」 ,「 命名 規 則 検 知 」そ して 「構 造 の 準拠性検 知 」 と して 分類 した 。 また ,CDISC 標 準 に準拠 した 申請 電 子デ ー タ及 び 関連 す る文書 につ い て ,一 部 の フ ァイ ル の 存在確認 等 を検 証 対象 し,フ ァイ ル の格納忘 れ 等 を検知 できる よ うに した . 175

184.

検 知 は ,1検 知 1レ コー ドと し,各 レ コー ドに変数 MESSE及 び変数 MttSEIDを 持 たせ , どの種別 の違 反 を検 知 したのか判別 で き る よ うに した 。 ま た検 証 内容 は ,上 記 に挙 げた違反 だ けではな く,ス ポ ンサ ーが 任 意 で 設 定す る項 目につ い て も リス ト化 し,第 二者 が 「どの よ うな項 目を任 意 で設 定 したか 」 を確 認 で きる よ うに し,そ れ ぞれ Grtteを 違反 につい て は ERROPを ,任 意設 定項 目につ い て は'NOTE"と した . 3.1隠 し フ ァイ ル 検 知 隠 しフ ァイル(非 表示 フ ァイル )が 含 まれ ていない ことを確認 す るために、そ の 存在 の有無 を確認 してお く 必要 が あ る。 隠 しファイル はその性質 上 ,利 用者 が意識 しない ところ作成 。発 生す る可能性が高いが ,申 請 時にお い ては通常 ファイル と同様 1フ ァイ ル として扱われ るため,注 意 が必 要 で ある.隠 しフ ァイル を検知 す るにあたって,[Code2],[Code3]に お い て dataset化 した情報 を用 いて,1レ コー ドで も情報があれ ば検知す る形 と した .検 知に用 い たプ ログラムは[cOde4]の 通 りで示 した。 ** Code4: data ERRl; format GRADE CATl CAT2 TARGET PATH FILENAME MESSEID MESSE ; set HIDDENLIST; where ^missing(FILENAME); ′ GRADE=′ ERROR″ ; TARGET=FILENAME; ″ CATl=″ 隠 じファイル ″ oount(F:LENAME,″ ′″ .″ )〉 O then CAT2=″ ファイル ″ ; if ; eise if oount(FILENAME,′ )=O then CAT2=″ フォル ダ if oount(FILENAME,″ .″′ )〉 O then ′ ′′ ′′ PATH=scan(tranwrd(M5PATH,″ ¥′ ′ │lscan(M5PATH,‑1,″ ¥′ ),′ ),1,′ ) else if oount(FILENAME,″ .′ )=O then PATH=M5PATH; ″ MESSE=cats(″ 隠 しフ アイル または フ ォル ダが あ ります 。 ); MESSEID=101; : │′ │′ keep GRADE― ‖ESSE; run; 3.2命 名 規 則 検 知 命名規則を[Table 3̲2]に ま とめた。文字種 について,シ ステ ム上必要な拡張子 (.txt等 のフ ァイル識別 子)以 外 の部分は「小文字のアルファベ ッ トもしくは数字」,「 記号は ロー ライ ン もしくはハ イ フン」のみ とす る必要があ り,名 前 の長 さはオブジ ェ ク トによるが 32字 または 64字 を上限 とする ことが求め られ る Table 3 2 種別 範 囲及 び 内容 フォル ダ 32字 以 下 64文 字 以 下 (そ れ ぞれ 拡 張子 を含 む ) フ ァイ ル 拡 張子 及 び直前 の ピ リオ ドを除 く名 称部 分 デ ー タセ ッ ト 32字 以 下 パ ス長 160字 以 下 全体 アル フ ァベ ッ トの"a‖ か ら"z‖ [U+0061か ら U+007A] 全体 ‖ 数字 の "0"か ら 9‖ [U+0030 か ら U+0039] 全体 ロー ライ ン"̲"[U+005F] 全体 ‐ ハ イ フ ンー マ イナ ス‖ "[U+002D] 176

185.

検知す るには,[Codel],[Code3]に おいて dataset化 した情報 を用 い るが,既 にパ ス とファイル名 は取得済み であるた め,以 降は単純 な if文 によって条件 を記載す るのみ とな る。 オブジ ェ ク ト名 の長 さについて,[Codc5]で 示す内容では,if文 で[オ ブジェク ト名 の長 さ(lengh関 数)],[オ ブジェク トの判定(FILEFLの 値)]で 判定 し,出 力 しているので ,こ の条件をフォル ダ・ フ ァイル・ デ ー タセ ッ トによって変更す ることで フ ァイル名 の長 さにつ いては検知 が可能 である。 一方 ,文 字種別につい ては,指 定 されてい る文字以外がないか を確認するた め,ver● 関数 を用 いた。指定 の文字 を変数 ALLCHARlに 格納 し,変 数 MttSEに は検知 され た許容 されてい な い文字 を格納す る ことで確 認者 の負担軽減 を図 った . ** Code5: :f lengthn(FILENAME)〉 32 and ^FILEFL then do: ′ GRADE=″ ERROR′ ; CATl=″ 文字種違反 ″ CAT2=″ フォル ダ ″ ; ″ ‖ESSE=cats(″ フォル ダ名 は 32文 字 以下 と して くだ さい。 ); TARGET=FlLENAME; ; MESSEID=301: output: end; ** Ood06; ALLCHARl=″ abcdefghi」 kl:■ nopqrstuvwxyz01 23456789̲― ″ ; if verify(strip(FILENAME),ALLCHARl)〉 O and ^FILEFL then do; GRADE=″ ERROR″ ″ CATl=″ 文 字種違反 ″ CAT2=″ フォル ダ MESSE=cats(″ 規定外 の 文 字 です。 [″ ,kcompress(FILENAME,ALLCHARl),″ TARGET=FILENAME; : ; ; ]″ ) MESSEID=304; output; end; 3.3構 造 の 準 拠 性 構 造 の 準 拠性 の検知 は,「 作成 を禁止 され た領域 にサブフォル ダを作成 してい な いか」,「 デ ー タセ ッ ト格 納が定 め られ た階層 にデ ー タセ ッ トない又はそ の他 の階層 にデ ー タセ ッ トを格納 していないか」等 の指定 の 階 層 構 造 を 遵 守 し て い な い も の を 確 認 す る 。 具 体 的 な 規 則 と し て 「 [m5¥datasetttstudy id¥(analysis/misc/tあulations)]な どのフォル ダは下位 フォル ダ以外 の ファイル を含 めない」,「 格納す るファイ ルがない場合 は該 当フォル ダを作成 しない」 な どである . 指定 の階層 に事前に定 めた フォルダがないか とい う点について は ,「 技術的ガイ ド内で定義 され てい る想定 され るフォル ダ構造以外」のフォル ダを検知す る形 とした。ただ しcpフ ォル ダな どスポンサー が 自由に構造 を設定で きる一部 のフォル ダに関 しては確認 の範 囲か ら除 く必 要 がある.[Code7]で 示すプ ログラムでは,そ れ らの階層構造 をすべ て確認 した上で,想 定 され る以外 のフォル ダをすべて リス トす るものである.第 3階 層 では,smdyidが 作成 され る階層である ことか ら GRADE="NOTE"と してフォル ダ名 が想定通 りの ものかを 確認す るた めに リス トす るよ うに した . 3.4 CDISC標 準 に 準 拠 した 申請 電 子 デ ー タ及 び付 随 す る文 書 申請電子デー タ及び付随する文書は,そ の試験 の実施時期や作成 ステップによつて様 々な格納方式が想定 177

186.
[beta]
され るた め ,画 一 した 検 知 用 ロジ ック を作 成 す る こ とは難 しい 。 そ の た め ,本 稿 で ,以 下 に 記 載 す る例 の 想
定 条 件 は CDASH標 準 の EDCデ ー タ か ら SASに よ り CDISC標 準 で 申請 電 子 デ ー タ を作 成 し,m5フ ォ ル ダ
を 作成 した場 合 で あ り,レ ガ シー 変 換 や XPT形 式 以 外 の デ ー タセ ッ トを想 定 しな い

.

今 回 は ,SDTM/ADaMと もにデ ー タ セ ッ トは XPT形 式 を想 定 し,同 じ階 層 にデ ー タセ ッ トの 定 義 書及 び ス
タ イル シー トを格 納 す る こ とを前 提 に ,両 フ ァイ ル が 存 在 しな い 場 合 に検 知 で き る よ うに した .ま た ,SDTM
に は Amotated CRF及 び デ ー タガ イ ドを ,ADaMで は SAPや デ ー タガ イ ドな どの参 照 文 書 を作 る こ とを想 定
した 。加 えて ,SDTMで は通 常 作 成 され る DM,AE,EXデ ー タセ ッ トの 存 在 確 認 を ,ADaMで は必 須 とされ
る ADSLデ ー タ セ ッ トの 存 在確 認 を検 知 す る こ とを 目的 と した 。
前 準備 と して ,[Codc8]に 記 載 した 処 理 で ,フ ァイ ル の 存 在確 認 す るた め の KEY変 数 を持 た せ た デ ー タセ
ッ ト̲ERR4̲1を 作 成 した .デ ー タ セ ッ ト̲ERR4̲1の 変 数 KEYl,変 数 KEY2に そ れ ぞれ パ ス とフ ァイ ル 名 を
持 たせ ,今 回 タ ー ゲ ッ トとす る階 層 (変 数 KEYl)に 対 象 の フ ァイ ル (変 数 KEY2)が あ るか を ハ ッシ ュ オ ブ
ジ ェ ク トの dcinckcyメ ソ ッ ドか ら確 認 す るた め で あ る 。 ハ ッ シ ュ オ ブ ジ ェ ク トの 宣 言 や 対 象 とな る KEYの
指 定 を容 易 化 す る た め に ,マ ク ロ化 し exist c賦 と した .exist chkは 引数 mastcrに 対 象 とな るデ ー タセ ッ ト
を パ ラメ ー タ と して 与 え ,引 数 keyに 対 象 とな る変 数 を設 定す る .存 在 確 認 を行 っ た結 果 を 引数 nで 指 定 し
た 変 数 に格 納 す る よ うに した 。 デ ー タ ス テ ップ 中 に %existchk(mastc‐ DATAl,key=KEYVAR,■ =RE駅几 T);と
して 使 う こ とで 「DATAl」
ば ,「

RESULT」

に 対 して デ ー タ ス テ ッ プ 中 の 「KEYVAR」

と 同 一 の 変 数 か つ 値 の レ コ ー ドが あ れ

に 値 'Y'を 返 す と い う も の で あ る .cxist chkを 用 い て 対 象 と な る パ ス

(m5¥血 dy̲id¥analysis¥adam¥datasets)に 「deinc.xml」 及 び 「dcinc2‐ 0‐ 0.xsI」 のファイル の存在確認 を行 った コ
ーードが[Code9] ('あ る。
**C61ф 7:
′
do i=l to count(‖″5PATH,′ ¥″ ):
CATl=″ 構 造 変 更 ″
CAT2=″ フ ォル ダ
本機 CPは フォ ル ダ 以下は除外
:

;

:

if i=5 and scan(M5PATH, i,″

′

¥″ )=′ cp″

then leavei

*F CP以 外 :
′
if ^FILEFL and scan(‖ 5PATH, 1,″ ¥′′)=FILENAME and ^mlssing(F:LENAME) then do;
if
i=:l and FILENAME in(′ m5″ ) then;
′
else if i:=2 and FILENA‖ E in(″ datasets′ ) then;
else if i=3 then do;
GRADE=″ NOTE″

;

TARGET=FILENAME;′
″
″
:′ ,″ 試験 フ ォル ダ名 ,cats(■ ,FILENAME,″ ]″ ),″ *事 前 に定 めた studyidに 変更済み
MESSE=catx(″
″
か要確認 );

MESSEID=401:

output;
end;
lse
ise
ise
lse
lse
lse
ise
lse

if
if
if
if
if
if
if

i=4 and FI LENAME in
I=5 and FI LENAME in
i=5 and FI LENAME in
i=5 and FI LENAME in
i=6 and FI LENAME in
i=6 and FI LENAME in

analys i s", "tabu l ations", "mi sc") then
adan", " adan-i", " I egacy") then;
sdtm", "sdtr_ J", " legacy") then:

cp") then;

datasets", "programs then
datasets", "programs ) then
″
″

missing(FILENAME) then

GRADE=″ ERROR′

′
;

TARGET=FILENAME;
″
MESSE=cats(″ 想 定 して い な い サ ブ フ ォル ダ で す 。 );

MESSEID=203:
output;
end;
end;

end:

178

)

187.

** Code8: data ERR4 1; set M5PATH; KEYl=PATH; KEY2=FILENAME: run; **10ode9; ― ADaM― define.xmi:‐ ICDISC ′ ′ KEYl=catx(″ ¥′ ,PATH,FILENAME,″ analysis¥adam¥datasets′ ): KEY2=cats(″ define.xml″ ); **│‐ Check: s4̲a力蜂(master=̲ERR4̲1,key=KEYl KEY2,fl=EXISTlFL): %θ,γ ′ if EXISTlFL ′ ne 'Y' ′ then do; GRADEE′ ERROR′ ; CATl=″ CDISC″ ″ CAT2=″ ファイル : ″ ; MESSE=cats(″ define.xmlが [m5¥study̲id¥analysis¥adam¥datasets]に 存 在 しませ ん。 ); MESSEID=401; output; end: Y:曇 ::i:(9::♀ :お E2全 :零 I:‐ 19∫ ine2‑0‑O xsl: st̲a力″(master=̲ERR4̲1,key=KEYl KEY2,fl=EXIST2FL); %θ χ′ if EXIST2FL ne 'Y' then do; '首 GRADE=″ ERROR″ CATl=″ CDISC″ ″ CAT2=″ フ ァイ ル : ; ″ ‖ESSE=cats(″ define2‑0‑0.xslが [m5¥study̲id¥analysis¥adam¥datasets]に 存 在 しませ ん 。 ); ; MESSEID=402; output; end; 4.検 証結果 の 出力 出力 には ,ODS EXCELを 用 い る.出 力 したい情報 と して は ,「 検知結 果 」 を主 として , どの よ うな項 目 を検 証 したのかが 分 か る よ うに 「検 証 項 目」 も対象 と した 。 また ,「 確認 対 象 の フ ァイ ル 」 につ いて も記録 と して 出力 した。 これ らの複数 の分類 の 情 報 を列挙す るに あた り,操 作や 二 次加 工 とい う点 で汎 用性 に富む Excelフ ァイル 選択 した . ODS EXCELで は ,シ ー トごとへ 出力 を分 け,ま たそれ ぞれ のペ ー ジに あ る程度 の設 定 を加 え るこ とがで き るが ,今 回は ミニ マ ム にフィル ター・ シ ー ト名 ・ セル 幅 の み設 定 した(画 像 2参 照).用 い た プ ロ グラム は [Codc10]に 示 した . 画像2 d,kl".ini +msYdat.sets ∞●⊆̲ 179

188.

**Code10: ods exce! file =″ &OUTPATH.¥&OUTNAME ′ ′ style=statistical options ( autofilter frozen headers := 'a11' =: '1' f!ow sheet̲name = 'table' = '01̲結 果 absolute̲oo!umn̲width=‐ '10,10,10,40,40 10,80') ' proc report data=ART: column GRADE CATl CAT2 TARGET PATH MESSEID MESSE: run; ods excel options ( sheet̲name='02̲確 認 項 EI' abSOlute̲oolumn̲width= '10,80'); proc report data=MESSE; oolumn MESSEID MESSE; run; ods excel options(sheet̲name='03̲対 象 フ ァイル ー 覧 'absolute̲oo!umn̲width='100'): proc report data=FILELIST: where ^missing(M5PATH): oolumn M5PATH; run; ods exce!options(sheet̲name='04̲隠 proc report data=HIDDENLIST: しフ ァイル ー 覧 'absolute̲column̲width='100'); column ‖5PATH; run; ods excel close; 5。 結論 本 稿 で は m5フ ォル ダ の 階層構造 の 準拠 確 認 を SASで 検 証 したケー ス を紹 介 した .2章 で は ,フ ァイル 情報 の 取 得 として inmeス テ ー トメ ン トの PIPEエ ンジ ン を用 い た フ ァイル・ 階層 情報 の 取得 を述 べ た。3章 で は ,命 名 規則や CDISC準 拠性 な ど様 々 な項 目の検 知 を レ ギ ュ レー シ ョン を紹 介 しつつ ,コ ー ドの解説 を 交 えて実 践 した .4章 で は ,検 証結果 とそ れ とともに出力 す べ き項 目を列挙 し,Excel形 式 で 出力 した。 本稿 で示 した検証作 業 は技術 的な 目新 しさはな く,ま た SAS以 外 の言語 で も作 業 可能 で あ る。 しか し,医 薬 業 界 のマ ッ ピング,解 析 デ ー タ,解 析 業務 は ,SASプ ロ グ ラ ム を主 とした担 当者 が多 い こ とを踏 ま え ると , 汎 用性 や 利 用者 の理解 度 とい う点で ,SASに よ る検証 とい うの は実施す る価 値 が あ った と考 え る . 末筆 なが らデ ー タ存 在 確 認 用 のマ ク ロ exist̲chkを 快 く ご提 供 頂 いた森 岡裕 氏 をは じめ,社 内業務や諸 々 の調整 に掛 け合 い レ ビュー に ご協力頂 いた 方 々 に深謝 申 し上 げ る . 参考資料 (1)SAS Institute lnc.SAS① 9.4 Companionお r Windows,Fifth Edition (2)SAS Institute lnc.SAS① 9.4 0utput Delivery Syste]m:User's Guide,Frth Edition (3)松 沢 享 ODS EXCEL入 門 SASユ ー ザ ー 総会 論 文 集 2019 (4)Yutaka Ⅳbrioka,Jun Hasegawa DOSUBL Function+SQLView+IIash O荀 ectε FedSQL+PROC IDS2 Hash Package,SAS Global Forum 2019 (5)独 立 行 政法人 医薬 品 医療機器総合機 構 承認 申請 時 等 の 電子デ ー タ提 出 に 関す る技術 的 ガイ ドにつ い て (令 和 4年 4月 1日 薬機 審長 発 第 0401003号 ,薬 機 レギ長発 第 0401001号 ) (6)Pinnacle21 Vialidation https://ww、 v.pinnacle21.coln/products/validation(」 載:糸 冬看 在認 日 2022/08/19) 180

189.
[beta]
付録 1

%macro exist̲chk(master=,wh=,key=,fl=,cat=YN,dropviewflg=Y)i
%let name = &sysindex:
′′
′
′
%let qkey = %sysfunc( tranwrd( %str(′ &key′ ) , %str( ) , %str(′ ,′ )

if O then set &master(keep= &key);
if

N =:l then do:

%if %leneth(&wh) ne 0 %then %do;
rc&name. =dosub I ("proc sq I nopr i nt i
create v iew h&name. (label=%unquote (%bquote (' master=&master' ) ) ) as

select x from &master

where &wh;

quit;");
%end;

%if Tolength(&wh) ne 0 %then %do; declare hash h&name. (dataset:"h&name. (keep= &key)",

multidata:'Y'); %end;
%e I

se

%do; dec I are hash h&name. (dataset: "&master (keep= &key) ",

multidata:'Y'); %end;
h&name. . def inekey(&qkey)

;

h&name.. definedone0:

%if %length(&wh) ne O and %upcase(&dropviewf!g) eq Y %then %do
call execute(″ proc sqi noprint;

drop vlew h&name

,

qじ iti″ );

%end:
end:

′ ′
&fl = ifc(h&name check()=0,″ Y′ ,″ N′ );
′
′
%if &cat=Y %then %do: if &f!:=″ N″ then &fl=″ ; %end;
%:nend exist̲chk;

181

191.

オ ー プンデ ータ/統 計理論 / 生物統計・ 医薬関連

193.

副作用 シグナル の 可視化 とそ の活 用 ―副作用 デ ー タベ ー スJADERの 分析 につ い て 一 武藤 猛 (Ma・keTech Consulting) Adverse Event Signals Visualization of JADER and its Utilization Takeshiヽ 4uto President/MarkeTech Consulting 要旨 医薬 品医療機 器 総合機構 (PMDA)が 運用す る副 作 用 デ ー タベ ー ス (DB)JADERを 用 い た シグナル 分析 の可 視 化 とそ の 活 用 上 の留意事 項 を考 察す る。 まず シ グナル 分析 の 原 理 について述 べ 、 次 いで 副作用 DBの 全体 シ グナル 分 析 の 特徴 につ いて 述 べ る。 シグナル 分 析 には Rの パ ッケ ー ジ PhiViDを 用 い 、可視化 には ■● 等 を用 いた 。 シ グナル と して は疫 学 的手法 に よる PRRと ROR、 ベ イ ズ 法 による BCPNNと GPSを 用 い た 。 DB 全 体 の シ グナル 分布 が可 視化 され た。 また有害 事 象 (副 作用 )に 対 す る 4つ の シ グナル の 点灯順 序 が 明 らか にな った。二 次元 の散布 図 の うち重 大有害事象 を発 見 し易 くす る ツール として、有 害 事 象 マ ップ を定義 した。 事例 を 3つ 述 べ る。抗凝 固剤 の販 売 開始直後 の 重 大 有 害事象 の 早 期発 見事例 、 が ん 治療薬 の有害事 象 を経年 モ ニ ター す る こ とに よる発 売後 6年 目にお け る重 大 有 害事象 の 検 出事例 、お よび新 型 コ ロナ ワクチ ンの 有害 事象 マ ップ の 事 例 で あ る。 経 時 的 に 4種 類 の シ グナ ル をモニ タ リン グす るこ とで 、 リス ク管理計 画 (RMD にお いて 、重 大有 害事象 の警 戒 情 報 としてシ グナル 分析 を補助 的 に活用可能 で あ る。 当然 の こ とな が ら、 シ グナル 分析 に加 えて、専 門家 に よる総合的チ ェ ック が不可欠 で あ る。 キー ワー ド :副 作用デ ー タベ ー ス 、 シグナル 分析 、 可視化 、 リス ク管理計画 1.副 作 用 デ ー タベ ー ス とシグナル 分 析 1.1 医療 用 医薬 品 に対 す る リス ク管 理 と副 作 用デ ー タ ベ ー ス 販売開始後 の 医療用医薬 品について は、従来 か ら製薬企業によ り厳重な安全性 の監視 が行われてきた。2012 年 には厚生労働省 か ら 「医薬 品 リス ク管理計画 (RMP:Rsk Mmagement Plan)」 が発表 され、具体的な指針 の下に、製造販 売後 の安全性 の確保 、ベネ フ ィ ッ トと リスクの評価及びそれ らの評価 に基 づ く安全対策 の改 善 に資す る こ とを 目的 とした総合的な リス ク管理計画 が実施 され てい る (1)。 新医薬 品お よびバイオ後続 品に ついては、2013年 4月 1日 以降 に承認 申請す るものか らRMPの 提 出を求め られ てい る。 また後発 医薬品に 185

194.

つ いて も、先 発 品 の RMPに 対応 した 措置 が求 め られ て い る。2022年 7月 現在 、既 に 660件 の R● IPが 医薬 品 医療機器 総 合 機 構 m、 (PMDA)の IPに 公 開 され て い る。 Pの 実施 に伴 い 、従来以 上 に医薬 品 の安 全性 の 監視 が重 要 にな ってい るが 、副作用 シ グナル 分析 は安全 性 監視 を効 率 的 かつ 効果 的 に行 うた めの補 助 的 な手段 の一つ で あ る。製薬 企 業 の副作用報 告 は h征 )Aに 提 出 され、PMDAは そ の情報 を厚 生 労働 省 とデ ー タベ ー ス (DB)と して共 有す る。 PMDAは そ の 副作用 DBを JADER(Japanese Advcrsc Dmg Event Rcpo■ datあ ase)と して公 開 してい る。本 論 文 では JADERを 対象 とした シ グナル 分析 の 可視化 につ い て論 じる。 1.2 副 作 用 シ グ ナ ル 分 析 の 原 理 副作用 シ グナル判定の原理 は 「Dispropomonality(不 均衡 )」 の発見である。注 目してい る医薬品において 注 目して い るある副作用の報告件数 の割合 (pl)、 そ の他 の医薬品にお いて注 目してい る同 じ副作用 の報告 件数 の割合 (p2)と して、pl>>p2で あれば、シグナル (因 果関係があるか も しれ ない兆候 )と 推測す る (2)。 副 ―副作用 ノ」の組合せ に対す るシグナル を計算す るには、DBか らシグナル 分析用 の分 作用 DBか ら 「医薬 品 ′ 割表を作 る。 そ の ために DBを 集約 して、 「医薬 品 jお よびそれ以外 の医薬 品」 と、 「副作用 プお よびそれ以 外 の副作用」 の 2× 2分 割表 とす る。 この 2× 2分 割表 に基づ くシグナル計算の手法 とその応用 については多 数 の研究や解 説 (3)が あるので、 ここでは詳細 を省 略す る。 JADERと 同様 の副作用 DBは 、WHOや EU、 そ して各 国 の規制機 関で運用 され、公 開 され ている。 これ ら 副作用 DBに 基 づ くシグナル計算 とその活用 も各 国 の規制機 関で実施 され てい る (4)。 採用 され てい るシグナル の種類につ いて は、近年は従来か らの疫学的なシグナル に加 えて、ベ イ ズ法 によるシグナル が増 えている(5)。 2.副 作 用 デ ー タベ ー ス の 全 体 シ グナ ル 分 布 の 特 徴 2.1 シグナル分析全体の流れ JADERに 対 す る シグナル 分析 は次 の 4ス テ ップ で 行 われ る 1)最 新 の JADERフ ァイ ル の ダ ウ ン ロー ド (毎 月 更新 、四半期 単位 でデ ー タ集約 2)分 析 用 DBの 作成 (上 記 フ ァイ ル か ら識 別 番 号 を キー に して分析用 の 統合 DBを 作 成 3)シ グナル 分析 し有 害事象 を抽 出 (毎 月 、 また は少 な くとも四半期 単位 で実施 4)抽 出 され た有 害事象 を可視 化 し、重大 な有 害 事象 が発 見 されれ ば必要 な対策 を実施 : ) ) ) 上記 の 1)に 関 して 、JADERの 新 規 デ ー タ公 開時 には新規症 例報告 の他 、過 去 の症例報 告 の 追加 ・修正 を含 めて DBが 毎 月 再編成 され そ の正 規化 フ ァイル が公 開 され る。 ただ し最新 デ ー タの登録 か ら DB公 開まで に は最大数 か月 間 の 時 間遅れ が あ る こ とに注 意す べ きで あ る。公 開 され る 4種 類 の フ ァイ ル は 、症 例 一 覧 (demo)、 医薬 品 (drug)、 副作用 (reac)、 原 疾 患 (hist)で あ る。 4フ ァイ ル の合 計 サイ ズ は 55mB、 統合 DBの デ ー タ件数 は 7,585,799件 であ る (2022年 6月 現在 )。 新 型 コロナ の影 響 を受 けてか、 この 1〜 2年 でサイズが 急 拡大 して い る。 なお アメ リカ の 副 作用 DBで あ る FAERSの 場合 は 、DBが 極 めて 巨大 な の で月別 に新規 分 の フ ァイ ル の み が公 開 され 、過 去 デ ー タは不 定期 に公 開 され る削除 リス トで処理す る仕組 み にな ってい る。 上記 の 3)に 関 しては、シ グナル 分析 用 Rパ ッケ ー ジ PhViD(Pharm¨ oVigilance signal Dctcction)を 用 いた(6)。 また 4)に 関 して は ヽPお よび EXCELを 用 いた 。 PhViDが 計 算 す るシグナル は次 の 4種 類 で あ る。 そ の うち疫 学的方 法 に よるシグナル は ・ PRR(Propononal Шsk R o、 報告割 合 比 ) 186 :

195.

。ROR(Rcpomng Odds Ratio、 ま た 、 ベ イ ズ 法 に よ る シ グナル は 報 告 オ ッズ比 ) : ・ BCPNN(Baysian Conidcncc PЮ pag誠 lon Ncwal Nctwork) ・ GPS(Gamnla‐ Poisson Shrinkcr) 上 記 4種 類 の シ グナ ル の 意 味 、 シ グナ ル 検 出判 定基 準 (点 灯 基 準 )等 を図表 1に 示 す。 図表 1.PhViDに よるシグナ ル 計 算 出 力の判 定 基 準 PhViD関 数 PRR ROR 説明 (報 告割合比) 出力 変 数 名 LB9s(os(PRR) Repoting GPS Baysian Confidenc€ Propag*;on [注 値の95%下 限 RORの 自然 対数 LB95̲log(PRR))>0 基 準 の根 拠 loま PRR)の シグナル 略称 PRR 統計分布 ROR)の 統計分布 ROR 25%IC値 >0 統計分布 iC 5%λ 値 >2 FDA推 奨値 λ LB95̲log(ROR),>0 Op 025(loKIC)) 25%IC値 Q̲005(lambda) λの事後分布 の 5%区 分値 GammaShrinker PRRの 自然対数 シグナル検 出判定基準 値の95%下 限 LB95(loま ROR)) (報 告オッズ比) BCPNN 意味 loま PRRお よびROR(の 自然対数値は近似的に正規分布と なることを利用して判定基準が決まる 〕 2.2 全 体 シ グ ナ ル 分 布 の 特 徴 最近 の JADERデ ー タに関 して、前述 の 手順 で作成 した分析用 DBの 全体像 について述べ る。まず シグナル 分析 の基本単位 である 「医薬品―副作用 (有 害事象)」 別 にイベ ン ト数 (副 作用発 生数)を 確認 す ると、1 件 だ け とい うケースが 46%で 最 も多 く、3件 以下の合計比率 は 71.6%で あった。副作用 DBに お いて は 3件 以 下 とい う少数イベ ン トの 「医薬品一副作用 」 が圧倒的に多 い ことが分 かる。 次 に 4種 類 の シ グナル の 1変 数分布 を図表 2に 示す。 い ず れ も正 規分布 に類 似 した分布 を示 し、 シグナル 検 出基 準値 は PRRお よび RORの 場合 は各 分布 の 中心 で あ る。 一 方 、BCPNN(IC)と シ グナル 検 出基 準値 が 平均位 置 か らプ ラ ス の 方 向にずれ て い る (75%点 に近 い )。 GPS(λ )の 場合 は、 このた めベ イ ズ 法 に よる シ グナル は疫学的 シ グナル に比 べ て点灯 しに くくな る。 各 シ グナル 間 の代表 的 な散布 図 を図表 3に 示す。重大 な有 害事 象 の位 置 を 目視 で確認 す るに は、デ ー タが 散 らば っ てい る (つ ま り相 関係数 が小 さい )方 が 見易 い 。 そ こで 、 「IC対 ROR」 を有害事象 マ ップ① 、 「IC 対 λ」 を有害事象 マ ップ② と名付ける。 有害事象 マ ップ① は疫学的 シグナル 対 ベ イ ズ法であ り、有害事象マ ップ② はベ イ ズ法対ベ イ ズ法である。後者 は少数イベ ン ト数 の場合 の効果的な検 出を期待 したが 、実際 には (後 述 の よ うに)有 害事象 マ ップ① と② の 可視化上 の情報量 の差 は少なく、有害事象マ ップ① だ けで も十分 である ことが分 かった。 シ グナル全体の二次元散布図を図表 4に 示す。点灯 シグナル数別 に分ける と、「ホ ウキ状」の分布 の「柄」 の部分 は点灯シグナル数 0、 「ホ ウキ」の部分 には、 「柄 」に最 も近 い部分 に点灯 シグナル 数 1(少 数 なので 見 えない)、 次 いで点灯 シグナル数 2が 分布 し、 「ホ ウキ」 の先 に伸びる部分 には点灯シグナル 数 3と 4と が分布 している。点灯 シグナル数 0〜 4種 類 の比率は、順 に 49.9%、 187 0■ %、 204%、 164%、 132%で ある。

196.

図表 2.4つ のシグナル の 1次 元分布 Li=ぁ 務1希 PRR ROR iC ―λ 2 0 0 1を │]lnill:│││││││││││││││││││││lilil 11'1軒 百三II I」 :三 二 1lI̲ ‐ 画面百T三二: :鰤 雛 三二I データ:201911 注〕 をシゲナルの率定基準値を失印〈―――レ)で 示す 〔 図表3各 シグナル間の代表的な散布図と有害事象マップ 酔 ′ 帯 纂② / 橿 」 」′ ′ 「 「 " データ 1911 氏ヽ ● 図表4.各 シグナル間の二次元散布図の例 ROR■ Caの 二次元散布図 │ 点灯シグナル数 ●=4 データ : 202206 RORの 代 りにPRRで む散 布 図 は ほ とん ど同 じ 188

197.

4種 類 の シ グナル が どの よ うな組 合せ で点灯す る のか検討 した 。 シ グナル分析 結 果 を点灯 した シ グナル の 組 合 せ別 に集 計す る と、① PRR、 ② ROR&PRR、 ③ ROR&PRR&IC、 ④ ROR&PRR&λ 、 お よび ⑤ROR&PRR&IC&λ の 5種 類 となった。 これ らの包含関係をベ ン図として図表 5に 示す (こ の可視化法は先 行研究(7)を 参考に した)。 この図より、 リスクが経時的に高まる場合 のシグナルの点灯順序は次の 4通 りで あ るこ とが予想 で きる :① PRR、 ② PRR&ROR、 ③ (PRR&ROR)&(IC or λ)、 ④ PRR&ROR&IC&λ 。 ま とめ る と次 の よ うにな る。 1)疫 学 的 シ グナル で あ る PRRと RORは 、最 初 にか つ ほ とん ど同時 に点灯す る (い わ ば 「前衛 」 )。 2)ベ イ ズ法 のシ グナル ICと λの点灯 は PRRと RORに 遅れ る。 これ らのベ イ ズ 法 の シグナル 点 灯 は安全 性 上 の警 戒情報 で あ る (い わ ば 「後衛 」 )。 3)重 大 な有 害事象 では、4種 類 の シグナル が 同時 に全 て点灯 す る (た だ し、4種 類 の シグナル が全 て点灯 して も重 大 な有害事象 とは 限 らない )。 した が つて 、4種 類 の シ グナル全 て の 点灯 は、重大 な有 害 事象 のス ク リーニ ング条件 と考 え られ る。 ただ し、 ただ し上記 の点灯順 序 は、2004年 以 来 の DBの 全デ ー タ を用 いた通 時的観 察 に よる もの で あ る。 個 々の 医薬 品 の シグナル の経 時 的 な点灯順序 につ い ては別途 検 証 が必 要で あ る (後 述 )。 図表 5.4種 類のシグナルの包 含 関係 (ベ ン図) ROR CPtt onlγ (0.蓋 %) tAO.3o/;\ ')RoR&PRR lC PRR (])ROR&PRR&!C (9,8%) ④ROR&PRR銀 (23.1%) ⑤ ROR&PRR&ICStλ (26.7%) ァータ:201911 く上記楕円の外でな、点灯シグナル数=0) 3.副 作 用 シ グナ ル の 可視 化 とそ の 活 用事例 3.1 副作用 シグナル活用による重大有害事象の発見手順 副作用 シグナル分析 を活用 した重大有害事象 の発見手順は次 の通 りである : 1)発 売直後か ら対象医薬 品 の副作用 シグナル 分析 を定期的 に行 う (最 低 で も四半期 に 1回 )。 2)毎 回、有害事象 マ ップで留意すべ き有害事象 を特定す る (添 付文書に記載済 か どうかの確認 3)専 門家 による精査の後 、必要 があれば直 ちに安全性に関す る措置を行 う。 4)そ の後 も、定期的に対象有害事象 のモ ニ タ リングを行 い 、上記 2)と 3)を 継続 的に行 う。 なお、 リス ク管理計画 (RM⇒ におけるシグナル分析 の活用 につい ては後述す る。 189 )。

198.

3.2 事例 1:抗 凝 固剤 の重大有害事象 の早期発見 抗凝 固剤 「ダ ビガ トランエ テ キシラー トメタンスル ホン酸塩 (販 売名 :プ ラザキサ)」 は 2011年 3月 に販 売開始 され た。販売開始 直後 か ら重大な有害事象 が発見 され、2011年 8月 12日 には 「重篤 な出血性 の副作 用」につい ての安全性速報 (ブ ルー レター)が 発 出 され、警告 とその対応が要請 された。 そこで販売 開始直後 のデー タ (201lQl)を 用 いてシグナル分析 を行 った。図表 6の 有害事象 マ ップ①に よ れ ば大腸 出血 、 胃腸出血お よび メ レナ (下 血)が 重大有害事象 であることが検 出 されてい る。 ここでは割愛 す るが、有害事 象 マ ップ② で もほぼ同様 の結果であ り、有害事象 マ ップ①だけで可視化の 目的 は果 たせ るこ とが分 かった。 図表 7は 胃腸 出血 に着 日したシグナル値 の経時変化 (モ ニ タ リング)で ある。発売直後か ら 高 い水準 にあった 4つ のシグナル値 は少 しずつ低 下 してい ることが分 か る。 図表6.ダビガトラン(プラザキサ)の 有害事象マツプ① ス霧 出壺 1 == メレナ '日 一 一 一 2 . う彗 ︐ ´ r . 要注意領域 (― ): (25%lC値 ≧o) はORp5%下 饉≧0) ( ):イ ベント数 N=108 データ:201lQl Q ().=025̲lo9̲11E 図表 7.特 定有害事象のシグナル値の経 時変化 ダビガトラン(プ ラザキサ)の 胃腸出血 シグナル時議舞口 0生 ◆0露 鶴 :"110̲2曖 :α E凛 島l:̀ピ ″ トランエテ■シラー トメタ ンスルホ ン餞壼 奪警1事 拿 "″ 苺ぉ 一 一 一 一 一︻ 一一.︐ 入…=→ ノ PRR&̲.:. ROR ,.1 lC ヽ ′ ・ ̲ 1` 、 ・ 一 ・一 一 一 一 一 一 一 一 一 一 一 一 一 ● ‐ ︲ 武 ● : / tν/ヽ ・ 一 一 一 ︐ ヽ 一 一 一 販売開始 :201lβ │││‐ IL011781: 安全性送報 (出 血 │‐ )│││‐ │‐ ..・ … … .̲...… … .、 ・ .∴ .. ・ ..… 二 =.…§19,992奎 雙受1警 警鬱鸞彙里磯 │1曽 1曳 ,見 受餞留曼螢│1990ま 員鶯1曼 ││1員 冤│││││三 曼鶯覺見昆見屁羹長│1羹 1員 長ミ農││1覺 ・● ● :: 量 燒書 =猿 3.3 事例 2:販 売開始後 時 間が経過 してか ら発見 され たがん治療薬 の重大有害事象 販 売 開始 直 後 に重大 有 害事 象 が 発 現す る とは限 らず 、販 売 開始後 時 間 が経過 して か ら重 大 有 害 事象 が発 現 す る場合 が あ る。 そ こで 、 シ グナル をモ ニ タ リン グす る こ とに よ り重 大有害事象 を発 見す る こ とが重要 で あ り、その事例 を述 べ る。 190

199.

が ん治療 薬 「ニ ボル マ ブ (遺 伝子組 み換 え)(販 売名 :オ ブ ジー ボ点滴 静 注 )」 は 2014年 9月 に販 売 開始 され た。販 売 開始 か ら 6年 を経過 した 2020年 11月 5日 に安 全 性 に関す る指 摘 事項 と添付文書 改 定 が行 われ 、 「重 大 な副作用」 と して 「劇 症肝炎 」 が追 記 され た。 図表 8は 、販売 開始 後 1年 半 のデ ー タ (2016Ql)を 用 い た有害事象 マ ップ① で あ る。確 か に 「肝機 能異常」 が 検 出 され てい る。 この 「肝機 能異 常」 の シグナル 値 が 販 売 開始後 か らどの よ うな推移 を して い るかを図表 9に 示 す 。 「肝機 RORは 発売直後 か らシ グナル が点 灯 し、少 し遅れ て ICが 点灯 してい 能 異 常」 のシグナル 値 の うち、PR:Rと る。一 方 4番 目の シ グナル で あ る λは 2015Q2に 点灯 し、合 計 4種 類 のシ グナル が この時期 に点 灯 してい る。 この シ グナル 点灯順 序 は全 体 シ グナル 分布 に基 づい て 2.2で 導 い た (通 時 的 デ ー タに基 づ い た )点 灯順序 に 一 致 してい る。結 局 、2015Q2が 警 戒 を要す る時期 だ っ た こ とが分 か る。そ の 後 一 時低下 した (何 らかの対策 が打 たれ た可能性 が高 い )後 、2018Q4か らシグナル 値 が急 増 し、特 に 2019Q2と 2020Qlに お い て は 、 λが 判 定基準値 を僅 か にオ ーバ ー してい る。 なお 図表 は割愛 す るが 、2018Q4か らは 「肝機能異 常 」 の イ ベ ン ト数 も急増 してい る。 そ の 後 各 シ グナル 値 が低 下 した時期 は あ る も のの 、2020年 頃 に向 けて徐 々 に大 き くな り確 か に 「肝機 能異 常」 に つ いて警戒す べ きだ った ことが 分 か る。 図表8ニ ボルマブ(オ ブジーボ)の 有害事象マップ① 要 注 意 領 域 (― ): (25%lC値 ≧。) (RCR̲95%下 限 ≧0) ( ):イ ベ ント数 ― N=21フ データ:2016年 1∝ 図表9.特 定有害事象のシグナル値の経時変化 ニボルマブ(遺 伝子組換え)の 肝機能異常 シリナル時系列口 0′ L:20″ 00日 面 :2● 1■ ●̲202,0 ボルマプ (薇 伝子組換え)● 害事彙 :肝 機能異鷲 医薬品 ̀ニ ̀ゝ⌒贅ノ 11簸 λ ハ畿` 、 ̲′ ■ ア ヽ PRR& R()R ,Ⅲ IC :鱗 ::議ユ ││ク 1鷺 鬱 販デ :曖 攀 =9意 ,懸 0奎 9g驚 鷺 黛 製 添付文書改訂 14ノ 9 ││1111111 (肝 機能):202夕 11 191 2 1雪 磁 § e,彎 oo≦ ' 蔦 ミ翼資ミ 交 ミ ミ ミ

200.

3.4 事 例 3:新 型 コ ロ ナ ワ ク チ ン の 有 害 事 象 の 可 視 化 新型 コロナ感染者増加 に伴 い、2021年 初 めか ら日本全国で本格的な集団接種 が開始 された。それ に伴い多 数 の副作用報告が JADERに 登録 されてい る。そ こで新型 コロナ ワクチン「コ ロナ ウイルス修飾 ウ リジンRN Aワ クチ ン (SARS― CoV‑2)」 (フ ァイザー社製お よびモデルナ社製 )の シグナル分析 を行 った。 2021Q2の デー タに対す る有害事象 マ ップ① を図表 10に 示す。比較的 目立 った有害事象は「失神寸前 の状態」、 「冷汗」、 「口腔咽頭不快感」、 「ワクチ ン接種部位疼痛」 の 四つで、いずれ もさほど深刻 とは考 え られな い。点灯 シグナル数 の合計 はす べて 3以 下であった。なお、接種 開始か ら 2021年 末までの接種者 総数 (推 定 値 )の デ ー タを用いた有害事象発生率 の推 定値 は 0.043%で あつた。 図表 10.新 型 コロナワクチンの 有害事 象マツプ① 爽鶴寸嗣の状態 `再て:耕 (塑 F \ 睡 鶴 ) 不懸 ̀301) つクチン授種鬱セ磐 ■ (2 ) 8 ゴ ﹁3 3 ︐ 要注意領域 (一 ): (2.5%IC値 ≧0) (ROR 95%下 限≧0) ( ):イ ベント数 ‐ ・' 身 「 各有害事象の点灯シグナル数は 3以 下であり、菫大な有害事象が 発生している兆候はない N=2278 データ12021年 α QO̲0さ ̲1"│̲lC 3.5 リ ス ク管 理 計 画 に お け る シ グ ナ ル 分 析 の 活 用 リス ク管理計画 にお けるシグナル 分析 の活用イ メージ を図表 11に 示す。 毎月 JADERの シグナル 分析を行 い 、重大 な有害事象やその前兆現象 を早期発見 しよ うとい うものである。 ただ し最新デー タの登録 か ら DB 公 開までには最大数か月間 の時間遅れがあ ることに注意す べ きである。専門家 による精査がシグナル 分析活 用 の前提 である。 PMDAに おいて は、支援 システ ム にお い て ROR、 BCPNN、 GPSの シグナル が採 用 され て い る。 そ の運用 経 験 に よれ ばシ グナル 分析 へ の過 大 な期 待 は禁物 であ り、専 門家 の人手 に よ るチ ェ ックを含 む総 合 的 な判断 が 不 可欠 であ る として い る(2)。 さらに JADERに 関 して は 、 自発 報告 で あ る こ と、お よび報告 登 録 か ら DB公 開 まで に最 大数 か月 間 の 時 間遅れ が あ る とい う本 質的 な限界 が あ る。 そ こで PMDAで は 2018年 か ら、全国 10拠 点 23病 院 と連 携 して大 規模 医療 情 報 DBで あ る MID‐ NETを 運用 開始 して い る (8)。 MID― NETで は、電子 カル テや 検査デ ー タをほ ぼ リアル タイ ム で収 集 かつ 統合す る こ とで、副作用 が疑 われ る事例 に つ い ては迅速 に 検 証 し安全性 評価 に活 か す こ とが可能 に な った。MDNETは 製 薬企 業 が 実施 す る製造販 売 後調 査 に も (有 料 で )利 用可能 で あ る。 192

201.

図表 11.リ スク管理計画 (RMP)に おけるシグナル分析の活用 医薬 品のリスク管理 計画 (RMP) リ ス ク 最 小 化 プ ラ ン ファニマコビジランス(PV=医 薬品安全性監視)プラン 症例調査 グ 注],Mい ,RM用駐菫ベーンを参考にした 〔 4。 て . ・シグナル議算関数 の月次起動 D ル果 ││lt= ﹃ ナ結 ︲ 洵 グ出 シ績 5日 遣琴 毎月■ データリリこス 更1第モ (報 告日は四半期単位 である月次更疏D 一 一 一 一 一 ︿フ シグナル 分析プログラム データ 安全性検討事項 . 必 要 (こ自 ズ 碗 時 時 系 列 分析 専門 によ 精査 検証 る 検 討 事項 有害事豪の分類検討= 0重要樹勝む針■ リスク (lR=:mp.ld.R● 0 ②重要な港自的リスク (PR=imp.Pct.騒 30 0重 要な不足情報 (MI=imp.Mis.!nfo〕 ま とめ 副作用 DBの シグナル 分析 を用 いて 、重大な有害事象 の早期発見や販売開始後数年 を経 ての重大有害事象 の前兆の検 出が可能である ことを明 らかに した。有害事象 マ ップで可視化す ることによ り、重大な有害事象 の有無 と優先順 位 を判断可能 である。そのためには、添付文書 に記載済 の有害事象 とそれ以外 とを区別す る ことが重要であ る。 シグナル 分析 の関数化な どで 、 あ る程度 の省力化 は可能 と考え られ る。 ただ しシグナル 分析へ の過大 な期待 は禁物であ り、専門家 の人手 に よるチ ェ ックを含む総合的な判断が不可欠 である。 参考文献 (1)医 薬 品医療機 器 総合機構 (ハ 狂)A):医 薬 品 リス ク 管理 計画 (ハ 狂)Aの RMP関 連 IP記 事 ) (2)村 井和浩・ 飯 村 康 夫 :デ ー タ マ イ ニ ング手法 の 安 全 対 策 業務 へ の導入 と活 用 、 フ ァル マ シア 、V01.50 No.6 (2014) (3)高 橋行雄 他 :PMDAの 「医薬 品副作用デ ー タベ ー ス 」 を用 い た副作用 リス クの評価 1〜 5、 SASユ ー ザ総 会 (2012) (4)松 井和宏 :医 薬 品安全対策 に向 けた最近 の 取 り組 み 、久 留米 バ イオ統計 学 フォー ラ ム (2013年 9月 27日 ) (5)渡 邊裕 之他 :重 要 な安全性 情 報 を早期 に検 出す る仕 組 み ―シ グナル 検 出 の最 近 の 手法 に つ い て 、計 量生 物 学 Vol.25,No.1,37‑60(2004) (6)IsmaTl Ahmed&A鮎 oine Poncet: PhViD‐ an R packagcお r Ph″ macoVigilance signal Detection,November 3, 2016 (7)Toshiyuki Sakaeda et」 .:Commonali,of Drug― associacd Advcrsc Eve■ s Detectcd by 4 Commonly Used Da● Mining Algorithms,Int J.Mcd.Sci.2014;11(5):46卜 465 (8)宇 山佳 明 :医 療 情 報デ ー タベ ー ス (MID― NET)を 活 用 した これ か らの 医薬 品安全対策 、AMEDレ ギ ュ ラ トリ ー サイ エ ンス シ ンポ ジ ウム (2017年 2月 ) 193

203.

オープンデ冒夕/統 計理論/生 物統計・ 医薬関連 /SASシ ステム/ SASOJMP教 育/そ の他関連分野

205.

世界初 の高次元癌遺伝子デー タ解析 理論 ○新村 秀 ‑1 (1成 嘆大学名 誉教授 ) The world's first theory of high― dimensional cancer gene data analysis since 1995 Shuichi Shinmura Emerltus Professor of Selkel Unlverslty 要 旨 1995年 に米国で Microarrayと い う検査機器 で動物の遺伝子 が出す蛋 白量 (発 現 量)が 計測 できるよ うになった。全 動物 の生命現象 は、各種の蛋 白量で制御 され る。2004年 までに第 1世 代 の有名 な 6デ ー タが公 開 され た。統計や機械 学習 (■ L)や AI等 の研 究者 が、この研究 に と り組んだ。沢 山 の研究論文はあるが良い成果が出な いので 、1)高 次元デ ー タを解 析 できる手法 がない、2)高 次元 の 多 くの雑音 か ら癌 と正常 を分 ける信号 を見 つ けるのが難 しい、3)癌 と正常を 分 け る遺伝子の組 (信 号)を 見つ ける Feature Selection(「 S)は NP― hardで ある、 とい う 3つ のバ ズワー ドが論文の言 い訳 になった。「高次元デ ー タは従来 の小標本 を対象 とす る統計 と異 な り、新 しい高次元の統計学 を作 った」 とい う研 究 もあ る。これ ら全て の理工学研究や医学研 究は間違 いで あ り、人類は癌撲滅 のための 25年 の無駄 な時間を費や した。 p)が 計測 された場合、従来 の統計が対象 と 仮 に癌患者 と正常が各 50名 の 1万 個 の発 現量 (n=100で p=10000の nく く した通 常 のデー タ (n〉 =p)と 異なつてい る。 このため冷静 さを欠 いて間違 った研 究 を続 けた。筆者 は、 1999年 にヘル シ ン キ で 開催 され た 国 際 統 計会議 (IS」 )と エ ス トニ ア のサ テ ライ ト会議 で誤 判 別 数 を最 小 化 (M■ nimum Number of Misclassification,INM)す る最適線形判別 関数 (Optimal LDF,OL膵 )を 発表 した [1]。 そ して Revised IP‑OLDF(RIP)を 用 い て 、判別理論 の 4つ の深刻な問題 を 2つ の重要な事実で解決 した。Factlは 「LDFの 判別係数 と NMの 関係」 であ る。 lil(12は MNMの 単調減少性 (MMk〉 =MNM(k+1))で ある。2015年 に医学診 断にも役 立つ判別理論 [2]を 完成 した。そ の応 用 と して 6デ ー タを判別す ると、簡単に 硼 M=0で LSDで ある こ とが 54日 で分 かった。一方山中教授 が 3万 個以上の遺 伝子 か ら Ratの ES細 胞 で活性化する 24個 の遺伝子 を遺伝子 DBで 見つ けて FSの 困難 さを解決 した。 工学部出身 の高 橋講 師が、生物や 医学 の常識 に反 して 24個 で実験す ると「万能細胞 の塊」がで きた。恐 らく変数減少法 の考え方 で「万 能細胞 の塊ができるかできないかの選択 基準」で遺伝子の組 を絞 り込み医学研究初 の多変量 の 「山中 4因 子」 を見 つ けた。それ と同 じくロジスティック回帰 で 1万 個 を判別す る と、自由度 (D「 )が ほぼ 100個 の LSDに なる DF遺 伝子集合 が 自然 に求まる (構 造 1)。 RIPで 判別す るだ けで Small Matryoshka(SM、 構造 2)と い う 100個 以下 の遺伝子 の組が求 ま る。 変数減少法 の考 えで Basic Gene Set(Ь CS、 構造 3)と い う山中 4因 子 と同 じ多変量 の最小次元 の Linear Separable Data(LSp)が 求ま り、Matryoshka/Nested構 造 を持つ (持 造 1)と い うF(1(13を 見つ けた。全ての研 究 の第 2の 間違 い は、 DFや SMや BCSを 求 めた後、それを省 いて 2番 目以降の 「癌遺伝子 の候補」を見つ けてい ない。たった一組 の間違 った 50個 程度 の遺伝子 を求 めて、残 りの 9950個 の遺伝子 を雑音 と考 えている。Fact3は 、「判別理論 を革新す るデー タ構 造」 である。全ての動物 の発現量か ら Theory2と 同 じ画期的な遺伝子 の組 が 医学知識 が無 くて も高校生で も見つ ける 事 がで きる。 さらに Fact3は Bigデ ー タ解析 の福音になる。以上 の結果 を 2021年 に American Council for Science バイオ会議で、 and Educationが 開催す る CECS(Computor Engineering,Computor Science and Applied Computor)の 「これ まで全ての研究 は 23の 間違 いが あ り役 に立たない [3]。 そ して筆者 が初 めて Theory2を 開発 した [1]」 とい う論 文が 、革新的な研 究 と激 賞 された。以上 の詳細 は、2冊 の Springerの 書籍 と 11冊 の研 究叢書 に収録 された 11論 文で も分 か る。2020年 までの詳細な研究内容 は、Research Cate(RG:li tps:● lww resealcI̲111ビ Sh i n11ltl rd)か llet l,● flle Shuit hl― らダ ウンロー ドできる。 また 日本語 の統計 シンポジュームの 12論 文 を参 考資料にま とめた。 キー ワー ド :医 学診 断 に も役 立つ判別理 論 (Theoryl)、 高次 元 デ ー タ (n〈 p)の デ ー タ解 析 (Theory2)、 テ ィ ック回帰 の DFと RIPに よる SMと BGS分 割 、LSDの Matryoshka/Nest構 造 (Fact3)、 197 酬Щ LSD、 ロ ジス Big Data解 析 .

206.

1.は じめ に 著者 は京都大学で複素 関数論 を学んだが、数学者 にはなれ なか った。小学校 でガ ウス に会い、高校 で複 素数 に興味 を持 った。社会人にな り統計 を勉強 し、ガ ウスが Fisherら が開発 した推論統計の基礎 で あるガ ウス分布 と最小二乗法 を見つ けた ことを知 った。 1971年 に採用試験 が終 わっていた住商 コ ンピュー タサー ビス (株 )に 入社 し、大阪府立成人 病 セ ンターで NECと の共 同研 究 の心電図 (E(G)診 断論理 の開発 を担 当 した。Fisherの 線形判別関数 (Ll)F)と 二次判別関 数 (ODF)を 用 いた 4年 間 の成果 は、野村医師に よって開発 された決定本論理 (1)T)よ り劣 っていた。 この失敗 は、医学的 診断 のた めの新 しい判別理論 の 開発動機 になった。野村医師は、ROC曲 線 を用 いた 医学診 断を提案 した Lusted博 士の 本 を翻訳 した。Medlnfo77で Lusted博 士が座 長 のセ ッシ ョンで論文 を発表 した [5]。 東大名誉教授 の開原 講 師 も発表 さ れた。会議終了後、彼の月例ゼ ミで 日本医科大学 の三宅教授 らとロジステ ィック回帰 を学んだ。2人 は小 学校 か ら東大 までの同級生である。 三宅 と新村 は、1)剛 M基 準 に よる ヒュー リステ ィック OLDFの 研 究 [6,7]と 、2)正 規 (Gauss)分 布 に基づ く母集 団 と標本 の誤判別確率 (駅 )の 研 究 (2群 の症例数 が異 な るほど、例数が少 な く変数が多 い ほ ど、標本 ER は母 ERよ り過少に良 く評価 され る)を 行 った。 1978年 の IFIPの 発表 [8]で 、Lahenbruch[9]か ら 「本研 究 は正規分布 を仮定 してい るが非正規 へ の拡張はあるのか」 と質問 された。彼 は k重 交差検証法 (k重 CV)の 雛形 で あ る L00を 、 判別分析 の評価 に用い るこ とに貢献 した。著者 は行動計量学会誌 の編集者 の一人だ ったが 、 ヒュー リス テ ィ ック OLDF に関す る 3年 間の改訂論文 は、 「正規分布 を無視 した愚かな基準 」 として却下 され続 けた。そ こで 日本 ME学 会に論文 を提 出 し、修正な しで受理 された。 三宅先生 と開原先生の 口添 えで丸山千里先生か ら、 「32万 症例 の癌患者デー タの分析」 を依頼 され た 。対照被験者 がいないため、術後 1年 以 内に SSM治 療 を開始 した 19万 人 の患者 を選択 し、術後 の SSM投 与開始時期 か ら 3ヶ 月ごと の 4期 間に層別 した。重 回帰分析で 「術後 3か 月以 内の投与患者 は、9か 月以上の患者群 よ りも平均余命 が長 く、SSM は水 と同 じくらい効果 がない とい う帰無仮説 を棄却」した論文 が 医療情報学会誌 (編 集長 :大 橋)で 採択 された。この よ うに、対照群 と比較す る こ とが医学診断に不可欠 である。 マ ス コ ミが医療情報学会 の発表 に注 目し業 界紙 のイ ンタ ビュー を受 けた。 当時厚 生省 の郡司課長 か影響力 のある開原先生 の判 断 と考えるが 、厚生省 が SSMの 治験薬 の続行 を 前 日に公表 し発表当 日のマ ス コ ミの取材が無 くな った。大橋先 生か ら、 「私が医師を組織 して第 4層 比較 臨床試験 を 行 います」と言われた。研 究者 は SSMに 関わる こ とを嫌 う雰囲気 が あったので、開原先生 の了解 を得 てい た と考える。 彼 の努力 で特定の癌 に対 して認 可 され、行動 と企画力 に富む大橋 先 生 と脱帽 した。癌診 断で最初にす る こ とは、癌患 者 を正常 と比較検証す るこ とである。癌研究では 3年 生存率に焦点 を合わせ、2群 判別 を無視 し剛 や ERを 検討 してい ない研究が多 い とい う他 の 医学診断にない問題 が ある。 1971年 か ら 1984年 まで、鈴木隆一郎医師 と大阪成人病 セ ンター の多 くの癌 の疫学デ ー タを分析 し、 日本語論文 と ROC曲 線 で複数 の判別結果 を評価 した英語論文 を発表 した [10]。 本研 究 のスク リーニ ング法 と同様の 「標 準的な分析手 順」 を開発 し、医学診 断 の重要 な原則である次の 「」考設計 の 3原 則」を確立 した [il.12]。 1)最 初 に疾病群 を対照群 と比較す る。医師は 、 この分析 を参考 に 2つ の異なる疾病群 を分析す る。 2)両 群 の標本数 がほぼ等 しい ことが望ま しい。 3)通 常、統計研究は標 本数 が多いほど望ま しい と考 えている。 会社員 が統 計 と数理計 画法 (MP:高 校数学 の 「領域 の最大/最 小 問題」が理論の基本 )を 勉強す るた めに、SASの 計 算セ ンター と 4年 間 VAX版 の販売代理店にな り 32の 製薬メーカー と東洋信託銀行 に SAS/Vaxを 納品 した。また シカ ゴ 大学 の ビジネ ス・ ス クール で 開発 された MPソ フ トの LINDO社 の代理店 にな り、社 内で統計 と MPを 勉 強す る立場を固 めた。多 くのマニュアル を翻訳 し、30冊 の 日本語 の本 と論文 を出 した。 これが 「SASと LINDOを 個人 の家庭教師 とす る」 とい う私が見つ けた最 高 の独学勉強法 である。分 か らない こ とがあれば、小 さなデ ー タでその回答 を 自分で探す 繰 り返 しで習得 した。 「1995年 以降の全ての Theory2の 研究 が失敗 したのは、高度 な統計 と MPソ フ トでの実証研究 と、 これ らの手法を体系的 に理 解 していない研 究者 の失敗」で あ る。 単に論文や本 に書 かかれた数式 で綺麗 な数学理 論 を習得 しただけでは 、この 問題 を解 く資格 がない。英語では Bookス マー トとい うよ うだ。筆者や本会議 の参加者は、 198

207.

統計 ソフ トの助 けを借 りる見っ ともない Streetス マー トと見下す雰 囲気 が一部 の理論統計家にある。そ こで 「使 いや す い最高峰 の統計 とロ ソフ トで、デ ー タで表 され る対象 と数式で表 され る対象の問題解決型の教育が必要」と学会や 論文で言 ったが普及 しなかった。そ こがオバマ と影響力のない私人 の違 いである。 開原先生は国際医療福祉大学学長 に予定 され たが 2011年 1月 12日 (木 )に 会議 中に亡 くな られた。そ の前年 の SAS ユーザー 会 の懇親会に突然顔 を出 され、 ウイ ス キー グラス を持 って 私 の ところに来て 「介護保険制度 の企 画責任 は私 にある」と一言言われてび っ く りして沈黙 した。その詳細や SSMの 裏事情 を聞きそびれ て真相は分 らず じまいである。 1995年 頃、 富 山中部高校 の 1年 先輩で高校始 まって以来の秀才 といわれ た D医 師が副院長 の東京都 の病院 を訪 問 した。 彼は若 くして筑波大学 の助教授 か ら転身 した。用件は厚生省 が数億 か けて集 めた特別要介護施設の 1分 間 タイ ムスタ ーデ ィ・ デー タの分析 である。 SPSSを 用 いて種 々の複雑な方法で アプ ロー チ したが失敗 していた。そ こで著者 はパー テ ィシ ョニ ングを使 えば良い とい うと、SPSSで できないか とい うので CHAIDOを 勧 めた。驚 くことに数か月 で分析 を終 え、分類木 を Cコ ー ドに置 き換 えた大規模 な統計 システムを個人 で作 った。 1995年 の秋 に筆者が大会長 の 日本計算機 統計学会 で発表 してもらった。 そ こで 「国会 で実施時期が決 め られ ていて 96年 (?)か ら在宅を含 めて全 国で実施が決 まった」とい う。「在宅デー タは分析 していないので省 くべ きであ り、特養 の分析 に用 いていない症例 で検証す るのが システム 開発 の決ま り」 といったが、すでに実施 時期が決まっていて 無理 とい う。 1996年 に成嗅大学の経 済学部教授 にな る と介護 の現場 か ら種 々の 問題 が報告 され た。在宅のぼけ老人 が 家族 の知 らない に うちに徘徊す るの に点数が低 い とかの問題 である。3月 まで D医 師 と私 は厚 生省 の担 当技官に誘 われ手弁当で開原 大蔵病院院長 の会議 に出ていた のに、先生 が企画者 と気づかない饂飩 さである。 5〜 6月 頃に厚生省 の課長か ら予算が付 い たので引き続 き正規 の委員 になって ほ しい と依頼があったが、D医 師が外 され ていたので断った。開原先 生には 申 し訳ない とい う気持 ちもあった ので折角 の機会に重要な ことを聴 き逃 した。現在 、検証 された最大規模 の統計 システ ム は うま く機能 してい る。 「LDFが 適切 であるテーマ と、階層性 のある多群 の分類 システムの構 築 には DTや Random Forest(RF) 多 くの研 究者は、 や分類木 を含む分岐手法が適切 であるとい う 2つ の診断手法 の使 い 分 け」を考えて いない。それ以外 の最適化でない 分類手法 は、実用システ ムの 開発 には適 していない と考える。工学研 究者 はこれ らの手法でデー タ毎の ERの 優劣比較 を してい る。 しか しRIPと ロジステ ィク回帰 とハ ー ドマー ジン最大化 SVM(11‑ド い1)[13]の 3種 の LDFは 、LSDで ER=0 にな り、他 の手法を必要ない。また外的基準 といわれ る群の分類情報 を持 つ多 くのデ ー タ分析 を通 じて 、判別分析 の 4 つの重大 な問題 [14,15]と 2つ の重大な事実 を発見 した。 Pr・ blenl:判 別 関数は、判別超 平面 (境 界線上 タ で 異 な る )の ケースを正 しく処理 できない。さらに種 々の判別 関数 は同 じデー NMと ERに な る 。 一 方 MNMは デ ー タ に 対 し て 一 意 で あ り 、 単 調 に 減 少 す る (酬 Mk〉 =Ш M(k+1))(Fact2)。 Fa(■ 1 は、剛 と LDFの 係数 の 関係 を示 す。 Wの 範 囲 は 0か ら nで あ り、 (n+1)個 の整数値 を取 るた め、 「判別 分 析 は Fisher の仮説 で はな く組 み合 わせ 理論 」で考 えるべ きだ。Factlと Fact2は 、iPS研 究 にお け る 山 中 4遺 伝子 の よ うに、Array が小 さな LSDの DF(構 造 1)と 構造 を持 つて い る (構 造 1)。 SM(構 造 2)か ら最 小 次元 の LSDの BGS(構 造 3)を 含 む Matryoshka/Nestさ れ たデ ー タ これ が 「LSDの 汎 用 的 な 4つ のデ ー タ構 造 を もつ 」 とい う Fact3で ある。 Fact3と い うデ ー タ構 造 の 新 しい事実 を、今 後 さ らに判別 分析 の研 究 で発展 させ た い 。 Problom2は LSDの 研 究 が な い こ とだ。 「MN‖ =0」 は、2群 のデ ー タ が LSDで あ る こ とを示す唯 一の 統 計 量 で ある。 Vapnikは 、 2つ の平行す る SVで デ ー タ空 間 を 3分 割 し SV間 にデー タが な い こ とで LSDを 定義 した。 LSD研 究 には、3 つの 通 常 の LSDが 役 立 った 。 ス イ ス銀行 1000フ ラン紙 幣デ ー タ (n=200*p=6)[16]は 、100枚 の真札 と偽 札 を判別 す る 6 個 の説 明変数 のデ ー タで あ る。 SASの All possible modelの 影響 で RIPで 63モ デ ル を判 別 し、 (X4、 X6)が 山 中 の 4遺 伝子 の よ うな BGSで あ る こ とを発 見 した。 従 って 、BGSを 含む 24モ デ ル は LSDで あ り、他 の 39モ デル は Fact2か ら LSDで な い 。LSDが 判別研 究 の 最 も重要 な基礎 で あ る こ とに気 づ い た 。他 の研 究 の 間違 い は、FSで 間違 った 遺 伝 子 の組 を選 んで 、種 々の分類器 (Classifier)の ERを デ ー タ毎 に調 べ て優 劣 を報 告 してい る。 LSDで ない デ ー タの比較研 究 は、 エ ン ドレス に論文 を大量 に 出 せ るメ リッ トが あ る。ML研 究 は、判 別 分析や他 の分 類 手 法や クラス ター 分析 まで も Classifierと 呼ぶが、子供 のお もちゃ箱や 私 の研 究資料 の よ うに整 理 され ていない。 試 験 の 合 否 判 定デ ー タは、 自然 な LSDで あ る こ とを発 見 した。大学 入 試 セ ンター か ら 3年 間 の 13の 本 間 と予備 の試 199

208.

験 デ ー タを貸与 され分析 した [17]。 数学 Ⅱbの ERは 30%を 超 えていた。 さらに QDFは 全合格者がある設 間を正答 した 場合 、全合格者 を不合格 と誤判別 した (Plっ blem3)。 これ は分散共分散行列 と一般化逆行列の問題 である。社民党 の菅 政権時に、某私大 の配布 ミスのため 3篇 の論文を取 り下げたので 、 この事実は 日本 で知 られていない。分散共分散行 列 に基 づ く全判別 関数 は、LSD判 別 には役 に立たない。MPで 定義 された RIPと H― SVMは 、LSDを 理論 的 に判別 できる。 また ロジステ ィック回帰 は、1000以 上 の SMの 判別で、DFが ほぼ nで LSDを 判別 できる事 を確認 した。 169種 の Microarrayが LSDで あ り、 RIPと H― SVMと ロジスティック回帰 の 3つ の LDFの み が Theory2に 役 立つ ことが分 かった。 Fact3は 、全動物 の遺伝子診断に加 えて Bigデ ー タ解析の福音 となる LSDの 重要 な普遍的なデー タ構造 になる。 また、LSD判 別 の信頼性 の観点か ら判別 関数 とClassifierの 5順 位 を提案 した [11][12]。 Rankl:RIPと ロジステ ィ ック回帰は LSD判 別 に最適である。H― SVMは 重複す るデ ー タを判別 できず 、多変量の癌遺伝 子 の候補 を選択できないため、多 くのユ ー ザー は使用 しない方 が良い。 Ra漱 2:他 の LDFの NMが 0の 場合、LSDで ある。ただ し、全 ての LSDを 正 しく判別 できない。 Rank3:QDFや カーネル SVMな どの非線形判別 関数は、LSDを NM=0で 判別できない場合 がある。カーネル SVMの アル ゴ リズムの面 白さに惹 かれ研 究す るのは 自由だが、癌診断に用 い るのは単なる趣 味 の研 究で、正 しい癌研 究 を阻害す る。 Rankl:多 層パーセプ トロン とナイーブベ イ ズ等は最適 なアル ゴ リズムがないため 、分析方法が異 なれ ば ERも 異なる。 また現実 のシステム作成 は困難で成功例 がない と考 える。成功例 があれば教 えて ほ しい。 R よ5:RF、 DT、 お よび パ ーテ ィシ ョニ ング (分 類木 または回帰木 )は 、多群 の 階層 の ある介護保険や 心電 図診断な どで 実績 がある。 しか し検証 に時間がかか るが、介護保険の初 期 システムはこれ を省 いたので社会問題 になった。以 上 か ら、 2群 判別 の場合 は Ranklで 、多群 で 階層 のあ る分類 問題 は Rank5の 手法 を用 い る とい う使 い 分 けが い る。 Rank2か ら Rank4は 実 用 システ ムの 開発 に利用 で きず 、単 に知 的興味 の 範 囲 の研 究 に とどめた方 が 良 い。 Problて ヽ1は ざ判別分析 は推測統計ではない点である。Fisherは 判別係数 と ERの 標準誤差 (SF)を 定義 しなかった。 ll〕 Lachenbruchは L00を 普及 し、工学研 究 は 「母集団 と標本の統計原理」に反す る一般的な k重 CVに 拡張 した。検証標 本 は疑似母集団で、学習標本 は母集 団か らの標本である必要 がある。従 つて 、ERと ロジステ ィック回帰係数 の経験的 な SEを 求める正 しい 100重 CV(Iel:I,dl)を 開発 した。本研究では、10重 CVを 使 用す る。10個 の学習標本 の平均 ER(Ml) ではな く、学習標本 の 10個 の RIPで 検証標本 を判別 して得 た平均 ER(12)で 判別結果 を評価す る。 フル モデルの Mlは 常 に最小であ り最適 な モデル決定がで きな い。All posslble modelで M2が 最小 のモデル を Bestと して選ぶ FSは 簡 単で強力である。 10重 CVは 元 のデー タを 10回 コピー し検証標本 とす る。乱数 で並べ替 えて 10分 割 し 10組 の学習標 本 とす る。学習標本 は検証標本 か らの標本 である。 これが正 しい母集団 と学習標本 の関係 になる。 RIPと Methodlは 4つ の 問題 を解決 し、2010年 には Thoerylが 完成 した [18]。 そ の応用 として Jefferyら [19]か ら ダ ウンロー ドした 6つ の第 1世 代 の Microarray(古 い Array)[2()‑25]を 分析 し、LSD研 究 の簡単な応 用 として基本的 な 高 次 元 デ ー タ分析 を確 立 した (I卜 ●r● 2)[26]。 さ らに Brunoら [27]か らダ ウ ン ロー ドした 163の 第 2世 代 の Microarray(新 しい Array)で Fact3を 確認 したので、世界初 の Theory2[28‑31]が 完成 した と発表で きた。 1995年 以降、統計 、ML、 AI、 パ ター ン認識 な どの多 くの研 究者 が Theory2を 研 究 してきたが、全 ての研 究は多 くの 間違 いが あ り、役 に立たない。169の Arrayは LSDで あ り、RIPの 全 ERは ゼ ロで あ り他 の研究 と比較す る必要はない。 発 現デ ー タが LSDで 4つ の汎用的なデ ー タ構造があることを示 した研究はない。 本論文では、Theory2を 1週 間程度 で高校生で も簡単に使 える実用的なスク リー ニ ング方法に作 り替 えた。4つ の異 な る Arrayの 想定外 の結果 か ら患者設 計 を変更 した 「癌患者設計 の新 しい 3原 則 」 の重要性 を紹介す る。 2.理 論 とデー タ これ まで 「3つ の通 常 の LSD」 と 「6つ の古 い Array」 と 「163の 新 しい Array」 を分析デー タとした。 3つ の通常 の LSDの 研究で、LSD判 別 の基礎 の Theorylを 開発 した。Theorylの 単なる応用 として、6つ の古 い Arrayで 発現デー タ が LSDで Fact3を 見 つ けて Theory2の 基礎 を開発 した。そ して 163の 新 しい Arrayで Fact3を 確認 し、Fact3が 全動物 の遺伝子診断に利用 で きることが分かった。 本研究では研究用 の TheOry2を 、 当初 医学研究者が癌研究 の最初に行 うス ク リー ニ ング法 として作 り替 えた。 しか し分析すべ き「多変量 の癌遺伝子 の候補」は万を超 える。そ こで 、向学心 の あ る高校生や大学生が遺伝 子デ ー タ解析 に 200

209.

取 り組む統計教育 のプ ラ ッ トー・ホームが出来ないか と考 えている。これで実践的な統計教育 と遺伝子 の理解 が進 む。 起業家精神にあふれ た方 が公的な教育 プ ラ ッ ト・ホーム を実現す ることを他 力本願 している。 2.1 3つ の 通 常 t/つ SI) 3つ の通常の LSDは 、 1)ス イス銀行 の真札 と偽札 (200*6)、 2)大 学セ ンター試験の後で行 った筆者 の 4年 間 の 8種 の 合否判定 (約 130人 の学 生*10の 選択肢 を持 つ 100個 の回答 )、 3)小 型車 と普通車 (24*6)で ある [」 ]。 紙幣デー タは、各 種 HPか ら入手できる。合否判定は、教育者 は 自分の試験 を利 用すれば良 い。 2つ の得点 Tlと T2で 50点 の合否判定 は、 (f=Tl+T2‑49.5)が (f〉 0)で 合格 、 (f〈 0)で 不合格 と判別 で きる自然な LDFで ある。49.5点 の学生がい ないので 問 題 1を 避 けられ る。合 否判 定 とArrayは 同 じデー タ構造 を もつ 。 SVl=50お よび SV2=49の 2つ のサポー トベ クター (Sヽ ) の 距離 は 1で 、得 点範 囲 が 100点 の場合 、2群 の線形 分離 度 を示す RatioSVは 1%(=SVの 距離 /判 別 ス コア範 囲 =1/100*100%)に な る。 更 に、多 くの合格 (癌 )と 不合格者 (正 常)が 判別超平面 の近 くにあ り、測定値 は得点 と発現量 と い う単一である同 じデ ー タ構造をもつ。 これ ほど単純明確 な判別デー タは無 い。 図 1は 、Factlを 示 す。 xl=(‑1/18,‑1/12)、 X2=( 1,1/2)、 X3=(1/9, 1/3)と す る。 1人 の正 常症例 (yl=‑1)と 2人 の癌 患者 (y2,y3=1)の 2変 数 デ ー タ (3*2)を 想 定 した。 この (3*2)の 連 立方程式 (1)は 解 けない。 1人 を省 けば (2*2)の 連 立方 程式 が解 ける。回帰分析 と判別分析は (3*2)の デー タを、t(3*2)*(3*2)=(2*2)の 正規化方程式 で解 ける。 この真実 は、 横長デ ー タ(nく p)に とって非常に重要であ る。p変 数 か ら n変 数 を選択 してデー タが分析できるが、pCn個 の組み合 わせ の検討 が必要にな る。 全研究者は高校数 学 の基本を理解 せ ず 、高次元デ 掟 ー タ分析 が非常に難 しい と主張 した。 (nく 〈 p)で なく単に (n〈 p)の 横長デー ′ タは、通常の統計デ ー タ と対応が異なる とい う基本的な知識 の 欠如が間違 /・ った研究の原因であ る。筆者以上に数学 が堪能な多 くの研 究者 が、高校数 学 の基本 も理解 してい な い研究史上例 の ない不祥事である。次 に 3人 の計 測値 xiを LDFの (1)に 挿入 した式 (2)の 3つ の線形超平面 Hiを 考 える。判 別係数 (bb b2)を 、デ ー タ空間でなく 2次 元 の係数空間で求 め る。 l´ Hi:f(xi)=y,*(txi*b+1) for i=1,2,3. 一b1/18‑b2/12=‑1; ― bl+b2/2=1; b1/9‑b2/3=1 (1) (2) 3人 の計測値xiを SASや JIPに 入力す る と判別係数bが 自動的 に求 ま り、多 図 l Factlの 説 明 (7つ の LDFし か な い ) くの利用者はデー タ空 間で考えてい る。 実際は2次 元 の判別係 数 の空 間で bを 求 める必要があ る。 ここでは定数項 cで 判別係数を割 って 定数項 の1を 無視 した2次 元 の係数空 間を考 える。有名 な 「パ ターン認識」 の 本 は、図1を まね て定数項あ りの (p+1)次 元で説明 してい るが、超平面が全 て原点を通 り役 に立 たない。 このとき超 平 面Hiは 、2次 元平面 を判別得点が正 と負 の2つ の半空間に分割す る。xiで 得 られ たHiの +半 空 間 の どの点をLDFの 係数 に選 んで もx.が 正 しく判別 され、一 半空 間 の どの点をLDFに 選んで もが誤判別 され る。3個 のHiで 7個 の凸体になる。 3つ のHiで 囲まれ る各 凸体 の内点は3つ のHiの 一半空間 の個数 を数 えればNMに な る。 同 じ凸体の内点 をLDFと する無限のLDFは 、同 じNM=k個 の症例 を誤判別 し数 学 的には同値 のLDFに なる。無限にあるLDFは 、NMが 0か らn迄 の (n+1)個 の有 限個 しかない。W=nは NM=0と 同 じであ り、実際はn個 の整数値 になる。 正規 分布 は、Gaussが 異 な る2地 点間を繰 り返 し測 定 して左右対称 のGauss分 布を見つ けた。重回帰分析 は、計測値 を代入 して この予測値 を求 め ることと合致 して問題 はない。 しか し聡 明なFisherは 、計算機 環境 の乏 しい時代 に、2群 が平均 だけ異なる同 じ正 規 分布 と仮定すれば2つ の正 規分布 の比の対数 が簡 単にFisherの LDFに な り新 しい判別理論 を切 り開 いた。計算機 が利 用 できるよ うにな り、医学 が個別医療 に対応 できるようになった の と同 じく、判別理論 もF■ sherの 仮説 でな く医師が与 えた群の情報を用いた 「組み合わせ理論 」 と考えるべ きであ る。「癌 の遺伝子デ ー タ解析 で、世界で初 めて筆者 が Theory2を 完成できた」 こ とが、この主張 の有用性を裏付 ける。 7個 の凸体は有限個 で あ り、必ずNMが 最小 の凸体がある。 そ の最適凸体 の 内点 を整数計画法 (IP)で 直接求めるの は 現時点 でRIPし かない。 最適凸体を定義域 に しているので高次元 pが 、山中博 士が遺伝子DBで 24個 の遺伝子 を見つ けた よ うに 自然にn個 以下 のSMを 見つ けて くれ る。H― SVMも 最適 凸体 を定義域 として2次 計画法で求 めるが、判別係数 が 自 然 に0に なる個数が少 な くてFSの 役に立た ない。誰 もこの理 由を研究 してい ないので、若手が挑戦 した ら良い。 この ため高次元か ら小数個 の遺伝子を選ぶた めにMPが 必要であった。 しか しロジステ ィック回帰 [32]や重回帰は、横長 デ ー タではDFが ほぼnに な ることに気づい た。Arkansas大 学 のTienら が骨髄癌 の骨 に転移のないFalseと 骨転移が1カ 所 以 上 あるTrueの 2群 で、 1変 数 の t検 定や直接確率などのFSで 56個 の癌 の遺伝 子 の候補 を見つ けた。 それが医学論文 の 最高峰 と言われ るNew England Journal of Medicine(NEJM)に 掲載 された。全 ての ロジステ ィック回帰係数 が、0.001 で棄却 されたことか ら選 んだ遺伝子が有効 と主張 した。 しか しFirth["]は 、LSDで は係数のSEは 大 き くな り棄却 で きな い と指摘 した。す なわ ち彼 らが選 んだ遺伝子はLSDで な い。 SASや JMPの ユーザーが、 ロジス テ ィック回帰でn個 よ 201

210.

り多い遺伝 子 を判別すれば、ほぼn個 の変数 が選 ばれ て剛=0に な り、残 りの (p― n)個 の遺伝子 は省かれ ることが分か る。NE側 は掲載料が50万 以上 と言われている。 恐 らくTienら は、研 究費節約 のためフ リー ソフ トを利用 した可能性が ある。最尤推 定法やROC上 でNM=0を 確認 していない。米国の6医 学研 究は、1変 数や2変 数 の統計手法 を用 いてわず か50 個前後 の遺伝子 のたった一組 を選んで、残 りの多 くの遺伝子を雑音 と考 えて研究 した。何故 かFSで 選んだ最初 の遺伝 子 の組 を省 いて 、FSを 繰 り返 し2組 以上 の遺伝 子 の組 を見つ けなか った。そ して非 階層型 の 自己組織化Mapや アニー リ ング法等 でTwo― wayク ラス タ リングで視覚的 に2群 が2ク ラスターに分 かれていると主張 している。何故NMを 調べ ない のか不思議 である。彼 らが症例 の布置を非 ユ ー ク リッ ド空間で理解 できるとは考 え られ な い。 しか し階層型 のWard法 を用いて も、カラーマ ップで注 目す るクラス ター や誤判別症例 の位置関係は分 か らない。 しか しクラス ター分析 の色 情報 をPCAに 取 り込めば、散布 図は3次 元以上 の情報 は無視す るが位 置 関係 が分 かる。 癌診 断では生存時間分析が重要 であるが、最 初 に研究デー タを判別 してNMと ERを 調 べ るとい う他 の 医学診断 の常道 が何故 か無視 されて い る。 MPソ フ トのLINGO[31]で 定式化 したPirog]anf,は 多 くのLSDの 中か らn個 以下のSMに 分割 し、P]rヽ gr′ 1■ 4は 最小次元 のLSD であるBGSに 分割する。そ して ロジステ ィ ック回帰 は、 pが ほぼDF=n個 と一番大 きいDF分 割ができる。理 工学研究 の Theory2の 主要 な研究テーマ は、FSと 各手法 のデ ー タ毎のERの 評価 で ある。判別す るだ けで 自然にn個 以下 の変数選択 が簡 単 にで きることを誰 も指摘 していないのでLSDで は全 く的外れ の研究になる。恐 らくAIの 画像診断等で成功 したFS とNalve Bayzeや K― NNや 多層 パーセプ トロン等 のclassifiersでTheory2が 成功す ると考 えた ようだ。 2.2 2004年 ま で の 第 1世 代 の 古 い 6Array Jeffery他 は、表 1に 示す古 いArrayを ア ップ ロー ドし、10の FSで 分析 した。論文に詳細 に紹介 されて いて、工学研 究が考 え るFSの概要を理解 で きる。他 の研究 と同様 に 1変 数や2変 数 の統計手法であ り、多変量の癌遺伝子 の候補 の 発見に役 立 たない。彼 は現在英 国のバイオ企業 に就職 し、H■ ggins教 授 のPか ら6デ ー タをダウンロー ドできない。良 いデー タ分析 を行 うために 「患者設計 の3原 則 」 に従 う必要がある。 Singhだ けが3原 則 を満 たす。3原 則 を満た さない デー タを分析 しても多変量 の癌遺伝子を得 られ な い。デー タ解析 で良い結果がでない場合 、困難な医学研 究を行 って も成功す る とは考えられない。 またTheory2の パ イオ ニアであるGolubの Arrayは 、Program3で Typelの SMが 求まってい るのに無 限ル ー プするので 、 38個 の計測値が定数 項 である問題 が分 かった。最初 はANOVAの 層別箱ひげ図で7129変 数 を分析 したが、検討が大変で ある。思案 して相 関係数 で分析 し、時間 がかかったが この事実を簡単に見 つ けた。機器 メーカー は管理情報を出す べ きであろ う。他 の 医学診断 と比べ て最近 の癌 の医学研 究 は、デー タ解析 が一度発現デー タが計測 されれ ば、何度で も短時間 と低 コス トで繰 り返 し仮説検証 で きる利点を評価 していないよ うだ。 新 しいArrayは 12625個 以上 の発現量がある。 表 1か ら古い6Arrayの 遺伝子数は [2000,12625]で あ り、 1)重 要な遺伝 子が含 まれ ていない可能性 と、2)品 質 が悪い た めに、第2世 代 のArrayに 比べ て結果 が悪 い と考える。 しか し多 くの 理工学研 究 は古いArrayで 研 究 している。Theory2を 理解 して、第2世代 のArrayか RNA― seqで 再挑戦す べ きである。未 解決 の 問題 が 山積 し、医学 の正 しい癌研究 を支 え る必要がある。最後 のERは 、2015年 のJMPユ ーザー会 で発表 された 特異値分解 (ヽ 1))に よる高次元 LDFを 借 りて判別 したERで ある。数学や統計研究者がSVDの 研究を してい るが、技術力 のあるJPの 結果がLSDを 発 見で きないことを証 明 した。また正 常 の あるAlonと Singhだ けが、選ばれ たSMや BCSや DF遺 伝子集合 が 多変量の癌遺伝子 の候補である。他 の4種 のArrayは 、異 な った癌同士の判別 に有効な遺伝子 が分 かる。 こ の4デ ー タは、理工学研究の対象 には適 していず 、医学研究者 の責任 で分析すべ きで あろ う。筆者 も2019年 まで6デ ー タを長 く研 究 したことは失敗 であったが、癌 が正 常あるいは他 の癌 とLSDで あることの確認 には役だった。 Table l. Stllnmary of six Arrays Alon(62*2000) Singh(102*12625) Tien(173*7129) Golub(72*7129) Shipp(77*7129) Classl(‑1) 22 Norma 50 Normal 36 False 25 AML 19 Follicular 33 T― cell Class2(1) 40 Colorectal 52 Prostate 137 True 47 All 58 DLBCL 95 B― cell ER by LDF 7.81% 5.58% 16.76% ll.1190 3.89% 2.34% Chiaretti(128*12625) 2.3 2007年 以 降 の GSE Iこ 登 録 され た 第 2世 代 の 163種 の 2群 デ ー タ と ス ク リー ニ ン グ法 2019年 か ら第 2世 代の 78の Arrayか ら、57の 正常を含む 2群 データと、3群 か ら 7群 の 16の Arrayか ら 106組 の 2群 の判別デー タを作成 した。 この 163種 の 2群 データで Fact3を 確認 し、汎用的なデー タ構造を確認 した。症例 と 202

211.

遺伝子 の範 囲は、 [12、 357]、 [12621、 54676]で ある。30例 以下 のデ ー タは研究 しない方 が良いだろ う。Brunoら は発 現量 の質 をチ ェ ック し、質 の低 い症例や遺伝子 を修正または削除 してい る。研究者 がバ イオエ学 の品質 管理 を受 けて いないデ ー タを分析す るのは危 険である。何人 か の 日本人統計研 究者 が医師 と共同研 究 し失敗 したの は、品質管理 さ れて い な い こともあった と考 える。 しか し 30例 以下 のデータは分析 して も良い結果が出ない。 Brunoら は表 2で フ リー ソフ トの Wekaで 8種 の Classifiersの ERを 評価 し、kernel― SⅧ と RFが 多層 パーセプ ト ロンを含 む他 の 6種 の分類器 よ りも優れてい る と判断 した。Tienら は折角 ロジステ ィ ック回帰を用 いたのに、 とんで もない誤用 を しているが、他 の研究は LDFを 無視 している。多 くの工学研究は、間違 った FSで 選ん だ遺伝子の組 を Classifiersで 分析 し、ERの 値 で どの手法がデ ー タ毎に優れてい るか とい う研究を してい る。LSDで な いデ ー タでの比 較評価 は結果がはっき り出ないので延 々 と研 究論 文 を出 し続 けるこ とができる。この悪 い研究習慣 は、LSDの 研究で破 壊 され る。 RIP、 H― SVMと ロジステ ィック回帰 の 3種 の LDFし か使 ってはいけない。 「分析対象」は 「癌症例設計 の 3 原則」 で 、 1と 2が 分析す べ き Arrayで 、3が 正 常例が少な くて結果 が期待 できない Array、 この他正 常例 がない分析 対象外等 に分類 した。今後 のスク リーニング法 で適 切 な Arrayの 分析 が最優先 の研究課題 である。 表 2.CuMiDaの 概略 と重要な 5種 の Microarray ID 分析対象 TYPE 癌 /正 常 GENE GSE 阻 M RF 54676 1 1 12 12621 0.26 0.34 M I M SVM 357 CLASS 6 Breast5 [3a] GSE22820 139 129/10 33580 1 0.99 17 Liver3 [3E] GSE14520 357 181/176 22278 0.97 0.96 62 Renal1 [39] CSE66270 28 14/14 54676 1 1 73 ColorectalS Il]til GSE25070 52 26/26 24527 0.96 0.96 Colorectal6 [37] 0SE8671 63 31/32 54676 1 1 74 本研 究 で は、 の Theory2を でも 出せ るス ク リー ニ ン え 1週 間 ほ ど に作 り えた。 目標 は、 「5個 以下 の遺伝子 を含む M2=0に なる重要 な BCSを 見つ ける」 ことに した。従来は、多変量癌遺伝子 の候補 を M2=0と していた。 しか し遺伝子数が多い と医学研 究で検証で きない。 医学研究は生物学 と顕微鏡 を用 いて 、現在 400個 以上 の発癌遺伝子 と癌 の抑制遺伝子 を見 つ けて い る。 この遺産遺伝子 との関係 を調 べ る為には必然 的に遺伝子 数 が少ない方がいい。2017年 に和 田京大名誉教授 [10]の 紹介 で、ある遺伝子の検査 セ ン ターでク リニ ック患者 の血液か ら 100個 の遺 産遺伝子 の発現量 と尿で担癌 と正常 を 4分 類す る 2つ の統計 システムの見直 しを行 った。そ して 自分 の研究 と 1 ´´ レ して T■ enで 求 めた SMに 検査 に用 いた 100個 の遺産遺伝子 が J願 辞 含まれ てい る個数 を調 べ た ところ最大 3個 を含 む SMが あつ た。そ こで 目安 を 5個 以下 とした。 また山中 4因 子 に発がん it出 出愚尻 性 のある C一 Mycが 含 まれ ていて問題 にな り、L― Mycに 置き換 つかっ える組み合 わせが見 た。そ こでこのデー タで男女別に そこめ●覇 相関を求 めた。 図 2は 、C― Mycと L― Mycの 男女別 の 単回帰分 " い の 析 結果 で ある。決定係数 は 0.08と 0■ 1と 大 き くな 。 ク リニ ックのデ ー タであるが、 これ位 の相関のある遺伝子 が、 では●50==̀LOゆ 同 じ働 きをす るとい うことは注 目に値する。 ス ク リー ニ ング法 の 日玉の一つは、散布図を 7つ の Type に分類 した点である。そ して Type Aの 散布図にな る SMだ け を最初 に研 究対象にす ることに した。視覚的な判 断 は嫌 って こ:= c―mycと L― mycの 単回帰分析 (左 :男 、右 :女 きたが、LSDで ある 2群 を選別す るのに最 も効果 的 な評価法 の一つ と判 断 した。TvI)(,A̲の 散布図になる S■ は 、Pri nlで 2群 が判別 できる。 1ヽ ■ ■,3は Prin2で 判別 で きる。Type Cは 、傾斜 した線形超平面で 2群 が判別できる。 Type a、 b、 cは 、Type A、 B、 Cの 散布 図で誤判別 され たケースが あ る。本研 究では誤判別 され たケースは Steplに 戻 ってそれ らを省 いて Test標 本にす る。 そ して Type Aに なれ ば、再 び Step2か ら分析 を続 ける。 さらに Type Aに 限定 した SMは 、見せ かけの LSDで ある可能性 が可能な限 り低 くなる。 既 に [12]で 、357例 の Liver3が Type aで 、 116例 の Breast6は 正常が 15例 のため Type cと 結果が悪 く、31例 の大 腸癌 と 32例 の正 常例 の Colorecta16で 「重要な BCS」 が見つかった。 腎臓 がん と正常例 が各 14例 の Renallは Type A であるが、症例数 が少なす ぎて M2が 50%に な る。 そ こで 2番 目の研 究で、症例数 の多 い Liver3か ら誤判別 され る症 例を省 いた 300例 、200例 、100例 、60例 、40例 と 30例 の Arrayを 作 った。そ して 100例 か ら 40例 の Arrayが 重要な BGSを 含む こ とを確かめてい る。この研究で 「癌患者設計 の 3原 則」を考 えた。正常群は少 な くとも 30例 以上 あれ ば、 癌群は 30例 以上でバ ランスが とれていな くて良 い。散布図で誤 判別 され た症例 を省 いて 60例 ほどの Arrayで 良い結 果 が得 られ る。表 2で 省 いた この条件を満たす 14の Arrayで 、今後確認す る予定である。他 の多 くの Arrayは 高額な 研究費用 と研 究時間を費や してい るが、恐 らく良い結果がでない と予想 している。 3章 では 3番 目の未発表 の研究 を紹介をす る。南 カル フォル ニア大 学 の Hinoue医 師 らが各 26例 の正 常細胞 と大腸癌 になった癌細胞 のペ アのデー タ分析 で結果 が非常 に良い。良い結果 が得 られたのは、この研 究がエ ピジェネ チ ック施設 の研究デ ー タであるか らと考 えて選んだことが幸 い した。 1首 : tilふ │` ̀1場 ,│ら ) 203

212.

3。 結果 3.1ス クリーニ ング法の Steplに よる SM分 割 とStep2の 散布図による検証 壼︱ 躍轟篭闘書﹃ 一 Program3で 、Colorecta15を 286組 の Typelの SM(12,591遺 伝子)と 1つ の Type2の SMに 7m27sで 分割 した。286個 の SMに 含 まれ る遺伝子数 は [18,60]で 、 Prinlと Prin2の 寄与率 は [12.9,36.1]と [7.3,18]で 、 累積寄与率 は [21.9,47.9] で ある。286組 の散布 図は、発現デー タの変動 の 22%〜 50%を 示す。7タ イプ別 の散布 図は、A(41)、 a(75)、 B(5)、 b(59)、 C(55)、 c(39)、 D(13)で 、116糸 且の SMが Type― Aと aで 、64組 の SMが Type‑3と bで 、94組 の SMが Type― Cと cで あ る。 Type― Aと aは 約 41%、 Type‑3と bは 約 22%、 Type― Cと cは 約 32%、 Type― Dは 約 5%弱 である。 Type‑3と bは 、 Prinlで 群内分散 が大 き く表 され、Prin2は 群 間分散 を表す と考 え られ る。余裕 があれば分析対象 にな る。Type― Cと c は、説 明できないが何 かデ ー タ固有の原 因があると考 える。 Type― Dは 、RIPで LSDで あるが、散布 図で 2群 が分かれ ていないので見せ か け の LSDの 可能性 が大で分析対象 としない。 図 3は Ward法 と PCAの 散布図を正常細胞 は青 と〇、癌 は赤 と×で示す。Ward法 の左 の列 の連番 は、赤 と青で色分 け され る。 1例 の青 の正 常細胞は癌細胞 とクラス ター になる。 PCAが この情報 を取得 して散布図を出力す る。SN=27の 正 常は、多 くの癌 と同 じ第 3象 限に布置す る。 SN=17と 19の 癌 と SN=32の 正 常は、第 4象 限で外れ値 になる。累積寄与 率 は 40.5%で あ り、4例 は残 りの 59.5%の 小 さなば らつ きで LSDに なる。Prinlの 正 と負で分かれ な い 4例 を、 「散 布 図に よる誤判別症例 」 として省 くのが基本的な考 え であ る。見せかけの LSDに なる可能性 を省 けると考え ・ ・ … '=F… = る。即 ちこの 4例 は RIPで LSDに なるが、SN=17と 19 の癌 とSN=32の 正 常 は 40.5%の 大 きなバ ラツキでは距 。 、 ̀摯 ′ =事 " │■ 離的 に近 い症例で、Test標 本 として省 いて そ の理 由を il ξ 検証 した方が良い。S=27の 正常も散布 図で癌症例 の方 が距離的に近いので省 いて Test標 本 とす る。この 4例 を省 い た 24例 の正 常 と癌細胞は Type Aに なる。 169 Fig. 3 Analysis of SMl (52 * 46) of Colorecta15 by Ward and PC ア レイ の分析か ら、Type Aが 最 も望 ま しい と判断 し た。Prinlと Pr■ n2の 固有値は 13.841と 4.662で 、累 積寄与率は 40.2%で あ り全体 の約 40%の バ ラツキを示す。PCAは クラス情報 を分析 しないが、2群 は 自然 に LSDに なる。 癌研 究では、LDFで NMを 調 べていない問題 がある。 しか し酬 を調べ た として も、従来はそれ を報告 して終わ りが多 い。 む しろ問題 の あ る誤判別 され る症例 を積極的に省 いて LSDに したデ ー タで判別す る。その結果 で 、Test標 本 を必 ず検証 した方が良い と考 える。当初 M2で 判別結果 の検証 を行 っていたが、286組 の Wardと PCAの 分析 による検証 の方 が逢 かに時間が早 く、結果 も悪 くなか った。 この考えは、今 の ところ上記の 3研 究で しか確認 してい ないので、今後 の課題 である。 しか し発現量は人類 が出会 った最高品質 で感度 の高い計測値であ り、間違 いない と確信 している。 3.2 Step3:選 択 しまこS,1か ら BCS,)害 」と Step4:曖 と RatloSヽ・ で`Sヽ 1と BGS t)言 平価 ︱ヽ .° │ '│ 一 ︲ ,. ..│ │ LIN00の 計算速度 の 改善は著 しいが 、Program4で 2000個 以上 の遺伝子 の BCS分 割 は手作業があるので時間がかか る。将来的にこれが改 善 されれば SM分 割や DF分 割は必要 な くなる。現在は 10組 の SMを まとめて BCS分 割す ること と、各 SMで の BGS分 割 を比較 しているが 、遺伝子数 が多 い ほ ど重要な BCSが 得 られ るよ うだ。表 3は 各 SMを BGS分 割 した SMl,SM2,SM37,SM126の 結果だけを示す。SM126だ けが Type Bで 他 は Aで ある。Cene列 の遺伝子数、M2の 値 と RatioSVを 示す。 各 SMの 中に 「重要 な BGS」 が 2、 4、 2、 2組 含 まれ、遺伝子数 は 5個 以下 である。 も し癌学会な どの公 的な機関が、400個 以上の発癌遺伝子名 と各検査 コー ドの対応表を作成すれ ば、400個 の遺 産遺伝子が どの BGS に含 まれ るかを公表 で きる。そ して 「遺産遺伝子 の情報」 か ら 「多変量の発癌遺伝子 としての役割 」 が 医学的に解決 で きる。 しか し現在 の研 究環境では筆者 が これ を行 う必要 があ り、壁にぶつかつてい る。 Table3 Ratio Gene SMl(ヽ 46 463 Gene SM2(へ ) │て ,、 1 39 Gene 579 SM37(、 ) SM:26(Iヽ ) 」 ̀H 2 0 3 9 ¨惚 ¨ 一蜘 ﹈ ¨ ¨m ¨ ) Comparison of 4 SMs and 40 BGSs by Methodl 204

213.

4 2 ︒ 4 2 0 5 ヨ M 3.3 Step5:分 析 結 果 の 統 計 評 価 分析結果の統計分析は、紙面の関係 で詳 しく紹介できない。基礎統計、ANOVAと t検 定、相関分析、PCAな どの方法 で、SMと BCSに 加 えて信号データを分析 した。Arrayが kl個 の SMと k2個 の BCSを 含む場合、kl個 の RIPの 判別 ス コ アは SMが (n*kl)個 の信号 デー タに、k2個 の RIPは (n*k2)個 の BGSの 小標本 の信号デー タにな り、誰 も ; l どr '′ な が高 次元デ ー タ を簡 単 に 'メ 1変 分析 できる [26]。 図は、 数 の BGSの t検 定 と 「2変 Fig̲6 ANOVA ofone― variable BCSs ● /・ 、│ .。 ir摯 数 の BGS」 の散布 図である。 4. 1)iscussioll Theorylと Theory2は 、動物 と人 間 の遺伝子診断 を容易 にす る重要 な Fact3を 見つ けた。 そ して医学研 究者 に限 ら ず 工学研究者 が高次元 の癌 の遺伝子デ ー タ解析 ができるス ク リーニン グ法 に作 り代えた。 一通 りの作業は 1週 間程度 で完成す る。LINGOで 作 られたプ ロ グラムの説明書が あれ ば、後は決め られ た統計分析の仕 方 が分 かれば高校 生や大学 生で も驚 く実用的な成果 を出せ る と考 える。 これ によって次の多 くの可能性 が考 えられ る。 1)発 現デー タのあ る他 の 医学診 断。 2)全 ての生物の遺伝子診 断。 3)さ らに統計分析者 にとって ビ ッグデー タ分析 の福音 になると考 えてい る。 各ケースに群情報 を与 える。次に、RIPで コン トロール 群 を含む 2群 デー タを判別す る。誤判別 されたケース をテ ス ト標本 として省 き、分析デー タ (LSD)を 作成する。 このはっき りした分析 結果で、省略 したテス ト標本 を評価す る。 これ は唐突な主張の よ うに見える。 しか し NMを 表示 してそれ以上の分析 を行 わないのが普通 である。LSDの 分析 で明 白な結果 を出 し、その結果で省 いたテ ス ト標本 を評価 した方が統計分析 の 有用性 が高まる。 夢物語 に聞 こえるが、志ある高校 生や大学生に実際 に役 立つ癌 の遺伝 子 デ ー タ解析 の研 究 に参加 させ る教育 システ ムの構築が考 え られ る。1)サ ーバー に SASあ るいは JMPと LIN00の 分析 ソフ トと、公開 され た Microarray、 既 に作成 した SM、 BCSと できれ ば DF遺 伝子 セ ッ トを準備す る。DF分 割 のためには 、測Pの Script等 のプログラム 開発 が必 要 にな る。2)そ して高校や大学の教 員や民間のボ ランテ ィアが、別途志 あ る高校生や大学生 を指導する教育 システムを 作 る。基本的な分析結果の書式 を決 めて結果 を関係者名 とともに公開 し更新 す る。 この様 な教育システ ム を運営やサ ポー トす る企業や組織 を作 り上 げる企 画力 と行動力 ある人が出て くれ ば と他 力本願 してい る。私はアイデアが出て も 実行力が無 いので 、必要な解説書作 りな どで貢献で きる。 当初、医学研 究者 が時間のかか る大変な医学研 究 を行 う前 に、発現デ ー タか ら簡単に有用な結果 を提供す るス ク リーニ ングシステ ム を考 えた。 しか しこれは直 ぐには普及 でき ない し医学研 究成果が出るまで時間が かか り、一般 の人 にその結果が手 に届 かない。癌 の克服 は人類の悲願 であ り、 遺伝子 と統計 の教育 を兼ねて志 のあ る学生の参加 を夢物語 として考えた。 彼 らの成果 の集 積 が 、医学 の癌診 断 の底上 げができれば、 と夢見 ることも悪 い こ とではない。少 な くとも実践的な統 計 と遺伝子教育 の普及 はできる。 次 に、ブルー ノ らのよ うなバイオエ学 の研究者が、計測値 の品質管理 を行 った。筆者は これ に触発 されて、分析デ ー タの構造の研究 も新 しい分析手法 の 開発 と同 じく重要 と考 えるよ うにな った。判別デー タに関す る Factlと Fact2と Fact3や 「癌症例設計 の 3原 則」 が これ に当たる。そ してスク リーニン グ法 で 「M2=0で 遺伝 子数が 5個 以下 の重要 な BGS」 を見つ けることを 目標に した。 これ で 「400個 以 上 の発癌遺伝子や癌 の抑制遺伝子 の 医学成果を踏 まえて、デ ー タ解析で見つ けた多変量の癌遺伝子 の候補 の特性が解 明」できる。そ のた め に従来の 「患者設計 の 3原 則」では不十 分 で、 「正常 を 30例 以上集 め、癌症例 はそれ以上測定 して も散布図で誤判別 され る症例 をテ ス ト標本 にすれ ば良い」 で唐突な 「癌患者設計 の 3原 則」にた ど りついた。CuMiDaに 登録 されたデ ー タでも、2群 で 30例 以下 の Arrayが 沢 山 あ り、バ イオエ学の品質管理では見逃 されている。デー タ分析の立場で、この よ うなデー タで癌診断の研究 を して も、 良い結果が得 られ ない とハ ッキ リと発言す べ きだ と考 えた。 もうこれ以上無駄 な研究は行 うべ きでない。 1999年 に整 数計画法 を使用 した IP‑OLDFの ISIの 発表論文 [1]を Linus Schrageシ カ ゴ大学名誉教授 に送 った。彼 は私 に Stam[41]の 論文 と「米国の多 くの MP研 究者 は、MPで 定式化 された判別 分析に関す る研 究は Stamの 論文で終 わ った と考えてい る」とい うメ ッセー ジ を送 って くれた。 この忠告で、多 くの 研 究者は研究 をや めた と思 う。 しか し私 は や めず、高次元遺伝子デー タ解析 に革命 を起 こす ことがで きた。MPで 定式化 した 300以 上 の判別 モデルの研 究 は、単 に統計の判別モデル を MPで 定式 した志 が低い研 究 である。 IPで Wを 最小化 す るとい う統計 でできない研究 をす べ き であった。 文献 205

214.

1.Shinmura S(2000)A ncw algoritllm ofthe llllett discriminalt inction using liltcgcr programmmg.New Trends lll Probabili″ Statistics,5:133‑142 and 2. Shinmura S(2016)Ncw Tllooly of Discrllninant Analysis A■ cr R.Fishcr.Springcr. 3. Shinmura S(2021o Twell● ‐ three Scriousル Iistakcs of Canccr Gcnc Da● Analysis since 1995.Transactions on Computttional Scicncc& :2021年 以 降 の 書籍 は 、 コ ロナ の た め 出版 が 大 幅 に遅 れ て い る。 Computational helligence,Springcr Namrc注 4.Shinmura S(2021b)First Thcoり ofCancer Gene Data ttalysis by169 MicЮ a口 ays md Four Univcrsal Data Structu sおr Big Daa CSCI‐ ISCBI CO卜 4PUTATIONAL BIOLOGYl‑14.Transactions on Coinputational Scicncc&Comput ional lntelligence,Sprmger Naturc. 5.Nomura,Y.and Shinmura S(1978)Comp■ cr― ぉsisted prognosis ofac■ e myocardial infarction,MEDINF0 77,ShiК s/Woll cditors IFIP pp.517‑521,North― Holland Publishing Company. 6.Miyakc,A.and Shmmura,S(1976)最 適 線 形 判 別 関数 の ア ル ゴ リズ ム とそ の 応 用 ,医 用 電 子 と生 体 工 学 ,18/1,15‑20. 7.Shinmura,S.and Miyよ cA.(1979)An algorithmお r tllc optimal linctt discriminant function,Procccdings ofthc intemaional conirence on cル emetics md socic,,1447‑1450. or ratc ofincar discriminmt inction.F.■ 8.Miyよ cA,Shhmun S(1976)E de Dombeland F.Grcmy,eds.Norh― Hollmd Publishing Coimpally:435‑445 9.Lachenbmch PA,NIickcy MR(1968)E"im"ion of eFor mtes in tlle discriminant analysis.TcchnOmctics.10(1):11. 10.Shinmun S,Suaki■ Koyama H,and Nakanishi K(1983)Standadization ofmedic」 data analysis using variOus dis∝ iminant mcthOds On a thcmc ofbrcast diseases M:EDRヾ F083,J.H.Van Bcinmcl,卜 ■J,Ball and O「 Ⅵ4geiz editors,pp.349‐ 352,No■ h― Holland Publishing Company. 11.Shinmun S(2022→ Pradical Scrccning Mcthodお r Callccr Gene Diagnosis― Four Universal Data Strticturcs ofDiscriminalt Data― , Transa∝ ions on Comp■ 江ional Science&Compu● tional lntclligcncc,SpringcriNaturc 12.Shminura S(2022b)Practical Scrccning Me■ od br Cancer Gcnc Diagiosis‑2‑Four Paicnts Dcsign Principles by Mcthodl and Scatter Plot― ,Transactions on Computttional Scicncc&Computational lntelligence,Sprnger Naturc 13.Vapnik V(1999)Thc Namrc ofStatistical Leaming Theory.Sp五 ng∝ . 14.Shinmura S(2014)End ofdis∝ Ininant ftmctions bascd on vaiance― covariance maiices.ICORE2014:5‑16 15.Shinmura S(2015)Four serious problcms and newね ds Ofthc discriminant analysis.In:Pinson E ct al.(cd)Operaions research and cntcrprise systcins.Springcr,Bcrlin:15‑30 16.Fluv B,Riedwyl H(1988)Multivahc statistics:a practical appЮ ∝h.Cambridge Univcrsけ Prcss,Ncw Yoよ .日 本 語 訳 あ り (特 集 :学 力試 験 デ ー タ の 統 計 解 析 )4012:157‑17 17.Shinmura S(2011)合 否判 定 デ ー タ に よ る判 別 分 析 の 問題 点 .応 用 統 計 学 18.Shinmtlla S(2010)最 適 線 形 判 別 関 数 、 日科議 連 (ISBN 978‑4‑8171‑9364‑3). 19.Jcftw IB,Higgins DG,Cuhane C(2006)Compaison and cv」 uation ofmcthods br genertting difた rentia11)expresscd gcnc lists iom Microarray data.Bヽ 4C Bioinfonnatics:1‑16 20.Alon U et al(1999)BЮ Patems of Gcnc Exprcssion Rcvcalcd by Clustermg Analysis of cacer al,d Normal Colon Tissucs Probcd by Oligonuclcotidc A」 rays.Proc̲Natl.Acad.Sci.USA,96:6745‑6750 21.Chiacti S ct al.(2004)Gcnc cxpression proile of adult T― ccll acutc lymphocytic lcukcmia idcntincs distmct subsas ofpttients with dimerentrewonses to thcrapy and suⅣ ivaL BIood.April l,2004,103/7:2771‑2778 22.Golub TR et al.(1999)Molccular Classifcttion of Canccr:Class Discove,and Class Prcdi 1999(:)ctober 15,286/5439:531‑537 on by Gcnc Exprcssion Monbrhg.Science. 23 Shpp MA ctal.(2002)Difisc large B― celllymphoma outcomc prcdiction by gcnc― cxprcssion proiling and super、 ised machme leaming. Naturc Mcdicinc 8:68‑74 24.Smgh D etal.(2002)Genc cxprcssion conclttcs ofclinical pro"江 e cancer bchavior.Cancer Cell:Mttch 2002,Vol.1:203‑209 25.Tian E ct al.(2003)The Role ofthc恥 7nt― Siglaling Antagonist DKKl in tlle Dcvelopment ofOsteolメ ic Lesionsin Mul― tiplc lMycloma.Thc lcw England Journal ofMedicine,Vol.349,26:2483‑249 26.Shinmura S(2019o High― dimcnsiond MicroaFay Da● Analysis.Sprlllger,Dec. lヽ 27.Bruno CF,Eduardo BC,BmnoIG,:Marcio D(2019)CuMiDa:An Extcnsively Curated Microな ray Da● base for Bcnchmttking and Tcsting ofMachmc Lcaning Approachcs in Canccr Research.Joumalof Comp■ 江ional Biology.26‑0:1‑ll 28.Shhmum S(2019b)Rclcasc iom tllc Cursc ofHigh Dimensional Da● Analysis.Big Da● ,Cloud Computing,alld Data Scicncc Engmccnng(Studies m Computational lntclligcncc 844):173‑196 29.Shinmura S(2020a)Cancer Gene Diagnosis of 84 MicroaTays by Rallk using 100‑fold Cross― Validation.Transactions on ComputatiOnd Science&Computational lntclligcncc,Sprmger Naturc 30.Shinmura S(2020b)Callccr Diagllosis of 78 MicЮ arrays registered on GSE iom 2007 to 2017.Trallsactions on Computational Sciencc& Computational lntelligence,Sprillger Nature 31.Shinmura S(2020c)First Succcss of Callccr Gcnc Dtta Analysis of 169 Microarrays foriMedical Diagnosis.CSCI― ISCB: COヽ IPUTATIONAL BIOLOGYl‐ 7.Transactions on Computational Scicncc&Comput江 lond lntelligence,Springer N■ u 32.Sall P,Creighon L,Lehman A(2004)昴 P Sttt Statistics,Third Edition.SAS h」 tute lnc.(新 村 :日 本 語 版 の 監 修 ) 33.Firtll D(1993)Bias reduction ofmaximum likclihood c■ imatcs.Biomctrika 80:27‑38. 34.Schragc L(2006)Optimizttion Modclng with LINGO.LINDO Systemslnc. 35. Clarkc C,卜 4addcn SF,Doolan P"Ahcrnc ST,ct al.Con・ elating transcriptional net、 vorks tO brcast canccr survival:a largc― scalc cOexprcssiOn analysis.Carci1logcnesis 2013 0ct;34(10):2300‑8.PMID:23740839 36.Hinouc T,Wciscnbcrg∝ DJ,Langc CP,Shen H,d al.Gcnomc― scalc analysis ofabcnant DNA mcthylation in colore∝ Res 2012 Fcb:22(2):271‑82.PMID:21659424 37.Sあ ates― Bellver J,Vm dcr Flicr LG,dc Palo M,Catmco E,ct al.Tmnscriptome pЮ al cancer.Genomc ■le ofhuman colorcctal dcnomas Mol Cmccr Rcs 2007 Dcc;5(12):1263‑75.PMID:18171984 38. Roesslcr S,Jia HL,Budhu A,Forguc SM,ct al.A unique inetastasis genc signaturc cnablcs prcdiction oftuinor rclapsc in carly‐ "age hepatoccllular carcinoma p"icnts.CallccrRcs 2010 Dcc 15;70(24):10202‑12.PMID:21159642 39.WotschoRky Z,Gummlich L,Licp J,Stephan C et al.Intcgrtted microRNA and mRNA Signaturc Associttcd with the Transition iom thc Locally Conined to tllc ⅣIctastasizcd Clcar Cell Rcnal Ccll Carcinoma Excmpli■ cd by miR‑146‑5p.PLoS Onc 2016;11(2):c0148746. Pヽ 41E):26859141 40.和 田洋 巳(2022)が ん劇 的 寛 解 ―ア ル カ リ食 で癌 を抑 え る^、 角 川 新 書 41.Stam A(1997)Non― traditional approaches to s● tistical classiicaion:Somc pcrspcctives on Lp― norm Methods.Ann Opcr Rcs 74:1‑36. 参 冷文献 :2016年 か ら 2019年 の 統 計 シンポジュームの 12論 文 (全 て lo頁 ):2016年 金沢大学、2016年 九州大 学、2017筑 波大 学、2017年 新潟 大学、2018年 滋賀 大学 、2018年 金沢大学、2018年 広島大学、2018年 成曖大学、2019年 九州 大学 、2019年 新潟大 学、2019年 東 工大 学、2019年 秋 田大 学。 206

215.

統計理論 /SAS・ JMP教 育

217.

平方和の分解では解 けない 繰り返し不揃いの 2元 配置データの解析入門 高橋 行雄 BioStat研 究所 (株 ) An Introduction to Analysis of Unbalanced Two-way ANOVA that cannot be solved by sum of squares decomposition YukiO Takahashi BloStat Research Co.,Ltd. 要 旨 : 各種 の フ リー ソフ トが興隆す ると共 に SASが 埋没 し,統 計解析 の質 も低 下 し続 けてい る.歯 止 めを 掛 けるために,伝 統的で根強 い フ ァンがい る平方和 の分解による解析 ができないポ ピュー ラな事例 を取 り上 げ,GLMプ ロシジャが実用化 した線形モデル に よる解析方法 を復活 させ ることに よ り,SASの 掘 り起 こし をす る。フ リー ソフ トに対 して無償で継続的 に使用 できるよ うにな った SASの 優位性 を際立たせ るめには , 平方和 の分解 で凝 り固ま ってい る統計 の教科書 が 目の上のたん こぶである.他 方 ,GLMプ ロシジ ャの理論 は,難 解 で近寄 り難 い側 面 もある。今回取 り上 げ る事例は,繰 り返 しが不揃いの 2元 配置デー タであ り,平 方和の分解 による分散分析 が行 えないが,線 形 モ デル による解析 が可能であ り,GLMプ ロシジ ャに よ り 30 年以上前か ら実用化 され てい る.GLMプ ロシ ジ ャ の偉大 かつブ ラ ック・ボ ックス的 な解析方法 を Excclの 行 列関数 によ り再現 し,線 形 モデル の有用性 にス ポ ッ トライ トをあてた い。また,他 の フ リー ソフ トにない GLM プ ロシジャの最小 2乗 平均 (lsmeans)に 焦点 をあて ,そ の有用性 について論ず る とともに,Excclで 再現す る。また,GLMプ ロシジ ャの HTML出 力を Excclに 取 り込み ,見 栄 えの良いグラフの作成方法 も示す 。 キーワード:平 方和の分解,最 小 2乗 平均,線 形モデル,SAS/GLM,ダ ミー変数,デ ザイン行列,田 口の式 1.は じめ に 各種 のフ リー ソフ トが興隆す ると共に SASが 埋没 し,統 計解 析 の質 も低下 し続 けてい ると実感 してい るの は,私 だけなのだろ うか。「何 々 による統計解析 」 と題す る書籍 ,web上 で公開 され ている PDF版 の 書籍"を 目にす る.そ れ らの多 くは,「 何 々の使 い方」 で あ って,統 計解 析 そのものの学習 には向いていない。「実験 計画法」 と題す る書籍 も数多 く見かけるが,シ グマ による定式化 が極度に標準化 され ているために, さらな る学習 を妨 げ るよ うなガ ラスの天丼が張 り巡 らされ てい るかの如 くである。 私 自身は,SASの GLM,GENMODな どの数 多 くのプロシジ ャを使 いつつ,行 列計算 を主体に した線形モ デル ,一 般化線形 モデル な どについてマニ ュアル に掲載 されて い る多 くに事例 に よ り統計解析 のスキル の向 上ができ,そ の理 論的背景 についての簡潔 な記述 に よって理解 の助 けになった.も ちろん SAS以 外 の多 くの 統計 ソフ トを使用 した経験 もあるが,統 計解析 の理 論 の学習 に役 に立ったのは,先 進 的な SASユ ー ザ ー達に よる数多 くの書籍 で もあ った .な お,GLMプ ロシ ジ ャの詳細 は , 自由にダウンロー ドできる SAS Insthte (2013),「 SAS/STAT13.l User's Guide,The GLM Procedurc」 Linett Models,4th ed」 を参 照 の こと。また,Limcら (2020),「 SASお r には,多 彩 な事例が示 され てお り,必 読 の書 である . 209

218.

ある時 ,前 値 と後値 があ る群 間比較 デ ー タに 「共 分 散分析 」 な ど難 しい統 計 手法 な ど使 わ な くとも,前 後 差 に よる対応 の な い ′検 定 を使 えばいい のだ , と断言 す る雑誌 の査読者 が 存在 す るこ とを知 っ た .Excclの 回 帰 分析 で簡 単 に で きる 「共分散 分析 」 を難 しい とは , ど うい うこ とだ と疑 間 を もつた。 また ,あ る時 ,直 交 表 の解析 で欠 測 値 が ある と解析 で きな い ので ,何 らか のデ ー タを代入 して解析 す る との Wcb上 で の記事 に遭 遇 し愕然 と した こ ともあった .詳 細 は ,高 橋行 雄 (2021b),「 線形 モ デル に よ る欠測値 が あ る直 交表 の解析 」 を参照 して も らい たい . SASの GLMプ ロシジ ャを使 った経験者 な らば ,繰 り返 しが等 しく とも,不 揃 いで も,ま った く違和感 な く解析す るで あ ろ う。そ もそ も,SASの GLMプ ロ シ ジ ャには ,繰 り返 しが (揃 ってい る,不 揃 いで ある)を 区別す る用 語 が 見 当た らない .昨 年 2021年 の SASユ ー ザ ー 総会 では ,高 橋 行雄 (2021a),「 各 種 の ダ ミー 変 数 を用 い た最 小 2乗 平均 と 95%信 頼 区間 の実 際」 と題 して ,守 屋 ら (2018)の 「Rパ ッケ ー ジ を用 いた最小 2乗 分散分析 と最 小 2乗 平均値 の 算 出」で例示 され てい る「共変量 を含 む繰 り返 し不揃 い の 2元 配 置デ ー タ」 について ,各 種 の ダ ミー変数 を使 い ,Excclの 行 列 関数 に よる最小 2乗 平均 の 算 出法 を詳 しく示 した。 さらにシ ョ ックな の は,「 繰 り返 し不 揃 いの 2元 配 置デ ー タ」 は ,解 析 で きな い な どの Web上 の記事 が数 多 く見出 され , 中には,高 橋 。大橋 ・ 芳賀 (1989)の 15章 を参照せ よな どの Q&Aに も遭 遇 し,統 計解析 の 質 の低 下 を実感 した .な ぜ ,こ の よ うな嘆 かわ しい 状 況 にな ってい るのだ ろ うか .SASの 地盤 低 下 もそ の原 因 の一つ で あ り,無 償 で継続 的 に使 え る OnDcmand SASが 安 定的 に使 え る よ うにな っ た こ ともあ り,こ の 嘆 かわ しい状 況 を少 しで も変 え る努 力 を したい .そ のた めには,SASの 使 用 法 だ けで は,フ リー ソフ トでの使 い 方 の説 明 と同 じ レベル であ り,万 人 が使 え るExcelを 用 いた SASの 解析 法 の 詳 しい説 明が不 可欠 と考 えた . 2.4種 の 1平 方 禾口と LSMEANS 高橋 ら (1989)の 第 15章 で は ,「 統計 ソフ トウ ェアの 充実 に伴 い ,解 析過 程 がプ ラ ックボ ック ス とな り , 出力結果 を適 切 に解釈 し利用 で きな い 場合 が増加 しつつ ある.GLMプ ロ シジ ャで出力 され る 4種 の平方和 と 最 小 二乗平 均 (LSMEANS)に つ い て ,利 用 に必 要 な最 小 限度 の解 説 を加 え るのが この章 の 目的 で あ る.GLM プ ロシ ジ ャ は ,特 性 値 ンの 総 平 方 和 SToT札 を MODELス テ ー トメ ン トで指 定 した要 因 で 説 明 で き る部 分 SMODELと 説 明 で きない部分 亀 RROR(残 差平方 和 )に 分解 す る.MODELス テ ー トメ ン トに含 まれ る要因が 二 つ 以上 あ る とき ,MODELス テ ー トメ ン トの SSl,SS2,SS3お よび SS4オ プ シ ョンに よ り各 要 因 の寄与部分 を表す平方 和 が 出力 され る。 この 平方 和 は , それ ぞれ Type I,Type II,Type III,お よび Type IVの 平方和 と 呼 ばれ てい る .」 と指摘 し,「 15‐ 1繰 り返 し数 が等 しい場合 」,「 15‑2繰 り返 し数 が等 しくな い が 因子 が直交す る場合」 に引 き続 き,「 15‐ 3因 子 が 直交 しない 場 合 」 につ いて例示 され て い る .第 15‑3節 に示 され てい るデ ー タを表 1に 示 す 。 18 13.0 15 14.33 ■1 22 19 14.5 21 18 17.0 20.0 15.57 SASの GLMプ ロシジ ャで は ,繰 り返 し数 が 等 しい 場 合 で も,等 しくない が 因子 が 直 交 す る場合 で も,繰 り返 し数 が不 揃 い で 因子 が 直交 しない 場合 で も,SASの GLMプ ロシジ ャ の使 い 方 は同 じだ が ,結 果 が微妙 に異 な る こ 210 15 10 5 Bl OTOT ″′ /′′ 12 16 ´ ´ 14 14 t哄o´ 8 13 15 20 ´ ´ ´ ″ 10 平均 +穴︶´O Al B3 ︲2 AA B, Bl O十 25 表 1 繰 り返 し不 揃 い で因子 が 直 交 しない 場合 B2 B3 図 1散 布 図 に平 均値 を重ね書 き

219.

とが 強調 され てい る .特 に結果 に微 妙 な差 が起 きるタイ プ I,II,IH,IVの 各 平 方 和 の使 い分 け を主体 に して い る .当 時 は,IBMの メイ ンフ レー ム版 の SASを 用 いて 統 計解 析 業務 を行 って い た が ,現 在 は ,無 償 で継続 的 に使 え る OnDemand SASを 使 い ,結 果 を再 現す る。結 果 の 出力 は ,Hn正 形 式 が標 準設 定 とな つてい るの で ,出 力結果 を全 て Excelシ ー ト上 にペ ー ス トし,整 形 した 結果 を用 い ,Excelで 作成 した 95%信 頼 区間 のひ げ付 き線 グラフを示 す . 表 2左 に示 した の は ,SASの プ ロ グ ラ ム でデ ー タを取 り込 む DATAス テ ップ ,解 析 のた めの PROCス テ ッ プ で ,GLMプ ロシ ジ ャ を起動 し,modclス テ ー トメ ン トで 解 析 モ デル の設 定 ,(ssl,ss2,ss3,ss4)の オプシ ョンで 4種 の平方 和 の 出力 ,さ らに最 小 2乗 平均 を出力 す るた めの lsmcmsス テ ー トメン トが設 定 され てい る。表 2右 は,GLMプ ロシジ ャの 出力 で ,分 散分析表 お よび 4種 の平方 和 が示 され てい る . 表 2 SASの GLMプ ロシジ ャに よ る分散分 析表 と 4種 の 平方和 Pr>F Titiel 'TwoWay̲un3̲ANOVA.sas 2022‑5‑ r.Takahashi' i 22 ` Model data Error Corrected Tota Dl : 29.0857 3.2500 MSE Y の平均 155714 21.4286 108.8000 2 15.2000 21̀4286 F 16.59 0.0332 7.6000 2.34 0.1586 1 16.1333 16.1333 4.96 00565 2 1088000 2 15.2000 544000 7.6000 16.74 234 0.0014 01586 A B 1 130909 2 1052000 13.0909 4.03 2 15.2000 526000 76000 16.18 A=B 0.0797 0.0015 0.1586 1 130909 2 1052000 2 15.2000 13.0909 52.6000 7.6000 403 11 i Al Bl │ 1 A B 10 13 Al B2 14 12 15 Al B3 22 19 A2 Bl 15 14 A2 32 16 18 A2 33 21 18 11 0.0039 1.8028 08483 do k = l to 4 ; input Y 00: output datalines : 8.95 171.4286 R2 input AS B$ @@ ; end 145.4286 8 26.0000 A★ B Pr>F Pr>F A B proc print data=Dl ; run ; proc glm data=Dl ; A★ Pr>F class A B : model Y= ABA*B / ss1 ss2 ss3 ss4 B ; lsmeans ABAxB/cl 2.34 run ; Pr>F A B A★ B 16.18 00797 00015 234 0.1586 表 3に 示 した の は ,4種 の 平方 和 を横 に並 べ ,比 較 した結 果 で あ る。 タイ プ IIIと タイプ IVが 完全 に一 致 して い るのは ,欠 測 とな ってい る組 合 せ セ ル が無いた めで あ る。 これ らの違 い につ いて ,説 明 を尽 く して も ブ ラ ック・ ボ ック ス の ままで ある . 表 3 4種 の 平 方 和 の比 較 :‖ : A 2 B ふ 一2 A・ 21.4286 108.8000 = 16.1333 = 108.8000 =≠ 15.2000 = 15.2000 ≠ = = 13.0909 = lV 105.2000 1=‐ 13.0909 105.2000 15.2000 = 15.2000 さて ,さ らにブ ラ ック・ ボ ックス的な のは,表 4左 に示す最小 2乗 平均 (lsmcms)で ある.あ えて説明を すれ ば,表 1に 示す A× Bの 2元 表 の各 セル の平均 を計算 し, さらにセル 平均 の平均 が Aと Bの 最小 2乗 平 211

220.

均 とな る。なぜ ,セ ル 平 均 な のか ,内 部 で この よ うな計算 を してい るのか ,95%信 頼 区間を出す た めの標 準誤 差 SEは ,ど の よ うな計 算 を してい るのか ,他 の 各種 の フ リー ソフ トで再 現す るた めに,計 算方 法 が知 りたい との要 望 に答 えるた め に ,第 16章 の「GLMプ ロシ ジ ャの 計 算 方式」で ,SASの 行 列 計算言語 D化 を使 って , , 説 明 を した ので あ る .だ が ,そ の 当時 恥化 は有償 で あ り,誰 で も 自由に使 え るわ けではな く,GLMプ ロシジ ャで は ,こ の よ うな行 列 計算 を してい る との言 い訳 的 な説 明 に過 ぎなか った 。表 4右 に示す の は ,Excelの 線 グ ラ フに よる最小 2乗 平 均 に 95%信 頼 区間 を重 ね書 き した 結 果 で あ る.無 償 で継 続 的 に使 える OnDcmand SAS の H.n岨L出 力 をそ っ く り Excclシ ー ト取 り込 む こ とがで き る ので ,体 裁 を整 え る こ とも容 易 で あ る . 表 4左 に示す の は ,lsmcansス テ ー トメ ン トで 出力 され た各 水 準 の最小 2乗 平 均 と 95%信 頼 区 間 を Excelに 取 り込 ん で整形 し,最 小 2乗 平均 と 95%信 頼 区間 の差 か ら 「幅」 を別 途計 算 し,Excelの 線 グ ラ フで (Alか ら A2B3)ま で連 続 した 折れ線 を描 き,上 下 の幅 を重 ね書 き し,線 種 を整 え ,切 れ 目を入れ た結 果 が示 され て い る.さ らに ,標 準 誤 差 SE=幅 /T.inv.2T(0.05,8)を Excclシ ー ト上 で計算 した結 果 であ る。 この よ うな連 係 プ レー が ,容 易 にで き る よ うにな った こ とは ,画 期 的 な こ とで ある 15.30 18.70 1.70 0.7360 2.08 0.9014 B2 A2 B3 17.00 19.50 1406 1656 17.44 2.94 1.2748 19.94 2.94 1.2748 2244 2.94 1.2748 ′ ′ I : 一 A2 1756 2.94 1.2748 2.08 0.9014 2.94 1.2748 一 14.50 14.44 15.08 23.44 ′ 20.50 B嗜 1092 I よ ‐ 1 ︐ B3 A2 8.56 13.00 マレイー 一 l 一2 B B 一 11.50 Al Al ︲ T I LT ■1 一 一 一 B3 Al 1.80 0.7806 2.08 0.9014 0 1 B2 5 1 13.00 1092 15.00 13.20 1680 2000 17.92 22.08 Bl T ′T 上 TI T士T上 17.00 T I+= 性 0.6719 罰■ 型 1.55 ︐︱ 一 TI 市 16.55 げ r 一 T ム ︲ ︲ SE 13.45 ′ 一 I ■1 井 ︱ T ´ 幅 1500 区 質 詞 Al A ̲生̲̲」 ̲睡壼ヱ 塁王虹̲」型賀議製亜L 鑑 ﹇ げげ GLMプ ロシジ ャの最 小 2乗 平均 と Excclに よる 95%信 頼 区間 の ひ げ付 き線 グ ラ フ ハ 表4 . 5 IAlん │ IB IAl │ lA2 1 l B2B31BI B2B31BI B2B31 表 5に cstimateス テ ー トメ ン トを使 つて ,Al,Blを 基 準 と した水 準 間 の差 ,(Al Bl),(A2Bl)を 基準 と した組 合 せ 水準 の 差 と SEを 求 めた結 果 を示す .水 準 間 の 差 につ いて lsmcmsス テ ー トメ ン トの オ プ シ ョン pditt tdIな どで 出力 す る こ とがで き る。ただ し,′ 値 と ′値 が マ トリック ス 状 に 出力 され るが ,95%信 頼 区 表 5 Estimateス テー トメン トによる最小 2乗 平均 の差 に関す る 95%信 頼 区間の線 グラフ 2.00 0.9965 t値 :Pr>「 201 0.0797 │ ′ 00SE Z95%υ 95% 2.2980 0.00 168 0.1320 1.2748 5.49 0.0006 Al彙 B2‐Al・ B4 1.5612 096 0.3648 Al・ B3‐Al彙 Bl 1.8028. 4.99 0.0011 A2彙 B2‐A2キ 31‐ A2'B3‐ A2キ B4 2.50 1.8028 139 02029 1.8028 277 0.0242 -0.30 4.30 10 2.7497 ‑0.75 2.9396 4.06 4.75 9.94 5 3.6002 ‑2.10 5.10 4.1572 4.84 13.16 4.1572 ‐1.66 4.1572 0.84 6.66 9.16 一 1 1924 7.00 95%信 頼 区間 7井上 ′ 三 2.00 B3‐ 81 ひ T Iオ上 ご B2‐ 31 15 T上 41 A2‐ Al 推 定 値 標 準誤 差 0.00 T I + = 可ユ 一 ■ レ井トー パ ラ メー タ 5 IAl A21 1Al lA2 1 1 1BIB2B31BIB2B31BIB2B31 212

221.

間 ,あ るい は ,SEの 出力 が無 い た めに,ひ げ付 き線 グラフが書 け な い。 そ こで ,estimatcス テ ー トメ ン トを 用 い て標 準誤 差 SEを 得 る こ とに した .Estimateス テ ー トメ ン トは ,lsmcansス テ ー トメ ン トで推 定 で き る最 小 2乗 平均 も含 め,あ らゆ る推 定 がで きる。た だ し,GLMプ ロシ ジ ャが用 いて い るダ ミー 変数 につ い て の知 識 が必 要 で あ り,こ こで は ,estimateス テー トメ ン トの使用法 に立 ち入 らない . 3.平 方和の分解によるチャレンジ 繰 り返 し不揃いの 2元 配置では,平 方和の分解 による分散分析が, どのような理由によりできないのかを 明らかにする。表 6に 示すのは,繰 り返 しが等 しい場合の 2元 配置 の平方和の分解 の手順を,不 揃 いの場合 に適用 した結果である.総 平方和 島 =171.43,残 差平方和 t=26.00は ,表 2の 分散分析表 E■ orの 平方和に 一致する。モデル全体の平方和は,為 。 del=鋳 ―凡 =14543と な り,平 方和の分解は成 り立つている.さ て , dcl=151.62と なり 以 =21.43,亀 =114■ 0, ■× B=16.10と 計算されているので,そ れらを合計するとS↓ 。 , 輪。 dcl=145.43に 一 致 しない 。そ れ ぞれ の 平方 和 を表 2に 示 した GLMプ ロシジ ャ の タイ プ I,II,III,IVの 平 方 和 と比 較 して も一 致す る結 果 が な い (た だ し,SA=21.43の み は ,タ イプ Iの 平 方 和 に一 致 して い る)。 し た が って ,平 方和 の分解 に よ る分 散分析 がで きな い こ とは,明 らか で あ る . 13.00 2.57 11.50 11 .93 1.07 13.00 2.57 11.50 11 .93 ‐ 0.43 14.50 1.07 14.33 1.24 13.00 13.26 ‑0.26 ‐ 3.57 ‐ 0.57 14.50 1.07 14.33 1.24 15 15.57 15.57 14.50 1.07 14.33 1.24 13.00 13.00 13.26 13.26 ‐ 0.26 ‐ 0.26 11 15.57 ‑4.57 14.50 1.07 14.33 1.24 13.00 13.26 ‑0.26 22 15.57 6.43 14.50 1.07 20.00 ‑4.43 20.50 18.93 1.57 19 15.57 3.43 14.50 1.07 20.00 ‑4.43 20.50 18.93 1.57 15 15.57 ‐ 0.57 17.00 ‐1.43 13.00 2.57 14.50 14.43 0.07 14 15.57 ‐1.57 17.00 ‐1.43 13.00 2.57 14.50 14.43 0.07 16 15.57 0.43 17.00 ‐1.43 14.33 1.24 17.00 15.76 1.24 18 15.57 2.43 17.00 ‐1.43 14.33 1.24 17.00 15.76 1.24 21 15.57 5.43 17.00 ‐1.43 20.00 ‑4.43 19.50 21.43 ‑1.93 17.00 ‐1.43 20.00 ‑4.43 19.50 21.43 ‑1.93 5 ST 5 1 0 2.43 0 B 15.57 5 B 18 ‐ 0.43 5 A2 Bl ン・¨ o ∞ ∞ m m ∞ o 1 li 1 2 2 ・ ・ 1.07 14.50 ツA ´ 夕譴 為 'AB ツ 14.50 3 l B3 (イ )^ ツ 15.57 ‑5.57 15.57 ‑2.57 15.57 ‑1.57 o l B2 アB ツB― ン̲ ツA ツ株 Al Bl ″ α^ アーン̲ 4 わ 1 / 5 表 6 繰 り返 し不 揃 いで 因子 が 直交 しな い 場 合 の平方和 の 計 算 21.43 114.10 16.10 26.00 SA SB SA× B Sθ STl=:SA+SB+SA× B+Sc=177.62 4.SASの GLMプ ロシジャを使うしかないのか GLMプ ロシジ ャに よ り,繰 り返 し不揃 い の 2元 配置 の解析 が行 えることは分 か ったが ,正 しい の だ ろ う か 。SASな ので ,使 い方 さえ正 しけれ ば,信 頼 で き る結果 として受 け入れ ていい の だ ろ うか .守 屋 ら (2018) に フ リー ソフ ト Rで lmo関 数 と droplo関 数 を組 み合 わせ ,共 変 量 を含む繰 り返 し不揃 いの 2元 配 置 の デ ー タに対す る分散分析 の結 果 が示 され ていて ,GLMプ ロシジ ャ の タイ プ IIIの 平 方 和 が一致す る こ とが確認 され た 。最 小 2乗 平均 につ い て は ,別 途 Rの lsmeansパ ッケ ー ジ を使 った結果 も示 され てい る。 もち ろん 213 ,

222.

GLMプ ロシジ ャの結果に一 致す る。高橋 (2021a)で は,Excclの み を用いて,守 屋 ら (2018)が 示 した最小 2乗 平均が再現で きることを示 した .こ れ らの一連 の結果か ら,GLMプ ロシジ ャの正 しさが ,再 確認 された 高橋 ら (1989)の 第 16章 で,SASの 行列計算言語 恥化 に よって,繰 り返 し不揃いの 2元 配置 の解析 が再 現 . できることを示 した.こ れ らの経験 を元に,Excelの み を用 い統計 ソフ トに依存 しない解析法 を示す ことに よ り,繰 り返 し不揃 いの 2元 配置デ ー タの解析 が誰 にで も追試 ができ,ま た,フ リー ソフ トを用 いた解析にチ ャ レンジ され ることを願 つてい る。 5.Exce!の 回 帰 分 析 が 救 いの 神 実務に明け暮れ ていた時代 には,統 計解析 に Excelを 使 うことな ど論外であった.啓 蒙活動 に軸足を移 し た時に,統 計 ソフ トの解析結果 を解釈 し説明す るためには,Excelで 再現 できることを示す重要性 を痛感す る よ うにな った .平 方和 の分解 で解決 できない繰 り返 し不揃 いの 2元 配置 の解析 が Excclで 出来 ることを示す ことによ り,平 方和 の分解 に代 わ る新 たな方法が多 くの悩 める人達へ の救 いになってほ しい と願 つてい る . GLMプ ロシジ ャは,平 方和 の分解 ではな く,ダ ミー変数 をベ ース に した線形 モデル (回 帰 モ デル )に よる 解析 を行 ってい る。線形 モデル では,す べての変数 が連続変数でなけれ ばな らないので,質 的変数 の場合 は ダ ミー変数 に置 き換 える必要があ る。「ダ ミー変数 とは (な し・ あ り)を 数値化 して (0,1)と す ること」な ど,断 定的な表現 を見かけるたび に うん ざりす る.(0,1)で はな く線形 モ デルでは,(1,‐ 1)の よ うに足 し て 0と なるよ うな対比型 ダ ミー変数 とす ることが,繰 り返 し不揃 いの場合 の最小 2乗 平均お よび分散の推定 を容易にす る。 表 7左 に繰り返し不揃いの2元 配置データの解析に対 し,線 形モデルを適用するために必要なデザイン行 列を示す.因 子 Aの Alに 対 しら=1,A2に 対 しα l=‑1,因 子 Bの Blに 対し(ヽ =1,ら =o),B2に 対し (` =0'ら 2=1)'B3に 対し(為 =‑1,ら =‑1)を 与え,交 互作用 A× Bは ,因 子 Aと 因子 Bの ダミー変数の積で 与 える。さ らに切 片 の推 定 のた め の 変数 と し,為 =1を 加 えてい る。表 7右 に Excelの 回帰 分析 を用 い た結 果 を示す .回 帰全 体 に対す る分散 分 析 表 は ,表 2に 示 した GLMプ ロシ ジ ャのモ デル全体 に対 す る分散分析表 に一致す るが ,4種 の平方和 の 出力 は な く,回 帰 パ ラメー タの推 定値 が 出力 され る . 表 7 繰 り返 し数 が不揃 いの 2元 配 置 デ ー タに対 す る回帰分析 ― 0 1 1 15 1 Oを 除く) 自由度 5 145.4286 8 26.0000 1 11 15 B2 16 14 18 B3 ‑1 1 A2 Bl 1 1 22 ︲一 B3 ‑1 1 0 0 1 分散 29.0857 分散比 8.9495 3.2500 13 1 7 .4286 1 14 12 帰 差 計 回残合 0 13 (χ 分散分析表 一1 B2 10 Excclの 回帰分析 ― 0 一〇 1 AI Bl デザイン行取 係数 標 準誤差 16.00 0. ‐1.00 0.4983 θ^0 θ^l 切片 θ^2 ら1 3.00 0.7205 θ^3 θ∧4 θ∧ ら2 αψ αlら , ‐1・ 00 ‐ 0.50 ‐1.00 5 21 18 214 l ′ P― 値 32.1117 0.0000 ‐ 2.0070 0.0797 ‐ 4.1639 0.0031 0・ 6719 ‐1.4884 0.1750 0.7205 ‐ 0.6940 0.5073 0.6719 ‑1.4884 0.1750

223.
[beta]
表 2に 示 した GLMプ ロシジ ャの タイ プ I,II,IIIの 平 方 和 は ,表 7左 に示 したデ ザイ ン行列 Xの 変数 の一
部 の 変数 を用 い た回 帰 分析 を繰 り返 し行 な い ,得 られ た 分 散 分析表 のモ デ ル の それ ぞれ の 平方 和 SM∞ ELの 差

7右 に 示 した 分 散 分 析 表 の モ デ ル (回 帰 )の 平 方 和 を フル モ デ ル
S(A+B+A× B)=145.4286と 表す .表 8に 示 したのは,Excclの 回帰 分析 で選 択 す る変数 を○印で示 し,6種 の 回帰

分 か ら得 られ る こ と を 示 す .表

モ デル が示 され ,Excelの 回帰分析 を実行 した場合 のモ デ ル の 平方和 を抜 き出 した結 果 が示 され て い る.因 子

Aの み のモ デル の 平 方 和 は ,s(A)=21.4286で ,因 子 Bの み のモデル の 平方 和 は,s(3)=114.0952で ,因 子 Aと
因子 Bを 合 わせ た モ デル の 平方和 は ,s(A‐ )=1302286で あ る.フ ル モ デル s(A+B+A× B)か ら因子 Aを 除 いた 場合
は
あ り,因 子 Bを 除 いた場合 は ,s(A+A× 3)=40'286で あ る
'S(B+A× B)=132.3377で
.

表 8 繰 り返 し数 が不揃 いの 2元 配 置 デ ー タに対 す る回帰分析

デザイン行列 χ
切片

A

χO

α

△

○

l

△

B
因子 B十 交互 作用A× B

○

△

△ △

A十

表 9に 示 す 「 タ イ プ IA」

S
21.4286

ろ2

○

○

114.0952

○

○

130.2286

○

○

○

○

○

○

145.4286

132.3377

○

十
十

-AxB-

atbr arbt

ιl

○ ○

デル

モデルの
平方和

O O

因子 A

6種 の 回

一 B一

+

:用 A×

B

○

△

の 平 方 和 は ,sょ))=s(A)=21.4286,S枯 ))=S(A→

S(A)=108.8000,Sa)×

3)=S(A+B+A× 3)

S(A+B)=15.2000と し て 求 め られ て お り,表 2の タ イ プ Iの 平 方 和 に 一 致 す る .タ イ プ Iの 平 方 和 は ,モ デ ル
′
に 含 め る順 番 に 依 存 し て い て ,因 子 B,因 子 Aの 順 に し た 場 合 は ,「 タ イ プ IA」 の 場 合 は ,研
呂 =s(3)'
′
S品 =S(A+B) S(B)と な る .タ イ プ IIの 平 方 和 は ,研 i;=S(A+3) S(3)=16.1333,S8=畳 A+B) S(A)=108.8000と
な り,鋭 ャと S((f)は 異 な る .タ イ プ IIIの 平 方 和 は ,球 ;=S(A■ B+A× B) S(B+AxB)=13.0909,端 =S(A+B+A× 3)

表 9 Excelの 回帰分析 の分散分析表 のモデ ル の平方和 の差分 か ら得 られ る平方和
αF

A

要因

回帰 の平方 和

タイプ IA 〃

差し引く平方 和

(1)

B
B
×
A

l

S(A)

21.4286

3

S(A+B)

5 S仏 +B+A× B)

21.4286:S.",(')
130.2286 -{ra.l ,
145.4286 - S1.1+a1 130.2286 : S/A,B)(1)

13 Sσ

171.4286 ‑ S.

)

= S̀Aヽ

2

αF

回帰 の 平方 和

145.4286 = Srハ (1)

差 し引く平 方 和

108.8000
15.2000

2

13

26.0000
171.4286

″

平方 和

8

T

要因

平方 和
21.4286

1

タイプ Ⅱ

A 3 Sre*sl 130.2286 - 5131 114.0952 = S,o,(') I
B 3 Sre*sl 130.2286 - S@
21.4286 : .Sr"Ja 2
AxB 5 ,S1aasaa,s.) 145.4286 - S(e*s) 130.2286 = S,o,*,(2) 2

16.1333
108.8000
15.2000

̲二̲坐̲h̲̲̲̲」 塵 堕 壺 1壼1奎L̲■ 望‐
笙 ̲:L%L̲‐ ̲̲」 型 匹
̲ユ̲̲̲̲̲̲̲̲̲̲全]:菱
αF

要因
A

回帰 の平方 和

̀2全

3 S(A+B+A× B)145.4286‐

B

3 5(▲

AXB

5

十B+A× B)145.4286

,(A■ B+A× B) 145.4286

̲生 ̲■ :L陛 │ヒ ̲」

T

■塁=ユ

:ユ

=菫

14笙 ユ菫

=菫

差 し引く平 方 和

Lを 生 ̲B̲=≦ ⊆:3望

タイプ Ⅲ

グ′
1 1

S(謗 ス ×B)132.3377=s̀A(3)
‐ S(A+A×

B)

40.2286 = s̀B、

‐S(A+B)

(3)

2

130.2286 = s̀A× ぃ(3)

平方 和
13.0909

105.2000

2

15.2000

ユ 2望 二 ̲塾豊 墨 IL壼 塑 並 三 二 だ 生 ̲■ ̲̲五
型 1上
各 平 方 和 の合計 は,SF171.4286に 一 致 しない 13 159.4909

215

224.

S(A■ Ax3)=105.2000と な り,タ イ プ IIの 平方 和 と異 な る.な お ,交 互 作用 は ,SP× B)=墨 れ )=S8B)=15.2000 と共 通 で あ る . 6.最 小 2乗 平 均 の 95%信 頼 区 間 繰 り返 しが不揃 いの 2元 配置に対 し,表 7で 推定 されたパ ラメー タθを用 い ,因 子 A,因 子 B,交 互 作用 A× Bの 最小 2乗 平均 を推 定す るための線形和 E(′ )=′ )∂ (′ を表 10に 示す。 この結果 は,表 4に 示 した GLMプ ロシジ ャの lsmemsス テ ー トメ ン トによつて推定 された最小 2乗 平均 に一致す る。 このよ うにパ ラメー タの 推定値 に関す る線形和で計算 された推定値 を,SASで は最小 2乗 平均 と言 ってい る.「 最小 2乗 平均」は,竹 内 ら (1989),「 統計学辞典」 の索引で も見 い だせ ない SASの 方言であることを認識す る必要があ るが,Rの パ ー ケージに lsmemsが 登場 したことによ り,SASの 方言か らの脱却 しつつ あ る ことは嬉 しい ことである . 表 10 線形 モデル の推定値 を用 いた線形和 による最小 2乗 平均 ln 11 12 13 la, ls A B Z ι a ろ ら ̀: Al Z(l) 2) BI Z° B2 ι 1 0 ) ) (5) 0 1 最小 ら 「 θ 2乗 平均 Λ 16.00 ‐1.00 15.00 15.00 17.00 17.00 ‑3.00 13.00 13.00 ‑1.00 15.00 20.00 20.00 11.50 11.50 ‑0.50 ‑1 ‑1 B Al (6) B Z 0 Z ‑1 (8) (9 五 0 Bl 1 A2 1 B2 Z(lo (11) 15.00 13.00 1300 20.50 20.50 14.50 1450 17.00 17.00‐ 19.50 19.501 さて,最 小 2乗 平均の 95%信 頼区間を求めるためには,パ ラメータθに関す る共分散行列を必要 とする . パ ラメータの共分散行列 Σ(め は,デ ザイ ン行列 X,分 散分析表 の残差 の平均平方 (誤 差分散 の推定値 2=3.2500を ∂ 用いて Σ(∂ )=(χ rx)‑1∂ 2 として定義される.線 形和Z=″ の分散Zα ′ (″ )は ,′ に関する2次 形式 2]′ 7=′ r 均″ (″ )=′ [(xrχ )‑1∂ ) (1) (2) (∂ )′ によって推定 され る.パ ラメー タの共分散行列 Σ(θ )は ,行 列計算 を必要 とす るので,伝 統的な分散分析では 使 われ て こなかったが,Excclの 行列計算 を用 いれ ば表 11に 示す よ うに容易 に計 算 できる.表 11右 の SEは , 表 7に 示 した Excelの 回帰分析 のパ ラメー タの 「標準誤差」 に一致す る.こ れ は,Σ (め の対角要素が,回 帰 パ ラメー タの分散 乃″ ので,そ の平方根 を取った もので ある (∂ )と なる . 表 11 パ ラメ ー タの共 分散 行 列 Σ(θ ) X0. Al br .012483 ‐ 0.0226 0.0226 ‑0.0451 ‑0.0451 0.2483 0.4983 0.0226 0.0226 0.0226 0.5191 ‐ 0.0451 ‐ 0.0451 0.4983 0.2483 0.0226 0.0226 0.2483 ‑0.0226 ‑0.2257 ‑0.0226 0.5191 0.7205 b2 ‑0.0451 ‐ 0.0451 ‐ 0.2257 0.4514 0.4514 0.6719 aftt 0.0226 0.0226 ‑0.0226 ‑0.2257 arbz ‐ 0.0451 ‐ 0.0451 0.0451 0.0451 ‐ 0.0903 0.0451 0.5191 0.0451 ‐ 0.0903 0.5191 0.4514 0.7205 0.6719 ‐ 0.2257 0.4514 MiⅣ crsc(Mm」 t(Transpose(xの 範 囲),xの 範 囲))*´ 216 2 :対 角 要 素 =Sqr〈 Иα′ )

225.

表 12に 示す のは,表 10に 示 した因子 A,因 子 B,交 互作用 A× Bの 最小 2乗 平均 に,そ の分散 z″ (″ )が 追 加 され てい る.分 散 の右 隣 の 「幅 ′ 005× SE」 は,Excclの 線 グラフで 95%信 頼 区間 の幅 を重ね書 きす るために 必要であ り,95%信 頼 区間 を計算にも使われ ている.こ の結果 は,表 4に 示 した GLMプ ロシジ ャの lsmeans ステー トメ ン トで求 め られ た最小 2乗 平均 の 95%信 頼区間に一 致す る。 繰 り返 しが等 しい場合 には,パ ラメー タの推 定値 に関す る線形和 による計算 ではな く,計 算 され た各種の 平均 を元 の ング ルを用 いた式 に展開 し,分 散 の加 法性 を活用 した分散 の計算が定式化 されて い る.こ の計算 が面 2/″ 倒 なので ,田 口の式 ,あ るい は,伊 奈 の式 に よ り有効反復数 化 を計算 し,分 散 を 物′ (∂ )で 計算す る方法 ′ が知 られ ている.こ の よ うな繰 り返 しが等 しい場合 の定式化 が ,繰 り返 しが不揃 いの場合 に解析 できない と の迷信 が流布 してい る原 因で もある . 表 12 パ ラメ ー タの共分散行 列 Σ(θ )を 用 いた 最 小 2乗 平均 に対す る 95%信 頼 区間 ln l, B Z Al ′3 ′4 J5 1 0 ′ θ^ 16.00 15.00 0.4514 ̀:全 1.5493 13.45 16.55 17.00 0.5417 1.6972 15.30 18.70 ‐ 3.00 ‐1.00 0 1 幅 ι〕 ̲′ 005× SE̲.:[22Z̲̲二 12D2生 ∧ θ 0 ︲ 一A ︲ 2 ︲ 2 B B L 一B B A2 lt 0 0 0 0 0 0 Z Z 一Z 五 五 一 A ZL111【 13.00 0.8125 2.0786 10.92 15.08 15.00 0.6094 1.8001 13.20 16.80 20.00 0.8125 2.0786 17.92 22.08 11.50 1.6250 8.56 14.44 (η 13.00 0.8125 10.92 15.08 (8) 20.50 1.6250 2.9396 2.0786 2.9396 17.56 23.44 14.50 1.6250 2.9396 11.56 17.44 17.00 1.6250 2.9396 14.06 19.94 19.50 1.6250 2.9396 16.56 22.44 1 ‐ ‐ 0.50 ‐1.00 1 z(6) 五 1 (11) 0 1 0 1 0 B2 Z(10) 1 A2 Bl Z② 1 ‑1 ′ θ^■ 価 皿 t(′ の 範 囲 ,θ ∧の 範 囲 ) SE=sq責 (乃 ′(′ θ^))′ 005=ThV・ 2T(0.05,8ノ =2.3060 ∧ %′ (′ θ )=M血 」〈M面」(′ の範 囲,′ (θ ^)の 範囲),Transposc(′ の範囲)) 表 13に 示 す のは ,因 子 A内 の Alと A2の 最 小 2乗 平均 の差 ,因 子 B内 の Blと B2,Blと B3の 最 小 2乗 平 均 の 差 ,交 互 作用 AXBの AlBlと A2Blを 基 準 と した差 につ い て の 95%信 頼 区間 の 計 算 結果 で あ る。この結 果 は ,表 5に 示 した GLMプ ロシジ ャの esimatcス テ ー トメ ン トを用 い て推 定 した 結 果 に一致す る .因 子 A内 (1)と の (A2‐ Al)は ,Alの ベ ク トル ′ A2の ベ ク トル J(2)の 差 ′(12)=′ (2)̲′ (1)と して 設 定 され てい る .他 の場合 も 同様 に表 12に 示 したそれ ぞれ のベ ク トル 間 の 差 と して求 めた もので あ る . 表 13 最小 2乗 平 均 の差 に対 す る 95%信 頼 区間 ′0 A ′1 ′2 ′3 ′4 幅 ′5 χ 16 ‐1.00 Z Z Bl̲Bl五 (14) Z≧ 二 重2全 l r00ヽ XSE堅と墜L̲二 乙2型全 0.0000 0.0000 0.9931 2.2980 2 Az-Ar Z 0 Ar-Ar B 0.00 ‑0.30 0.00 4.30 ‑3.00 0.00 0.0000 0.0000 0.00 0.00 B2‐ Bl L(15) ‑1.00 2.00 1.4219 ‑0.75 4.75 B3‐ Bl J′ (lの ‐ 0.50 4.06 9.94 0.00 1.6250 AlBl― AlBl Z(lD 0.00 0.0000 0.0000 AlB2 AlBl z(18) 1.50 2.4375 3.6002 0.00 ‐ 2.10 (19) 9.00 3.2500 4.1572 4.84 13.16 A2B1 -A2B1 ; A2B2 A2Bl ι?1) (22) 0 1 2 ・ 7.00 2.7497 2.9396 0 0 1 ‑1 2 1 217 5.10 0.00 0.0000 0.0000 3.2500 4.1572 0.00 ‑1.66 0.00 2.50 5.00 3.2500 4.1572 0.84 9.16 6.66

226.
[beta]
7.考 察
多 くの大学でデ ー タ・ サイエ ンス学科 が新設 され ,実 デー タを主体 に した 多様 な教育がな され るようにな
った ことは,嬉 しい限 りである.実 デ ー タか ら何 らかの規則性 を的確 に見 いだすためには ,統 計解析 の基礎
知識 と実行能力 が必要 である.統 計解析 の専門家 を 目指す な らば統計に関す る英語 の専門書 を読む のはあた
りまえであるが ,そ れ ぞれ の学問分野 でのデー タ解析 を行 う人達には, 日本語 で書 かれた教科 書 と統計 ソフ
トが必要である.多 くの 「統計解析」 の書籍は,こ れ らの人達 を対象 として出版 されてい る。デ ー タ・ サイ
エ ンテ ィス トを 目指す人達は,幾 つかのプ ログラミング言語 をマスターす る こ とが必須であ る.最 近 の Python
な どのフ リーのプ ログラ ミング言語 には,行 列計算 のた めの関数,さ らに重 回帰分析な ど統計 解析 のための
関数 が含 まれていて ,身 近な存在 とな ってい る.そ の結果 として,Excelの 行列 関数 で示 した繰 り返 しが不揃
いの 2元 配置デ ー タの解析な どは,簡 単 にプ ログラ ミングできるであろ う
.

実デ ー タで,2つ の質的変数 ,量 的 な変数 を反応 として解析 しようとす る と必然的に 「繰 り返 し不揃いの 2
元配置」に帰着す るが,こ の問題 を扱 ってい る 日本語 の教科書 を見い 出す こ とができない。そ のためか,Web
上では,「 繰 り返 しが等 しくない と解析 で きない」な どが蔓延 している.そ の原 因は,平 方和 の分解 に頼 り切
りで,ダ ミー変数 を用 いたデザイ ン行列 Xを 用 いた解析 法 が,統 計 の入 門書 では,忌 み嫌 われ ているためで
ある.そ のために,多 くの人達に とつて身近にある Excclで ,簡 単に解決 で きる ことを示す こ とにより,「 平
方和 の分解」 か ら脱却 して もらいたい と願 ってい る

.

SASの GLMプ ロシ ジ ャが偉大 であったのは,分 散分析表 の作成に留ま らず ,各 種 の推定値 に対 し,最 小 2
乗平均 とその 95%信 頼 区間をコンパ ク トに出力 した こ とにある.伝 統的な解析法では,分 散 分析表 を完成 さ
せ る ことが主 目的 で ,各 種 の推定 の 問題 に対 しては冷淡 であ り,そ の結果 と して他 の統計 ソフ トには,最 小

2乗 平均が欠如 してい るよ うに思われ る

.

デ ー タ・ サイ エ ンテ ィス トを目指す人達 に対 し,適 切 な事例 を提示 し,信 頼 できる無償 で継 続 的に使 える
統計 ソフ ト SASの 使 い方 と結果の提示 ,Excclに よる解析法 の解説 と,各 種 の統計グラフの作成法な ど一式
を提供す る ことが ,統 計解析 の質 の 向上 にかかせ ない と考 え,実 践活動 を続 けてい る

.

参 考 文 献

1)高 橋行雄,大 橋靖雄 ,芳 賀敏郎 (1989),SASに よる実験デ ータの解析 ,307‐ 333,東 京大学 出版会

.

2)高 橋行雄 (2013),回 帰分析 。再入 門 ―統計ソフトが対応 していない生物統計 の各種 の課題 を Excelで サクサ
ク解 こう一,https:〃 scicnttfrcss.com/wp― co前 enプ uploads/2019/07/scmma7.pdf
3)高 橋行雄 (2020),続 高橋セミナー第 9回 最尤法 によるポアソン回帰分析入 門 <第 13章 >最 小 2乗 平均の謎
を予測プロファイルで解く,hゅ s:〃 www.yukms.comん iostaプ takttasi2/rec/009‐ 13■ tm
4)高 橋行雄 (2021a),各 種のダミー変数を用 いた最小 2乗 平均と95%信 頼 区間の実際,SASユ ー ザー総会 2021
論文集 ,123‐ 132.

5)高 橋行雄 (2021b),線 形モデルによる欠測値がある直交表 の解析 ,h中 s://wwwyukmsκ omttostaプ takahぶ2/rcc/010hm
6)竹 内啓ら(1989),統 計学辞典,東 洋経済
7)守 屋和幸 ,広 岡博 之 (2018),Rパ ッケージを用 いた最 小 2乗 分散分析と最 小 2乗 平均値 の算 出,日 畜会報
.

Vol.89:1‑6.https:〃 wwwjstagelst.gojp/amclc/chikusaゴ

8)Lcnth RV.(2016),Le

t‐

89/1/89̲1/

Squaes Mctts:Thc R P¨ kage lsmeans,Jο ″′α′9/・ Srα ′お′たα′S■ 加α″ 69,1‑33.

https:〃 wwwjstatsoioryanclc/vicw″ 069i01ん 69101.pdf

9)Li■ lc R.C,Stroup W.W.and F∝ und Rj。 (2020),SASお r Lincar Modcls,4th cd.,SAS Institute.
10)SAS Institute(2013),SAS/STAT13.l User's Guidc,Thc CLM Proccdurc,
https:〃 suppol".sas.con1/documentation/onlinedoc/staプ 131/ginl.pdf

218

227.

統計理論 /生 物統計・ 医薬関連

229.

proc GLMPOWERを 利 用 した MMRMの o月 ヽ 林邦世 サ ンプル サ イ ズ の検 討 1 (1イ ー ピーエス株 式会社 ) Sample size for MMRM with proc GLMPOWER Kuniyo Kobayashi EPS Corporation 要旨 経 時 的測 定デ ー タを解 析 す る際 に用 い られ る統計 モ デル の 1つ に MMRM(Mixed‐ e■ cts Modclsお r Rcpcatcd Measurc)が ある.MMRMは MARMissmgAtRmdom)仮 定 の 下 で生 じた欠 測デ ー タを除外す る こ とな く,モ デ ル の推 測 を行 うこ とが 可能 で あ る.し か しなが ら MMRMを 用 い ,繰 り返 し測 定 の行 われ る 2群 以 上 の治療 群 の最 終 時点 の治療効 果 の 差 を評価 す る場 合 ,最 終時点 の 差 に対す る t検 定 ベ ー ス でのサ ンプル サイ ズ設 計 が行 われ ることが少 な くな い。 この手 法 は不完全デ ー タを活 か す ヽORMの 特性 を考慮 してい な い こ とが指 摘 され てい る(Lu ct al.,2008).本 発表 で は ,MMRMの サ ンプル サ イ ズ設 計 を行 うた めに ,proc GLMPOWERを 利 用 す る方法 を検討 した い 。 キー ワーード :MMRM, missing data, samplc sizc, proc GLM:POWER 1は じ め に 新 医薬 品の開発 な らび に新治療 の開発 に関す る医学研 究にお いて ,治 療効果 の評価 の対象 とな るア ウ トカ ム を経時的に,同 一個体 に対 して反復測 定す ることが少 な くない .こ の よ うに同一個体 に対 して経時的に反 復 的 に測定 して得 られ たデ ー タを経時測 定デ ー タとよぶ .ヒ トを対象 とした臨床試験では事前 に臨床試験実 施計画書等で定め られ た各時点でア ウ トカ ムの計測が行 われ るが,特 定 の時点で何か しらの理 由で計測が行 われ なか った場合には経時測定デー タは欠測デー タとなる.NRC(2002)に よれ ば,臨 床試験では事前 に定めた 介入最終時点での治療群 間 の治療効果 の差 を主 として比較す る場合が多 いが,最 終時点 のデー タに欠測が生 じた場合 には治療群 間 の差 に偏 りが生 じた り,そ の標準誤差 を過大 に評価 した りす ることで検定効果量 を正 しく算 出できない とい う問題 が発生 して しま う.こ のよ うな問題 を回避す るために臨床試験 の計画段階か ら 欠測 の発生頻度 を最小 にす るための手法 を設 定するとともに,生 じた欠測 へ の対処法 を明記す ることが推奨 され てい る . 経 時デ ー タの最終時点 にお ける治療効果差 を MMRMを 用 いて解析す る場合 のサ ンプル サイ ズ設計 の手法に は,最 終時点 のみ のデ ー タを想定 して従来通 りの t検 定ベ ー ス で算 出を行 う手法 ,Wald検 定に基 づい て算 出 を行 う手法 ,解 析 の状況 を細か く設定 しシ ミュ レーシ ョンで算 出す る方法 の 3通 りが主流である.本 稿 では そ れ ら 3つ に加 え ,SAS(v9■ 3)よ り追 加 され た pЮ c を行 う方 法 を検 討 した い GLMPOWERを 利 用 して MMRMの サ ンプ ル サ イ ズ 設 計 . 221

230.
[beta]
2 MMRMに つ い て
線形混合モデル(Linett Mixed Modcl)は 欠測 を伴 う経時測 定デ ー タを解析す るための標準的な統計手法 とし
て今 日広 く取 り扱 われ てい る.線 形混合 モデル は同一個体 にお ける複数時点 でのア ウ トカ ムの相 関を変量効
果 を用 いて表 した回帰 モ デルであ り,以 下 の式で表 され る

.

yt=χ ι
β+Zibi+θ

̀ .…

(1)

Kは ,臨 床試験 の参加者」にお けるni× 1の 結果変数ベ ク トル を表す .β はρ×1の 固定効果パ ラメー タベ ク トル

.

b,は 9× 1の 変量効果 パ ラメー タベ ク トル で,参 加者間で互い に独立に多変量 正 規分布Ⅳ(0,oに したが う。こ

こでDは 変量効果 の分散共分散行列 (9× 9)で ある.θ iは れ

̀Xlの

誤差ベ ク トル で ,互 いに独 立に多変量正規分

布Ⅳ(0,RI)に したが う。 ここでRIは 誤差 の分散共分散行列 (■ ×れj)で ある.さ らにDと R̀は 独 立である

.

臨床試験 においては変量 効果 よ りも固定効果 に注 目して推測 を行 うことがほ とん どである.し たがつて,線
形 混合 モ デル の変 量効 果 わtに 対 して 周 辺 化 したxを 考 え る Mixed― cttccts Modelsわ r Rcpcatcd Measurc(以 下

MMRM)を 用 い るこ とが 多 い。M卜 RMに お いて4の 周辺分布 は
4〜 Ⅳ(χ jβ ,7j), 7:=Z:DZ『 +Rι .¨ (2)
とな る .式 (2)よ り,変 量 効 果 の 分 散 共 分 散 行 列 を用 い る こ とで 固定効 果 の み に注 目 して 推 測 を行 う点 が

MMRMの 最大 の特徴 で あ る。

3 MMRMの サ ンプル サイズ設計
3.l t検 定に基 づい たサ ンプル サイ ズ設計
日本 製薬 工業協 会 (2016)に よれ ば 経 時 デ ー タの最 終時点 にお ける各群 の 平 均 治療効果 ,分 散 を設 定 し,t検
定 ベ ー ス でサ ンプル サ イ ズ 設 計 を行 う場 合 もあ る.SAS/STAT 15.l① User's Guidc(2018)よ り,SASの pЮ c

POWERプ ロシジ ャで最 終 時点 の治療 効 果 差 を解析す るた めのサ ンプル サイ ズ 計 算 が可能 で あ る .以 下 に proc
POWERプ ロシジ ャ の コー ドを示す
.

proc power;
twosamplemeans test=diff

groupmeans: -5.41-6.0

stddev:2.0
power:0.8
ntotal:. ;
run;
SAS/STAT 15.l① User's Guide(2018)に よ る と,師 osamplemems testス テー トメ ン トで母 平均 の 等 分 散性や 不
等 分 散 性 を指 定す る .今 回 は等 分 散 性 を仮 定 して い るの で 「枷Osamplcmems tes← di鋼
gЮ

"meansス

を指 定 してい る

.

テ ー トメ ン トで各群 の 平 均 治療 効果 をそれ ぞれ 指 定 し,stddevで 両群 に共通 の標 準偏 差 を指定

す る .powcrで 検 出力 を指 定す るこ とで ,計 算 され た総 標 本 サ イ ズ(表 1)か ら各 群 のサ ンプル サ イ ズ が算 出 さ
れ る。
表 l proc POWERで 算出された総標本サイズの結果
計算 きれた 経漂章 サイズ
実 曜 伸1■ 出 力

機 理 章 サ イ」

08〔 1

352

222

231.

なお,日 本製薬 工業協会(2014)に よれば,欠 測 が生 じる場合 の サ ンプル サイ ズの低 下 について,サ ンプル サ イ ズ設計 で 多 くの場合に用 い られ てきた手法 は,欠 測 を考慮せず にサンプルサイ ズ を一度算出。そ こで得 ら れたサ ンプル サイ ズに対 し,想 定 され る欠測割合 を考慮 し欠測分 を増加 させ る以下 の よ うな計算式 が用い ら れてい る . ` テンフルテイズ = タタ″ゞ なク場合のテンプルテイズ′ (1‑ぷ 庁される夕μ割合) 3.2.l Wald検 定に基 づい たサ ンプル サイ ズ設計 Lu et al.(2008)は ,欠 測デー タを考慮 した反復測定デ ー タの尤度 に基づいて探索的臨床試験の最終時点 の治 療効果差 の 解 析 を行 う場合 ,Wald検 定に基 づ き ,最 終時点 の 平均治療効果 の 分 散 の欠測割 合 分 の 増 大 を"Ini江 lon ictor"と 呼ばれ るパ ラメー ターで算 出 し,''In■ 誠ionね ctor"を 用いて欠測割合分増大 させ た平均治 療効果 の分散 を用 いたサ ンプル サイ ズ設計 を以下 の手法で提案 してい る . ベース ライ ンを含むノ 時点 の経 時測定デザイ ン を考 える。時点 ごとの被験者数 を ■,m2,・ ・・,乃 と表す .な ・ ・≧ 均 であるとす る.た だ し,計 算 の便宜 上 ,ノ 時 お,こ こでは単調 な欠測 を想定 しているため れ.≧ η2≧ ・ ・m1/ブ =1,・ り )と 表 し 点以降 の被験者数 は 乃+.=0と した.J番 目の被験者 のブ時点 目の デ ー タを均 (:=1,・ ・ , 二 番 目の被験者 の最終時点 まで の全応答変数 を yt=al,...′ 乃ノ)Tと 表す とす る.こ の ときyIは 平均 μ = )r,分 散共分散行列Σの多変量正規分布 に互 いに独 立 に従 うとす る。この ときΣは,そ のし た)成 分 を のたo,た =1,,..』 にもつ対称行列である。また ,り =乃 /れ .o=1,̲J)は ノ時点 日で試験 に残 ってい る (μ l,...,均 被験者 の比 率(残 存率)と 設 定 し,r=(■ ,...,り )Tと 表す .MMRMに 基づ くμの最尤推定量 を2と す る と,′ の 漸近分散 は I ■ で与えられ る。 なお , ′ I=Σ =1(・ 乃 +・ )(0:::× ′0胸7ノ ))・・ (5) で ある.Σ プは 多変量 正 規分布 の 分散共分散行 列Σの 最 初 のσ × ブ)部 分行列 ,0た ×:は 0の (た × ι )行 列 (I=0の ■ 二 /2)で あ る対 場合 ,0,xIは 空 ベ ク トル )で あ る。また相 関行 列 Rを ,そ の o,た )成 分 が三 0,た =1,...J/σ ′=σ´ ″ ´ υυ ‐ ノた 称行列 と設 定す る.さ らにり (j=Iの 時 ri+.=0)を j時 点 日の被 験者 の残存率 として以下を定義す る。 ′ r=Σ =.(■ ̲+.)(。 ::胤 )).(6) 鳳′。 ∫ は空ベ ク ト ここで乃 は相 関行列Rの 最初 の o× J)部 分行列 を表 し,0履 は0の (た × I)行 列(1=0の 場合 ,%× ι ル)で ある。 この とき,式 (1.1)よ り,最 終時点にお け る治療平均 の漸近分散はアαr(島 )=¢ (ィ /れ .)で 与 え られ る.¢ は¢=[I*]プ であ り,こ れ はr 1行 列 の(′ J)成 分 を意味す る . この¢を"Inn onね ctor‖ と呼ぶ.欠 測データが存在する場合ののの分散は欠測データが存在しない場合の¢ 倍にし,z検 定や t検 定に基づきサ 倍となるため,欠 測が想定される場合の治療平均の漸近分散7α r(o)を ¢ ンプルサイ ズ を計算す ることがで きる.式 (5)か ら,¢ は各時点の被験者 の残存率r,相 関構造Rに よつて導出 され るため, この方法に基 づ くサ ンプルサイ ズ設計 では各時点デ ー タの相関構造 と,各 時点にお ける被験者 の残存率 を事前 に想定す ることが必要 となる . 3.2.2 1niatiOn hctorの SASで の実装 欠測が想 定 され るデー タの最終時点における治療 効果 の推定平均μの最尤推定量 をβとした とき,欠 測 が想 定 され る場合 のβの漸近分散 を SAS上 で実際に求 め るため,procIMLを 用 いて Innationね ctorを 算 出 した .な 223

232.

お,時 点数 は 3時 点,各 時点 の被験者 の残存率りσ =1,2,3)を ,時 点 1で は■ =0.9,時 点 2で はり =0.81,時 点 3で は亀 =0.729と し,分 散共分散行列Σとそ こか ら導かれ る相 関行列Rを 以下に設定 した . Σ =│:│: ll: l:l,R=│∫ 是lT :i::l Ll.0 以上 よ り,β の 漸 近分散 に対す る Inn 算 出す る コー ドを以下に示 す 1.0 4.0」 LO.25 0.25 1.0」 on ictorは 式 (6)に お ける行列式 I*の (3,3)成 分 で あ る .Ini狙 on ictorを . proc Iゝ4L; rl=0.9; r2=0.81; r3=0.729; cov={4.01.01.0, 1.04.01.0, 1.01.04.0}; n:nrow(cov); R:J(n,n,l); do i=l to n; do k=l to n; R[i,k]:covIi,k]/(sqrt(cov Ii, i] )* sqrt(cov[k,k])); end; end; inv_R:inv(R); R̲1=J(n,n,0); R̲1[1:1]=inv̲R[1:1]; R2=J(n,n,0); R̲2[1:2,1:2]=inv̲R[1:2,1:2]; R̲3=J(n,n,0); R=3[1:3,1:3]=inv̲R[1:3,1:3]; I̲F̲suB=(rl‐ r2)*R̲1+(r2‐ r3)*R̲2+(r3‐ 0)*R̲3; I̲F=inv(I̲F̲suB); 224

233.

Infl ation_factor:I_F [3,3 ] ; print Infl ation_factor; quit; 以上 よ り,Inn onね ctorは 1.348と 算 出 され た 4 proc GLMPOWERを 用 い た MMRMの サ ン プ ル サ イ ズ設 計 proc GLMPOWERは 多元配置分散分析や 共分散分析 に代表 され る一般線形 モ デル に基づいて ,そ の検出力 やサ ンプル サイ ズ を算 出す ることを 目的 と したプ ロシジ ャであ る.SAS/STAT 15.2① Uscr's Guide(2020)に お いて ,本 来,変 量効果 を含む MMRMに 対す る proc GLMPOWERを 用 いたサ ンプルサイズ計算 は推奨 されて い な いが ,応 答変数 yι に対 して以下の(7)式 の よ うな一般線形 モ デル を持 つ と解釈 し,proc GL〕 嘔〉 OWERを 用 いて経 時デ ー タの最終時点 における治療 効果差 のサ ンプル サイ ズ設計を行 いたい。 これには ,一 般線形モデ ル を用 いた反復測定分散分析 を利用す る。 なお ,一 般線形 モ デル における誤差 の分散は一定で あるため,こ こで扱 うMMRMは 分散共分散構造 の対角成分 がすべ て等 しい ものに限 られ る . ・ +Gt 4〜 Ⅳ(χ ι (7) β,G̀), G̀=Z:DZ『 +Ri・・ yt=χ ̀β 繰 り返 しのある反復測定分散分析 に基 づ いたサンプルサイズ計算 を検討す る proc Gい ば OWERの コー ドは 以下 の よ うになる . data test, input trt S yl y2 y35 datalines; A ‑2.0 ‑4.0 ‑6.0 B ‑1.8 ‑3。 6 ‑5。 4 runS proc glmpower data=test; class trt; model y1 y2 y3= trt ; repeated Time 3 (7 2 3); power mtest = hlt alpha = 4.05 Power = .8 ntotal = stddev = 2.0 matrix ("Conn") = (1.O 0。 251.0 0.25 0.25 ■.0) 225

234.

CORRMAT = :iCorri'5 run3 SAS/STAT 15.2① User's Guide(2020)よ り,proc GLMPOWERで は modclス テ ー トメン トにお い て ,応 答変数 と独 立 変数 の ラベ ル と,モ デ ル の平均構 造 を有 したデ ー タ セ ッ トを先 ん じて 作 成 し,指 定す る .classス テー トメ ン トでモ デル の 被 験者 間因子 を,modclス テ ー トメ ン トで モ デル式 を指 定 す る.応 答 変 数 は等 号 の左 側 に記 載 す る必要 が あ る 。 pcatedス テ ー トメ ン トにて被験者 内 因子 を指 定す る 。 経 時測 定デ ー タを仮 定 す る場合 に は繰 り返 しの因 子 とな る 「time」 を指 定 す る.こ れ に よ り,classス テ ー トメ ン トで 「時間」や 「治療群 と時 間 の 交 互作用」を 指 定す る こ とな くそれ ぞれ の 因子 に対す る結果 が算 出 され る。 Кpeatedス テー トメ ン トでは被験者 内 因子 の水 準 に水 準え を新 たに指 定す る こ ともで き,被 験 者 内因子 と な る変数名 ,水 準数 の 後 ,水 準名 を羅列 した もの を格 納 した 「()」 の順番 で 記 載 す る.powerス テ ー トメン ト 内 で 検 定 の種類 (デ フ ォル トでは HOtclling̲Lawley F検 定 を指 定),α エ ラー ,検 出力 ,共 通 の誤 差標 準偏差 , 誤 差 の相 関行列 (下 三 角 部 分 のみ)を 指 定す る こ とで ,固 定 シナ リオ要素(表 2)と 算 出 され た総標 本 サ イ ズ(表 3) が 出力 され る。 表 2 固定 シナ リオ要素 固定シナリオ要素 Wilks/HLT/PT法 F:鋤 起 O′ Brien― Shieh Hotelline-Lawley Trace 005 有意水準 誤差標準偏差 2 相闘行列 Corr 名 日の検出力 0 8‐ 表 3 計算 された総標本サイズ 計 算 された 撻標 章 サ イス インデックス 士子 の DF 分 母 ● EF 実隆 0模 出 力 2 5 0■ 12 3 Tire■ t威 2 1447 0■ 〔 ‖ 1450 lnterc+pt lntercept 1 4 口997 5 t威 trt 1 334 0■ 〔 嗜 395 童 彙 要国 1 Tine Intercept ■ Tire t威 3 h4eanftp) 4 t4etnftp) 勅 異 皓篠章 サ イメ 今 回 の解析 で はベ ー ス ライ ンか ら最 終 時 点 までの治療 効 果 の 変化量 の群 間差 が主 た る興 味 の 対 象 であるた め ,SAS/STAT 15.2① Uscr's Guide(2020)に 基 づ き,す べ て の 時 点 で治療 効果 の 変 化 量 に差 が な い とす る帰無仮 説 に則 つてい る こ とを表 す 「Mean(Dcp)」 の要 因 「慣」 の 行 を確認す るこ とで ,総 サ ンプル サ イ ズ を 396と 得 る こ とが で き,今 回 は各群 均等 に割付 を行 うこ とを想 定 して い るため,各 群 の サ ンプル サイ ズ 198と 求め る こ とが で きる . 5各 手 法 の性能 比 較 ,oc GL〕 唖 )OWERで 算 出 され た MMRMの サ ン プ ル サ イ ズ の 精 度 を確 認 す る た め に ,t検 定 ベ ー ス ,Wald検 226

235.
[beta]
定ベ ー ス で の サ ンプル サイ ズ計 算 な らび にシ ミュ レー シ ョンに対 して性 能比較 を行 つ た。 シ ミュ レー シ ョン
は各条件 下 で のサ ンプル サイ ズ 計 算 の 精度 を確認 す るた めに行 っ た .経 時測 定デ ー タのベ ー ス ライ ンか ら最
終 時点 まで の 治療 効果 の変化 量 の 群 間差 を対象 と し,サ ンプル サ イ ズ 計算 では完 全 デ ー タ,欠 測 メカ ニ ズ ム
が MCAR

10%,MCAR 30%,MARの 各条件 下 で 検 出力=0.8に お け るサ ンプル サイ ズ を算 出 した .シ ミュ レ
ー シ ョンに お い て も同様 に完全 デ ー タ ,MCAR10%な らび に MARの 各 条件 下 でデ ー タをそれ ぞれ 1000組 作
成 し,検 出力 の算 出 を行 った 。

5.1サ ン プ ル サ イ ズ 設 計 ,シ ミ ュ レー シ ョ ン の 設 定
設定は 日本製薬工業協会(2016),横 山 ほか(2006)を 参考に した。
うつ病 の第 二相試験を想定 し,以 下 のよ うにサ ンプル サイズ設計 ,シ ミュレー シ ョンの設定を行 った
。応答変数 :InM‐ Dス コア
・ 群 :2群 g(g=1:実 薬群 ,g=2:プ ラセボ群)
。各群 の被験者数 付比は 1:1):100,200,300,400,500,600
(割
。時点数 :ベ ース ライ ン+3時 点 点 3が 主要評価 時点
(時

)

各 時点 の測 定値 のベ ース ライ ンか らの変化量 の 平均 ,分 散

:

表 4 完全デー タの各時点の測定値のベースライ ンか らの変化量の平均(分 散)
測 定値 の平均 (分 散 )

日
寺′
点1

時点 2

時点 3

実薬群

20(4.0)

‐
4.0(4.0)

‑6.0(4.0)

プ ラセボ群

■.8(4.0)

‑3.6(4.0)

‑5.4(4.0)

。測 定 値 の ベ ー ス ラ イ ン か ら の 変 化 量 の 分 散 共 分 散 行 列 Σ

:

Σ =│:│::│:::1

Ll.0

1.0 4.0」

・ 変化量 の各 時点 の相 関
表 5 完全デ ー タの各時点 の変化 量 の相 関

時点 1

時点 2

時点 3

時点 1

1.00

0.25

0.25

時点 2

0.25

1.00

0.25

時点 3

0.25

0.25

1.00

。
完全デー タの発生(コ ー ドはサ ンプル サイ ズ 100の とき,%let sample̲size=で サ ンプル サイ ズ 200,300,400,

500,600と 変化 させ る):
o%let sample_si ze: | 00

;

proc iml;

rn"un1:{_2.0 -4.0 _6.0};

..un2={-1.8 -3.6 -5.4\;

227

236.
[beta]
cov=(4.01.01.0,
1.04.01.0,
1.01.04.0};

rv=J(1,5,1);
do

i:l to 1000;
call RANDSEED(l 00000);
rv I =Randnormal(&sample_size.,

meanl, cov);

rv2:Randnormal(&sample_size., meut2, cov);

trt I :J(&sample_ size., l, I ); trt2:J(&sample_size., 1,2) ;

loop:J(&sample_size., 1, i);

rvl B=rt1 llpatllrvl llpatllloop; ; rv2B:lr2llpatllrv2llpatllloop;

rvl=rvlBllw2B;
rv:ryllrv1;
end;

CREATE simulation_data FROM rv[colname: { "fit" I'y l tr " y2" " y 3" "loop " } ] ;

APPEND FROM rv;
close simulation_data;

quit;

。欠測 の発 生
MCARMissing Complctcly at Random)を 仮 定 し,各 時点で の欠 測率 10%の 場合 と 30%の 場合 の 2通 り
,

MARMissing tt RandOm)の

3つ の欠測メカニズム を考 える.な お欠測時点以降はす べ て欠測 しているとす る

単調な欠測 を仮定 した。MARで は最終時点での残 存率を,実 薬 で は 48%,プ ラセボ群では 35%に なるよ う
各時点 の欠測確 率を均o=1,2,3,乃 =0)と して以下 のよ うに設定 した
実薬群 … ρ′=1ル Λ(2.12‑0.3乃 ̲1)
プラセボ群 ...町 =1ル A(1.61‑0.1均 ̲1)
.

サ ンプル サイ ズ計算のために ,各 欠測メカニズム の各時点 の残存率 を表 6に ま とめた。
なお これ らの欠測があるときの最終時点にお ける各群 の平均治療効果 の分散 を算 出す るため,Innmonね ctor
をそれぞれ の欠測条件下で算 出 した。MCAR 10%の 時 Innttionね ctorが 1347と なるため分散 5.388,MCAR

30%の 時 Innationね ctorが 2.766と なるため分散 は 11.065,MARの 時は実薬群で Innationねctorが 2.068と な
るため分散 は 8275,プ ラセ ボ群 で In■ ■ionね ctorが 2,83と なるため分散 11.131と 算 出 され る

.

表 6 欠測がある時の各時点における被験者の残存率
欠測状況

日
寺′
点1

時点 2

時点 3

MCAR 10(る

両群共通

0.900

0.810

0.729

MCAR 30(%

両群共通

0.700

0.490

0.343

228

237.
[beta]
MAR

実薬群

0.520

0.500

0.480

プ ラセボ群

0.480

0.410

0.350

5.2サ ンプル サイ ズ 計 算 の 方法 と結果
経時データのベースラインか ら最終時点までの治療効果の変化量の群間差に対するサンプルサイズ計算を t

OWERの 3通 りで行 った
検 定 ベ ー ス と Wald検 定 ベ ー ス ,そ して proc GL〕 嘔〉

.

αエ ラー=0.05,検 出力 =0.8で 算 出 した。 結 果 は表 7に 記 載 して い る.な お ,欠 測 あ りの条件 下 で は時点間
や群 間で Iniation Lctorが 異 な るた め等 分 散性 が仮 定で きな い .例 えば,MCAR 10%の とき,時 点 1の 分散 は

1.080*4=4.323,時 点 2の 分散 は 1.204*4=4.816,時 点 3の 標 準偏差は 1.348■ 4=5.388と な り時 点 間 で
等 分散 で はない .こ れ に よ り,SAS/STAT 15.2① Uscr's Guide(2020)よ

り等 分 散 性 の仮 定 を必 要 とす る proc

GL】岨)OWERに お け るサ ンプル サイ ズ 計算 は実行 不可で あ っ た 。

ベ ー ス ライ ンか ら最 終 時 点 までの治療 効 果 の 変化 量の群 間差 に対 す るサ ンプル サイ ズ にお い て ,欠 測 が増
大す るにつ れ て t検 定 ベ ー ス の サ ンプル サイ ズ が Wald検 定 ベ ー ス のサ ンプル サ イ ズ よ り大 き くな る傾 向にあ
った 。 また欠測 な しの 場 合 には proc GL】 旺)OWERが 他 の 2つ の 手 法 よ りも大 き な サ ンプル サイ ズ を必 要 とし
た。
表 7 ベースライ ンか ら最終時点までの治療効果の変化量のサ ンプルサイズ計算 の結果(1群 あた りの人数)
欠測状況

t検 定 ベ ー ス

Wald検 定 ベ ー ス

欠測 な し

176

176

MCAR 10%
MCAR 30%
MAR

241

236

513

481

378

425

pЮ

c Gい POWER
198

5.3シ ミ ュ レー シ ョ ン の 方 法 と結 果
上記 の時点数 と平均構造 ,分 散共分散 の設 定で各群 のサ ンプル サイズを 100,200,300,400,500,600と してシ
ミュ レー シ ョンを行 った αエ ラー=0.05の もと,完 全デー タ,欠 測デ ー タ(MCAR 10%,MA動 の 3種 類 のデー
タを作成 し,proc mixcdを 利用 して検出力 を算 出 した。モデル の 共変量には治療 群 ,時 間,時 間 と治療群の交
互 作用 を指定 し,ベ ース ライ ンか ら最終時点 までの治療効果 の変化 量をもって治療効果 の有意差 の 有無 を判
定 した .コ ー ドを以下に示す。
ods _all_ close;

proc MIXED data:simulation_data method=eml ;

#生 成 したデ ー タ ご とに解析 を行 う

by loop;
class id TRT AVISITN ;

model datal

: TRTAVISITN TRT*AVISITN/ s ddfm = kr ;

repeated AVISITN / type:CS subjeceid r;
lsmeans TRT+AVISITN/

estimate "trtl-ffi2"

pdiffcl ;

trt

I

-1

T1*AVISITNOO l OO-I;
ods output estimates = estimates;

229

238.

run; data MMRM result; set estimates; by loop; resulFO;resultl:0; if Probt<0.05 then resulFresultrl ; if Probt<0.025 then resultl=esultl+l ; run; シ ミュレーシ ョンの結果は表 8に 記載 している.同 じサ ンプル サイ ズ帯で も,欠 測確率が増大す るほど検 出力 が低下 した。 また,検 出力 80%の ときのサ ンプル サイ ズ を表 か ら概算す る と,欠 測 な しの時約 170, MCAR 10%の 時約 230,MCAR 30%の 時約 490,MARの 時は約 270と なった。 表 8 ベースライ ンからの変化量の差に対 して,シ ミュレーションを用いて算出した各欠測状況の回ほMの 検出力 欠測 状 況 100 200 300 400 500 600 欠測 な し 0.584 0.869 0.966 0.992 0.995 0.999 MCAR 10% MCAR 30% 0.478 0.735 0.889 0.955 0.983 0.995 0.262 0.473 0.596 0.747 0.817 0.861 M:AR 0.422 0.705 0.843 0.938 0.965 0.988 5.4シ ミ ュ レー シ ョ ン と比 較 した 各 サ ン プ ル サ イ ズ 設 計 の 手 法 に つ い て 表 7,表 8よ り,サ ンプル サイ ズ計算 とシ ミュ レーシ ョンの結果 を比較 した。シ ミュレーシ ョンはサンプ ル サイ ズ計算 の結果 の妥 当性 を確認す るため行 った。欠測 な し,MCARの 同一 条件下でのサ ンプル サイズが シ ミュ レーシ ョンの もの と同等 に算 出 され る Wald検 定ベ ースのサ ンプル サイ ズ設計が,サ ンプル サイ ズ計 算 の 中で最 も適 した手法である と考 え られ た。 しか しなが ら,MARの 欠測 の場合 には Wald検 定ベ ースのサ ンプル サイズは過大 になる傾向にあった . t検 定ベースのサ ンプル サイ ズ計算 ではサ ンプル サイ ズ を過大 に,proc GLl嘔 〉 OWERで もサ ンプル サイズ を 過 大 に算出す る傾 向にあ った.t検 定ベ ースでのサ ンプル サイ ズ計算 は,計 算式 に最終時点の欠測割合の情報 のみ しか組み込 まれ ていないため,欠 測 に対す る情報が少 な く,欠 測 の影響 を計算 に十分に反 映で きていな い と考 え られ る . また proc GLMPOWERに おいては欠測が想定 され る場合 には,等 分散性 が仮 定できないためサ ンプルサイ ズ計算 を行 うことがで きない点で実務 に使用す る際には慎重 に考慮 を重ね る必要があると考える . 6ま とめ 経 時デ ー タにお け るベ ー ス ライ ンか ら最 終 時点 ま で の 治療 効 果 の 変化 量 の 群 間差 を解 析 す る場 合 のサ ン プル サイ ズ設計 につ い て ,シ ミュ レー シ ョン と 2通 りのサ ンプル サイ ズ計算 ,そ して proc GL〕 嘔)OWERを 用 い たサ ンプル サイ ズ計 算 の比 較 を行 った .Wald検 定 ベ ー スの サ ンプル サイ ズ 計 算 は ,完 全デー タ時 は元 よ り , 欠 測 が想 定 され るデ ー タにお いて も シ ミュ レー シ ョン とほ ぼ 同等 の 結果 を示 した ,欠 測デ ー タ時 の推 定平均 の 分 散 の増大 を考慮 可能 な Wald検 定 ベ ー スの サ ンプル サ イ ズ設 計 の使 用 を ,今 後他 の条件 下 で 検討 す る と 230

239.

と も に ,proc GLI岨 )OWERの MMRMの サ ン プ ル サ イ ズ 設 計 へ の 利 用 も さ ら に 検 討 して い き た い 参考文献 [1]松 山裕 ,山 口拓 洋 ,医 学統 計 のた めの線形 混合 モ デ ル ー SASに よるア プ ロー チー ,サ イ エ ンテ ィ ス ト社 (2001) [2]日 本製薬 工 業 協会 手法 につ いて 医薬 品評価 委員会 デ ー タサイ エ ンス部会 ,欠 測 の あ る連続 量経 時 デ ー タに対す る統計 , 聾藤 :/独 wLttЦ 凶亘腱ュfol里笙L≧ 1と遜』 墨 壺[(最 ≦ m2塾 上並 lk≧ 笙コ£nプ 強墨避 Ωclo(ml懸 重し生1笙 1重 1型 菫 ≦≧ l⊆ 終 確 認 2022年 8月 16日 ) [3]日 本製薬 工 業 協 会 医薬 品評 価 委 員会 デ ー タサイ エ ンス部 会 ,臨 床試 験 の欠測 デ ー タの取 り扱 い に関す る 最近 の展 開 と今 後 の課題 につ い て ,EMAガ イ ドライ ン,cstimandと 解析 方 法 の概説 ‐ ̲レ ポー ト h:堕 過 1旦 , 墜i2堅 l坐」1∠1血1ュa血 左ゝ 竺1塑 重⊆ 旦∠ 幽 1■ 21L」 理 1ヱ 1』 聖 墨理 と ∞Qz里 二 鐘1星 襲 ュ :墜 1̲菫 型:(最 終 確 認 2022年 8月 16日 ) 治療効果 を評価 す る混 合 効果 モ デ ル とそ の周 辺 ,朝 倉書店 (2015) [3]丹 後俊郎 ,経 時 的繰 り返 し測 定デ ザイ ンー [4]Lu,Katng,Luo,Xiachui and Chcn,Pci‐ Yun.Samplc Sizc Estimttion for Repeated Measures Analysis in Randomized Clinical Trials with Misshg Data,The lntem江 lonal Joumal ofBlostatistics 4(1),(2008) [5]松 山裕 ,経 時観 察研 究 にお け る欠 測 デ ー タの解 析 ,計 量生物 学 25(2),89‑116,(2004) [6]土 居正 明 ,SASに よる例数 設 計 の シ ミュ レー シ ョン , 堕軽 ://wlw.sas.com/ctttent/dalll墜 墾坐 口 doc/event/sas― use=― 望Qtts/usQ撃 ⊇璽 s13‐ c‐ 11二 pdf(最 終確認 2022年 8月 16日 ) [7]横 山雄 一 ,大 浦 智紀 ,土 居 正 明 ,シ ミュ レー シ ョンデ ー タ発 生方 法 , 塁 ≧ 丞1±p2=o2璽f(最 終確認 2022 皇§ ≦ 並 Q二 饉∠ da里昼△望L¨菫∠ 虹 ∠ 塑 1菫 塾 lttLg⊇ ユ墜墨 塾 ⊇望 墾坐Y亡 § 」 =f型 ̀≧ ̀】 年 8月 16日 ) h」 [8]五 所 正彦 ,丸 尾 和 司 ,経 時測 定 デ ー タ解析 にお け る mixed‐ cmccts modcls br rcpcatcd measurcs(MMRM)の 利 用 ,応 用統計 46(2),53‐ 65,(2017) [9]SAS Institutc lnc.,Cary,NC.SAS/STAT 15.2Q Uscr's Guidc Thc CL:MPOWER Procedure,(2020) [10]SAS Institutc lnc.,Cary,NC.SAS/STAT 15.l① Uscr's Guidc Thc POWER Procedure,(2018) [11]National Rcscarch Council., Thc Prcvcntion ald Trcatmcnt of Misshg Data in Chnica Trials.Panel on Haldlhg Misslng Dtta in Clinical Trials.Comnll■ cc on N江 lonal Stttistics, Division of Bchaviord and Social Sciences and Education.Washing:on,DC:The,National Academies Press,(2010) 231

241.

統計理論/生 物統計 0医 薬関連/ . SASシ ステム

243.

Time vaving treatmentに 対す るIPTW法 による因果効果 の推定 O鈴 木徳太 1、 折原隼 一 郎 2東 (1横 浜 市 立大 学デ ー タサイ エ ンス学部 、 2 京 医科大学医療デ ー タサイ エ ンス分野 ) 本文 統 計的因果推 論 で は、単一 の 時点 にお いてのみ治 療 が 行 われ る状況 を想 定す る こ とが 多 い 。 しか し、現実 に は複数 の 時 点 にわ た って継続 的 に治 療 が行 われ る場 面 は 多 く、 そ の状況 で は単 一 時点 を想 定 した統計 的因果 推 論 の 手法 を、 そ の まま適用す る こ とはで きな い 。 治療 が複数 時 点で行 われ る とき、最 初 の 治療 が時 間 の経 過 に よ らず 一 貫 して行 われ続 け るか 、それ とも各 時 点 にお いて 異 な りうるか に よつて議 論 は異 な る。 前者 の タイ プはtime■xcd trcatmc■ 、後者 はtimc‐ va ng trcatmc■ と呼 ばれ る。本発 表 で は、time‐ varying ttatmc■ に対 す る因果 効果 の 推 定方法 につ いて 概 説 す る。Timc― vaヮ ing treatmentに 対 す る因果推 論 を行 う際 に問題 とな るの が 、時 間依 存性 交絡 (Time‐ dcpendcnt conお undcrs)で あ る。 これ は、例 えば 治療 が2時 点 で行 われ た とした時 、 (1)ベ ー ス ライ ン後 の共変量 が存在 し、(五 )そ れ がベ ー ス ライ ン時 点 の治療 の 因果 的 な関係 を持 ち (あ るい はそ れ と共通 の原 因 が存在 )、 (面 )ア ウ トカ ム と次 の 時 点 での治療 に関す る交絡 因子 で あ る場合 に引 き起 こ され る 問題 であ る。す なわ ち、(五 )と (面 )を 満 たす ベ ー ス ライ ン以後 の共 変 量oは 、ベ ー ス ライ ンで の 治療 とア ウ トカ ムの 中間因子 で あ り、かつ2時 点 目の 治療 とア ウ トカ ムの 交絡 因子 であ るた め 、それ を条件 付 け して も しな く て も因果 効果 の推 定 に対 して バ イ ア ス を発 生 させ て しま う。 よ って 、回帰や マ ッチ ン グ、層 別化 とい った 単 一 時点 の 治療 を想 定 した条件付 きに基 づ く標 準 的 な手 法 では対応 がで きな い。 この 問題 に対応 す る手法 と し て頻 用 され るのがRobinsの g‐ methodsと 総 称 され る一 連 の 手法 で あ る。 今 回 は 中で も周辺 構 造 モ デル にお け る IPTW法 (IPTW ofMSMs)に 注 目 し、 そ の 手法 の紹 介 とSASで の 実装方 法 につ い て簡 単 な紹 介 を行 う。 参 考文献 ・ 日本製 薬 工 業 協会。 (2021).リ アル ワール ドデ ー タ・ 疾 患 レジス トリを活 用 した 医薬 品 開発 ● Robins,J.M.,&Hcman,M.A.(2009).Estim . g′ 滋″″ ″ on of thc causal effects of time‐ vaWing exposures.Zο ″ aα ′ αα初′ 夕sお ,553‐ 599. ● Robins,■ M.,Heman,M.A,&Brumback,B.(2000)Marginal structural models md cttsal intrcnce h cpidcmiolo〔 y.Eρ ′ グ ̀″ o ブ ο′ ο涯 ク,11(5),550‐ 560. Naimi,A.1.,Colc,S.Rり ′α″ο″ 2α ′ ″α′ &Kcnnedy,E.H.(2017).An introduction to g methods.ル た′ ノο″′ ̀ブ y,46(2),756‐ 762. ″″わ′ ο クブ o Kcnncdy, E.H.(2019)."Nonparamctric causal cmects based on incremental propensity scorc js″ ο intcwcntions."Jο ″ ″ ′ ″″ q′ ″θИ″σ ″ Jcα ″S′ α ″ α′И∬οε力′ ο 4114(526),645‑656. 235 ‐

245.

金融 0経 済・ 経営関連

247.

公的 ミクロデー タにおける調査対象世帯 の家族構成 が 一 日で分 かる新変数表現法の開発 と、SASに よる実装例 の紹介 周防 節 雄 兵庫県 立大 学 Developing a Brand-New Method for Presenting Household Structure of Respondents for Public Suney Data Ibgether with How to Use it by SAS System Setsuo Suoh The University of Hyogo 要旨 国勢調査 の匿名 デ ー タに含 まれ る各世帯員 の 4つ の個人属性 (続 柄・ 性別 。年齢情報 。婚姻 状況 )を 組み 合 わせて、各世帯 の世帯員構成が一 日で分かる新発想 の 「家族構成変数」 を考案 した。それ を全 国消費実態 調査 の匿名デー タに も適用 した後 、 この異なる二つの 匿名 デ ー タに対 して 、家族構成変数別 に出力 したい く つ かの統計量を、 この家族構成変数 をキー として 「統合」す る実験 を行 った。 そ の結果、異 な る統計調査か ら得 られた分析結果 を、同一の家族構成 の世帯毎に連結す る ことが極めて有効 であることが分 かった。従来 か ら行 われてい る異 な る統計調査 の個票 同士のデー タマ ッチ ングとは全 く発想 の異なる手法 を使 った分析結 果 の一部を紹介す る。 この統合実験 の意義 としては、異 な る統計調査か ら得 た様 々な社会 。経済活動 に関す る分析結果 を、世帯構造 とい う概念 をマ ッチ ングキー として統合す ることで 、世帯構造毎に特徴 的な様 々な 実態 を浮かび上が らせ ることが可能 となる。 この手法 を使 えば、世帯を調査客体 とす る統計調査デ ー タな ら、 ほ とん どの調査デ ー タに も適用可能 で、多数の異なる統計調査 か ら得た解析結果 を、家族構成 変数 とい う共 通 の物差 しで 「統合」で きるよ うにな る。 キー ワー ド 国勢調査、全国消費実態調査、家族構成変数 、家族 の社会 。経 済活動、新デー タマ ッチ ング法 1.は じめに 1980年 代 半 ばの メイ ンフ レー ム・ コ ン ピュー タの時代 か ら、筆者 は、公 的 統 計 の ミク ロデ ー タ (当 時 は、 官 庁 統計 の個票 デ ー タ と呼称 して いた )の 分析 を始 め 、今 日に至 ってい る。 当時 か ら、貴重 な統 計 調 査デ ー タ を更 に効 率 よ く利 用 したい とい う発 想 で 、個票デ ー タ レベ ル で 、異 な る 統 計調 査デ ー タ を 「照 合 」 しよ うとす る手法 が 論 じられ 、開発 され て きた。 世帯 を調 査 客 体 と す る公 的統 計 の 分野 では 、完 全 一 致 マ ッチ ン グ (Exact Matching)と 統計的 マ ッチ ング (Statistical Matching)と い う 2つ の手法 が主流 で あった。 世 帯 を調 査客体 とす る調 査 で は 、 ほ とん どの場 合 、各 世 帯 の 属性 の他 に 、各 世 帯 を構成 す る世 帯 員 それ ぞれ の 個人属性 も調 査 項 目にあ る の が普 通 で、デ ー タ構 造 も、世帯属性 と世 帯 員 属性 とい う 二 層 構 造 にな って い るのが 普 通 で あ る。 こ う した 二 層 構 造 を持 つ 複 数 の 異 な るデ ー タに対 して 、従来 の マ ッチ ング手法 で 果 た して意 味 の あ る マ ッチ ングが 可能 な のか 、長 ら く考 え を巡 らせ て きた。 そ の過 程 で 、「直感 的 に」家族構成 を識 別 で きる変数 の 開発 を しよ うと思 い 立 っ た。世帯 を調 査 客体 とす る統計データには、ほとんどの場合、世帯員全員について、4つ の個人属性、①続柄、② 婚姻状況、③性別、 239

248.

④年齢 の情報 がある。 この 4つ の変数があれ ば、それぞれ の世帯 の家族構成 が判別 できる。結局、 この 4つ の情報 を 「一変数 に集約 」 して、かつ 、誰 が見 て も説明な しに家族 構成 が一 日で分かる変数 として 、「家族 構 成 変数 」 を開発 した。 家族構成変数 の 開発過程お よび、そ の仕組みについ て は周防 (2021)で 詳細 に解 説 してい るので本稿では省略 し、付録 1に 、そ の概略図を示す に留 める。 本稿 1で は、この変数 を共通項 として使 って、 異なる統計調査デ ー タか ら得 られ る統計量を算 出 して、家 族構成 毎 にその結果 を 「統合」 しよ うとい う試みである。従 って 、 ここで言 う 「統合」 とは、 従来行われ て きた 「照合」や 「マ ッチ ング」 とは全 く異 なる概念である。 2.世 帯構 造 と各世 帯 の社会 ・ 経 済活 動 の 関連 性 各 世 帯 の社会 ・経済活 動 が、そ の家族 構成 と密 接 に関連 してい ることは議 論 の余地がな い。 例 えば、 8050(9060)問 題、少子 高齢化、人 口減少 、ひ とり親世帯、貧 困世帯、経 済格 差 な どをは じめ とす る懸案事 項 には、それぞれの世帯 の家族構成 が大 い に影 響 している と考 えるのが 自然 で あ る。本稿では、 (独 )統 計セ ンターが 提供 している 2000年 国勢調査 (以 後、国調)と 1999年 全国消費実態 ::周 査 (以 後、全消)の 匿名 デ ー タか ら、家族構成変数 を作成・利用 して 、前者 か ら就労時間、後者か ら収 入 。支出の状況 を算 出 して、 各世帯 の家族構成に よる経済活動 の傾 向 の比較 ができるよ うに した2。 3.ミ ク ロデー タ提 供時 に組 み込 まれてい る世帯 分類 に 関連 す る変数 世帯 の種類 型 」 とい う世 帯分類 が広 く使 われ て き た 。 現 在 で は、世 帯 を調 査 客体 とす る ほ とん どの 統 計 調 査 の 個 票 デ ー タ に も、 同様 の 変数 が組 み込 まれ てい る。 世帯の家族類型 (一 般世帯 ) 因 み に 、 2000年 国調 。匿名 デ ー タで す 変 数 と して 、「世 帯 の 種 類 」、「世 帯 3世 代世帯 の 家 族 類 型 」、「3世 代世 帯 」 の 3つ の (一 般世帯 ) 1 0 △ は 、表 1に 示す よ うに、世 帯 区分 を表 1 2 3 4 5 6 △ 国調 で は、昭和 45年 か ら 「家族 類 表 12000年 国調・匿名データの世帯分類変数 一般世帯 施設等の世帯 夫婦のみ の世 帯 夫婦と子 供 か ら成る世帯 男親 又 は女親 と子供か ら成 る世帯 その他 の親 族 世帯 非親族世 帯 単独世 帯 対象外 3世 代世 帯 :3世 代以上世帯を含む 上記以外 対象外 変 数 が 含 まれ てい る。 た だ 、各 コー ド に付 け られ た 日本語 の 詳 細 な意 味 の解 説 は 、総 務省 統 計局 の サ イ ト3に あ るが 、「世 帯 の家族 類 型 」 の 1〜 6 の コー ドとの対応 が複 雑 過 ぎて、実用上 の 難 点 が あ るよ うに思 う。 例 え ば 、「世 帯 の 家 族 類 型 」 の 「2:夫 婦 と子 供 か ら成 る世 帯 」 に含 まれ る世 帯 を よ く見 る と、通 常 、 我 々 が普 通 に思い浮 か べ る世 帯 とはか け離 れ た 家族構成 も含 まれ てい る。 この 中 には、「世 帯 主夫 婦 と子供 か ら成 る世 帯」 (い わ ゆ る、子 育 て 世 帯 )と 「世 帯主 と両親 か ら成 る世帯 」 が混 在 してい る こ とは、確認 済 み で あ る。 この こ とを認 識 せ ず に行 っ た分 析 結果 は ど う解 釈 す れ ば よいの か 、疑 間 が残 る4。 1本 稿 は、周防(2021,2022a,2022b)で 公表 した研 究成果 を、本誌用 に改稿 した論文で あ る。 2周 防(2022a)に は、全消匿名デー タにある様 々 な収支項 目の数字 を示 している。 3 https:〃 ww̲stat.gojp/data/kokusey2000/kihon1/00″ ougo.html 4こ の 点 については、周防(2021)で も議論 してい る。 240

249.

4.世 帯構造 を表現す る家族構成変数 に使用 され る漢字 家族構成変数 の作成 では、国調 。調査票情報 に 含 まれ る 4つ の個人属性、①続柄 、②婚姻状況、 ③性別、 ④年齢 か ら、世帯 内の世帯員 間 の続柄関係 を 33個 の漢字で世帯 の各世帯員 を表現 した後、世帯主 を先頭 に して、以下、続 柄 コー ド順 に左 か ら右 に並べ て連 結 した (表 2)。 今 回は、そ のアル ゴ リズム を国調 ・ 匿名 デー タにそのま ま適用 した。 世帯員 の各続柄漢字 の うち、表 2に 示す よ うに、調査票情報 の符 号 10〜 12が 、匿名デー タでは コー ド 値 が一括 りにな つて 10に なつてお り、 表記 され る続柄漢字が 「戚」に統一 されて しまってい るので 、結果 の解釈 には注 意 が必要 にな る。 表 2家 族構成変数に使用される 33個 の漢字 これ らの漢 字 の 世帯 内にお (2021)で 解 説 済み で 続柄 が 兄 ・ 弟 ・ 姉 ・妹 は 、開発 当初 は 、世 帯員 だ けではな く、「世 帯 主」 の表 現 に も使 用 した が 、他 の 世 男女亭奥夫妻父母 子 倅砕 娘好 子の配偶者 嫁婿 世帯主の父母 爺袋 世帯主の配偶者 の父母 舅姑 孫 孫 祖父母 翁婆 兄弟姉妹 兄弟姉妹 10 他の親族 戚 と、若 干 違 和 感 が あ った の 11 住み込みの雇 人 雇 で 、世 帯 主 に は使 用 しな い 12 その他 他 (男 )媒 (女 こ とに した 。 そ の 代 わ り に、兄弟 姉 妹 の うち の 誰 か が世帯主 の 世 帯 で は 、性 別 単独世帯 帯 員 との 関 係 を 考 慮 す る 世帯主 :男・独 身 単 世帯主 :男・既婚 宿 世帯主 :女・独 身 暉 世帯主 :女・既婚 燥 家族構成変数用 漢字 調 査票 情 報 と 同じ 世帯主の配偶者 続柄 漢字 調 査票 情 報 と 同じ た箇 所 につ い て だ け こ こで 単 独世 帯 以 外 世帯主または代表者 述 べ る。 家族構成変数用 続柄 あ るが、今 回 、 一 部変更 し 国勢調査 :匿 名データ 符 号 周防 国勢調 査 :調 査票情 報 符 号 け る階層 構 造 に つ い て は 、 11:住 み込み 10 その他 ) の雇人 戚 12:そ の他 も含む 表注 匿名データに、調査票情報用の システムをそのまま適用してい 「戚」 には11、 12も 含ま るので、 れる。 : を考慮 して 、「世 帯 主 」 の表 記 として は 、 婚 姻 関係 が不 明 の 場 合 には 、単 に 、「男 」。 「女 」 に変 更 し、今 後 は 、「兄 ・ 弟・ 姉 。妹 」 は 「世帯員 」 と して だ け の表記 に使 用す るよ うに シ ス テ ム変更 を した (付 録 1参 照 )。 5。 新 しい 分 析 手法 の確 立 を 目指す 現在 、(独 )統 計 セ ンター か らユ ー ザ ー に提供 され て い る匿名デ ー タには、国調 、 労働 力調 査 、全 消 、 就 業 構 造基本調 査 、社 会 生活基本調 査 、住 宅 。土地統 計 調 査 が あ る。 そ の うち、住 宅 ・ 土地 統 計調 査 を除 く残 り 5つ の統計調 査 デ ー タには、各 世 帯員 の続柄情報 が あ り、 それ ぞれ 若 干 、定義 が異 な る ものの 、先 に述 べ た 家族構成変数 を作成 す るこ とが で きるので 、世 帯構 造 に よる世帯 の 多角 的 な行動 パ タ ー ンの解析 が可 能 にな る5。 従 って 、 この 5つ のデ ー タの分析 を始 め る前 に 、予 め家族 構 成 変数 を作成 してお き、実際 の分 析 段 階 5今 回使用 した全 消 ・ 匿名デー タには、世帯員の婚姻情報 (配 偶関係 )の 変数 がない。今回は、続柄 の 日本語表現か ら 婚姻情報 の変数 を作成 したが、世帯外 の家族 に関す る設 問か ら作成 され た変数が別途あるので 、そ の情報 か ら、例 え ば、世帯主の女性 に、別世帯に 「子供が いる」 とか、「単身赴任や入院 中」等 で 「夫がい る」 こ とが判別できるケー ス も ある。元の調査票 には、配偶関係 の設間はあるで、調査票情報 のデー タには、配偶関係が明示 され た変数 は組み込 まれ ていると思われ るので、次の研究段 階 では、 この問題 は解 消 され ると思 われ る。 241

250.

では、 付録 4の SASプ ログラム に例示 してい る よ うに、家族構成変数 を使 って世帯 を更に分類 しなが ら分 析す ると、作業能率が上が り、分析結果の解釈 も容易 になる。 なお、 いずれ 、上記の 5つ 全て の匿名デー タに対 して、家族構成変数 を組み込んだ後、それ を使 って世帯 の様 々な社 会 。経済活動 の実態 の特徴 を家族構成 に よつて把握す ることを 目指 してい る。 その次 の段階では、 同 じアル ゴ リズム を調査票情報 に適用 して、 よ り正確 な分析結果 を得 ることを計画 している。そ の過程で、 家族構成変数 を介 して、異なる統計調査結果を「統合」する新しい手法を探 りたい。 6.家 族構成変数を含む家族構成デ ー タセ ッ トの構造 世帯 を調 査客体 とす る統計調査 のデー タは、デー タ構造上、「世帯」 のデ ー タセ ッ トと、「世帯員」 のデー タセ ッ トか ら成 り、両者 は、各統計デー タ毎 にユ ニー クな世帯識別 情報 (世 帯 ID番 号)で 連結 されてい る。 本節では、家族構成変数 を含 む 「家族構成デ ー タセ ッ ト」の構造 につい て、概略だけを述 べ る(表 3参 照つ )。 国調 の家族構成デー タセ ッ トは、以下に示す 5種 類 の情報 か ら構成 されてい る(付 録 2参 照)。 ① 世帯員情報 のデータセ ッ トか ら新規作成 され た 2つ の家族構成変数 (kattPat、 sho■ Pat)6 ② 世帯 ID番 号 表 3分 析 対 象 の 世 帯 の 分 布 ③ 世帯員 の人数 ④ 元 の世 帯員 情報 のデー タセ ッ トか ら 全消・匿名データ1999年 世帯単位 に ま とめ直 した世帯員 全 員 の 元 々の 4つ の個人属性 (続 柄 、性別 、 世 帯の種 類 年齢、婚姻 状況 ) ⑤ 匿名デ ー タ提供時に世帯情報 に含 ま Ψ 妻夫 子が 同居しない 世 帯主夫婦の世帯 夫 妻 れ てい る変数 の うち、世帯分類 に関す る 3つ の変数 父子 ② 7.SASに よる家族構成変数 世帯の種類 の よ うに して利 用す るのか に つ い て解 ⌒ V した家族 構 成 デ ー タセ ッ トの最 初 の 10 SASデ ー タ セ ッ トを作成 した (付 録 2)。 このデ モ デ ー タ を使 って 、 SASプ ロ グ ラ ム に よ る 家 族 構 成 変数 の 基 本 的 な操 43,809 2,549,950 37,816 shortPat(家 族構成変数 :短 縮版) 左端が世帯主。 4,815,830 本表の 「子」は 381,200 「砕」 または 母 父子 を指す。 35,594 「好」 その他 3,372,465 注 :集 計用乗率 11,236,665 適用 家族 構成 妻夫 子 が同居しない 世 帯主夫婦 の世 帯 夫 妻 ② 上 記 以外の世帯 累計度数 注 740 95,476 5,390 左端が世帯主。 173,292 本表の「子」は 母子 26,350 「件」 または 母 父子 を指す 。 602 「好」 そ の他 180,154 注 :集 計用乗率 482,004 なし 全 ての世帯員 を表示。 同 じ世帯員表記 が複数個 ある場合 は、一つだけ表示す る。 242 左端 が世 帯主 父母 子 父子 親 (世 帯主)が 未婚の子と 同居する世帯 度数 作方法 を付 録 4に 示 した。 6 kan」 iPat(家 族構成変数 :全 体版) 左端が世帯主 国調 口 匿名データ2000年 組み込 まれ た 家 族構成変数 を実 際 に ど オ ブ ザ ベ ー シ ョン か ら成 る デ モ 用 の 父母 子 注 度数 母子 累計度数 我 々が構 築 した SASデ ー タベ ース に 国調 匿名 デ ー タ (2000年 )か ら作成 親 (世 帯主)が 未婚の子と 同居する世帯 上記以外の世帯 の使用方法 説す る。 家族 構成

251.

も し、家族構成変数 が利用できないな らば、分析作業 の度 に、先に述べ た 4つ の個人属性 の変数値 を見比 べ なが ら、各世帯員 間 の血縁関係 を割 り出す必要があ り、世帯員数が多い場合 は極 めて煩 わ しい作業 になる。 一方 、家族構成変数 があれば、漢字 が読 めれば、直 にその世帯 の家族構成 が判別 できる。 つ ま り、ひ とつ の家族構成変数 の 中に、各世帯の全て の世 帯員 の 4つ の個人属性 をま とめて詰 め込んであ り、そ の漢字文字 列 で表 現 された変数値 を見 るだけで各世帯 の家族構成 が一 日で判 るので、分析 対象 としたい世 帯構造 の世帯 を正確 に、かつ、容易 に抽 出できるのが最 大 の利点 であ る。 更に、もうひ とつ の利点 として、家族構成変数 の変数値 は、更に加 工す ることによって 、分析 したい世 帯構 造 の新 しい変数 を簡単に作 る こ とができ、分析 作業 を能率 よく推進 で きる。 8。 収 入 ・ 支 出 と就 業 時間 の 分 析 結果 一 般 的に、世帯全体 の収入額は世帯主 の性別 が大きな要因の一 つで あ り、更 に、その収入 は、そ の世帯員 全 員 の就 業時間の合 計 にも影響 を受 ける と考 え られ る。今 回、調査年次 の近 い全 消・ 匿名 デ ー タ (1999年 ) と国調 ・ 匿名デー タ (2000年 )を 使 って 、世帯 の収入 。支 出 と就業時間につ いて 、付録 3に 示す よ うに、 家族構成別 に基本統計量 の計算を試みた7。 全消・匿名デ ータ(1999年 ):年 間収入 (万 円)。 支出総額 (円 )・ 消費支出(円 ) 国調・匿名デ ータ(2000年 ):世 帯員全 員 の平均週間就業時間数 (数 値変数 はこれだけ) そ の計算結果 を同 じ家族構成同士で 「統合」す ることで 、異 なる統計調査デ ー タの変数 を、家族形態毎に 比較 ができるよ うにな る (付 録 3)。 本稿 では、デ ー タ分析 手法 の解説 を 目的 と してい るので 、出力結果 の 解釈 は別 の機会 に譲 る。 国調や全消以外 の統計調査 の匿名デ ー タに も同様 の手法 を適用す ることで、単独 の統計調 査 だけでは見え な い各世帯 の様 々な社会 。経済活動 の総合 的な分析がで きる こ とを示 した。 なお 、表 3の ① 、② の「家族構成」欄 の続柄 は、「世帯主 。その配偶者・ 非婚 (現 在独身)の 子供」だけ明 示 され てい るが、 これ にはそれ以外の続柄 の世帯員 も含 んでい る。更に、例 えば、厳密 に典型 的な母子家庭 (母 1人 と未成年 の非婚 の子 1人 だけ)の デ ー タが欲 しい場合 には、家族構成変数(全 体版)kattiPatの 変数 値 が 「母砕」、または、「母好」だけを抽 出 した後、更 に、2番 目の世帯員(子 )の 年齢情報 か ら 18歳 未満だけ を絞 り込 めばよい8。 9。 今 後 の研 究 予 定 現在 、 日本では、第 2節 でも列挙 した 8050問 題、少子高齢化 な どの様 々 な社会問題 を抱 えてお り、家族 構成変数 はこれ らの諸 問題 に対処 してい くツール として 、大 い に活用できる と考 える。 一 例 として、ひき こ も りの世帯員が い る世帯 の問題 を取 り上 げると、「高齢 の母親 と、現在 結婚 していな い無職 の 中年 の息子 (「 枠」)の 2人 世 帯 で、母親が死 亡す る と、そのまま放 置 した り、隠薇 した りす るこ とで生存 を偽装 して、親 の年金 を搾取 し続 ける」 とい うニ ュース を近年、 よ く 目にす る。 このケースでは、 家族 構 成変数 を使 うと、2人 の うちの どち らが世帯主かに よって、「男母」 また は 「母作」 のいずれ かで表 現で き る。そ の世帯 の収入 がそれまでは老齢 の母親 の年金 だ けの ケースで は、母親 が死亡す る と残 された中 年 の無職 の子は途端 に生活 費 に窮す る とい う背景 がある と推測 され る。 この よ うな状況 の世帯 が どの くらい 7紙 幅 の 関係 で、そ の他 の収支変数 の基本統計量 と箱ひげ図は、参考文献欄 の周防 (2022a)に web掲 載 した。 8た だ し、匿名デー タでは、年齢変数が各歳表 示 でな く、5歳 刻 み の場合 が多いので 、そ の場合 には、20歳 未満 で処理 す るの もやむを得ない。別途 、調査票情報 を使 う際は、各歳年齢 の情報 を使 って厳密 に母子 家庭 を抽 出で きる。 243

252.

存在 す るかは、二 つ の 家族 構成変数 kattiPat(全 体版 )と shortPat(短 縮版 )の 値 を必要 に応 じて使 い 分 けて、 「男母 」 または 「母作 」 の世帯 を観 察 して 、付録 3で 示 した よ うに、全消 の 収 支 に 関す る様 々 な変数や 、国 調 の就 労 時 間 の変数 を、 更 に丹念 に見 て い けば全体像 が見 えて くる。 そ の 他 の社会 問題 に つ いて も、家族構 成 変数 を使 って 、今 後 も分析作業 を継 続 してい く予 定 で あ る。それ が 終 了 した後 の研 究 計 画 は、以下に示す よ うに予 定 して い る。 ス テ ップ 1 国調 や 全 消 の他 に、労働 力調 査 、就 業構 造 基 本 調 査 、社会生活 基 本 調査 の匿名 デ ー タ も活用 し て就 労状 況や 日常 生活 で の 時間の過 ご し方 な どにつ い て 、 家 族構成変数 を使 って 、様 々 な世 帯 構 造 毎 に特 徴 を捉 え る ことがで き る システ ム を開発 して 、実態 の解 明 を した い。 毎 月 末 に実査 され る労働 力調査以外 は、実査周 期 が 5年 で 、調査 実施年 次 に重複 がない の で 、 当面は、国 調 以外 の統計調 査デ ー タにつ いて は、2000年 国調 の実施 年 に近 い年次 の デ ー タ を使 うこ とにす る。 ス テ ップ 2 匿名 デ ー タ の代 わ りに、記 憶 媒 体 でユー ザ ー に提 供 され る調 査 票 情 報 を入手 して 、 ス テ ップ 1 で 開発 済み のプ ロ グ ラ ム を調査票情報 用 に改訂 して 、 よ り正確 な分析結果 を得 る。 ステ ップ 3 更に、オ ンサイ トで、国調 の 100%の 調査票情報 を使 って、 ステ ップ 2で 完成 したプ ログラム を ほ ぼそ のまま適 用 して 、 日本 の世帯構 造 の 全容 を解 明す る。 この段 階 で は、分 析 用 プ ログ ラ ム の 開発 は、 直前 の ス テ ップ 2で ほ とん ど終わつて い る の で 、 オ ンサ イ ト利 用 とい う閉 じ られ た作業空 間 で も十分 に対応 で き る と考 えてい る。 謝辞 本研 究 の遂行 に際 しては、国勢調査 と全 国消費実態調査 の 匿名デ ー タを使 用 したが、そ の 際 、 SASイ ン ステ ィチ ュー トジ ャパ ンい か らデー タ使 用料 の補助 を受 けた。 また、両調査 の 匿名デー タの利 用 に際 しては、 (独 )統 計セ ンターか ら便宜を図って頂 いた。 ここに記 して謝 意に替えたい。 参考文 献 。 。 [1]伊藤彰彦 中川雅義・周防節雄 米澤 ・安井浩 。 新井郁子 (2017)『 新世帯類型 の構築と世帯構造 の変動に係る 長期時系列分析の結果』,(公 財)統 計情報研究開発センター ,2017年 [2]周 防節雄・安井浩子 (2020)「 国勢調査 の続柄情報に婚姻状況・性別・年齢を加味して世帯員構成を直感的に表 現できる変数の開発」 ,『 官民オープン利活用の動向及び人材育成の取り 組み (2019年 度)報 告要 旨集』,(独 )統 計 . センター,pp.81‑91,2020年 3月 . 「家族構成変数」 [3]周 防節雄 (2020a)「 世帯を調査客体とする公的ミクロデータの世帯構造を直感的に把握できる の 開発と利用(1)」 ,『 ESTRELA 9月 号』,pp.25‑30,(公 財)統 計情報研究開発センター ,2020年 9月 . 「家族構成変数」 [4]周 防節雄 (2020b)「 世帯を調査客体とする公的ミクロデータの世帯構造を直感的に把握できる の 開発と利用(2)」 ,『 ESTRELA ll月 号』,pp.25‑31,(公 財)統 計情報研究開発センター,2020年 11月 [5]周 防節雄 (2021)「 国勢調査のミクロデータから新開発した家族構成変数と、それを利用した世帯構造の分析 事例 . の紹介」,『 官民オープン利活用の動向及び人材 育成の取り組み (2020年 度)報 告要旨集』,(独 )統 計センター , pp.155‑167,2021年 3月 . [6]周 防節雄 (2022a)「 国勢調 査と全 国消費 実 態 デ ータの 統 計 量 を家族構成 変数 で統 合する実験 結 果 の紹介」 「官 民 オ ー プ ンデ ー タ利 活 用 の動 向及 び人 材 育成 の 取 (2021年 度)」 ,(独 )統 計 セ ンター ,2022年 3月 , https:〃 www.nstac.go.jp/sys/files/211118̲8.pdf [7]周 防節雄 (2022b)「 国勢調査と全国消費実態調査の匿名デ ータの統計量を家族構成変数で統合する試み」 , 『 ESTRELA 4月 号』,pp.2‑9,(公 財)統 計情報研究開発センター,2022年 4月 244 .

253.

付録 1続 柄漢字パターンの世帯内階層構造改訂版) 二人以上の世帯 の構造 □ □ 祖父 □ 祖母 □ 男 :非 婚 女 :非 婚 ロ ク □ ド □翻 園蛹 オ ″□ 日 踊 □飼 オヤ 単独世帯 ](ヤ 男 :既 婚 ) 匝 目 カア (カ ) 女 :既 婚 (世 帯主 の配偶 者 の ) (世 帯主 の ) 世帯主 目 または 日 男 婚姻中 女 雪層 霧 繁 甲 目 既婚 非婚 □1回 既 非 婚 婚 □ 世帯 主 の子 孫 孫 注】この世帯構造に、 更に以下の世帯員が含まれる世帯があり得る。 【 囲田□ 回Iヨ 囲¬ =戸 親雇 戚人 │.│た F 非婚姻 「その配偶者」 「子」と 「その配偶者」 「子」と 「その配偶者」 か その配偶者」 「子」と 子」 非同居 非同居 非同居 □韮ヨ □ ロコ 世 帯主 の子 目 轟 は園 駁1愕1暑 「 「 配偶者 慕 昌 │ に百 「 西事二 面 7そ裏 百 扁 葛 轟 昴 1五 『 [里 i空 」 雀 ■ ■1竺生■■ 1聾 ̲│ 家族 構 成 変数 の例 :国 勢調査・調査 票情報 データ 家族構 成変数 意味 奥姉姉 男爺袋婆姉 婚 姻 中の女性 (奥 さん)十 姉 二 人 父母 娘 孫 父母 娘 婿 孫 両親 +娘 (婚 姻 中)+孫 (「 亭 」主が別世 帯 にいる) 男性 (独 身)+両 親 (親 爺とお袋 )+祖 母 +姉 (娘 婿 が別 世 帯 にいる) 両親 十娘夫 婦 十孫 母 父件 好 母 (世 帯主)+父 (世 帯主 の配偶者 )+息 子 (独 身 )+娘 (独 身 ) 女他 女 性 (独 身)十 男性 (「 他 」人) 埠 女 性 (既 婚)の 単 独 世 帯 単 男性 (独 身)の 単 独 世 帯 注 :左 端 が世帯 主 245

254.

︒ 型3鵜︶⊃や ゛ ﹁C一 メ 卜 Φ 倒 ︸ ︸ ∞ ゛ ∝ 口 ︶ N 倒 一 一 引 銀 一 銀 倒 ∞ ∞ ︸ せ ∞ 卜 ヾ い ∞ 卜 一 Q 卜 . ∞ ∞ 一 一 紳母 申 0 樺雲増申 α 母虫申 榊 ネ 紳母申 α 樺赳晋申 α 母職嗽 榊 * 畔 榊 * 母奪 申 0 場 L一 増●茎 L一き 神 轟 黒怪 婁 当 K 装鍵 螺 ´●a ︑o 工∽ せ中 α ヽ湘К ゛ oCつ一 エエ N O 一 エ ∞ ﹃ 一 OZE ∞ ∞ ゛ ﹃ ∞ 卜 ∞ ∞ 寸 轟 颯絆コ ヽ 懸 イ一 伸 轟 e ∞︱ 一 ゛ 一 ∞ 一 メコN5●ψ 堰駆 糾 雲 」 O︸ 246 ︒ ′ m 0 ■ ヽ ︶ ⊃ ハ ハ ー や 重 掏 ヽ ■ い ヽ C 同 ︶ ↓旦灼 超C奏像 ヽ 量 ヽ て ︒ ′ ﹁ ¨ ヾ和p薫報判山く里 = 饉 ・ 認 p 慄 製 e 轡 ヽ 川 長 0 ∞ ∞ 幽 叶 ご R 型 鍛 ″ ︒ 0卜普硬掏﹁薫 縣 鞍 ﹂e 枠 刹 串 ︱ 石一 . ﹁ ︵ 埋 駆 く︶ R轟 嘔継 コ e柵刹 e Ш巾∞︻ 爛︼ ﹂ケ O ヾ ● . 一 一 N ︺ ︸ 一 ∝ 倒 ∞ 倒 ∞ 一 ﹃ 一 倒 ∞一 ・ ト ト 呻一 Ю一 一 呻 ゛ N ∞ ﹁ 嗅翠 寸 劇 Ю ∞一 寸一 ∞ 一一 卜 一 一 〇 ∞ ∞一 0 ︸ ヽ 興型鍮せ 0 ︒ Ю3 ︶D俊 夜 里6 月 C ゛′ RN C 訃 瑯 e t L ︶ い 悩 ︵ 咲 脳士禦ハ田ハーて卜 ヽヽ〇一 e 尽唱 ︶ 怪 母 ゛′ Rも︱卜 叩Ш ・ せ08 劇需 回 ∞ ゝ L L O 一● 嘔 郵 雲雲 糾 雲 糾 :軒 ヽ一 ∞︸ り︸ o¨′ ヽ﹁●oエ 興聖騒 川■コ 当讐 ∞oCo枷 o 卜を E凛 ︐ 副照当 ぶ e■刹 置 曇 付録2 家族構成変数 kattiP籠 とshottP試 を 含む SASデ ータセット 彗輩

255.

付録 3子 と同居していない世帯主夫婦の世 帯と、 「子」と親 (世 帯主)が 同居する世帯の収支分布 結婚していない 全 消・匿 名 デー タ1999年 :var405年 間 収 入 (単 位 :万 円 ) 家族 構成 有効 イ 牛姿 女 標準 偏差 平 均 最小値 妻夫 232 648 445 夫妻 13,893 626 384 最大値 60 下側 四分位 点 中央 値 上側 四分 位 点 四 分位 範囲 2,500 526 347 805 458 2,500 370 781 411 452 871 419 543 1,019 476 252 741 489 430 1,030 600 200 500 300 350 849 499 204 690 377 25,841 828 407 2,500 1,989 542 376 2,500 198 761 426 その他 6,165 400 300 2,500 519 628 750 450 670 325 全世 帯 48,522 643 413 2,500 556 妻夫 232 791,775 636,234 64,764 6,180,222 643,493 428,534 950,434 521,900 夫妻 13,893 739,841 664,543 34,210 25,026,145 642,338 405,765 930,472 524,707 父 子 204 705,087 485,839 55,419 4,707,618 668,373 320,000 961,998 641,998 25,841 961,929 750,703 33,844 44,670,521 888,070 605,160 1,209,704 604,544 1,989 685,375 644,545 51,000 16,566,782 564,408 349,725 852,948 503,222 198 946,159 823,981 69,740 6,852,533 730,607 478,603 1,112,170 633,567 その他 6,165 512,039 367,602 21,238 7,262,307 445,181 287,649 621,675 334,026 全世帯 48,522 765,545 661,228 21,238 44,670,521 658,111 392,325 996,622 604,297 妻 夫 232 316,525 256,753 51,746 1,965,475 252,952 178,639 335,856 157,217 夫妻 13,893 298,710 203,403 20,226 4,017,930 251,249 182,139 350,987 168,849 父 子 204 272,148 220,407 55,419 2,718,752 233,340 165,104 315,158 150,054 25,841 360,133 203,339 29,204 4,291,040 314,128 236,230 426,700 190,470 1,989 278,022 200,696 32,041 2,344,592 226,591 156,229 339,922 183,693 178,201 父 子 父母 子 母 子 母 父子 60 130 2,500 2,391 全 消・匿 名 デー タ1999年 :var457支 出 総 額 (単 位 :円 ) 父母 子 母 子 母父子 全 消・匿名データ1999年 :var459消 費 支 出 (単 位 :円 ) 父母 子 母 子 198 308,113 167,194 69,740 1,039,086 266,815 194,072 372,273 その他 6,165 203,946 162,946 15,810 3,179,466 167,111 115,664 238,981 123,317 全世 帯 48,522 295,901 203,166 15,810 4,291,040 251,681 170,658 361,654 190,996 母父子 (全 消匿名デ ー タには集計用乗率があるので、 ウェイ トをかけて計算 した。) 家族 有効 構成 件数 標準 偏差 平 均 最:小 値 最大値 1e5l 四 分位 範囲 下側 四分位 点 上側 四分位 点 521 11 88 77 71 71 中央 イ 直 妻夫 740 54 41 夫妻 95,476 43 39 4ol 0 父 子 5,390 66 43 31ol 60l 40 95 55 父母 子 173,292 82 44 €81 741 50 104 54 母 子 26,350 49 39 421 24 73 49 602 77 44 3681 741 48 98 50 その他 180,154 33 39 41 6l 321 0 49 49 全世 帯 482,004 54 47 ffi81 481 7 80 73 母父子 3261 3sol (国 調匿名デ ー タには集計用乗率がなか ったので 、 ウェイ トを全て 1と して計 算 した。) 247

256.
[beta]
付録4家 族構成変数を含む SASデ ータセットの使用方法
20

国調

kanil

7‐ モ

い

‖bname koku2000 HE:¥国 調匿名¥匿 名sasDS‖
*★

7 A.sas * options nocenter;

口

;

国調匿名データには、集計用乗率 の変数はな いので、事前にweight=1と した

;

data ternp;set koku2000.kokutokumei2000sorted̲kaniipat;by卜 1卜 lidNo;
*setす

るデ ー タセ ッ トは、各 世 帯 員 がobservationの SASデ ー タセ ッ トで、
事 前 に家族 構 成 変数 kaniIPatと shottPatが 組 み込 まれ て い る
;

retain totaltime O;retain HHage;

keep HHidNo kanilPat shortPat totaltlme HHage、 veight/*var29*/;
‖
bbel totaltime=‖ 全 世帯 員 就 業 時 間計
‖
label HHage=‖ 世 帯主年齢 階層
if first.HHld No then HHage=age;
;

;

if first.HHid No then totaltlme=0;

totaltime=sum(totaltime,var29);
if last.HHidNo;
ru n;

*☆ デモ

用SASデ ータセ ッ トの作成★

;

data DEMOdata;set;keep HHidNo kanJPat shortPattotaltime;if̲N̲<=10;ru n;
proc print data=DEMOdata label;title‖ 国調匿名2000年 :DEMOdata‖ ;ru n;
*★
目的 :父 母枠/父 母好 を含む世帯 (子 」 は結婚 していない)を 抽出 したい☆
*☆ stepl:父

母を含む世帯を抽出☆

;

;

data fmc;set DEMOdata;targetH H=ksu bstr(kaniIPat,1,2);
H;drop targetHH;ru n;
if targetHH=‖ 父母
prOC print data=fmc label;title‖ ★ stepl:父 母 を含 む世 帯 を抽 出★ ‖
;ru n;
*☆ step2:更 に 「

、 件 」また は「 好 」を含 む世帯 を抽 出☆
‖
data fmc;set;pl=kindex(kanjiPat,Hイ キ );p2=kindex(kanjIPat,H好 ‖
);
;

H Htype=‖ fmc‖ ;if pl+p2>0;drop pl p2;ru n;
proc print data=:fmc label;
:父 母枠/父 母好 :両 親 (父 親が世帯
☆ste

title‖

と未婚 の子 を

tlfrH"; run;

プログラム実行結果
国調匿名2000年 :DEMOdata
Obs

世帯一連番号

kan‖ Pat

shortPet

今 世 帯 昌献 業 眸 闇 計

夫妻孫

夫妻孫

全畳枠枠

↑丑 枠

50
54

50

左のデータセットから、変数
「父母」
「kanJPat」 の先頭部に
の
漢字文字列がある世帯だけを抽
出する方法

娯

4

10

単

単

橿

鯉

単

単

交丑棒客

父母枠婆

50
128

父量 娘婿

父母 娘 婿 孫

200

母好枠

母 好枠

56

10 美 憲

SAS関 数 KSUBSTRを 使 う

美 妻

★stepl:父 母を含む世帯を抽出☆
Obs

kaniiPat

shortPat

父畳枠 導

・

今 世 帯 昌就 業 時 間 計

父畳 枠 導

54
1,n

父母 娘 婿 孫

200

父母 枠

★step2:父 母枠/父 母好 :両 親(父 親が世帯主)と 未婚の子を含む世帯を抽 出
Obs

世帯 一連番号

kanIPat
父量枠枠

shortPat

全 世 帯 員就 業 時 間 計

I HHwpe

父量 枠

541fmc

父母 枠 婆

1 281fmc

248

ウ
/

そのデータセットから、変数
「kanjIPat」 の中に
「作」
(未 婚の息
「好」
子)又 は、
(未 婚の娘)の 漢字
がある世帯だけを抽出する方法
SAS関 数 KINDEXを 使 う
変数kanjiPatに 、2番 目の引数の
文字が左から数えて、何文字 目
にあったかを値として返す。その
文字がなければ、0を 返す。

257.

SASを 用 い た国勢調 査 の 匿名デ ー タにおける 世帯 の家族構成 と社会問題 へ の適用 O古 隅 弘樹 (1兵 庫県立大 学 * 1 情報科学研 究科 ) Analysis of household composition in Anonymized Micro Data of the Population Census Using SAS andApplication to Social Problems Hiroki FURUZU卜 lI Graduate School oflnformation Science,the Univcrsity ofHyogo 要旨 共 同研究者 の周防節雄 は,国 勢調査 の調査票情報 を使 って世帯 の家族構成 パ ター ンを詳細 に分類 できる 「家 族構成変数」 を開発 した.そ れ に よ り国勢調査で用 い られ てい る世帯の家族類型 よ りも詳細 な区分で分析 が 可能 になった.本 稿 では.ラ イ フイベ ン トに伴 う世帯員 の移動や ,8050(9060)問 題 とい った社会問題 に対 す る世帯 の家族構成 とい う観点 か らの分析例 として ,国 勢調査 の匿名デ ー タに家族構成変数 を使用 した集計 について報告す る。また,家 族構成変数 のよ うな世帯員 の続柄 に対応す る漢字 の組み合 わせや ,複 数回答 の 選択肢 の組み合 わせ な ど,1つ の変数 で組み合わせ の状態 を表現す る 「パ ター ン化変数」 を用 い た SASに よ る集計方法につ いて も触れ る。 キー ワー ド :国 勢調査 ,匿 名デー タ,世 帯 の家族構成 ,社 会問題 1.は じめ に 共同研究者 の周 防 が国勢調査 の調査票情報 を使 って世 帯 の家族構成 パ ター ンを詳細に分類 で きる 「家族構 成変数」を開発 した .そ れによ り国勢調査における世帯 の家族類型 を詳細 に区分 した分析 が可能 になった。 本稿では,ラ イ フイ ベ ン トに伴 う世帯員 の移動や ,8050問 題 といった社会 問題 に対す る世帯 の家族構成 の観 点か らの分析例 として,国 勢調査 の匿名デー タに家族構成変数 を使用 した集計 について報告す る . なお,家 族構成変数 は,世 帯 の構成員 である世帯 員 の続柄 ,性 別 ,婚 姻状況 ,他 の世帯員 との組み合わせ な どか ら,当 該世帯員 の表章に適 した文字 (漢 字変数 )を 選定 し,そ れ らを世帯単位 で組み合 わせ ることで 家族構造を見やす く した表現技法 である.そ の生成方法や ,使 用 されてい る漢字の意味な ど,詳 細 について は周防 (2021,2022)を 参照 され た い . ・ 本稿は,統 計情報研究開発センターの刊行誌 ESTRElA(2022.4月 号)の 特集記事に掲載 した 「国勢調査の匿名デー タを用いた世帯の家族構成 と社会問題 へ の適用」を加筆・修 正 した ものである . 249

258.

2.家 族構成変数に よる基本集計 周 防 か ら提 供 を受 けた SASプ ログラム を用 い る こ とで ,国 勢調 査 の 匿名 デ ー タか ら各世帯 の 家族構 成 を表 現す る家 族 構 成変数 を生成 し,世 帯 の属性 情 報 に接 合 した。 さ らに ,世 帯員 に対応 す る漢字変数 を世 帯員 の 属性 情 報 に接 合 した。 これ に よ り,集 計 単位 (世 帯 ,世 帯員 )に 応 じて 家族構 成 変数 や漢字変数 を表 章 区分 と して集 計 で きるよ うに した 。匿名 デ ー タに含 まれ る世帯 の種 類 (2区 分 )お よび世 帯 主 との続 柄 (10区 分 ) と,漢 字 変 数 の対応 を表 1に 示 す .な お ,世 帯数 につい ては ,一 般 世 帯 では世 帯 主 の人数 と,施 設等 の 世 帯 では世 帯 員 数 とそれぞれ 一 致 す る . 表 1.世 帯の種類,世 帯主との続柄,漢 字変数別,世 帯員数 (国 勢調査 2000年 匿名データ) 世帯の種類,続 柄 ,漢 字 1:一 般世帯 1 人数 人数 割合 世帯の種類,・ 続柄 ,漢 字 1,220,096 98.42% 1:一 般世帯 (つ づ き) 462,355 3729% 18,244 194,461 15.69% 15,166 147% 122% 95,476 770% 3,078 0.25% 63,810 5.15% 40,156 57,383 32,314 324% 261% 29,499 463% 238% 7,842 0.63% 8,356 067% 7,901 064% 5,906 0.48% 6,445 4,138 1,943 033% 016% 36,426 740 0.06% 35,642 467 784 283,724 004% 001% 2289% 186,885 15.07% 95,476 770% 妹 2,119 740 0.06% 姉 2,031 0.1 623 005% 弟 1,642 0.1 360,335 29.07% 176,905 15,563 1427% 1321% 126% 4,092 0.33% 176 163,775 5:世帯 王 の 父 母 の配 偶 者 の 父 母 割合 1,456 012 715 69 01 906 兄 10:そ の他 * 4,257 4,257 戚 2:施設 等 の世 帯 1:世 帯 三 また は代 表 者 10:そ の他 * 総計 (世 帯員の人数) *「 10そ の他 001 6,698 9: 兄 弟 姉 妹 0 0. 19,649 1.58% 968 008% 18,681 151% 1,239,745 」 は,他 の 親族 ,住 み 込 み の 雇人 を含 む 国勢調 査 の匿名デー タでは,一 般世帯 の家族構成 を表現す るパ ター ンは世帯 の家族類型 (6区 分 )で ある が,短 縮版 (複 数回出現す る同一漢字は 1つ だけ表記)で 表現す る と,匿 名デ ー タ (2000年 )に お けるパ タ ー ン数 は 1,313で あった 。世帯 の家族類型 と家族構成変数 (短 縮版 )の 対応 を集 計 した ものの一 部 を表 2に 示す 。例 えば夫婦 と子供 か ら成 る世帯では ,世 帯主夫婦 (父 母 )と 子 (砕 好 ),世 帯主 と親夫婦 (爺 袋),内 縁関係 の親 (父 女,男 母 )と 子 ,な どの組 み合 わせが含 まれてい る . 家族構成変数は漢字 の組 み合 わせによつて多 くのパ ター ンが 出現す るため,そ のすべ ての組み合 わせ をつ ぶ さに確認 す ることが難 しい場合 もあるが ,パ ター ンの傾 向や ,意 外 な組み合 わせ の発見,デ ー タのチ ェ ッ クに も利 用 できる . 250

259.

表 2.世 帯の家族類型 家族類型 ,家 族構成 (短 縮版) 世帯数 1:夫 婦 の み の 世 帯 88,051 19.04% 4:そ の他 の親族世帯 割合 87,984 1903% 67 0.01% 夫妻 夫妻 戚 父 母倅 父母好 父母 作 好 男爺袋 父母 倅 父母 娘 女爺 袋 父母 枠 戚 父母好成 (以 下 略 ,計 44区 分 ) 3:男 親又 は女親 と子供 か ら成 る世帯 34,767 7.52% 父母枠袋 8,102 4,449 4,414 夫妻袋 4,254 092% 父母 好 袋 3,763 1,471 1,439 1,342 1,297 081% 032% 031% 029% 028% 0.26% 父母砕好袋 父母 作 好 爺 袋 父母 娘 婿 孫 父母 倅 嫁 夫妻 姑 母好 母件 好 男袋 父枠 父倅 嫁 孫 1,218 1,141 025% 父母 作 爺 袋 1,112 1,081 0.24% 0.23% 父母 好 孫 (以 父好 1,360 女袋 1,100 024% 単 589 0.13% 揮 217 005% 206 004% 蜂 父枠 好 亭袋 男袋 弟 ,計 106区 分 1,916 ) ) 0.29% 6:単 独世帯 25,243 546% 1,717 1,179 0.37% 025% 424 93 21 0.09% 0.02% 0.00% 129,042 27.91% 63,810 1380% 57,383 12.41% 5,906 1.28% 1,943 0.42% 宿 041% 175% 096% 095% 父母枠 姑 下略 ,計 992区 分 9,746 211% 5:非 親族世 帯 8,921 193% 男戚 4,895 106% 女戚 3,711 080% 亭戚 2,106 0.46% 奥戚 母件 (以 下 略 13.05% 父母倅嫁 孫 148,452 32.11% 54,578 1180% 47,131 1019% 45,122 976% 509 011% 314 007% 223 005% 74 002% 49 001% 47 001% 405 009% 2:夫 婦 と子供 か ら成 る世帯 割合 世帯数 462,355 総計 100.0096 表 3.年 齢,現 住地への移動理由別,割 合 (第 8回 人口移動調査,2016年 ,表 61よ り作成) 総数 (%) 一. . 411 一一 72 67 55 一1 2.81 6.0 一 層 □ 欝 □ 量 41 25 09 一 E 42 37 4.3 40 鸞こ ]142 はね I]266 一一 は 1 430 359 4.6 4.2 59 42 一 院 匡 452 53 53 361 一 透 腱 453 . 63 60 健康 一 圃 91 95 87 98 7.2 鼈靱 隠画靡吻 圏匿鷹 爾圏睡 国 握 ■68 87 鰹 圏 一 98 漑 層 51画 : 132 祠 一 圏 =291 34鰈 鍾コ 26.4 42日 匡 ]18.5 育児 婚 遷鷺 艤麗至 1鸞鸞 E日口厠 111 11 11 37轟 艤三 30鰈 巡 ".8 麟 口 嵐 4 4 一 ・ 9.0 451E27.6 結 婚 ・離 ︲ ⁚‡ i 機 □ 81錮 981:ili 43.9‐ 43 311 89・・ 家 族 随伴 □ 圏 一 85歳 以上 99 3 4 75‑79歳 80‑84歳 9.0 0 4 70‐ 74歳 92 84 一 1000 1000 1000 1000 1000 1000 10.9 一 65‑69歳 100.0 16 24 114 172 7 3 1000 1000 24 2 3 100.0 50‑54歳 55‑59歳 60‑64歳 19 8 2 1000 1000 89 ・ 100.0 100.0 近 同居 一 .・ 一6 4 3 1000 1000 1000 1000 親子 の 活事情 〇 一︲ 一 4 3 100.0 住 宅・生 業 陶量 ⁝︱ 薔圏国 □麟鸞 国□爾圏 □□ 硼□圏 15‑19歳 20‑24歳 25‑29歳 30‑34歳 35‑39歳 40‑44歳 45‑49歳 1000 就業 ・職 学 隕 鷹︱圏口国 饉⁚︱︱︱︱︱︱︲︲︲︲︲ 年齢 総数 0‑4歳 5‐ 9歳 10‑14歳 入学 ・進 3.11 261 191 2.51 1.71 1.31 0.5' 106 3.世 帯 員 の移 動 ライ フイ ベ ン トに伴 う人 口の移動 (移 住 )は 自治 体 の IJUタ ー ン政 策 に もかか わ る関心事 で あ る。 人 口の移 動 に関す る詳 細 な調 査 と しては ,国 立 社 会保 障 。人 口問題 研 究所 が 5年 ご とに実施す る標 本調査 で あ る人 口移 動調 査 が あ る .そ の調査報告 か ら,現 住 地 へ の移 動 者 につ いて,年 齢 別 ,移 動理 由別 の割 合 を 表 3に 示 す .頻 度 の多 い移 動 理 由は住宅・ 生活 事 情 で あ り,全 年 齢 で高い こ とか ら世 帯全体 で移 動 す る場合 251

260.

の理 由 として も考 え られ る.ま た,若 年層 では家族随伴 が多 く,10代 後半 か ら 20代 では進 学や就職 ,20代 後半以降は結婚 ・ 離婚 ,30代 では育児 ,そ の後は親子 の近 同居 が移動理 由 として増 えてお り,ラ イ フイベ ン トと移動が密接 な関係 であることがわかる . 国勢調査では ,前 回調査 (5年 前 )か らの移動状況 について個人 (世 帯員 )単 位 で観察 でき る。ただ し,移 動状況以外 の前 回調査時か らの変化 は不明 (パ ネルデー タは作成不可)な ので ,人 口移動調 査 の よ うな他 の 統計 とあわせ て推 定せ ざるを得 ないが,家 族構成変数 と組み合わせ ることで ,家 族構成 と世 帯員 の移動を合 わせて観察す るこ とができる . 世帯 を単位 とす る移動状況につい ては,前 回調査以前 か ら現住す る (移 動 していない)世 帯員 が含まれ る 場合 は,世 帯全体 では移動 していない とみなす と,移 動 のあつた世帯員 が現住世帯へ合流 した と考 えること ができる。 同様 に,単 独世帯 の場合 は単身での移動や独 立 を含み ,世 帯員全員 の移動内容 (自 市区町村内 , 県内,県 外 な ど)が 同 じ場合は世帯全体での移動 ,移 動 内容 が異なる場合 はそれぞれが移動 して合流 した と みなせ る . 世帯員 の合流例 として,世 帯 の移動状況 が現住所 (移 動 な し)か つ 「嫁」 (世 帯主の子 の配偶者 )の 移動 が あ った世帯 の家族構成 について,嫁 の年齢別 に人数 を集計 した結果 を表 4に 示すが,20代 後 半か ら 30代 に かけて,「 孫」 を伴 って親 と合流す るパ ター ンが多 くみ られ ,子 育 て と移動 の 関係 が伺 える . 4家 族構成 (短 縮版),年 齢別,世 帯に合流した世帯員 (嫁 )の 人数 匿名データ2000 の年 齢 15〜 19 20〜 24 25〜 2 父母 倅 嫁 孫 4 父母倅 嫁 母倅 嫁孫 1 2 父母倅 嫁袋孫 父母 倅 好嫁 孫 1 5 父母 倅 枠 嫁 孫 父倅 嫁 父母倅 好嫁 5 61 3: 439 199 96 26 209 131 49 20 17 101 62 56 42 11 12 5 20 70 54 151 4 14 1 35 36 34 141 31 22 57 551 33 30 16 25 39 6 10 23 25 5 . 251 32 29 10 14 12 7 9 5t 395 69 26 21 父母倅作 嫁 30〜 34 35〜 39 40〜 44 45〜 49 50〜 54 55〜 59 60〜 6̀ 110 65〜 69 総計 1 4 │ 5 139 116 1 1 5 1 5 2 6 109 51 71 11 1 │ │ 父母 倅 嫁 袋 父母 倅 倅 嫁袋 孫 27 27 総計 26 22 16 父母倅 嫁爺袋孫 (以 下 略 ,計 138区 分 ) ・一 131 母倅 好 嫁 孫 h 20 9 100 173 69 231 7 35 504 1,26, 987 410 177 73 41 3 1 2 19 10 394 1 3,525 4.8050問 是亘 8050問 題 (9060問 題 )は 社 会 問題 の 1つ であ り,い わ ゆ る長期 の 引 き こ も りと,そ の対 策 や 支援 の必 要性 が求 め られ て い る .内 閣府 が 実施 す る標 本調査 で あ る 「生活 状況 に 関す る調 査 」の平成 30年 度 の調査報告 書 に よれ ば ,満 40歳 か ら満 64歳 まで の 引 き こ も りの 出現 率 は 1.45%で ,推 計数 は 6■ 3万 人 と され ,引 き こ も り状 態 にな って か ら 7年 以上経過 した人 が約 5割 を 占め ,長 期 に及 んでい る傾 向 が認 め られ て い る.ま た , 専業主婦や 家 事 手伝 いのひ き こ も りも存在 し,引 き こ も り状 態 にな った年 齢 が全年齢 層 に大 きな偏 りな く分 布 してい る . 国勢調 査 の 2000年 の匿名 デ ー タにお け る年齢 ,労 働 力 状況 ,男 女別 の世 帯 員 の分布 を表 5に 示 す が,15歳 252

261.

表 5.年 齢階層,労 働力状況 .男 女別 世帯員数 (一 般世帯に限る,国 勢調査 ,匿 名データ 2000年 ) 1:就 業者 3:家 事 いた V不 鮮 5:そ の他 4:通 学 総 構 ● 年 齢 2:女 1:男 ■男 2:女 1:男 2:女 2:女 1:男 2:女 総 計 計 2:女 2ス ″1 4歳 9歳 3:10〜 14歳 4:15〜 19歳 5:20〜 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〜 79歳 17:80〜 84歳 18:85歳 以上 1:男 ,,1, 2● 2 ,■ 08, ̀21,, ̀,̀,, ̀0,71 2602 ″,¨ υう01 ,0 120̀, お 1,,● ,● 0,̀ ,̀, 761 ,40 m ,,2 : 1.14̀ ,7, 8,2 1,認 151, 1,032 ̀´ 颯 n, ,ス ,,7 1■ 7,2 7,114 21● 71 ̀● "̀ ,0211, 7● ∞2 │, 1,,7 ,,1, '3,2̀ ̀, IR,,, ,.̀0, ̀03̀, ̀,7̀0 23● 2 1● ∞ ̀.8∞ 鋪 4撼 なあ ,1 1,4,, 血8 ta澪 1機 0" m● 鍼 額 0 ̀′ iO■ ま ̀つ 7, 82762 u,m ,ス 21: ̀ ■″,枷 6 〜 59歳 における労働力状況 「その他 」 には身体的 。精神 的な支障がある場合が含 まれ ると考 え られ ,同 じ年 代 の 2%前 後 にな ることか ら,引 き こ も りの出現率 を見 ると整合的 と言 える.な お,専 業主婦や家事手伝 い を 含 む 「家事」 に も引き こもりが含 まれ ることになるが ,特 に女性 には引きこも りではない専業主婦が多 く含 まれ てお り,そ れ らを分離す ることは難 しい。また ,男 性 の引き こ も りは体裁上 「家事」 と回答す る場合 も あ り,人 数 も少 ない ことか ら,男 性 の専業主夫を考慮 に入れて良いのか も知れない。 国勢調査 の匿名デ ー タ 2000年 当時 の 20代 後半は ,バ ブル崩壊後 の就職氷河期 を経験 した第 2次 ベ ビーブ ー ム世代 にあた り,8050問 題 とも関わ りが深 い この年代 にお ける労働力状況 「そ の他」 の世帯員 について , 世帯 の家族類型 ,家 族構成変数 (短 縮版 ),続 柄 ,漢 字変数別 の集計 を表 6に 示す。収入等 の問題 か ら未婚 の 子 (作 ,好 )の 割合 が最 も多 く,親 へ の依存 が強い こ とがわかる。独身 の単身者 (単 ,揮 )や ,子 との同居者 (父 ,母 )が 次 いで多い ことが確認 で きる。この よ うに,集 計方法 を工夫すれ ば,該 当者 が家族構成 の 中で どの漢字 に該 当す るかを確認す る こ ともできる . 5.世 帯類 型 につ い て 国勢調査 の世帯類型 についての新 たな試みに関 して ,伊 藤 (2017)の 新世帯類型 では,同 居親族 の種類 を 加 味 した大分類 (4区 分),世 代数 を加 味 した中分類 (9区 分),世 帯主 の世代や世帯員 の構成 を加 味 した小分 類 (60区 分)の よ うに体系的な分類 にな ってい る . 周 防が提案 した家族構成変数 では,世 帯主 との続柄 に加 えて性別や婚姻 状況 ,子 の同居 の有無な どを加 味 して漢字が割 り当て られてお り,漢 字やそ の組み合 わせ パ ター ンか ら読み取れ る情報量が多 い ことが特徴 で あ る.た だ,匿 名 デー タにおいて世帯 の家族類型 (6区 分 )の 内訳 として家族構成変数 をそ のまま使用す る と かな り細分化 され るため,表 章区分 として使用す る際 には工夫が必要 となる . 例 えば,表 7に 示す よ うに,世 帯主 との続柄 (10区 分 )に 漢字 を割 り当て,家 族構成変数 とは別 に,同 様 の変数 を新規 に作成 した.そ の結果 ,国 勢調査 の匿名 デ ー タ (2000年 )の 一般世帯にお ける続柄 の組み合わ せ パ ター ン (短 縮版 )は 151種 類 とな った。参考 と して,家 族類型 ,作 成 した続柄パ ター ン別 に世帯数 を集 計 した結果 を表 8に 示す .な お,家 族構成変数 (短 縮版 )で は 1313種 類 あ り,そ れ に比 べ ると少 ない 区分で 表章 できるよ うになる.た だ,性 別や婚姻状況な どの情報 を加味 していない単純な表現 であるため,見 た 日 253

262.

のわか りや す さは劣 る.割 り当て る漢字 には 改 善 の余 地 が あ るが ,続 柄 コー ドの組 み合 わせ に漢 字 を割 り当 て るだ けな ので ,簡 単 に 作 成 す る ことがで き る。 表 6.年 齢階層,家 族類型,家 族構成別 世帯員数 (一 般世帯 ,労 働力状態 「その他」 ,年 齢 「25〜 29歳 」に限る,国 勢調査,匿 名データ 2000年 ) 計 総 . 夫 7,1 136 a 42 3 11, 1."7 ■瞑● 16 父 母件 父母 好 父母枠 娘 計10区 分) 1" 41 =11 " 父母件 好袋 父母倅 嫁 母好 孫 41 と子供 か ら成 る世 帯 お 母倅 好 父律 11, お ,10 場 男成 女成 *「 10そ の他」 は ,他 の親族 表 7.世 帯主 と 0 . 匿名デー タ 2000年 ) と 世帯主 との続柄 (10区 分) 1.世 帯 王 また は代表者 割当 王 2配 偶者 配 3.子 子 4.子 の配偶 者 偶 5.世 帯主 の父母 親 6世 帯主 の 配偶者 の父母 義 7孫 孫 8祖 父母 祖 9.兄 弟姉妹 傍 10.そ の他 (他 の親族 , 住み込みの雇人を合む) 254 他

263.

表 8 ‑般 世帯の家族類型 (6区 分),続 柄パ ターン別 世帯数 (国 勢調査,匿 名デー タ 2000年 ) 家族類型 , 世帯数 ― ン 88,051 87,984 王配 67 主配他 家族類型,続 柄パターン 〈 短縮) 4:そ の他の親族世帯 60,326 主 配 子親 17,570 主 配 子偶 孫 10,316 148,452 主 配親 5,269 147,532 主配子義 4,160 主親 622 主 子偶 孫 2,992 主 配 子他 120 主傍 2,891 主 親傍 106 主配子孫 2,095 王 配偶 51 王 配 子偶 1,854 主義 16 王子親 1,804 王 配 子偶 4 主配義 1,552 主親他 1 王子孫 1,209 2:夫 婦 と子 供 か ら成 る世 帯 主 配子 34,767 三 配 子偶 親 孫 903 王子 27,948 主 子偶 816 ェ親 5,314 王 配 子傍 478 王親傍 871 主配孫 468 3:男 親 又 は女 親 と子 供 か ら成 る世 帯 王義 273 工 配 子親 傍 467 主 子他 251 主 配傍 450 王偶 54 王孫 422 王親他 28 王子義 主親傍他 12 (以 下 略 主 義傍 9 5:非 親 族 世 帯 主 子偶 4 王 義他 2 主義傍 他 1 414 ,計 141パ タ ー ン 4,196 ) 1,717 1,717 主他 129,042 6:単 独 世 帯 主 総計 6。 世帯数 1 129,042 462お │ 今 後 の課題 前 節 で示 した よ うに ,周 防 が 開発 した文 字 の組 み合 わせ をパ タ ー ン化 した変 数 の 考 え方 は,少 しの 工 夫 で 様 々 な応 用 が期待 で き る。 た だ し,表 章 区分 と して使 用す るた め には ,既 存 の 分 類 体 系 との整 合性 や パ ター ン数 な どを考慮 す る こ とも課題 とな る . また ,特 定 の社 会 問題 につ い て議論す る場 合 には ,国 勢調 査 の 調 査項 目だ けで な く,関 連す る他 の 統 計調 査 とあわせ た分析 が必要 で あ り,国 勢調 査 の 役割 で あ る世帯 の 母 集 団 フ レー ム と して の特徴 を生 かす こ とが 重要 に な る。 統計 セ ンター (2014),一 橋 大学経 済研 究所 (2017)に よれ ば ,国 勢調査 の 匿名 デ ー タでは確 率比 例 (世 帯 2区 分 )に よる 1%の リサ ンプ リングが行 われ て い る.な お ,秘 匿 処 理 として トップ コー デ ィ ング ,リ コー デ ィ ング ,ス ワ ッ ピン グな どが行 われ てい るた め ,単 純 に 100倍 して も復元で きな い 部分 がある。全 国消費実 態調 査 の よ うに標本調 査 の 匿猛 デ ー タには母集 団推 計用乗 率 が 提 供 され てい るが ,国 勢調査 は悉 皆 調 査 で あ るた めか ,匿 名 デ ー タの集 計 用乗 率 は提供 され て い な い .た だ ,地 域 区分 (都 道 府 県 ,人 口 50万 以 上 市 区) は提 供 され てい るので ,そ の母 数 に基 づ い て集 計 用乗 率 を作成 す る こ とは可能 で あ る。 本 稿 にお け る匿名 デ ー タの集 計結果 では ,単 純 な度数 (世 帯 員 数 ,世 帯数 )を 記 載 してい るが ,数 値 の意 味 を適 切 に解 釈す る上 で ,集 計 用乗 率 を考慮 す る こ とが課題 とな る .ま た ,秘 匿 処理 の影響 を考慮 して ,母 集 団 に 関す る公 表値 との整 合 性 を確認 す る こ とも,匿 名 デ ー タ の 利 用 において は 大切 とい える . 255

264.

謝 辞 国勢調査 の匿名デ ー タ (2000年 ,2005年 )は ,統 計情報研 究開発 セ ン ターの周防節雄 ,安 井浩子 との共同 研 究プ ロジェク トで利用 できた.匿 名 デ ー タ利用の事務手続 きや経費負担 については,SAS Instimc Jttan(株 ) の支援 を頂 いた。 ここに記 して謝意 を表 します。 なお,匿 名デ ー タか ら家族構成変数 を生成す る SASプ ログラムの提供 を受 けた周防節雄兵庫 県 立大学名誉 教授 には厚 くお礼 申 し上げます . 参 考文献 (独 )統 計セ ンター (2014)「 国勢調査 にお ける匿名デ ー タの作成 とその検証」 ,製 表技術参考資料 27,2014 年 3月 ,https://www.nstac.go.jp/scwiccs/pdお ankousl,ou2610.pdt(2022■ 1ア クセ ス) 一橋大学経済研 究所 (2017)「 匿名 デ ー タの利用改善 に向けた調査研 究報告書」,2017年 2月 https:〃 www.soumu.go.jp/main̲contcnプ 000482460.pdl(2022.3.1ア , クセ ス) 伊藤彰彦 (2017)「 新世帯類型 の構築 と世帯構造の変動 に係 る長期時系列分析 の結果」,基 盤研 究 (C)課 題番 号:26380280研 究報告書 ,(公 財 )統 計情報研究開発 セ ンター ,2017年 3月 . 周防節雄 (2021)「 国勢調査 の ミク ロデ ー タか ら新開発 した家族構成変数 と、それ を利用 した世 帯構造 の分析 事例 の紹介」,『 官民オープ ン利活用 の動向及び人材 育成 の取 り組み (2020年 度)報 告要 旨集』,(独 ) 統計セ ンター ,pp155‐ 167,2021年 3月 . 周 防節雄 (2022)「 国勢調査 と全 国消費実態調査 の 匿名 デ ー タの統計量 を家族構成変数 で統合 す る試み」 , ESTRELA,No.337,(公 財 )統 計情報研究開発 セ ン ター ,2022年 4月 号 . 古隅弘樹 (2022)「 国勢調 査 の 匿名 デ ー タを用 いた世帯 の 家族構成 と社 会 問題 へ の適用」,ESTRELA,No.337, (公 財 )統 計情報研究開発 セ ン ター ,2022年 4月 号 . 国立社会保障 。人 口問題研究所 「人 口移動調査」 https:〃 wwwipss.gojp/site‐ ayindex」 apallcsc/ps‐ idou‐ index.asp,(2021.11.10ア クセ ス) 内閣府 「生活状況 に関す る調査 (平 成 30年 度)」 https://www8.cao.30jp/yOuth/kerkyゴ lit/1130/pdiindex.html,(2021.11.10ア クセス) 総務省統計局 「平成 12年 国勢調査 (第 1次 基本集計 )用 語解説」 h■ ps:〃 www,at.gojp/dtta/kokusei/2000/khonlЮ O″ ougo.html(2022.3.18ア クセ ス). 総務省統計局 「平成 12年 国勢調査結果 の分類 一覧 (7.世 帯 の家族類型 )」 hips:〃 www.st誠 .go.jp/dtta/kokusci/2000/guidc/4‑07.html(2022.3.18ア 256 クセ ス).

265.

国勢調 査 の匿名デ ー タを利用 した 「両親 と成人 で未婚 の子 か ら成 る世帯」 の子 の実態分析 安井浩 子 (公 財 )統 計情報研 究開発 セ ン ター Empirical Analysis on Households Consisting of Both Parents with Single Adult Children by Analysing the Anonymous Data of Japan Population Census 2000 Hiroko Yasui Statistical Information Institute for Consulting and Analysis, R&D Division 要旨 我 々の研究 グルー プは、数年前 か ら、一 日で直感 的 に世帯構造 を把握 できる 「家族構成変数」 とい う新変 数 の開発を 目指 して きた。今回、そ のアル ゴ リズム を国勢調査 の匿名 デ ー タに適用 した。近年、我 が国では 未婚率 が上昇傾 向にあ り、「成人で未婚 の子」が親 と同居す る世帯 も増加 してきてい る。それ に伴 い、無職 、 または低所得の成人 で未婚 の子 が高齢 の親 と同居す る、 いわ ゆる 「8050問 題」 も浮上 して きてい る。 また、 各世帯員 の労働力状態や収入 の種類 の違 いは、世帯全体 の家計 の状況 に も影響 を与 える と考 え られ る。そ こ で、「家族構成変数」を利用 して 、「両親 と成人で未婚 の子 か ら成 る世帯」の 「成人 で未婚 の子」について、世 帯主が親 の世帯主 の世帯 と世帯主が子の世帯に分 け、「労働力状態」、「家計 の収入 の種類 」等 の項 目を用 い る ことによ り、そ の実態 を分析す る。 キー ワー ド :国 勢調査、 世帯、 世帯員 、公的統計、匿名デ ー タ、家族構成変数 1.は じめ に 国勢調査 (以 下、 「国調」)の 調査報告書には 「世帯 の家族類型」 とい う項 目がある。そ の 中の 「夫婦 と 子供 か ら成 る世帯」 には、未成年 の子がい る世帯、成人後 も親 と同居す る子 がい る世帯が ある。 さらに、成 人後 も親 と同居す る子 の 中には、婚姻状況 が (1)未 婚 、 (2)有 配偶 、 (3)そ の他 (配 偶者 と死別 、離 別 、または不詳 )が 含 まれてい る。 近年、我が国では未婚率が上昇傾 向にあ り、 「成人で未婚 の子」が親 と同居す る世帯 も増加 している。 そ れ に伴 い、無職 、 また は低所得の 「成人で未婚 の子」 が高齢 の親 と同居す る、いわ ゆる 「8050問 題」 も浮 上 してきてい る。 こ うした状況 を把握す るには、 「親 と成人で未婚の子 か ら成 る世帯」 を分析す る必要があ るが、片親世帯 につい ては、福祉等 の観点 か ら注 目され ることが多 い。 そ こで、今回は、あま り注 目され て い ない 「両親 と子 か ら成 る世帯」 に注 目し、その 中の 「成人で未婚 の子」が同居 してい る世帯 に絞 った。 ま 257

266.

た、各世 帯員 の労働力状態や収入 の種類 の違 いは、世帯全体 の家計 の状況にも影 響 を与えるため、世帯構造 も考慮す る必要がある。 従 って 、本稿では、2000年 国調 の匿名デ ー タに、我 々が開発 した一 日で直感 的 に世帯構造 を把握 できる 「家族構成変数 l」 を付与 した後 、 「両親 と成 人で未婚 の子か ら成 る世帯」を世帯 主 が 「親 の世帯」 と 「子 の世帯」 に分類 した 。そ のデ ー タを利用 し、 「労働力状態」や 「家計 の収入 の種類 」等 の変数項 目を用 い て、 「両親 と成人 で未婚 の子か ら成 る世帯」 の うち、 「成人で未婚 の子」の実態 を分析 した。 2.「 両親 と成 人 で 未 婚 の子 か ら成 る世 帯」 の 子 の設 定 国調 の 匿名デー タに組み込 まれている変数項 目 「世帯 の家族類型」 の分類 にあ る 「夫婦 と子供 か ら成 る世 帯」 を 「両親 と子か ら成 る世帯 」 として、 「家族構成変数 (短 縮版 )」 とのク ロス表 を作成 してみ る と、36 パ ター ンが あった (表 1)2。 これ ら 36パ ター ンの うち、 「成人 で未婚 の子」が い る世帯に限定す ると、表 1で 塗 つた 24パ ターンにな る。 パ ター ン③ 〜⑤ 、⑦ 〜① (計 8パ ターン)は 世 帯主が子 の世帯であ り、パ ター ン① 〜④、④、⑮ 、② 〜① (計 16パ ター ン)は 世帯主が親 の世帯である3。 これ らの 24パ ター ンは、 世帯主が子 の世帯は約 0.5%、 世帯主が親 の世帯 は約 99%で あるため、 「両親 と成人で未婚の子 か ら成 る世 帯」 のほ とん どは世帯主が親 の世帯 と言 える。 そ こで、 この 24パ ターンについ て、 「両親 と成人で未婚の 子か ら成 る世帯」の うち、 「成人で未婚 の子」 がいる世帯に限定 して、世帯主が親 の世帯 と子の世 帯 に分 表1 ① 家族構 成 変数 (短 縮 版 ) 奥爺 袋 両親 と子 から成る 世帯 ② l奥 舅姑 ③ :女 爺袋 ④ 女爺袋弟 ⑤ 女爺袋妹 ⑥ :女 軍姑 ⑦ 男爺 袋 ③ 家族構成 変数 (短 縮版 ) 6),丑 解 威 15 で あ る。 世帯主 が親 の 世帯 では 、 「家族構成変 ).父 豊 娘 223 , 数 (短 縮版 )」 が 「作 」 、または 「好 」 で 20 父 母 娘 好 35 │ ● 丑 儘 るヽ の 裁 母倅 好 父母倅 娘 36 )父 畳 俸 枠 ① ① 50 │。 父 母 倅 枠 娘 父母体 砕 好 父母枠 爺袋 35 l亭 爺袋弟 亭舅姑 父母嫁 父母好 36 47,131 ① 父母好嫁 │↑ 豊 砕 嫁 C)父 母砕 好 )父 畳 砕 好 虚 )父 畳 砕 戯 )1父 屋 し ま 良 ││1脅 314 41 11 歳 以 上 の 「未婚 」 、 一 方 、世帯主 が子 の世 帯 で は、 「家族構成 変数 (短 縮版 )」 が 「男」 、ま 32 た は 「女」 で 20歳 以 上 の 「未婚 」 に特 定 し 10 た。 なお 、 ここで 言 う 「未婚」 には 、 死別 ・ 離 54.578 別 は含 まない。 この よ うに特定 した 「両親 と成 45,122 24 49 28 父母枠 娘 好 合計 作成 した。 「成 人 で未 婚 の 子 」 の設 定は、以 下 の とお り 509 C)男 軍姑 :亭 ら成 る世 帯」 に限 定 した SASデ ー タセ ッ トを ④ 父母好婿 74 C):父 母婿 l男 爺袋戚 男爺袋弟妹 男爺 袋妹.̲ 分析用デー タは、 「両親 と成人で未婚 の子か 両親と子 から成る 世帯 47 (9)― 男爺 袋 弟 ① ⑭ ⑮ ① ③ け、それぞれの実態 を分析 した。 「両親 と子 か ら成 る世帯 」 148,452 人 で未 婚 の子 か ら成 る世 帯」 の 「成 人 で未婚 の 子 」 に つ いて 、 「労働 力状態」、 「従 業上 の地 位 」 、 「年齢 階級 」 、 「家計 の収入 の種 類 」 の 変数 項 目を用 い て世 帯 員 単位 に よ る分析 を行 っ た。 1「 家族構成変数」の定義については、本年の SASユ ーザー総会 の周防節雄 の論文を参照 されたい。 2「 家族構成変数」に含まれ る「砕」と「好」はそれぞれ、「現在、独身 の息子、娘」を意味 し、未婚、離別、死別 も含む。 「倅」と「娘」は「現在婚姻中」を意味 し、事実婚 も含 まれる。 3「 家族構成変数 (短 縮版)」 は、両親のどちらかが世帯主の場合は、母が世帯主でも使宜上、「父母」の順 に表記 され るように設計 されている。世帯主を厳密に確認 して分析する場合は、家族構成変数(全 体版)も 併用すればよい。 258

267.

3.「 両親 と成人で未婚の子 か ら成る世帯」 の子 の集計結果 3.1 労働 力状態 「両親 と成人で未婚 の子 か ら成 る世帯」 の子 について 、 まず 、 「労働力状態」 をみ る (表 2)。 世帯主 が 子 の世 帯では、当然 ではあ るが、子が就業者 である世帯が圧倒 的で、 8割 以上 占める世帯 が多 い。 一方、世 帯主が親 の世帯は、 「家族構成変数 (短 縮版 )」 が 「父母好」 、 「父母作」、 「父母作好」 の世帯 で大半を 占めてお り、これ らの世帯 の子 の就業者 は、7割 以上 占めて い る世帯が多い。従 って、世帯主 が子 の世帯 の 方が、子 が就業 してい る割合が高 くな ってい る。 表2 家族構成 変数 (短 縮版 ) 世 帯 主 が 子 の世 帯 女爺 袋 「両親 と成人で未婚 の子か ら成 る世帯」 の子 の 「労働 力状態」 就 業者 以外 世帯数 就 業者 51 48 410 383 32 31 仕事を 探 していた (完 全失 業者 ) 合計 家事 通学 その他 不詳 女爺袋 弟 女爺袋妹 里爺 袋 27 14 男爺 袋 戚 男爺 袋 弟 男爺袋弟妹 男爺袋妹 47 44 ヽ ′ 」 言十 557 520 37 17 21,111 19,199 5,695 1,589 1,117 1,832 967 190 31 29 父母 娘 好 22 父母倅好 父母倅枠 交畳体枠 好 21 24 17 15 20 26.806 24.189 7.312 2.855 119 2.488 1.588 262 父母枠 好 交避砕 好戚 14,668 18,649 6,867 1,867 548 3,290 885 277 14 24 父母砕 戚 父母枠 娘 父母枠 娘 好 24 25 25 62,760 63.317 62,206 62.726 19,913 19,950 6,324 1,793 731 1,798 7,615 7.616 3,450 6.341 3,459 736 父母 好 父母 好 嫁 父母 好 戚 父母 好婿 世 帯. が 親 の 世 帯 父母 倅枠 娘 父母 枠 父母砕 嫁 小計 合計 25 3.2 従業 上の地位 「両親 と成 人で未婚 の 子 か ら成 る世 帯」 の 子 について 、 「従 業 上 の地位」 をみ る (表 3)と 、世 帯主 が子 の世 帯 で は、子 が 「常雇 」 で ある就 業者 の 割 合 が最 も高 く、 ほ とん どの世帯 で過 半数 を占めてお り、次 い で 、 「 自営業主 (家 庭 内職 者含 む)」 が続 く。 一方 、世 帯主 が親 の 世帯で も、子 が 「常雇 」 で あ る就 業者 の 割 合 が 最 も高 く、 こち らもほ とん どの世 帯 が過 半数 を占めて い るが、次 いで 、雇 用 形態 が安 定 して い な い 「臨時 雇 」 、 「家族従 業 者 」 の割合 が高 い 傾 向 にある。 259

268.

表3 ︲世 帯 主 が 子 の 世 帯 家族構 成 変数 (短 縮 版 ) 女爺袋 1量 驚 女爺袋 弟 女爺袋 妹 男爺袋 「両親 と成 人 で未 婚 の子 か ら成 る世 帯」 の子 の 「従 業 上 の地位 」 世帯数 常雇 1寄 51 42 ̲ 410 270 32 28 臨時雇 就 業者 自営業主 (家 庭内職者 役員 含む) 家族従 業者 92 14 就 業者 以外 不詳 27 男爺 袋 戚 男爺 袋 弟 男金 袋 弟 妹 男爺 袋 妹 47 35 557 21.111 387 15.664 父母 好 嫁 父母 好 戚 父母 好 婿 31 18 父母 娘 好 22 準 好 21 父母 倅 砕 父母 倅 枠 好 ミ母 倅 枠 娘 24 15 14 17 盆母枠 父母枠 嫁・ 26.806 父母枠 好 」ヽ 言十 父豊 好 世 帯 主 が 親 の世 帯 父母 枠 好 戚 父母 砕 戚 ・ 父母 作 娘 鸞 2,755 13 88 102 285 406 37 5.695 19.571 2.150 410 721 1.336 7,312 14,668 14 24 25 14,943 2.683 148 230 643 6.867 62.760 63,317 50.307 50,694 7.605 650 663 1,240 1.342 2,400 19,913 19.950 17 17 19 19 父畳枠 凛 好 ′│ヽ 言十 合 計 7.622 2.401 3.3 年 齢 階 級 「両親 と成人 で未 婚 の子か ら成 る世帯」の子につい て 、 「年齢階級4」 をみ る (表 4)と 、世 帯主が子 の 世帯では、子が 40代 で就業者の割 合 が高 い世帯が多 い。 一 方、世帯主が親 の世帯では、子 が 20代 の就業者 の割合 が高い世帯が多 く、年齢が上 が るにつれて減少す る傾 向にある。 これ は、子の年齢 が上 が るにつれ て、結婚や 自立な どで、両親 と同居 しない 「成人で未婚 の子」が増えるためであ ると推測 で き る。 法定定年年齢 が 1999年 に 60歳 か ら 62歳 へ 引き上 げ られ たため、2000年 当時 の定年年齢 は 62歳 以上が 多 い と考 えられ る。 「家族構成変数 (短 縮版 )」 が 「男爺袋」、 「男爺袋妹 」 、 「父母好」 、 「父母作」、 「父母砕好」では、60歳 以上の子 の就業者 が少数なが ら存在 している。 また、現在では、70代 で再雇用契 約 を行 い、臨時で雇 用 され る者 も増 えてきたが、2000年 時点では、子が 「70歳 以上」 の就業者 は、存在 し ていない。 この ことか ら、2000年 当時 は、現在のよ うに再雇用契約な どで就 業す る 「成人 で未婚 の子」は 少 なかった と考 え られ る。 同様 の分析 を最新の国調 の 匿名 デ ー タを利用 して行 えば、世帯構 造 の変遷 が観察 で きる。 4国 勢調査 の匿名 デ ー タでは、世帯員の年齢 は 5歳 刻みで表現 され ている。 260

269.

表4 2 女爺袋 20〜 24歳 歳 世帯数 2 世 帯 主 が 子 の世 帯 家族構成 変数 (短 縮版 ) 「両親 と成 人 で未 婚 の子 か ら成 る世 帯 」 の子 の 「年齢 階級 」 30〜 34歳 35´ ‐ 39歳 45〜 49歳 50´ ‐ 82 91 54 40〜 44歳 54歳 55〜 59歳 60〜 64歳 65〜 69歳 70歳 就 業者 以外 以上 10 51 女爺袋 第 を綸 岱 力 ■ 410 男爺 袋 27 25 42 78 42 7.085 68 106 106 2.988 1.278 562 109 264 135 12 25 37 5̲695 849 2.550 1.402 728 295 33 7312 6867 男爺袋戚 男爺 袋 弟 32 早爺 袋 嫉 47 ′ 1ヽ 言 十 557 と母 好 14 21.111 6.860 31 12 71 子な 麦 好戚 世 帯 主 が 親 の ユい響 T 子な 晋 娘好 22 陣好 21 24 10 陣枠 好 :な 自 孝 26.806 6.029 8.297 14.668 8.976 10 10 6.696 10 1,991 627 186 104 49 17 21.916 22.142 9.858 4.466 2.157 63317 21.920 22184 9926 4.572 2.263 1.098 1.207 483 554 87 4、 父長 枠 嫁 父母枠 好 父母 枠 好 戚 14 ● 丹 褒 腱 24 25 ′:、 言 62.760 父塁枠 戚 =1‐ 合計 10 12 19,913 19,950 3.4 家 計 の 収入 の種類 「両親 と成人で未婚の子か ら成 る世帯」 の子 について、 「家計 の収入 の種類」 をみ る (表 5)と 、世帯主 が子の世帯は、 「賃金・ 給料 のみ の世帯」、 「賃金・ 給料 が主な世帯 (賃 金・ 給料 のみ の世帯を除 く)」 、 「事業収入 が主な世帯 (農 業収入 が主な世帯 を含 む)」 、 「そ の他 の収入 が主な世帯 (内 職収入 が主 な世帯 を含む)」 の よ うに 「収入 が主な家計収入」 である子 の就業者 の割合 は、約 8割 以 上 になる世帯が多 い。 一 方、 「恩給 。年金 のみ の世帯」、 「恩給 。年金 が主な世帯 (恩 給 。年金 のみ の世帯 を除 く)」 、 「仕送 りが 主な世帯」 の よ うに 「恩給 。年金・ 仕送 りが主な家計収入」であ る子 の就業者 は存在 していない世帯が多 く、存在す る場合でも、就業者 の割合は約 1割 未満である。世帯主 が親 の世帯 では、 「収入 が主な家計収 入」である子 の就業者 の割合 が約 6割 以上 の世帯が多 く、 「恩給 。年金・ 仕送 りが主な家計収入」は約 1割 に過 ぎない。 このよ うに、 「収入が主な家計収入」である 「成人 で未婚 の子 」 が大多数 を占め るが、 「恩給 。年金・ 仕 送 りが主な家計収入」 である世帯 も少数ではあるが存在 してお り、 「収入以外 の恩給や年金」、または、 「別世帯か らの仕送 り」に頼 つてい る 「成人 で未婚 の子」が存在 していることもわかった。 261

270.

表5 「両親 と成人で未婚の子か ら成 る世帯」 の子 の 「家計 の収入 の種類」 世帯数 変数 (短 縮 版 ) 世帯 主が 子 の世帯 準 女稼 袋 │ヽ な爺 袋 義 51 , ̲ 賃 金・給 料 の み の世 帯 賃 金・給 料 が 事業収入が その他の収入 主 な世 帯 主な世帯 が主な世帯 恩給・年金 (賃 金・ 給 料 のみ (農 業収入が主 (内 職収入が主 のみの世帯 の 世 帯 毅 (う な世帯を含む) な世帯を含む) 11 ■+1,入 鳳 給・年 で 収 入 が 主 な家 計 収 入 家族構成 恩 給・ 年 金 が 主な世 帯 不詳 就 業者 以外 ̲仕 送りが 1競 趣 ″ ∫ 曇 釜 り1主 な世帯 │ 30 3 2 男爺袋 410 78 32 11 196 20 27 男爺 袋 戚 男金 袋 弟 男爺 袋 弟 妹 雲爺袋妹 ′ 言+ 47 lヽ 557 父母好 21 111 120 24 273 94 2.459 2657 戚 27 37 228 869 2639 5.695 245 1 169 3654 7312 2.688 181 302 1 1フ 0 9.355 654 2341 7481 15 7.508 15 13 受日 好 婿 世帯 主が親 の世帯 交昼 娘 好 22 父母 倅 好 父母 体枠 父母 俸枠 好 21 11 24 父母 倅 枠 娘 父母 枠 26806 11 171 父畳 枠 嫁 父最 枠 好 14668 父畳枠 戚 13 12 父畳 枠 鑢 父 丑 棒 m好 小計 62760 63317 33569 33689 9056 9449 19913 19950 3.5 従 業 上 の 地位 、家 計 の 収 入 の種類 、年 齢 階級 「両親と成人で未婚の子から成る世帯」の子の就業者について、 「従業上の地位」、 「家計の収入の種 類」、 「年齢階級」 を詳細 にみた。 まず、 「常雇」 の世帯主が子 の世帯についてみ る (表 6■ )。 「収入 が主な家計収入」である子 の就業者 は、30か ら 40代 で多 い。 「恩給・ 年金・ 仕送 りが主な家計収入」 である子の就業者 は、 ご く少数 ではある が、存在 してい ることか ら、世帯主の子が高齢 の 両親 の年金等 に頼 つてい る様子 が うかがえる。一方、世帯 主が親の世帯では、「収入が主 な家計収入」である子 の就業者 は、20代 で多 い。 これ は、いずれ は子が近い 将来、独立 して家 を出るであろ うと考 えられ る。「恩給 。年金・仕送 りが主な家計収入」である子 の就業者 は、30代 で多 くな り、多 くは「父母好」、「父母作」、「父母枠好」の世帯 である。「家族構成変数 (短 縮版 )」 では、子 の人数 はみ えないが、恐 らく、多 くの世帯で未婚 の息子や娘 が一人ぽつん と世帯 に取 り残 されてい ることが予想 で きる。今回は未計算であるが、「家族構成変数 (全 体版 )」 を利用すれ ば容易 にわかる。 ま た、年齢が高 くな るに従い、子 の就業者 が少な くな ってい るのは、親 が高齢 で施 設 に入居 した り、亡 くな っ て しま うことで 、残 された子 は、「両親 と成人で未婚 の子 か ら成 る世帯」ではな く、別 の家族類型 へ分類 さ れ ることにな る。 「臨時雇」 につい てみ る (表 6‐ 2)と 、世帯主が子 の世帯では、 「収入が主な家計収入」であ る子 の就業 者 は、20か ら 30代 で多 く、 「恩給 。年金 。仕送 りが主な家計収入」 である子の就業者 は存在 しているが 、 ほ とん どいない。 一方、世帯主が親 の世帯では、 「常雇」 の場合 と同 じ傾 向であった。 「自営業主 (家 庭 内職者含 む)」 についてみ る (表 6‑3)と 、世帯主が子 の世帯 は、 「収入 が主な 家計収 入」である子 の就業者 は、40代 で多 い。 「恩給 。年金・ 仕送 りが主 な家計収入 」 である子 の就業者 は、 ほ 262

271.

表 6‐ 1 「両親 と成 人 で未婚 の子 か ら成 る世 帯」 の子 が 「常雇 」 の 「家 計 の 収入 の種類 」 と 「年齢 階級 」 565 307 129 55 12 4453 6273 2648 1072 508 269 116 118 846 1 360 982 567 248 88 6,793 5,253 1.227 269 70 33 27 104 431 402 210 70 33 399 399 2015 2678 1 760 2681 1.766 946 953 410 2.016 歳 29 34 39 歳 歳 歳 4 4歳 4 2歳 64 5 以上 6歳 910 歳 4 6歳 5 9 5︲ 5 歳 733 44 歳 35 0 6 0 5 ユ 歳 177 39 歳 30 5 4 46 34 歳 25 0 4 63 29 歳 60 0 2 470 24 5 6歳 以 上 1 536 40 9 5歳 45 5221 68 144 72 5286 35 5 5 80 30 4 5歳 55 25 0 5 世帯 主が 子︵ 9 4歳 主な家計 収 入 32 20 9歳 5 4 や4 家族構成 変数 (短 縮版 ) 女爺袋 女爺袋弟 ― : ― ― : ― │ 女爺袋嫉 16 雲爺袋 57 36 56 51 30 5 男爺袋戚 易爺袋弟 ■ │ 2 12 男爺袋妹 ′]ヽ 計 父母好 3 フ ︱ ︐ 世帯 主 が 親 の世帯 父丑好嫁 交畳好戚 父母好婿 父母娘好 父母倅好 父畳体枠 父 母 倅作 好 父母倅枠娘 父母枠 父畳 枠城 父母 枠 好 父 母 枠 好戚 父母枠戚 1 父母枠娘 ′ ]ヽ 言 十 16570 16̲793 16574 16825 l1 1 5426 1816 726 5481 1 896 794 439 367 190 235 23 32 415 153 153 22 22 表 6‑2 「両親 と成 人で未婚 の子か ら成 る世帯」 の子 が 「臨時雇」 の 「家計 の収入 の種類」 と 「年齢階級」 4二 6 35 19 1 ― ― │ 女爺袋壊 ― 男爺袋 爺 袋戚 ― 男爺 袋 弟 ― I │ ― │ │ ― │ ― │ ′1ヽ 言十 ― 1,221 743 228 47 14 母好嫁 父 母 好戚 33 144 1 1 1491 99 ― ¨ │ │ ― │ ― 世 帯 主 が 親 の世 帯 父畳 好婿 │ ― l ― │ ― │ ̲ r― ― │ ̲ :長 娘 好 │ ― │ ― 父母倅好 │ ― │ ― t母 枠 1.123 482 156 58 28 │ 「「 ― │ 27 71 53 27 21 ― 父母枠嫁 父母枠好 851 │ 1756 604 121 32 29 52 441 25 ‑1 ― l ― 父母枠娘 父母枠娘好 小計 l ― 4.108 1.335 507 4,108 1,840 511 137 140 43 44 l ― 16 15 17 16 │ ― l ― ! ‑1 ― ‑l 263 ― l 89 89 267 268 278i 177 71 2781 71 1 78 l ― 43 43 l 14 14 5 6歳 以 上 0 6 9 5歳 : 5 5 │ 4 5歳 ― 0 5 ― 女爺袋弟 9 4歳 歳 女爺袋 4歳 4 29 30■. 1I 35 〜 1 〜 34 1 39 歳 I歳 5 4 歳 25 0 4 44 歳 豹■一 2歳 39 歳 5 6歳 以 上 34 歳 4歳 6 29 歳 0 6 24 9 5歳 40 5 5 35 4歳 5 30 0 5 25 9 4歳 20 変数 (短 縮版) 5 4 世 帯 主が・ 子 の世帯 家族構成

272.

とん ど少 ない。 一方、世帯主が親の世帯 は、 「収入が主な家計収入」であ る子 の就業者は、20代 で多いが、 「恩給 。年金・仕送 りが主な家計収入 」 である子の就業者 は、30代 で多 くな る。 これは、 「常雇 」、 「臨時 雇 」、 「役員」、 「家族従業者」のす べ てで同様の傾 向が あ り、世帯主が親 の 世帯は 「従業上 の地位 」による 違 いは見 られなか った。 表 6‐ 3 「両親 と成人で未婚 の子 か ら成 る世帯」 の子 が 「自営業主 (家 庭内職者含む )」 の 「家計 の収入 の種類」 と 「年齢階級」 5 以 上 6歳 12 4 6歳 19 0 6 9 4歳 23 9 5歳 5 4 4 4歳 27 5 5 0 4 9 3歯 13 4歳 Ю 5 5 3 歳 4 3歳 44 歳 0 3 39 歳 9 2歳 23 34 歳 5 2 27 29 歳 4 2歳 5 24 0 2 21 40 5 6歳 以 上 26 35 4 6歳 24 30 0 6 11 25 5 9 5・ 5 歳 p二一0 世 帯 0 4 5 ¨5 歳 世帯士 3 20 5 4 ) 9 4歳 収 入 力 キな家計収入 家族構成 変数 (短 縮版 :爺 袋 女爺袋 弟 女爺袋妹 現爺袋 爺袋戚 髯爺 袋 魂 ′言 + 70 41 12 17 27 25 38 121 110 66 71 58 49 75 39 17 5 3 113 113 267 268 192 197 100 112 87 114 69 96 :ヽ 父畳 好 父母 好嫁 含畳 辞 蘇 11 │ ‐ 世 帯 主 が 親 の世 帯 父量 好婿 父母 娘好 父長 体 好 父母 倅枠 父畳 倅枠 娘 父母枠 25 7 14 60 58 43 31 17 3 10 10 11 37 37 97 97 86 88 66 48 21 66 48 22 父長枠嫁 父母 枠 好 父畳 枠 1威 父母枠 娘 全甚枠 櫨好 小計 4。 36 59 12 ま とめ 一 日で直感的に世帯構造を把握できる 「家族構成変数 (短 縮版)」 を利用す ることで、 「両親 と成人で未 婚 の子から成る世帯」 の世帯構成を含めた 「成人で未婚 の子」の実態について、以下ように把握することが できた。① 「労働力状態」の結果か ら、就業者の割合は、世帯主が子の世帯 の方が、子が就業 している割合 が高い。② 「従業上の地位」の結果 か ら、世帯主が子の世帯及び、世帯主が親 の世帯共に、子が 「常雇」で ある就業者の割合が最 も高い。③ 「年齢階級」の結果か ら、世帯主が子の世帯では、子が 40代 で就業者の 割合が高い世帯が多いが、世帯主が親 の世帯では、子の年齢 が上がるに連れて、親元を離れるため、20代 の就業者 の割合が高い世帯が多い。④ 「家計の収入の種類」 の結果から、 「収入以外の恩給や年金」、また は、 「別世帯からの仕送 り」に頼る 「成人で未婚の子」が存在する。⑤ 「従業上の地位」、 「家計 の収入の 種類」、 「年齢階級」 の結果から、 「恩給 。年金・仕送 りが主な家計の収入」 の世帯では、 「成人で未婚の 子」が高齢の親の年金に頼 っていることが確認できた。 264

273.

5。 今 後 の課題 今 後 の 課 題 につ い て は、 第 3.5節 で触れ た 8050問 題 に関連 して 、 「家族構 成 変数 (短 縮版 )」 が「父母 好 」、「父 母作 」、「父母作 好 」の世帯 につ いて 、近 い うちに、 「家族構 成変数 (全 体版 )」 を利 用 し、 8050問 題 と深 く関係 す る世 帯構 成 に 関 して さらに詳 細 な分析 を行 う予 定 で あ る。 また 、今 回利 用 した 国調 の 匿名 デ ー タが 2000年 調 査 な ので 、令 和 2年 (2020年 )調 査 のデー タが現 時点 での最 新 デ ー タにな った 今 、20年 の時 を経 て 、 8050問 題 が 、近年 、9060問 題 と様 相 を変 えてい る よ うに、 さ らに深 刻 な状 況 に陥 ってい る と想像す る。 この点 につい て も、入 手 可能 な最 新 の デ ー タ5を 入 手 次第 、 こ の 間 の 変遷 状況 を詳 細 に分析 したい。 参考文献 「家族構成変数」 の開 ①周防節雄(2020)「 世帯を調査客体とする公的ミクロデータの世帯構造を直感的に把握できる pp.25‑30、 セン ー 2020年 9月 ESTRELA 9月 タ 発と利用 (1)」 、 財 計情報研究開発 号』 、 (公 )統 、 『 「家族構成変数」 の開 ②周防節雄(2020b)「 世帯を調査客体とする公的ミクロデータの世帯構造を直感的に把握できる pp.25‑31、 セン ー 2020年 11月 ESTRELA ll月 タ 計情報研究開発 発と利用 (2)」 、 号』、 (公 財)統 、 『 ③周防節雄(2021)「 国勢調査のミクロデータから新開発した家族構成変数と、それを利用した世帯構造の分析事例 の紹介」、 『 官民オープン利活用の動向及び人材育成の取り組み(2020年 度)報 告要旨集』、独立行政法人統計セ ンター、pp155‑167、 2021年 3月 ④周防節雄(2021)「 国勢調査と全国消費実態調査 の匿名データの統計量を家族構成変数 で統合する実験結果 の 紹介」 『 官民オープン利活用の動向及び人材育成の取り組み (2021年 度)』 、独立行政法人統計センター ⑤古隅弘樹(2021)「 国勢調査の匿名データを用いた世帯の家族構成 と社会問題への適用」 『 官民オープン利活用の ー セン タ 動向及び人材育成の取り組み (2021年 度)』 、独 立行政法人統計 ⑤周防節雄 (2022)「 国勢調査と全国消費実態調査 の匿名デ ータの統計量を家族構成変数 で統合する試み」、 『 ESTRELA 4月 号』、pp.2‑9、 (公 財)統 計情報研究開発センター、2022年 4月 、 ⑦古隅弘樹(2022)「 国勢調査の匿名データを用 いた世帯の家族構成 と社会問題 への適用」 『 ESTRELA 4月 号』、 pp.10‑17、 (公 財)統 計情報研究開発センター、2022年 4月 謝辞 本研 究 の遂行 に際しては、 国勢調査 の匿名 デ ー タを使用したが、その際、(株 )SASイ ンステチュートジャパ ンから 使用料 の補助を受けた。また、匿名データの利用 に際しては、独立行政法人統計センターから便宜を図って頂 いた。 ここに記 して謝意に替えたい。 52022年 9月 1日 (独 )統 計 セ ンターか らのメール で、「2000年 、2005年 、2010年 、2015年 の通算 4回 分 の調査票情 報 のオ ンサイ ト利用 が可能 になった」 との連絡が あ った。 265

274.

Integrated Gradientsに よる格付AR値 変化 の 寄与度分解 木村 和央 * 株 式会社 日経 金 融 工 学研 究所 An Analysis of Factors Contributing to Change of Rating Accuracy Ratio using Integrated Gradients Kazuo Kimura Nikkei Financial Technology Research Institute Inc. 要旨 ク ラス分類 を 目的 と したモデル の精度 評価 指標 で あ る AUC,AR値 とい った順序統 計 量 の 時系列変化 につ いて は,定 量 的 に変化要 因を把握 す る方法 が確 立 され てい る とは言 い が たい .本 稿 で は説 明可能 な AI(XAI)技 術 の 1つ であ る Intcgrated Gradientsを 格 付 AR値 に適用 し,業 種等 のセ グ メ ン ト別お よび 格 付別 の構成 比 変 化 要 因 とデ フォル ト率変化 要 因 に寄 与度 分解す る方法 を提 案 した。ま た ,実 際 の債務 者 統合デ ー タに適 用 し,2008年 度 の リーマ ンシ ョ ック時 にお ける格付 AR値 低 下は,不 動 産 業 よ りも製 造 業 か らの寄与 が上 回 っていた こ とを明 らかに した 。 キー ワー ド :AR値 ,寄 与度分解 ,時 系列分析 ,Integrated Grdients 1.は じめ に ロジ ッ トモデ ル に代表 され る教師 あ リクラス分類 を 目的 としたモデル の精度評価指標 と して ,AUC,AR 値 ,Somers'Dと いった順序統計量 (序 列精度 )が 重要視 され ている (山 下・ 三浦 ,2011).こ の うち,金 融 機 関にお いては伝 統的 に AR値 を利用す る傾 向にあ り,そ の時系列変化 に大 きな関心が寄せ られ ている (柳 澤 ほか,2007).そ の変化要因 の分析 としては,CAP曲 線 の時点間比較 とい う定性的な手法 はあ るが,定 量 的 に変化要因を把握す る方法が確立 され ているとは言いがたい . これ に対 し,木 村 ほか (2019)で は,格 付 AR値 (以 下 AR値 )を 対象 に,格 付別 の構成 比 と相対デフォ ル ト率 の変化差分 を用 いての定量的な寄与度分解 を提案 した .し か し,相 対デ フォル ト率 には全体のデフォ ル ト率 の影響が入 り込むため,結 果 の解釈 に困難 な部分 が伴 った . そ の後 ,こ れ らの困難 を克服可能な手法 を探 していたが ,説 明可能な AI(Explainあ le AI:XAI)技 術 の 1 つ である Integated Gradie聴 (IG)を 利用可能 な ことがわか った .本 稿 では,IGを 利用 して,格 付 AR値 の変化 要因 をセ グメン トお よび格付別 の構成比変化 とデ フォル ト率変化 に寄与度 分解す る手法 を提 案 し,実 際の債 務者デー タに対 して適用 し,結 果 の解釈 を述べ た *本 . 稿 の内容は筆者 に属 し,所 属組織の見解ではない . 266

275.

2.格 付 AR値 の 定義 2.1内 部格 付制度 とその精 度 一 般 に金 融機 関 では ,債 務 者 (融 資先企 業 ・ 個 人 )の 管理 のた め に 内部格付 制度 が整 備 され て い る .格 付 とは各債務 者 の信用力 を あ らわ した符 号で あ り,基 本 的 にはデ フ ォ ル ト確 率 (融 資 が 契約 どお り正 常 に返 済 され な い確 率 )の 程度 を反 映 した 指標 と考 えて もよい。金 融機 関 の 内部管理 のた め の 格 付 であ るので 内部 格 付 とよばれ ,格 付機 関 が公 表 す る格 付 は外 部 格 付 と区別 され る。 内部 格 付制 度 は ,期 初 の格 付 と観 測期 間終 了時 点 までのデ フ ォ ル ト実績 に よ り,そ の精度検証 が な され , 場合 に よっては見直 しが な され る。す ぐれ た格 付精度 とは序列精 度 が 高 い とい うこ とで あ り,上 位 格 付 先 の 実績デ フォル ト率 が低 く,下 位 格 付 先 の 実績 デ フォル ト率が高 い こ とで あ る2.序 列 精度 が高 けれ ば ,た とえ ば ,下 位 格 付先 の融資 を否認 す るか減 額す る,あ るい は融 資利 子 率 を高 めに設 定す る といった こ とに よ り , 金 融機 関 の収益 を最大化 す る こ とが可能 で あ る。 序列 精度検 証 の ため の指標 ,統 計量 として は ,前 述 の とお り,金 融機 関にお いて は AR値 を利 用 す る傾 向 に あ る .AR値 の絶対水 準 に は強 い意 味は見 出せ な い とい う理解 は深 ま ってい る もの の ,そ の相 対比較 ,つ ま り前年 との比 較 で一喜一 憂 して い るケ ー ス も多 い .単 年度 で単一 の金 融機 関にお け る実績デ フ ォル ト数 は少 な く,そ こか ら導 かれ た AR値 の 変化 が統 計 的 に有 意 な ものか は ,複 数年度 あ る い は長期 の時系列 変化 と し て捉 えて い く必 要 が あ る3. 一 方 で ,AR値 が変化 した要 因 につ いての 議 論 は , ど うして も定性 的 な もの にな りが ちで ある。 CAP曲 線 の比 較 は極 めて重要 な手法 で は あ るが ,定 量 的 な議 論 が しに くい . 2.2格付別デ フォル ト率集計表 は じめに,図 表 1の よ うな格付別デ フォル ト率集計表 を作成す る。業種等 のセ グメン ト数 を S,格 付数 を κ とし,1を 最 も信用力 の高 い最上位格付 ,Kを 最 も信用力 の低 い 最 下位格付 とす る.検 証対象期間 の期初 に 存在す る非デ フォル ト債務者 はいずれかのセ グメン トお よび格付 に分類 されてい る.セ グメン ト s,格 付 た に所属す る債務者数 を Мたとし,ポ ー トフォ リオ全体 の全債務者数 を Ⅳ とす る4.期 初 にセ グメン トs,格 付 た に所属す る債務者 の うち,期 末 までにデ フォル トしなかった債務者 数 を МЮ,デ フ ォル トした債務者数 を Мll =М Ю+М 周).同 様 に,ポ ー トフォ リオ全体の非デ フォル ト債務者数 を ェ 0=Σ ttЮ ,デ フォル ト債 とす る (鳩 た 務者数 を Nl=Σ Мた 1と す る (Ⅳ =夏 0+Ⅳ l).こ れ によ り,セ グメン トs,格 付 たの実績 デ フォル ト率は ′ =鳩 た sた /馬た ,ポ ー トフォ リオ全体の実績デ フォル ト率は P=圧 1が 1 となる。 本集計表 をもとに,後 の説 明に必要 となる幾つかの変数 にさらに変換 してお く.ま ず ,セ グメン トs,格 付 たの債務者数 をポー トフォ リオ全体 の債務者数 Ⅳ で除 して構成比 に変換す る.セ グメン トs,格 付 たに所属す ″ ,非 デ フォル ト債務者数構成比 を αsЮ =馬 Ю/ェ デ フォル ト債務者数構成比 る債務者数 の構成比を 鐙 =馬 た を α 1=М た lⅣ とす る.ポ ー トフォ リオ全体 の非デ フォル ト債務者数構成 比は αO=I。 ″ =1‐ P,デ フォル ト sた 債務者数構成比は al=Ⅳ 1/Ⅳ Pと な リポー トフォ リオ全体の実績 デ フォル ト率に一 致す る . 2格 付別 にデ フォル ト確率が想 定 されて い る場合 は,実 績デ フォル ト率 との一致性検証 もす る必要がある . 3 AR値 の標準偏差 ,AR値 の差 の検定 といった手法の理解 については道半 ば といった ところか と思われ る . 4債 務者 には,非 デ フォル ト債務者 のほかに,既 デ フォル ト債務者 (既 に正 常 に返済できない状態 にある債務者 )が い る が,そ れ らは検証対象 とは しない . 267

276.

図表 1:格 付別デ フォル ト率集計表 全 債 務者 数 Ⅳ に対す る構 成 比 債務者 数 Scg ND DF Rank ALL DR Nrro Nru Nrr:Nno*Ntrr Pn: Nn I Nn Mro Nrrr Nrr:Mro+Mrr Pw: Ntxt I Nw κ Ⅳ l 恥 =鳩 脚+М た Psk= Nsn I Nsk МЮ 5た 1 Nsro Nsr Nsr : iy'sro * Nsrr Psr:iy'srr/Nsr ND DF ALL ato= Nrro / N an:Nn/N at:Nn/N = at(7- pt) αlЮ =Ⅳ lЮ /Ⅳ =α lKl‐ ′10 鉄Ю=Ⅳ :Ю /Ⅳ : al1pll αlκ l=Ⅳlκ 1/Ⅳ atx: Nw/ N =α lK′ lK らた=馬 た/Ⅳ asn: Nsn / N : dskPsk =ら た(1‑ル の a.sro: Nsro /N ay: : asr (1-psr) as:Ns/N Nst / N = ast psl S N壺O Aなκl NsK=ⅣsK。 十Ⅳsκ ′sκ =銚 K1/Ⅳsκ κ l ALL Ar1 0 Ⅳ l Ⅳ P=Ⅳ 11/Ⅳ αSXO=Ⅳ函 0/Ⅳ =αsK(1‐ ′sK) =α 1‑P=Ⅳ̲0/Ⅳ =Σ Σα (1‐ Ps∂ sた αSκ =Ⅳ SK/Ⅳ αSKl=ⅣSK1/Ⅳ x sκ ′ P=I」 /Ⅳ =Σ Σα ′ sた sた ※ Seg:セ グ メ ン ト,Rank:格 付 ラ ン ク ,ND:非 デ フ ォ ル ト,DF:デ フ ォ ル ト,DR:実 績 デ フ ォ ル ト率 2.3格 付 AR値 まず ,AR値 に つ いてで あ るが ,SASの LOGISTICプ ロシ ジ ャにて 出力 がな され る Somers'Dと 同様 の も の で あ る5.SASの ドキ ュ メ ン トに よれ ば ,AR=Somers'D=(Concordant― Discodant)/(Total Palrs)と 表 現 され て い る。Ъ ●l Pairsと は ,本 稿 の 文脈 で い えば ,非 デ フ ォル ト債 務 者 とデ フ ォ ル ト債 務 者 の 1対 1 の 全 ペ ア数 .)で あ る .Concordmtと は ,非 デ フ ォル ト債務 者 とデ フォル ト債務 者 の信 用力評価 が (Ⅳ O× Ⅳ 整 序す なわ ちデ フォル ト債務者 の デ フ ォル ト確 率 が非 デ フ ォル ト債務 者 よ りも高い ペ ア数 で あ り,Discordant とは ,非 デ フ ォル ト債務者 とデ フ ォル ト債務者 の信 用 力評価 が不整 序 す なわ ちデ フ ォル ト債 務 者 の デ フォル ト確率 が 非デ フ ォル ト債務者 よ りも低 いペ ア数 で あ る.Ticdを 非 デ フォル ト債務者 とデ フ ォル ト債務者 の評 価 が 同一 のペ ア 数 とすれ ば ,Total Pairs=Concodant+Discordant+Tiedで あ る .AUCは AUC=(Concodant +0.5× ■ed)/(Total Pairs)と 表 現 され ,式 変 形 に よ り AR=2× AUC‑1の 関係 が 成 立 す る . この AR値 の 定義 を格 付 ラ ン ク別 デ フォル ト率集 計 表 に適用 した もの を格 付 AR値 と呼称 す る.上 位 格 付 の非デ フォル ト債 務 者 と下位 格 付 の デ フォル ト債務者 のペ ア は整序 で あ り COncOrdmt,上 位 格 付 のデ フォル ト債務者 と下位 格付 の非 デ フォル ト債務者 のペ ア は不整 序 で あ り Disc mtと な る こ とか ら , 5同 様だが同一でない.LOGISTICプ ロシジャでは計算量を減 らすために,出 力 された確率を 0.002間 隔に区分 し,同 一 区分内での序列はタイ とみな して計算 される.オ プシ ョン BINⅥ DTHに より間隔は調整可能だがゼ ロは指定できない。 268

277.
[beta]
1

l

一2

馬

嶋

一

馬

ⅣЮV.

嶋

^^^`

▼
ん>
︐
κ
ア告
S
yんけ

1

AR:=―

S

K

▼ ¬

―

ttT 2.ね (幅 0物 1 N2i・

・

喝。
)・

Sgn° ̀)・

(1)

格付 Jと プの大小関係 を考慮せず ,対 等 に扱 うために χの符号関数 であ るsgn(χ )を 導入 し,同 一項が 2回 登場
す るために 2で 除 した .さ らに,(1)の 右辺 の分母分子 を Ⅳ2で 除 して変形す ると
,

S

AR=≒
1

K

戴 罰 Σ lΣll(幣
1

S

‑―

百 ぜ 去‐戸 22(α
2,υ =1:,ノ =1

こ で

'α 観 Oα ガ 1 α

慎 ■αり 0=α

観 (1

L̀)α

)

■

)
直Oα り ― α覆 αり 0)・ SgnC― ι
・
・

ν′pν ノ

α

●:Liα ガ

(1 ρ

″ )=α tt

(2)

αν
プ(ん ノ

ρ
凛Sgno― ι
(助 ―
フみ1ム αり

.̲
AR=,て
野
■

)(年 )― (幣 )(部)}sgnい

κ

=う ・
こ

̲

▼ 1 ヽ

′

観 )を 代 入

し て 変 形 す

と

る

,

"

2jα

)

)・

(3)

つ ま り,格 付 AR値 とは,セ グメン トお よび格付間の債務者 ペ ア数α●
:α ν
ブーρ.:)(ノ >ι )
ノにデ フォル ト率 の差 (ρ ν
を乗 じた値 につ き,す べ てのセ グメン トお よび格付間で和 を とった もの と解釈す ることがで きる。 したがっ
て ,多 数 の債務者 が所属す る格付間 においてデフォル ト率 の差 が大きい場合 に AR値 は大 きな値 を とるが

,

最後 にポー トフォ リオ全体の非デ フ ォル ト率 とデ フォル ト率 の積 である(1‑P)Pで 除 してい る ところに注意
が必 要である.た とえば,異 時点間にお ける格付 AR値 を比較す る場合 は,ポ ー トフォ リオ全体 のデ フォル
ト率Pが 異な り,Pが 増加 (減 少)す る場合 において格付 AR値 は減少 (増 加 )す る傾 向にある (一 般 に,P<0.5
であるため).

一

0
n

一

9

″

α

α

R
A

κ
ア績
S
yんけ
1一
2

なお ,相 対デ フォル ト率を9sた =ρ立/{(1‑P)P)と 定義す る と,(3)は

,

(4)

木村 ほか (2019)で は,(4)を 用 いてセ グメン トお よび格 付別 の構成比 と相対デ フォル ト率 に よる寄与度分解
を提案 した.し か し,相 対デ フォル ト率 にはポー トフォ リオ全体 のデ フォル ト率 の影響 が入 り込むため,結
果 の解釈 に困難 な部分 が伴 った。本稿 では,(4)に よらず (3)を 用 いて,セ グメ ン トお よび格付別 の構成比 と (通
常 の)デ フォル ト率 に よる寄与度分解 をこの後提案す る。

3.I正 egrated Gradients(IG)の 概 略
ここで,寄 与度分解 の核 となる技術 である Intcratcd Gradicnts(以 下 ,IGと 略)に ついて ,そ の概略を説
明す る.説 明は計算 手法 のみに とどめ ,そ の性質等 の詳細 については Smdararaり 狙 d al(2017)を 参照 いた
だ きたい

.

′
′
基準 となるサ ンプル の入力値 (ベ ー ス ライ ン)を χ,評 価 したいサ ンプル の入力値 をχとす る.入 力値がχ
′
′
か らχまで変化 した とき,出 力値 はF(χ )か らF(χ )ま で変化 す るが,そ の差 であるF(χ )一 F(χ )を 次式 によ り入
の変化 か らの寄与度 に分解す る
力値 の各要素χι

.

269

278.
[beta]
fQ(χ )::=(ヶ

1璽

χ
′
)×「
Jα

′
))dα
生 空空三χ

(5)

σχ:

=。

通 常,(5)を 解析的に計算す るのは困難 で あ るため,m個 の 区間に分割 して近似 した区分求積法 にて行 う

rfppr°

X(χ

χ ΣF x'+(k/m)x(x-x'))
∂

)::=(χ :一

f)×

∂χι

た=■

1
(6)

η2

なお ,Fが ほ とん ど至 る ところ微 分可能 で あれ ば,寄 与度 の 合 計 が出力 値 の 差 分 に一 致す る

2rGル )=F(χ)一 F(ノ ).

(7)

:=1

4.Integrated Gradients(IG)に 必 要な微分計算 とその解釈
4.lIGに 必要な微分計算
さて ,IGを 格付 AR値 に適用す ることを考 えると,入 力値χをセ グメン トお よび格付別の構 成比らたと実績
デ フォル ト率′立に対応 させ ,出 力値Fo)を 格付 AR値 に対応 させれ ばよい。 したがつて,F(χ )の 入力値 の各
要素 に よる偏微分が必 要であ ったよ うに,(3)に お ける格付 AR値 を構成比 と実績デ フォル ト率 にて偏微分す
れ ば よい。ポー トフォ リオ全体の実績デ フ ォル ト率Pは ,P=Σ Σαsκ ρsた である こ とに留意 して

zP*t

1

ffi = en (1 - P)P 'a'* - G- ilF

aui(p,i - p,e) sgnQ - k),

0

aAR

「

C

1
κ︶︐んノ
.κ▼︐ ノ
S▼︐^向S︶> ︻

∂AR
2P‑1
・ρ +で1
b=T=AR・ て
III下 戸
万戸
=―
sた

,

α
sた α
ν
ブSgnC― た)

4.2微 分計算結果 の解釈
(8)お よび(9)の 右辺第 1項 は,全 体 の実績 デ フォル ト率 Pの 変化 を通 じて格付 AR値 に与える影響 と解釈 で

きる.通 常 ,Pく 0.5よ り,2P‐ 1く 0で あるか ら,α sた とρsた の増加 /減 少は格付 AR値 の減少/増 加 に寄与す る

.

言 い換 えると,実 績デ フォル ト率 Pの 増加 は,相 対的にデ フォル ト債務者数 を増加 させ ることであ り,そ れ
は分母 となるセ グメン トお よび格付 間の債務者 ペ ア数 の増加 となるため,AR値 を減少 させ る方 向に作用す る
とい うこ とである。
(8)お よび(9)の 右辺第 2項 は,格 付間の整 序性 の変化を通 じて格付 AR値 に与 え る影響 と解釈 で きる.格 付

別デ フ ォル ト率がブ≧ たの ときρ′
ブ≧ρsた であれ ば,(8)の 右辺第 2項 は正 とな り,α sた の増加/減 少 は格付 AR値
の増加 /減 少 に寄与す る.他 方 ,(9)の 右辺第 2項 は,Σ 記号内 の項別 に,た >プ な らば正 ,た <ノ な らば負 とな
る.つ ま り,格 付たのデ フォル ト率上昇/下 落 は,格 付たよ りも上位 の格付 とのデ フォル ト率差 を拡大/縮 小 さ
せ るた め格付 AR値 の増加/減 少 とな り,格 付たよ りも下位 の格付 とのデフォル ト率差 を縮小/拡 大 させ るため
格付 AR値 の減少/増 加 とな る。 このバ ラ ンス に よ り(9)の 右辺第 2項 の正負 が決 ま ることになる

.

270

279.

5.実 際 の債務者統合デー タヘ の適用 5.1債 務者統合デー タ と計算 における留意点 筆者 の所属機関は,独 自に複数 の金融機 関か ら許可 を得 て各金 融機 関の融資先 である債務者 (事 業法人) の財務デ ー タ (決 算書 ),属 性デー タ (業 種 ,債 務者 区分等 ),お よび延滞デー タを収集 してい る6.こ れ らの デ ー タを財務デー タのみ をもとに名寄せ を行 い,同 一 と思 われ る債務者 をユニ ー クに した債 務者 統合デー タ を構築 した。本デー タヘ本手法を適用 し,2004〜 2017年 の格付 AR値 の時系列変化 につ き寄与度 分解 を実施 し た。なお ,セ グメン ト (業 種)は ,1.製 造 ,2.建 設,3.卸 売,4.小 売,5.不 動産,6.サ ー ビス,7.そ の他 である . 格付 は,決 算デー タの ス コア リング結果 か ら付与 した もので,最 上位格 が 1,最 下位格が 7で あ る.IG入 力 値 にお いてベ ース ライ ンが前年度 の値,評 価 したいサ ンプル が当年度 の値 とな り,区 分求積近似 については , 区間分割数 を 1,000と し,台 形公式にて計算 した . 5.2格 付 AR値 の寄与度分解結果お よび考察 格付 AR値 は,セ グメン ト (業 種)お よび格付 につ き,構 成比変化要因 とデ フォル ト率変化要因に分解 さ れ るが ,構 成比変化 は小 さく,以 下の議論 においては構成比変化要因 とデフォル ト率変化要因は合算 して扱 った。図表 2は 業種別 ,図 表 3は 格付別 にそれぞれ集約 した ものである (以 下 ,数 値 を 1,000倍 して表示). 全体の格付 AR値 は,2006年 度 とリーマ ンシ ョックの 08年 度 に大 幅低下 したが,そ の後は回復基調 にあつた . デ ー タ秘匿のため図は省略 したが,08年 度 の業種別 に計算 された AR値 は,不 動産業が他 の業種 の 2倍 程度 低 下 してお り,一 般 に,全 体 の AR値 低下 は不動産 業 の要因である と解釈 され てい るが,図 表 2に よれば製 造業 の 寄与度が上回 った .こ れは債務者数 に 占める製造業 の割合 が不動産業 よ りも多 いこ とに起因す るもの と考 え られ る.ま た ,木 村 ほか (2019)の 相対デ フォル ト率 を用 いた寄与度分解 では,最 下位格付 である Rmk7 の寄与 が重要 と報告 していたが,図 表 3に よれ ば中位格付 である Rank3,4か らの寄与度が顕著であ った。 ∞ ∞ 和 Ю η 知 つ ∞ Ю ∞ ∞ ∞ 2005 ■■■製造 2008 2011 2014 2005 2017 目ロロ 建設 爾翻罐 卸売 目 露 小売 ` ` 日目磯111不 動産 は 翻 サーヒ ス■■■その他――― A‖ 2008 2011 2014 2017 日■■■■Rankl:■■■暉 Rank2熙 爾目■■Rank3日 ロ ロ Rank4 "曖 口 ¨ ¨ 日 .All ■ ■ 腱 Rank5口 園 目■ 暉雛 翻‐ Rank61日 │■│口 :Rank7・ ‐ ││││││11‐ 図表 2:格 付 AR値 変化 の業種別寄与度分解 図表 3:格 付 AR値 変化 の 業種別 寄 与度分 解 6デ ̲夕 は匿名化 されてお り,個 人情報ならびに法人を特定 しうる法人情報は含まれない . 271

280.

図表 4は リー マ ン シ ョ ック時 の 2008 図表 4:2008年 度 の業種・ 格付 別 寄 与度分解 年度 にお け る格 付 AR値 変化 の寄与度 を 200鮮 F度 詳 細 に業種 ×格 付 別 で み た もので あ り 行 方 向 ,列 方 向 に合 計 した ものは 図表 2 ` ` サーヒ ス その他 建設 卸売 ノ ヽ 」 売 不動産 Rankl 1.5 ‑2.4 ‑0.3 ‑0.2 0.1 0.0 Rank2 ‑0.2 ‑2.0 ‑1.0 ‑1.0 Rank3 3 ‑3.1 1.6 ‑3.2 2.6 1.2 Rank4 ‐ ・ 9.1 2.0 ‑1.6 ‑3.6 ‑4,0 ‑4.3 0.1 Rank5 1.0 1.0 製造 , の 業種別 ,図 表 3の 格 付 別 の 2008年 度 の 寄 与 度 に一致す る .製 造 業 では最 上 位 格 =4.7 1.0 で あ る Rmklの 寄 与度 が大 き く,R狙 炒 Rank6 0.3 1.7 1.2 1.5 0.5 1.8 0.3 〜4も 同様 の傾 向で あ る の に対 し,不 動 産 RankT 2.8 2.9 1.9 0.0 0.3 炒2.5 1.3 3と 4の 寄与度 が大 き 業 に つ い ては Rar」 く い とい う相違 が あ った 。 図表 5は ,格 付 AR値 の 時系列分散 を 業種 そ 寄 与度 分 解 した もの で あ る.業 種 で はそ の 他 業 種 が ,格 付 で は 低 格 付 で あ る Rank6,7が ,全 体 の 動 きで あ る格付 AR値 とは逆相 関 の動 き を示 した。 格付 ‑200 0 200 4α ) 600 800 図表 5:時 系列分散 の業種/格 付別 寄与度分解 6.お わ りに 本稿 では,Intcratcd Gradientsを 用 いて格付 AR値 の変化 につ き寄与度分解す る手法を提案 し,実 際の債務 者統合デー タに適用 した。今回採用 した手法 によ り,相 対デ フォル ト率か ら通常 のデフォル ト率 に変更 した ことで結果解釈がわか りや くな り,ま た,業 種 セグメン トに関す る寄与度分 解 も合わせて可能 となった.格 付 AR値 変化要因 の寄与度 としは,債 務者数割合 の多 い製 造業や中位 の格付 ラ ンク先の動 向 が重 要な ことを 示 した .一 般に, リーマ ンシ ョック時 のポー トフォ リオ全 体 の AR値 低下は,業 種別 AR値 の比 較 か ら不動 産業 によるもの と解釈 されてい るが,定 量的な評価が可能 な本手法によれ ば,不 動産業 の債務 者数 は相対的 に少 ない ため製造業 か らの寄与が大きい との結論が得 られ た .今 後は,本 手法 をス コア リングモ デルや格付 精度 の診 断 ツール として整備す るとともに,各 金融機 関 におかれては実際 の 業務 に役立てていた だきたい . 参考文献 [1]木 村和央,宋 明子,友 添峻希 (2019).格 付 AR値 変化の寄与度分解.日 本オペ レーションズ・ リサーチ学会 2019年 秋季研 究発 表 会 予稿集 . [2]柳 澤 健 太郎 ,下 田啓 ,岡 田絵理 ,清 水 信 宏 ,野 口雅 之 (2007).RDBデ ー タベ ー ス にお け る信 用 リス クモデ ル の説 明力 の年 度 間推移 に関す る分析 ,日 本金融 ・ 証 券 計 量 。工 学学会 2007年 夏季大会 予 稿 集 ,249‑263. [3]山 下智志 ,三 浦翔 (2011).信 用 リス クモデル の予測 精 度 ―AR値 と評 価指標 ― .朝 倉書店 。 [4]M Sund釘 狂巧an,A Taly,Q Yan(2017).Axiomatic attrib■ionお r dccp nctworks.Intem江lonal contКncc on nlaclline learnillg,3319‐ 3328. 272

281.

付 録 .SAS DATAス テ ッ プ に よ る 計 算 コ ー ド例 Al■ り を用 いて必要なデータを 1レ コー ド上に展開すれば,本 稿 の数式 にしたがって DATAス テ ップのみで 計算することが可能である.た だ し,最 終出力は列数 が多いため,整 形 して必要部分を抽出する必要がある . /* ∞ 」 =O TO&rnki */ /*htegrated Gradientsl=よ る格付AR値 変化の寄与度分解 /* */ DO̲J=‑l T0 1: */ ARに [0,」 .■ ̲J]= ARC̲[■ ̲M.̲R̲J]= ENDi ENDi /**圧 縮設定 書/ ENDI OPT10NS COMPRESS = YES /絆 ENDI /*評 価データヘ値の格納 V ARC̲[1,SEG.RNK,‑1]=N; /*債 務者数 */ ホ AR∝ [l SEG,RNK,0]=ND:/*非 デフォルト / */ AR∝ [l SEC,RNK.1]=DF:/*デ フォルト セグメント数 料/ %let seg=7: ハ*格 付ランク数 Ⅲ/ %let rnk=7i 基準データ設定 (01前 年実績,1:当 年予想→予実対比)料 / %let bas=0; /料 /ホ /ホ 基準データが 1:当 年予想のとき */ 基準データヘ値の格納 */ 1F &bas = l THEN DO: AR∝ [0.SEG.RNK.‑1]=N: /*債 務者数 */ AR∝ [0.SEG.RNK,0]=N*(1‑PD)i/*NX非 AR∝ [0.SEG.RNK l]=N*PDi み*入 カデータ(DATO)の フォーマット**/ END: み /*基 準年月の最終行における処理 */ #変 数 タイ プ ラベ フレ l YM 数値 2 SEG 数値 3 RNK 数値 4N 5 ND 6 DF 7 DR 8 PD 数値 数値 数値 数値 数値 YM基 準年 月 SEGセ グメン ト RNK格 付 ラ ンク 備考 順序 しか考 慮 され ない 連続値 1‑&seg 連続値 1‑&rnk デフォル ト確率ホ / /ホ NXデ フォル ト確率*/ 1F LAST YM = l THEN DO: /*基 準データが前年実績の場合は1年 目は出力しない ″ IF ARC̲[0,0,0.‑1]〉 =O THEN OUTPUT: N債 務者数 N=ND+DF ND非 デ フォル ト DFデ フォル ト DR実 績 デ フォル ト率 DR=DF/N PDデ フォル ト確率 期初 に想定 され たDF確 率 み 基準データが0:前 年実績のとき V *次 のループに向けデータ移動 ■/ ′ 1F &bas・ O THEN DO: DO」 =O TO&segi 00̲R=O TO&rnki */ DO̲J = ‑l T0 1: ARC̲[0,」 .̲R,̲J]=想 ∝ [1.」 ,」 .」 ] AR∝ [1.』 ̲R̲J]= i /*料 *入 カデータを集計表形式に加工 *林 */ /銹 ENDi ENDl ENDi N,ND,DFは 合計 **/ PROC MEANS DATA = DATO NOPRINTI ENDi BY YHi CLASS SEG RNKi VAR N ND DF: OUTPUT OUT = DAFlA SUM=: ENDi RETAIN̲ALL̲i KEEP YM ARC i RUNI RUN: /料 DR.PDは Nで 加重平均 **/ PROC MEANS DATA = DATO NOPRINTI /**構 成比とデフォルト率変換 **/ BY YMI CLASS SEG RNKi VAR DR PDi WEIGHT N: DATA DAT3: SET DAT2: ル 入力 */ OUIPUT OUT = DATlB MEAN=: RUN: ■1]:/*件 数 */ み ARC̲[0:基 準 1:評 価,SEG,RNK′ ‑11N O:ND l:DF〕 ARR‖ ARに [0:1,0:&seg,0:&rnk,一 /**デ ータを統合 料/ DATA DATl: MERGE DATlA DATlB: BY YM̲TYPE̲SEG RNK /*集 計カテ ゴリの欠損をゼロに変換 ネ / 1F SEG = lF RNK = THEN SEG = 0: THEN RNK = 0: l樋 1葬 │[│││││∫ */ 儡用 1(値 /*構 成比 */ DO D=0101: DO M= O TO &seg: RUN: DO̲R=O TO&rnk; /*サ ン プル な しの基準年月は構成比ゼ ロ ツ lF ttC̲LD.0.0.‑1]=O THEN ARLLD.」 ̲R]却 趾SE ARR̲LD̲L̲R]=ARに LD.」 .̲R,‑1] /料 料 データを0:基 準データと1:評 価データで横展開 料梓/ ‖特/ /料 料 各時点を1行 に格納して.計算をしやすく 『 塁 ま iitti― 距 /ARC̲[̲D.0.0,‑1]; /**集 計表の横展開 料/ DATA DAT2: SET DATl: ;〔 [ilii「 BY YM ̲TYPE̲ SEG RNK; ARRAY AR∝ [0:1.0:&seg.0:&rnk,‑1■ ]:/*債 務者数 */ み AR鮭 [0:基 準 1:評 価.SEG.RNK‑1:NO:ND l:DF]*/ END: END: み 先頭行における配列の初期化 */ 1F ̲N̲ = l THEN DOi DO̲M=010&segi ; /*デ フォル ト率 */ DO̲D=0101: 273

282.

DO」 =010&sn。 DO」 =OT「 I:1レ 嗽聯 Nll轍 押 DROP ̲: RUN: /++##*++#B#******H******H*+*+++{#*++*+**#/ =0 /料 替 integrated Gradientsに よる寄与度分解 ,障 料/ ENDi DATA DAT5i END: SET DAT4(DROP=ARG̲:ARヒ KEEP YM ARR̲:ARP̲:ARG̲ か 入力 */ :) ARMY ARL[0:1,0:&seg,Oi&rnk]:/*構 成比 */ ARMY ARL[0:1.0:&seg,01&rnk]:/*デ フォルト 率 */ ARMY ARL[0:1.0:&seg,0:&rnk]:/*格 付AR値 */ ル AM̲[0:基 準 1:評 価,SEG,RNK]*/ RUN: /Ⅲ Ⅲ 格付AR値 計算 *林*/ 1鯛 DATA DAT4: SET DAT31 /*入 力 */ 想ヒ[0:1.0:&seg.0:&rnk]:み 格付AR値 鰍X̲[0:基 準 1:評 価,SEG,RNK]*/ ハ B准 [SEC.RNK.from SEC,from RNK] */ ハ frm SEGと fron RNKは 交差効果の相手先を指定 */ /ホ / 初期化 ■ (SEG別 )ツ */ /*frm RNKは ‑2:寄 与度合計 /*‑1:右 辺第1項 の寄与度 0:右 辺第2項 の寄与度 */ /*区 分求積計算の区間数設定 */ ̲NK = 1000; DO̲D=O T0 1: /*区 分求積計算出カクリア Ⅲ/ DO M=O TO &segi DO ̲M = O TO &segi DO ̲R = O TO &rnki ARK̲LD.̲M.̲R]=0 ARL̲LD,̲M.̲R]=0 DO ̲R = O TO &rnk: DO ̲l = O TO &segi DO̲S=‑2丁 0&rnk: ENDi BR̲LM.R̲1.̲S]=0: ENDi BP̲[」 .■ ̲1.」 =0: END: BI̲LM,■ ̲:,̲S]=01 み 計算実行 */ ENDI ENDi DO̲D=O T0 1: DO̲H = l TO &seg: ENDI DO」 =110&rnk: ENDI /*Σ 部分の計算 (全 体)*/ DO ̲1・ l TO &segi *区 分求積計算開始 */ DO̲K=O TO̲NK: DO̲J=l TO&rnk: ARL LD,」 ̲R]=想 LLD̲M.̲R] +(1/2)*想 R̲LD.̲M,̲R]*AnR̲[p.̲L」 *(ARP̲[⊃ .̲L̲J]■ RL[p.̲M.」 ]) /*ウ エイト 設定 */ /*台 形公式によるので左端と右端は1/2*/ K: 』 =1/」 ] :F̲K=00R̲K=̲NK THEN̲W=̲/2: *SlGN∈ J― ̲R)i END: ENDi /*中 間データ初期化 ″ DO ̲M = 0 10 &segI /*全 体のP(1‑P)で 除す */ DO」 =O TO&rnk: /*構 成比 */ 想K̲LD.」 ̲R〕 =ARK̲LD.」 ,̲R] TLLM.」 ]=0: /*デ フォルト率 */ /ARLLD.0.0]/(1‑ARLLD.0.0]) /*SEG別 ,RNK別 集計 */ 1P̲LM,̲R]=0; ARK̲LD,0.̲R]=AR旺 [」 .0̲R]+想 L[」 ̲比 ̲R] ARLLD,̲M.0]=AR旺 [p.」 .0]+ARt[p.」 ̲R] END: END: 駅旺LD.0.0]=ARtLD.0.0]+ARLLD.」 .」 ]│ /*中 間データ計算 */ */ DO ̲M = 1 10 &seg: DO」 =l TO&rnk: 用 )*/ る lflll;!竜 ¨ 喝 1麗 MiSEGttAR値 柚 二littRI n ;1率 ツ 0:&seg,‑2:&rnk]i/*構 成比 ツ ARRAY BL[0:&seg.0:&rnk.0:&seg.‑2:&rnk]:/*デ フォルト 率 */ ARRAY BL10:&seg.0■ rnk,0■seg.‑2:&rnk]:/ホ 合計 */ ARRAY BL[0:&seg.0:&rnに /*出 力 */ ARMY ARL[0」 ,0:&seg.0:&rnk]:/中 格付AR値 Ⅲ / ARR川 1響 /*出 力 (寄 与度)*/ 想MY ARP̲[0■ .0:&seg.0:&rnk]i/ネ デフォル ト率 */ ARRAY ttR̲[0:1.0:&seg,0:&rnk]:ル 構成比 */ ARRAY ARG̲[0:1,0:&seg.0:&rnk];/*構 成比 (SEG別 )ツ /*AR准 [0:基 準 1:評 価.SEG,RNK]ツ /ヰ ::::::::ll]ゴ [‖ ;:畦 任訛 ]て +想 l二 │││」 │」 ::剛 キ K) J] /*デ フォル ト率 */ TP̲LM̲R]=ARP̲[■ ̲M.̲R]*∈ K/̲NK) +ARL[0̲M.」 ]*(1̲Kた NK) J]― ARP̲[51二 II二 liア END *siitt=liァ ENDI END: /*SEG別 のP(1‑P)で 除す */ ENDi ARL̲LD.̲M,̲R]=ARL̲LD,̲M,̲R]/ARP̲[̲D.̲M.0] /*中 間データ合計 十 / /(1‑ARLLD.」 .0])│ み SEG別 ,RNK別 集計 */ /*構 成比 ″ DO M=l TO&seg: DO̲R=l TO&rnk: ARヒ LD,0,̲R]=: ARL̲LD,̲M,0]=ARLLD.」 .0]+ARL̲LD,」 ,」 〕 ARL̲LD.0.0]=i Tに [」 .0]=TR̲[」 .0]+TLLM,」 ] TL[Q̲R]=TR̲[Q̲R]+TLLM,̲R] TL[0.0]=TR̲[0,0]+T畦 [̲‖ ̲R]; END: ENDi ENDi ENDi 274

283.

BL[」 ̲RO̲S] =BP̲[̲比 ̲R.0,̲S]+BP̲[̲‖ ̲R̲1.̲S] BL[」 .0̲L̲S] =BR̲[̲M.0̲I.メ ]+BR̲LM̲R̲L̲S] BL[」 .0̲L̲S] =BP̲[̲M,0̲I.メ ]+BP̲[̲‖ ̲R̲L̲S] B畦 [0.̲R,̲L̲S] =BR̲[Q̲R.̲L̲S]+BR̲[̲M.̲R̲L̲S] デフォルト率 */ /ホ DO M=l TO&segi DO ̲R = l TO &rnkl TP̲LM゛ ]=TP̲LM.0] +TR̲LM̲R]*TLLM̲R]/1LL性 BLn̲R,̲Lパ ] =BP̲[Q̲R̲L̲S]+BP̲LM̲R̲L̲S] 0〕 TL[0.」 〕=TL[0̲R] +TLLM.̲R〕 *TL L‖ ̲R]/TR̲[0,̲R] TP̲[0,0]=TP̲[0.0] BR̲[̲M,̲R.0,0] =BR̲LM.̲R.0.0] BP̲[̲M,̲R.0.0] =BLLm.̲R.0,0] BR̲LM.0,̲I,0] =BLLM.0.̲LO] +TLLM̲R]*TL[」 ̲R]/TR̲[0.0]; ENDI ENDi BP̲[̲M,0.̲1,0〕 +BLLM.̲R̲l,̲S] =BLLM.0,̲!,0] +BLLM,̲R,̲L̲S] +BLLM.̲R,̲L̲S] +BLLM.̲R.̲L̲S] BR̲LM.0.0̲S] =BR̲LM.0.0,̲S] +BLLM.̲R,̲L̲S] BLLM.0.Q̲S] =BP̲LM.0.0̲S] +BLLM,̲R,̲L̲S] BR̲[0.̲R,̲I,0] =BR̲[0.̲R.̲LO] BP̲[0,̲R.̲l,0] =BL[0,メ .̲LO] /*格 付AR値 計算 */ AR=0; り υ Bに [0.̲R.0,̲S] BL[0.̲R.0̲S] BL[0,0̲l,̲S] BL[0.0,̲L̲S] `υυ ♂:]10T:S:ilk い ` 買 : = l TO &segi =BR̲[0,̲R,0.メ ] +BLLM.■ ̲1,̲S] =BP̲[0̲R,0,3] +BLLM.■ ̲L̲S] =BR̲[0,0,̲L̲S] +BL LM.■ ̲1.5] = BP̲[0,0,̲1,̲S] BR̲LM.0.0.0] =BR̲[̲M.0.0.0] =BP̲[̲M.0.0.0] BR̲[,̲R,0.0〕 = BR̲[0.̲R.0,0] BP̲[0.̲R.0.0] =BL[0.̲R,0.0] TIi(I.1「 :覇 +(TLLLが islllHil]) ]― BLLM.0.0.0] lr̲日 ..̲.. BR̲[0.0,̲1,0〕 END: ENDi ENDi END: BP̲[0.0.0.̲S〕 ‐ 3会 の右辺 υ 1,11f:iw[1憚 lh鵠 :鮮「 仲 *TR̲[̲M.̲町 *̲:「 ぃ…̲̲;│:│{li‖ 足 il〕 :l:Ⅷ │ BP̲[̲M,̲R,̲1,̲S]; BL[̲M.』 ̲L̲S]: BLLL̲R̲L̲S]: BLLM.̲R,̲L̲S]: BLLM.̲R.̲L̲S]; /*構 成比・デフォル ト率別の右辺第 1項 +第 2項 の合計 */ DO ‖=O TO&sog: DO ̲R = O TO &rnki DO ̲1 = O TO &seg: BL LM.」 .̲L‑2]=BR̲[̲M̲R,̲L‑1]+BR̲[」 ;│ ENDi .̲R,̲1,0] BP̲LM̲R̲1.‑2]=BP̲LM̲R,̲I.‑1]+BLL‖ ,̲R,̲1.0] ENDi ENDi ENDi ん 場合の右辺第2項 */ ・ υ υ ttFl緩 輔り uヽ :[│。 ぃ T:S:ilkl 貫 1 = l To &seg: /*構 成比 +デ フォル ト率の合計 */ DO̲‖ =O TO&segi DO ̲R = O TO &rnk; DO ̲: = O TO &seg: 馨lt鮎 摘IFIⅢ ー 甘 ホ 職ナ S] │1懇 ENDi ] BR̲LM.■ ̲1.̲S]: BP̲LM,■ ̲L̲S]: BR̲LM.■ ̲1.5]│ ENDi END: ENDi END: ENDi BP‖ =BL[0.0.0̲S] +BLLM,」 .̲:・ パ BL[0.0.0.0]=BL[0,0,0,0]+BLLM.̲R,̲I BL[0.0,0,0]=BP̲[0.0,0,0]+BLLM.̲R.̲: 第 1項 */ W′Ù1躯 ::10T:S::lk: ̀≒ =BR̲[0.0.̲LO] BP̲[0,0,̲1.0] =BL[0,0,̲LO] BR̲[0,0,0.̲S] =BL[0,0,0,̲S] ENDI END: END: ENDi END: DROP RUN: /料 ‐セグメン ト別/格 付ランク別の寄与度 淋/ DATA TESTll SET DAT5; 想RAY ARL[0:1.0:&seg.0:&rnk];/*格 付AR値 */ ARRAY BT̲[01&seg,0:&rnk,0:&seg.‑2:&rnk]1/*合 計 */ /*各 種合計値の計算 */ /*右 辺第 1項 */ ARRAY BT錐 [0:&seg]BTS∝ BTS&segi/*セ グメント 別ホ / DO ̲M = l TO &segi DO ̲R = 1 10 &rnki ﹁ ﹁ ﹁ BR̲Ш ■ 0「 1]=BR̲日 .0■ ‑1]+BLLM̲R,0,‑1] BLLM,0.0.‑1]=BLL■ 0,0, BLLH.̲R.̲Lバ ]=BR L‖ .■ ̲1,̲S]+BP̲LM.■ ENDi END: END: END: /****#**H***w***H******+**+++***/ 区分求積計算終了 */ BL[0̲R.0.‑1]=BL[0.」 .0. BL[0,̲R,0,‑1]=BL[0,」 ,0. ∞ パ =‑2 TO&rnk: /料 **出 力,1****/ ENDI /ネ +BLLM̲R̲1.メ ] +BLL‖ ̲R,̲1,メ ] ARRAY BTL[0:&rnk]BTRい BTR&rnkl/ホ 格付ランク別 */ +BP̲[̲‖ ̲R,0,‑1] DO̲l=010&seg: +BLLM̲RO,‑1] END: +BLLM̲R.0.‑1] Bに [0.0.0「 1]=B畦 [0,0.0.‑1]+BLLM.」 .0.‑1] BIS̲LI]=BT̲LI.0.0.‑2] DO ̲I = 0 10 &rnki BL[0.0.0「 1]=BL[0.0.0.‑1]+BLLM.」 .Q‑1] BTLLI]=BT̲[0̲LO.‑2] END: ENDi ENDi /*右 辺第2項 幸 / DO」 =l TO&segi ̲想 0=想 L[1,0,0]払 RL[0.0.0] ̲想 1=BL[0,0,0「 2]: み 計算チェック */ DO̲R=110&rnkl DO ̲1 = 1 10 &segi DO̲S・ l TO&rnki BR̲LM.」 ,̲10]=8LLM,̲R,̲LO]+BL[」 .̲R,̲L̲S] 8L LH,̲R,̲I.0]=8L LM,̲R.̲:,0]+BL[」 .̲R,̲L̲S] 3R̲LM.̲R,0,メ ]=BL LM.̲R.0,メ ]+BR̲[」 .̲R,̲L̲S] KEEP YM BISO― BTS&seg 3TRO一 BTR&rnki RUN: 275 ̲!,̲S]

285.

ポスターセツシヨン

287.

Excelワ ー クブ ックを 自動的 に作成す る 「温 故知新」 "Learning from the past to the future" of automatic creation of Excel workbooks. o小 澤 義人 1、 仕子 優樹 1、 (1国 立 大 学 法人 千 葉 大 学 医学部 附 属 病 院 稲葉 洋介 1 臨床 試 験 部 生 物 統 計室 ) 本文 SASに は多 くの機能 がある反面そ の 出力 は冗長である。解析方針 が定まった後 に この冗長 な部分 を除き必 要 な解析結果 のみ をま とめあげるプ ログ ラム は今後 も必須 とな る。 このよ うな プ ログラム をいかに簡便 に作 成 で きるかは効率面や 品質面において も重要な ものにな る と考 え られ る。 以前 か らSASと Excelの デー タ 交換 に用 い られてい る Whdowsの DDEや OLEな どの規格 は過去 のテクノロジー として世 代 を交代す る必要 に迫 られている。 SAS ODSは プ ロシジ ャに よって生成 され るす べ ての出力 を一元的に管理す るテ クノロジー と して提供 されて い る。 しか しODSに は多 くの機能が含 まれ、そのため慣れ るまでは扱いに くい と感 じて し ま う側 面 も多 々存在す る。今回 Excelに 出力す るための ODS excelの 使 い方 に関 してマ ク ロ化 な どを含 め検 討 し実行 した もの を報告す る。 279

289.

キーノートセッション

291.
[beta]
毅

Open Source So■ ware(OSS)全 盛 の 中、
SASの 役割 は何 か?

What is the role of SAS in the midst of the
Open Source Software (OSS) boom?

荀

Rexer Analytics'Su:vey

総MI塵 ヽ 瘤 ●L● コ

Mbrc.n Er€l Data Mintng

for data scientists

n=1220

IBM SPSS Mo悛 譴
MA:■ A3(Manwoは 9)

KNIME (lEe wreion)

Rapldvtns (fre€ wdon)
Micreff sc& s€rer Deta irln ng
SAS Er(€rprrre MiB

SIAnSICA (D€lustabot)
(Wblfra R6wEh)
Rdolrliil AnalyliB (f@ w6lon)

l&trffite

SAS JMF

Olkvifl
Orade Daia llliniig
SAP
Objeds
Stata

B6in*

■P‖ ma呼 ■)ol

摯
一
一一
一
・

Mirit6D
IBM CognG

二α h。「u"

IBCO Spotfic

R4idMi.s (ffi rercial G6ion)
KNIME (@mmeEid reEion)

OBngc
ReYolrrts AmMks (mmeEia! @ion)

O€de R Enlerpri*
Ealiod CART, i{ARS,I@Net RF, SPM

Figure 4a. Ana')ti.s tools *red by respondents l, the 201 ! Rexer Analfics Suruey- In
this ,iew, eacl: respondent was free to (heck multiple tools.

https ://14stats. com/articles/popu larity/

283

292.
[beta]
霧

Goog!e Scholarに おける
3e+05‑

ヒットイ
牛数

.

SPSS、 SAS、 Prismが 大勢

+ *ss

&s
+sb

+ PGm

を占めているが、SPSSが
2009年 、SASが 2010年 、
Prismが 2013年 にピークを
迎えて、減少傾向が見られる

,ia srsrm
Ю

〇〇〇0 一
ofo∽ o一
゛ 工 ﹂o一
0﹂00E DZ

Sfrare

1995

2000

2005

2010

2015

Year
F19ure 2d The numberof Go● 91e Scholar citations for each clossic sttistics package

peげ

機rFiom 1995 throu9い 2016 httpsi〃 Mstats.cOm/articlesノ pOpulari、 ″

sPss stauslcs‐

Stま ●‐

G● phPad P百 sm‐

0〇一
︒モく 00︑ ゛=Λ f¨
oの Ct O
5′g ●︑
2ち の ooC〇一

薇

●■

Google Scholarの 論 文件 数

R‐

SAS

̲=――■■―‐

(2018)

―――――●

Pythonな どの他のOSSも 台頭

―――→

してきている

MATLA8‐
python‐

Apache HadooP
TensorFlow―
Java‐

Minnab―
statisuca‐

―――‑0

SOL― ――――‑0

Scikit Leam‐

JMP―
Systat‐

Keras―

C,C++、 o「 C=‐
Caffe‐

FORTRAN―
Apache Spark-

――――‑0
――――●
―――●
――‑0
――‑0
→
―
―●
―●

PyTorch'
Statg raphics -

―●

Mathematica'

IBM Watson- -{

Weka {

Theano- -a
0

20,000
40.000
Number of Scholarly A

60.000

80,000

cles in 201 8

aigu.c 2a. The nurter of scholarly.rticles aornd on Google SchoLar for dara scienre

softwa... Only those wirh more tarn 1,7C0 (ltations are showx.

https ://r4stats. com/articles/popu la rity/

284

293.

Software(OSS)全 盛 の 中、 翁 Open Source SASの 役割 は何 か? O SASの クオリティー・コントロールについて 一 竹村 尚大 (SAS lns量 じte Japan株 式会社 アカデミア推進室 ) 。SASデ ータセット ー 岸本 淳 司 (九 州大学 ) O SASの 統計教育に関する問題解決 に向けて 一 高橋 行雄 (BioStat研 究所 (株 )) ・ 統計理論 の 学習・教育 について 一 伊 藤 陽 ― (北 海道大学病院 データサ イエンスセンター ) ・ パネルディスカッション:SASと OSSの 新しい時代の幕開け ̲ノ 1ヽ 里 予潔 土 INTEC) 朱式会ネ (本 285

294.

2022/09/03(上 )SASユ ー ザ ー総会 基調講演セ ッシ ョン oss全 盛 の 中、 SASの 役 割 は何 か ? SASの クオ リテ ィー・ コン トロール について SAS lnstltute」 apan株 式会社 ア カデ ミア推進 室 竹村 尚大 SSas. BASIC Lua No Free Lunch theorern C j ava sc ri pt 一= ^ し ノー ・ フ リー ・ ランチ定理 PHP C十 十 Perl Matlab どのプ ログラ ミング言語 がいいか ? Octave Code Agnostic Lisp SAS 不 可知論 Python SAS/IML i ava DS2 SSas 286

295.

アナ リテイクス ・ プラッ トフォーム と してのSAS 組織上̲Lェ アナリティクスを活用する ″ ヒ / ロ =コ ∪ 、 oヽ 〔 tgb′ │リ ヽ 4́/ Data [Vlanagement Open Architecture Democratized Analytics lVodelOps 自由 と統制 素早 い活用 SttS アナ リテ ィクス・ ツール と してのSAS 燃蓉各 Accelerated Analytics Tra nspa ren cy - Parallel Processing - ln-database Processing - ln-memory Processing - Responsible Al - Explainability - Reproducability Quality - Proven Analytics - Strictness - Support / Service SSas 287

296.

Hype Cycle for Artificial lntelligence,2(r2l 珈熙■聞 A!GoVern‐ ance Responsible AI ロ 説 明可能性 ≠機 械 学習 モ デ ル の説 明 プ ロセ スや 組織 。人材 を 含 むす べ て の要 素 が必要 蟹ゴ 需 1詰d lddd &Fdb* T@Ch d DIdUrMst Sl@€ ot tulbffifit PbEu ol Pdu€iury Time oBknrFR arb5Fo asbeF ambEr Eehbfu@ gartner.● ●m Gartner SASの 「品質」 につ いて アナ リテ ィク ス ・ ツー ル と しての差別 化 要 因 SSas 288

297.

丁he Qua‖ ty imperative(品 質規則 ) SAS lnstituteに お け る品質 へ の コ ミッ トメ ン ト │ .=‐ .‐ ■― ・ ■■ 目次 ― は じめ に ―SAsの 社員 ―職 場環境 ― プ ライバ シーの保 護 ― ク ラ ウ ドと情報 サ ー ビス ー 高 品質 な開発 の基 盤 ―SASア ーキテ クチ ヤ クオ リテ ィ・バ イ ・ デ ザ イン : SASに お ける研 究 開発 計 画 策定 と要件 定義 コー デ ィング と ビル ド テス ト リ リース デ プ ロイメ ン ト 保 守 とサポー ト カス タマー・サ ー ビス にお ける品質 SSas SSas 一︱ t‐ り、 当社 の設立基盤 で もあ ります 。 e Jirn(Goodnight CEO,SAS institute 289 ●一 . 一 一 一 舞 一一 一一一一一一 一 一 一 一一 品質 に対 す るSASの コ ミッ トメ ン トは、 グ ローバル 企 業 と し ,̲` て の 当社 の 隅 々 まで 、 あ らゆるデ ィ ビジ ョンお よび社 員 に浸・ 透 して い ます。我 々が生 み出す ソフ トウ ェアか ら我 々 がサー ̲=註 ビス を提 供 す るお客様 に至 るまで の プ ロセ スにお いて 、 また ` 我 々が 相 互 に行 う コ ラボ レーシ ョン全体 を通 じて、 品質 は 我 々 の 中核 にあ ります 。 それ は我 々が 誰 であ るかの象徴 あ で ず .

298.

品質文化 SASの 強 み はその企 業 文 化 に由来 して お り、 そ こに は 多様性豊 かな 人 々 、 才能、 アイデ アが溶 れて い ます 。 我 々の集 団 と しての強み と 自分 た ちの活動 へ の 情 熱 こそが 、 お 客様 の抱 え る極 めて複雑 な 問題 を解 決す る革 新 的 な ソ リューシ ョンの実現 を推 進 して い るの です 。 . v)/ (JenntferVlann) . -) --7 T/\4 7 . / l, )i> F. SAS Human Resources Division SSas 高品質な開発 の基盤 技術 面 の業界標 準 を モ ニ タ リン グ /当 局 と交 流 ―ISO′ NiSI SOC/FDA CFR′ FedRAI∨ lP/Oヽ VASP N∨ C∨ SS/GDPR′ CPPA D′ R&Dに 関す るポ リシー /標 準 /プ ロセ ス 報□ D 概巖 1.. i ツ繊セス 髯 (三 ヽ =扇 == テジブ し―ト SSas 290

299.

クオ リティ・バ イ 0デ ザイン 。イ ン テ リジ ェ ン トな コンポ ー ネ ン トの 使 用 一イ ンテ リジェン ト・ クライアン ト ーインテ リジェン ト・ス トレージ ーイ ンテ リジェン ト・サーバー O SASソ フ トウ ェア の 「 マル チ ベ ン ダ ー ・ ア ー キテ キチ ャ」 0共 有 サ ブ ライ ブ ラ リ とコー ド再 利 用 ・ 最 大 限 の 数値 精 度 の使 用 SSas 数値 の正確性 。倍 精 度 浮 動 小 数 点 演 算 0数 値 演 算 の た め の 効 率 的 な ア ル ゴ リズ ム を 慎 重 に 選 定 ―合理 的な 「正 しい桁数」 と「ほ とん どのマシ ン上での数値 の評価 の最大 定義域」を保証 一事前定義済み の正 確性 レベル を保証 で きな い場合、 「潜在的 に不 正確 な 結果」 ではな く「欠陥 のある結果」 を返す よ うに設計 。米 国 の NIST(国 立 標 準 技 術 研 究 所 )の デ ー タ を使 っ て 検 証 一様 々 な統計解析手法 に関する 認定済 み の値 "を 持 つ データセ ッ トを提 供 (NIST 2007) SSas 291

300.
[beta]
アナ リティクス ・ コンポーネ ン トの検証
・ 独立 した検 証 コー ドの記述
― PROCIMLや DATAス テ ッ プ、 手 計 算 で 実 施

。 SASの 他 の アル ゴ リズ ム にお け る類 似 結 果 との比 較 を 実 施
― 他 のプロシジャの同等 の出力 と比 較
。 シ ミ ュ レー シ ョ ン研 究 の 実 行
― 閉形式の解法が存在 しないとき
。公 表 され て い る結 果 に照 ら して検 証
・ オ ー プ ン ソー ス ・ ソ フ トウ ェア に対 す る比較
・ 一貫性 のチ ェック
ー パ ラメタ設定を別の方法で実現 して比較

SSas

検 証技法 の例
REGプ ロシジヤ/Neteら Wasserman and Kutner(1990)
data
inFut

Earthlr_coipaay;
lales
tsgctjoFulation

Su●

dieclctioaaly_incoac

0(5,‐

一
電一

■‐が囁
iilti.g
clolE;
ltf
fil.='zaltlar.rtf
',
!.fcct
dwA
dtstatl!:ics
Palaa.ielE3riEles;
fcE
da;a:za:rhs_c4uy;
Proc
ods output
NOB=lca_SflA
aitstati!tic!=!.9_titstaalsric!
9a!e.!G!E!tbatca=r69_P&&.t.!:etiEat.3
eodsl
s.t.r
discietiolaly_incoEe;
= .algctjopufati6h

"珈

目

ods
odr
ods

odg

ltf

│■ │,

e€;

] ].:.::
;

:r

, ::

:

i..:.

隕躍餞
│「 ,ltl

clo!!;

SSas

292

301.
[beta]
検証技法 の例
PROCIMLで 直 接 検 証
Fj rE,1.1r I td!:.r, !:3::
i,,!r.ry,

d!.-uctlx

-!:6Ii,t;

一こね ︒

EEA=tn'(x

■

Ⅲ

… …

■ ⅢⅢⅢ .̲●

¨¨ 。
や ,"│… ●

"

: I trat

/zs./ t.z.!j

*&t.t

tsr.xtr:_.'.*r.,;d:11*:r

縣 ウ
鰍 は

¨¨

.rr._rrlt.:(dfa/4jf.//4ft:

¨̲

‐
●
●●
●
‐̲
ⅢⅢ●

""■

壼:手
:■ ittiit:=::■

h

\r,/

│● │●

●‐
…

│●

……

●

… ・
t''・

[:E:::。 1:■ I::軍

=:・

trt lt_B.bj

検証技法 の例
PROC GLMと 比 較
●●● o●い ●● ¨ ¨ ,,ヽ ―
Ⅲ●ヽ― ,,Ⅲ ● ●●● ● Ⅲ
̲…
… …
^",■
̀,Ⅲ1● ● ●
Ⅲ●こ ● ■
●o● ̲ ●,…
"●

●ò● ,¨ ,● ● ‐

,

̀●

ユ笙 ,一
̀‐

│,●,

¨

●¨ 01
● ● ,, ●■‐
● Ⅲ
一
̀,● ̀‐
"● ● …′ ,,●̀ 1‐
●
●■‐ 4● ● ● ●●,̲
―
,

ヽ
‐
書
・
・
華
警
螢
番
鵞
̀●

'¨

".:・

:霊 :1:I:盟 ド
=:=喜

■サ

̀'│

轟い…
̀

SSas

293

302.

まとめ アナ リテ ィクスの活用 には、結 果 の信頼性 や説 明性 が必 要 SASは 組 織 ・ プ ロセ ス 。人材 か ら具 体 的な開発 手 法 まで、徹 底 して 品質 を意 識 して い る SASは (対 ossも 含 め て )オ ー プ ン な プラッ トフ ォ ーム SSas 294

303.

懇 SASデ ータセット 岸本 淳司 (九 州大学 ) SAS Dataset Junji Kishimoto Center for Clinical and Translational Research, Kyushu University Hospital 輸 要旨 : SASの 独自設計として、SASデ ータセットをハードディスク上に置くということが ある。そのため、少ないメモリで大きなデータを解析することができる。生データ を前処理するために、SASデ ータセットとDatastepの 組み合わせは今後も生き 残るであろう。 キー ワード:SAS Dataset,SAS Datastep,HDD,Memory 295

304.

裁 SASデ ータセット ・ SAS環 境 の 独 自性として、SASで はSASデ ータセットを使うと いうことが ある。 ・ SASデ ータセットは、ハードディスク(ま たはSSD)上 に置 かれ るSAS専 用 の バ イナリデータ。 ・ SAS解 析プロシジャはSASデ ータセットを対象 に動作する。 毅 メモリとハードディスク ・ メモ リは 、 一CPUが 直1妾 アクセスできる 一高速で、ランダムアクセスが得意 一大容量は難しく、バイト単価は高額 0ハ ードディスクは、 一CPUは 直 接 アクセスできないストレージ ー低速で、シーケンシヤルアクセスが 得意 一大容量が 容 易で、バ イト単 価 は安 価 296

305.

翁 轡 SASの 設計 思想 0通 常のシステムでは、モジュールか らモジュールヘと受け渡 しするデータはメモリ上に置く。 e SASで は、データセットをハードディスク上に置 くという独特な 設計 とした。 ータセット[by Anthony James Barr(1966)]。 一これ がSAS・ デー ・ SASデ ータセット用 のPL/1風 言語 Datastepを 用意した。 ・ 結果、少ないメモリで大きなデータが扱えるようになった。 動 必要 メモ リ 生データ 平 均・標 準 偏 差 線 形 モデル p p p 3 p N,Σ x,Σ x2 N 積 和行列 シーケンシヤル読み込 み でOK 297

306.

→ 巨 轟 議 ー の 大デ タ 取り 扱い 例 0複 数のデータベースを統合すると新 しい知見が得られる。 。そのため 、共通 :Dを キーとした 「名寄せ」 が行われる。 O SASユ ーザーにとつては簡単なMatch¨ Merge問 題。 一丁Bク ラスのデータに適用するのは、他システムでは難しい。 勤 まとめ O SASは 、少ないメモリで大きなデータを扱える。 ・ コンピュータの進歩により大きなメモリを扱えるようになった。 ・ しかし、対象データはもつと大きくなった。 ・ データ解析 には、解析前 の処理が 絶対必要 である。 ・ 事前処理 には、SASデ ータセットとDatastepが 現状お薦め。 ・ 前処理 が 終わつたデータは好きな処理系で解析すればよい。 298

307.

翁 メモリの秋葉原価格 (案 外安 い 1) 商 品画像 価格 ▲ ヱ 出荷 目安 △ ヱ スペック C型亘」こ:T2K■ 2G4DFD82壁」夏)R4PC4‐ 型」00 32GB巨 :壺 I饉 盤 お一人様4個まで 商品コード 0000472081‐ 168070 囲 腱 316プ (税 24時 間以内に出荷 ●容 量 :64GB(32GB氾 )● 規格 :DDR4‑ 2666● 速度 :PC4‐ 21300 Cor旦 重:≦ 墨」 唾≧ 全笙コ ix4コ 重 笙豊 ⊆ ≧1豊 ェ整壁量笙空墨璽 ュ̲塑 墜旦 笙姐墜 お一人様4個 まで 商品コード 0000478855‐ 173339 ̀曇 ̲̲」 」 L 34,980円 (税 込 ●容 量 :64GB(32GB2)● 規 格 :DDR4‐ 24時 間 以 内 に出荷 3200● 速度 :PC4‑25600● SPD:DDR4‑ 2133 ) 299

308.

‐ 筆 瘍鰺 2022年 9月 1日 隷 SASユ ーザ総会 2022@WEB SASの 統計教育 に関する問題解決 に向けて Toward solving the problem of statistics education in SAS 高橋 行雄 BioStat研 究所 (株 ) 霧 SASの 没落 2012年 にSASユ ー ザー会 の 世 話 人たちが 企 画 した「 SAS座 談 会・企 業大学連携 交流 会 」の その 後 はどうなつたのか ? 「SAS Instituteが 実践するアナ リティクス教 育活動」の成 果 は ? 各種 のフリーソフトが 興隆すると共にSASが 埋 没 し続 けている . そ して,統 計解 析 の 質も低 下 し続 けていると思うの は ,私 だけなのだ ろうか . SASが 普及 していれ ば ,統 計 解 析 の 質 の低 下 は 防 げたのだろうか ? 無償 で継続 的 に使 える OnDemand SASは ,日 本 でどれ だ け普 及 し ているのだろうか ? , 300

309.

動 SASに よる統計教育 ? ・「何 々による統 計 解 析 」と題する書 籍 が氾濫 している O Web上 で公 開 され て い るPDF版 の 書 籍 "も 散 見 す る . ・ それらは ,「 何 々のソフト使 い方 」であつて,統 計 解析 の学 習 には向いていない ・ 極度に定型化され ,SASの 出番 はない . . ・「 実 験 計 画 法 」の 書 籍 も数 多 く見 か ける ・ シグマによる定 式化が極度 にされている 0因 子が互いに直交 うSASの 出番 はない ・ ガラスの天 丼 が 張 り巡らされているがごとく,平 方和 の分解 にからめとれてしまつている . . . . 畿 SASの ]童 スト はイ 可か 0私 は ,最 小 2乗 平 均 に惚れ てか ら30年 以上 になる。 O SASの 多くのプ ロシジャにlsmeansス テー トメントが 含ま れ ている . 0他 の 統 計ソフトで ,見 か けた ことはない.SASの 方 言 の まま時が過ぎ去ってきた O SASの 行 列計 算 言 語 IMLを 愛 用 していたが ,追 加 契 . 約 (別 費用)が普 及 のネックであった 。 ・ 無償で継続的に使える OnDemand SASに IMLが 含まれてい ることは,大 歓迎である . 301

310.
[beta]
愧

故・大橋 氏 が SASに 惚れ た理 由
・ 第 3回 SASユ ー ザ ー 会 論 文 集 (1984)

0筆 者 (大 橋 氏 )は ,デ ー タ解 析 の 道 具 として プ ログラム・
パ ッケ ージ SASを 頻 用 して い る (使 用 頻 度 か らす れ ば 95%
が SAS,残 りをBMDPな ど).

O MATRIXの 豊 富 な演 算 機 能 を利 用 すれ ば ,Fo洗 ra nや PL/1
で作 譜 する場 合 の 1/5〜 1/50程 度 の 時 間 でプ ログラム 開
発 が 可能 となる

.

0デ ー タの検 索 や 層 別 変 換 な ど は ,SASの DATAス テップに

グラフ化 は PRIN丁 ,PLO丁 ,GPLOTな どのプ ロ
結 果 の作 表 ロ
シジャー にまか せ れ ば ,出 力 仕 様 に凝 る必 要 もな い
.

表示 2

動

大橋氏が作成したMATRXに
よる回帰診断のプログラム

MATRIXに ょるプ ログラム

ω

: ・ 嬌, =調 厚ご樹r̀・

表示 1 データ
OBS 10 X, X2 XS Y

Ю白 崚 廊
●
″お
わ■

2 コ ンお 鰺 B r に 4 応
Hr 8 73 3 時 に
4
1
︐
お yジ 7
詮刀 菱贅
Sヽ ヽ 9 ∞ 絆 お ヽ
42
4
9
2 2 お2 2 お 疇 膊 ′ β
︲¨ 鋤
2´
0
田
∞お 7
6

7
2ν

52 2
∞∞7
66

占譲 粗 :贅 :(・
:躍 :錨 ::編

書

:聟

躍 2,̲

露 :涯

1ク

::Ⅲ

D":謡
留留 1群 ;:

′
…

'お

ヨ 11詩

5f署 │::1毬

:Ntt
:町

'' 8●

OF!Tε R^T:¨

=:て 出釘匡

t wt RК

:

4●

旺∝〜

mTR:X:

[轟 │:騨

善麒 ::…
海 :瑾ヽ儀撫 鐸
翼撃lttisD,:
:曇

..

:電

:郡

な

1品 m…

へ:=論

G OF SImい ● T:…

IIil…

笏闊鑽り υ・′
m・

:繊 :れ

黒

302

,:し

「 ̀'=一

=:島

:

…

,,

,

311.

翁 Rの lsmeansパ ッケージの登 場 O SASユ ーザ ならば ,Lsmeansと して何 の 疑 いもなく使 つている 。SAS以 外 の 統 計 ソフトの ユ ーザ にとっては ,謎 め いた統 計量 として認 識 され ている . 0「 最 小 2乗 平 均 」は ,竹 内 ら(1989),「 統 計 学辞 典 」の 索 引 に い つてい も載 な SASの 方言 みたいなもの である . ・ 守屋 ら(2018)は ,Rの lsmeansパ ッケー ジの 紹 介 を している が ,Lsmeansの 謎 は解 き明かされていな い . 霧 守屋ら(2018)の 2因 子 共分散データ 因子 A,因 子 B,共 変量 χ,反 応 変数 y 平均 ― 一 Bl― ― ― ― B2‑― χ 一5 9 4 9 ︐9 974.3 420 382.5 303 χ ツ 360.0 980.0 392.0 978.0 372.0 972.0 374.1 976.7 0 b 9 2 3 3̀5。 7 9 8 3 390 330 390 ツ n ■ 一〇 7 ・0 3 410 430 0 4 3 ノ 4 A3 3 A2 χ m ・莉 A Al 930 1000 1000 978.8

312.

紗 lsmeansパ ッケージの必要性 (守 屋 ら) ・ 各要 因 の グル ープ (水 準 )内 のデー タ数 が 等 しい釣 り合 い 型 デ ー タ(balanced data)に 対 しては ,通 常 の 分 散 分 析法 が 適 用できる . 0デ ー タ数 が 等 しくな い 不 釣 り合 い 型 データ,共 変 量 を含 むケー スは ,最 小 2乗 分散分析法を用 いる必 要 がある e SASは 有 料 でしかも高価 で使 えなくなつた . . ・ 最 近 ,R環 境 においても lsmea∩ sパ ッケージが提 供 され たので ,SASの GLMプ ロシジャでの lsmeansと 比較 検 討 した結 果を報告する . 魏 守屋 ら(2018)の Rで の結果 lsmeansパ ッケージによる最 小 2乗 平 均 の 算 出例 FactorA lsmean SE Al:a 991.0573 A2:b 967.7775 A3:c 974.0657 4.441210 4.327225 4.198345 df lower.CL upper.CL .group 980.8159 957.7989 964.3843 1001.2988 977.7561 983.7472 12 守屋 ら (2018)の 表 3の 一部 を抜粋 論 文の表 3の 一 部 >cid(lsmA) h︼ C FI n SE df lower.Cl upper.Cl .group 967.777 4.327225 8957.7989 977̲7561 1 4.0657 4.198345 8964.3843 983.7472 12 a 4.441210 8980.81591001.2988 2 304 10

313.

動 繰り返しが不揃いの2元 配置データ ・ 平方 和 の分 解 による分散分析 が 行 えない . ・ 線 形 モ デル による解 析 が可 能 で ,GLMプ ロシジャにより30 年 以 上 前 から実用 化 している . ・ 他 の ソフトにな い 最 小 2乗 平 均 (lsmeans)が ,GLMプ ロシ ジヤの他 のソフトに無 い最大 の 強 み である . ・ GLMプ ロシジャの HTML出 力を Excelに 取 り込 み ,見 栄 えの 良 い グラフの 作 成 し,最 小 2乗 平 均 の 95%信 頼 区 間 を折れ 線 グラフで描 く . 11 鎧シ 繰 り返 し不揃 いで因子 が 直交 しない 10 13 14 12 ・ 15 15 14 16 18 13.0 平均 11 平均 22 19 21 18 20.0 14.33 A A 一〇 + 0ズ ¥ 14.5 17.0 15.57 自 A ′ ″′′ ル ´ ´ lll 16.13 ≠ 13.09 10880 108.80 ≠ 105.20 15.20 15.20 21.43 =≠ : │ 15.20 . Bl 珪8℃ ′ ´ ´ ´ ■六︶´0 15 B3 B2 Bl Al B2 B3 ・ 高橋 口 芳賀 (1989),SASに よる実験 大橋 口 データの解析 ,第 15章 ,図 表 15‑■ 12 305

314.

義詢 分散分析 表 より最 小2乗 平均の活用が大 切 西 16.55 13.00 1092 B3 2050 Bl 14.50 17.56 11.56 B2 0。 7806 2.08 0.9014 1.2748 0.9014 2.94 1508 2344 2.08 1744 2.94 19.94 22.44 2.94 2.94 T T 士 Fl 1150 B2 0.9014 1.80 ′ メ 千 洋上 TI´ TI A2 Bl 17.92 8.56 2.08 節 Al Al Al 革 予 十上 ′ T†■ B3 13.00 15.00 20.00 Ъ B2 ■1 Bl SE 0.6719 0.7360 T+1 1700 A2 幅 1.55 1.70 T IT 泄 13.45 却 15.00 T+4 95% A 1 l′ 1.2748 1.2748 1.2748 1.2748 IAl A21 1Al lA2 1 B2B31Bl B2 B31 │ IBl B2 B3陣 ・ GLMの HTML出 力 を Exce!に 出 力 し,幅 と S日の 計 B3 A2 2.94 算を行 い,線 グラフによる作図を行つている ・ 最小2乗 平均は,Excelの 行列計算で簡単 に計 算 できる . 13 水準 間 の 差 :Estimateス テートメン トの活用 0.00 ¬ 200 09965 201 00797 二五五 15 2.2980 4.30 ‐ 0.30 1。 .・ A2★ B2‑A2★ B1 A2★ B3‑A2オ B1 18028 499 00011 2.50 18028 500 18028 02029 00242 4.1572 4.84 13.16 4.1572 ‑1.66 4.1572 0.84 1′ I 上 900 000 ●1 9 ・7 Al'B3‐ Al・ Bl T卜/111 ・ レ オー T ゴ T井上 ご B2‐ Bl ・ ‐ 200 1 1924 168 01320 2.7497 ‐0.75 4,75 ・ ・ ‐ ・ 雷言 700' 1.2748 5̀49 00006 2.9396 4.06 9.94 5 1 『 000 +Al■ 醇 薄翻 1.50 15612 0.96 03648 3.6002 ‑2.10 5.10 T I I T 0.00‑ T I 〒= 1 IA2■ 1 L鵬 望 =憂墜 I I ︲十 月 ■ Pr> ラメー 1̀ 『 ,r・ rl 6.66 9.16 水準 間の差につい ては ,estimateス テー トメント が使 いやす いが ,GLMの 内部計算を熟知する必 要 が あり難解である IAl A21 1Al lA2 1 1 1BlB2B31BIB2B31BlB2B31 . 14 306

315.

朝 Rの 強 み と弱み ・ Rは ,行 列 が 扱 えるので,新 たな研 究 結 果をパ ーッケージ化 し,研 究 成 果 の公 表 に役立 つ .統 計 の研 究者 には適 している . ・ 故・大橋 氏が ,SASの Matrix(IML)に 惚 れ たと同じ理 由 . ・ 統 計 の入 門者 用 の Rコ マンダー ,医 療 統 計解 析 を組 み 込 んだ EZR もあるが ,企 業 内での統計教 育 でJMPに 換 えて使 う気 には全 くなら ない 。私 (高 橋 )も 付 き合 いで時 々Rを 使 うが ,SASの GLMプ ロシジャなど に比 べ ,機 能 が あまりにも貧 弱 ,複 数 の 関数を幾 つ も使 いこなす こ とに 自信 が 持 てない . . 45 咆 Pythonと の共 存 ・ P♯ honは ,プ ログラミング 言語 。多くの 統 計 関数 ,行 列 関数 が 備 わ つている . ・ 結果 が 正 しいかの保証 はどうしているのか ? 0ド キ ュメントが しつか りし,品 質 管 理 も行 わ れ ていて豊 富 な事例 が あるSASの 無料 公 開 のマニュアル に掲載 され て いる事例 と照合することにより,質 の 保証 になる ・ 行列計 算 による最小 2乗 平 均 の 算 出法の提 示が必要 ・ 明日,Excelに よる行列計算による最小2乗 平均の算出法を示 します . . 16 307

316.

鯰 新 たな統計の教科書の必要性 ・ データ・サイエンティストを目指す人達は,幾 つかのプロ グラミング言語をマスターすることが必須 ・ フリーのプログラミング言語 には,行 列計算のための関 数,さ らに重回帰分析など統計解析 のための 関数 が 含 まれている ・ 行列計算をベースにした統計の教科書 (入 門書 )は どこ にあるのだろうか.シ グマしかない ・例示:高 橋(2021),最 尤法によるポアソン回帰入門,第 13章 最小 2乗 平均の謎を予測プロファイルで解く ,421‑460,カ クワークス社 . . . 17 308

317.

無 統計理論 の 学習・教 育 について ○伊藤 陽一 (北 海道大学病院 医療・ヘルスサイエンス研究開発機構 データサイエンスセンター) Learning and teach:ng statistical theory YoichiM. lto Data Science Centel Institute of Health Science lnnovation for Medical Care, Hokkaido University Hospital 朝 データサイエンティストに求められるスキルセット 課題背景を理解 した上で、 ビジネス課題を整理 し、 解決する力 ビジネス カ (business problem eoMng) データ サイエ ンス カ 響 カ (data qngireering) (data science) 策報燿理、人工知 能、統計学などの 情報科学系の知恵 を理解 払 使うカ データサイエンスを 意味のある形に使える ようにし、実装、運用 できるよう1こ する力 スト協会:http:〃 www.datascientistor"ノ wp/newsノ 2014/pdf/1210.pdf) (デ ータサイエンティ 309

318.
[beta]
裁

データサイエンティストのスキルレベ ル (抜 粋)
̲―

データサイエンティスト協会が定
めたスキルレベル (2014年 12月 )
業界 を代 表 す るレベ ル
Senio「 Data Scienti式

│││

l;-**t.t->zn

棟梁レベル

{

・機械学習、自然言語 、画像処理

のアルゴリズムを理解し、適切│こ
活用、問題解決することができる。

50メ 、

コ
棟 梁 レベ ル 「

L

500人

独 り立 ちレベ ル 「憂
ヒ

5,000/\

(fu‖ )Data Scientist

・多変量解析の概念を理解し、活
用することができる。
.

Associate Data SCenti"

│‐

独 り立ちレベ ル

5万 人

見 習 い レベ ル
Assistant Data Scientist

50万 人
新入大学生
図 2 育成レベルと、毎年の育成目標人数

・モデルを構築できる。

・SPSSノ SAS/R等 が使える。指示
されなくてもサンプル抽 出ができる
とともに内容を確認できる。
・データクレンジング、分布、単回
帰 や P値 の概念を理 解し、活用す
ることができる(二 次 元の分析はで
きる)。

「ビッグデータの利活用に係る専門人材育成に向けた産学官懇談会」
報告書 (H27)

動

独 り立ちレベ ルの悩 み

。とりあえず、解析プログラムは動 かすことができて、出力は
得 られるけれど、そもそもこの解析 が適切な解析になって
いるか不安
・ 次 々と新 しい解析手法 が 出てくるけど、背景 にある理論 が
良く分 からない

310

319.

動 SASの マニュアルはとても優 秀 0ト ピックごとに整理されていて、目的のプロシジャに容易に 辿 り着ける 。各 プロシジャに、Exampleが 用意されていて、自分のデータ と類似 したデータの解析例 と解釈を確認 できる ・ 平易な英語で記載されている(用 いることができる単語 が限 定されている) 霧 プロシジャ横 断的ガイド ,ntroducl on to Stalistical Modeling with SAS/STAT Software 統計 的モデリング lntroduction to Regaession Procedures 回帰分 析 lrtroductior to Analysis of Vaiance Pr@edures 分散分 析 lnt.oduction to Mixed Modeling Procedures 混合効 果 モデル Inlroductior to Causal Analysis Procedures lntroduction lo Bayesian Analysis Procedures 因果分析 ベイズ解 析 lntroductioa to Categoriml Data Analysis Procedu.es カテゴリカルデータ解析 lntroduction to Multivariate Procedures 多変量 解析 lntroduction to Discnmlnant Procedures 判別分 析 lntroductron to Clusteilng Procedures クラスター分析 lntroduction to Sering, Saandardization, and Ranking Procedures スコアリング 、標準化、順序付 け lntroduclion lo Survival Aralysis P.@dures 生存 時 間分析 lntroduction to Survey Sampling and Analysis Procedures 標本調 査 The Four Types ot Estimable Funclions 4種 の 推定関数 lntroduction to Nonparametric Analysis ノンパラメトリック解析 lntroducl.on to Structural Equation Modeling with Latent Variables 構造方程 式モデリング 検出力・サンプルサイズ設計 Introduction to Power and Sample Size Anaiysis 311

320.
[beta]
動

Example 11.2 Newton's Method for Solving Nonlinear
Systems of Equations
Mew the @mplete code for this example.)

SAS/1:V:L15.2 User's GIむ ide

ざ│訛題‐

This example solves a nonlinear system of equations by Newlon's method. Let the nonlinear
system be represe.ted by

F(X)=0
where x :s a vector and F is a vectotrvalued nonlinear tunction.
Newlon's method is an iterative technique. The method starts with an initial estimate x0 of the
root. The estjmate is reflned iteratively in an atlempt to and a r@t oJ F. civen an estimate

&,

the next estimate is given by

xi+r:x. -J r(&)r(x")
where J(x) is tle Lambian matrix of partial derivatives of F with respect lo x. (For more
efiicient computations, use the buihin NLPNRA subroutine.)
For optimization problems, the same method is used, where -F(x) is the gEdient of the
ob.iective tunction and J(x) be@mes the Hssian (Newton-Raphson).
ln this example, the system to be solved is

x1*x2-x1x2*2:0
x1 exp(_x2)

r

新

餓 い1● │● ,お ●
"

https://documentation.sas.com/doc/en/imlug/15.2/imlug_genstatexpls_sect004.htrn

_ 1=0

●●た00

│●

山

o■

",● …

出日 N=ヽ VOヽ .=ON.,,̀0=RⅣ
̀

Xefton's Hethod to Solve a Nonlinear Fun.tfcn
/'
*/
/* The us€r sust supply initial values,
/* and the aUX and DER]V functi..s.
/+ On entry: FUN eval.uates the frnction f in terms of x
/' initial values a.e siven to x
/* DERIV evaluates ls.obian l
/' Tuning peranete.s: cowERGE, MxITtR.
{/
/* on exiti .eturn x such that FUN(X) is close to g
proc iml;
/" User-supplied fun.tion evaluation */
start run(x);
x1 = x[1]; \2 - \12);
/* extract components */
f1=x1+x2-x1ax2+2j
*2 = x1"exp(-x2) 1i
re1.utn{ 5r /l f2 );
firish Funj
/- User-supplied le.ivtstives of the fun.tion'l
start De.iv(x);
x1 - xlllj
x2 - xl2lj
df1dxl = 1 x?;
dfldxz=1-x:j
i+r/.r = o!^, -,r\.
dl2dxz=.xt
'exp(-x2)i
I = (df1dx1 1, afld\2 ) |
laf2dxl ll df2dxz );
r€tu.n( I );
11 lacciian matril

312

関数の窯義

関数め微分あ壼蒻

321.
[beta]
動

/* fmplementation of Newton's method with default anguments */
./
/* 3y default, maximuil j.terations (maxiter) j.s 25
*/
conv€rgence critenj.or (converge) is 1e-6
/+
sta.t NeHtonMethod(xo, maxfter=25, converge=le-5);
x = xaj

f = Fun(x);

/* evaluate function at starting values "/
/* iterate until maxiter */
while(max(abs(f))>corverge); ,/* or convergerce */
I = De.iv(x);
/* evaluate denivatives t/
delta = -solve(1, f);
/* solve fon correction vector */
x = x + delta;
/* the new appnoximati.on */
f = fun(x);
/* evaluate the function */

do iter = 1 to maxiter

Nё Wion法 によって '
嬌
新 しい推 定値を計 算

end;

/* neturn missing if no convengence */
if iter > m3xlter then
x = j(nrq(xe),ncol(xa),.);
return( x );

finish NewtonMethodi

print "Solve the system: X7+X2-X7*X2i2=O, X1*EXP(-X2)-1=9"
xa = {.1, -2}i
,/* starting values */
x = NewtonMethod(x0).i

,;

推 定結 果を出 力

f = Fun(x);
print x f;

翻

0

rp″

=了

7.2.奮 Ⅳeẁoat″ et力 odf Res″ ′
ts

Xl'X2● 2つ .X'tく P← ル ト1=0 1
S¨ e the SyS■ m̲X● 炒 ‐

¬

00077731

505238‐ 0 1

出力の説 明と
解説 .覇
The results are shown in output 1 1 .2.1 . Notice that the NEWTONMETHOD function was
called with only a single argument, which causes the module to use the default number of
iterations and the default convergence criterion. To change those parameler values, call lhe
module with addilional arguments, as lollows:

x = NelrtonMethod(xO, 15, 0.001);

●
313

322.
[beta]
―‐
‐
sAS/S・ 3へ丁User'S lё Li6さ :Mixさ 鑽P,る ceduЮ

, DetailJ

Formulaton ofthe rttixed Model

The p.evious gene.al linear model is cetuinly a useful one (Searle 1971 ), and it is tu one fifred by the cLM poedure. Howevei many tim6
the d:strjbutional assumption about € is t@ reshdive. The mixed model enends the general linea, model by allowang a more flexible
speciliation othe @variance ma$ix or€- ln other words, I allows for both @relatioa and heterogeneous varian@s, allhough you still assume
nomality.

■ 01…皓
暗

Ⅲ

The frixed model is writen as

Ò"●
0,中●●■

…

混合効 果モデルの定義

y:xp+21+e
│

where eveMhing is the *me as i. the general linear model exept ior the addilion otthe known desagn mafix. Z, and lhe vedor of unknoM
random+ffe* parametere. "7. The matrjx Z €n conbin either @ntinuous or dummy vailables. just like X- The name mrxed model6mes
from lhe tad thal the model @nlains both fixed+ffets parameters, p, and random-effecb parameters. ?. See Henderson (1990) and Searle,

●

="●=̀

Casella, and Mcculloch (1992) for hislorical developments offre mixed model

γ
c

変 効果に関する仮定

O

γ

││1量

R

こ

V"

呵l
oG o

A key assumpllon in the foregoing analysis is lhatTand € are nomally disbibuted with

The vanan@ ofy is, lherefore, .lr

: ZGZ| + R You 6n model V by sefi'ng up lhe.andom+ffects design makix Z and by specitying

@varian@ slructures for G and rL.

幡
端
耐■■
"

"

't"`

. Examples

Nole that this is a general speifetion ofthe mixd mdel, in contrast to manytexts and africles that discuss only s,mple Gndom effects.
Simple €ndom effecb a.e a sPecial €se ofthe general specifacation with Z conajning dummy variables, G contai.ing variane @mponenls in
a diagonal slruclure. and
where
denotes ihe n x n identity mafix. The geneEl linear model s a fudher special €se w,th

Z:

0 and R :

lI,.

R : I L,

I.

https://documentation.sas.@m/doc4a/pgmsascdcr'v_O3o/statug/statug_mixed_detailsol.htm

SAS/STAr user.s CutOe

spllt-Plot obsigrrr

Exampie 84.l Split‐ P:ot Design

Repeared
Measures

Ⅳ W he COmplete COde f。 「tttS eXample)

Plotaing

:。

the

‐
分割実欧ρり
「

0(>

Likelihood

PROC MIXED can fil a variely of mixed models. One of the most common mixed models is the spl,t-plot design. Ttle

Known G and R

split-plot design involves two experimental factors, n and E. Levels ofA are randomly assigned to whole plots (main

Random

plots), and levels of B are randomly assigned to sp:it plots (subplots) within each whole plot. The design provides

Coetlicien$

more precBe information about I than about ,4, and it often arises when A can be applied only to large experimenlal

Line-Source

Sprirkler lrtigation

units. An example is where A represents irrigation levels tor large plots of land and B represents difierent crop
varieties planted in each large plot.

lnfluence in
Heterogeneous
variance Model

Consider th3 following data irom Stroup (1 989a), which arise from a balanc€d split-plot design with the whote plots

lofluence Analysis

arranged in a randomized complele-block design. The variable A is the whole-plol factor, and the variable B is the

,orRepeated

subp'ot faclor. A traditional analysis of these data involves the constuction of the whole-plot error (/*Bt ock) to tesi,4

Measur€s Data

and the pooled residual error (B-Bl ock and A.B.81ock) to test and 4.8. To carry ou1 this analysis with PROC GLM,
you must use a TEST statement to obla,n the correcl F test for,4.

Examining
lndividual Iest
Components

I

lor Ordered Mean

Perfoming a mixed model analysls with PROC MIXED eliminates the need for lhe enor term construction. PROC
MIXED estimates variance components fot BLock, A'Block, and the residual, and it automatically incorporates the

Values

conect eror terms into test statistics.

lsotonlc Contrasts

Reterences

lhe MODECLUS

Ths following statements create a DATA set Jor a splifplot design with four blocks, three whole-plot levels, and two

Procedure

subplot levels:

314

323.
[beta]
毅
, Examples

Spfia-49t Desitn.
Repeated

Mixed Pro∝ duЮ による解析プログラム
SAS/STAT user.s Cuide

Mea$res

proc mixed;
class A B Elock;

Plonlng the
Llkelihood

modelY=ABA*8;

Known G and R

random Block A*BLqck;

Random

rln:

Coetlicients
Line-Source
Spriokler ,rrigation
lnfluence in
Heterogeneous
variaoce Model
tntluence Analysis
for Repealed
Measures Data
Examining
Components
lsolonic ContEsts
for Ordered Meen
Values
References

○ 〇

The following stalements fit the split-plol model assuming random block effels:

The variables A, 8, and 8lo.k are listed as classification variables in the CLASS statement. The mlumns of model matrix

X consisl of indiEttrvariables coresponding to the levels of the flxed efiects I, I, and 4'8 llsted on lhe riqht side of &e
i,4ODEL statement. The dependent variable f is listed on the left side of the i,,lODEL statement.
The mlumns of the model matrix Z onsist of indicator vailables orresponding to the levels of the Endom efiects Etock
and I'8 lock. The G matrix is diagonal and @ntains the vaaane @mlonents of

The SAS statements produce Figure 1 g-Figure ?6The "Model lnfomalion" iable in Figure 19 lists basic information aboul the split-plot model. REML is used to estimate the
variance mmponents, and the residual variance is profiled lrom the optimization.

OO

SAS/STAT User s 6uide

E!ampb
sdh-Prot Daign
aepeatd

I I ock and A'BLock. The It matrix is

also diagonal and mnlains the residual variane.

Finally. lhe fixed efects are lesled by using Type 3 eslimable tunctions (Flgure 26).

Pbnhg th

Figurc 26: Split,Qlot Analysis (ccntirued)

Llkelhod

の撮示
準定軋‐
1界

Coeficle.ts
Uae-Source

sgffiler lrigation

hllEnce AnalFis
●1,│■ ■

"

components
lsotonic Contrasrs
for odered M66

. The MODECLUS
' ThE MULTEST
' The NESTED Procedure
r Tfu NLIN PI@edUre

' The NIMIXED Pr@edure

The tesls match the one obtained tom lhe following PROC GLM stabments:

pro.910 data=sp;
.lass A B Block;

n.t.l Y = A 8 A*B Block A*BLock;
test h:A e:A*Block;
run;
You 6n continue this analysis by prcduciag solutions

CLM Procedureと の比塵
交
・違いを学ぶことで、より
深い理解を得ることが■
できる

iorlhe llxed and random effects and ttEn tsling vadous linear @mbinations ofthem by
sbtements. lfyou use the same CONTRASTahd ESTIMAIE slalementswith PROC GLM. the test
stalistiG @respond to the fixed+ffects{nly model. The test sblislics from PROC MIXED in@rpo€le the random effectsusing the CONTRAST and ESTII\4ATE

315

324.
[beta]
Books
F6. more in'depth in{orm.tion, re.d books witon

bySA expens.

田 塚 閂
コ●
‐,^‐ い

Anaい ヽo(Clinl● 豪

"als

…

Ge.€ralLed Lh€a.anC

︲
一
一
m
一
一一一一

朝

さらに詳 しい解説 は 、ユ ーザーが 教科書を出 している

trliple Comp..]-..rnd
Muhiple TesE Uring hS

GrdaEd O,la,tu.9a.d
ADpliGtons Using 5A:

簿
職選

SA5{o.Mixd Mod€lsl

5AS::r!ni6

advan.ed CDS Gr.phB

by Example

316

325.

朝 2022/9/1 SASと OSSの 新 しい時代 の 幕開け 小野 潔 株式会社 lNTEC ‐ 鞣02el轡 pS 贄 レスド ﹂に9 α6 耀54SFy攀 MoDEL 検柾 主 上 二 ■二三 二 :II三 二三 二 三 二 三三 二三 二 三 二 三 二 三 二三 二 三 二 三 十 317 1

326.

懇 wttytS‐ ‐ ASPy? Typical Workflow with both SAS and non-SAS dala S.Sas豊 些叫 New woddow using SASPy ∝ ′トハ SAS Dltaset L ぬ )│∝^ハ ′ SAS Dataset ED、 リ Stua&md*Ue lmpd 0口 tpェ da惨 c.ed€/Expon │‐ ‐ ̲│(嬢 │I CSV〕 饂 ‐驚 ‐ │││││││││││││‐ │‐ Conve.t │ 赳 緻躍 鍼鰺 P pgthOn" =― ‐ = Coaved ‐ ̲ ・ F pgthon Crcale I ̲・ ― ・ ̀ SASと OSSの 新 時代 ′ペ pyter ・ノ 狭 Jじ "ノ ・ '1̲̲.′ 318 ・ lK えSASPv 巌 …… り 謗 「 s a Fl 綺On IL 冬 鸞Sas・ 渉 pり l F二 ヽ (3:Je・ ikinS

327.

SAS Python Paё kages 翁 Frp;,lriiiirr s菫 3optPy DtPソ / 口L lは ‖〕 =,V 1国□ 目│ + │ ・ 3● 驚 藝病薦 =驚:む d3 ̲ ESPPy │ :飩 構 薇 巡軋 瓢墓碕 n‐ ‐ │‐眩浴笙咆 ‐ 鑢 .:│‐ 朝 i聖 生 事例isASPレ の必壕″ ‖ 不均衡データの分析法,無 数 ・ ″代表手 ,実SMOTE tも 種類 蹴麒 鐘鶯 SAS SCORE CARD sASPyの 利用 珈in&Winの 関 係 1漏 .=颯 ラは 濠 必 ││1粧 │││1響 §魯Sと OSS かなつ ・ 319 │‐

328.

義 ・■ ― 饉 . WhattDate SbidntTSt(:)Rea‖ y Think? 甍 WH 超 BIC Data CV ・ a W 最先端のレコ メンドモデル .蒻 ̀ Data Transfer Q Jё ry繁 Machine Learning ‐ ‐ どヽ ar Gooqle Cloud 10T BiBQuery ‐ Weektti壕 田■日曰 トデータ ?苺 臨et■ 申516螢 ti6n‐ 320

330.

主催 :SASユ ーザ ー会 世話人会 世 話 人 伊藤 陽一 (氏 名 50音 順) 上村 鋼平 北海道大学病院 医療・ ヘルスサイエンス研究開発機構 データサイエンスセンター センター長 教授 東京大学 大学院情報学環 。生物統計情報学講座 准教授 魚住 龍史 京都大学 医学統計生物情報学 講師 小野 潔 株式会社 インテック 先端技術研究所 九州大学 ARO次 世代医療センター 副センター長 岸本 淳司 堺 伸也 イー ピーエス株式会社 リアル ワール ドエビデンス事業本部 本部長 坂巻 英一 坂巻総合研究所 代表 周防 節雄 菅波 秀規 兵庫県立大学 名誉教授 興和株式会社 データサイエンスセンター 高橋 行雄 B10Stat研 究所株式会社 代表取締役 野原 賢一 林 行和 元 独立行政法人統計センター エイツーヘ ルスケア株式会社 宮内 亨 独立行政法人 統計 センター センター長 ビジネス・ ディベロップメン ト本部 本部長 (掲 載 50音 順 ) 協賛 イー ピーエス株式会社 エイツーヘルスケア株式会社 JMPジ ャバン事業部 コム スタ ッ ト 株式会社 株式会社タクミイ ンフォメーシ ョンテクノロジー SAS hstitute」 apan株 式会社 協力 SAS:nstitute Japan株 式会社 SASユ ーザー総会事務局 〒 101‑0061 東京都 千代田区神 田三 崎 町 3‑2‑15 0RIENT BLD SAS 0 ′﹄ n′ 一 n= u O ′﹄ ユ ザー総会 「 論文集 2022年 9月 30日 初版第 1刷 発行 発行 :SASユ ーザー会 SAS lnstitute Japan株 式会社