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

>100 Views

April 21, 25

スライド概要

SASシステムと他言語ルーチンの利用について 鈴木一彦
ダイナミックな製造環境におけるSAS/SHAREプロ ダクトの利用 Hans Nagle
Windows版SASとMicrosoft Excelの間でのデータ セット入出力を自動化するマクロの作成 三島徳雄
JMP3.0による生存分析 ~AppleScriptの応用~ 陶山昭彦
Base SASでここまで出来るレポート作成 ~PROC PRINT,PROC TABULATEの出力を罫線表にする 方法~ 内田浩伸
SASデータセット管理プログラム 周防節雄
経営情報におけるSASシステムの利用 ~Data Warehouseによる戦略経営~ 青柳恭弘
使っていますSASシステム 田代勇一
INTERNET & SAS 竹内敬治
SAS/EISのビジネスオブジェクトの紹介 羽田野実
Windows版SASシステムを利用した統計入門ソフ トウェアの試作 赤澤利夫
カスタムクラスライブラリ 佐藤耕一
債権管理システムの構築 岸田一浩
株式収益率の企業業績指への反応の非線形性 中林三平
株式オプションの評価 円城寺佳子
SASシステム新機能関連 竹中京子
Macintosh版SASシステム 谷川隆一
SAS/SHARE*NETソフトウェアについて 佐藤元昭
Windows版SASシステム リリース6.10のGUIアプリ ケーションに関する拡張点 石井由美子
SAS/AFソフトウェア,SAS/FSPソフトウェアでイ メージデータを利用する 長谷川浩司
SAS/GRAPH GMAPプロシジャを用いたデザイン の作成 山下敏治
SAS/GRAPHのDSGI機能はSCLでもご利用いた だけます 石川亨
SQL Query Windowの紹介 今城義高
Windows版SAS ODBCドライバの紹介 細川忍
SASシステムとDB2:SAS/ASSISTソフトウェアの新 機能 前田幸一
SASによるメタアナリシス 浜田知久馬
モンテカルロ・シミュレーションによる例数設計 高橋行雄
医薬品副作用情報管理システムALIS 安藤永一
SASシステムによる乳児期のアトピー性疾患発症 予測について 高橋幸一
患者より見た病院サービス評価の曜日間変動 田久浩志
記述疫学でのGMAPプロシジャのマップ作成と Base SASソフトの適用 青野裕士
SASシステムを用いた症例対照研究 ~急性心筋 高速の責任冠動脈と喫煙との関連~ 斎藤功
UNIX版SASシステムによるOutput Editing Program (OEP) 山縣清壮
研究会解析 (Key Open) におけるSASとExcelの利用例 小沢義人
解析帳作成支援システム 望月久永
経時データの回帰係数 (傾き) をendpointとした解析 植松弓美子
利用者自身によるデータ活用のためのSAS教育の展開 八木章
JMPを用いた視覚的な多変量解析紹介 川本均
SASによる非線形回帰分析 岸本淳司
数量化理論アプリケーションの開発 谷川俊彦
マーケティング・パッケージ 西田素子
マーケティング情報のビジュアル化テクニック ~ PLOTITマクロの紹介~ Warren Kuhfeld
視聴率高位番組と年層の関係を探る 飯塚壽子
数量化理論Ⅱ類サンプルプログラムの改良とそ の適用 有馬昌宏
マクロ言語を用いたアンケートデータの分析 福井誠
医薬シンポジウム,臨床試験データの解析とSAS 大橋靖雄
医薬シンポジウム,経時データ解析の事例紹介 ~副甲状腺機能亢進症に対する用量設定試験~ 井村伊久子
医薬シンポジウム,臨床試験データ解析の事例紹介 ~腎移植における免疫抑制剤の第相比較試 験~ 里井洋一
医薬シンポジウム,解析プログラムの開発,検証 仮定 ~ある臨床試験データ解析システムの例~ 持田製薬
品質管理シンポジウム,品質管理データベースと SASによる解析 新製品開発とSASシステム 芳賀敏郎
製造現場における品質管理データベース化 入倉則夫
SASを使って品質管理業務を如何に改善するか 早川豊
商品企画七つ道具による新商品開発 神田範明
商品開発の為の市場調査のポイント ~既存商品 の市場調査を中心に~ 高島邦彰

profile-image

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

シェア

またはPlayer版

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

ダウンロード

関連スライド

各ページのテキスト
1.

日本 SAS ユーザー会論文集 1 9 9 5 年 5月1 8日〈木〉・ 1 9日〈金〉 S U G I ‑ J ' 9 5

2.

目次 〔システム〕 SASシステムと{也言語ルーチンの利用について・・・・・・・・・鈴木 ダイナミックな製造環境における・・・・・・・・・ー・・・ 彦 ・ ・ ・ ・ HansNagle SAS/SHAREプロダクトの利用 株式会社 SASイ , ) 7 . . ' J { 7 J卜 / y } ¥ " ' )・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 1 BlueDanubeComputerSystemI n c . ー ー 7 JamesRobertson JunSasaki 徳雄 産業医科大学・・・・・ ・ ・ ・ ・ ・ ・ ・ ・・ ・ ・ ・ 15 JMP3.0による生惇分析 ‑AppleScriptの応用ー・・・・・・・・・陶山 昭彦 鳥取大学・・・・・・・・・・ ・ ・ ・ ・ ・ ・ ・・ ・ ・ ・ ・ .25 BaseSASで、ここまで出来るレポート作成・・・・・・・・・・内田 浩伸 日本シ工ーソング株式会社 ...............33 ・・・・・・周防 節$ 1 1 御戸商科大学 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 7 経営情報における SASシステムの利用・・・・・・・・・・・・・・・青柳 恭弘 株式会社 SASイ, ) 7 . . ' J { ' } J‑卜:ly}O.... ・・・・ 63 勇一 株式会社 SASイ ' ) 7 . . ' J { 7 J卜 V 'y } ¥ "' ) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 77 Windows版 SASと MicrosoftExcelの聞での‑・・・・・・・・三島 データセット入出力を自動化するマクロの作成 一PROCPRINT 、PROCTABULATEの出力を罫線表にする方法一 SASデータセット管理プログラム., •.• •.•.••• DataWarehouseによる戦略経自ー 使っています SASシステム・・・・・・・・・・ー・・・・ ・ ・ ・ ・ ・ ..田代 加藤圭子 阿部悦子 INTERNET& SAS . . . . . . . . ー ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ...竹内 敏治 株式会紅三菱総合研究所....•.•• ・・・・ 83 SAS/EIS のビジネス Zフジエクトの紹介・・・・・・・・・・・・羽田野 実 株式会社 SASイ ン 7 . . ' 7{ 7 J ‑ 卜γ y } ¥ " ' ) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 87 Windows版 SASシステムを利用レた ・・・・・・・・・・・・・・・赤津 利夫 岡山日本電気ソフトウ工ア株式会社・・・・・・・ 95 統計入門ソフトウ工アの試作 古谷俊問 井よ恭子

3.

カスタムクラスライブラ') ...................・・・・・佐藤 耕一 ネイチャーインワイト株式会社・・・・・・・・ 105 松井輔 〔金融〕 債権管理システムの惰築・・・・・・・・・・・・・・・・・・・・・・・・・・・・岸田 一浩 抹式会社アルコ ........................135 株式収益率の企業業績指標への反応の非線形性・・・・・ 三平 株式会社金融エンジニアソンググループ・ 141 株式ニヲプションの評価・・・・・・・・・・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・中林 佳子 円減寺 総式会社 SASン イA 7ィ7 1ー トYャJO・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 145 (SASシステム新機能〕 京子 総式会社 SAS1JA7ィ7 1 トγャ J ¥ ・J . . . .ー ー ・ ・ ・ 159 Macintosh版 SASシステム ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・・・・・・谷川│ 隆一 A 7ィ7 1 ‑ト γャJ ¥ ・y ・ ・ ・ ・ ・ ・ ・ ・ 165 株式会社 SASイJ SAS/SHARE宵 NETソフトウェアについて........... ー佐蕗 A 7 f 7 1‑ トYャ JO..........177 株式会社 SASイJ UNIX版 SASシステムリソース 6.10の新機能・・・・・・・・・竹中 元昭 石)11 亨 Windows版 SASシステムリソース 6.10の...........石井 由美子 株式会社 SAS1JA7ィわトYャJO ・・・・・・・ 181 浩司 総式会社 SASイJ A 7ィ7 1 ‑ト YャJO...ー ・ ・ ・ ・ 185 GUI アプリケーションに関する砿張点 SAS/AFソフトウ工ア、 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・長谷川 SAS/FSPソフトウェアでイメージデータを利用する 〔グラフ〕 SAS/GRAPHGMAPプロシジャを用いだ..............山下 デザインの作成 日本ルセル株式会社......• ・・ ・ ・ ・ ・ ・ ・199 宮里盛幸 SAS/GRAPHの DSGI機能は・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・・・・・石川 SCLでちご利用い疋だけます 敏治 亨 トYャJ I ' J..........209 株式会社 SASイJA7f71‑

4.

〔データベース〕 SQLQueryWindowの紹介・・・・・ . . ..................今 l 成 義高 株 式 会 社 SAS イ 双 子 ィ ' f J ‑ 卜1 /' 11 ¥ ', ). .........215 Windows版 SASOOBCドライパの紹介 株 式 会 社 SAS イ, )k j { ' h ‑卜1 /' 11 ¥ . ' ) . . . . . . . . . .223 ・ . .........細)11 忍 幸 株 式 会 社 SAS イ' ) A 7 { ' hト ヲ ' ' 11 ¥ ', ) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 235 . .....・・・・・・・・浜田 SASによるメタアナソシス........... 知久馬 東京大学 . .............................241 モンテカル口・シミュレーションによる例室長設計・・・・・ 高橋 行経 日本口シユ株式会社・・・・・・・・・・・・・・・・・・・・ 255 医 薬 晶 副 作 用 情 報 管i 里システム r AL lSJ ...............安蘇 永一 日本ルセル株式会社・・ーー・ー・・ー・・・・・・ 263 SASシステムと OB2:・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・・・・・・・・・・前田 SAS/ASSISTソ フ ト ウ ェ ア の 新 機 能 〔医薬〕 山橋愛子 SASシステムによる手L 男期の・・・・・・・・・・・・・・・・ ・ ・ ・・・・・高橋 アトピー性疾患発症予測について 幸一 森永事L 業株式会社・・ー・・・・ー ・ ・ ・ ・ ・ ー ・ ・ ・ ・ 275 早津宏紀 冨田守 白鷹 i 営男 北里大学 宮原英天 患者より見た病院サービス評価の曜日間愛動......・・・・田久 E , ロ t山 、 " " こ 士 東邦大学・・・・・ー・・・ .......... ー ー ・ ・ ー ー ・ ー 279 記 述 疫 学 で の GMAPプロシジャのマップ作成と・ー・・・・・・青野 裕士 大分医科大学・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ー . ..........289 BaseSASソ フ ト の 適 用 小津秀樹 斎藤明 SASシステムを用いた症例刻照研究・・・・・・・・・・・・ ・・・・・斎藤 羽 一急性 Is¥筋硬塞の責任冠動脈と喫煙との関連 大分医科大学・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ . ............293 青野硲士 小津秀樹 UNIX版 SASシステムによる・・ー・・・・ーー ・ ー ・ ・ ・ ・ ・ ー ・ ・・山県富 OutputE d i t i n gProgram(OEP) j 青H 士 呉羽化学工業株式会社・・・・・ ー ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ー 297

5.

研究至宝解析 (KeyOpen)における SASと Excelの利用例・小沢 義人 日本化薬株式会社ー・・・・・・・・・・・ ー ・ ・ ....301 吉田彰夫 解析帳票作成支媛システム ..• , . .•.•.• •.•.•.• ........望月 経時データの回帰係鍛(傾き〉を endpointとレた解析・・恒松 久永 富士ゼロックス株式会社・・・・・・・ ........305 弓美子 日本ロシユ株式会社....•.• • • •...• • • ...311 章 株式会社竹中工務12J.• • ..• • • ..• • • • .. ・ ・ ・ 317 〔教警〕 利用者自主喜によるデータ活用のための SAS教育の展開・・八木 高橋 耳目子 t 句 野口病院・・・・・・・・・・・・・・・・・・・・・・・・・・ ・ ・ ・ 327 淳司 株式会社 SAS1)]jィ ] ] ‑ トγ1 '1 ¥.')..........337 谷川│ 俊彦 岡山日本電気ソフトウェア株式会社・・・・ 353 JMPを用いた視覚的な多変量解析紹介 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・川[~ 〔統計理論〕 SASによる非線形回帰分析 .• ,....ー・・・・・・・・・・ー・・・・・・・岸本 獄量化理論アブソケーションの開発...•.•.•.•...•.•• 岩谷きよみ 野宮 日 息 子 マーケテインク‑パッケージ.....•.•..•.•.• •.•.•• .....西田 素子 〔調査・マーケティング〕 株式会社日経リサーチ・・ー・・・・・・・・・・・ ・ ・ 363 竹田みや子 鈴木督久 マ ケテインク情報のビジュアル化テクニックー・ ・ ・ ・ WarrenKuhfeld SASI n s t i t u t eI n c .・ ・ ・ ・ ・ ・ ・ ・ ・ ー ・ ・ ・ ー ・....373 ‑PLOTITマクロの紹介ー 視臆率高位番組と年層の関係を探る......•.• ・・・・・・・飯l 家 喜子 鍛量化理論日類サンプルプログラムの改良とその適用・・・有馬 マクロ言語を用いたアンケートデータの分析'.••.•••• 福井 NHK放送文化研究所・・・ ー ・ ・ ・ ・ ・ ・ ・ ・ ・ ‑ ー ・ 395 昌宏 ネ申戸商科大学....... 誠 富山女子短期大学 ー .............403 ....................405

6.

〔医薬シンポジウム〕 錆雌 東京太学・・・・・・・・・・・・・・・・・・・ー・ .......409 伊久子 東京太学・・・・・・・・・ ・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ー ・ ・ ・ ・ ・ 410 洋 藤沢薬昂工業株式念社・・・・・・・・・・・・・ ー ...411 光一 J 雪国製薬株式会社・・ ・・ ・ ・ ・ ー ・ ・ ・ ・ ・ ・ ..412 敏郎 東京理科太学・・・・・・・・・・・・・・・・・・・・・ ....414 製造現湯における品質管理データベース化・・・・・・・・・・・入倉 則夫 日本電装株式含社ー・...................415 S A Sを使って晶質管理業務を如何に改善するか・・・・・早川 豊 目立超 LSIエンジ二アソング株式会社..417 「商昂企画七つ道具」による新商品開発・・・・・・・・・・・ー・仰田 範明 成成太学・・・・・・・・・・・・・・ ・ ・ ・ ・ ・ ・ ー ・ ・ ・ . .418 商品開発の為の市場調査のポイント・・・・・・・・・・・・・・・・・・・高島 邦彰 いす>.'自動車株式会社 . .ー ・ ・ ・ ・・ ・ ・ ・ ・ .421 臨床試験データの解析と S A S . . . . . . . . . . . . . . . . . . . . . 太褐 経時データ解析の事例紹介・・・・・・・・・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・・・井桁 一副甲状腺機能汽進症に対する用量設定試験 臨床試験データ解析の事例紹介・・・・・ ・・・・・・・・・・・・・・・・・室井 一腎移慢における免疫抑制剤の第 1 1 1相比較詰駿一 解析プログラムの開発、複証仮定・・・・・・・・・・・・・・・・・・・・・舟喜 l j nー 一ある臨床訊験データ解析システムの i 〔品質管理シンポジウム〕 品質管理データベースと S A Sによる解析・・・・・・・・・・・・芳賀 新製品開発と S A Sシステム 一既奇商昂の市 1 易調査を中山にー

7.

口頭議文発表チ工アマン 〔システム〕 〔金融〕 株式会社竹中工務庖 八木 耳 ヨ 己 = 豆ュ 株式会社日立製作所 小野寺 徹 国際大学 大槻聴幸 =菱銀行 青沼君明 CSASシステム新機能〕 キ1 )ツ ビ ー ル 株 式 会 社 本 川 │ 〔グラフ〕 国際大学 大槻聴幸 〔医薬〕 ワ イ コ 引 ) [ , ; rpγ7 イ コ ワ 西 さ 干 次男 藤沢薬昂工業株式会社松岡 j 事 〔教育〕 東尽大学 市川│伸 〔統計理論〕 東尽大学 市川伸 〔調査・マーケティッグ〕 =菱銀行 青沼君明 パネルテ、イスカッション 〔医薬シンポジウム司会〕 東京大学 大橋靖雄 〔品質管理シンポジウム司会〕 東京理科大学 芳賀敏郎

8.

日本 5A5ユーザー会 (5U G卜 . . . J ) SASシステムと他言語ノレーチンの 利用について 鈴木一彦 株式会社 SASインスティチュートジャパンテクニカルサポートセクショシ U s i n gt h eSASS y s t e mw i t ho t h e rP r o g r a m m i n gL a n g u a g e KazuhikoS u z u k i SASI n s t i t u t eJapan,L td . T e c h n i c a lSupportS e c t i o n, " " ヒ エ , .~目 本論文では、 SASシステムから他言語フ.ログラムを呼び出す方法および他言語プログラムから SASシステムを呼び 出す方法について説明する. キーワード USINGOTHERPROGRAIVIMINGLANGUAGE 1 はじめに 2 . 1 リターンコード 最近 SASインスティチュートジャパンでは、他言語で UNIX環境において SASシステムから他言語プログラ SASシステムからパイプ機能と X コマンドを除く方法 で UNIXコマシドを実行した場合、 UNIXコマンドの リターンコードを入手するととができる. SASシステ ムは、 w a i tシステムコーノレを用いリターンコードを得 ムを呼び出す機能、および他言語から SASシステムを ている. リターンコードは 2パイトで構成され、下位パ 呼び出す方法について述べる. イトは実行したコマンドのシグナノレ、上位パイトはコマ 作成した Jレーチンを SASシステムから呼び出す方法に 関する質問を受けるととが多くなっている.本論文では シドの終了ステータスである. SASシステムから UNIX 2 SASシステムから他言語プログラムを呼 び出す SASシステムから他言語で作成したプログラムを呼び 出す場合にはいくつかの方法が用意されている.使用す コマンドを実行した際に終了ステータスが lであった場 合 、 SASシステムはリターシコード情報を、次のよう な 2パイトで受け取る. 00000001 00000000 I I べき方法については目的に応じて選択する必要がある. 以下に 5つの方法について述べる. • Xステートメント • X コマンド 一 一 (2)ー 一 I 一 ー (1)ー ー (1) とのパイトはシグナノレ情報を含む (2) 2パイト目は実際のリターンコードを含む • %SYSEXECマクロ 上記のリターンコードは、 lではなく 2 56となる.なぜ • DATAステップおよび SCL中での SYSTE ' I ¥ ' 1関 ある.コマシドを実行し正常終了しない場合には常にリ なら、終了ステータスは上位パイトに入っているからで 数 • FILEステートメントでのパイプ機能 ターンコードは n*256となり、 nは実際のプログラムの 終了ステータスとなる.次の表はりターンコードと終了

9.
[beta]
Xステートメントを条件付きで実行するには、 SASマ

ステータスの関係を示している.
exit

return

status

code

クロ機能を用いるとよい.
%
r
n
a
c
r
o cond(rnakedir);

two bytes

%if &rnakedir = true %then %do;

ーーーー一 ー一+ーーー 一一一ー+ーーー一一一一ーー一一ーーーーーーーーー
色︒ o n
n V 4 4 qx'
r
r
n ‑r /trnp/sasjob';

1

0
1 00000000 00000000

1

2561 00000001 00000000

%let rc =父 eval(&SYSRC/256);

1

5121 00000010 00000000

%if &rc = 0 父then 父do;

崎直

1

7681 00000011 00000000

%put r
r
n ‑r /trnp/sasjob successful;

1

10241 00000100 00000000

%end;
%else '
l
.do;
%put r
r
n ‑r /trnp/sasjob failed with rc=&rc;

リターンコードを 2
5
6で除算する ζ とによりコマンドの
終了ステータスを得る ζ とができる.また、プログラム
がユーザーの割り込みなどの異常イぺントで終了した場
合は、下位バイトにシグナノレ値が返される.
次の例は、 s
l
e
e
pコマンドを利用してウエイト時間 3
5秒
を指定し、そのりターシコードを SASログへ出力する.

%end;
%
r
n
e
n
d
;
%cond(true);
コマンドのリターンコードを得るには、

&SYSRCマク

ロ変数を利用できる.

x 'sleep 35';
%put &SYSRC;
ζ のプログラムを実行して、

%end;

2
.
3 X コマンド
s
l
e
e
pコマンドで休止中に

他のウインドウから、 s
l
e
e
pコマンドのプロセス IDを

X コマンドを使っても、 Xステートメントと同様にオ
ベレーティングシステムコマンドぎ実行できる.ただし、

確かめ、次のように k
iIlコマ ν ドを実行する.

Xステートメントとは次の 2点が異なる.

kill ‑S1G1NT <プロセス 1D>

Pターンコードは[割り込み]シグナルとなる.シグナル
に相当する整数値は、次のヘッダーファイノレに定義され

lつは、 X コマンドはコマンドラインからのみ発行でき
る ζ と、もう一つは、 &SYSRCを用いてリターンコー
ドを得る ζ とができない ζ とである.

ている.

2.
4 %SYSEXECマクロ

/usr/include/sys/signal.h

%SYSEXECマクロは、 X コマンドと同等の機能を提
2
.
2 X ステー卜メン卜

供している.また、オープンコードで使用できる. リター

Xステートメントは便利な機能の一つであり、 SASプ
ログラムおよび SCLプログラム中からオペレーテイシ

次に伊l
を示す.

グシステムコマンドを無条件に実行する ζ とができる.

ンコードは、

&SYSRCマクロ変数で得る ζ とができる.

'
l
.SYSEXEC /bin/sh ‑c "exit 1";
'
l
.put ・'The return code is &SYSRC";

次の例は、ディレクトリ /tmp/sasjob下の全てのファ
イルとディレクトリを削除する例である.

注意)上記の例題の &SYSRCの{直は、 1ではなく

x'
r
r
n ‑r /trnp/sasjob';

256となる.

日put "The return code is &SYSRC";
X ステートメントは、条件ステートメントではないため、
次の例では常に X ステートメントが実行される.意味
のないコーディングである.

2
.
5 SYSTEM関数について
先程、オベレーティングシステムコマンドを条件付きで

data ̲null̲;

DATAステップ中または
SCLプログラム中でも SYSTEM関数を使用して同様

実行する方法を説明したが、

sasvar=O;
if sasvar=1 then do;

に条件付きで実行できる.

x 'echo "always executetl ' ;

指定方法を次に示す.

end;

rc=systern('unixコマシド, );

run;
ヮ

10.
[beta]
rc=rc/2S6;

l
sコマンドがパイプに書き込む情報は、 SASシステム

数値変数 RCには、 UNIXコマンドの終了ステータスが
割り当てられる. リターンコードから終了ステータスを
得るには 2
5
6で除算する必要がある.ただし、 UNIXコ
マンドが正常終了したかどうかを検出するだけなら、リ
ターンコードそのものがゼロに等しいかどうかを調べれ
ば良い.

がパイプから読み込むまでプロックされている.パイプ
を通じて渡されるデータの総量で仮想メモリ不足となる
心配はないが、コマンド実行時にマシン上の全ての仮想
メモリーが消費されている場合には実行するととはでき
ない.

3 C言語から SASシステムの呼び出し

data ̲nu11̲;

C言語で作成したプログラムから SASシステムを呼び

rc=systern('ls xxx');

出すととができる.また、 C プログラムからデータを

if rc = 0 then

SASプロセスに受け渡すととも可能である. とれは、

put '
x
x
x is found';
run;

f
o
r
kと e
x
e
cシステムコーんを用いるととで実現できる.
データはパイプを利用し渡される.最初に簡単な例とし

また、同織に SCLプログラム中でも実行するととがで

て
、 C プログラムから SASプログヲムを実行する方法

きる.

について述べる.次に、パイプを用いて親プロセスと子
プロセスの SASへデータを受け渡す方法について述べ

INIT:
rc=systern('ls xxx');

る.

i
f rc = 0 then

3
.
1 f
o
r
kと e
x
e
cシステムコールについて

put 'xxx is found';

R
E
T
U
R
N
;

ととでは、 f
o
r
kと e
x
e
cシステムコーんについて詳しく

SYSTEM関数には、 X ステートメシトと %SYSEXEC
マクロとは異なり、マクロ機能を使用せずに DATAス
テップ中および SCLプログラム中で条件ステートメン
トとして実行するととができるという利点がある.一方、
不利な点として DATAステップあるいは SCLプログラ
ムのどちらかを用いて実行しなけらばならず、 DATA
ステップあるいは AFアプリケーションのローデイング
のオーバーヘッドが生じるととが挙げられる.

説明するととはしない.詳細は、 UNIXの manコマン
ドを用いて f
o
r
kと e
x
e
cについて参照してほしい. UNIX
上のプログラムは e
x
e
cシステムコーんによりスタート
する. UNIXプログラムのファイルには命令とデータが
含まれており、それらは、プロセスの開始時にユーザー
データセグメントと命令の初期化に使用される.プロセ
スはプログラムを実行する単位であり、命令とユーザー
デー夕、システムデータセグメントが含まれている

e
x
e
c

システムコーんは指定されたプログラムのプロセスの初

o
r
kシス
期化を行ない、プログラムのみを開始する. f

2
.
6 パイプ (PIPED
e
v
i
c
eType)

テムコールは、新しいプロセス(子プロセス)を作成す

他言語ノレーチンにより生成したデータを読み込みたい場

るととができ、子プロセスは完全な親フ.ロセスからの属

合、パイプは有効な機能である. SASシステムでパイ

性を継承する. 目的システムコーノレには 6つあり、 e
x
‑

プを利用し、ファイル参照名を介して UNIXコマンド

e
c
l,
e
x
e
c
v,
e
x
e
c
l
e,
e
x
e
c
v
e,
e
x
e
c
l
p,
execvpである.シ

を実行する場合の指定を次に示す.

o
r
kと e
x
e
cは通常一緒に使用される.次
ステムコール f

FILENAME ファイル参照名 PIPE '
u
n
i
x
‑
c
r
n
d
'
;

の C プログラムは SASプログラムを実行するために、
f
o
r
kと e
x
e
cを使用している.

DATAステップからファイノレ参照名をアクセスした時
に UNIXコマンドが実行される. UNIXコマンドのデー
s
t
d
o
u
t
)に書かれ、 DATAステップの IN
タは標準出力 (

PUTステートメシトにより読み込みができる.次にディ
レクトリ j
tmpjtestK存在する全てのファイル名をデー
タとして DATAステップで入力する例を示す.
f
i
1
e
n
a
r
n
e 1ist pipe '
l
s ‑1 /
t
r
n
p
/
t
e
s
t
'
;

#inc1ude <stdio.h>
r
n
a
i
n
(
)

f
i
n
t childpid,
r
c
;
i
f ((chi1dpid = fork()) == ‑
1
)

f
fprintf(stderr,"Can't fork");
exit(l);

data file;
infile 1ist ;
e 事2
0
.;
input nむ n
run;

T
‑3
11.
[beta]
else i
f (childpid == 0
)

とれら 3
つのファイルディスクリプタは、対話型 S
A
Sシ

〈

ステム実行時においてとれらに対するファイノレ参照名が

execlp("sas""sas""progr叩 .sas",NULL);

A
Sシステム使用の手ヲ lき"に
する詳細は、 "UNIX版 S

〉

記述されている.

り当てられる. ファイノレディスクリプタに関
自動的に害l

else

• STDIN‑標準入力

f
printf("冒 aitingfor sas process %dto
childpid);
complete. ¥n",
官

• STDOUT‑標単出力
• STDERR‑標準エラー

ait(&rc);

rc=rc/256;

上 記 3つのファイル参照、名は、 ‑
s
t
d
i
oオプションが指定

printf("sas process completed with
rc=%d. ¥n",rc);

t
d
i
oオプショ
されている場合には割当てられない. との s
ンは、

〉

S
A
Sシステムへ stdinからの読み込み、 stderrへ

tdoutへの書き込みを指示するオプ
ログの書き込み、 s

〉

ショシである.また、とのオプションは C プログラムか

A
Sシステムを非会話モードで起動するため、また
らS
A
Sを起動するために開発
は、シェルスクリプトから S

3
.
2 パイプについて

されたオプショシである.

UNIX環境においてパイプは他のプロセスと通信する場

3.
4 f
c
n
t
lシステムコール

合に用いられ、パイプは、 p
i
p
eシステムコーんにより
入出力機構を生成する.

次の Cのサシプノレを見る前に、 f
c
n
t
Iシステムコーノレに

int file̲desc[2J;

c
n
t
Iシステムコーノレは開いているファ
関して記述する. f
イノレを制御する.

pipe(file̲desc);
#include <fcntl.h>
p
i
p
eシステムコールは、 2つのファイノレディスク Pプタ

int ret̲fd;

を返す.

ret̲fd=fcntl(fd,
F̲DUPFD,
arg);

file̲desc[
O
J 一読み込みに使用する.
file̲desc[lJ 一書き込みに使用する.
f
o
r
k,
e
x
e
cと p
i
p
eを使用して S
A
Sプロセスと通信する
アプ Pケーションを作成する前に、次の点について説明

3
.
5 サンプル: SASシステムとパイプを用
いた C プログラム

しておく必要がある.

#include <stdio.h>
#include <fcntl.h>

• S
A
Sシステムの stdioオプショシ
o Cの f
c
n
t
I関数

char sasprogr叩 [
J=
{" DATA; X=l; PROC PRINT;RUN; " }
;
int src[
2
J,

3
.
3 SASシステムの ‑
s
t
d
i
oオプション
‑
s
t
d
i
oオプショシは、通常 UNIXで実行すると 3つのファ

data[2J;
int saspid;

イルディスクリプタが自動的にオープンされる.

void CloseSAS();

• s
t
d
i
n日
(I
ed
e
s
c
r
i
p
t
o
r0
) は、読み込みに使用す
る.

• s
t
d
o
u
t(
f
i
l
ed
e
s
c
r
i
p
t
o
r1
)は、書き込みに使用す
る.

main(argc,
argv)
ユnt a
rgc;
char **む gv;

f

• s
t
d
e
r
r日
(I
ed
e
s
c
r
i
p
t
o
r2
) は、エラーと警告の書

char buf[
5
1
2
J;
ユ
nt counter;

き込みに使用する.

‑4

12.

i f( O p e n S A S ( s a s p r o g r a r n ) == ‑ 1 ) char 杓 u f ; i n tl e n ; f i f( 冒r ite(data[1J,buf,l e n )! =l e n ) return(一1 ); else return(O); f fprintf(stderr,・・C叩 ' t executeThe S A S System!! ¥ n " ) ; exit(1); 〉 for(counter=0;counter<5;counter++) f sprintf(buf, " ス d% dO,counter ¥ n ", counter); DataToSAS(buf, strlen(buf)); 〉 〉 void CloseSAS() f i n tr c ; CloseSAS(); return(O); close(data[1J); 〉 hile (冒 ait(~rc) ! =s a s p i d ) ; t h printf("the SAS process ended 冒 i rc=父d¥ n ",rc /2 5 6 ) ; i n t OpenSAS(sasprogram) char ホ sasprogram; f i n tf d ; pipe(src); pipe( d a t a ) ; i f (!(saspid=fork())) 冒 〉 4 その他の機能の紹介 SASシステムのアプリケーション開発において有用な f close(O); fcntl(src[OJ,F̲DUPFD,0 ) ; close( s r c[ O J) ; close( s r c[ 1 J) ; c l o s e ( 5 ) ; fd=fcntl(data[OJ,F̲DUPFD,5 ) ; printf( " f dfromfcntl=%d ¥ n ", f d ) ; close(data[OJ); close( d a t a [ 1 J ) ; execlp("sasH,"sas", H‑stdio , "‑nodms",N U L L ) ; l l 機能として、 &SYSJOBID自動マクロ変数, %SYSGET マクロ関数, SYSGET関数, ‑SYSPARMオプションがあ る. 4 . 1 SYSJOBID自動マクロ変数 SYSJOBIDは、自動マクロ変数で SAS実行中のプロセ ス番号を持っている. 4 . 2 %SYSGETマクロ関数と SYSGET関 数 〉 %SYSGETマクロ関数は、引数で指定された UNIXの c l o se( s r c[ O J); close( d a t a [ O J ) ; i f (saspid = =‑ 1 ) 環境変数の値を戻す.環境変数が存在しなかった場合に は、警告メッセージを出力する. %SYSGET関数の指 定方法は次の通りである. f close(src[ 1 ]) ; close( data[1] ) ; return(‑ 1 ); %SYSGET(環境変数); f i Jとして、 HOME環境変数の値を SASログへ出力す る場合に以下の SASステートメシトを使用する. 〉 日L ETHOMEVAR=χSYSGET(HOME); write(src[1J,sasprogr叩 , strlen(sasprogram)); close(src[1]); return(saspid); %PUT ~HOMEVAR; また、 SYSGET関数は DATAステップ中あるいは SCL プログラム中で実行する必要がある.指定例は、 〉 SYSGET(,環境変数, ); i n t DataToSAS(buf,l e n ) ‑5一

13.

W i J として、 D ATAステップを使用し HOME環境変数の ASログへ出力する. 値を S DATA ̲NULL̲; HOMEVAR=SYSGET('HOME'); PUT HOMEVAR; RUN; 4 . 3 ‑SYSPARMオプション SYSPARMオプションは、コマンドラインから S A Sプ ロセスに対して情報を渡すととができる. との情報は、 SASの自動マクロ変数 &SYSPARMへセットされる. SASシステム起動時に入力するファイ A Sフ.ログラムへ渡す例を示す. ル名を S 使用例として、 起動時: sas ‑sysparrn "/rny/input/file"; SASフ.ログラム中での指定: INFILE "&SYSPARM"; 5 SAS/TOOLKITソフトウェア SAS/TOOLKITソフトウェアは、 C, F o r t r a nなどの言 語を用いてユーザー独自の S A Sプロシジャ(グラフイツ クフ・ロシジャを含む)、インフォーマット、フォーマッ DATAステップ関数、 ト、関数 ( IML関数含む)、 CALL ルーチン、データペースエンジンを作成するためのソフ トウェアである. とのため、 SAS/TOOLKITソフトウェ アは、ユーザー自身が S ASシステムを機能拡張できる という意味で有用なソフトウェアである. 6 おわりに S A Sアプリケーション開発において他言語プログラム も用いるととで、より完全なアプ Pケーションとなると とを期待したい.また、との論文が参考になれば幸いと 思う. 7 参考文献 • UNIX版 SASシステム使用の手引き ‑6

14.

日本 SASユーザー会 (SUGI‑J) 、ン ス 0 I 卜 ソ ン ッ A R E ミプ ダ イ ナ jる S A S / S H クな製造環境に お ( ロ ダクトの利用 R. ネ ー グ ル 、 佐々木 } 字 ノ エ 工 i 主 ズ ロ I可 The use of the SAS/Sf輸旺 product i n a dynamic engineering environ 耐 n t Hans R.Nagl. slue Oanube C四 四p uterSystem I n c . . Strafford.Pennsylvania.出 A James Robertson. ATT Microelectronics. Reading.Pennsylvania.出 A Jun Sasaki. Chika I n o u e . Ursinus College.Collegeville.PA.出 A 要 t , ニ 日 この論文は、アメリカの遠距離通信装置製造会社における SAS/SHAREソフト ウェア利用について説明するものである。 UNIXサーバへの SAS/SHAREの取 り付け以外に、 Pr0 c ServerとProc Operateについても論じ ている。 キーワード: P r ∞s e 四 e r,P r ∞Oper a t e,複数のプロセス, リア jレタイム はじめに 電子機器製造メーカーは複雑なデータ蓄積を持っており、強健なデータベースの操作 概要についての分析を求めている。電子機器は、厳しい環境テストをくぐり抜けてはじ めて晶終的な顧客への発送を認可され、又いつも膨大な量のデータを生じる。これらの 環境テストは庖のフロア周辺(又は、できる限り地理的に異なる場所)に配置された複 数のテスト装置によって行われたりし、 LANs又は WANsを通って中央データベー スに非同期式にデータを蓄積する必要がある。この構造をとることにより、上位データ ベースサーバ側で生じるネットワークの問題や中断時間による遅延もなく、テスト装置 が作動し続けることがでる。同様にデータの入手/分析/報告というメカニズムはデス クトップ型コンビュータのユーザーが返容を待たなくて済むように、非同期式にデータ ベースにつながれる必要がある。しかし工学ユーザーはテスト装置から得られたデータ 間/ B へほぼリアルタイムでアクセスしたいと思っており、できれば 24x7環境 (24時 x7日/週)を要求している。 海底電話送信製造に携わる遠距離通信社への工学的応用において、ディスクレス UN 1Xテスト装置の中には、 LANアクセスを持つ UNIXサーバのいくつくかを通して 上位データベースに接続されているものがある。テスト装置からのデータは ASC 1 1 テクストファイルの中にパック化され、各装置が与えられたテストプログラムを完了し たと同時にネットワークを通りリアルタイムで送信される。これらの送信されたデータ は上位サーバのデータ入力待ち行列に集められ、クロンを経て 5分毎に引き起こされる ‑7

15.

単一の SASプログラムによってロードされる。データフィールドのマッピングは工学 分野の定義を SAS変数に変換し、それを適当なデータ蓄積領域へロードするために必 要となる。エラーが発見されると、そのデータを iholdJの状態にして、システ ムプログラマーへの適切な E‑mail (電子メール)メッセージを作り出すという操 作を実行する。プログラマーは修正を行い、 iholdJの状態にあるデータを解除 し、データを入力待ち行列へ戻してロードできるようにする。エンジニアは概して製造 過程が完了した時点で、の保証書を要求するものである。そして、この証明書によって一 つ一つの装置が顧客の要求する明細事項にあっていて、客先へ発送する候補となるかど うかを決定する。この保証書は複数のテスト装置から出たデータを集めたもので、一括 式よりむしろ逐次式によって行われている。 SAS‑GRAPHは品質管理情報の提供 に幅広く利用されている。グラフとリポートは製造工程が管理されているかどうかを見 定めるために、要求に応じて提供することができる。また、テストセットによっては、 オペレーターがすでに完了したテストを基にプログラム変更したり、始動時にデータベ ースサーバから必情報を得たりするためにファイルのダウンロードが必要となる。これら のデータ入手の過程は素早く確実に各データサーバからデータを読み取る能力によるも ので、たとえデータベースが他のプロセスによって盛んに更新されていようと遅れるこ とがない。このようなデータ処理能力がないと、データの誤り、製造時間の延長、発送 の遅延、そして、顧客の不満を生じるおそれがある。 問題 主データベースへ製造工場内の 2つの異なる位置から二種類のプロセスがアクセスす る。プロセス Aはテスト記録を主データベースにロードし、プロセス Bは主データベー スからリポートを出す。通常この 2つのプロセスは同期には行われな L、。要するに、一 方のプロセスが行われている時、もう一方のプロセスが同時に同じデータベースにアク セスするという状況である。このような状況によって次の 2つの事態が生じると考えら れる。 事態 A :ロードを行うプロセスによりファイルがロックされ、リポートのプログラム a l i b . X X X . D A T A " i sl o c k e db ya n o t h e ru s e は次のようなエラーメッセージを出す。"Dat r .( D a t a li b .X X X .D A T A l i 伽ユーザーはり口けされています。)このエラーメッセージが送られることに よりリポートを出すプログラムの実行は中止される。 事態 8 :ファイルロックがリポートのプログラムによって起こされると、結果はより 困ったものとなる。 SASシステムが再びエラーメッセージを出し、今度はロードプロ グラムが停止する。夜間、無人状態でこの処理が自動的に進行すると、次の日はデータ のパックアップが大変になる。 ‑8‑

16.

解決策 SAS/SHAREはファイルロックを防ぎ、それゆえ複数のプロセスが同時に同じ データベースへアクセスしてもエラーせずに済むという解決策を可能にするものである。 ソフトウェアがホストコンビュータに正しくインストールされたら、ソフトウェアはユ ーザーに利用可能なものとならなければならない。まず rSASサーバ」を実行する。 SASサーバとは実質上あらゆる SASプログラムの上部を通るソフトウェアプログラ i b n a m e 文を経由してアクセスされるとき、 SASサ ムのことである。 SASサーバが l ーバは現在どのような処理(プログラム)がどのファイルにアクセスしているかを示す トラックを保存する。 SASサーバはファイル周辺の交通整理をする警察官のような働 きをする。通常は、 SASサーバを始動させるのはユーザーの責任となる。その他の場 合 、 SASサーバは L A Nの初期化段階で始動することができる。 第一に、 UNIX環境でシステムプログラマーはサーバ名を SASルートディレクト リにある /etc./servicesへ加えなければならない。 ここでは次の 1行を加えることにする。 n u m b e r / t c p e n g s e r v e r v e r # S A S /S.机旺 s e n g s e r v " のところには SAS/SHAREサーバ名を、そして etc/servicesにまだ使用されていない番号を入れる。 n u m b e r / t c p " には/ 第二に、これでシステム始動時にユーザーまたは自動処理のいずれかによって SAS サーバを実行する準備がで、きたことになる。下記のプログラムがこのプロセスを開始す る 。 z Lqd 令 ︐ 'v zgb nvvE C e .. ︐ 山‑‑ 刷 JunH I e m m M m aAu v PUO し ︒υ V A cuγA nuρ し os ‑ ‑ nυTAnu nYT‑‑ tc; pon e n g s e r v のところには SAS/SHAREサーバ名が入る。 始動プログラム名が sharestart.sas ならば、以下の命令がサーバを実行しパックグラ ウンドにそれを流す。 S A Ss h a r e s t a r t . s a s& この時点で SASを使用している誰もが、ファイルロックまたはレコードロックを起 こすことなくファイルへアクセスするために、このサーバを利用することができる。ロ グファイルで、は誰がサーバにアクセスしたか、またファイルが誰によってどのようにア クセスされたかの記録管理が行われれる。これは後の追跡調査にも有効である。 ~9

17.

例えば、 testdirectory の中の TESTFILE.ssdOl という名前の下記のようなファイ ルがあるとし、 2種類のプログラムが同時にこのファイルにアクセスしようとしている とすると、以下のような方法でアクセスできる。 ibname 文をプログラムに加える。プログラムには下記のように S A まず、 optionsと1 S / S H A R Eサーバ名を入れる。 options comamid=tcp; l i b n a r n e test Itestdirectory" serve=engserv; 次に 1 i bname test が TESTFILE.ssdOl というファイルの入っているディレクトリ /test ibname 文には r S A S / S H A R Eサーバ engserv directoryを指す。これに加えて、 1 はファイルへの複数のアクセスを許可するために使用されるべきである」とも書かれる。 ユーザー 1により出来上がったプログラムは下のようになる。 options comamid=tcp; 1i bname test Itestdirectory" serve=engserv; proc fsedit data= t e s t . TESTFILE; このプログラムの 1 ibname 文は、 S A Sシステム上部を目に見えないように通っている S A S / S H A R Eサーバにアクセスする。このサーバはプログラムのファイルへのア クセスを確実にする。 ログ出力は次のようになる。 1 options c o田a田 i d = t c p ; 2 1i bname test Itestdirectory"server=engserv; NOTE:Libref TEST was successfully assigned as follo s : Engine: REMOTE PhysicaI N a皿e : Itestdirectory 3 proc fsedit data=test.testfile; r u n ; , ユーザー 2によるプログラムは次のものである。 1i b n a 胴 test /testdirectory"; 下I L E ; proc fsedit data=test.TEST ログファイルが示すのは次のものである。 libname test Itestdirectory"server=engserv; NOTE・Libref TEST was srccessfull y assigned as f o l l o w s : Engine: V 6 0 9 : Itestdirectory Physical N a田e 2 proc fsedit data=test.testfile; o c k held E R R O R : READ l o c ki sn o t available f o rT E S T .TESTFILE.DATA,l b y unkno n process. 3 r u n ; , ‑10‑

18.

SAS/SHAREサーバへアクセスされていないと、出されたプログラムが送れず 次のようなエラーメッセージを出す。 READ1 ∞k is not available forTEST.TESTFILE. o c k hel db yunknown p r o c e s s .( R E A Dl o c k l i T E S T .T E S T F I L E .DATA に 応 じ ら れ ま せ ん 。 不 明 の プ ロ DATA,l ス セ: 1 より向付れましたの)もしユーザー 2の出したプログラムがユーザー 1の出したプログラム と同じものであったなら、何の問題もなくファイルTE . . S T F I L E .s s d O lもアクセスされたま まのはずである。ユーザー 2がこの問題を修正し、そのプログラムをもう一度出すと、 TESTFILE.ssdOlのFSEDITスクリーンは次のようになる。 File Edit Search View Locals Globals Help WARNING:USER 1 (server connection 2)is using this observation. FIELDl: a l FIELDl: b 2 FIELDl: c3 FIELDl: d3 これを見ると、 SASシステムが警告メッセージで、このオプザベーションが現在ユ ーザー 1によって使用されていることを知らせているのがわかる。ユーザー 2はこのオ プザベーションを見ても、ユーザー 1が別のオプザベーションに移るまでスクリーン上 の情報を変えることができない。 PROCO P 回A TE プロシジャによる SAS/SHAREサーバの制御 PROCOPERATEプロシジャによってサーバを制御することがでる。管理者は PROCOPERA TEを経てディレクトリがユーザーによってアクセスされたかどうかをシステムへ伝える ことができる。また PROCOPERATEによってライブラリーへのユーザーのアクセスを制御 できる。要するに、 PROCOPERATEはPROCSERVERの行動を制御するのである。 ライブラリーを制御したい場合は、以下の方法でできる。 proc operate serverid=engserv; rdg/sasctr/hrn; allocate library test2 I r u n ; ここで engserv というサーバに test2 を配分する。 ログファイルは以下のように表示される。 ー ム ー ム

19.

1 proc operate serverid=engserv; PROC OPERATE is set to default server ENGSERV. 2 allocate library test2 /rdg/sasctr/hrn; Libref TEST2 has been defined to server ENGSERV. 3 run; PROCOPERATEプロシジャによって、今やどのライブラリーが作動中で、どのライブラリ ーが作動中でな L、かが分かる。 P R O C(J宅RATE serverid=engserv; display library all run; 結果は次のようになりる。 一日 一 yh 一 一 γι L+L 一E S AU一ゐ n " u VA︐ r ' UE‑or W曹 晶 一 V A q G N一 cc 一 ︐ ︐J J J ん E d︐ s ‑n‑+L r ' 一 nE sg B一 ed l一 tT EEM nb 一 nE 一 nER巴‑ PZPO 一qLTi RUHU 一 M周 一 一﹃u 百ι τ I euv nUFr 叩 pO 一 HU w'TA iyln し 一 l 巾 h しUN An mTAAm 内リ ' u pain'l nMa 一向 li pZ五U p r n u 一 ・ 一 一 千A 一 RU n r 叩i υ H EL示lpz I A 証E P O 5 Mmnu 一 1 libname test /testdirectoryserver=engserv; NOTE: LibrefTEST las successfully assigned as follols: Engi n e : R E I I O T E Physical Na田e:/testdirectory 2 run; 3 proc operate serverid=engserv; PROC OPERATE is set to default server ENGSERV. 4 display library all run; この結果から、 1 i b n a m e 文を経てT E S T 2を指すプログラムがないために、 TEST2がI N A C T I V Eの状態にあることが分かる。 ユーザーにより PROCOPERATEの外に限定されている TEST を表わす T M P O O O lは使用中で、 ACTIVEの状態にある。 ゐ ‑nu ゐ 一 一︐︐J'rJ'一 一 r 一vv'Enu rf E一 uE nvγA 一 a a u ‑L L 一 UN C C一 e s一 VEr a一 ds E一 一 AM よL J‑ U ゐ一 nR 一S︐ ︐ B一 D eJU 一 tr‑ I一 yb PO一一 unyu 一‑ 一一 RUHHU nE一 一 nEPZ ι 円 nb 一 ︐ ︒ 一 M目 白 U 一 一 uE cdFZPZ一 nuvvuv 一 叩﹄一F I E ‑ 一 An 一叩﹄叩﹄一 叩﹄一円ーし Pし ‑ nbhHan‑ 一71 一 pr 瓦U 一 巴H u ‑ n nka‑OU9'u‑ nDHr 叩﹄一 一 千A 一 E ︐ 一 円u ‑VA 一 nu 一 FFhd I一 uES一 pb 補lpz 一 nupr 一一 1 1ibna田e test2 /testdirectoryserver=engserv; TEST las successfully assigned as follols: NOTE: L ibref Engi ne: REMOTE Physical Name:/testdirectory 2 run: 3 proc operate serverid=engserv; PROC OPERATE is set to default server ENGSERV. 4 display library all もし、第二の 1i b n a m e 文をこのプログラムに加えると、 T E S T 2を指し、 TEST2のSTATUS もA C T I V Eに変わる。 TEST3をディレクトリに指定する新し L、 1i b n a m e 文が TMP0002として 表示される。 12‑

20.

1 libname test3 /rdg/sasctr/hrn serverニengserv; : NOTE: LibrefTEST2 was successfully assigned as follo冒 s Engine: R E I I O T E Physical Name: /rdg/sasctr/hrn 2 ruu; 3 proc operate serverid engserv; PROC OPERATE is set to default server ENGSERV. 4 display library all 二 PPM 叫ん 一 /ιF/ιF/ι 一 nu 一r一 一vdhu 一 一r F / 一 ME‑nuVAγA一 一+L+L+L一 ‑A 一 c c c N一 e s s一 一 v z一γAmugu 一 d s s一 E 一 A +L︐rf︐rf一 一 S E E一 E 一 t r r一 一 一 nD e J U J U ︐ ︐ 一 I 官一 Ib 一一 一一 一一 一 PO nE一 一 nEPM一 一 軒島 nb一 一 DDnU瓦L n L 1よ一 ME upr 引 MNAU 一期目 十 'lnL 一 pr五u n u 一 EM五 日 ︒ υ一 H U nMa‑nHunソ白 n nb 百島 EMEM‑ nuuvwvwv 千 1 一宮﹄ τ﹄ τ﹄一 ‑A i 干i 干i TE pupup‑u一 凡 AUAU 一 σOL B一 P T P一 一 冒 1 証眉 POM周一 IL 一千I p b 干1 一 i 干 run; 5 また、ライプラリーへのアクセス拒否を出すこともできる。もし 1 E S 1 2へのユーザーの アクセスを拒否したければ、下記のプログラム文がそれを行う。 PR 舵 OPERATEserverid=engserv; quiesce library T邸 T2; run; 結果は次のようになる。 proc operate serverid=engserv; PROC OPERATE is set to default server ENGSERV 2 quiesce library test2; Library TEST2(rdg/sasctr/hrn) quiesced fro田 active state. 3 run; F S E D I 1を通してライプラリー t e s t 2にアクセスしようとしても、 SAS/SHAREソフ トウェアがユーザーをこのライプラリーからロックアウトしているためにで、きない。 ログファイルの例は以下の通りである。 proc fsedit data=test2.TESTF1LE; You cannot open data set TEST2.TESTF1LE.DATA because you no longer have access to library TEST2 through server ENGSERV. 2 run; NOTE: The SAS Syste田 stopped processing this step because of error. 再びこのライブラリーまたはテをイレクトリへアクセスするためには、次のプログラム文 を入力しなければならない。 QU 昭 w e ・ ' AU e 阿部 ・ 1 司L rT 山 &E rT e s y r Ea Hb R ・ I PZ11 円リ n r 舵a . 且n nE+ku p sr これによりログファイルは下記のような表示になる。 proc operate serverid=engserv; PROC OPERATE i s set to defau!t server ENGSERV. 2 quiesce library test2; Library TEST2(rdg/sasctr/hrn) quiesced from active state. 3 run; 会 ﹃U 14

21.

おわりに この報告書は SAS/SHARE製品のもっとも基本的な用途を説明しているにすぎ ない。ここで説明されていることよりもはるかに多くのことに、この製品を応用するこ とができる。繰り返しになるが、多くのプロセスが同時に 1つのデータベースへアクセ スし、それにより記録処理が停滞してしまうなどといった大変な結果が生じる可能性が あるので、このジレンマを解決するために SAS/SHAREは必要であった。 SAS/ SHAREは一つのプロセスがファイルをロックしてしまい、それにより別のプロセス がアクセスできないという問題をなくすことに役立つので、ある。 4 命

22.

日本 5A5ユ ー ザ ー 会 (5U Gト J ) W i n d o w s版 SASとMi c r o s o f t Ex c eI の間でのデータ セット入出力を自動化するマクロの作成 三島徳雄 産業医科大学産業生態科学研究所精神保健学教室 D e v e l o p i n gMaα'0P r o g r a m sT h a tE n a b l eAu 匂m a t i cD a t a s e tE x c h a n g e s b e t w e e nWindowsSASa n dMic r o s o f tE x c e l N o r i oMlSHlMA 戸I 加 e n to fM e n t a lH e a l t h , I n s t i 削除 o fI n d u s 凶a lE c o l o g i α 1Sci e n c e s, De U凶v e r s i t yo fO c c u 戸t i o n a 1a n dE n v i r o n m e n t a lH e a l t h , Y a h a t a n i s h i ‑k u , K i t a 勾u s h uC i t y 要旨 Windows版 SASでは D B Fや D I Fプロシジャが使用できなくなった。そこで、 Windowsの D D E )機能を用いて、 Ex c e lとの間で自動的にデータの入出力を行うことの 動的データ交換 ( できるマクロを作成した。その結果、これらのプロシジャの機能を代替することが可能と なり、ワークシートごとに D a t aステップを作成する必要がなくなった。特に、 Excelへの 出力機能により、各種プロシジャの出力データセットを直接 Ex c e lに 転 送 す る こ と が 可 能 c e lとのデータ交 になり、プレゼンテーション資料等の作成の効率化が可能となった。 Ex 換時の注意点も含めて、マクロの内容を紹介する。 キーワード Windows版 S A Sシステム、 Microsoft Excel、 動 的 デ ー タ 交 換 1.はじめに Windows版 SASにおいては動的データ交換 ( D y n a m i cD a t aE x c h a n g e, D D E )により、他 のソフトとの間でデータ交換が行いやすくなった一方で、 P C版 SASにあった D I Fプロシ B Fプロシジャが使えなくなった。例えば D B Fプロシジャの場合は d b a s e形式のファ ジャや D イルに変数名も含めて入力することが可能であったので、ファイル変換の感覚で SASデ ータセットを作成することができた。この為、多少の制限はあったものの、使用法に慣れ れば非常に手軽に SASデータセットを作成することができた。 これに対して Windows版 SASにおいて Mi c r o s o f t Ex c e1との間で直接にデータ入出 i l e n a m eステートメントを使って Ex c e lファイルを指定し、 D a t aステ 力を行う場合には、 f ップでデータ入力プログラムを作成する必要がある。この場合、データセットの入力ファ イ ル が Ex c e lファイルに変わっただけであり、 D a t aス テ ッ プ で 用 い る 機 能 そ の も の は 他 の 版 SASで 提 供 テキストファイルを使った場合と比べて本質的に変わりはない。 Windows されている基本的な機能を使うだけであれば、原データの並びと SAS変数の並びのチェ ックや、数値変数と文字変数の対応などについての注意は、他のファイルから読み込む場 合と同様である。実際には以上の点に加えて、 f i l e n a m eス テ ー ト メ ン ト に お け る 指 定 に お いて Windows版 SAS特有のオプションを使う必要があり、欠損値がある場合には、その ことを意識した指定をしておく必要もあるなど、かえって複雑な処理が必要となる。 従 っ て 、 単 に テ キ ス ト フ ァ イ ル を Ex c e lファイルに置き換えるだけであれば、データセ ット作成作業の効率化には必ずしも役立たない。確かに D D Eの機能を有効に使えばかなり 自由度の高いデータ入出力が可能になることは明らかである。しかし、一般的なデータセ 司hA RU

23.

ットを作成する場合には、高機能であるよりも DBFプロシジャの場合にように手軽にでき ることの方が重要である場合も多い。 Windows上のソフトの進歩により、 S A Sに入力す る前段階でデータを整理する場合や、 SASによる分析結果を用いてプレゼンテーション 資料を作成する場合には、手元の表計算ソフトを用いる機会が多くなってきている。従っ て 、 S A Sとの間で手軽にデータ交換を行うことが可能になれば、ユーザーにとってのメ リットは計り知れない。 これまでにも Windows版 SASのD D E 機能を紹介した文献はあるが、 E x c e lとの間でデー タの入出力を一般のユーザーが自動化しようとする場合には、それらの文献中に紹介され ている情報だけでは不十分である。そこで DBFプロシジャの基本機能を代替する機能を持 ち 、 E x c e lとの間でデータ入出力の自動化を可能にするマクロプログラムを今回作成した。 SASをフルセットで使用できるユーザーにとっては、それ程必要性は高くないかもしれ ないが、 BaseSASとSAS/STAT等のプロダクトを中心に使用中のユーザーにとっては、表計 算ソフトとの間でのデータ入出力を自動化できれば、作業効率も大きく改善されるであろ う。このマクロを使用した結果、非常に有用度が高いと思われるので、その概要を紹介す c e lとの間でのデータ交換を行う場合の注意点について、マクロプログラム る。また、 Ex と関連する点を中心に簡単に説明する。 2 . 基本設計 マクロプログラムの基本的な機能として、次に挙げるような点を考えた。 ( 1 )SASの変数名とその属性を E x c e lファイル側において指定する。 データの内容とそれを示す変数名が同一ファイルに保存されていれば、原データの確認 が必要になったときに、非常に便利である。 ( 2 )変数の並びは、 E x c e lファイルでの並びをそのまま移す。 変数の位置が SASデータセット上で変わらないようにする。例えば、文字変数と数値 変数が別々のまとまりとしてデータセット上で確保されるようなことがあると、原データ と SASデータセット上でデータの並びが変わってしまう。その場合、データ処理におい て変数のリストの連続指定を行うときなどに、ミスを犯しやすい。 ( 3 )文字変数では、変数の長さを指定できるようにする。 標準値の変数の長さでは、 8文字を越える文字がカットされてしまう。しかし、実際に は氏名などのように、もっと長い文字列を扱うことも多いであろう。従って、文字変数で は、長い文字列を格納する変数を作成できるようにする。 ( 4 )日付データも直接入出力できるようにする。 S A Sと E x c e lの間では基準日が異なるため、日付データを数値として読んだ場合には 補正が必要になる。直接日付値として読めれば、その手聞が省ける。 ( 5 )Ex c eI 上での空のセルは、欠損値になるようにする。 欠損値処理が正しくできることは、最も重要な機能であろう。 ( 6 )必要に応じて S A S側から E x c e lを起動できるようにする。 x c e lが起動されていることが必要なためである。 これは、 DDE機能を使用する場合に E ( 7 )Ex c eI ファイルのワークシート上の読込開始位置は自由である。 E x c e lファイルには、様々の情報(例えば、データの注釈等)を入力している可能性が 高いので、どの位置にデータを入力していても読み込めるように配慮する。 CD l

24.

以上の機能を持つマクロであっても、その使用に際して、面倒な指定が多いようではそ の価値が半減する。そこで、基本機能は一つのマクロプログラムを呼び出すだけで実現で きるようにした。なお、対象とする Ex c e lのバージョンはパージョン 5である。他のパー ジョンを対象とするには、マクロプログラムの若干の変更が必要となる。 3 . マクロプロゲラムの機能と使用方法 まず、マクロプログラムの呼び出し方法を説明する。なお、言うまでもなく、マクロ使 用前には児 i n c l u d eステートメント等を使用して、マクロプログラムが書かれているファイ ルを読み込んでおく必要がある。なお、マクロプログラムの呼び出し方法に関する一般的 な注意点については、 SASのマニュアルを参照していただきたい。 ( 1 ) % e x c e l s e t ( r . c .e x l . L R E C L = 1 0 2 4 ) 要約 マクロ実行時の条件設定を行う。 引数の内容 r : y : 表の一番上の行の行番号(変数名指定行の行番号)を指定する。 表の一番左の列の列番号を指定する。 e x l : Ex c e lをスタートさせるときは O N .しないときは O F Fにする。 L R E C L = [数値]:読込時に割り当てるレコード長を指定する。省略可能である。 機能の説明 読み出し、書き込みマクロが対象にするワークシート上で、変数名及びデータが書き込 まれている領域の左上隅のセルの位置を指定する。また、 SASから自動的に Ex c e lを起 動するか否かも指定する。このマクロは、必ずしも実行する必要はない。実行しない場合 は、デフォールト値が使用される。また、このマクロを一度実行すると、次に実行するま で同じ条件が保持されるので、毎回実行する必要もない。 L R E C L =については、この値がそのまま i n f i l eステートメントや f i l eステートメントの論 理レコード長に引き渡される。対象となるワークシートの l行当たりのサイズが大きい場 合には、この値を大きくしておく必要がある。 x c e l s e t ( 1 . 1,O N,L R E C L = 1 0 2 4 )である。即ち、ワークシートの左上 デフォールト値は、児 e 隅のセル ( Al)から読み出し、または、書き込みをする。一度変更した後にデフォールトの 設定に戻すには、児 e x c e l s e t , ( .)とするだけでよい。 使用例 施e x c e l s e t ( 2 . 3 . o f f ) 2行 3列(セルでは C 2 ) から読み込み、 Ex c e lは起動しない。 ( 2 )私 自x c e li n ( e x l p t . e x l f n .e x l s h t .v n o . o b s n o . d s n ) 要約 ワークシートからデータを読み込み、 SASデータセットを作成する。 引数の内容 e x l p t : Excelファイルのあるディレクトリ名を指定する。最後は必ず¥で終わること。 17‑

25.

e x l f n : Ex c e lファイルの名前を指定する。拡張子(.X L S )はっけない。 e x l s h t :Ex c e lファイル中のシート名を指定する。 v n o : 読み込むデータの変数の数を指定する。 o b s n o : 読み込むデータのオプザベーション数を指定する。 d s n : 作成する S A Sデータセットの名前を指定する。 機能の説明 実際に Excelファイルのワークシートからデータを読み込むマクロである。変数の数が ワークシート上のデータより多い場合には、余分に指定した領域のセルが空であれば、マ クロプログラムが自動的に変数の数を減らすようにする。また、実際のサンプル数以上の オプザベーション数を指定した場合も、データ領域以外のセルが空であれば、余分の指定 は無視する。従って、ワークシート上の不用な領域は空のままにしておいた方がよい。な お 、 Excel上のデータはファイルとして保存されている必要がある。新規に Ex c e lに書き 込んだだけで、まだファイルとして作成されていないデータはうまく読めない。 使用例 先e x c e l i n C A : V M Y S A S V .M T E S T l . M i x 4 .3 0 .3 5 .W l ) S A S 干というディレクトリにある M T E S Tl .X L Sという Excelファイルの M i x 4というシ A :刊 Y lで、その時の変数の数は 3 0、 ート上のデータを読み込む。 SASデータセットの名前は W 5である。 オプザベーション数は 3 ( 3 )目e x c e l o u t ( d s n .v r .e x l p t .e x l f n . e x l s h t ) 要約 SASデータセットからワークシートへデータを書き込む。 引数の内容 d s n : 出力する S A Sデータセットの名前を指定する。 v r : 出力する変数名のリストを指定する。全変数を出力する場合は空白にしておく。 e x l p t : Ex c e lファイルのあるディレクトリ名を指定する。最後は必ず¥で終わること。 e x l f n : Ex c e lファイルの名前を指定する。拡張子(.X L S )はっけない。 e x l s h t :Ex c e lファイル中のシート名を指定する。 機能の説明 実際に SASデータセットから Excelファイルのワークシートへデータを書き込むマク x l p t . e x l f n . e x l s h tをすべて ロである。書き込み用のファイルを新規に作成する場合は、 e 空白のままにしておく。この場合、 b o o k lという新規作成用の Ex c e lファイルの S h e e t lと c e lが自動起動できるようになって いうワークシート上にデータを書き込む。(但し、 Ex c e l側で、ファイル名をつけて保存するようにする。 いる必要がある。)マクロ終了後、 Ex x l s h tで指定したシートが存在していなくて また、既存のファイルに書き込む場合には、 e はならない。変数リストの作成の要領は一般的な方法に準じて行う。 使用例 目e x c e l o u t C W l .I D N OA G ES E XN A M E . . . ) lから I D N O . A G E . S E X . N A M Eの変数を取り出し、 Ex c e lの新規作成 SASデータセットの W 1よ 00

26.

用ファイル(普通は b o o k 1 )に書き込む。 ( 4 )Ex c eI 側でのデータの準備 x c e l i nのマクロを使用して、 Ex c e lファイルのデータから SASデータセットを作成 児e する場合は、 Excel側のデータは以下のようにして準備する。なお、具体例を図 1に示す。 まず、読み込みの対象となるワークシート上の矩形の領域の最上行の各セルに変数名を 入力する。この場合、原則として L E N G T Hステートメントで指定するときと同じ要領で指定 する。数値変数の場合は、 SAS変数名 [変数長] の形式にする。また、文字変数の場合は、 SAS変数名 $ [変数長] にする。また、日付を保存した変数の場合は、 SAS変数名 y y m m d d [カラム幅] とする。この場合は、変数長は常に 8となる。カラム幅は I N P U Tステートメントで読み込 むときの幅である。ここで指定した変数名がそのまま SASの変数名となるので、 SAS での変数名の付け方を守る必要がある。 x a m l 例. e 数値変数である。変数長はデフォールト ( 4 )のままである。 数値変数である。変数長を 8にする。 文字変数である。変数長はデフォールト ( 8 )のままである。 e x a m 28 e x a m 3$ e x a m 4$ 2 0 文字変数である。変数長を 2 0にする。 e x a m 5y y m m d d 日付を表す数値変数である。変数長は 8である。 y m m d d 1 0 .( 9 9 5 / 0 1 / 0 2 )となる。 読み込み形式は y e x a m 5y y m m d d 8 読み込み形式を y y m m d d 8 .( 9 5 / 0 1 / 0 4 ) とする。 第 2行目以降にデータを入力する。この場合、欠損値の部分は空のセルにしておく。な お、日付データを入力したセルには、 y y m m d dの形式に一致するように、 Excel側でセルの 表示形式を設定しておく必要がある。 児e x c e l o u t を使用して SASデータセットを Ex c e lファイルに書き込む場合は、以上に 準じた形で変数名も含めて出力される。 ( 5 )その他の使用上の注意 x c e l s e tにより Excelが自動的に起動するように指定されている場合は、児 e x c e l i nが 児e Excelを起動するときに、マクロ呼び出しで指定したファイルが Ex c e lに読み込まれる。 c e lが自動的に起動されないように設定している場合には、読み込みの対象とな 一方、 Ex るファイルがマクロ実行の前に Ex c e lに読み込まれている必要がある。なお、 Excelは起 c e lを自動起動するためには Ex c e lの 動後アイコン化されていてもかまわない。また、 Ex プログラムの入っているディレクトリにパスが通っていなくてはならない。 児e x c e l i nのマクロで実際に SASに読み込まれるデータは、ディスク上の Ex c e lファイ ルのデータではなく、該当ファイルが Ex c e lに読み込まれた状態で、のデータである。従っ て 、 Ex c e lでファイルを読み込んだ後で、そのデータを編集して内容を変更した場合は、 ム 41 QU

27.

b 図1 . Ex c e l上のデータの I例 データは全く架空のデータである。 AI‑EIのセルが変数名指定行である。 その変更をディスク上のファイルに書き込んでいなくても、変更した内容が SASに読み 込まれる。 数値変数の変数長のデフォールト値は d e f l e nというマクロ変数に保存されている。デフ ォールトは 4 (バイト)である。整数値や有効桁数の小さな実数の場合は、 4バイトで十 分と思われる。これは出る限りコンパクトなデータセットを作成するためである。但し、 文字変数と日付変数の変数長のデフォールト値は 8にしている。数値変数の変数長のデフ ォールト値を変更したい場合には、マクロを実行する前に、 児l e td e f l e n = [変数長]; 例.出 l e td e f l e n = 8 ; として変更する。 書き込み時に数値変数の欠損値の出力文字を変更することができる。変更しない場合に は 、 .' (ピリオド)である。この場合も、マクロ実行前に、 別e tm i s c h a rニ恥 t r ( '[文字]'); 例.出 l e tm i s c h a r =出(' '); (空白に変更) とする。但し、 1度変更すると以後の出力に対してもこのオプションの効果が持続するの で、注意を要する。 4 . マクロプログラムの内容とリスト これまで説明した機能を実現したマクロプログラムのリストを、リスト Iとリスト 2に 示す。児e x c e l s e tが重複しているが、これはリスト 1とリスト 2を別々のファイルに保存 しているためである。同ーのファイルに保存して使用する場合には、 1固定義するだけで かまわない。 以下に、他の表計算ソフトに対応するように変更する場合や、機能を追加する場合の参 考の為に、プログラムの主な点を説明する。なお、リストでの ←①'のような書き込み は説明の為に入れたものである。実際のプログラムには、不用である。 f i l e n a m e, f i l e, i n f i l e等のステートメントにおいては、特殊なオプションを指定して いるが、その意味はすべてマニュアルに詳しく説明されているので、参照されたい。①の ついたマクロは本体のマクロの中で呼び出して使用する。従って、同名のマクロを別に定 ‑20 ←

28.

義しないようにする必要がある。②の部分では Ex c e 1の呼び出しに時聞がかかる場合を考 慮して、 1 0秒間 SASが休止するようにしている。 Ex c e lを高速に呼び出せるパソコンで は1 0より小さい数字に変えてもよいと思われる。また、 Ex c e lプログラムのあるディレク トリにパスを指定しない場合には、このすぐ上の行を下のように変更する。 x" C : V E X C E L 5干E x c e l& e x l p t & e x l f n " ; ( C : V E X C E L 5干に Ex c e 1プログラムがある場合。) リスト 1の 先e x c e l i nで1ま、③の D a t aステップで、まず変数名を読み込み、マクロ変数に a t aステップで実際のデータを読み込む。この際、 その名前を保存している。次いで、④の D まず、 L E N G T Hステートメントを実行して、予めすべての変数の変数長を設定する。実際の 読み込みに当たっては、数値変数と文字変数は直接読み込んでいる。日付変数は直接読み 込むと欠損値処理がうまく行かないので、まずーt e m p ? ?( 7 1は順番を示す数字)という一 N P U T関数を使用して 時変数を作成して、そこに文字列として読み込んでいる。その後、 I e m p 7 1という変数名が別に定義されている場合には、エラー 日付値に変更する。従ってー t e m p の部分を他の名前に変更した上 が発生する可能性が高い。その場合は、リスト中の t t e m p ? ?変数は D R O Pし、データセットには保存しない。 で実行する。なお、 ̲ リスト 2の 先e x c e l o u tで‑は、まず⑤においてオフザベーション数を取得している。⑥で、 C O N T E N T Sプロシジャを用いて、各変数の順番と属性を出力している。ここで、作業データ セットとして X X X Xという名前を使用している。⑦で作業データセットを読み込み、変数名 をマクロ変数にセットするとともに、変数の数を読み込んでいる。⑧の D a t aステップは、 Ex c e 1ファイルに変数名をセットするステップであり、⑨の D a t aステップで実際にデータ を書き込んでいる。 5. おわりに 以上、 Windows版 SASにおいて、 Ex c e lとの間でデータ交換を自動化するマクロを紹 c e lファイルから簡単にデータセ 介した。実際に使用した印象では、このマクロにより Ex ットが作成できるようになっただけではなく、各種プロシジャで結果をデータセットに出 力する意義も増したようである。出力したデータセットを Ex c e lに転送し、そこからプレ ゼンテーション用の図表を作成することが手軽に行えるようになったからである。また、 これらのマクロは機能拡張の余地があるので、高速のパソコンであればさらに機能を追加 することが可能であろう。ちなみに、ここでのマクロの応用として、変数ラベルを自動設 定するマクロも作成して活用している。 参考文献 1)小沢義人、吉田彰夫:Windows 版 SASシステムの動的データ交換 ( D D E ) による Microsoft Ex c e lとのデータ交換マクロの作成、日本 SASユーザー会論文集S U G I ‑J '9 4, 4 1 5 ‑ 4 2 0,1 9 9 4 . e r s i o n6F i r s tE d i t i o n . 2 ) B a s eS A Sソフトウェア ランゲージガイド V e r s i o n6F i r s tE d i t i o n . 3)Windows版 SASシステム 使用の手引き V e r s i o n6 ,S e c o n d 4 ) B a s eSASソフトウェア:マクロ機能 使用法およびリファレンス V E d it i o n . ‑21

29.
[beta]
リスト 1
. %exce1i
n 実行用マク口

拍n
e
n
d
:
自g
l
o
b
a
lx
s
t
r
ty
s
t
r
te
x
l
s
t
r
te
x
ll
e
n
:

自l
e
td
e
f
l
e
n
=
4
;

首l
e
tx
s
t
r
t
=
l
;
胸 部r
om
l
s
t
(
n
)
;
←①
自l
o
c
a
lm
vm
v
lm
v
2
;
百d
oi
=
1 目t
o&
n
:
百l
e
tm
v
=目u
p
c
a
s
e(品伽地i):
e
tm
v
l
=
目s
c
a
n(
&
m
v
.1
.%
s
t
r()
);
百l
引e
tm
v
2
=首s
c
a
n(
品
目l
V
.2
.%
s
t
r()
);
引f目i
n
d
e
x
(伽1V2
.%
s
t
r(
0
))
>
0 目t
h
e
n̲
t棚 p
&
i
;
%
e
l
s
e加 v
l;

引e
te
x
ll
e
n
=
&
L
R
E
C
L
;

%
e
n
d
;

拍n
e
n
d
;

加
。n
d
;

旧日│

加a
c
r
ol
e
n
l
s
t
(
n
)
;
自l
o
c
a
lm
vm
v
2
;
百d
oi
=
1 目t
o&
n
:

百l
e
ty
s
t
r
t
=
l
;
引e
te
x1
s
t
r
t
=
O
N
;
目l
e
te
x
l
l
e
n
=
1
0
2
4
:
加l
a
c
r
oe
x
c
e
l
s
e
t
(
r
.
c
.
e
x
l
.L
R
E
C
L
=
1
0
2
4
)
;
自i
f&
r
=首t
h
e
n引 e
ty
s
t
r
t
=
l
;%
e
l
s
e目l
e
ty
s
t
r
t
=
&
r
;
引 f&
c
=目t
h
e
n引 e
tx
s
t
r
t
=
l
;%
e
l
s
e引 e
tx
s
t
r
t
=
品c
;
目i
f&
e
x
l
=目t
h
e
n引 e
te
x
l
s
t
r
t
=
O
N
:%
e
l
s
e引 e
te
x
l
s
t
r
t
=
目u
p
c
a
s
e(
&
e
x1
)

←①

引e
tm
v
=
%
u
p
c
a
s
e(品耐 i
);
百i
f首i
n
d
e
x(
伽l
V
.%
s
t
r(
$
))>
0目t
h
e
n

制。;
引 f%
s
c
a
n(
品
目l
V
.3
.%
s
t
r()
)
=目t
h
e
n%
s
t
r
(
品
目
1
v8
)
;%
e
l
s
e%
s
t
r
(
伽v
)
目
。n
d
;
%
e
l
s
e
制。;
目l
e
tm
v
2
=目s
c
a
n
(
&
m
v
.
2
.%
s
t
r
()
)
;
目i
f目i
n
d
e
x
(
&
m
v
2
.%
s
t
r
(
O
)
)
>
O目t
h
e
n目s
c
a
n
(
&
m
v
.1
.%
s
t
r
()
) 8̲
t
e
即品 i$1
6
:
%
e
l
s
e
制。;
引 f&
m
v
2
=目t
h
e
n%
s
t
r
(品
目
1
v&
d
e
f
l
e
n
)
;%
e
l
s
e 目s
t
r(
伽l
V
);
目
。n
d
;
%
e
n
d
;
目e
n
d
;

百l
e
te
x
t
r
a
=
%
s
t
r
(
)
;
拍n
a
c
r
oe
x
c
e
l
i
n
(
e
x
l
p
t
.
e
x
l
f
n
.
e
x
l
s
h
t
.
v
n
o
.
o
b
s
n
o
.
d
s
n
)
;
百i
f&
e
x
l
s
t
r
t
=
倒 見t
h
e
n%
d
o
;
百p
u
tN
O
T
E
:E
x
c
e1
を起動します (
E
x
c
e1&
e
x1
p
t
&
e
x1
f
n
)
.;

o
p
t
i
o
n
sn
o
x
w
a
i
tn
o
x
s
y
n
c
;
x"
E
x
c
e
l&
e
x
l
p
t
&
e
x
l
f
n
"
;
←②
d
a
t
a̲
n
u
l
l
̲
; x
=
s
l
e
e
p
(
1
0
)
;r
u
n
;
目e
n
d
;
百l
e
tx
l
=
&
x
s
t
r
t
;
目l
e
ty
l
=
%
e
v
a
l(
&
y
s
t
r
t
+
l
)
;
百l
e
tx
2
=
%
e
v
a
l(
&
x
s
t
r
t
+
&
v
n
o
‑
I
)
; 目l
e
ty
2
=
%
e
v
a
l(
&
y
s
t
r
t
+
品
。b
s
n
o
);
同p
u
tN
O
T
E
: 変数名のリストは &
e
x1
s
h
tの R
&
Y
s
t
r
t
.
C
&
x
l ‑R
&
y
s
t
r
t
.
C
&
x

2
.
.;
知u
tN
O
T
E
: データのセルは &
e
x
l
s
h
tの R
&
y
l
.
C
&
x
l ‑R
&
y
2
.
C
&
x
2
.
.
;
fi
1
e
n
a
m
ei
n
ld
d
e"
E
x
c
e1
1&
e
x1
p
t
.[
&
e
x1
f
n
.
.X
L
S
]&
e
x1
s
h
t!
R
&
y
s
t
r
t
.C
&
x1:
R
&
Y
s
t
r
t
.
C
&
x
2
"
;
fi1
e
n
a
m
ei
n
2d
d
e"
E
x
c
e1
1&
e
x1
p
,
t[
&
e
x1
f
n
.
.X
L
S
]&
e
x1
s
h
t!
R
&
y1
.C
&
x
l:
R
&
y
2
.C
&
x
2
"
;
d
a
t
a̲
n
uI
I
̲
;
←③
l
e
n
g
t
hC
o
l
l
‑
C
o
l
&
v
n
o $1
6
;
i
n
f
il
ei
n
ld
s
dd
l
m
=
'
0
9
'
xm
i
s
s
o
v
e
rn
o
t
a
bL
R
E
C
L
=
&
e
x
ll
e
n
:

30.

tv (.u i n p u tC o l l ‑ C o l & v n o ; a r r a yc c ( & v n o )C o l l ‑ C o l & v n o ; d oi = 1t o& v n o ; c( i } ); c a1 1s y m p u t' (m '1 1 1e f tC i ),c e n d ; r u n ; % I e tv n o ̲ c h k = O ; v n o =); % d o% w h il eC品加& 覧l e tv n o =弘e v a1C & v n o ̲ 1); 目1 e tv n o ̲ c h k = l ; 。 目n d ; 目i f& v n o ̲ c h k = 1 覧t h e n% p u tN O T E : 変数の数を & v n o . に変更しました., d a t a& d s n ;& e x t r a ; ←④ l e n g t h% l e n l s t C & v n o ) ; i n f il ei n Zd s dd l m = ' 0 9 'xm i s s o v e rn o t a bL R E C L = & e x ll e n ; i n p u t加 1 s tC & v n o ); 百l o c a lm vm v lm v Zm v 3 ; 覧d oi = 1 覧t o& v n o ; 目1 e tm v = % u p c a s eC 品卸1&i ); 引e tm v Z = % s c a nC 加v ,Z .% s t rC) ); 引 f% i n d e x C 加v Z .% s t r C D ) ) > O% t h e n 百d o ; 弘l e tm v l = % s c a n C & m v . l .% s t r C) ) ; 目l e tm v 3 = % s c a n C & m v . 3 . % s t r C) ) ; 引 f& m v 3 =目 t h e n% s t r C 加v l = i叩 u tC 一t e 叩品i. & m v Z .1 0 . ); ); 伽I v l = i n p u t( ̲ t 側I p & i . 加v Z & m v 3 .. ); ); % e1 s e% s t rC lY Y M M D D 1 0 . ; d r o p̲ t側 I p & i ; f o r m a t加 v % e n d ; % e n d ; r u n ; 加n e n d ; リスト 2 . %exce1out 実行用マク口 見l e tm i s c h a r= ; /事欠損値用の文字指定率/ 知n a c r op u t1 s t( n ); ← ① % d oi = 1% t o& n ; 弘s c a nC 品 耐i .1 . % s t r C) )' 0 9 'x% e n d ; 加l e n d ; 加a c r0 v1 s tC n ): ← ① % d oi = 1 弘t o& n :s & i' 0 9 'x% e n d : 知n e n d : % g l o b a lx s t r ty s t r te x l s t r te x ll e n : 目l e tx s t r t = l : 目l e ty s t r t = l : 引e te x l s t r t = O N : 目l e te x ll e n = 1 0 Z 4 : 知n a c r oe x c e l s e t C r . c . e x l .L R E C L = 1 0 Z 4 ) : 目i f& r =覧t h e n覧l e ty s t r t = l :% e l s e覧l e ty s t r t = & r ; 覧i f& c =覧t h e n覧l e tx s t r t = 1:目。 I s e覧l e tx s t r t = 品c : 川 f& e x l =覧t h e n引 e te x l s t r t = O N :% e l s e引 e te x l s t r t = % u p c a s e C & e x l ) 見1 e te x11 e n = & L R E C L: 加l e n d : 知n a c r oe x c e l o u t C d s n .v r . e x l p t,e x l f n . e x l s h t ) : d a t a̲ n u l l ̲ : ←⑤ c a l ls y m p u t ( ' o b s n o ' .c 叩 p r e s s C n ) ) :s t o p : s e t& d s nn o b s司; r u n ; % i f% l e n g t h C & v r ) = O% t h e n% d o : ←⑥ p r o cc o n t e n t sd a t a = 品d s no u t = x x x xn o p r i n t :r u n : % e n d ; 目 。I s e覧d o : d a t a :s e t& d s n C o b s = I ) : k e e p& v r : r u n : p r o cc o n t e n t sd a t a = ̲ l a s t ̲o u t = x x x xn o p r i n t ;r u n ;

31.

c コ 、 . . , . . 百e n d : p r o cs o r t :b yv a r n u m :r u n : d a t a̲ n u1 1一 : setxxxxend=last: ←⑦ l e n g t hs$2 0 : i ft y p e = 2t h e ns=c 叩 p r e s s ( n a m e )1 l ' $' 1I c o 即r e s s( 1e n g t h ): e l s ei fi n d e x ( f o r m a t,' Y Y ' ) ) Oa n di n d e x ( f o r m a t,' M M ' ) ) Oa n d i n d e x ( f o r m a t,' 0 0 ' ) ) 0t h e n s=c o 即 r e s s( n a m e )1 1 '' 1 1s u b s t r ,6 ): ( f o r m a t,1 e l s es=c o 即 r e s s ( n a m e ): c a1 1s y m p u t' (m '1 1 1e f t( ̲ n ̲ ), s ) : i fl a s tt h e nc a l1S y m p u t ( ' v n o ', c o m p r e s s ( ̲ n ̲ ) ) : r u n ; 百d oi = 1 首t o& v n o : 引e tm & i =首s c a n( 品 白n & i, 1 .% s t r () ) 目s c a n( 品 白n &i ,2 , % s t r() ) 目s c a n (品 m &i ,3 ,% s t r() ) : % e n d : 首p u tN O T E : 変数の数は & v n o,オブザベーシヨン数は & o b s n o です 首i f& e x l f n =% t h e n目l e te x l p t= : 自i f& e x l s t r t = O N首t h e n制。; 百p u tN O T E :E x c e1 を起動します ( E x c e1& e x1 p t & e x1 f n ) .: o p t i o n sn o x w a i tn o x s y n c : x" E x c e l& e x l p t & e x l f n " : d a t a̲ n u lI ̲ : x = s l e e p ( 1 0 ) :r u n : ←② 首e n d : 自i f& e x l f n =首t h e n目l e te x l f n=b o o k l : % e l s e首l e te x l f n=& e x l f n . . X L S : 百i f& e x l s h t =首t h e n目l e te x l s h t=S h e e t l : 百l e tx l = & x s t r t : 首l e ty l = % e v a l( & y s t r t + l ) : 自l e tx 2 = % e v a l( & x s t r t + & v n o ‑ I ) : 目l e ty 2 =目e v a1 品 (y s t r t + 品 。b s n o ) : 百p u tN O T E : 変数名のリストは & e x l s h tの R & y s t r t . C & x l ̲R & y s t r t . C & x 2 . .: 目p u tN O T E : データのセルは & e x l s h tの R & y l .C & x l ̲R & y 2 .C & x 2 ..: f il e n a m eo u t ld d e" E x c e l l & e x l p t .[ & e x l f n J & e x l s h t ! R & y s t r t .C & x l: R & y s t r t . C & x 2 "n o t a b : f il e n a m eo u t 2d d e" E x c e l l & e x l p t .[ & e x l f n J & e x l s h t ! R & y1 .C & x l: R & y 2 .C & x 2 "n o t a b : d a t a̲ n uI I ̲ : ←⑧ f il eo u t lL R E C L = & e x l l e n : 百d oi = 1 目t o& v n o : s & i =沼畑品 i " : % e n d : p u t蜘 1 s t( & v n o ): r u n ; 首i f& mischar=首t h e no p t i o n sm i s s i n g = ' .' % s t r ( : ) : % e l s eo p t i o n sm i s s i ng=加 i s c h a r % s t r( : ): d a t a̲ n u lI ̲ :s e t& d s n : ←⑨ f il eo u t 2L R E C L = & e x ll e n : u t l s t ( & v n o ): p u t目p r u n : 加e n d : ※ ~icrosoft , 標です。 VVindowsは米国 ~icrosoft Corporationの登録商

32.

日本 5A5ユーザー会 ( 5UG卜 J ) JMP3.0による生存分析 ‑A p p l e S c r i p tの 応 用 ‑ O陶 山 昭 彦 鳥取大学医学部衛生学教室 S u r v i v a lA n a l y s i sbyJMP3 . 0 ・ A p p l i c a t i o no fA p p l e S c r i p t‑ A k i h i k oSuvama Qepaltmento fHygiene , F a c u l t yo fMedicine T o t t o r iU n i v e r s i t y 86N i s h i m a c h i , Yonago , T o t t o r i , 、 Japan Wi ‑ 9 : ヒ エ , 1 ‑ ' JMP3.0は一括処理を実現する A p p l e S c r i p tの機能に対応している。これによりある程 度の JMPの解析処理を定式化することができる。 M a c i n t o s hのシステムが 7 . 5に更新さ れ 、 A p p l e S c r i p tが標準機能としてサポートされるようになった。 JMP3.0はその機能を 中t で実現できないが、簡単な処理を組み合わせて解析戦略に役立てるこ すべて A p p l e S c i とは可能である。本報告は JMP3.0の生存分析機能を A p p l e S c r i p tを用いて処理する場合 についての事例報告である。 キーワード: JMP, A p p l e S c r i p t,生存分析 1 . JMPシステムと A p p l e S c r i p t JMPシステムは SAS 月NSIGHTのような探索的な解析を行うことができる有用なシステ ムである。探索戦略を主とすることから I n t e r a c t i v eな操作性に重点をおかれている。し かし、いったん解析戦略が構築された場合、 SASシステムのように定型化処理を行う機 能を JMPシステム自身の中にもちあわせていない。解析の探索的思考を支援するための インターフェースはかえって複数の定型処理の操作には冗長となり効率的ではない。 A p p l e S c r i p tテクノロジーはアップル社が提唱した M a c i n t o s h上でのすべてのアプリケー ションをシステムレベルでスクリプト言語によって動作することを保証する機能である。 アップル社は Macintoshの System7.5より A p p l e S c r i p tを標準機能として提供し、 A p p l e S c r i p t機能をサポートしているアプリケーションについてスクリプトによる制御が 可能となっている。 A p p l e S c r i p tはシステムレベルに対する固有の制御文法と各々のアプリケーションに対 する個々の制御文法の 2系統にわけで考えることができる。 SASシステムユーザーにとっては A p p l e S c r i p t文法は一般に馴染みが少ないため、解説 )。 書を参考にされたいい 1 RU nL

33.
[beta]
2
.J
恥1pシステムと生存分析機能
JMP3.0では以下のような生存分析が行える。

1)ノンパラメトリック生存分析
2) パラメトリック生存分析
3) コックス比例ハザードモデ、ル生存分析
今回はノンパラメトリック生存分析とコックス比例ハザードモデ、ノレ生存分析の 2つを
とりあげていく。

1)ノンパラメトリック生存分析
多発性骨髄腫 (Ha
出 se
ta
l
.*
2
) 患者についてデータシートの一部を図 1に示す。
I
A
n
a
l
y
z
e
J メニューより I
S
u
r
v
i
v
a
lJを指定し(図 2
)、ダイアログボックスに「生存時
) すると、性別
間」、「打ち切りの有無」および群別比較の項目として「性」を指定(図 3
)。
による多発性骨髄腫の生存曲線について解析結果が得られる(図 4

JMPのこの I
S
u
r
v
i
v
a
lJ分析機能については図 5のような文法が決められている。これ
S
u
r
v
i
v
a
lJは A
p
p
l
e
S
c
r
i
p
tがすべて「記録可能 J (
R
e
c
o
r
d
e
d
) と示されて
によると JMPの I
p
p
l
e
S
c
r
i
p
tの記録機能を用いて、同じ処理のスクリプトについて記録す
いることから、 A

る
。
まず、 M
a
c
i
n
t
o
s
hの S
y
s
t
e
m
7
.
5に添付の「スクリプト編集プロブラム J(
図6
) を起動し、記
)。
録ボタンを作動させる(図 7

そののち、上述の操作を行って記録された A
p
p
l
e
S
c
r
i
p
tのスクリプトが図 8である。
言
ロ

多発1
'
.
生骨飽腫景

,

生存時間打切り 日UN
Hb 血i
膏 c1
'
生詫断時年齢
o 2.218 9
.
4
1
0 0
67
.94
1
8 0
o 1
1
2
38
2
o 1
.519 9
.
8
15 0
81
o 1
.
748 11
.
3
12 0
2
75
.
301 5
.
1
o 1
9 0
57
2
3
o 1
.544 6
.
7
10 1
46

41
53
57
77

1
.
756 129 0
1
1 0
1
1 0
12 0

1
.114
1
2
1
.255 1
2
.
5
1
.079
14

72
66
66
601

!;縫説詩i島日韓 i'日露 ~i;iii~~!iiil読l器提出話絞欝I官~~,~;~詑I話器i:ii詰持通話'緩め背~ti!滋会議j:ji誌!日,1誌説~i'出~~i~滋II~ Qj

,

Gr ph Too1s

、
5u刊 j
y
e
lCu内 e
s

校ケjtγb刊
し
街 Fil門odel

Columnsfrom争党陸膏恒腫

̲
L'
L

生存時間
打切りの有望聖
BUN
Hb

r
1
l
JCorrel nof'fs2

l
:
1
.

山

Cluster

置 い 一一一一

血j
盲

図3

c
.

f
宣
活断時年齢
尿素窒素

団仁三三ごコ注翌盟
理E三三三コ InwJI
!
)
;
堅

調1
)>3o
.
:
,
,
‑
,
,;
r
,
,
<>)匝一一一
刻亡三""'1> )

メ仁三三三コ

Fhu

臼
つ

34.

9 Jr v ; v a lP l o t 1 .0 ‑・性= 1 一一曲性= 2 0 . 9 日目 日7 図4 0 . 6 雪 0.5‑ 0 . 3‑ い t 0 . 0 生存時間 T e e t e目前四町Br山田 T 田t L o g ‑ R a n k W iI c o : x o n J 町 、 ; ‑ S q . J a r e I F P r 曲〉白l iS q 0 . 3 9 0 3 。 閃1 6 1 O .日 2 0 . 4 2 6 8 Survival General Form: ド c o r d e d analyze survival for nameo f t i m ev a 巾 b l e t a b l es p e c i f i e r nameo fc e n s o r i n gv a r i a b l e nameo fg r o u p i n gv a r i a b l e trueo rfalse rfalse trueo rfalse trueo rfalse trueo rfalse trueo from censored by label points combined 図5 survival plot exponential plot Weibull plot 図6 3 3 3 3 3 3 3 3 3 争 誌 スクリプト編捺プログラム 図 8 JMPの r S u r v i v alJ分析機能のスクリプト t e l la p p l i c a t i o n" JMP" a c t i v a t e o r{"生存時間"} i analyzes u r v i v a lfromt a b l e"多発性骨髄屋"f weightedby"打切りの有無"l a b e l"性" endt e l l 図7 ー 弓の〆

35.
[beta]
このように多項目のデータについて単変量のノンパラメトリック生存分析を JMPで繰
り返す場合、どうしても操作介入が多くなってくる。
また、項目「性」で層化して群別の単変量解析を行なう場合、データ処理を事前に行っ
ておく必要がある。
このようにある程度探索解析の見通しがついた場合にはAppleScriptを用いてスクリプト
処理によって一指して解析結果を考察したほうが効率的である。
図8のリストを元に性別で層化して一括した単変量解析を実施するスクリプトを図 9に
示す。

解析結果を図 1
0に示す。

1
.4
)、Hb (
1
2
)、血清 Ca(
1
0
)、年齢
スクリプト中に用いた群別変数は、事前に BUN (
(
4
0
) でそれぞれカテゴリー化した区分変数を作成しておいたものである。

図9

単変量解析を層別にわけ、各群ごとに解析処理する

copy{
1,2
}t
osex
copy{"尿素窒素""
1
]・
日t
./
""
i
J
I
,'
;
?
A
""年齢階級"}t
ogroup
t
e
l
la
p
p
l
i
c
a
t
i
o
n "JMP"
repeatwithifrom1to2
repeatwithjfrom 1to4
opent
a
b
l
e":多発性骨髄腫"
setnameo
fl
a
s
tt
a
b
l
et
o"多発性骨髄腫"
setxtoi
t
e
mio
fsex
setyt
oi
t
e
mjof group
)o
ft
a
b
l
e"多発性骨髄塵 "tot
r
u
e
sete
x
c
l
u
d
e
dof(
r
o
w
swhosecolumn"性"= x
analyzes
u
r
v
i
v
a
lfromt
a
b
l
e "多発性骨髄座"f
o
r{"生存時間 H
},
‑
w
e
i
g
h
t
e
dby"打切りの有無 "
I
a
b
e
ly
endrepeat
endrepeat
endt
e
l
l

図 10

ヮ

n
o

36.
[beta]
2
) コックス比例ハザードモデノレ生存分析
JMPによるコックス比例ハザードモデ、ル生存分析は i
S
u
r
v
i
v
alJメニュー下で実行する
F
i
tMode
lJメニューのモデルの選択において i
Pr
o
p
o
r
t
i
o
n
a
lH
a
z
a
r
d
J を指定
のではなく、 i
することによって実行可能である(1
1
)。
図1
2に先と同じカテゴリー化した d
i
c
h
o
t
o
m
o
u
sv
a
r
i
a
b
l
eをすべてモデ、ノレに組み入れた解
析の指定を示す。

Standa
吋L
e
a
s
tSqua問 S
Screening
Stepwise
門a
nova
Logli
nearVorionce
Nominal Logistic
Ordin
o
lLogisti
c1
1

この指定によって得られる解析結果は以下の図 1
3の通りである。

図 13

・
G
[

r
山

罰 則.
1
1
01l
e
8
t

C
h
l
‑
S
q
u圃「圃

,l
l
k
e
!
l
h
o吋
!
L
o

S
o
u
r
c
e

4
.
1
1
2
1

D
i
f
f
e
r
e
n
c
e
官i
t
hC口v
a
r
i
a
t
e
s

1
5
0
.
6
0
2
8

百i
thoutCovarietes

1
5
4
.
7
1
4
9

8
.
2
2
4
25

P
r
o
b
>肋 I
S
q
0
.
1
4岨

L日 間 「 且

L
I
>
凹 rC
L

0
.
2
2
9
4
5
7
4

0
.
3
1
0
2
0
21
.03
回
‑
{
)
.
5
1
3
1
4
81
.
7
3
14{
)
.
4
5
1
9
1{
)
.
4
5
7
4
7
9

L̲r且

出 回r且

S
t
dE
r
r日「

‑
0
.
4
1
8
9
9
2
1

0
.
3
3
5
6
2
4
1

1
l...[8l
刷(
1
.
4
)

0
.
1
5
6
3
3
8
6
8

ゲo
t
"
:
.
(出(12
‑
)
)

品 吋'
[
C
.
(
1
0
ー
)
)

‑
0
.
8
9
3
1
1
2
1
0
.
1
3
5
4
4
3
2
3

0
.
3
3
5
1
0
2
2
田
0
.
4
0
6
6
6

年
・6陪昼[老人]

0
.
1
4
6
6
9
7
1
5

R
I
8
kR
atlo

0
.
3
0
4
1
8
8
5

0
.
8
0
7
8
2
6
6
‑
{
)
.
1
2
6
1凹
0.7489
469
0
.
7
6回目 8

I~凶Ratlo
。 657709

毘穫量環 [
8
凶(1.4
)

1
.169222
0
.
4
0
9
3
8
1
.145044
1
.1
5
8
0
0
3

1
2
ー)
J
'
"
o
t・,[(
肺 刊'
[
C
.
(
1
0
ー)
J
年
・6陪昼[老人]

日
『fectLlk山

o
d
‑R
山

.
.
.

t
F
1
t

1

L~ChJ Sq圏内

"at'~

E
al
l間 四

1.m
性[
2
)

・

E
f
f
e
c
t
l
l
k
e
l
l
h
o
叶‑R.l
t
l
o
f
l
l
l
t
l

S
c
"
・
性
原開宣寓

町 同t
.
rEatl~闇 t凹
P
.
r

Tm
性(
2
)

(
'
.
,
.
.
.
.t.r旦2
IRi~ Ratl08 コ

・
・

0
.
3
3
4
7
4
6
0
.
5
9
8
6
0
8
0
.
1
7
6
9
4
7
1
0
.
6
3嗣 1
0
.
6
3
2
8
7
7

1
.2
5
7
9
1
7
2243028
0
.
8
8
1
5
1日
2114772
2151359

"
.a
年.市瑚・

・

P
r
o
b
>C
hl"

1
.
6
9
1
9
4
0
5
0
.
2
1
5
1
3
3
6
6
.
2
6
4
4
3
0
2
O
.
2
0
C
岡田 1
剖日
0
.
2
2
4

0
.
2
0
7
0
0
.
6
4
2
0
0
.
0
2
1
8

a筋 縄
a田 5
4

l
!
u
el
l
n
o
l
l
,
.l
n
.l
.t m

0
.
'‑
}
.

i
j
¥
0
.
1

T.
1

o 10 四

J
O 4
0 印曲
生有時間

1̲11閣 S州 刊 101四 n

匡旦
2
9

∞

U
J 8
0 901

1

I
I
I
l

I

37.

図1 4 f o r model s p e c i f i c a t i o n : f o r from by intercept personality r e c o r d e d qJq3q3q3q3 Yc o l u m nnameo rl i s t t a b l es p e c i f i e r e f f e c tl i s t trueo rf alse l e a s t squares nominal ordinal manova stepwise screenlng dOptimal 工o gVariance ph コックス比例ハザード、モデノレについての r F i tModelJの A p p l e S c r i p tの基本文法は図 1 3 に示す通りである。ドキュメントにおいては r p e r s o n a l i t yJオプションに r p h J を指定 するとのみ記述があるのみで詳しい内容は明らかでない。但し、比例ハザードモデ、ノレに ついても、先の r S u r v i v a lJと同様、 A p p l e S c r i p tの r e c o r d機能がサポートされているので、 スクリプト編集プログラムの記録によってスクリプトを完成する。 図1 5のリストは前述と同様の比例ノ、ザードモデ、ノレによる解析指定を行って、記録した スクリプトである。 図 15 コックス比例ハザードモデル t e l la p p l i c a t i o n" JMP " a c t i v a t e o r{"生存時間 I } a n a l y z em o d e lf i tf r o mt a b l e"多発性骨髄腫"f w e i g h t e db y"打切りの有無"~ b y{"性","診断時年齢","尿素窒素 " , , ‑ 日t ./ " , カルシウム","年齢階級"} p e r s o n a l i t yp h endt e l l i 1 1 1 1 【マニュアノレによる総当たり変数選択] 1MPの比例ハザードモデ、ルの解析オプションはほとんど用意されていない。変数選択 においてもステップワイズが指定できない。 P r i m i t i v eなスクリプトではあるが、与えられた変数リストを用いて、総当たりの変数 選択法で、比例ハザードモデ、ノレの解析を A p p l e S c r i p tで行えないわけではない。 内 U 円 J

38.
[beta]
スクリプトの枠組み

a
.総当たりとなるリスト変数をあらかじめ作成しておく。

b
.そのリスト変数についてのリストを作成する。(リストのリスト)
C
. このリスト変数を用いて繰り返し処理を行わせる。

図1
6
変数総当たりスクリプ卜(一例)

copy{
"
性
"
}tov
1
copy{"性 診断時年齢"}t
ov2
copy{"性 診断時年齢""尿素窒素"}t
ov3
copy{"性 "J
診断時年齢", '
s
尿素窒素" "
'
]
・
日t
・ン"}t
ov4
copy{"性""診断時年齢""尿素窒素 "γ 日t
.)
"
, カ
ル
シ
ウ
ム
"
}t
ov5
γ
'尿 素 窒 素 "
'
]
・
日t
.)
"
, カ
ル
シ
ウ
ム
年齢階級"}t
ov6
copy{"性ヘ"診断時年齢 '
1
1

1
1

1
1

1
1

図1
7

1
1

1
1

1
1

1
1

1
1

copy {
v
1,v2,v3,v4,v5,v
6
}t
ovv
t
e
l
la
p
p
l
i
c
a
t
i
o
n"
JMP
"
repeatwithifrom1to6
opent
a
b
l
e":多発性骨髄題"
setnameo
fl
a
s
tt
a
b
l
et
o"多発性骨髄腫"
setxt
oi
t
e
mio
fvv
o
r{"生存時間"} i
a
n
a
l
y
z
emodelf
i
tfromt
a
b
l
e..多発性骨髄塵"f
weightedby,
‑
"打切りの有無" b
yxp
e
r
s
o
n
a
l
i
t
yph
endrepeat
endt
e
l
l
w,
持
,
、

ミlogLikelihood Chi‑Square
5.6777
11.3555
149 6371
154.714C
1

f
:
;
:
:
E詰

、
九

V

E:
sU .図 t. Sld Error LO.41r CL 1
:
:
:
:
:
:
‑0.44712015 0
.3
3
4
0
1
5'
O
13 ‑
1 12084'
O
1 r
:
;
'
0.03491509 ‑0.130324 f
~<~.:

山

。
田 r CL Upper CLr
:
:
:

Risk Rulio L
e.639451
0
.0
;
141954
1 042391
0.38264'
:
5

コ1年紛醐:老人

図 18

.

I

1.182410
2酬 明

0.326803
0877811
0
.7004M
0
.163921
0.6'
:
54
0
1
5
3
0.8815224

--..a 付時鉱山~:;: ;
:
:}::~:;: :;;~;:~:::::~!:~:::::~:~主主

事
量

I.
220569~::主:
1 000227位台:
3
.'
:
524992t
:
右
8.629'
:
5
'
:
51E;::~:
2.1恒例'!恐:
0
;
1.
1司 127 苓

主ミ百,~.,

1

"
"
"
:
'
'
:
:
!
申H!
l

ム
41

内
ペU

39.

図1 6にスクリプトの枠組みを示す。 p p l e S c r i p tよる比例ハザードモデル分析 この枠組みによって作成した変数総当たりの A のリストが図 1 7であり、図 1 8はその結果である。 3. J 恥伊システムの A p p l e S c r i p tによる生存分析の可能性 元来、探索的に設計された J 恥1pシステムでありスクリプトによる定型一括処理を JMP システムの A p p l e S c r i p tのアプリケーシヨン機能に求めるのは本来的ではないだろう。 しかし、 SASシステムの恩恵に蒙っていない研究者の立場からみれば、 JMPシステム はノンパラメトリック生存分析、比例ハザードモデル生存分析の両者とも A p p l e S c r i p t機 能が支援されていることに大いなる期待を寄せて然るべきである。 SASのメーリングリスト (LISTSERV) によれば、J[¥伊システムは Windows版が提供 されており、 Windows下でのスクリプト化も可能な環境が提供されてくるであろう。 現在、 A p p l e S c r i p tの 3大機能である, S c r i p t a b l e J、 ' R e c o r d a b l e J、 ,A t t a c h a b l e J のすべ ての機能を JMPシステムは備えているとはいえない。現在、 JMPシステムはパージョ ン3 . 1に更新されており、定型的一括処理をも可能にできる探索的な解析システムとして 利用できることを期待している。 [参考文献】 1) DannyGoodman: Th eCompleteA p p l e S c r i p tHandbook, 1 9 9 3 2) H a r r i sEKe ta l: S u r v i v a l s h i pA n a l y s i sf o rC l i n i ca 1S t u d i e s, M e r c e lDekker, NewYork, 1992 p p l e S c i r p tによる JMP3.0の自動実行処理、日本 SASユーザー会論文集、 3)陶山昭彦:A 1 9 9 4 4)陶山昭彦:統計解析の自動化処理、メディカノレ・マック・ムック N O . 5、ネットワー ク 、 1994 η3 ワ 臼

40.

日本 5A5ユーザー会 (5U G卜 J) B a s eS A S で、乙こまで出来るレポート作成 PROC PRINT、PROC TABULATE の 出 力 を 罫 線 表 に す る 方 法 一 内田浩伸 日本シエーリング株式会社研究開発本部開発部推進室東京調査課 Maiking of Reports by using Base SAS Software Hironobu Uchida NIHON SCHERING K .K . 6‑3,Kobuna‑cho Chuo‑ku,Tokyo. 要旨 S A Sはデータの集計・解析能力は優れているものの、その出力は必ずしも見や A S以外 すいとは言えず、従来より様々な方法でレポート作成がなされてきた。 S のソフトウェアに頼らずに、なんとか見やすいレポート作成が出来ないものか RINTプロシジャと TABULATEプロシジャ と考え、レポート作成の使用頻度の高い P のテキスト出力を全角罫線の表に変換するプログラムを開発した。その使用方 法と、使用例を紹介する。 キーワード: P R I N Tプロシジャ T A B U L A T Eプロシジャ、全角罫線 1.はじめに S A Sによる集計・解析の出力は、通常、そのままではレポートとして使いづらい。そ れを見やすい表の形のレポートにまとめるにあたって、様々な方法が考えられる。そ の主なものを表 1に示した。 方法 lは極めて原始的であるが、結構行われているのではないか。急にレポートを まとめなければならない時はこの方法に頼らざるを得ない。もう少し進むと、方法 2 になる。方法 lよりはましであるが、手作業によるミスは防げず、データの信頼性は 低い。方法 l、 2共に作業はその場限りでルーチン化はできない。強いてメリットを あげれば、自由なフォームが作れるという事くらいであろう。 方法 3は漠然としているが、とにかく S A SとS A S以外のソフトウェアまたはハードウ ェアと組み合わせて、システム的にレポートを作成するという方法である。一度シス 33一

41.

表 1 SAS出力からのレポート作成方法 ア J 評価項目 タ の 言 { 作〈 業マ のン 労パ カワ 頼 レポート作成方法 作 業 の jレ 三 民 月 又a レ ポ 備 ト 投 の 士 イ チ 性 〉 ン 化 資 上 り × × × A 。 A × × f j 。 。 A 。 × 。 。 。 。 。 ワ S A Sの出力を見ながら、他のソフト(ワ ープ口、表計算等)で手作業で表を作成 する S A Sの出力テキスト、データを他のソフ 2 ト(ワープロ、表計算等)に取り込み、 手作業で表を編集する S A Sの出力テキスト、データを他のソフ 3 トで加工して出力するシステムを作り 利用する S A Sによって見やすく加工した出力テキ 4 ストをそのまま使用する 。=非常に良い 0 =良い 6 =まあまあ x=悪い テムを作り上げてしまえば、データの信頼性も高く優れた方法といえるが、最初にシ ステムを作り上げるまでが大変だし、設備投資もかかる。 方法 4が今回の発表の目的となる。データの信頼性は最も高いし、ソフトウェアは S A Sがあれば良いので設備投資もかからない。問題はレポートの出来映えである。いか A Sで作れるだろうか。 にすれば満足のゆくレポートが S S A Sは、いろいろなプロシジヤによって様々な集計・解析を行い、その結果をテキス トまたはデータセットとして出力する。例えば、クロス集計表は TABULATEプロシジャ でテキストとして出力される。一覧表などは P R IN Tプロシジャあるいは PUTステートメ ントでテキスト出力される。また、平均、 S .D .などの統計量や、検定結果などは FREQ、 MEANS、GLMなどのプロシジャでテキストまたはデータセット出力される。これら一連 の作業を図 1に示した。この図を見てわかるように、データセット出力も最終的には PRINTプロシジャの出力となるし、またテキスト出力された統計量なども、 I N P U Tステ ートメントでデータセットとして取り込む事によって、 PRINTプロシジャの山力にもつ ‑34 ←

42.

集計表 ー→ PROC TABULETE ー→ テキスト出力 一覧表 ー→ PROC PRINT ー→ テキスト出力 統 計 量 一 → FREQ 検定 MEANS ー → デ ー タ セ ッ ト ー → PROC PRINT ー → テ キ ス ト GLM 等 出力 出力 ↓ テキスト出力 一→ ↑ データセット取り込み ほ と ん ど の 集 計 ・ 解 析 は TABULATEプ ロ シ ジ ャ と PRINTプ ロ シ ジ ャ の 出 力 に 集 約 可 能 。 図1 S A Sによる集計・解析 てゆく事ができる。従って、 SASによる主な集計・解析の結果は、 TABULATEフ。ロシジャ およびPRINTプロシジャのテキストファイル出力に集約で、きる事がわかる。 この TABULATEプロシジャと PRINTプロシジャの出力を加工して見やすい表にできれば、 A Sで加工するのだから、テキスト 表 1の方法 4の目的はかなり達せられるであろう。 S ファイルのままで出来る方法がよい。そこで、これらの出力テキストを全角経線キャ ラクターを用いて罫線付きの表にできないかと考えた。それも、簡単にマクロ lつで 実行できるような、汎用的に使える方法にしたい。 試行錯誤の結果、まず、 TABULATEプロシジャの半角罫掠表を全角罫線表に変換する 方法が確立できた。次に、この方法をベースに PRINTプロシジャの出力を全角罫線表に ) 頃を追って説明する。 変換する方法を確立した。以下、 1 2. TABULATEプロシジャ出力を全角罫線表にする方法 TABULATEプロシジャの出力は、半角の罫線記号 ( ‑ 1+)を用いた表として出力される。 この半角罫線記号を全角罫線記号に置き換える事ができれば良い。それには、半角罫 線表の上下左右の角、接点、交点をユニークに識別しなくてはならない。これは、テ キストを lバイトづっ読み込み、前後、左右の文字を比較する事で解決した。半角罫 線の角、接点、交点が識別できたら、あとは TRANWRD関数で 2バイトづっ置き換えれば 全角罫線表の完成である。これら一連の変換は全てマクロ児 ZTABLEで行えるようにした (詳しくは別添プログラム ZTABLE.SASを参照)。 Ru nJ

43.

実行例(表 2 )に基づいて、作業手 1債を説明する。 まず、任意の T A B U L A T Eプロシジャ出力を P R I N T T Oフロシジャを使ってテキストファイ ルに落とす(表 2上)。ただし、 T A B U L A T Eプロシジャでは、表の見出しゃセルの幅が 2バイトで割り切れるように、全て奇数で長さを指定する必要がある(重要!)。これ は、半角罫綿を 2バイトづ、つ全角罫線に置き換えるためと、見出しの全角文字がハイ フン(‑)で折り返すようにするためである。 (例) P ROC PRINTTO FILE='TABLEI.TXT' N E W ; PROC TABULATE •••• ; CLASS . . . . ; TABLE •••• / R T S =• FORMAT . . . . ; PROC P RI N T T O ; R U N ; ※ N EW を 忘 れ ず に ! ※ R TS= は 奇 数 に す る ! ※ F ORMAT の 長 さ は 奇 数 に す る ! あとは、あらかじめ Z T A B L E . S A Sを実行した上で、マクロ % Z T A B L Eを実行すれば良い。 パラメータは順に元ファイル、変換後ファイルを指定する。 (例)目 I N CZTABLE; %ZTABLE('TABLEI.T X T ', 'TABLE2.TXT') 表 2中央のような中間ファイルを経て、全角罫線化されたファイル表 2下ができ上 がる。 T A B U L A T Eプロシジャ出力の際、 F O R M C H A R = を指定して表の半角罫線記号の角や交点 などをユニークにする方法があるが、より汎用的にしたかったので採用しなかった。 おかげで、見 Z T A B L EはT A B U L A T Eプロシジャの表ばかりでなく、例えば P U Tステートメン トで出力した半角罫線の表を全角罫線に変える事も可能となった(表 3。 ) また、表 2上を見ると、見出しにアンダーパー(一)を使っているが、罫線変換後 ( 表 2下)ではなくなっているのに気づかれると思う。これは、見出しが左端に寄って バランスが悪い場合などに、アンダーパーで位置を調節出来るような仕様にしたため である。アンダーパーは変換途中で半角スペースに置き換わるようにしているが、場 合によっては置き換えずに残しておく事もできる(別添プログラム参照)。 ρ o q u

44.

表 2 TABULATEプロシジャ出力の全角罫線化実行例 改 善 度 中 等 ‑1 1 1 1 1 ̲改善率(%) │:薬剤│謹‑│管慢霊│不変│鷺│合計 1 3 一 面i ‑ 三言語│ 1 1 , T A B L E1 .T X T ' (P R O CP R1 N T T O によって 低用量 I 5 I 1 0 I 7 1 3I 2 1 2 7I 1 8 .5 I 5 5 .6 ファイル出力された 高用量 I 1 0I1 4 1 4 I 1I 1I 3 01 3 3 .3 I 8 0 .0 P R O CT A B U L A T Eの 表 ) 合 計 I1 5I2 41 1 1 I 41 3I 5 71 2 6 . 3 I 6 8 . 4 I 改 善 度 1 中 芽 1̲̲̲I 1 I ̲̲I 1 I 改善率(日) 1 l 薬剤│謹│書改│欝│不変│難│合計i ‑ Z 副三説記 (% Z T A B L E実行中の 中間ファイル) │低用量 I 5 I 1 0 1 7 1 3 I 2I 2 7I 1 8 . 5 I 5 5 . 6 I l高用量 1 1 0I1 4 I 4 1 1I 1 1 3 01 3 3 . 3 ! 8 0 . 0 1 合 証 l iil jil 111 l 41 31 571 26.31 m.4‑l 改 善 度 改善率(日) 襲 警 不 ; ; ; 中 等 度 寝 合 変 霊 計 著明 ; 薬 剤 喜 望 低用量 5 1 0 7 高用量 1 0 1 4 4 合 計 1 5 2 4 1 1 3 4 2 3 2 7 1 8 . 5 5 5 . 6 3 0 3 3 . 3 8 0 . 0 5 7 2 6 . 3 6 8 . 4 ' T A B L E 2 .T X T ' (全角罫線に変換された 表) 表 3 PUTステートメントで出力した半角罫線表を全角罫線化した例 臨床検査値 │ 項 目 │時期 1 N M E A N : : ! : : S . D . M I N ~ M A X 1 P U T ステートメントで 出力した表 │赤血球数 │ 前 14 9 4 4 7 . 6 : : ! : : 4 7 . 6 7 3 7 5 .0~ 5 7 0 . 01 1 I 後 14 9 4 41 .9 : : ! : : 4 7 . 0 2 3 4 2 . 0~ 5 5 7 . 01 │ 前 14 9 16.91 │血色素量 │ 1 3 . 7 : : ! : : 1 .3 9 1 1 .2~ ユ ー ご‑Ii‑1 lF7‑zlly‑‑Iji‑‑ii 臨床検査値 項 赤血球数 血色素量 目 時期 E A N : : ! : : S .D . N M M I N ~ M A X 前 4 9 4 4 7 . 6 : : ! : : 4 7 . 6 7 3 7 5 . 0~ 5 7 0 . 0 後 4 9 4 41 .9 : : ! : : 4 7 . 0 2 3 4 2 .0~ 5 5 7 . 0 1 1 .2~ 1 6 . 9 1 0 .4~ 1 6 . 6 前 4 9 1 3 . 7: ! : 1 .3 9 後 4 9 1 3 . 5: ! : 1 .3 5 全角罫線変換後 ハペu ワ ー

45.

3. P R I N Tプロシジャ出力を全角罫線表にする方法 P R I N Tプロシジャの出力をよくよく見ると、ある事に気がつく。もし、 P R J N Tプロシ ジャ出力の空いている行や、変数と変数の聞に罫線を引く事が出来れば、立派な表に なるのである。既に、半角罫線表から全角罫線表を作成する方法は確立された。あと は 、 P R I N Tプロシジャ出力の行間や文字間の空きを読みとって半角罫線記号 ( ‑ 1+)を書 き入れる事が出来れば良い。しかし、これがなかなかやっかいであった。タイトルと 変数見出しとの区別、改ページの問題、見出しより変数が長い場合、短い場合などク リアしなければならない問題が多かった。ともあれ、何とかこれらもマクロ化する事 P R I N T . S A S、H P RI NT .S A S、P R E P R I N T . S A Sを参照)。 が出来た(別添プログラム Z 実行例(表 4)に基づ、いて、作業手順を説明する。 R IN Tプロシジャの出力を P R J N T T Oプロシジャでテキストファイルに落とす まず、 P ( 表 4上)。全角罫線を書き込む際に表の横幅が若干広がるので、出来るだけ変数の間 隔を詰めて出力するようにする。また、表が 2ページ以上になる場合、 W I D T H = P T I O N Sで U N I F O R Mで幅を揃える必要と、ページの最後に罫線を引く行が要るため、 O 1ページ当たりの行数を l行以上少なくする必要がある。 (例) O PTIONS LS=80 PS=59; ※ 6 0行 で 出 力 す る 場 合 PROC PRINTTO FILE='PRINTl.TXT' N E W ; PROC PRINT •••• WIDTH=UNIFOR阿; I Dx x x ; BY x x x ; ※ N EW を 忘 れ ず に ! ※ 山D TH=UNIFORM は 必 須 ! ※ I D と BY に 同 じ 変 数 を 指 定 V A R. . . . ; すれば列見出しになる PROC PRINTTO; R U N ; あとは、 Z P R I NT .S A Sを実行した上で、マクロ % Z P R I N Tを実行すれば良い。パラメータ は順に元ファイル、変換後ファイル、行サイズ、ページサイズを指定する。 (例) % INC ZPRINT; 出Z PRINT('PRINTl.TXT', 'PRINT2.TXT', 9 0, 6 0 ) 表 4中央のような中間ファイルを経て、全角罫線化されたファイル表 4下が出来上 がる。なお、見 Z P R I N Tの中では % Z T A B L E ( T A B U L A T E出力全角化)が呼び出され、実行され ている。 T A B L Eでは、各セルの長さをあらかじめ奇数に揃える必要があったが、この 先の児Z % Z P R I N Tでは変換途中で幅を読みとって揃えてゆくのでその必要はない。 R I N Tフロシジャの出力から半角罫総の表がほしい事もあろう。そ 場合によっては、 P P R I NT .S A Sも作成した。使用方法はまったく一 んな時のために半角罫線化プログラム H P R I NT .S A S実行の上、見 H P R I N Tを実行すれば良い。結果は表 5に示したが、 緒で、 H % Z P R I N Tと違って表が広がらずにすむ。 38‑

46.

表4 P R1 N Tプロシジャ出力の全角罫線表化実行例 副作用発現症例一覧 症例番号性別年齢一症一状 0 2 0 3 男 0 3 0 5 女 0 5 0 4 4 2 眠気 2 8 軽度 ~l倦怠感 1 5日 豊富 中等j 支 2 9 頭痛 男 発現までの 日数 持続日数転帰 程度 8日 ' P R I N T1 .T X T ' (P R O C PRINTTO に 8日 消失 1 4 7日 消 消 失 された PROC PRINT 5日 軽減 の表) よってファイル出力 ↓ 副作用発現症例一覧 ‑ ‑ 1 ‑ 一 ‑ ‑ 一‑ ‑ 1 ‑ ‑ ‑ ‑ ‑ 1 ‑ ‑ ‑ 一 ‑ ‑ 一 ‑ ‑ 一 ‑ ‑ 一 ‑ ‑ 一‑ ‑ 1 ‑ 一 ‑ ‑ 一 ‑ ‑ 一‑ ‑ 1 ‑ 一 ‑ ‑ 一 ‑ ‑ 一 ‑一 一 ‑ ‑ 一‑ ‑ 1 ‑ 一 ‑ ‑ 一 ‑ ‑ 一 ‑ 一‑ ‑ 1 ‑ 一 ‑ ‑ 一‑ ‑ 1 一 ‑ 旦雪塑封竺オ|凶凶竺り伺矧叫 F型!H4h|Lb 引吐団~塑到空塑堕到|一一liË空主 ι-一tt 1男 1 1 眠気 l軽度 1 15 日 1 8 日 │消失 i ‑ 一 ‑ ‑ 一 ‑ ‑ 一‑ ‑ 1 卜 ‑ ‑ 一 ‑ ‑ 一‑ 1 ‑ ‑ ‑ ‑ ‑卜一一一一一一│ 一ー│一一一一一ー 1 ‑ 一一一一│ー一一 l 0203 附 4 2 (日 Z PRINT 実行中の 中間ファイル) Ii │1 1 El 浩 美i !II 女 2 8 盟倦怠感│豊富 目 一 一l 一一│一一ー│一一一一一一ー│一一一ー│一一一一一一│一一一一ー│一一ー│ -ETLi--引-竺|旦空一一一一斗士塑|--土E一一一 I---~-~--I 竺塑| 副作用発現症例一覧 症状 症例番号 性別 年齢 程度 発現日ま数での 持続日数 転帰 0 2 0 3 男 4 2 眠気 軽度 1 5日 8日 消失 0 3 0 5 女 2 8 ~l倦怠感 鞍 1 2日 1 4 7日 治 安 │ 0 5 0 4 男 2 9 頭痛 8日 5日 軽減 表5 中等度 ' P R I N T 2 .T X T ' (全角罫綿に変換 された表) P RI N Tプロシジャ出力を半角罫線表にした例 副作用発現症例一覧 1 1 1 1 1 発現までの 1 1 1 症例番号│性別│年齢 l 症 状 │程度│ 日数 │持続日数│転帰│ ‑ ‑ ‑ 1一ー│ーー│一一一一一一│一一一│ 一一一 │一一一 1 ‑ ‑ ‑ ‑ 1 0 2 0 3 1男 14 21 眠気 │軽度 I 1 5 日 18 日 i 消失│ 一一一一一 l 一一一一│一一│ 一一│一一│一一│一一一一一│一一一 l 附 │ 女 │28│盟 倦 怠 感 │ 臨 Ii 目 1 1 1目 │ 畿 │ 'PRINT1 .T X T 'を 出H PRINT で半角罫線に 変換した場合 ‑ i i i i ‑ l E l z ‑ l i 扇 一 一 一 │ 説 記 ‑7E 寸子百一│扇│ 表6 P RI N Tプロシジャで 1 0変数、 B Y変数を指定しない場合の例 ユーティリティプログラム一覧 OBS 2 3 4 5 6 7 FILENAME HPRINT S A S A S MKSASD S PREPRINT S A S A S RAWLST S A S VLABEL S ZPRINT S A S A S ZTABLE S SYZE DATE TITLE ( M角罫線 D )化マクロ ( H P R1 NT ) V er 2 .1 1 4 94‑09‑09 プリントプロシジャ半 1 0 94‑10‑06 日 付 リ 変 ン 数 ト変換マクロ KSASD) V e r .1 .2 プロシジャ罫線化前処理マクロ (PREPRINT) Verl.0l 9 94‑08‑05 プ 9 94‑07‑14 一 覧 フ 表 ベ 作 成 f I :マクロ (RAWLST) 4 ‑ 0 8 ‑ 0 1 プ 縦 ル 成 マ ク ロ (VLABEL) V e r .2 . 0 1 3 9 4 94‑09‑09 リントプロシジャ全罫角線表罫線作成 化マクロ ( Z P R1 NT) V er 2 .1 1 半角罫線表から全角 マクロ ( Z T A B L E ) Ver2.01 1 3 94‑08‑03 ηペU Qd

47.

全角罫線化も半角罫線化も途中までの変換手順は同じなので、共通のプログラム P R E P R I NT .S A Sによるマクロ児P R E P R I N Tを使用している。また、全角罫線化では % Z T A B L E が呼び出されている。従って、 Z P RI NT .S A S、H P R I NT .S A S、P R E P R I N T . S A Sの 3っと Z T A B L E .S A Sはセットで必要である。 P R I N Tプロシジャの出力を表にする場合、 I D 変数と B Y変数を同じ変数で指定すれば、 見出し変数となりより表らしくなるが、必ずしも必要ではない。指定しない場合の出 力を表 6に示した。何かのリストがほしい時などはこれで十分である。 4. 問題点など (1 )J P R I N Tプロシジャとの比較 S A Sには、半角罫綿記号の表をグラフイカルな表に変換する J P R I N Tプロシジャが用意 されている。しかし、グラフは操作が重い(実行に時間がかかる)、明朝体のフォント が汚い等の理由から使い勝手があまり良いとは感じられない。 テキストファイルのまま全角罫線に変換する本論文の方法の方が操作が軽いし、必 要ならば全角罫締のテキストファイルを他のソフトに取り込む事もたやすく出来る。 ( 2 )W I N D O W S環境での出力 弊社では、 S A Sは主に B A X 環境下で使用しているが、徐々に W I N D O W S版 S A Sも使い始め た。ここで lつ問題が起きた。 B A X環境下でのテキスト出力は全角罫総記号がきれいに つながって表になってくれるが、 P C 環境下でのテキスト出力は罫線記号が行問、文字 間で切れ切れになってしまう。フリンタとプリンタドライパの組み合わせによっては きれいにつながって出力されるものと思われるが、残念ながら弊社のプリンタの機種 ではうまくゆかなかった。 (3)改良すべき点 % Z T A B L E ( T A B U L A T E 全角表化)では、 T A B U L A T Eプロシジャでセルの長さを奇数にしてお かなければならない点が最後まで残った。なんとか変換しながら幅を揃える方法を考 えたが、表が大見出し、小見出しとなっている場合(表 2の改善率の箇所)、どうして も幅を揃える方法が見つからなかった。 % Z P R I N T ( P R I N T全角表化)では、幅を奇数に揃えながら表に変換する際、不必要に表 が広がってしまう欠点が解決出来ないでいる。 また、両者とも 1種類の太さの罫線記号しか使用していないが、例えば表の外枠や 見出しとの境の罫線を太くすればより見やすい表になると恩われる。 これらの点は、出来れば改良してゆきたいが、現状でも十分使用に耐え得るものと 考える。 4 0

48.

別添 本 全角罫線化プログラム ZTABLE.SAS (TABULATEプ ロ シ ジ ャ 出 カ 全 角 罫 線 化 プ ロ グ ラ ム ) ZPRINT.SAS (PRINTプ ロ シ ジ ャ 出 カ 全 角 罫 線 表 化 プ ロ グ ラ ム ) HPRINT.SAS (PRINTプ ロ シ ジ ャ 出 カ 半 角 罫 線 化 プ ロ グ ラ ム ) PREPRINT.SAS (PRINTプ ロ シ ジ ャ 出 カ 罫 線 化 前 処 理 プ ロ グ ラ ム ) 【U TI LI TY]半角罫線表から全角罫線表作成マクロ ( Z T A B L E ) V e r 2 . 0 1材 料 料 材 料 ; ZTABLE.SAS; 本 9 4 ‑ 0 8 ‑ 0 3 内田 * 章一一一ーーーーーー一一ーーーーをプランクにする : 唱目ム A‑

49.

CALL SYMPUT('LTH'.TRIM(LEFT(L))); E N D ; R U N ; 章 一一一‑F ORMCHAR のi 疹正一ー一一一; ト‑‑ F ORMCHAR 3 45 の 修 正 ( FORMCHAR 6‑1 1の修正の準備)ーー; DATA ̲ N U L L ̲ ; 品L T H ) $ 1 CHR1‑CHR品L T H ; ARRAY CHR( T H )$ 1 LGCHR1‑LGCHR&LTH; ARRAY LGCHR(品L RETA!N LGCHR1‑LGCHR&LTH; ! N F ! L E' T 1 .T T T ' TRUNCOVER E N D = E O B S ; F!LE ' T 2 .T T T ' ; ! N P U T 曲1(CHR1‑CHR&LTH)($CHAR1.) 自由; ! F N n o t = l THEN D O ; V A L品 (L T H ‑ 2 ) ; D O! = 3T O日E 寧‑ F ORMCHAR 3 45 (6‑ 1 1 )ー; ! F LGCHR(!‑l) n e ' ‑ 'a n d LGCHR(!+l)=', ー a n dL G C H R ( ! + 2 ) = 'ー' a n d CHR(l)='[ 'T HEN LGCHR( l )= " & C 1 " ; ! F LGCHR(!‑2) = ' ー , a n d LGCHR(!‑l)='‑' a n dL G C H R ( ! + l ) =' ー , a n d LGCHR(!+2) = ' ー ' a n d CHR(l)='[ 'T HEN LGCHR( l )= " & C 2 " ; ! F LGCHR(!‑2) = ' ー , a n d LGCHR(!‑l)='‑' a n dL G C H R ( ! + l )n e ' ‑ ' a n dC H R ( ! ) = ' [ ' THEN LGCHR(!)="&C3"; E N D ; ト左端の処理 ~O~~~~~~ ~ S6 ~ ~ー; ! FL G C H R 2 = ' ‑ 'a n d LGCHR3ニー a n dC H R 1 = ' I 'T H E N LGCHR1="&C1"; ! F LGCHR3=', ー a n dL G C H R 4 = ', ー a n dC H R 2 = ' I 'T H E NL G C H R 2 = " & C 1 " ; E N D ; P U T 曲1(LGCHR1‑LGCHR&LTH)( $ C H A R 1 . ) ; ! FE O B S THEN P U T 曲1( C H R 1 ‑ C H R & L T H )( $ C H A R 1 . ) ; ! N P U T 曲1(LGCHR1‑LGCHR&LTH)( $ C H A R 1 . ) ; ト 表 を 逆] I [ 買にするー; DATA ̲ T 2 ; ! N F ! L E' T 2 .T T T ' TRUNCOVER; T H . .; ! N P U T 曲1L!NE $CHAR品L N +1 ; 2 ;B Y DESCEND!NG N ; P R O C SORT DATA=ーT DATA ̲ N U L L ̲ ;S E T̲ T 2 ; FILE ' T 2 .T T T ' ; !N E $CHAR&LT H .• ; P U T 曲1L トー F ORMCHAR6 ‑ 1 1の修正一ー; DATA ̲ N U LL ̲ ; ARRAY CHR(品L T H ) $ 1 CHR1‑CHR&LTH; ARRAY LGCHR(品L T H )$ 1 LGCHR1‑LGCHR&LTH; RETA!N LGCHR1‑LGCHR&LTH; ! N F ! L E' T 2 .T T T ' TRUNCOVER E N D = E O B S ; F!LE ' T 3 .T T T ' ; ! N P U T@ 1 (CHR1‑CHR&LTH)($CHAR1.) 串曲: ! F ̲N̲ n o t = lT H E ND O ; D O! = 3T O 日EVAL(&LTH‑2); 本‑ F ORMCHAR 9 1 01 1‑ ; ! F LGCHR(I‑1) n e ', ー a n d LGCHR( I )n e "品C 1 "a n d LGCHR(I+1) = ' ‑ ' l )= ' I 'T H E N LGCHR(l )= " & C 7 " ; a n dL G C H R ( ! + 2 ) =' ‑ ' a n dC H R( ー , an dLGCHR(1‑1)ニ'‑' a n d LGCHR(l )n e " & C 2 "a n d LGCHR(!+l ) =' ー ' ! F LGCHR(!‑2) = ' a n dL G C H R ( ! + 2 ) =' ー , a n dC H R ( ! ) = ' [ 'T H E N LGCHR(!)="&C8"; ! F LGCHR(!‑2) = ' ‑ 'a n dL G C H R ( ! ‑ l ) =' ‑ 'a n dL G C H R ( ! )n e " & C 3 "a n dL G C H R ( ! + l )n e ' ‑ ' a n dC H R ( ! ) = ' [ 'T H E NL G C H R ( ! ) = "品C 9 " ; 本‑ F ORMCHAR 6 7 8 ‑ ; ! F LGCHR(I‑l) n e ' ‑ 'a n d LGCHR(l ) =" & C 1 "a n d LGCHR(I+l) = 'ー' a n d LGCHR( 1+ 2 ) ニ'ー, a n dC H R( l ) ニ' 1 ' THEN LGCHR(!)="&C4"; ! F LGCHR( 1‑ 2 ) =' ー , a n dL G C H R ( ! ‑ l ) =' ‑ 'a n dL G C H R ( ! ) =" & C 2 "a n d LGCHR(!+l) = ' ‑ ' ー , a n dC H R ( ! ) = ' I 'T H E N LGCHR(!)="&C5"; a n d LGCHR(!+2) = ' ! FL G C H R ( ! ‑ 2 ) =' ‑ 'a n dL G C H R ( ! ‑ l ) =' ‑ 'a n dL G C H R ( ! ) =" & C 3 "a n d LGCHR(!+l) n e ' ‑ ' a n dC H R ( ! ) = ' ! 'T H E N LGCHR(!)="品C 6 " ; E E S ︐ 1;:; ntntauzauz ︐ . nunununu 山由 E AE A 山由自信山田 一一‑‑‑‑ 1こ2 12 '''! 山由 nknknknk 門H H H HHHHHHHH nunununu phupupUPU T ‑ ILILT‑ M N H M N H M N H M N H EMF 巴 EMEM HnHnHnHn TlTl 干iTl 内 HHHHHHHH口 nunununu 内 ︐︐︐︐ ︐ ︐ ︐ ︐ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ 1 2 1 2 n w A n w A n w A n w A 内 nunununu UA U AUnd A .︐ ︑ ︐ ︐ ︐.︐ 42‑ ︐ AU︐ AU︐ AU︐ A u ︐ ︐ ︐ ︐ ‑ ‑ 一 ‑ ︐ ︐ ︐ ︐ 一一‑一‑‑‑‑ quau‑quaH宝 n w A n w A n w A n w H HnHnH 口H 口︑ J nunununu‑ FUFUFUPU‑4 7LTLTLTLnE A H AUAUAUAUHHH nnnn:nu‑‑ aaaa ︑jeAW︑ ノ ''''l)l; ︒ ︐︐︐︐ ﹁ .︐ ︐ ︑ ‑‑‑‑nwAHHunwAMNH AA 干iAA ====HnyLHnpU 9hqd L η o n u e a n u u n nknknknk 向 w ︑ n k 向w ︑ IA ︑H HnHnHnHn ﹁ 口﹁︑ nu Jnu︑ nunununu ︑ MR ノ R H U FUFUFUFUHn‑Hn. 干 i14TAnk‑nu T ‑ TLTLIL TLnKYLEM‑PD AUAUAUAuaaHnaawVHnEM nnnnnkFUnknuTlnυ aaaaHnrtHnnuyL nunuMmeav ‑"""""put‑FUHunEnu‑‑ titititiyL倫明yl nEAAqd ‑nonunununu‑‑‑TiHn・'Tl Eaaaaaea?ムT l ' i n u q d ‑ nEnun"""nKNUR 'ST 1 干l F L F V E e H n n r H 口‑ 干l n川百K n n = ‑ ‑ n u n U 5 t T i E u = E u hAAAFUMHFUEb 干 lMNAAqu hJH1212LELこ ・ I T ︐ リ ︐ . ︐ . ︐ . KVFUnknknknkrtHnrt b q d y L A A . 山唱川 M m H n H n H n H n T i ‑ h目 ハ 千 i n υ ‑ f 円n k n u n u n u n u ' i ' i M M H ' 1 4 7 1 ‑Enupupupupuawpb倫明戸ト﹂・・倫明TITL JF﹂TAT‑ T L T L T L R U ‑ ‑ムq d E u n E n u T l n υ 日n nunυTIFf‑TATI の 7inu:pa‑ un‑‑PAPARMART‑‑EUHU4C EU*・*・τil‑‑aIlnμTip&﹂一EPAPA‑A MmnunpM日三4AAMmun+nUAA EUPAT‑‑4TITI‑‑MmnUTi nwAA ‑aa *‑nunrnu 民 •• ••• ••

50.

内 ︐ . ‑‑'﹄ bF ︒&・ ・ 一 L ︐ ︐ ︐ . ︐ . ︐ . ︐ . . . . ︐. . .︐ ︑ ︑ ︑ ︑. ︑ ︑ ︑ ︑ ・ 守 ゐ訓 vw. ︐ •.. nnubt ハU a ︐ ︒ ︐ ︐︐︐︐︐︐︐︐︐ 肉 ︑ ;︑I J :)) ‑ 司 昌可; ︐︐︐︐︐︐ 晶 ‑‑‑R Tl J J J J J J J J J u u ‑ 昨日 RZ ﹁﹁ ll ﹁l﹁ilL﹂ l ; ; 3 Jマ da''''''''''' 一‑ R 制・ ‑ ‑ z τ 一 ‑ n E ‑ J い" " " " " " " " " I l ‑ 抑M =n‑‑‑‑ 一‑'' ‑‑"u‑HHHA 回附引・・ . . . . . . . ‑ ・ ‑ ‑ n U T L O一 恥 1A9LuqdnMZFb氏untoOQd'' H n ‑ n U T L P 水中門し nしnしnunununしnしn u ‑ ‑︐ 千 ‑wmean43aaaaaaaaaaaaaaaaaa ﹄ l li‑‑ IL‑HunkAH3"""""""""''‑ aa‑DAantr ''''''''''UH nETiHnLT 一 官UFιEUFιEMEMEMEMEMEMEUTl nしJ弓2unwmwmwmM A A L ﹁﹄ 円M門町民M 円MnMnM 円T l u mwFETiTi‑‑yiyiTi'121111111aa uHi‑‑ ;nu れ U1TlEu‑‑TLILILILILILILILILTLTLnE 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ 〆︑ AA 'eψ ぷFTlYLEMZ3 Tl 与ニ TlnDMREτ nυnυnυnμnμnμnυnμnυnυnυHn ﹁い ︐ TlEMJAJ‑AA‑‑H nEnEnEnEnknEnEnEnEnknknu‑‑ T l u n ‑ ‑ UTi‑L‑ EU 一一‑ロ凶円凶円凶円凶円凶円凶円凶円凶円凶円凶円凶円︒︒ ‑ I l ‑ ‑ T l 勺L L ﹃ewmwmwmwmwmwmM円MmwmM円W R Y ‑ u ︑ ︒ a ト‑ nu'ELM‑'ELM m嶋 1 唱 Aa' ・a ・a ・a ・a a ・a ・a H u n H U a a a a T‑‑L 白隠﹁ P A P A P A R R P A R R P RRNA 円A ︑三 TITITAT‑TITl →iTITAT‑ →i ' tょ ‑nUEM TAT‑ 向四一 MmyLTI‑‑==========IL 勺 L Eu‑7iEMHU‑EMEMEMEMEME‑EUEMEME‑EU TLTl‑PAYLnr‑MNMNM MNMmwmwmwmwmwmwRTlnυ 円 Tinu‑‑'‑AAMRTium‑Ti‑‑TiviTITAT‑Tir‑‑‑yinu‑‑M円 RfnrMH‑ l 干T IRE‑‑ψ 令 官LtLtLtLtLtLtLtLtLtLtLnruREU Hu‑‑AHUH 問 nE+T n υ n E W A •• 本 [ U T1 LI T Y Jプリントプロシジャ全角罫線化マクロ ( Z P R I NT) V e r 2 .1 l**林材料株; 本 Z P R1 NT .SAS ; 本 9 4 ‑ 0 9 ‑ 0 9 内田 /牢ーーーーー一一一ーーーーーーーーーーーーーーーーーーー一一一一ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー PROC PRINT で作成したテキストファイルを全角罫線付きの表にする。 く注意事項〉 1 . PROC P R1 N Tの P S を 1行以上少なく設定すること 2 . PROC PRINT に UNIFORM オプションをつけること S1 7 0以下 3 . PROC PRINT の L 4 . テキスト中に r ]Jを使用しないこと 7 . OPTIONS の NUMBER は指定不可 6 . 同じプログラムディレクトリに P R E P R1 NT .SAS、ZTABLE.SAS をおくこと く指定方法〉 百Z PRINT('元テキストペ'作興される弄'.L S .P S . またはブランク) (例)日 ZPRINT('OLD.TXT'.'NEW.TXT'.90.60.̲) ※ を残す 日Z PRINT (' O L D .T X T ' .' N E W .T X T ' .9 0 .6 0 . ) ※ーをプランクに換える ーーーー一一一ーーーーーーーーーーーーーーーーーーーー一一一ーーーーーーーーーーーーーーーーーーー一本/ FILENAME S P 'NSKK$USER:[UCHIDA.SASBMS.PGMJ'; 出I N C SP(PREPRINT); 出I N C SP(ZTABLE); 日 間A CRO ZPRINT(PPRINT.ZPRINT.LS.PS.UBAR); トー罫線元表作成一ー: 日P R E P R I N T ; OPTIONS LS=品L SP S = & P S : トー罫線作成一ー; DATA ̲ N U L L ̲ ; SET ̲ P 2 ; B Y PAGE K E Y ; 出I F &UBAR= 日THEN 弘D O ; L1 NE=TRANWRD( L1 N E .' ̲ '. ' ');ト一一 出E N D ; I F KEY n e 0THEN D O ; I F FIRST.KEY THEN D O ; ' . '1 ‑ ' ) ; LINE=TRANWRD(LINE.'1 LINE=TRANWRD(LINE.' Y ' . 'ー │ 一 ' ); , ,'I'): L1 NE=TRANWRD( L1 N E .'1ー LINE=TRANWRD(LINE.' 1ー ,,,I ' ); LINE=TRANWRD(L lN E . '̲ ' . '' ) ; E N D ; ELSE D O ; LINE=TRANWRD(LINE.' 1 ' . ' 1' ) ; LINE=TRANWRD(LINE.' Y ' . ' 1 '); E N D ; E N D ; FILE ' P 2 . P P P ' ; P U T@ 1 LINE $CHAR180.; R U N ; トー罫線全角化一一: 日Z TABLE('P2.PPP'.&ZPRINT.一); OPTIONS P S = 6 0L S = 9 0 ; 日M END Z P R I N T ; 一一一ー ‑43一 をブランクにする

51.
[beta]
*[UTILIT口プリントプロシジャ半角罫線化マクロ (HPRINT) Ver2.11 牢牢牢牢牢*牢*材:
*HPRINT.SAS;
* 940909 内田 ;
/
牢
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
一
一
一
一
一
一
一
一
一
一
一
一
ー
一
一
一
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
P
R
O
CP
R
I
N
T で作成したテキストファイルを半角罫線付きの表にする。
〈注意事項〉
1
. PROC P
R1
N
Tの P
S を 1行以上少なく設定すること
2
. PROC PRINT に UNIFORM オプションをつけること
3
. PROC PRINT の L
S1
7
0 以下
4
. テキス卜中に r
l VJ を使用しないこと 7
. OPTIONS の NUMBER は指定不可
5.ι はプランクに置き変えることが出来る
6
. 同じプログラムディレク卜リに P
R
E
P
R1
NT
.SAS をおくこと
く指定方法〉
日H
P
R
IN
T('元テキストペ'作成される表, .
L
S
.P
S
.ーまたはプランク)
(例)制 PRINT('OLD.TXT'.'NEW.TXT'.90.60.̲) ※ーを残す
X
T
'
;'
N
E
W
.TXT';90;60;Y ※ をプランクに換える
日HPRINT('OLD.T
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー】ー ー
ー
牢
/
FILENAME S
P 'NSKK$USER:[UCHIDA.SASBMS.PGM]';

見I
N
C SP(PREPRINT);

日
間A
CROHPRINT(PPRINT.HPRINT.LS.PS.UBAR);

トー罫線元表作成一ー;

日P
R
E
P
R
I
N
T
;

O
P
l
・
I
O
N
SL
S
=品L
SP
S
=
&
P
S
;
トー罫組作成一ー:
DATA ̲
N
U
L
L
̲
;S
E
T̲
P
2
;
B
YP
A
G
EK
E
Y
;
日I
F&UBAR= 日THEN%
D
O
;
LINE=TRANWRD(LINE.'
一
," '
)
; ト一一一一一一一一ーをプランクにする:
日E
N
D
;
I
F KEY n
e 0THEN D
O
;
L
1NE=TRANWRD(LINE.'
Y
'
.
'1
'
)
;
I
F FIRST.KEY THEN D
O
;
1ー
, .'I
'
);
LINE=TRANWRD(LINE.'
L
1N
EニTRANWRD(
L1
N
E
.'1一, t ' I');
LINE=TRANWRD(LINE.'
一
," '
)
;
I
F KEYニ1o
r KEY=MAXKEY T
H
E
NL
I
N
E
=
T
R
A
N
W
R
D
(
L
I
N
E
.'
1
'
.
'ー');
E
N
D
;
E
N
D
;
FILE &HPRINT;
P
U
T 圃1LINE $CHAR180.;
R
U
N
;
OPTIONS P
S
=
6
0L
S
=
9
0
;
日
間E
NDH
P
R
I
N
T
;

牢 [UTILIT口プリントプロシジャ罫線化前処理マクロ (
P
R
E
P
R
I
N
T
) Ver1.01 牢
牢牢牢牢牢牢牢牢牢;
牢 P
REPR1
NT
.SAS ;
牢 9
40
80
5 内田
/
*
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
ー
PROC PRINT で作成したテキストファイルを全角・半角罫線付ぎの表にする
ための中間ファイルを作成する。
日HPRINT および日 ZPRINT 中に呼び出して実行する。このマクロ単体では
使用しなし、。
ー
一
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
】
ー ー
ー
ーーーーーーーーーーー牢/
%MACRO P
R
E
P
R
I
N
T
;
OPTIONS LS=&LS P
S
=
&
P
S
;
トー P
R
O
C PRINT T
E
X
T 取り込み、表の最大幅検索一ー;
DATA ̲NULL
̲
;
I
N
F
I
L
E &PPRINT TRUNCOVER E
N
D
=
E
O
F
;
.P
P
P
'
;
FILE '
P1
INE $CHAR170.;
I
N
P
U
T 圃1L
RETAIN FSTLINE B
F
O
P
A
G
E
;
I
F̲
N
̲
=
l THEN D
O
;
FSTLINE=LINE; B
F
O
P
A
G
E
=
l
;
E
N
D
;
ーーーーー') T
H
E
NL
I
N
E
=
''
;
I
FI
N
D
E
X
(
L
I
N
E
.
' ーーーーー
I
F N=
1o
r LINE n
e FSTLINE T
H
E
NP
U
T 曲1""2L1
N
E$
C
H
A
R
1
7
0
.
:
ト
ーに満たない分のプランク行を補うっ
'
I
F ̲N̲>2 a
n
d LINE=FSTLINE T
H
E
ND
O
;
D
O1
=
1T
O &PS‑MOD(̲N̲‑BFOPAGE.&PS);
;
P
U
T 曲1" "
E
N
D
;
<
11" "(
<
12F
STL1
N
E$
C
H
A
R
1
7
0
.;
P
U
T(
44

P
S

52.
[beta]
AUZ

RU

BFOPAGE=̲N̲;
E
N
D
;
I
FE
O
Fa
n
d LINE n
e ' ,THEN P
U
T 曲1""
;
DATA ̲
P
1
;
I
N
F
I
L
E'
P
1
.
P
P
P
' TRUNCOVER E
N
D
=
E
O
F
;
IN
E $CHAR171
.
;
I
N
P
U
T 圃1L
RETAIN L 0
;
L
G
L
IN
EニL
A
G
1(
L
I
N
E
)
;
I
F N=
1 THEN D
O;
K
E
Y
=
O
;P
A
G
E
=1
;
E
N
D
;
I
F̲
N
̲
>
1 THEN D
O
;
I
F LGLINE n
e
" a
n
dL
I
N
E
=
" T
H
E
NK
E
Y
+
1
;
O
;
I
F MODしN̲.&PS)=1 THEN D
K
E
Y
=
O
; P
A
G
E
+
1
;
E
N
D
;
E
N
D
;
I
F KEY>O a
n
d L<LENGTH(LINE) THEN L=LENGTH(LINE);
I
FE
O
F THEN D
O
;
L
+
1
;
CALL SYMPUT('LTH'.LEFT(L));
E
N
D
;
R
U
N
:
トー各ぺージの最大キー(補ったプランク行検索用)ーー;
DATA ̲
P
B
1
; SET ̲
P
1
;
B
YP
A
G
E
;
I
F LAST.PAGE THEN D
O
;
MAXKEY=KEY; O
U
T
P
U
T
;
E
N
D
;
KEEP P
A
G
EM
A
X
K
E
Y
;
DATA ̲
P
1
; MERGE ̲
P
1̲
P
B
1
;
B
YP
A
G
E
;
R
U
N
;
トー縦罫線挿入箇所の検索一一;
出M
ACROSETLBL(DS);
DATA 品D
S
;S
E
T
;
LGLINE=LAG1(LINE);
D
O1
=
1T
O1
7
0
:
)n
e ' ,a
n
d SUBSTR(
L
1N
E
.1
.1
)=
' ,THEN
1
F SUBSTR(
L
G
L
IN
E
.1
.1
SUBSTR(LINE.I.1)='*';
E
N
D
;
DROP LGLINE 1
;
R
U
N
;
日M
E
N
D
;
DATA ̲
P
L
1
;S
E
T̲
P
1
;B
YP
A
G
EK
E
Y
;
n
dn
o
tF
I
R
S
T
.
K
E
Y
;
I
FP
A
G
E
=
1a
n
dK
E
Y二 1a
S
+1
;
R
U
N
;
日D
O1
=
1 出T
O1
0
;
日S
ETLBL(P
L
2
)
日E
N
D
;
P
R
O
CS
O
R
T OUT=̲PL3; B
Y DESCENDING S
;
日D
O1
=
1 日T
O1
0
;
出S
ETLBLC
̲PL3)
日E
N
D
;
PROC S
O
R
T OUT=̲PL4; B
YS
;
DATA ̲
N
U
L
L
̲
;S
E
T ̲PL4(OBS=1);
D
O1
=
1T
O1
6
9
:
)=
' ,a
n
d SUBSTR(
L
1N
E
.1
+1
.1
)n
e ',THEN D
O
;
1
F SUBSTR(
L1
N
E
.1
.1
N
+
1;
V
K
L
'IILEFT(N).LEFT(I));
CALL SYMPUT('
CALL SYMPUT('VKLγ11LEFT(N
)
.'
V
K
L
'1
1L
E
F
T
C
N
)
);
E
N
D
;
e ' ,a
n
dS
U
B
S
T
R
(
L
I
N
E
.1
.1)=' ,T
H
E
ND
O
;
I
FS
U
B
S
T
R
(
L
I
N
E
.11.1) n
M
+
1;
CALL SY
M
P
UT('V
K
R
'1
1L
E
F
T(
M
)
.LE
F
T(1));
E
N
D
;
E
N
D
;
CALL SYMPUT('VKN'.LEFT(N));
R
U
N
;
日P
U
T&
V
K
L
1 &VKL2 &
V
K
R
1 &&VKR&VKN &LTH &VKN &
V
K
L
V
1&
V
K
L
V
2
;
トラベルよりも、項目が左によっている場合の対応ー:
日M
ACROG
E
T
V
K
L
;
出D
O1
=
1 %TO &
V
K
N
;
GVKL&I=SYMGET("&&VKLV&I");
出E
N
D
;
%
M
E
N
D
;
出M
ACRO V
K
L
L
E
F
T
;
DATA ̲
P
G
2
;S
E
T
;
ARRAY GVKL(&VKN) GVKL1‑GVKL&VKN;

53.
[beta]
D
O1
=
1T
O&
V
K
N
;
I
FK
EY
>O a
n
d SUBSTR(LINE,G
V
K
L(I),1) n
e
' ,T
H
E
NG
V
K
L(
I
)=
G
V
K
L(
I
)
ー 1;
E
N
D
;
R
U
N
;
%
M
E
N
D
;
DATA ̲
P
G
1
; SET ̲
P
1
;
LENGTH GVKL1‑GVKL&VKN 8
;
日G
ETVKL
R
U
N
;
出D
O1
=
1 日T
O1
0
;
出V
KLLEFT
%
E
N
D
;
DATA ̲
N
U
L
L
̲
;S
E
T̲
P
G
2E
N
D
=
E
O
F
;
RETAIN VKL1‑VKL&VKN;
ARRAY G
V
K
L
(
&
V
K
N
) GVKL1‑GVKL&VKN;
ARRAY V
K
L
(
&
V
K
N
) VKL1‑VKL&VKN;
D
O1
=
1T
O&
V
K
N
;
I
F̲
N
̲
=
l THEN VKL(I)=GVKL(I);
]
)
くV
K
L
(
I
) THEN VKL(I)=GVKL(I);
1
F GVKL(
1
FE
O
F THEN CALL S
Y
M
P
U
T
C
'V
K
L
'!
!LEFTC1
)
,L
EFT(
V
K
L(1)));
E
N
D
;
R
U
N
;
%
P
I
汀 &
V
K
L
1&
V
K
L
2&
V
K
R
1 &&VKR&VKN &
L
T
H&
V
K
N
;
トー罫線作成一一:
%MACRO M
K
V
K
;
%DO 1
=
1 %TO &
V
K
N
;
出I
F&
1
=
1THEN%
D
O
;
L
!N
E,
&&VKL
&I
,1
)=
'!
'
;
SUBSTR(
日E
N
D
;
日I
F&
1
>
1 %THEN %
D
O
;
日L
E
TH
=日E
V
A
L
(品11);
I
F MOD(品
品V
K
L品l
一
品
品V
KL&H,2
)
=
1T
H
E
N SUBSTR(LINE,&
&
V
K
L
&
I,l
)
=
'
!
'
;
E
L
S
E SUBSTR(LINE,
&
&
V
K
L
&
I,1
)
=
',
'
;
日E
N
D
;
日I
F品I
二
品V
KN 出THEN 見D
O
;
,2
)
=
1 THEN SUBSTR(LINE,&
L
T
H,l
)
=
'
!
'
;
I
F MOD(&LTH‑&&VKL品1
E
L
S
E SUBSTR(LINE,
品L
TH,1)='" ;
日E
N
D
;
%
E
N
D
;
日M
E
N
D
;
DATA ̲
P
2
;S
E
T̲
P
1
;
B
Y PAGE K
E
Y
;
KL
1
=1THEN%DO;
%IF 品V
L
B
=
''
;
日E
N
D
;
日E
L
S
E 出D
O
;
LB=REPEATC
'
,
品V
KL
12
);
弘E
N
D
;
'
,
品L
TH‑&VKL
1
)
;
HK=REPEATC'‑
I
F KEY n
e 0a
n
d FIRST.KEY T
H
E
NL
I
N
E
=
T
R
I
M
(
L
B
)
!!
T
R
I
M
(
H
K
)
;
I
F KEY n
e 0a
n
d (FIRST.KEY o
r KEY<MAXKEY ) T
H
E
ND
O
;
日
間K
V
K
;
E
N
D
;
R
U
N
;
OPTIONS P
S
=
6
0L
S
=
9
0
;
出M
END P
R
E
P
R
I
N
T
;

46
54.

日本 5A5ユーザー会 ( 5UGト 0) S A Sデ ー タ セ ッ ト 管 理 プ ロ グ ラ ム 周 防 節 雄 神戸商科大学・情報処理教育センター S A S datasets monitering Program Setsuo Suoh lnformation Systems Centre, Kobe University o f Commerce 8‑2‑1 . Gakuen‑nishimach, i N ishi‑Ku, Kobe 651‑21 J a p a n . 子百 Sζ , ヒ 1 " ' 1 比 較 的 長 い SA Sプ ロ グ ラ ム で パ ー マ ネ ン ト デ ー タ セ ッ ト が 次 々 に 多 数 作 成 さ れる時、それらのデータセット聞の関係をすばやく正確に把握したいことがよく 生じる。また、ある SA Sプログラムの中で読み込まれる外部ファイルを修正や 更新する際に、その影響を受ける全てのパーマネントデータセットの一覧をすぐ に 知 り た い こ と も よ く あ る 。 今 回 SA Sの ソ ー ス プ ロ グ ラ ム 自 体 を 入 力 デ ー タ と し て 読 み 込 み 、 そ の 中 で 作 成 さ れ る 複 数 の SA Sデ ー タ セ ッ ト の 履 歴 を 表 示 す る S A Sプ ロ グ ラ ム を p c版 S A S シ ス テ ム ( パ ー ジ ョ ン 6 ) 上 に 試 作 し た 。 こ の プ ロ グ ラ ム は ノ て ー ジ ョ ン lで あ り 、 い く つ か の 不 備 な 点 を 残 し て い る が 、 そ の 理 由は技術的な要因ではなく、開発 l こ必要な時間的要因であり、今後早い時期に最 終パージョンを完成させたい。 キーワード: S A Sデ ー タ セ ッ ト 管 理 、 文 字 処 理 、 マ ク ロ 命 令 の 展 開 1. は じ め に さくやぐとるス︑時 成よ正すタすシがい 作が修を一示︒とる早 数とを覧デ表たムい後 多こル一力をしラ て今 o にいイの入歴作グるし︑ 々 た 7卜 を 履 試 ロ い 残 り 次しフツ体のにプてをあ が握部セ自卜上スし点で ト把外タムツ)一付な因 ツにる一ラセ 6 ソ添備要 セ確れデグタン︑を不的 タ正まトロ一ヨに果の間 一く込ンプデジ録結か時 デやみネス S 一付行つな トば読マ一 A パ︑実く要 ンすで一ソ S( しびい必 ネを中パののム説よ︑に マ係のの S数テ解おり発 一関ムて A複スを︑あ開︒ パのラ全 S るシ順ムで︑い で間グる回れ S手ラ l くた ムトロけ今さ A 理グンなせ ラップ受︒成 S処ロヨはさ グセ Sをる作版のプジで成 ロタ A 響 あ で C ム ル 一 因 完 プ一 S 影 く 中 P ラ プ パ 要 を S デるのよのをグンはなン A のあそもそムロサム的ヨ S ら︑︑と︑ラプのラ術ジ いれたにこみグの用グ技一 長そま際い込ロそトロはパ 的︑︒るたみプでスプ由終 較時るすり読 S稿テの理最 比るじ新知て A本ムこのに れ生更にし S テそ期 2 . S A Sデ ー タ セ ッ ト 管 理 プ ロ グ ラ ム の 解 説 今 回 開 発 し た S A Sデ ー タ セ ッ ト 管 理 プ ロ グ ラ ム の 先 頭 で 、 解 析 対 象 と な る S A S プ ロ グ ラ ム の フ ァ イ ル 名 を マ ク ロ 変 数 と し て 定 義 し て か ら ( 付 録 lに あ る ソ ースリストの先頭参照)実行すれば、付録 3の末尾にあるデータセットの一覧表 が得られる。この一覧表には、 l )libname文 の 情 報 、 2)filename文 の 情 報 、 お よ び 、 3) 作 成 さ れ た S A S デ ー タ セ ッ ト と そ の 作 成 に 直 接 関 わ っ た 外 部 フ ァ イ ル 参 照 名 ま た は SA S デ ー タ セ ッ ト と そ の 使 わ れ 方 が 示 さ れ て い る 。 処 理 の 対 象 と な る SA Sプ ロ グ ラ ム は 当 然 の こ と な が ら 文 法 エ ラ ー の な い 正 常 ‑47一

55.

に作動するプログラムを想定している。そのため、以下に示す処理手順には文法 のチェ y クは一切行っていない。 プ ロ グ ラ ム は 大 別 し て 8 つ の ス テ ッ プ か ら 構 成 さ れ て い る 。 以 下 の step1か ら step8 は 、 付 録 I に あ る ソ ー ス プ ロ グ ラ ム の 8 つ の Dataス テ ッ プ に 対 応 し て い る 。 step 1 対 象 と な る S A Sプ ロ グ ラ ム 自 体 を 外 部 フ ァ イ ル と し て 読 み 込 み な が ら 、 11ト・ . * / Jで固まれたコメント部分を削除する。 step2 cards文 ま た は cards4文 が あ る 場 合 は 、 デ ー タ 行 を 削 除 す る 。 さ ら に 、 一 行に複数のステートメントがある場合に、一行当たり単一ステートメン トになるように分割する。 step3 1ト・・ ;J の コ メ ン ト 文 を 削 除 す る 。 step4 アルファベットの大文字をすべて小文字に変換する。 (従って、プログラムが大文字、小文字のいづれで書かれていてもよい。 step5 単一ステートメントが複数行に亘って分割されている場合に、一行(最大 200字 分 ) に ま と め る 。 s t巴p6 変数名 st巴p7 libname、 filename、 data、 cards(cards4)、 infi1e、 S巴t、 m巴rg巴 、 updat巴 の 各 ス テ ー ト メ ン ト に 対 し て 必 要 な 処 理 を す る 。 st巴p8 st巴p7 で 作 成 し た 結 果 を 示 す S A S デ ー タ セ ッ ト を 見 易 い 形 に 変 形 す る 。 line200 を 1i ne ,こ変換する。 付 録 2 に こ の 管 理 プ ロ グ ラ ム の 解 析 対 象 と な る サ ン プ ル S A Sプ ロ グ ラ ム を 載 せている。このサンフルフログラムは、システムのテストのために文法上は正し い が 一 部 故 意 に 異 常 な 表 記 を 採 用 し た 。 付 録 3に そ の 実 行 結 果 の リ ス ト を 載 せ て いるが、 こ こ で は プ ロ グ ラ ム の 処 理 手 順 や 内 容 が 理 解 し や す い よ う に 、 本 論 文 用 に特別に途中結果も表示している。 3. シ ス テ ム 評 価 と 問 題 点 付 録 3の 最 後 に 示 し た 処 理 結 果 は あ る 程 度 満 足 で き る も の で あ る 。 以 下 に 問 題 点、や改善すべき点を列挙する。 ① Procス テ ッ プ を 無 視 し て い る 。 こ れ か ら 発 生 す る 問 題 点 と し て は 、 sortや transpos巴 な ど デ ー タ セ ッ ト を 加 工 す る プ ロ シ ジ ャ で Idata=デ ー タ セ ッ ト 名 」 や 10ut= デ ー タ セ ッ ト 名 」 を 明 示 し た り し な か っ た り し た 場 合 に 、 そ れ に 続 く Dataス テ ッ プ で 例 え ば 1s巴t; J とか 1s巴t last̲J と し た 時 に デ ィ フ ォ ル ト 値 と し て セ ッ ト さ れ る S A S デ ー タ セ ッ ト が 異 な っ て く る こ と が あ る 点 で あ る 。 freqや summaryな ど 、 統 計 処 理 結 果 を 1 0ut=デー タセット名」で指定できるプロシジャでも同じ種類の問題が生じる可能性がある。 また、この種のデータの加工の情報はデータセットの履歴情報としてもぜひ欲し ②クォーテーション・マーク l ' Jや 1 " Jの 処 理 が 完 全 で な い 。 クォーテーション・マーク l ' Jや 1 " Jで 固 ま れ た 情 報 の 内 容 に よ っ て St巴P 2と Step3で の 処 理 に 重 大 な 影 響 を 及 ぼ す こ と が 希 に あ る 。 例 え ば タ イ ト ル 文 で 1tit1巴"宇 XXX'; s巴t test .a ; data;";J の よ う な も の は 実 際 に は ほ と ん ど な い と ‑48一

56.

思われるが、可能性としては考えられる。この場合、今のパージョンでは S tep2で 1tit1e "刊日・;J と Iset test .a ;J Idata;J I";J に 誤 っ て 分 割 さ れ て し ま う 。 STEP2の 前 の 段 階 で ベ ア に な っ て い る ク ォ ー テ ー シ ョ ン ・ マ ー ク の 中 味 を た と え ば ブランクに置き換えてしまえばこの弊害は回避できる。ただし、上記の例のよう i こベアのダブル・クォーテーション・マーク 1 . .J の 聞 に シ ン グ ル ・ ク ォ ー テ ー シ ョン・マーク l 'J が 含 ま れ て い る ケ ー ス も あ り 、 ベ ア に な る ク ォ ー テ ー シ ョ ン ・ マークを認識するには若干プログラミングに手聞がかかるため、今回開発のため の時間的な制約で聞に合わなかったd ③ Idata data ; J の data の 認 識 処 理 は 含 ん で い な い 。 こ れ は Idata;J と 同 じ で あ る が 、 時 間 的 余 裕 が な か っ た た め 、 data の 処 理 は 敢えて省略した。この表記は筆者は使わないため、実用上は全く問題ない。いづ れ組み込む予定である。 ④今回のシステムではマクロ命令を含むプログラムは正確には処理できない。マ クロ命令を自分で展開 ( resolve)し よ う と す る と か な り 難 し い が 、 optionsス テ ー printを 使 う と い う う ま い 方 法 が あ る 。 こ れ を 指 定 す る と 閉 じ た マ ク トメントの m ロ 命 令 だ け は 展 開 し て SA S ロ グ に 表 示 し て く れ る 。 し か し そ れ だ け で は 聞 い た マ ク ロ 命 令 の 展 開 し た ソ ー ス リ ス ト は SA Sロ グ に 表 れ な い 。 そ こ で 解 析 対 象 の S A Sプ ロ グ ラ ム 全 体 を 、 マ ク ロ 命 令 の あ る な し に 関 わ ら ず 、 ひ と つ の 閉 じ た マ ク ロ 命 令 で 定 義 し て 実 行 す れ ば 、 す べ て SA S シ ス テ ム 側 で 自 動 的 に 展 開 し て く れる。このときはもともと開いたマクロ命令も展開され、マクロでない命令もす べ て S A S ロ グ に 表 れ る 。 今 、 仮 に 付 録 2の s ample1 .s as ~こマクロ命令が含まれ ているとすると、具体的には以下のようにすればよい。 見l e t prgname= c:sample1 .s a s ; options mprint; %macro x ; 見include "&prgname"; 見m end; % x ; 一切ばデとすうパり簡そす作 A s j行にる壊よとなばて係︑ ︿の象すをいトれけ見聞にの 寸ら対行トなツそ行を接更連 引れを実ツしセでて表直︒一 べこれをセをタれつ覧にいる ハ︒こロタ行一こ追一歴たれ ハる︒ク一実デはでの履しさ γれ る マ デ で ・ れ 目 こ の に 成 汁されのトけリこは︑トう生 1 示ら先ンだラ︒歴後ツよ 問表得︑ネル ポる履たセるて o 町つがしマイがンあのしタれつ O Uずトだ一パだテでト示一さよい 附行スたパンのたけツ表デ示にた ﹁ 1 リ︒︑コいれだセをの表とし にがスいで︒難さたタトそにこに 頭ト一よのいり成べ一ス︑らるう 先スソばるな有作並デリとさすよ のリなれすらと︑にののるが力る 行ス全す始なるは順定こすみ入来 の一完行開ばあ果成特は定のを出 グソの実をれが結作ので指方ムも ロの後を行け令理を中ンをれラ示 S後開ム実な命処トのヨトわグ表 A開展ラにしンたツそジツ使ロの S展ログ際意ヨしセ︑一セのプ歴 S履 ︑ロクロ実注シ示タりパタそ とクマプてでプに一あの一と Aの るマば理しのオ尾デで次デト Sト すにれ管とるる末・覧︒のツのツ 行後めトとあきのト一る定セ数セ 実直集ツこがで 3 ンなか特タ複タ をたをセの性定録ネ利分の一に一 れれりタ然能指付マ便に内デ順デ こさか一当可に一に単のる成 S 【参考文献】 l)SAS Institute I n c " "SAS Language Guide f o r Personal Computer, Version 6 Edition", 1985, 2)SAS Institute I n c ., "SAS Procedures Guide f o r Personal Computer, Ver‑ sion 6 Edition", 1 9 8 5 . o Macro Processing, Version 6 Edition", 3)SAS Institute l n c ., "SAS Guide t 1985 . Q υ A ‑

57.

付録 1 S ASデ ー タ セ ッ ト 管 理 プ ロ グ ラ ム /宇一 c :d sa d m .s a s ‑‑一一一一一一一一一一一一一一一一一一一 一一一一一 一宇/ /宇解析対象となる SASプ ロ グ ラ ム 名 を 以 下 の 引 e t文にタイプして下さい。*/ /宇そのプログラムで作成される SASデータセットの履歴を表示します。 宇/ / 宇 宇 / / 宇 例 : %letsasprm= c : s a m p l e x . s a s ; / 宇 一 一 一一一一一一一一一一一一一一一一一一一一一一一宇/ 一一一 一一一ー 宇/ f : s a m p l e1 .s a s ; % l e ts a s p r m= o p t i o n sn o d a t en o n u m b e rl s = 8 0p s = 5 5 ; f i l e n a m ei n l" & s a s p r m . " ; 宇 一一一一一一一一ーーー一一一一一一一 一 ー ー ー 一 一 ー ー 一 一 ー ー ー ーーーー; d a t as t e p l ;宇 /r e m o v e sa l la s t a ‑ s l a s ht y p ec o m m e n t sf r o m SAS p r o g r a m宇/ k e e pl i n e ; i n f i l ei n l ; r e t a i nc m t l ̲ s w0 ; i n p u t1 i n e$ c h a r 8 0 .; h e nd e l e t e ; l o o p l :i fl i n e = ',t li n e,'/宇'); x = i n d e x( y = i n d e x( li n e,'宇/'); i fx = Ot h e nd o ;i fc m t l ̲ s w = lt h e ni fy = Ot h e nd e l巴t e ; e l s ed o ;x = l ;g ot os u p p r e s s ; e n d ; e l s er e t u r n ; e n d : / 宇 w h e nt h e r ei s ソa s t a * " 宇/ i fy = Ot h e nd o ;s u b s t r( li n e,x ,8 1 ‑ x ) = r e p e a t ( ', '8 1 ‑ x ) ; / 宇a l lb l a n k sa f t e rx t hc h a r宇/ c m tl̲s w = l ;宇 / " a s t a / "a p p e a r si nt h ef o l l o w i n gl i n e s宇/ e n d ; li n e,x ,y ‑ x + 2 ) = r e p e a t ( '、, y ‑ x + 2 ); e l s ed o ;s u p p r e s s :s u b s t r( 1 i n e = c o m p r e s s( li n e,', ‑ ); c m tl̲s w = O ; e n d : g ot ol o o p l ; r u n ; 宇 一一一一一一一ー一一一一一一一一一一一一一一一一一一ー一一一一一一一一一一一一一一一一 一 ー 一 一 一 一 一 ー一一一一一一ーー‑' d a t as t e p 2 ; / 宇c o n v e r t sm u l t is t a t e m e n t st os i n g l es t a t e m e n tp e rl i n e宇/ k e e pl i n e ;/ 宇 ・l i n e 'b e c o m e sl e f t ‑ a l i g n e d宇/ s e t ; F ' ︑ u ) ︐ . ) ム 入 UV ・ ' 入 UVCJUF ︐ ︑︐ anuAanuz ム し nHU. ︐︐︑︑︐︐ nk ︐ ︑ IJ︑IJ︑IJ AA ︑IJ J . ︐ ρし ・ ・ . ︐ . ︐ ︐ ︑IρJ'UeToパpu nnkuuTu nnkuu 内十ム +LρuρuouρU4t ム パ ・ naAAρa AAし し PLMn ‑‑An 1 ・・・︐ ('' ''; ょ; ム nu ム ‑50 内 ・ ・ 内 nHnHnunu=T e ・ 1 ・ 1 1・ 1 一 u l ;1 1 ・1 1 4 t fk tFAFAFAS ' ・e B / ︑ v A ρ U H U H U H U H U u'EAT υ'hu ・ hパ υ T ounH ・ h υ ・ ム 一 一 ︐ ︑ l ihr tx ・f ri l a ‑t ‑ d n 1 1 x xf x ew s ‑ ・ fleeee 一 一u ︑ し 内す ︐ 'cu u u u u unur I J C d n H n H nパ H A Tム +L ・n u Tパ ︐1Aパ ︐ ムパ ︐ ︐ 'ρuパ ‑TA‑‑ム n vnd Hu ︑1r ︑ ' h ' h e d Tムr PLMnu AUD‑XX1 61L r0 mm am a = ;一 d on a ρLP ==eoAUρu AU '‑一一 ' e 一s 4 r n j n s a e ︑ ・1A U A u n し ・ hu nρu‑ ‑rr t 一 パ ・ ・ 14 A d n d 4uccnt r1i b‑ 一 ・1 h ρunv 内すA . o i d︑ ︐ . n M U 山 14Aux‑‑ し し内十ム VAnH ︐e φ@ n︐ u e ︐ . uthu ρU w n H 6 L ・ l n sパ︐ ・ 1714i 干 ム rm a s一 ua hun =AU r huns一a +L・ u nし g a14r ・ 日t パ a 一 ρuρun 14r71 e n d ; •••

58.

i fc a r d ̲ s w = lt h e nd o ;i fl e f t( li n e ) = ' ; 'o rl e f t( li n e ) = ' ;・ t h e nc a r ds w = O ; d e l e t e ; e n d ; b u f l i n e = li n e ; s t a r t : bufline=left(bufline); x=index(bufline,' ;'); i f x>0 t h e nd o ; 1i n e = s u b s t r ( b u f li n e,1 .x ) ;o u t p u t ; + , l8 0 ‑ x ) ; b u f li n e = s u b s t r ( b u f li n e,x h e nd e l e t e ; i fb u f l i n e = ',t 巴l s eg ot os t a r t ; 巴n d ; 巴l s ed o ;l i n e = b u f l i n e ;o u t p u t ; 巴n d ; r u n ; p r o cp r i n t ;t it l e' R e s u lta f t e rs t e p Z ' ;r u n ; キ一一一一一一一ーー一一一一一ーーー一一一一ー一 一一一ーー 一一一ー ーー一一 一一ーー一ー 一一一一ー一‑ d a t as t e p 3 ;キ / r e m o v e sa l lc o m m e n ts t a t e m e n t s キ/ k e e pl i n e ; l e n g t h prevline $ 8 0 ; r e t a i n prevline r e t a i ns w0 ; s e t ; i f s u b s t r( li n e,1 .1 ) ne', キ t h e ng ot oo u t p ̲ d e l ; キ f ollowing s t a t e m e n t sa r et ob ee x e c u t e d only i f' l i n e 's t a r t s wi t h' キ ρv ︐パu ︐ . n u HU n u ︐ . Tム Tム ゐIL ρv 4 I 1 ‑ ︐ . n u HU p t ρu G n u ‑ ' ‑ ‑ ρu l l; n u ‑ 一 ‑ ‑ V1i ρvou Tム AU D ‑ ‑‑‑nH ‑LA 'ρVCG ‑nu‑‑A =︐同 U1i 1 )よ 日 巴 Bn ut‑ He1 i n1iw ・1 A O U 0 0 ︐e ' n H U ︑s ρν ・ ・ ‑ 一 OU4L 1iAU v t ・︐一 n 0 Tム nu nyAUHu 1ム B1ip‑‑ ︑ rt ・ ' σ ‑hunu oucd +LLA Tム ︐ ‑‑41i d ・ ︒ine r 54LOU Tム ' h υ H u +L'hu‑‑ n?A p o ‑ ‑ 巴n d ; r e t u r n ; /キキキキキキキキキキキキキキキキキキキキキキキ材料材料キキキ材料本件材料材料キキキキキキキキキキキキキキキキキ/ d e l : p r e v li n e = li n e ; i fs u b s t r ( r i g h t( li n e ),8 0,1 ) = ' ; 't h e ns w = O ; 巴l s es w = l ; d e l e t e ; r e t u r n ; /材#件#材料#材料梓#材料材料材料材料材料材料牢材料林本件牢牢材料材料牢牢材/ p r o cp r i n t ;t it l e' R e s u lta f t e rs t e p 3 ' ;r u n ; 本 一 ー一一一一一 ーー一一一一一ー一一一一一一一一一一一一一一一ーー一一一一一一ーーー一一一一一一ー一 一一一一一一一ーーー一一一一一‑ d a t as t e p 4 ;キ / converts c a p i t a ll e t t e r st os m a l lo n e sキ / k e e pl i n e ; s e t ; d oi = lt o8 0 ; n=ra nk( substr( li ne ,i ,1 )); i f6 5 く= na n d nく= 9 0t h e ns u b s t r( li n e,i .1)=byte(n+3Z); e n d ; r u n ; 宇一一ー一一 一 一 ー ー ー ー ー 一 一 ー 一 一 ー ー ー ー ー一一一 ; p同 U l

59.
[beta]
ノ/

ρunu

・
京
・
・
・
t
d
nHOU

a
s
+L 一

mg
e
‑
‑
tl

n
すよ

ρνρu

ni

st

ゐ1L

1ihμ

‑
‑

cb

ρunu
‑‑Lu

(‑(

ρu

nuρu

s ar&

til

よ
︑
.・

nnu

nunHU
η
J
u
nuρU
+Lnu

d
内

I
・
s
‑
‑

ρu'
nu

ρU

‑可ム唱パu

ln

I
・
D‑
enH

41

HU'

・
I・
‑
・
ll

m川 る 守

oonu
︐
.u
n
u
u

・

ゐI1

Tム

ρu

︐
nb'

‑‑‑1・
1・
1

nH
nunununU
Fし nuunuu H
内U
ηJuηJunJ白
//eee
nununu

v e 0・
・
'

・
京
・

5111
p
ρu
hunu
t t・
i

ednyoAU d
内
enH6L
d
内 ρuρuρν
+LLA‑‑r&

d
内
‑パ U

retain s
w0
;
s
e
t
;

n
u

)
︐
.ρu

‑
‑
l
(;

︑j'm︑j'

ゐI1

nHu‑‑Anuu
nur&nu

ρuρu
nut‑‑nu

︐
nb
n b ・︐

ρu

lli

m+L

‑‑

・14 ・ " す よ

Tム

‑‑Ille‑‑

nuunuu
nHunHU

eenu
nunu=

︐
︐b ‑ ‑
nb n

W

山

u

︐
.

1IA1IAFD

・1 A . ︐A

.︐︐パ

‑‑nunu

‑‑パ u ρ ν

一
一
︑︐︐︐

宙開

nH
1よ ρν
''hu
nU+L
n
M
U
ょ

nUpo

'1
︑
︐
︐
︐
=
ρU

11Anすよ

‑
‑

U

(
・1

4

ム

も
ー
'
hu‑‑
gAUnu

‑EA

T
パ
︐
︑

rt nu
Tム ρ
ν
+L'hu
ed4L
LU
Hu
po

nすよ

・
l

e
l
s
el
i
n
e
2
0
0
=
l
i
n
e
;
o
u
t
p
u
t
;r
e
t
u
r
n
;
e
n
d
:
e
l
s
e do;if s
w
=
Ot
h
e
nl
i
n
e
2
0
0
=
l
i
n
e
;
li
n
e
2
0
0
)I
[, , I
[t
r
i
r
n(
li
n
e
)
;
e
l
s
el
i
n
e
2
0
0
=
t
r
i
r
n(
s
w
=
l
;
r
e
t
u
r
n
;
e
n
d
;
r
u
n
;
宇
一
ー
ー
一
一

一
一
一

一
一
一

一
一
ー

ー
ー

ー
ー
ー

ー
ー
ー

ー
一
一
一

一一ー一一一一一一一ーー一一一;

d
a
t
as
t
e
p
6
;r
e
n
a
r
n
el
i
n
e
2
0
0
=
l
i
n
e
;s
e
t
;r
u
n
;
p
r
o
cp
r
i
n
t
;t
i
t
l
e'
R
e
s
u
l
ta
f
t
e
rs
t
e
p
6
'
;r
u
n
;
キ
ー

ー
ー
ー

一
一
一
ー
ー

一
一
一
ー

一
一
ー
ー
ー

一
一
一
ー
ー

ー
ー
ー
ー

ー
ー

ー
一

一
一

ー
ー
一

d
a
t
as
t
e
p
7
; 宇, 1i
n
e・(
l
e
n
g
t
h$
2
0
0
)i
sl
e
f
t
‑
a
l
i
g
n
e
d
;
k
e
e
pl
i
n
es
t
r
n
n
t
ls
t
r
n
n
t
2p
r
r
n
l
‑
p
r
r
n
l
0
;
l
e
n
g
t
hs
t
r
n
n
t
l $8
;
l
e
n
g
t
hs
t
r
n
n
t
2$8
;
l
e
n
g
t
h prevline $ 2
0
0
;
retain prevline
呂

r
r
a
yp
r
r
n{
1
0
} $2
4
;

retain k 0
;

宇n
u
r
n
b
e
ru
s
e
df
o
ri
r
n
p
l
i
c
i
tt
e
r
n
p
o
r
a
r
yd
a
t
a
s
e
tn
a
r
n
e
s
;

l
e
n
g
t
h k̲char $ 3
;
retain null̲sw 0
;
s
e
t
;
li
n
e,'1i
b
n
a
r
n
e'
)
; n
a
r
n
e
k
i
n
d
=・l
i
b
n
a
r
n
e ;l
i
n
kn
a
r
n
e
;
n
a
r
n
=
i
n
d
e
x(
n
a
r
n
=
i
n
d
e
x(
li
n
e,'
f
il
e
n
a
r
n
e・
)
;n
a
r
n
e
k
i
n
d
=
'f
il
e
n
a
r
n
e
'
; 1i
n
kn
a
r
n
e
;

一一一;

nFI

p
h
u

60.

d=index( li n e .' d a t a ') ; b l a n k ̲ s w = O ; i f d =1 t h e nd oi = 5t o2 0 0 ; buf=substr( li n e .i .1 ); i fb u f = ' ; 't h e nd o ; 1i n kd ̲ l a b e l ; o u t p u t ;r e t u r n ; e n d ; i fb u f = ' ・t h e nd o ;b l a n k ̲ s w = l ;g ot ol o o p e n d 1 ;e n d ; i f( Ca ' く= b u fa n db u f く= 'z ' )o rb uf =ー, ) a n db l a n ks w = l t h e nd o ;b l a n k ̲ s w = 2 ;l i n kd ̲ l a b e l ; o u t p u t ;r e t u r n ; e n d ; e l s ed e l e t e ; l o o p e n d 1 : ; e n d : i f n u l ls w = lt h e nd e l e t e ; c l n = i n d e x( li n e . ': ' ) ; i f c l n >0 t h e nd o ;s u b s t r( li ne.1.̲cln̲)=repeatC c l n ̲ ) ; 1i n e = l e f t( 1i n e ) ; * r e m o v e ss t a t e m e n tl a b e l ; e n d ; . ・ l i n e = ', 1 1 s u b s t r( li n e .1 .1 9 9 ) ; A ︐ .ρU .l l j' 肉︑ U j' .︐︐ u ) ︐ . 1ょ u パ ・n o u 1 ..︑ I J O U n u ︑ ‑・ ・ l 1 ;‑ 4' ; ・ ︑ xx ょ ef 551 AUAU‑‑1iT4 TムTム一・1ム+L aaaqnts ρしρし・'ednH'hu ‑‑︑IJ︐パu・可ムHU .︐︐︐.Tム'cd ︑lee‑'a一一‑一 ρununu・ρしηJU H I ・ ・‑'一t ・11i1ien1 よ 1ir‑‑︑nrmm f︑ ・10tr see‑‑snur ︐ s do r‑‑ 肉︑ ︐ 一n U ounHnuvA=・' Tム・可A.︐AOU一円u ny‑‑一‑AU uAu m nし U ↑ .︐円υ 一aq‑‑ATムnu ︑jcss=ae ・=・パu︐パu一ριVLu serrAU一t Aunaan Tム・1AριvnしOU内?ム a11一一一・l い ︾ ︐ . ︐ ︐ パu ρ '円 nunu .︐AOU 'hu (1it U V A ρU1ょ PRU 一 n H一 パ ・ ・ 1ム 向 d し ‑一・パU 一r sa ︐パun r 一 ・ 一 l ρし内?ム ρ U l ο e β U •. l ・ nすよ ρ u l β u c u ‑ ‑ I 6IL ' H n u β U AU . 円 u n u︐ ︐パuρu ︐ . cuouβu 'hununu nu・可ム・τA C U 1 司4 1 司4 E?L‑ Tム 一 ‑ ‑ 1i内?ム' ︐ . fl β U A+lv e1il│ n︑ f 11 ・ ' ︑ 1i' l 1よ n s c o j'hυ p o ︑ ︐ . ‑ OUHU pr1i β u ・本‑rl T4TA ‑‑4EL ︑ 山 EB‑‑ ‑ ee d 1' ︑ fl u v ' tnd om e n H ' ・ 'K9 ・ 1 JVω 1 nhuβU ハ 山 ︐ ︑.︐. ︑ w w W 円U Tム AU • 内 ? ム n H .l 円U Tム AU U n 円U +L ︑ a m1 肉︑ 'ρU ︑ fl u v . ︐ u j'Vω ︑ ︐ . nISOU ︐.νA ︐ . u パ ︐n 0uou一 nド T ム n H O U 必守' T ム.︐1 ょ ‑一︑IJ' .︐︑ j︐ . ︐ ・ ρ U ・ηl︑jnu‑‑ ou'ou‑‑1ムnH 1 i 1ょ n ' 1 1 r .︐A︐.︑ムour‑︑nu fAe‑‑nrt nnf︑・1Ate ‑‑・1ム・1ム+L11 uF4 ︑ I J ・ 1 i nすよ fl︑・hU ・‑‑rt︑ouvAnu‑‑ ηJUT‑ies+L ett=︐ d ‑一 U 1insen‑ ょ ny ‑‑Am川・hunu‑‑Am川+L nすよ +LHu・2A=TムHU nsS1inD・ O ・' ︐ . '円Uρu ︐︐パu o u nunH ‑可AOU ‑‑hu (t V A ρU1ょ nu‑‑一 パ ・ ・ 可 ム 内 ? ム ‑‑nH 一・l 一 fA n u nすよ て‑ ‑‑ム e l s e ̲ = lo r0 ;i f else̲>=2 i n v a l i dキ / e l s e 一= i n d e x( 1i n e . 'e l s e' ) ; キ / then̲=index( li n e . ' t h e n' ) ; • o u t p u t ; r e t u r n ; e n d ; • • e n d ; ηJ RU

61.

内 + L ︐ . n u n v T A ? A O O t; ハ吋 i )υ 内 ︽ ・ ︐ ‑nu 司 ︐ . n u ︐ . T A H U ・B?L ρ U .︐.︐ ︑.︐J︑.︐JTA .nuanU1 ''nu ‑‑ou ‑‑‑hu ) ‑ 1‑ (t ;( ・ ‑‑4L︑J'4L' ‑nU1ndtind・' .︐ou・︐.︐一ou' ‑唱 14nynHM︑1J︑1JnU1ny‑‑ .. ︐'ou‑‑‑'nJunL'ou︑BJ ‑Jer1J1J¥ノqq旬ir1よ nAunH='"'''=' ... ︐fι︑J'・・"‑nL141ょou︑ j . ︐1ょ 'AU1iq1J'"qqqnq1J' ︑ ・τ .nHrt︑'ou''rt︑︐ I ょ・ρuρu ・・・lr1ょneednX1ょ1ょnn ‑rl;;'kt'・1nnn・lndri'・1・14 ・tnU1J1Jese1ょ・1・13mmre‑‑1i .呂 ;;29&mhunrI1ょ1i==tnrir‑ ‑ρU︑.︐J︑1J¥ノnuanua内dHu‑‑4+Lrl︑rl︑nunU1nuacu‑‑4+LTA D・ ' " ' ' n S 1 よ 内 t x x ' b 1 ょ f A t ・ .e"・9ゐ旬i1よ一一一‑rleee ﹀ neu;f︑巴S .r'"qqq1ょっur1よパUAuesstr1よ'b ・=・・rlrlttt=nntihU1ょ=ut‑‑u .︑ J; 巴eAunxnnse‑‑‑lqte1ょpses ・061Jnnn・Iamm'bn一一‑‑mt'bn ‑‑e・l・lammttu‑‑1ょっゐ内Iruu・lfA ・1ょn1よ1ょ==ssS1iqaq‑‑pos‑‑‑1 ι r f︑ r t︑ n H M n u a n U 1 ... ︑ ・ρU tAVAVA.︐ .nri︑e巴¥/ne0 .‑可ιφL・パu︐パuoueu・パu .‑よfAnn‑ょ‑H1inυ ‑/︑︑ou‑‑・14nU4Len ‑TA1よ一‑‑一¥ノρu ・B?L='14の︐&nfA1hu ‑seqq・‑qt ・‑hunu ‑HU‑‑4・・内?A ‑P01よ内十A・14 ‑‑パ u 1よ ‑nH ρ u ・ ‑LH ・B?L ・ 川 e n d ; d s ; r e t u r n ; * l i n k 巴n d li n e,' u p d a t e' ) ; ヰ / u p d ateab. . .;宇/ z=index( i fz = lt h e nd o ;s t m nt 2 = 'u p d a t e '; l e n = 8 ;l i n kc h k ̲ e n d ;o u t p u t ;r e t u r n ; e n d : e l s ed e l e t e ; ・一一 .︐. nu‑m 川 TA‑‑‑nd HU・0unu +L‑m ou・ndfi T A 晶子 nu‑‑4 e n d ; AU ud nH1ょ ︑. ︐ ︐ . e ︐ . ー 1J j n e よ phJUFhuounu ++hu‑‑ 一一+L1よ nHnu‑rt︑ ρUOUTA huhu︐AU+L φLeL・'TACU 一一︑︐Jnu'hu ‑‑ρuu"HU i 咽 'ns '・14vvdv e・1よ巴116 nrkf︑・K I l ‑ ‑tt tlA内d内十A00・ rl︑ρuρuρU 干ム n ν・・1AVv・ &Lou= U ハ = euTム ρum川 o u hu=nuounu HU‑‑4TA・可A nunhu‑‑A 会守 1 よ ¥ノ・︐Au nunu て日 n u ρunu ‑huρU +L‑hu 一+L A ・ I 十 内 e o ・‑ ρ u l ρ U • •• • • • / 宇 s e t ;O Rs e t ab,..;ヰ/ x 1 = i n d e x( li n e, ' s e t ; ' ) ; li n e, ' s e t' ) ; x2=index( i fx 1 = 1t h e nd o ;s t m n t 2 = 's e t ' ; 宇 / i m p l i c i td a t a s e t 宇/ p r m 1 = '̲ l a s t ̲ '; li n e,l ,4 ) = r e p e a t ( ', '4 ) ; s u b s t r( l i n e = l e f t( li n e ); o u t p u t ;r e t u r n ; e n d ; e l s ei fx 2 = 1t h e nd o ;s t m n t 2 = 's e t ' ; l e n = 5 ;l i n kc h k ̲ e n d ; o u t p u t ;r e t u r n ; e n d ; y=index( li n e,' merge ' ) ; 宇 / m e r g ea b. . .;ヰ/ i fy = lt h e nd o ;s t m n t 2 = 'm e r g e '; l e n = 7 ;l i n kc h k ̲ e n d ;o u t p u t ;r e t u r n ; e n d : 巴l s eg ot of ; Aせ F h d

62.
[beta]
#

c
h
ke
n
d
: ;*link s
t
a
r
t
s
;
li
n
e,1
.1en)=repeat(' ,
' l
e
n
)
;
substr(
1i
n
e
=
l
e
f
t(
li
n
e
);
l
i
n
ke
x
p
l
i
c
i
t
;
r
e
t
u
r
n
; 宇l
i
n
ke
n
d
s
;
宇"

,

dl
a
b
e
l
:

s
t
m
n
t
1
=
'd
a
t
a
'; ̲
n
u
l
l
̲
s
w
=
O
;
li
n
e,1
.4
)・
=
su
b
st
r(
1i
n
e
=
l
e
f
t(
li
n
e
)
;

)
︐
.TA

ρし

nd

し
n

‑
h
u

内

内

d

'

td

‑

TA

︐パu

LR

w
山

n
u

(

p
o
e
o

TA

o
u

=円U.

‑‑nν・
'νnm川

ゐ

︐
.u

︐
;Ten

︐パu o u

‑よ内
d‑‑r
+
'H1u
LACmt
=
一 TAOU
2LULAD‑r

ou. ︐ ︐ パ

w
山

nununH

ゐIb

ednu
一ρu

nH
nd

'VA'hμ

内→A

'
h
υ

l

‑
‑

•

キ
ー
一
一
一
一
一 l
o
o
k
sf
o
re
x
p
l
i
c
i
td
a
t
a
s
e
t names ̲ーー一一一一;
e
x
p
li
c
it
:s
w
=
O
;
d
oi
=
lt
o2
0
0
;
i
fs
u
b
s
t
r(
li
n
e,,
il
)
=
'(
't
h
e
ns
w
=
l
;

i
fs
u
b
s
t
r(
li
n
e,
,
il
)
=
'
)
' t
h
e
nd
o
;s
u
b
s
t
r(
li
n
e,i
,1
)
=
'、
s
w
=
O
;
e
n
d
;
i
fs
w
=
lt
h
e
ns
u
b
s
t
r(
li
n
e,,
i1
)
=
'
e
n
d
;
1ine=compress(
li
n
e,'、');
*
1i
n
e
=
l
e
f
t(
li
n
e
)
;
o
u
t
̲
n
o
=
O
;
li
n
e,
' '
)
, i
n
d
e
x(
li
n
e,';'));
l
o
o
p
1
: b=min(index(
i
f b >1 t
h
e
nd
o
;i
fs
u
b
s
t
r(
li
n
e,1
,b
‑
1
)
=
'̲
n
u
l
l
̲
'
t
h
e
nd
o
; ̲null̲sw=l;
d
e
l
e
t
e
;
e
n
d
;
o
u
tn
o
=
o
u
tn
o
+
1
;
p
r
m{
o
u
t
̲
n
o
}=
s
u
b
s
t
r(
li
n
e,1
.b‑l);
s
u
b
s
t
r(
li
n
e,1
.b
‑
l
)=
r
e
p
e
a
t(
',
'b
‑
l
)
;
1i
n
e
=
l
e
f
t(
li
n
e
);
g
ot
ol
o
o
p
1
; * bw
i
l
lb
e0
;
e
n
d
;
e
l
s巴 r
e
t
u
r
n
;
r
e
t
u
r
n
; *一一一一一一一一一一一ー一一
r
u
n
;

ー
ー
一
一
一

ーー一一ー一一一一ーー

;

p
r
o
cp
r
i
n
t
;v
a
rs
t
m
n
t
1s
t
m
n
t
2p
r
m
1
‑
p
r
m
1
0
;
title '
R
e
s
u
lta
f
t
e
rs
t
e
p
7
'
;r
u
n
;
#
一
一
一
一
一
ー
ー
一

一一一一一一一ー一一ー

ー
ー
ー
ー
ー
ー

ーーーー一一一一一一一一一

;

u

に

rD

63.

d a t as t e p 8 ; k e e pn os t r n n t 1s t r n n t 2p r r n 1 ‑ p r r n 1 0 ; 7 ; a r r a y p r r n{ 1 0 ) $1 a r r a y d s ̲ a { 1 0 ) $1 7 ; r e t a i nd s ̲ a 1 ‑ d s ̲ a 1 0 ; 7 ; a r r a y d s ̲ b { 1 0 ) $1 r e t a i nd s ̲ b 1 ‑ d s ̲ b 1 0 ; r e t a i nd a t a n o0 ; 円 内 1よ p o 川 41lb n H m + L p o ‑ τ よ nu‑‑m i'νA S+L ︐ . I LU 192 ム 川 n u +L︐︐・・14nu HU1 よ fdl+L .︐AUHU Au=nu ︐ nH. 13jT 内 ‑‑ovdeD‑uo ︐ . lit‑bn; m;AU r01ょ110n ︐ pub‑K d =nuf4t i'n't'bn ・1e 一一 e ll‑hμtnus'H ;a+LS'iAU+L a 1/ 一 .︐・Qu・‑lA= ? A 1よ q u A U ‑ ‑ h k A ・ ' i ふt ︐ ︐ . UハU・︐.︐==ハU nnnunu‑‑i'Au ndnd1よ 1ょ・τ4・14 +L+Lf4111 H aaoomme d ・0ttrrh =ft;D・D‑t ot‑ょ・1i nHHu‑‑ 一 ‑ 内 ?An十ム a P ・I ・‑l・l・1 +L== aoGOO ‑パunu︐パunu︐パu .︐︐パu.︐ nununu ︐パuρu︐パu nuou oucu 'hu‑‑A +LρU d 内 + L d AU ‑ ‑ + L ︐ . efA 巴 e n d : e n d : o u t :d oi = lt o1 0 ;d s ̲ b { i ) = d s ̲ a { i ) ;e n d ; e n d ; r u n ; p r o cp r i n t ;i dn o ;v a rs t m n t 1s t m n t 2p r m 1 ‑ p r m 1 0 ; s a s p r m . で作成される SASデ ー タ セ ッ ト 一 覧 " title"SASプ ロ グ ラ ム & r u n ; p o p h u

64.

解析対象のテスト用プログラム 付録 2 / 宇 samp1el .sas ̲̲ 以 下 は テ ス ト 用 SA S プ ロ グ ラ ム ー ー 宇 / libname TEST 'b:test' testZ "a:testZ"; filename in1 "a:sample.dat" inZ 'b:samplel .dat' filename in3 "c:testdata.dat"; data; infile in1 end=xyz stopover; input aa bb cc; run; data ; input aaaa nnnn; cards =cards+1; cards; 1 2 run; DATA test .b(KEEP=A B C) test .z(KEEP=XXX YYY ZZZZZZ) 一 一 TMP; LABEL̲A: set I 宇 コ メ ン ト */test.a; i=i+1; DATA=DATA+1; run; I 1 * A B C * I * 1 data test .c(KEEP=HHH JJJJ KKKK LLLLL) test .eee; キ コ メ ン ト l F J=1 THENIキ コ メ ン ト 宇 merge キ コ メ ン ト test .b コメント test .z test .ABC ELSE SET TEST.XXX; j=j+1; ab=cd+1; キ コ メ ン ト run; data; SET last I # I コメント文; DATA̲BUF=DATA; k=k+ コメントキ 1 ; if k= Zt hen STOP; else return; run; 1 * data null set; m=m+1; RUN; I PUTI all / キ テスト テスト コメント コメント 2 キ/ data TEST .DEF set; 宇 コ メ ン ト 文 の 始 ま り comment statement continued コ メ ン ト 文 の 終 わ り ; DATA=DATAl+DATAZ; n=n+l; run; 57‑ * 1

65.

付録 3 実行結果 R e s u l ta f t e rs t e p 2 O B S 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 L I N E l i b n a m eTEST ' b : t e s t 't e s t 2" a : t e s t 2 " ; a t " i n 2' b : s a m p l e l . d a t ' f i l e n a m ei n l‑ a : s a m p l e,d f i l e n a m ei n 3‑ c : t e s t d a t a . d a t " ; d a t a ; i n f i l ei n le n d = x y zs t o p o v e r ; i n p u ta ab bc c ; r u n ; d a t a ; i n p u ta a a an n n n ; c a r d s = c a r d s + l ; c a r d s ; r u n ; DATA t e s t .b ( K E E P = A BC ) t e s t . z ( K E E P = X X XY Y YZ Z Z Z Z Z ) T M P ; L A B E L ̲ A : s e t t e st .a ; i = i + l ; D A T A = D A T A + l ; r u n : data t e st .c (K E E P = H H HJ J J JK K K KL L L L L ) t e st .e e e ; I FJ = 1 THEN m e r g e t e s t .b t e st .z .A B C t e st E L S ES E TT E S T . X X X ; j = j + l ; a b = c d + l ; 本コメント r u n ; d a t a ; SET l a s t 本 コメント文; D A T A ̲ B U F = D A T A ; ; k = k + 1 i fk = 2t h e n S T O P ; e l s er e t u r n ; r u n ; data n u l l s e t ; m = m + l ; PUT/ ̲ a l l一 ; R U N ; d a t aT E S T .D E F s e t ; 本コメント文の始まり c o m m e n ts t a t e m e n tc o n t i n u e d コメント文の終わり; D A T A = D A T A 1 + D A T A 2 ; n = n + l ; r u n ; 氏U ︒ 口

66.

R e s u lta f t e rs t巴p 3 O B S L I N E 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 l i b n a m eT E S T' b : t e s t 't e s t 2" a : t e s t 2 " ; d a t " i n 2' b : s a m p l e 1 . d a t ' f i l e n a m ei n 1" a : s a m p l巴. f i l e n a m ei n 3" c : t e s t d a t a . d a t "・ d a t a ; i n f i l ei n 1e n d = x y zs t o p o v e r ; i n p u ta ab bc c ; r u n ; d a t a ; i n p u ta a a an n n n ; c a r d s = c a r d s + 1 ; c a r d s ; r u n ; D A T At e s t .b ( K E E P = A BC ) t e s t .z ( K E E P = X X XY Y YZ Z Z Z Z Z ) T M P ; 巴s t .a ; L A B E L ̲ A : s e t t i = i + 1 ; D A T A = D A T A + 1 ; r u n ; .c(K E E P = H H HJ J J JK K K KL L L L L ) t 巴s t .e e e ; data t e st .b l FJ = l THENm e r g e t e st .z t e st .A B C t e st X X ; E L S ES E TT E S T,X j = j + 1 ; a b = c d + 1 ; r u n ; d a t a ; S E T l a s t D A T A ̲ B U F = D A T A ; k = k + 1 ; i fk = 2t h e n S T O P ; e l s er e t u r n ; r u n ; d a t a n u l l s e t ; m = m + 1 ; P U T/ ̲all̲ ; R U N ; d a t aT E S T .D E F s e t ; D A T A = D A T A 1 + D A T A 2 ; n = n + 1 ; r u n ; Fhd Qd

67.

R e s u l ta f t e rs t e p 6 O B S L I N E 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 l i b n a m et e s t' b : t e s t 't e s t 2" a : t e s t 2 " ; f i l e n a m ei n l" a : s a m p l e . d a t " i n 2' b : s a m p l e l . d a t ' f i l e n a m ei n 3" c : t e s t d a t a . d a t " ; d a t a ; i n f i l ei n le n d = x y zs t o p o v e r ; i n p u ta ab bc c ; r u n ; d a t a ; i n p u ta a a an n n n ; c a r d s= c a r d s + l ; c a r d s ; r u n ; d a t at e st .b ( k e e p = a bc )t e st .z ( k e e p = x x xy y yz z z z z z )̲ ̲ ̲ t m p ; l a b e la : s e t t e st .a ; i = i + l ; d a t a = d a t a + l ; r u n ; d a t a t e s t .c(k e e p = h h hj j j jk k k k1 1 1 1 1 ) t e st .e e e ; i fj = 1t h e nm e r g e t e s t . bt e s t . zt e s t . a b c .x x x ; e l s es e tt e st j = j + l ; a b = c d + l ; r u n ; d a t a ; s e t̲ l a s t ̲ ; d a t ab u f = d a t a ; k = k + 1 ; i fk = 2t h e ns t o p ; e l s er e t u r n ; r u n ; d a t a n u l l s e t ; m = m + l ; p u t /̲ a l l一; ru n; d a t at e s t . d e f s e t ; d a t a = d a t a l + d a t a 2 ; n = n + l ; r u n ; ‑60

68.

R e s u l ta f t e rs t e p 7 PAnnum‑inU PADAMmql PRMqυ PRMB PAnEumhb PAnnumRU PAnnumd佐 PAnnumqυ PAnEMmηL ・ PAnEMmTよ ・ ︒︑リ中 12 Mmw川 市 12 ηL i M m w川 市iz‑‑i ︒︑リ→ ︑ ハ Hvn円以 σ u ー ょ っ 白 q υ︐ nτFhunhυηlnD 111111111 qu'nτrhunhυηlnkunudnUょ 1 っ 白 1i bname 1i bname b :te st t e s t t e s t 2 a:test2 a : s a m p l e .d a t filename i n l .d at b :s a m p l el filename i n 2 c:testdata.dat filename i n 3 w o r k .d a t a l data n l i n f i l e i work.data2 data a r d s i n f i l e c t m p te st .b te st .z data te st .a s e t t e st .c .eee t e st data st .b te st .z t .a b c e st merge te t e st .x x x s e t work.data3 data l a s t s e t .d e f t e st data l a s t s e t SASプ ロ グ ラ ム f :s a m p lel .s a s で作成される SASデ ー タ セ ッ ト 一 覧 qu PADAMmqd PAnEMmTよ nu PAnnumη! PAnnumnD PAnkumcD PADAMmEU e s t b :te st libname t e s t 2 a:test2 1i bname t a:sample.dat n l filename i .d a t b:samplel n 2 filename i c:testdata.dat n 3 filename i w o r k .d a t a l data i n f i l e i n l 2 d w o r k .d a t a 2 ata i n f i l e c a r d s te st .b te st .z 一 data 一 t m p s e t t e st .a .c t e s t .e e e t e st 4 data .a b c e st merge te st .b te st .z t .x x x t e st s e t w o r k .d a t a 3 data s e t .e e e t e st .d e f t e st data w o r k .d a t a 3 s e t nvAnkumd佐 PADAMmnd PAnEMmηL PAnKum‑ょ ・M m w川 → iqL 12 中 qu →i M川 M川 市iz‑‑ょ N O phu

69.

日本 SASユーザー会 (SUGI‑̲ T ) 経営情報における SASシステムの利用 ーデータウェアハウスによる戦略経営ー 青柳恭弘 SASインスティチュートジャパン 営業本部営業推進セクション UsingSASSystema sE n t e r p r i s eI n f o r m a t i o nD e l i v e r y YasuhiroAoyagi S a l e sD i v i s i o nS a l e sPromotionS e c t i o n SASI n s t i t u t e]apanL td . ld g .Kachidoki8 t hF l o o r1 ‑ 1 3 ‑ 1K a c h i d o k iChuo‑kuTokyo I n u iB 要旨 現在の社会状況において全社的な情報を如何に利用し、意志決定支援、仮説検 証として役立てるかが、大きな企業情報としての課題であると考えられます。 ここで、 SASシステムをどう活用し有効的な戦略としていくのかを、情報シ ステムの歴史的変遷と新しい情報系システムの概念であるデータウェアハウス をまじえて述べます G キーワード:経営情報、情報システムの歴史的変遷、データウェアハウス 1.はじめに 現在、米国、欧州にてデータウェアハウスというコンセプトが大きな注目を集めてます。そ の歴史的な背景と日本での情報システムの連動を中心に考えることで、より明確な概念とし て捉えることが可能になります c その概念が様々な過程で進歩を遂げ日本社会に根付くとき に、真の具現化された事象として認識を広く遡及できると考えます。 データウェアハウスの持つ意義を究明することで、明確な情報系システムの構築が可能にな ります。 ハベ U FO

70.

2.デ ー タ ウ ェ ア ハ ウ ス の 起 源 と 歴 史 的 背 景 9 9 1年 ' " ' ‑ ' 1 9 9 2年頃に提唱者で現在の権威者であるピル・インモン データウェアハウスは、 1 が構築した概念です。 データウェアハウスの概念が提起された 9 1年 ' " ' ‑ ' 9 2年の日本における情報システムの背景を総 括的に考察することで、より理解しやすい概念として言葉の持つ意味を浮き彫りにできると 思います。 1) 1 9 9 2年 頃 の 情 報 シ ス テ ム の 状 態 ‑業務系システム 業務の効率化や省力化のためのシステムが稼動。生産、販売、物流など各業務の 連携の基礎ができた。 ‑情報系システム 汎用機による情報系システムの運用が始まった。 O A系システムの利用はあまりされてない c LANが未整備で端末も少ないため、 ‑開発/運用体制 システム部門が業務システムと情報系システムをすべて開発、運用 ‑予算の管理 システム部門が一元管理 ‑システムの形態 ホストに端末を接続するシステムが中心 ‑利用されるコンピュータ ホストは汎用機やオフコン 端末はダム端末やパソコン 当時日本の社会情勢においては、バブルが崩壊し高度成長が止まり横ばいや乱高下する経済、 政治状況に対する危機感が大きなマインド・コントロールとして働いていました。情報社会 は、このような情勢を受けて、無秩序的に開発及び投資を繰り返した情報システムに先行き の不安と、多くの疑問を抱きはじめていました。それはクライアント/サーバやデスクトップ 環境、 4 G L、ダウンサイジングなどを構築しようとしたとき、今までの 1社独占による情 報システム構築の限界と弊害を情報シスム部門およびエンド、ユーザーが気付き始め、先進的 な企業に於いては、情報環境の最構築に取り掛かっていました c 当時米国は、ブラックマンデーからの経済的な脱出に成功の気運が持ち上がっていました。 これは、 B P Rをはじめとしリストラクチャリングや情報交換のオープン性、フレキシブル 性、高速性に要因がある事は、周知の事実であります。 ここで、何故、この時期にデータウェアハウス概念が構築されたのか? それまでの情報システムにおけるコンピュータの役割は、あくまでも基幹業務系システムに よる B P Rつまり、日常業務の合理化と自動化そして高速化が中心であり、その構築は情報 システム部門が中心となり構築されていました。 64~

71.

米国企業での成功事例の多くは、基幹系システム再構築から分断化されたデータの共有化と 情報化にありました c その原因は、 「データを如何に活用し今後のビジネス戦略を立てるの か? J という問題を解決するような経営戦略を行わなければ、存在価値及び成長が果たせないこと にありました。そこで、次なる情報戦略として考え出されたのが、意志決定支援システム、 仮説検証支援システムの採用とそれを使いこなす人員の確保でありました。 しかし、これだけではデータがおざなりにされており、エンドユーザーはデータの所在およ びハンドリング、そして最適化、標準化などの作業に殆どの時間を取とられてしまい、本当 の業務遂行に障害すら発生してきました。 また、情報システム部門においては、ダウンサウジングやクライアント・サーバ、アプリ ケーション開発におけるタスクの加重に対して、更なる人員合理化で減らされるという状況 では、とてもパックログの解消はできませでした c いわゆるエンド、ユーザーはより多くの データを求めるのに対して、情報システム部門はより多くの障害対策や開発を強いられ、両 サイドの溝が出来てしまうようになりました。 このような状況において、データウェアハウスは生まれてきました。 つまりデータウェアハウスは高度な展開をはじめてきた情報システム構築において、基幹業 務系システムと情報系システムを分離することにより、経営戦略、情報戦略、スタッフ戦略 に対して明確なコンセプトと仕組みを与えるキーワードとして、 93年末から米国、欧州を中 心に遡及しはじめました。 つまり、データウェアハウスは、これからの情報システムのビジョンと経営戦略を理想の形 にするソリューションとして、そして他社との差別化と経営資源の合理化そしてホワイトカ ラーのあるべき姿を大きく変えて行く力として成長しました。 2) 1 9 9 4年 頃 の 情 報 シ ス テ ム の 在 り 方 ‑業務系システム 各業務を精徴 に連携させることを目的としたシステムが稼動する。企業聞の データ交換も始まる ‑情報系システム 定性情報を取り込むマーケッティング・システムが普及する。大企業でオフィス 内の L A Nの整備が完了する。 f ‑開発/運用体制 部門の基幹業務系システムや情報系システムは利用部門がシステム部門の支援を 受けて開発。全社システムはシステム部門が開発。システム部門のスリム化が潮 流となる G ‑予算の管理 部門システムの予算は利用部門が管理コ全社システムの予算はシステム部門が管 理 。 ‑システムの形態 ホストに L A Nを接続する 3階層システムが中心 u 戸川 phv

72.

‑利用されるコンピュータ ホストは汎用機やオフコン、 LANにはデスクトップ・コンビュータやポータブ ル・コンヒ ュータがつながる c o 昨年来から日本でも情報系システムの重要性が声だかに叫ばれはじめてきました。 この波は、上記からと日本の経済形態から考察すると、今迄の横並びの政策による安 定成長的方針から、様々な障壁からの自由化の方向性と、グローパルな企業形態への さらなる躍進を目指さなければ、生き残れない状況が各産業界に起きてきました。 情報システムの点から見ると、今までの分断化及び孤立化されたデータの流れや運用 を L A Nや W A Nを通じたネットワークやクライアント/サーバ環境により、統合化 された s情報として見ていく傾向が、強く現れてきた結果だと考えられます。 ここに近年多くの概念やツーノレとして注目されはじめました、 D S S (Decision Support System)、 E 1 S ( E x e c u t iv e Information System) 、 oL A P (On‑Line Analytical Processing)などが、情報系システムにおける新たなる問題解決の仕組み として、ナレッジ・ワーカ一つまり知識レベルで、の作業を中心にした労働者へ、提供 されはじめました。 また、図1.にありますように企業の意志決定の方向性を変えることは、いわゆる情 報系システム全般をもう一度見直し、再構築および、拡張がかなりの部分で必要にな ります。 企業の D S Sの構造 1 提 言 ス テ ム ト ツール 合 唱 回 DB 戦略の改革 組織の改革 E 会社理念 戦略指標 S.B.U K ・F.S 資源配分 組織適応 人材開発 マネジメント 図1. ‑66 ・ ・ 4 目標管理 業務手順 効率向上 コ ミ ュ ニ ケ ー シ ョ ン 4 評価基準 実績把握 報酬 ) { ‑ ド1 ¥ +吟

73.

3 .何故今日本でもデータ・ウェアハウスなのか? この復興の波を受けて現在、経営者が何を考えているのかをここで、考察して 見たいと思います。 1.大競争時代に勝つための指針作り 2 .空洞化される日本産業界 3 .合理化対策の尚一層の強化 4 .部門、セクションを越えたチーム作りおよび協調関係作り 5 .ホワイトカラーの生産性の大幅な向上 6 .コラボレーションによる共生関係のリテラシの創造と実験 上記にあげたように経営者および管理者には、多くの難題が山積みであり、多くの企 業ではそれを解く鍵が見当たらない存在にあると考えられます。 この難題を解く鍵のひとつがデータウェアハウスなのです。 1 9 8 5年 ' " " " ' 1 9 9 0年にかけて多くの経営者は情報システムに対して、必ずしや多くの意見 と意識を自社のシステムへ投入しなかった傾向があります。つまり金は出すが口は出 さない的な動向がありました。これは、情報システムにおいて、その構築目的が基幹 系システムに中心があったことと、情報システムの持つ難解さがあったと思われます。 しかし、近年情報システムにおける経営者層の取り組みは、非常に高いポテンシヤル によって行われ、その形態を大きく変えようとしております。それは、昨今の情報シ ステムの流れが、大きく基幹系システムから情報系システムへと変わってきたことに あるからだと考えられます。 今まで日本社会は、ボトムアッフで大きな効果と進展を果たしてきました。しかし、米国の 復興と成長を最大の成功事例として取るのならば、ボトムアップだけが成功する仕組みでは なく、高度にフラットな形態として企業の組織をどう再編するのか? そして、現在の激変する市場に対応できる組織としての役割及び機能を、どのように分担す るのか? これを解決するのが、情報系システムであり、 1つは、メールや電子掲示版に代表されるコ ミュニケーション技術の取り込みであり、もうひとつは、全社データの情報化と適所適材で の情報利用にあります。 4 .データウェアハウスの基本概念 ここで、簡単ではありますがデータウェアハウスの構築に対する概念を説明します。 1)データウェアハウスの定義は 「基幹系業務システムにある大量のデータを情報系システムを構築するための 倉庫(ウェアハウス)に物理的にも論理的にも分離運用すること c J ヴ t nb

74.

2) デ ー タ ウ ェ ア ハ ウ ス に お け る デ ー タ 必 要 条 件 ( 1 )目的別編成 (Subject Oriented) 基幹系システムは特定の機能、処理を中心にしたファイル構造になっており、つまり、アプ リケーションのロジック・フローによりその構造が決定してしまいます。基幹系業務システ ムのファイル構造は、パフォーマンス、安定性、機密性を最大限に考慮したものであり、誰 もが自由にそしていつでもということを度外視して作成している以上、運用面での効率と設 備投資の軽減にはつながらない結果になってしまいます。 エンドユーザーが自由に使用するならば、誰でもが分かりやすくそしていつでも使用できる . よなデータに変えなければなりません。誰でも使用できる点には、前述しました定義と図 2 に示されているように、データを分離することで可能になります。しかし、一度渡ったデー タが目的別になっていなければ、全社レベルでの運用は困難なものになります。そこで、 データをアップリケーション派生編成ではなく、属性別編成にする必要があります。例えば 顧客別、商品別、売上、会計などの編成に置き換えて誰でもが分かる形で提供する必要があ ります。 情報システム環境 基盤丞 之 三 I : . . b 賃盈丞 之丞エム デ-~の!IX.& 情報のi J 1 J J i i 髭玄盆量の 単鍾主主処理 鐙量生アブリケ シ ョ ン 委 ⑤ 金量の 盆遊盆処理 wアプリケーション 亘 意志決定支債の 日常業務の J ! H I J j J ; 皐盈i 乙 .必二二心=二む-ぷ議釘[~:弘ぬ::::::点二紋::;:;:γN 叩珂消:戸内芯吟:、、可川叫峨.叫叫~:::::::::又ポ域必:担世詰背::;:;:以江.よ 以江τ L 波苦::;:;:;:;:;::宍符 烈令竺呼叩吹:;:;.旦火〈え乞.よ:恥: ;:;:;:恥胤古持.:.:.Z m お:.;.川以以よ 衣凸ぷ:;:::;:;::門凸ヴ:;:;:;:;:円〉狩:;:;:;令 ζ ぷ ,:,.;.潟涼悦 図2 . (2) 統合化(In t e g r a t e d ) 様々な目的で作成されたデータには、ファイル聞に差異がしばしばあります。例えば、男/ 女を 0/1もしくは M / Fのように作り手の作成目的と表現の差異により異なった形であら わしている場合がしばしばあります。また、日付や数値やデータ形式なども統一する必要が あります。 (3)時系列データ ( T i m eV a r i a n t ) 基幹系システムのデータは、アクセスした瞬間が正確なデータとして存在します。それに対 してデータウェアハウスにはデータが数年分保持されます。データを時系列化することでよ り確実な情報分析を可能とします。このためには、データ・ソースを集約化する場合のデー タの時形列での同期が必要になります。 OD PO

75.

(4)読み込み専用 ( N o nV o l a t i l e ) 基幹系システムのデータは継続的にレコード単位での更新が発生し、一旦データがデータ ウェアハウスに入った場合はデータは修正、変更の必要はありません。つまり、データウェ アハウス内でのデータは正確さと過去データによることから読み込みだけを提供すればよく、 また、解析する際のパフォーマンスやデータ管理に対して複雑なタスクを発生させないこと に大きな意味があります。 (5)メタデータ ( M e t a d a t a ) メタデータは、データ辞書の役割をデータウェアハウス内で担っています。コンポーネント の違うデータを統合したり、データと環境に関する情報(項目ごとの関係付け)などは、メ タベースに格納されユーザーに公開されます。また、データウェアハウスは、原始データ (生データ)だけではなく、図 3. のように使用する人に合わして段階的に要約したものを 保 持 で き ま す c メタベースがデータの意味や保持状態と更新時期を保持しているためユー ザーはこの情報で知ることができ、その結果より的確な形で各プロセスを実行することがで きます c 3) データウェアハウスの構築について 今までに述べましたように、データウェアハウスは、情報系システムを構築する際に明確な 目的と意識を与えてくれます。これからは、データウェアハウスの構築の際の技術的な要求 項目を述べていきます。 (1)データのアクセス技術 基幹系システムのデータをどのようにアクセスしてデータウェアハウスにおくのか?この要 件を確実にこなせなければ、データウェアハウスの構築はできません。また、データ・アク セスの種類に限りがあったり、あらゆるデータにアクセス出来なければなりません。例えば、 DB2、Oracle、 SYBASE、 INFORMIX、RDBなどの RDBMSや 、 I M S 'こ代表される非リレーショナノレDB、 そして、 I S A M、 VSAMなどのシーケンシヤルファイル構造にも対応できなければいけません。 なぜならばほとんどの基幹系システムは、ファイルの互換性を中心に置いて構築されている ため、最新のテクノロジー下にあるデータ形式ではなし、からです。 (2)強力なデータ加工および要約技術 データのマッピングや加工にたいして、強力なデータ加工技術が必要になります、つまり、 基幹系システムのデータにありがちな冗長なデータ形式ではなく、正規化、最適化、標準化、 要約が必要になります。つまりデータにたいする統合がどこまで広範囲になおかつパフォー マンスょくできるかが、重要になります。 (3)高度なクライアント/サーバ環境 メインフレームからデータを取り出しデータウェアハウス内に保持し、そのデータをデスク トップ環境で利用するために、大きく 3つの技術要求項目があります。 nHU ハhu

76.

① 3層構造におけるクライアント/サーバの実現 メインフレームから超並列サーバ、ミッドレンジや U NIXサーバなどからデスクトッ プ環 が最適にな 境へと大きく 3層のプラットフォームにおけるクライアント/サーバの仕組み ります。 ②ハードウェアに独立したクライアント/サーバの実現 N I Xといっても様々な ベン 現在企業内においては、様々なマシン環境が存在してます、 U ダーから購入することができますし、パソコンには、 MS‑Windows、MS‑Windows NT、 OS/2、 Mac‑OSなど様々な形態があります。これら多数の環境を接続し、そこでデータやプログラム の利用を図るためには、並み大抵の努力ではできません。それをどれだけ簡易になおかつ安 定した技術で構築できるのが大きな鍵となります G ③ 5つのクライアント/サーバモデ、ルの実現 米国ガートナーグループによると 5つのモデルがあると言われてます。 D i s t r i b u t e d DataAccess Remote DataAccess D i s t r i b u t e d F u n c t i o n Remote P r e s e n t a t i o n D i s t r i b u t e d P r e s e n t a t i o n 一寸一一一一│盛│一一一一一一一一司 蝉お11鵠 酬 i機 嘉 納 榊 時 :I棋 弘 通j i し4 3 設し ~ ~ ~ふ 内 . V I J 〕践し!品ぬ$;しぷ迭とーい滋とー〕滋芝山 一一+ート̲.J.̲ I 図4 . 図 4. にありますクライアント・サーバモデ ルを下記に述べます。 分散データアクセス (Distributed Data Access) データはデータサーバによりハンドリングされネットワークを通じて可搬されます のアプリケーションの実行はクライアント側で行われます。 G すべて n u ︐ 円

77.

E リモート・データアクセス ( R巴mot巴 DataAccess) すべてのデータはサーバ側に保持されてます。すべてのアプリケーションの実行と表示はク ライアント側に実行されます。 皿 協 調 分 散 処 理 (DistributedFunction) データは、サーバ側に保持されてます。アプリケーション実行の一部分はサーバによって行 われ、他のアプリケーション実行はクライアント側で実行されます。これによりエンドユー ザーはサーバの CPU、ネットワークの負荷もあまり意識せずに実行できますここの方法の利点 は、ハードウェアとソフトェアの長所をうまく引き出せます。これによりクライアント側の 運用とサーバ側の運用の利点を引き出すことを最大の目的とすればいいのです。この方法は 主にサーバ上のリソースがクライントよりもタスク実行に優れた処理や、データが大量のた めにネットワークを通じて過般する際に負荷がかかる処理の時に利用されます。 W リモート・プレゼンテーション ( R巴motePresentation) すべてのデータはサーバに保持されてます。アプリケーション実行は、サーバによって行わ れます。そして表示の結果だけがクライアント側で行われます c この方法はエンドユーザー のデスクトップ環境下の G U Iにて、情報の表示を行う事を可能にします。しかし、ほとんどの 処理をサーバ上で行うため、サーバの CPUの負荷の軽減は期待できません。 V 分散プレセンテーション (DistributedPresentation) この方法はリモート・プレセンテーションとは異なり表示の実行はサーバとクラインアント 間で分割されています。 データはサーバ仰l に保持されてます。 このような様々なモデルを実現する必要性は、予測できないデータ量やプロセスの大きさか ら、ソフトウェアとハードウェアの資産投資の保護と、運用面で問題が出た場合、情報シス テム部門とエンドユーザ一両者にとって、満足のし、く環境を構築するために重要なことであ ります。 ( 4)ビジネス・インテリジェンス環境 前章の 2)でも書きましたように、各コンビュータがネットワークにて接続され、さらに情 報の統合いわゆる全杜レベノレでらの情報活用がはじまりつつある現在、様々な新たな展開が開 始され、また開始されようとしてます。情報系システムの重要な役割は、その仕組みにある ことは、事実ですが「如何にデータを情報化するか。」つまり、 「情報の科学化における 様々な局面で、情報を意志決定や仮説検証などを行うための、経営戦略情報として活用する 必要な情報を必要な時に必要な人に必要な形で」、 か」が、大きなポイントになります。 I これが達成できればエンド、ユーザーの、仕事の多くの部分を達成できます。しかしそれだけ では、昨今の激変する社会情勢や経済環境において十分とは言えないでしょう c 必要なもの に対して得た情報をどのようにインテリジェント化していくのかが、ビジネス環境で必要に なります。言い換えると他社と差別化できる情報分析に大きな戦略的なコンポーネントをプ ラスすることを、可能とする技術と能力が必要となります。 DSS、 OLAP、 EISなど ー ム ウ t

78.

のオブPジェクト化されたアプリケーション構築技術は、停滞することができない情報系シス テムにおいて、アプリケーションに柔軟な拡張と変更のニーズに、スピーディに対応するこ とを可能にします。最近いわれてます R A D(Rapid Application Development)技術が大きな 成果を与えてくれます。 また、様々な知識レベルに合わせたデスクトップ環境の選定と利用も重要な案件となります。 つまり、データがオープンな環境で利用できるかどうかが問われてきます。 5. 企業の階層から見た経営情報の考察 データウェアハウスの定義、データの必要条件構築に対する技術的要求について述べてきま したが、経営情報と照らし合わせて見た時、企業の各階層毎の指向を体系だけでも捉える必 要があると考えられます。 ここで、企業における各層を分断化しその発信の要求ポイントを整理して見たいと思います。 1)経営者層の情報系システム 経営者層に取って情報システムの仕組みに期待するポイントは、様々でありますが特に情報 系システムに期待している部分に限定して考えると以下のポイントが浮き彫りにされます ・ 0 ‑売上げをより向上的に創造できる仕組みはなにか ‑社員がより活力ある行動へと導く情報系とはなにか ‑正確な情報を正確な時にそして適材者にどのように渡せるか ‑会社を越えた組織化をどのような形でできるのか ‑情報投資を最少にして最大の効果をどうすればできるのか 経営者層への意志決定へのアプローチは個別情報と全社情報のバランスとタイムリーな把握 にあると考えられます。情報系システムにおけるポイントとして明確な問題意識とそれを解 決できる仕組みとコンセンサスを得ることで、かなりの効果値と貢献が可能になると考えら れます。 2 ) 情報システム部門層の情報系システム 現在、米国では情報システム部門をアウトソーシンングする傾向や、各部門に張り付いた専 任情報システム部門など、様々な方法で立場を変えようと努力をしてます。 今後の情報システム部門のあり方をどのような視点から、捉えるべきなのかを非常に簡単に あげてみます G ‑情報システム部門は経営者とエンドユーザー部門へのサービス部門として活動 を行う部門に変化 ‑情報系システムに対するアプリケーション構築は最低限にし、データの可搬業 とメンテナンスの作業が中心 nノ ワ ー

79.

‑情報系システムのツール選定 ‑エンドユーザー・コンピューティングの実施のための教育とサポート 3 ) エンドユーザー部門層の情報系システム エンドユーザー部門には、様々な違った仕事を違った方法でこなしていますが、よくその中 身をみると、データの発生先や情報化へのシナリオは意外と同じ作業の内容になります c 但 し、その能力に応じてそこにある仕組み、つまりフロントエンドへの要求度は変ってきます。 具体的に述べるとその仕事と立場そして能力に応じた、情報系システムをどのように構築し 活用させるかにあります。 つまり、 ‑適材適所のデータ利用環境 ‑ビジネス・インテリジェンスの仕組み ‑デスクトップ環境であらゆる処理ができる ‑時代に即応したツーノレ利用 ‑誰もが最低限のデータ観察と利用形態ができる ‑創造性を充分にサポートするツールの奥行き このことが各企業で、最大のエンドユーザーの関心事であり、これを解決することがホワイト カラーの生産性の向上に最大の功績をあげる事は隠しようもない事実です。 6. 歴 史 的 変 選 か ら 見 た サ マ リ ー 今まで述べましたように、データウェアハウスは企業形態や歴史的変遷において必要不可欠 なものです。情報システムの変遷の形態を後から考えると必ずと言っていいほど、技術の進 化や新しい概念が社会情勢や企業、個人の在り方と密接に絡み合っています。 データウェアハウスは、確かにパズワード(流行語)ではありますが、今までご説明したよ うなパックグランドに対して、明確なソリューションとして捉える力のある言葉として日本 でも必要不可欠な概念だと考えられます。 7 . SASシステムのデータウェアハウス構築について . ここで、 SASシステムとのデータウェアハウスの関連性を述べてみたいと思います。図 5 から分かりますように SASシステムはデータウェアハウス構築における 3層構造のすべて に対応でき、なおかつ、 1つのソフトウエアコンポーネントにより様々な処理や運用が、可 能となることにあります。 ‑73‑

80.

データウェアハウスの 3層構造 ホスト Rel 剖Ion a l Hler 冒 d市 I ca l DBMS S e quent恒 t o a ‑ i . i ‑ ‑ g 開 通 産 台 遺 OLTP ~一一一一一' Systems 環境 伝 ザ T‑MHR‑ ・ e 4 ‑ ・ T R‑Mm SAS e 4 ‑ v 5 1 V ︑ 令V ︑ 画面睦盟組圏直 一一一一 一 一 一 一 一 」 図5 8. S A Sシ ス テ ム の 技 術 的 な 側 面 で の ア ド バ ン テ ー ジ ここで、データウェアハウス構築に対する SASシステムの技術的な利点を述べます。 1)ハードウェアベンダーにはないマルチベンダー環境で、の仕組み作り M V A )での開発コンセプトによる主要なプ ‑マノレチベンダーアーキテクチャ ( ラットフォームのサポート 2)DBMSベンダーにはないマルチエンジンによるデータのハンドリング技術 ‑マルチエンジンアーキテクチャ ( M E A )でファイノレを透過的にアクセスが可能 3 ) 強力なデータ加工能力 • DATAステップ、 SQL、各種プロシジャによる柔軟なデータ加工能力 4) 様々なクライアント/サーバ環境に対応 ‑メインフレームからパーソナルコンビュータまで、様々なプラットフォーム聞 を縦断的にデータおよびアプリケーション・ロジックを活用可能 ‑ガートナーグルーフ。の 5つのクライアント/サーバモデ、ルすべてを実現可能 I ヴ A斗・

81.

5)経営者、情報部門、エンドユーザーの総てにソリューションの提供 ‑経営者層への EISによる簡単でタイムリーな情報提供が可能 ‑情報システム部門には、 R A Dの提供と S Q Lをはじめとして拡張的なデータ 可搬プログラムの提供 ‑エンド、ユーザーへは、インタラクティブでなおかつ奥行きの深い情報分析、解 析能力の提供 6) 他のシステムにはない柔軟性と拡張性 ‑ハードウェア、オベレーティングシステム、ファイル形式からの独立を実現 ‑オブジェクト指向技術のサポート 7)データウェアハウスにおけるオープン性 .ODBCのサポートによるデスクトップ環境へのオープンな利用を提供 8) 高度な意志決定、仮説検証を裏付けるテクノロジーを既に保持 ‑グラフやリストのドリルダウンによる様々な局面での情報分析 ‑動的レポートの提供 ‑データの探索技術の提供 ‑ガイド付きデータ解析の提供 ‑定評のある充実した統計分析機能 9. おわりに このように SASシステムは、すべての点におきまして、データ・ウェアハウスに対して強 力なツールとして活用できることができます。 また、データウェアハウスは、経営者層や情報システム部門層、そしてエンドユーザー層の どこからでも、データを簡単にそして使える形つまり情報として利用ができ、様々意志決定 や仮説検証などの経営情報を、拡張と柔軟性を包括した形態で作成することを可能にします。 にU ワt

82.

「参考資料J 1.日経コンビュータ 1993 1 .1 1、日経 B P社 2 .中島 ー: i 意志決定入門」、日経文庫 3 .ガートナーグループ。 iクライアント/サーバモデ、ル」 4 . W . H . l n m o n " D巴V巴l o p i n gC l i巴n t / S e r v e rA p p l i c a t i o n s ",W I L E Y ‑ Q E D 5 .ロパート・ M ・トマコス: 1 ダウンサイジング」、ダイヤモンド社 6 . トム・ピーターズ: iトム・ピーターズ、の経営破壊」、 TBSブリタニカ *記載の商品名は各社の商標または登録商標です。 76一

83.

日本 SASユーザー会 CSUGI‑J) 使っています SASシステム 0田 代 勇 一 阿部悦子 加藤圭子 株式会社 SASインスティチュートジャパン 営業本部 営業三課 Usingt h eSASsystem Y u u i c h iT a s h i r o EtsukoAbe KeikoKato S a l e sD i v i s i o n, SASI n s t i t u t eJpanL t d . S a l e sS e c t i o n 3, 要旨 営業業務の効率化を計るためには、顧客等の情報を管理するシステムの 構築が必要不可欠です。またそのシステムはさまざまな状況・ニーズに柔 軟かつ迅速に対応できるものでなければなりません。この要求を満たすた めには、 SASシステムによるエンドユーザコンビューティング (EUC)、 クライアント/サーバコンビューティングがたいへん有効で・す。 SASシ ステムによる営業情報管理システムの構築例を紹介いたします。 キーワード SA . SIFSP ソフトウェア、 SA . S/SHARE ソフトウェア、リモートライブラ リーサービス 77‑

84.

1.はじめに 私たち営業の使命は、お客様に対してより良いサービスを行い、的確な 提案をし、売上げを上げることです。これは、どの企業においても同様の ことと考えます。しかし販売方法、テリトリーによって、顧客情報に必要 な内容は変わります。また個別の詳細情報の検索だけでなく、統計的に分 析する必要もあります。また、課内の情報の共有化も必要です。 EUC) 私たちはこの課題に対してエンド、ユーザコンビューテイング ( とクライアント/サーバコンビューティング (C/S) を適用し、 SAS システムによる効率化をはかりました。実際に SASシステムが私達の業 務を支えています。 2 . 社内システム SASシステムによって開発された社内システムの一部をご紹介します。 .基幹システム(全社アプリケーション〉 JPNSALES (契約情報照会〉 主に営業部門が顧客情報の参照のために使用 ・部門別アプリケーション BsaookS a l e s )システム マニュアル販売に関するあらゆる処理を行う。受注から、請求、発送、 在庫管理までをサポート。 SETINIT管理システム 顧客ごとの契約情報を持ち、米国へ送付する SETINITリクエストの生 成、進捗状況の管理を行う。発注書[こ記載されたほとんどの情報がこのシ ステムに入力され、出荷管理システム、契約書作成システムにオフライン で渡される。 TSJ TS (テクニカルサポート〉 の基幹業務である Q&Aを円滑に処理する ために運用されているシステムで、業務に必要なデータベースを検索する ための SASアプリケーションである。最初に MVS上で構築され、その 後現在の HP環境に移行された。 3 . エンド、ユーザ、コンビューテイングへの目覚め 以前より弊社でも基幹業務に対する社内システムは確立されていました。 しかし個々の営業自身は、顧客に対する情報を紙ベース、または個別のフ 78‑

85.
[beta]
ォーマットで持っていたわけです。また業務に対しては、その度に DM
デ
ータを作成したり、顧客リストを作成したり、データが個々に分散するよ
うな状況でした。そのような中で、 1994年 9月従来の DOSベースの
PCに代えて、営業部員全員に Windowsマシンが導入されました。
これを契機に、私たちは顧客情報管理のコンビュータ化に取組むことに
しました。まず最初の目標として、次の項目を揚げました。
1.データに対してフォーマットのおよび入力方法を統一すること

2
. レポート、例えば、見積依頼書、デモ依頼書などを容易に作成でき
ること

3
. すぐにカスタマイズできること
そして、システム構成をエンジニアを含めて検討しました。

4
. システム構成
先ずは、顧客情報の入力、検索に使う画面作りから始めました。これは、
今までもセミナ一等の名簿入力で利用した経験があったためすぐに手がつ
けられました。
= 且 圃 ・ ・ ・ 圃 圃 圃 ・ ・ ・ ・ ・ ̲ ̲ T ? Z 圃E園函白固圃園田園圃圃圃圃圃圃圃圃圃圃圃E二
よ
二
**本プロヌベヲトデータ信守本本ヨド

賓宿t
叩E 却

担当氏:0"'Y
o
t

U
S
回一

主
主
主i
震!窮民主ージ一冊企E

, H:xT‑::Al
よ一一一

訂A
刊S

"
1
"
"
0
̲
‑

・言葉賀:

~<'-

l
言豆暑猪名 j
,
,.金三呈~{:4三E"~:

記~~長時í

曾

(1;壇づ1:

̲
. j~

Z
禁容さ 1‑13‑iBT

耳入予定
更I
l
8
4入区分

T窓ア~宅1l'li

5
凶I
.
J
の企画宣言

重荷内容

断

1
,D
.
¥
T
E'

尭ilH旨示

9
印7
0
1
自
ぬ
るi
a

合笹

1
:
.
∞ 0.000

;;注目一一一‑
o
s 二二二

U
,
也
毛i
E
:

可畦性(%),

E約日

S
D

一一一一一一

~お古r:

メニξ

図 4‑ 1

図 4‑1は
、 FSEDITプロシジャを実行させたときのものです。こ

DM)
の画面を用いて、データを登録することによりダイレクトメール (
の対象先になります。交渉の経緯に関するメモも入力できます。また、次
回の電話をするタイミングも入力可能です。例えば、コンタクトを取りた
いユーザ名をサーチするときは(コマンド〕行に Whe
r
e
" 構文を入力し

Qd
F
t
t

86.

S t i r n g " 構文を利用するよりスピードが速くなります。 ます。これは、 HP9000/715model100上の SASシステムを利用し ました。ユーザは Windowsマシンの VT端末からシステムにアクセ '卜エ ア ェ ウア フアウ アソェト ェT ウ フ ウC ト ソ S/// ' 卜r uフ r u フ N ソR ソN P A SOSH ACFS cucucu eAAA md ロu ssss 'k卜 川明 フ ソ ノ サ ︑ . スしました。しかし、エミュレータはマウスが利用できない、テンキーの 操作がしにくいという新たな問題が発生しました。 そこで Windows版 SASを有効利用しようということがエンジニ アから提案されました。サーバ側に SAS/SHAREソフトウェアを導 入しました。システム構成は図 4‑2のようになります。 H P 9 0 0 0 / 7 1 5 / 1 0 0 ‑ ・‑ ・ ‑ 1 E 圃阻圃回・ ・・園田園 田園田園 ェアェ アア '卜内ノ'卜 ウエウ エ 中 A 内 ノ リ ノ 中A フア卜フ アソェフソ ウC 卜 T H NPss ソ 'ppuフ cupU フN ソ I I SOSSN cuQucunb AupupaAA‑‑‑ EAAAA Rd stutucuCU ロu ' h ' フ S//// M 一叶 ワ ソ 4 ン hノ fl‑フ 司イ W i n d o w s 3 .1~ び UNIX,-ミ外 . SAS/SHAREソフトウェアを利用するメリットを紹介いたします 0 ・リモートライブラリーサービス ( RLS ) データがどこにあるか意識することなく、分散処理が可能です。下記の ような利点が上げられます。 1.処理を行う前にクライアント上にデータを転送する必要はない。 2 . データをサーバ上だけに保持しながら、クライアント上で処理が ‑80一

87.

行える。 3 . 処理するデータは、あくまで、サーバ上に存在するため、クライアン ト側には負荷がかからない。 4 . 複数のユーザによるデータの同時更新が可能である。(今回のシス テムではここが一番重要でした。〉 5 . クライアント上の GUIアプリケーションを使って、サーバ上のデ、 ータ処理が対話型に行える。(このアプリケーションでは、 FSE DITプロシジャを利用しています。〉 SASシステムの強力な解析機能を利用し、顧客の分析、または現状把 握を行います。特に SAS/INSIGHTソフトウェアにより、各営業 が個々にマーケットリサーチをビジュアルに行うことが可能です。 SAS/INSIGHTソフトウェアはマウスによる操作だけなので、 メニュー選択だけで簡単にグラフを書いたり、視点を変えてグラフを見る ことができます。 vw , l Ni J i ̲ c o 1 1 <I ¥C N1H 5 . 終わりに 現在、入力フィールドを多くしたい、他のファイルとのリンクをしたい 等の要望が上がってきます。今後のシステム展開として、第一に SAS/ A Fソフトウェアを利用しようと考えます。これは、アプリケーションを 00 1

88.

拡張するためです。現状では、 GUIを有効利用するまでにいたっていま せん。 また、第二に Windows版リリース 6 . 10にパージョンアップし ます。 SASシステムから Microsoft社の ODBCをサポートを します。よって、 Microsoft杜の ODBCをサポートする外部の ソフトウェアから SASデータセットにアクセスすることが可能になりま す。この機能を追加することにより、現在テキストファイルで受渡しをし ている部分をもう少しスムーズにできるようになるでしょう。 今後とも新しい機能を取り入れ、お客様に SASシステムの有効活用を ご提案していきたいと望んでいます。 一8 2一

89.

日本 5A5ユーザー会 (5U G卜 J) NTERNET SAS & 0竹 内 敬 治 株式会社三菱総合研究所 システム政策部 Internct & S A S Keiji Takcuchi n c . Systems Research Dept.,Mitsubishi Research Institute,I A! ICO TOWER,8 , 1 Sl IIMOMEGURO 1‑CIIOME,MEGURO‑KU,TOKYO 153 要旨 イ ン タ ー ネ ッ ト は 情 報 の 宝 庫 で あ る 。 米 国 S A S社 の 公 開 し て い る wwwや 各 種 サ ー ビ ス 、 国 境 を 越 え た ネ ッ ト ワ ー ク 上 の ユ ー ザ 会 SAS‑L、 f t p サ イ ト な ど 、 SASユ ー ザの利用できる豊富な情報の概略を紹介する。 キーワード: インターネット はじめに ここ一年で、インターネットという言葉が急速に耳慣れたものとなった。従来、日本で こ のインターネット利用は、大学や研究機関に限られていたが、最近は一般企業から個人 l まで利用が広がってきている。また、その利用形態も、電子メールやネットワークニュー スから wwwへ と 使 い や す い も の に な っ て き た 。 イ ン タ ー ネ ッ ト に 接 続 さ れ る サ イ ト 数 は 、 月 1 5% で 増 加 し て い る 。 日 本 に お け る イ ン タ ー ネ ッ ト の 利 用 も 急 速 に 増 加 し 、 大 学 、 研 究 機 関 に 限 ら ず S A Sユ ー ザ の 多 く が イ ン タ ー ネ ッ ト を 利 用 で き る よ う に な る と 恩 わ れ る 。 インターネット上には、 SAS社 の wwwを 始 め と し て 、 SAS関 連 情 報 が 大 量 に 存 在 す る 。 し か し な が ら 、 過 去 に 日 本 S A Sユ ー ザ 会 で の 関 連 発 表 は 見 当 た ら ず 、 ま だ イ ン タ ー ネ ッ ト 上 の SAS情 報 を 利 用 し て い な い SASユ ー ザ も 多 い と 思 わ れ る 。 イ ン タ ー ネ ッ トを利用して、研究や業務を効率化する機会を逃しているのである。 インターネット上の情報はほほ、リアルタイムで入手できる。そのため、常に世界の最新 情報に触れることができる。反面、このような論文形式の発表になじまない部分もある。 論 文 が 読 ま れ る こ ろ に は 、 執 筆 1寺 の 情 報 は 古 く な っ て し ま っ て い る か ら で あ る 。 そ こ で 、 本論文では、具体的な情報の内容までは踏み込まない。アクセスポイン卜がわかっていれ ば、利用は簡単なので、実際に利用してみることをお勧めする。 内︑ u o白

90.

S A S社 の 提 供 す る 情 報 米 国 S A S 社 lSAS Institute Inc.) の 提 供 す る www が、 9 4年 1 0月 に 公 開 さ れ た 。 そ の H 0 m e P ag eを 図 lに示す。 内容は、企業紹介、 SASシ ス テ ム の 紹 介 、 サ ポ ー ト サ ー ビ ス 等 で あ る 。 な か で も 、 求 人 情 報 は 人 気 の ペ ー ジ で 、 現 在 S A S社 で 募 集 し て い る 職 種 ( 統 計 の 専 門 家 か ら 雑 務 、 保母など様々)や、募集要綱などの情報を見ることができる。申込書のフォームも用意 されているので、 S A S社 に 勤 め た い 人 は 日 本 か ら で も 応 募 で き る 。 ま た 、 Ba110tへ日 本から直接投票することも可能である。 wwwの他にも、 f t pで 、 テ ク ニ カ ル レ ポ ー ト 類 や サ ン プ ル プ ロ グ ラ ム 等 を 取 り 寄 せ る こ と も で き る 。 ま た 、 テ ク ニ カ ル サ ポ ー ト へ の Q & Aを 電 子 メ ー ル で 送 る こ と も で きる。 同 図 的 ' T L IGHTOHS日 民 一 一 PRO! l ' 比 . . ESOF寸l1ESASS V STIoh tl t i THEWORK.‑L . . A . C . E E OVERVIEW . . A t iI t i T I 司ODUcnONT O 11 .~、.... . SASltisτlTUTEPRODUCTS 』 、 、 、 、 … │ 曾 n‑ , 、τ 1 0 、 ‑ ‑ 凡 一 i 母… I CAREEROPP ES ...CURREtiTI t i5r円'¥JT.E EhlPL oY'hlEHT OPEN1HGS A E A 訂時 山民 百円 問問 側刷 を聖雪" ' ( 1J mL H / I o ? ' ¥ SUPFORTSERVICES IN唱I u.~n説、 T=Hti出 渦 LsuP F'O RT~ T R A .INING, DocuhtEtiTATIOti.A t iD USERS トー !:).( GROUPS 1 1 ' 警立ケーー一一一一一一一一一一一一一一一一一一一 図 1 WWW.SAS.COM の!JomePage (SAS Communi cations V o1 .XXI NO.l よ り 転 載 ) 8 4

91.

2 SA S‑L 1 9 8 6年 1 1月 に 作 ら れ た メ ー リ ン グ リ ス ト で あ る が 、 ープでもある。非常に活発で、 S A S社 公 認 の ユ ー ザ グ ル 1日 数 十 本 の 電 子 メ ー ル が 行 き 交 っ て い る 。 ネ ッ ト ワ ー ク ニ ュ ー ス の comp. soft‑sys. sasで も 読 む こ と が で き る 。 内容は、 SA Sの 様 々 な プ ロ シ ジ ャ 、 SA S言 語 、 特 定 の 環 境 な ど に 関 す る Q & Aが 多 い 。 た い て い 、 あ る 質 問 を 出 し て か ら 2 4時 間 以 内 に 1 0本 以 上 の 回 答 が あ る よ う で ある。そのほか、様々な議論が展開されたり、新リリースに関するうわさが流れること も あ る 。 最 近 登 場 し た SA S T ip s、 S A S T r a p sな ど 、 有 用 な 情 報 が 大 量 に 流 れているが、情報量が多いため、自分にとって有用な情報をさがすのは大変である。 このメーリングリストは、 S P S S 一 Lな ど と 違 っ て 、 SA St 土の社員は投稿しない。 間 接 的 に ア ン ケ ー 卜 を 実 施 し た り 、 質 問 者 に 対 し て S A S社 の 社 員 か ら 電 子 メ ー ル で 回 答が来たりするので、 3 S A S社 の 社 員 も 読 ん で い る よ う で あ る 。 アーカイブ ユーザが書い t =有 用 な マ ク ロ プ ロ グ ラ ム や 、 前 述 の SA S T ip sなどは、 Thomas J efferson大 学 等 の g 0 p 1 e rで 検 索 で き る 。 SA Sで 何 か 処 理 を 行 う 前 に 、 似 た よ う な機能のプログラムがあるか調べて見つかれば、開発する手間を省くことができる。ま た 、 利 用 す る だ け で な く 、 自 分 で 開 発 し た 有 用 な マ ク ロ を 世 界 中 の S A Sユ ー ザ に 使 っ てもらいたければ、 4 ftpサイトの管理者が受け付けてくれる。 S A Sイ ン ス テ ィ チ ュ ー 卜 ジ ャ パ ン の 提 供 サ ー ビ ス 現在、 スは、 SASイ ン ス テ ィ チ ュ ー ト ジ ャ パ ン が イ ン タ ー ネ ッ ト 上 で 提 供 し て い る サ ー ビ SA S Technical Newsの 申 込 み が 電 子 メ ー ル で で き る 程 度 で あ る 。 テ ク ニ カ ル サ ポ ー ト の Q & Aを 電 子 メ ー ル 経 由 で 利 用 で き る よ う に は な っ て い な い 。 問 題 の あ る プ ログラム、データをメールで受け付けたり、テクニカルレポートやパッチプログラムを 配信することができ、ニーズは高いはずである。 終わりに インターネット上には、 SASに 限 ら ず 様 々 な 情 報 が あ り 、 そ の 有 効 活 用 が で き れ ば 、 研究や業務をかなり効率化できると思われる。しかし、インターネットは利用するばかり でなく、それヂれの参加者が何らかの方法で貢献する必要がある。 S A S J ‑ Lに よ る ユ ー ザ 聞 の 情 報 交 換 、 さ ら に は 、 日 本 か ら SA S情 報 が 世 界 に 向 け て 発 信 さ れ る 日 が 来 る こ とが望まれる。 h 戸 u n o

92.

付録 S A S関 連 の 主 な U R Lを示す。 M 0 s a i c、 N e t s c a P e等 で ア ク セ ス で き る 。 こ れ ら の サ イ ト か ら 、 さ ら に 別 の サ イ ト へ 移 動Jできる。 http://www.sas.com S A S 社 の H o m e P a g e。 ftp://ftp.sas.com S A S社 の f t p サ イ ト 。 ド キ ュ メ ン ト 類 や サ ン プ ル プ ロ グ ラ ム 、 n 0 t eなど。 ftp://jse.s t at .n c s u .edu/othergroups/sas! S A S ‑ Lに 流 れ た 全 メ ー ル が 保 管 さ れ て い る 。 月 単 位 で フ ァ イ ル に な っ て い る 。 gopher://jse.s t at .n c s u .edu:70/11/software/sas ユーザの開発したプログラムがたくさんある。 gopher://pinksli p .t j u .edu:70/11k%3A/dis/ic/stats/software/sas Thomas J e f f c ' .叩 nUniversityで は SA Sが よ く 利 用 さ れ て お り 、 さ ま ざ ま な 情 報 が ある。 t echnews@jpn.s a s .c o m SA S Technical N e w s (SA Sイ ン ス テ ィ チ ュ ー ト ジ ャ パ ン ) の 受 付 。 8 6

93.

日本 5A5ユーザー会 (5U G卜..J) SAS/EISのビジネスオブジェク卜の紹介 羽田野実 株式会社 SASインステイチユートジャパン技術本部開発セクション Introductiont oSASjEISbusinessobjects MakotoHatano R&DS e c t i o nT e c h n i c a lD i v i s i o n, SASI n s t i t u t eJapanL td . 要旨 ヨーロッパの開発者により開発され,リリース 6 . 1 0で追加された SAS/EISソフトウェアの 6つのオブジェ クトの特徴について記述する.これらは. SAS/EISソフトウエアでピジネ・ス向け E ISアプリケーションを n a l y t i c a lP r o c e s s i n g )のサポー 開発するのにたいへん有効である.また. SAS システムの O~AP(Online A トについても記述する. キーワード: SAS/EIS 2 SAS/EISソフトウェアの紹介 1 はじめに リリース 6 . 1 0で追加されたオフ守ジェクトは以下の 6 SAS/EISソフトウェアは,企業のあらゆる情報をも つである. とに分析のための各種レポートや動的なグラフによっ て,総合的な経営情報システムを構築するオブジェ ComparisonR e p o r t ) 口比較レポート ( クト指向の E IS開発環境である. 3 3個のオフ'ジ、エク トが用意されている. 口拡張レポート ( ExpandingR e p o r t ) ログループ化パーチャート 3 (GroupedBarC h a r t ) 作成方法 新しいビジネスオフ'ジ ェクトのため,表 lに示す属性 ロレポート付きグラフ が追加されました.メタベースの登録及び E I Sアプ ( M u l t i ‑ C o l u m nR e p o r t ) リケーションの作成方法等は,従来と変わりません. 口多次元ピューワー ( M u l t i ‑ D i m e n s i o n a lV i e w e r ) 4 比較レポート 口組織チャート ( O r g a n i z a t i o nC h a r t ) 比較レポートは,テキスト(数値データ)とグラフイツ ' クス(横棒グラフ)を結び付け,テーブル形式にデー 日本語版 SASにおいては,リリース 6 . 1 0より提供 . 1 0 . 0 2より日本語化されている. され,リリース 6 タを表示して 2つの変数の統計量を比較する E I Sア ワf o o

94.

タイプ 表 1 リリース 6 . 1 0で追加された属性 属性 DATA ORGCHART 組織チャートデータセット DATA SUMMARY 要約データセット VARIABLE AXIS 多次元ドリルダウン変数 VARIABLE INDICAT ドリル階層を持つ変数 プリケーションである.図 1に実行例を示す. 5 拡張レポート 4 . 1 特徴 拡張レポートは,複数の変数の統計量をテープル形 式又はグラフで表示する EISアプリケーションであ 比較レポートの特徴を以下に示す. る.図 2に実行例を示す. ロ 2つの変数の統計量を数値と横棒グラフで比較 する 口比較する変数の差分の lつ目の変数に対する割 5 . 1 特徴 拡張レポートの特徴を以下に示す. 合を表示する. ロ複数の変数の統計量を行と列のテープル形式又 はグラフで表示する. ロドリルダウン機能(ダイナミックにデータを絞 り込み,次の階層の数値データ及び横棒グラフ ロドリルダウンすることによりデータ全体を参照 を表示する機能). できる. ロ変数のラベル及び出力形式をアプリケーション ロ変数のラベル及び出力形式をアプリケーション 編集中に指定できる. 編集中に指定できる. ロ比較する変数を動的にアプリケーション実行中 ロ統計量をアプリケーション実行中に変更できる. に変更できる. ロウインドウ内の要素(タイトル,見出し,テキ ロ統計量をアプリケーション実行中に変更できる. スト等)のカラーをアプリケーション実行中に 変更できる. ロウインドウ内の要素(タイトル,見出し,テキ スト等)のカラーをアプリケーション実行中に ロ要約済データセットを使用できる. 変更できる. ロデータを要約した結果を全体行として表示する 5 . 2 メタベースの登録 ロ要約済データセットを使用できる. 以下の情報を持たせて SASデータセットをメタベー スに登録する. 4 . 2 メタベースの登録 ロドリルダウンする変数に DRILL属性を付ける. 少なくとも lつ指定する. 以下の情報を持たせて SASデータセットをメタベー スに登録する. 口分析する変数に ANALYSIS属性を付ける.少 なくとも 1つ指定する. ロドリルダウンする変数に DRILL属性を付ける. 少なくとも 1つ指定する. ロ分析する変数に ANALYSIS属性を付ける.変 数は 2つ以上指定する. 6 グループ化パーチャー卜 グループ化パーチャートは,複数の変数の統計量を 重なり合った縦棒グラフで表示する EISアプリケー ションである.図 3に実行例を示す. ‑88一

95.

6 . 1 特徴 ロウインドウ内の要素(タイトル,見出し,テキ スト等)のカラーをアプリケーション実行中に グループ化パーチャートの特徴を以下に示す. 変更できる. ロ複数の変数の統計量を重なり合った縦棒グラフ ロデータを要約した結果を全体行として表示する. で表示する. 口要約済データセットを使用できる. ロドリルダウン機能. 口変数のラベル及び出力形式をアプリケーション 編集中に指定できる. 7 . 2 メタベースの登録 以下の情報を持たせて S ASデータセットをメタベー ログラフ内のテキストのフォントをアプリケー スに登録する. ション編集中に指定できる. ロドリルダウンする変数に D RILL属性を付ける. 口統計量をアプリケーション実行中に変更できる. 少なくとも 1つ指定する. ロ分析する変数に A NALYSIS属性を付ける.少 ロウインドウ内の要素(タイトル,見出し,テキ スト等)のカラーをアプリケーション実行中に なくとも 1つ指定する. 変更できる. 8 多次元ビューワー 口要約済データセットを使用できる. 多次元ピューワーは,いくつかの次元から複数の変 6 . 2 メタベースの登録 以下の情報を持たせて S ASデータセットをメタベー I Sアプリケーションである. 数の統計量を表示する E O L A P ( O n l i n eA n a l y t i c a lP r o c e s s i n g )を実践するア スに登録する. プリケーションである.図 5に実行例を示す. RILL属性を付ける. ロドリルダウンする変数に D 8 . 1 特徴 少なくとも 1つ指定する 口分析する変数に A NALYSIS属性を付ける.少 なくとも 1つ指定する. 多次元ビューワーの特徴を以下に示す. 口いくつかの次元から複数の変数の統計量を表示 する. 7 レポート付きグラフ ロデータの傾向及び関係を見付けるのに有効で、 レポート付きグラフは,テープル形式及びグラフと してすべての要約レベルで複数の変数の統計量を表 ある. ロドリルダウン機能. I Sアプリケーションである.図 4に実行例 示する E 口統計量をアプリケーション実行中に変更できる. を示す. 口ウインドウ内の要素(タイトル,見出し,テキ 7 . 1 特徴 スト等)のカラーをアプリケーション実行中に 変更できる. レポート付きグラフの特徴を以下に示す. ロテープル形式及びグラフとしてすべての要約レ ベルで複数の変数の統計量を表示する. ログラフを表示できる. ロテンプレート機能によりテープルに一時的な行 及び列を追加できる. ロドリルダウン機能. 口変数のラベル及び出力形式をアプリケーション 編集中に指定できる. 口行と列を入え替えることができる. 口時間軸の単位に年. 4半期又は月を指定できる. 口統計量をアプリケーシヨン実行中に変更できる. ‑89

96.

8 . 2 メタベースの登録 プリケーション実行時に統計量を計算する処理を省 以下の情報を持たせて SASデータセットをメタベー スに畳録する. 略できる.このため 大容量の SASデータセットの 時,アプリケーション実行時聞が短くなる場合があ る.しかし,アプリケーション実行時に統計量を変 ロドリルダウン階層をする変数に AXIS属性を付 更できないのが短所である. ける.少なくとも lつ指定する. 口分析する変数に ANALYSIS属性を付ける.少 なくとも lつ指定する. 11 OLAP OLAP(OnlineA n a l y t i c a lP r o c e s s i n g )ツールはいく ロドリルダウン階層をもっ変数に INDICAT属性 を付ける.少なくとも lつ指定する. つかの次元でデータをイメージして,データを操作, 解析及び参照する機能をユーザに提供する.そして l i c e ユーザの意志決定をサポートする. OLAPは s 口時間軸に使用する変数に DATE属 性 を 付 け る . ‑‑ ‑" '~Iandd i c e的(分割してサイコロの自のように)デー 指定は任意である. 1 J 形式で参照して解析する. タを行‑7 9 組織チャート 12 OLAPのサポート 組織チャートは,組織データを表示する EISアプリ ケーションである.図 6に実行ウインドウを示す. OLAPソリューションとなりうるための 1 2個のルー ルを E.FCodd氏が提唱している. SASシステムが これらをどのようにサポートしているかを述べる. 9 . 1 特徴 1 2 . 1 多次元的ビ.ユー 組織チャートの特徴を以下に示す. ロドリルダウンしながら企業の組織チャートを表 データ参照時の柔軟性は成功した解析及びレポート に必須である. SASjEISソフトウェアにおいて多次 示する. 元ピューワーとして提供している. 口ウインドウ内の要素(タイトル,見出し,テキ スト等)のカラーをアプリケーション実行中に 変更できる. 1 2 . 2 透過性 データがデータベース,フラットファイル又は SAS データウェアハウスに格納されていても問題ではな 9 . 2 メタベースの登録 い.また,ローカルホスト又はリモートホストに置 以下の情報を持たせて SASデータセットをメタベー かれているかも問題ではない. スに登録する. 口組織チャートデータを持つ SASデータセット に ORGCHART属性を付ける. 1 2 . 3 アクセス性 SASシステムはデータを普遍的な資源として扱う. 口幸田哉レベルとなる変数に DRILL属性を指定す つまり,企業データが様々なプラットフォームに及び る.少なくとも lつ 指 定 す る ( 又 は ) 異 な る デ ー タ 構 造 で 存 在 し て い て も , ユ ー ザ にアクセスできることを確信している. 10 要約済データセット 1 2. 4 一様なレポート性能 要約済データセットとは, MEANSプロシジャ又は SUMMARYプロシジャの OUTPUTステートメン 次元が増えるほど,解析処理の負荷が増えるかもし トにより作成した SASデータセットで,統計量など ありません. の情報が格納されている.要約済データセットを使 用する利点は,予め統計量が計算されているので,ア ‑90 れないが, SASシステムではレポート性能の低下は

97.

12.5 ク ラ イ ア ン 卜 / サ ー バ ア ー キ テ ク チ 13 おわりに ヤ SASシステムはそれぞれのプラットフォームの最適 6個のピジネスオブジェクトは対話的なレポートア プリケーションを提供し,これらのアプリケーショ の使用法及びアプリケーションの最大性能を保証し ンはさらに大きな企業レポーテイングシステムに組 て,すべてのクライアント/サーバコンビューテイ み込むことが可能で、ある.リリース 6 . 1 1以降でこれ ングの形式をサポートしている. らのビジネスオフゃジ、エクトは改良され,また,新しい ピジネスオブジェクトが追加されると思われる.そ 12.6 一 般 的 な 次 元 して SASjEISソフトウェアによる企業レポーティン 時間次元の使用を必須とするような制約は適用され グシステムの構築が強化されると思われる. ません. SASシステムはすべてのデータの形式をレ 14 参考文献 ポート及び解析できる 口 SASC ommunicationsVoLXXNo.3 12.7 動 的 な ス パ ー ス な 行 列 の 操 作 ThirdQ u a r t e r1 9 9 4 外部ソースからデータを直接アクセスする時. SAS システムは使用されている特殊格納技術を使用する. SASシステム独自の格納方式を使用する時,データ 圧縮及びインデックス付けが最適なスパースな行列 操作を保証するように自動的に行われる. 12.8 マ ル チ ユ ー ザ サ ポ ー ト SASシステムは同時アクセス,整合性及び機密性を 提供して,同じ解析モデルで作業する又は同じ企業 データでモデルを作成するユーザをサポートする. 12.9 制 限 な し ク ロ ス 次 元 操 作 SASシステムはデータ操作時のクロス次元制限を持 たない. 1 2 . 1 0 直観的なデータ操作 SASシステムは様々な作業スタイルに適合するデー タ操作方法及びインタフェースを適用する. 12.11 柔 軟 性 の あ る レ ポ ー ト SASシステムは強力なデータアクセスと柔軟性のあ るレポート機能と組み合わされた管理を持つレポー トシステムである. 1 2 . 1 2 制限なし次元及び集合レベル SASシステムにより組み込まれた制限はありません. 9 1 口 SASC ommunicationsVoLXXIN o . 1 F i r s tQ u a r t e r1 9 9 5

98.

図 l 比較レポートの実行例 図 2 拡張レポートの実行例 9 2

99.

図 3 グループ化パーチャートの実行例 図 4 レポート付きグラフの実行例 93‑

100.

図 5多次元ピューワーの実行例 図 6 組織チャートの実行例 円H υ A性

101.

日本 5A5ユーザー会 (5U Gト J) W indO W S版 SASシステムを利用した 統計入門ソフトウ土アの試作 0赤 津 利 夫 古谷俊爾 NECソフトウェア岡山 井上恭子 第 1システム開発部 AT r i a lMakeo fSoftwareo fI n t r o d u c et oS t a t i s t i c su s i n g SASSystemf o r Windows T .Akazawa, S .Fu ruya and K .Inoue NECSoftwareOkayama,Ltd .,677,OUCHID , A OKAY AMA, 7 01・01 要旨 統計知識のあまりないエンドユーザが SASシステムを利用しようとする場合、データ解析を どのような手順で行えばよいか、 SASシステムをどのように利用すればよいのか、という 2つ の難問をクリアする必要があるが、データ解析の手順、 SASシステムの使い方、プログラムの 構築をすべて理解することはかなり難しい。このようなエンドユーザに対して、当社が考案し たチェツクシートを利用した、基本的な統計解析の手順や SASプログラムの作り方を示唆し、 正しい手順での解析が行える統計入門ソフトウェアを試作したので報告する。また、本システ 侶S ムは M 点についても併せて報告する。 V i s u a lB a s i c キーワード.Windows版 SASシステム、チェツクシート、統計入門ソフトウェア、 MS‑ 1.本パッケージの開発の目的 近年パソコンを中心としたコンビュータが市場に広く普及し、それに伴って SASシステム をはじめとする統計解析パッケージが数多く利用されるようになった。また、企業においても 蓄積した定量データを経営管理などの意志決定の場面で利用しようという動きがみられる。 しかし統計解析パッケージをピジネス分野で使用する場合、実際にマシンを操作するエンド ユーザはデータ解析のプロフェツショナルであることは希である。また、統計解析パッケージ はコンビュータの知識がなくても利用できるようにユーザインターフェースは工夫されてはい るが、実際のデータ解析を行うには、その性能や結果に信頼のおける製品ほどある程度の統計 解析の知識がないと利用するのは難しい。このため、統計解析パッケージを正しく使いこなせ るか、また、正しい手順で解析を行い妥当な結果を得られるか、結果を正しく判断できている のか、という点はすべてユーザの統計解析に関する知識の有無の問題になる。実際に、ビジネ ス分野においてはユーザと統計解析パッケージとの聞に 統計解析に関する知識"についての 大きな隔たりがある。 当社では、岡山大学殿と統計解析の一般利用に関する共同研究を行っており、そのテーマと して、紙面上に統計解析の知識を分析手法単位で展開したチェツクシートの作成を行っている。 これは、統計解析の知識のあまりないピジネスユーザが統計解析パッケージを利用する際に、 正しい手順でデータ解析を行えるように分析の手順を一つずつチェックしながら進めていくた めのツールであり、ユーザとパッケージの隔たりを少なくするために考案したものである。 門川 d に JV

102.

例 と し て 、 回 帰 分 析 の 解 析 前 チ ェ ッ ク 部 分 の チ ェ ツ ク シ ー ト の 抜 粋 を 図 . 1に示す。 図. 1 チ ェ ツ ク シ ー ト A) 回 帰 分 析 の 全 体 構 成 《回帰分析全体構寄〉 観測値のチェック 目的変数のチェック 解析前チェック 変数のチェック 説明変数のチェック モデル全体に関する評価 モデノレの当てはまり のよさに関する評価 回帰係数に関する評価 影響の大きし観測値のチェック 多重共線性のチェック チェツクシート 1‑1 チェツクシート 1‑2 チェツクシート 1‑3 96一 チェツクシート 1‑4

103.

C ) 観測値についてのチェツクシート(抜粋) チェック・シート , , ‑ (1/2 ) (観測値のチェック) 項 l チエッヲ 番 項目 1 I ケース数 チェッヲ 重要度 説明・対処 内容 チェッヲ 掴 I( 説 明 変 数 の 数 + 1) 未 I @ I 回帰モデル作成のため、正規方程式を解く計算を行うがその計 満のケース数である. J I 覧ができない. 以下の方法によりケース数を増やす. 1.最低、 (設明変教の数+ 1) を 満 た す ま で 観 測 す る . 2 説明変数の数を i 躍らす. 2 I 欠潤値 観 測 デ ‑9上 に 欠 澗 値 が I @ ある. c x ) 欠測値があるままでは解析が行えない. 以下の対処を行う. 1 . 欠測値を含むケース、あるいは変量を除く. 《欠澗値を含むケースを除く場合》 ケ 1 ← 陣去行 * . . ケース数のチェッヲを再度行う. 欠測値を除いた 1 . へ〕 〈→項番 1 《欠澗値が多く含まれる変量を除く場合》 目的変舷+腕明度叡 ケ ス 医lITl部分が欠測値 除去列 欠潤位を除いた f 量、ケース教のチ z ッヲを再度行う. 通常 表形式で空白部分 が欠澗値であるが、空白 の代わりに実現しない値 を記述する場合もある. (→項番 1 . へ) 2 . 欠測値に、その変量の平均値を代入寸る. 3. 欠 澗 値 仁 、 そ の 変 量 の 最 頻 値 を 代 入 寸 る . このチェツクシートはドキュメント(紙)であり、実際の統計解析パッケージを使用する際 に一つずつの項目を自分でチェックしていく形になる。しかし、チェックする項目数も、それ を記述するドキュメント量も、一つの手法を実行するだけでもかなりの量になる。これを統計 解析パッケージを使いながら一つずつチェックしていくのは実際にはかなり大変な作業になる。 このため、このチェツクシートの内容を、統計解析パッケージを使用しながら同時にマシン上 でチェックしていけないかと考え、同時にその統計解析パッケージの使用方法も提示できるよ うにして、データ解析と統計解析パッケージの導入教育の両方の意味を併せ持つ統計入門ソフ トウェアを作成しようと考え、開発を行うこととした。 97

104.

2 .システム構築に際しての必要条件 このチェツクシートを利用した統計入門ソフトウェアは、 「データ解析の知識のあまりない、 統計解析パッケージ操作の初心者」を対象とし、 「簡単な操作で、基本的なデータ解析の手順 と、統計解析パッケージの簡単な使い方がマスターできる」ことを目標とする。重要となるの は当然、 「いかに使いやすく、わかりやすいか」である。このシステムを構築する際に、ユー ザインターフェース面と機能面について検討を行い、以下のようなシステムとしての必要条件 を設定した。 2. 1 ユーザインターフェース面での必要条件 ‑メニュー形式やマウスを利用した項目入力。 ‑問題点、結果の解釈を理解しやすい表現で提案する処理方法の選択 0 .グラフを多用した視覚的表現による結果の把握。 ユーザインターフェース面では簡単な入力ができる操作性、結果が一目で把握できる視覚 性が重要であると考えた。 2. 2 機能面での必要条件 機能面では、システムとしてどういう処理を行うかという点と統計手法をどれ日どサポー トするかという点を検討した。 <システム機能> ・マニュアルレスな実行が可能となることを目指すヘルプ機能の充実。 .一連の処理をカタログ化するなどの方法による自動解析機能。 ・出力結果を利用しやすいテキストファイルへ保存。 ‑図やグラフをそのまま保存。 <統計機能> ・グラフ機能 ‑検定 ・回帰分析(数量化理論第 I類) ・判別分析(数量化理論第 E頚) ‑主成分分析(数量化理論第皿類) 統計手法は、ピジネス分野では上記の手法に限定することで十分対応できると判断した。 3 . システムの構成 本システムは、 MS‑Windows3 . 1吋上で開発している。また、利用する統計解析パッケージ O 口 Qd

105.

は 、 Windows 版 SASシステム ( R 6 . 0 8 )である。システム全体は、 Windows上の開発言語である、 V i s u a lB a s i cV e r 2 . 0吃で作成した。これは、 Windows上の他のソフトウェアとの賢産共用と、 Windows上での操作性を重視したためである。システム構成の概要は図. 2のようになる。 図. 2 システム構成概要因 《開発システム》 統計エンジン Windows版 SASシ ス テ ム . ・・・・・・・・・・・・・・・・・・・・・・..‑・.....・・・・. 基本的には、 Windows 上で本システムを立ち上げ、画面に従って分析を進めていく。このシ ステムはチェツクシートの手順をシステム化する チェックエンジン"部と、実際の解析を行 版 SASシステムである。 統計エンジン"部に分けられる。この統計エンジン部が Windows う システム中ではデータをスプレッドシートに展開し、このデータに対して解析を行う。解析 を始める際に対象となる変数、手法の選択を行う。実際に解析を行う前に 解析前チェック" として、データの正規性、はずれ値のチェッ夕、欠測値のチェック等を行う。その後、実際に 解析を行い、解析の結果に対して結果の見方、結果の妥当性のチェック等を行う。この問、統 計エンジンである S A Sシステムは、必要に応じてチェックエンジン部で作成する SASプロ グラムによって、パッチジョプとして起動される。また、実行結果はチェックエンジン部で必 要な部分だけ抜き出して表示される。このシステムでは統計エンジン部は、チェツクシート部 のパックグラウンドで動作し、ユーザからはプラックボックスとなる。 また、本システムは以上のようなデータ解析の手順の学習という意味だけではなく、統計解 析パッケージの使い方を理解する、という目的も併せ持つために、実際に S A Sシステムを動 かすためにチェックエンジン部で作成した SASプログラム、 S A Sシステムを起動した実行 履歴等は、チェックエンジン部分から自由に参照、保存することができる。 4 . Windows版 SASシ ス テ ム と の 連 動 i &SA Sシステムを利用するために、チェック 本システムでは、統計エンジン部に WindowsJ 9 9ー

106.

エンジン部に以下のような機能がある。 ① SASプログラム作成機能 Windows版 SASシステムをパックグラウンドで動かすために、画面で入力されたパ ラメータ情報に従って SASプログラムを生成する。 生成した SASプログラムはテキスト形式で保存することもでき、この SASプログ indows脹 SASシステムを独自に動かすことも可能である。 ラムを使用して W ② SAS実行結果取得機能 Windows 版 SASシステムでの実行結果をテキストファイルに吐き出し、実行結果の 解説と一緒に表示するために、必要な部分だけを抜き出す。 ③ SAS実行履歴表示部分 indows版 SASシステム 基本的には一つずつのチェックが独立しており、その都度 W をパックグラウンドで起動する、という処理を行うため、チェックエンジン部で全体 を通してのチェック内容、 SASプログラムおよび解析の実行届歴を蓄積して、表示 する。 5 . システムの特徴 本システムの特徴を、データ解析の手順の学習という面と統計解析パッケージの操作学習と いう面とに分けて、以下に示す。 5. 1 ① <データ解析の手順の学習に関する特種》 チェックする項目をタイプに分けて設定する。これにより、初心者から多少は知識の ある場合までを各自で選択でき、ユーザのレベルにあわせた学習ができる。 チェック項目のタイプは、以下の 3つに分かれている。 1.チェツクシート上の全チェック項目を順番に行う。 →標準的なチェック項目の設定であり、全くの初心者程度のレベル向げである。 I I . チェツクシート上のチェック項目を、自由に設定できる。 →チェックしたい項目がすでに分かっている場合に適応している。 **分析" という言葉を知っている程度のレベル向けである。 田.既定値設定されている最低限のチェック項目のみを行う。 →解析結果に対するチェックだけ行いたい、という言う場合に適応している。分 析を行う場合の前提条件、実行結果の見方などがある程度分かるレベル向げで ある。 表. 1に、この 3つのタイプを、回帰分析でのチェック項目を例にとって示す。 ② チェック項目の結果を確認しながら、正しい実行手順で分析結果が得られる。 →チェック項目ごとの結果を一つ一つ確認しながら、分析を実行するための基本的な 手順を習得できる。 ‑100

107.

表. 1 回帰分析でのタイプ別チェック項目 <チェック項目>@:チェックを行う(または選択可能) 大項目 解析前チェック タイプ I 小項目 観測値のチェック 目的変数のチェック 説明変数のチェック 解析評価 モデル全体に関する評価 回帰係数に関する評価 解析後チェック 残差のチェック 影響観測値のチェック 多重共観性のチェック ③ ム:選択可能 。 。 。 。 。 。 。 。 x:選択不可 タイプ E タイプ皿 ム × 。 。 。 。 。 。 。 。 ム × ム × ム × チェックの内容と修正提案を同時に表示し、修正できる。 →結果出力ウインドウとパラメータ入力ウインドウを並列表示することで、チェック 時の修正提案による修正を、グラフ等の結果を見ながら動的に行える。また、修正 終了後、前チェック項目を再実行し、結果がどのように変わったかを確認できる。 ④ 統計解析パッケージ ( W i n d o w s 版 SASシステム R 6 . 0 8 ) の実行をパックグラウンド で行う。 →統計解析パッケージに苦手意識のある場合でも、パッケージ自体を意識することな く解析できる。なおかつ、解析の結果は信頼のおけるものである。 5. 2 ① <統計解析パッケージの提作学習に関する特撮》 チェックエンジン部で自動的に SASプログラムを生成、実行する。 → SASプログラムを知らなくても SASシステムを利用できる。 ② 生成した SASプログラムを実行届歴として保存できる。 →保存された SASプログラムにより、 W i n d o w s 版 SASシステムのみを単体で実行 することもできる。また、保存された SASプログラムにより、 SASシステムの 実行方法等が学習できる。 ③ SASプログラムの実行結果の重要な部分を抜き出してみることができる。 → SASシステムの出力結果の中を直接見ることなく、重要な部分だけを参照できる。 実際のシステムのユーザインターフェースイメージを図. 3、図 . 4に示す。 1 0 1 ‑

108.

図. 3 実際、のシステムの画面イメージ 《等分散性》 一り(;t、遼当芯ぱらつきとなって 制 J I I咽 自 l 1 : l i 宜 宣 Y A 司 E , .~ I O • 1 0 0 ・ a ~ ‑H ~O ‑ lo . , = [ ( 0 臼 1 ; ' 1 刷 1 1 0 I 掴 2 0 0 1 2 1 W 干畑 図 .4 SASプログラムの表示イメージ 崎 町 1 m 一 l I i m . l ィ ア 蜘 j 長国ーー̲ f i 想r o l . V副 両 国 胆 d . ' I t . ' 1t 8 m p ; c a l n r d p s u ; fxidx37 関図幽 日 1 2 0 . 0 0 0 5 . 2 1 .0 0 0 1 日 日 1 7 . 6 0 0 1 3 0 .日 日 日 2 .日 ~O.OOO 8 . 4 0 0 1 3 . 0 0 0 1 4 .日 目 。 1 1 .0 0 0 1 5 0 . 0 0 0 5 . 0 日 1 9 . 8 0 0 1 5 0 .旧 日 6 .日 日 日 1 6 .日 日 日 1 0 0 . 0 0 0 日 日 2 1 .1 0 0 1 4 0 .日 日 日 7日 4 . 8 0 0 1 0 0 . 0 0 0 8 . 0 0 0 1 9 . 0 0 0 2 6 . 4 0 0 1 4 0 . 0 0 0 日 1 5 . 2 日 1 1 0 .日 日 日 1 0 .即 1 1 . 日0 0 1 4 . 6 0 0 1 8 0 .日 日 日 1 2 .日 日 日 1 6 . 7 0 0 2 0 0 . 0 0 0 日 1 5 . 7 0 0 2 1 0 . 0 0 0 1 3 . 0 日 2 4 0 . 0 0 0 1 4 . 0 0 0 1 6 . 7 3 . 0 0 0 2 5 0 . 0 0 0 1 5日o3 1 3 濯機業義援護送j 密 室3密 室 ヨ 1 0 2一 p r o cr e gd a t ョ=temp; m o d e lx 3=x 1泣; r u n ; 藤岡 l

109.

6 . プロトタイプ作成 プロトタイプでは、先に挙げた製品としての必要条件や、システム自身の基本構成を検討し やすくするために、必要条件で掲げた統計手法について回帰分析のみに限定して作成した。 i s u al B l 1s i cを使用してシステムを作成することにより、より 操作性の面においては、 V Windowsライクなシステムを構築した。 M D1 (マルチドキュメントインターフェース)方式 を採用し、パラメータ入力画面と複数の結果の出力画面を、同時に参照することができるよう にした。また、グラフとデータスプレッドシートの連動などもある程度可能になっている。 チェツクシートをシステム化するという面においては、ひとつのウインドウで一度に見るこ とのできる情報量が限られているため、必要な情報をどのように短く、わかりやすく表現する か、という問題がある。現在はチェツクシートの内容を、言葉ではできるだけ簡単に表現しグ ラフなどで視覚的に表現する方法を考えている。チェック内容についての詳細な説明は、オプ ション画面で参照できるようにはしているが、この部分についてはさらに検討の余地があると 考えている。 7 . 終わりに 現在は、回帰分析についてのみをプロトタイプとして作成しているが、製品化に向けて、分 indows版 S 析手法の強化、チェツクシートの内容の吟味、ユーザインターフェースの強化、 W A Sシステムの機能の利用の検討、 Windows上の他パッケージとのデータ共有等の具体的な方 法など、調査および評価・検討がさらに必要である。 今後の予定として、この統計入門ソフトウェアを製品化する予定であるが、そのための検討 事項として、 ‑統計解析の初心者向けヘルプの強化 ‑分析手法の追加(当面は数量化理論 I類) .Windows 上の他パッケージとのデータ共有等の強化 .Windows版 SASシステムの R 6 . 1 0へのパージョンアップに対する対応 を挙げている。今後、これらの検討事項を解消しながら、利用しやすい統計入門ソフトウェア を目指していく予定である。 合 吋1 M 侶 S 合 吃 2V 羽i s 叩u a 札1 Ba 拙白i d はま米国酌Mic r o s o f l 託 tC o ω r 戸 po r a 瓜t i o nの畳録商標です。 103‑

110.

参考文献 [ 1 ] A f i . f i , A . A . 姐dC l位 k, V .( 19 9 0 ) . C o m p u t e r . 竺 Ai 出 dMu / t i v a r i a t eA n a / y s i s2nde d ., VanNostrandReinholdCompany. [ 2 ] Gale, 羽T .A . ( 19 8 G ) . A r t i f i c i α1 i n t e l l i g e n c eands t a t i s t i c s, AddisonWesley. 8 7 ) . 知識の表現と利用,オーム社. [ 3 ] 上野春樹,石塚満(19 [ 4 ] 小林重信 ( 1 9 8 7 ) . 知識工学,昭晃堂. [ 5 ] 吉津正,芳賀敏郎(19 9 2 ) . 多変量解析事例集第 1集,日科技連. [ G ] 中野純司,山本由和,岡田雅史 ( 1 9 9 1 ) . 知識ペース重回帰分析システム,応用統計学 Vo 1 .20,No.1,1 1・2 3 . [ 7 ] 田中豊,垂水共之,脇本和昌(19 8 4 ) . パソコン統計解析ハンドブック I I,多変量解析編,共立出版. [ 8 ] 林篤裕(19 9 2 ) . マルチメディアを利用した統計コンサルテーションシステムの開発, 0 . 第 9回日本分類学会研究報告会. 5・1 9 3 ) . チェツクシートによる統計解析の知識表現, [ 9 ] 赤津利夫,井上恭子,垂水共之(19 第 7回日本計算機統計学会シンポジウム発表論文集. 1 0 1・1 0 4 . [ 1 0 ]赤津利夫,井上恭子,垂水共之(19 9 4 ) . チェツクシートによる統計解析の知識表現 ( 2 ) ~製品化への試み, 第 8回日本計算機統計学会発表論文集. 35・3 8 . 104‑

111.

日本 5A5ユーザー会 (5UGト J) カスタムクラスライブラリ 0佐 藤 耕 一 ネイチャーインサイト株式会社 松井輔 システム開発部 SASセクション L i b r a r yo fC u s t o mC l a s s e s K o i c h iS a t o T a s u k uM a t s u i S y s t e mD e v e l o p m e n tD e p e r t m e n tS A SS e c t i o n, N a t u r eI n s i g h tC o .,L t d . 1 ‑ 3 7 ‑ 7S e n j y u, A d a c hi ‑ k u, T o k y o, 1 2 0 要旨 SAS/AFソフトウェアのオブジェクト指向プログラミング (00P) 支援機能を利用 したグラフイカル・ユーザ・インタフェース (GU 1)アプリケーションの構築事例を紹介 します。サブクラスを作成するための CLASSエントリの指定方法、メソッド定義をする 場合の SCLエントリの作成方法、リージョンマネージャと RESOURCEエントリの関 係についての内容が中心となります。加えて、アプリケーションを構築する上で必要となる メッセージパッシング機能などについても触れています。 キーワード: SAS/AFソフトウェア オブジェクト指向プログラミング 1.はじめに コンビュータハードウェア、ソフトウェアにおける急速な技術進歩の流れの中において S A Sシステムもここ数年で大きく変わってきました。 SAS/AFソフトウェアのアプリケ ーション開発環境を見ると、 2つの大きな変化を経験しました。ひとつはバージョン 5から ノfージョン 6への移行の過程です。パージョン 5では PROGRAM エントリの原型といえ るキャラクタベースの画面とスクリプトに似たソースコードが一体化したエントリでした。 . 03から画面制御専用の言語としてスクリーンコントロ パージョン 6に移り、リリース 6 ール言語 (SCL) が採用され、エン.トリーレベルではパージョン 5同様一体化しています . 08 がウインドウ操作が柔軟に行えるようになりました。もうひとつの変化はリリース 6 からの OOP支援環境と GU 1開発環境 (GU 1ビルダ)の採用です。 FRAMEエントリ の出現によって SASシステム環境でのアプリケーション構築手法が飛躍的に向上しました。 ここでは、リリース 6 . 08から新機能として追加された SAS/AFソフトウェアの OOP支援機能の利用方法をサブクラスの作成を中心に事例を交えながら紹介していきます。 なお、ここに紹介するサンプルアプリケーションの画面およびソースコードは弊社が開発 したフリーソフトウェア NISTAD(エヌアイスタッド)の一部です。システムの動作環 . 09、Windowsリ版リリース 6 . 08、 6 . 10で 境は、 UNIX*l版リリース 6 す。本文中の作成事例は、 Windows版リリース 6 . 10の環境で行いました。 ‑105

112.

2 . クラス SAS/AFソフトウェアが標準提供しているクラスは非ウィジェットクラスとウィジェ ットクラスに分類できます。非ウィジェットクラスは、 OBJECTクラス、 FRAMEク ラス、 WIDGETクラスの 3種類です。これに対してウィジェットクラスは 20数種類あ ります。これはプラットフォームや SASシステムのリリースによって種類が異なります。 例えば Windows環境では Windows独自の OLE関連のクラスがありますが、同 じWindows環境でもリリース 6. 10ではイメージクラスがサポートされています。 A S H E L P . F S Pカ 現在使用している SASシステムが提供しているウィジェットクラスは、 S タログに保存されている B U I L D .R E S O U R G E エントリで確認できます。 2 . 1 クラス構造 F i g u r e 2 .1)。第 l階層の位置に これらの標準提供クラスは、階層構造になっています C ある OBJECTクラスは SAS/AFソフトウェアに存在するすべてのクラスの親(スー パークラス)にあたります。第 2階層の FRAMEクラスは FRAMEエントりを作成する ためのクラスで、 WIDGETクラスは FRAMEエントリに定義するオブジェク卜(ウィ ジェッ卜 =GUIの部品)のためのクラスです。第 2階層までの 3つの非ウィジェットクラ スはユーティリテイクラスです。 FRAMEクラス、 WIDGETクラスは OBJECTク ラスのサブクラスです。 WIDGETクラスは、ウィジェットクラス群の親になります。 │OBJECT クラス │ ー一一一一一一一ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー‑~-ー一一一一一ーー一一ーー司- ‑‑‑ I !テキスト入力クラス I 1 1 1 1 テキストラベルクラス 1 1 1 1 チェックボックスクラス ! │ I 非ウィジェットクラス 仁三二コウィジェットクラス iウィジェットクラス群 :ユーティリテイクラス F i g u r e 2 . 1 SA S /A Fソフトウェア標準提供クラスの階層 1 0 6一

113.

2. 2 サブクラス化 サブクラス化とは既存のクラスから新たに別のクラスを派生させることを言います。サブ クラス化を行うことによる利点は、アプリケーション開発の製造効率が向上することと、作 成したサブクラスを含むクラス構造を他のアプリケーション開発のために有効活用する資産 として残せることがあげられるでしょう。もちろん、作成したクラスを使える環境を整えな ければなりません。どこにどのようなクラスがありどのようにすれば使えるのかを十分管理 しておく必要があります。 2 . 3 サブクラス化の手l!l i 新しいクラスを作成する場合の状況は様々です。例えば、前述したアプリケーション開発 効率を上げるために作成する場合、アプリケーション設計段階からクラス構造を考えなけれ ばなりません。アプリケーションの資産としてクラスを残す場合には、実装されているオブ ジェク卜からクラスを作成するので、ある程度標準化する作業が必要になります。それでは 実際の作成手順を見てみます ( F ig u r e 2 .2 )。 (a) 新しいクラスの設計 (b) CLASSエントリの作成 (c) カスタム属性ウインドウの作成 (d) (e) RESOURCEエントリの作成 F i g u r e 2 . 2 新しいクラスの作成手l!頃 2. 3. 1 新しいクラスの設計 ) 頂 (a)では、最低限次の項目は決めておく必要があります。 手1 .CLASSエントリ名と保存場所 .CLASSエントリの別名 (Alias) .親クラス ・カスタム属性ウインドウの有無 .カスタム属性ウインドウの情報 ‑メソッドのオーパーライドの有無 ‑オーパーライドしたメソッドの情報 ・新しく追加したインスタンス変数の有無 .新しく追加したインスタンス変数の情報 .受信メッセージの有無 ‑受信メッセージリストの情報 ‑クラスを登録する RESOURCEエントリ名と保存場所 ‑107一

114.

他に必要な情報としては、クラスを作成したアプリケーション開発プロジェクトや、この クラスから派生するクラスはあるかなど作成状況の履歴や他のクラスとの情報なども設計時 T a bI e 2 .1)に記載し、一括 に記録しておくと便利です。これらの項目は、チェツクシート C 管理します。 サブクラス畳録チヱツクシート 作成者: 作成日 │ 年 口 月 口 日 1 変更日 C L A S Sエントリ名 │年仁コ月仁コ日 II II II 1I C L A S S II C L A S S 見出し C A l i a s ) II 親クラス システム名│ 口標準属性ウインドウ ロカスタム属性ウインドウ 畠 ̲ . . ・ 一 畠畠̲ ̲ ̲ ̲ ̲ J T a b le 2 .1 カスタムクラスのチヱツクシート 2. 3. 2 C L A S Sエントリの作成 ) 国 Cb) C F i g u r e 2 . 2 ) の CLASSエントリの作成に入ります。 C L 設計が終わると手1 A S Sエントリの作成方法は 2通りあります。ひとつは、あらかじめ作成したオブジェクト をもとに新しい CLASSエントリを作成する方法です。もうひとつは始めから CLASS エントリを定義する方法です。非ウィジェットクラスの作成は後者の作成方法を使用しなけ ればなりません。また、ウィジェットクラスを作成する場合はどちらの作成方法でもかまい ませんが、ウィジェットの動きを確認しながら、またはテストしながらインタラクティプに 構築できるので慣れないうちは前者の作成方法が効率良く作成作業を進められると思います。 CLASSエントリの作成でもう I点注意しなければならないことがあります。それは C LASSエントリの保存場所です。どこに保存するかはクラスを利用する環境によって決め る必要があります C F i g u r e 2 . 3 ) 。通常、アプリケーション開発プロジェクトには専用のシ ステムライブラリを設定するので、その場所にまとめて保存しておきます。しかし、複数プ ロジェクトで共用する場合や誰でもオープンに利用できる環境にするには SASUSERラ イプラリや SASHELPライブラリ(使用には多少注意が必要)、またはカスタムクラス 専用のライブラリを保存先にします。また、アプリケーションをノぞッケージ化する場合には アプリケーションシステムカタログの中に保存することになります。 108~

115.

Bシステムライブラリ A システムライブラリ ク‑ 口 一E 可dEnnnu ﹂ノ園Frna F ︐ 卜 工 ー! E CLASS CLASS S F g ‑ク‑ 一日ン一 E4JE 一口一 ﹄ s: γr s ' zi fs r︑ t︑ t ぜ'Enana aF4qun晶 ﹄ cc タ 一 JEaHaH ︑ FLE‑‑ 1L Amaun 力‑ 一 フ ‑ 一 ス クアl 2 B 1 B 2 タ一川 L ム一 テ‑pp ︐︑園内 UnU ‑J‑TITI 聞 Enbnb ノ園vnvn ト 司d FEFE ︐ ︑ FL‑RHURHU 口‑ E グ 一 可dEnnnu ﹂ JEEICU 聞 タ一川 L ム一 pp ‑nunu ‑TITI 工 一‑ノ ‑ vnvn ︑ ︐ノ E nana A 自 ︑ h a FEFE ︐ ︑ ︐ r nuvnuv ! Aプロジェク卜 子E〆-/-〆-/-〆-/-〆_/_/~ SASUSERライブラ 1 ) ASHELPライブラ 1 ) 11﹄ ‑ s s 口 グ 一 ﹄ zrbqu A︐ 円 ﹄ EAmA JE‑‑ ︑ ﹂ J‑nunu ﹄ ''ail ︐ ラ 一1 2 一 ス 司コ‑EUEU 口同‑nunU 11 ・ r ‑AmA門 ︐ ︐ ト﹄︑‑11﹄ ﹃ l ﹄ 44‑ nHunHM FSP力タログ LASSエントリ 標 準C F i g u r e 2 . 3 CLASSエントリを保存するライブラリ構成 CLASSエントリを保存するカタログはひとつの CLASSエントリに対してひとつの カタログを設定する場合と、複数の CLASSエントリをひとつのカタログにまとめる場合 が考えられます ( F i g u r e 2 . 4 )。どちらの方法でも管理方法に大差はありませんが、作成し た CLASSエントリに関わるエントリ(メソッドの記述をした SCLや FRAMEエント リ等〉の数が少なければ後者の方法を、多ければ親クラス別にカタログを分けるなどの前者 に近い方法をとるようになるでしょう。 Dシステムライブラリ ヴ J 口‑ 一 1 TmAL 4ノ一ー﹂ DHPU タ一応舵 ス 一G F S 一 フ ‑ ク一川刊川 クラスカタログ C 1 CLASS C 2 CLASS C1ATTR FRAME C 1 S C L ノTnuTlnu ‑TlAmTI E‑TlM川 Tl 一 ︑A HUT‑HU ボ‑BBB 一 ‑ ︐ Cシステムライブラリ グラフクラスカタログ G R A P H l CLASS GRAPH2 CLASS G R A P H l SCL GRAPH2 SCL Fi g ur e 2 .4 CLASSエントリを保存するカタログ構成 1 0 9

116.

2 .3 . 3 カスタム属性ウインドウの作成 非ウィジェットクラス (OBJECTクラス、 FRAMEクラス)のサブクラスを作成す る場合には、手1 ) 国 (c) ( F i g u r e 2 . 2 ) の作業は必要ありません。また、各ウィジェットク ラス(アイコンクラスなどの WIDGETクラスのサブクラス)には標準の属性ウインドウ が用意されているので必要がなければ作成しません。本来、カスタム属性ウインドウは、ウ ィジェットを持つオブジェクトに定義されているインスタンス変数に対して値を割り当てる ために利用します。従って、カスタム属性ウインドウは CLASSエントリに新しいインス タンス変数を定義した場合に作成するようにします。 カスタム属性ウインドウは FRAMEエントリでも PROGRAMエントリでも作成でき ます。作りやすさの点から考えると FRAMEエントリを使うことになるでしょう。また、 SAS/AFが提供する各ウィジェットクラスの属性パネルのフレーム部分をコピーして作 ることもできるので、標準の属性パネルに画面レイアウトを合わせることもできます。標準 の属性ノ fネルは、 S A S H E L P . F S P カタログの中に A T T R材 料 .F R A M E エントリとして保存されて います。 2 .3 . 4 メソッドの定義 FRAMEエントリのウィジェットを制御するには、ウィジェット(オブジェクト)属性 と提供されているメソッドの定義と、ウィジェットに対応づけられてる SCLプログラムに よって行います。ウィジェット属性とメソッドを使用すれば SCLプログラムのない F R A M Eエントリを作ることができますが、制御の範囲は限られます。 PROGRAMエントリ で SCLプログラミングに慣れているユーザーには、 C O N T R O LL A B E L ステートメントの動き を中心としたウインドウコントロールのほうが使いやすいかもしれません。 しかし、アプリケーションの開発効率やプログラムの簡素化、標準化などの点から考える と 、 O O P支援機能として提供されているメソッドを最大限活用することが不可欠です。メ ソッドは、 SAS/AFソフトウェアが提供する全てのクラスに存在します。そして、その クラスから作成したオブジェクトが実行できる処理が定義されています。クラスが持つメソ ッドの数はクラスによって異なります。親クラスの持つメソッドは子クラス(サブクラス) に全て継承されます。クラスごとにメソッドの数が異なるのは親から継承されたメソッド以 外の独自のメソッドを持つためです。 メソッドは、標準提供されているものを書き換える(オーバーライド)ことも、新しいメ ソッドを作ることもできます。クラスをカスタマイズすることは、クラス独自の属性を割り 当てるとともに独自のメソッドを定義することになります。 メソッドをオーバーライドする、または新しく作成する場合いくつかのメソッド定義に関 するルールがあります。新しくメソッドを作成する場合、メソッド名は最大 28文字でアル ファベット、数値、特殊文字(ブランクを含む〉の制限はありません。ただし、名前の前後 に下線(アンダースコア)だけは使用できません。メソッド定義の SCLステートメントは SCLエントリのラベルブロックの中に METHODブロックを指定し、その中にコーデイ ングします ( F i g u r e 2 . 5 ) 。また、リリース 6. 10では SCLエントリ以外のエントリ (FRAMEエントリ、 PROGRAMエントリなど)もメソッド定義に使用できます。 1 1 0一

117.

L A B E L M E T H O D SCLステートメント E N D M E T H O D R E T U R N F i g u r e 2 . 5 メソッドを定義する SCLステートメント 2. 3. 5 RESOURCEエントリの作成 FRAMEエントリの画面設計および構築はリージョンマネージャを利用して行います。 FRAMEエントリに埋め込むウィジェットの選択、位置の設定、サイズ変更、移動、削除 の操作や、オブジェクト属性、リージョン属性のパネル表示などもマウス操作でインタラク ティプに行えます。 手1 ) 慎 (d) C F i g u r e 2 . 2 ) までの作業がサブクラスを作成する過程になります。サブクラ スの作成が終了すると、今度は、作成したクラスをリージョンマネージャを介して利用でき るようにします。リージョンマネージャは、ウィジェット一覧をポップアップメニューで表 示します。このポップアップメニューに表示されるアイテムは RESOURCEエントリに あらかじめ登録しであるウィジェットクラスです。 新たに作成したクラスがウィジェットクラスなら、 RESOURCEエントリにクラスを 登録し、クラス一覧のポップアップメニューからクラスを選択できるように設定します。 リージョンマネージャが参照する RESOURCEエントリは次の順で検索されます。 U I L D .R E S O U R C E エントリ 1.編集中のカタログ内にある B 2 .S A S U S E R . P R O F I L E カタログの B U I L D .R E S O U R C E エントリ 3 .S A S H E L P .F S P カタログの B U I L D . R E S O U R C E エントリ SAS/AFソフトウェアのインストール時には、 S A S H E L P . F S P カタログにだけ B UI L D . R E S O U R C E エントリが存在するため事実上のデフォルトは S A S H E L P .F S P .B U I L D .R E S O U R C E に なります。サーチパスにない RESOURCEエントリを使用する場合は R E S O U R C E コマン ドを使用するか、 B U I L D コマンドおよび P R O CB U I L D プロシジャステートメントに R E S = オプションを指定します。例えば、 S A S U S E R .P R O F I L E . A L L C L A S S .R E S O U R C E エントリを使う場 合には、 B U I L DS A S U S E R . S U G IJ 9 5R E SニS A S U S E R .P R O F I L E . A L L C L A S S .R E S O U R C E B U I L DS A S U S E R . S U G IJ 9 5 .D E S K T O P . F R A M ER E S = S A S U S E R .P R O F I L E . A L L C L A S S .R E S O U R C E 二S A S U S E R . S U G IJ 9 5R E SニS A S U S E R . P R O F I L E . A L L C L A S S . R E S O U R C E ;R U N; P R O CB U I L DC ーよ 1よ 1よ

118.

または、カタログディレクトリウインドウから次のコマンドを実行します。 R E S O U R C ES A S U S E R .P R O F I L E . A L L C L A S S .R E S O U R C E ただし、既存の FRAMEエントリまたはオープンした FRAMEエントリでの RESO URCEエントリの変更はできませんので注意が必要です。 qL 14 14

119.

3. サンプルアプリケーションの構築例 サンプルアプリケーションの例をもとに、サブクラス化の作成過程を追ってみます。 に紹介するアプリケーションは、 SASシステム環境でのアプリケーション開発に必要なユ ーティリティ機能を集約したパッケージツールです ( F ig u r e 3 .1 ) 。 フγイ) 1 ノ 編集 ピ 、 ユ ー アブ l ケショ 斉 環境設定 ツール フイブフ')参照名リスト N I S Y 泊 ‑ I GE :半S A T O H 半N I S T A D 平E 陥半B 配K L P N I S Y S J P NE :半S A T O H 半N I S T A D 平J 内併出口{ L P 鈷S 山田 ほ1 日 K a i r l i n ed a t a巳 トー C i t ib a s eN e w C i t i b a s eN e w 昌s eN e w C i t i b ∞ ∞ C it ib a s eN e w ‑ l 1 . φ 11 司 砂 図D A T A 図V I E W t 青 幸E メン I¥ N O D A T A V 6 0 0 D A T A V ぽ1 8 N O C A T A L O G V ぽ1 8 N O B A S E V 印8 N O C I T I D A Y D A T A N O A T A V 6 0 8 C I T I M C N D A T A V 6 0 0 N O C I T I Q T R D A T A V 6 0 8 N O C I T I W K D A T A V 6 0 8 N O C I T I Y R D A T A N O V 6 0 8 L O R S D N O C O P Y R 聞T D A T A V 6 0 8 N O C A T A L O G V 6 0 8 R E N O 出F D E F S D A T A V 6 0 8 酬 A T R I XC A T A L O G V 6 0 8 N O N O D A M A T R I XD A T A V 6 0 8 N O A T A L O G V 6 0 8 D A T A F M T C N O C C A A T T A A L L O O G V 羽 6 0 田 8 任 県 口T N O A I R A T T R E X E :半S A T O H判 I S T A D 平S 胤J S E R F :半斜刻明〈 メンバタイブ ツ J L へルブ ∞ 図A E S S 図C A T A L O G N a t u r eI n s i g h tC O . ,L 選択フ 7 イル数:。 . r l 表示フ イル数:1D 7 Figure3.1 サンプルアプリケーションウインドウ 3. 1 ライブラリ参照名リストボックスクラスの作成 サンプルアプリケーションウインドウ C F i g u r e 3 .1 ) の左上に配置しであるリストボック スは、現在の SASセッションで割り当てられているライブラリ参照名を表示するウィジェ ットです。このウィジェットのモデルとなるクラスを作成します。 一1 1 3一

120.

3. 1. 1 ライブラリ参照名リストボックスクラスの仕篠 簡素化していますが、ここで作成するクラスの要求仕様は次のように定めます。 C L A S Sエントリ C L A S Sエントリ名:S A S U S E R .S U G I ̲ J 9 5 .L I B L S T B X .C L A S S 見出し (AIias ) :S u b CI s : ライブラリ参照名リストボックス 親クラス :S A S H E L P .F S P .L IS T B O X .C L A S S C L A S S属 性 属性パネル :標準 I B L S T B X オブジェクト名:L タイトル :ライブラリ参照名一覧 選択オプション:一項目 選択方法 :E N T E Rキーまたはシングルクリック 項目オプション :SCLリスト ( L I B N M L ST) メソッド定義 SELECT 状況 :オーバーライド ソースエントリ:S A S U S E R .S U GIJ 9 5 .LI B L S T B X .S C L ラベル :S E L E C T 処理 :リストボックスで選択されたライブラリ参照名をブロードキャス卜する。 送信するメッセージのメッセージ名は、 S E L E C T印一L I B N A M E。ライブラリ参 照 名 は 文 字 引 数 (8バイト)により送信する。 A S U S E R . S U G IJ 9 5 .N E W B U I L D .R E S O U R C E リソースエントリ名:S 作成する CLASSエントリには、カスタムクラス専用のライブラリおよびカタログを用 意しません。これは、アプリケーションがノ fッケージである点を考慮しました。もちろんサ ブクラスを作成した後にカスタムクラス専用のライブラリやカタログにサブクラスに関する 一連のエントリをコピーして共用クラスとして使用することもできます。 サブクラス独自のインスタンス変数やオブジェク卜に設定するデータはないので設定しな いので 標準の属性ノ fネルを使います。クラスの属性は、 FRAMEエントリにオブジェク卜 を実装する段階でも再定義できるのでウインドウ設計で決められる範囲内で定義します。メ S E L E C T をオーパーライドします。 S E L E C T メソッドはユーザがウィジェッ ソッドは、 ̲ トにアクションをかけた時に自動的に実行されるメソッドです。ここでは、リストボックス からライブラリ参照名のアイテムを選択したときに選択されたライブラリ参照名をブロード キャス卜するように書き換えます。 構築するアプリケーションは、スター卜アップ処理でライブラリ参照名を格納した S C L リスト ( LI B N M L ST)を作成します。この SCLリストをノ fラメータで FRAMEエントリに 渡し、ライブラリ参照名一覧のリストボックスオブジェク卜にライブラリ参照名のアイテム をリストします。 ‑ 1 1 4一

121.

3.1.2 L 1 BLSTBX. CLASSエントリの作成 要求仕様に従って、 CLASSエントリを作成します。 CLASSエントリは新規に作成 する方法で行います。次のコマンドを実行して、 SASUSER.SUGI̲J95カタログディレク卜リウ インドウをオープンします C F i g u r e 3 . 2 )。 BUILD SASUSER.SUGI J 9 5 . ~170 ID S K M E N UP M E N U D s k t o p :デスクトッププルダウンメニュー G l o b a l :データ構造 SCLリスト作成 M A K E L I S TS C L G l o b a l :スター卜アツフ。処理 S T A R T U PS C L 0 4 / 0 5 / 9 5 0 4 / 0 5 / 9 5 0 4 / 0 5 / 9 5 ・ 4 ー Figure3.2 カタログディレクトリウインドウ 表示されている 3つのエントリはあらかじめ作成されています。メニューバーから次のよ うに選択して下さい。 r u │ファイル│…・・>[]歪互 新規作成ウインドウがオープンします。エントリ名を LIBLSTBX エントリタイプを CLASS にし、 「了解」をクリックします。 CLASSエントリウインドウがオープンしたら、 見出しと親クラスのエントリ名を設定します C F ig u r e 3 .3 )。 9 5 .L lB L S T B 凡C L A S S( 0 B U I L D :S A S U S E R . S U G IJ C L A S Sエ ン ト リ 名 : IS A S U S E R . S U G IJ 9 5 . L I B L S T B X 見出し: IS u b C l s : フイプフ 1 )参照名リストポックス S A S H E L P . F S P . L I S T B O X 親クラスのエントリ名: │ 設定オプシヨン 属力性の編集属 . ス タ ム 性 の 設 定 . .. メソッド凶・・ インスタンス変数... メッセージのリス卜 新規保存 ~ メッセージ表示 取消 Fi g u r e 3 .3 C LA SSエントリウインドウ へルフ。 phU 1ょ 1ょ

122.

次に設定オプションの属性の編集をクリックします。リストボックスの属性ウインドウが オープンしたら仕様に従い設定します。設定終了後、 「了解」をクリックし、 CLASSエ ントリウインドウに戻ります。次に設定オプションのメソッドをクリックします。メソッド ウインドウがオープンしたら、メソッドのリストボックスから S E L E C T ̲を選択します。 ソースエントリに S A S U S E R . S U G IJ 9 5 . L I B L S T B X . S C L とタイプし SCLエントリ内のラベル E L E C T とします。リリース 6 . 10以外の環境では多少設 を実行を選択します。ラベルは S V E R R I D E になり S E L E C T メソッ 定の項目名等が異なりますので注意して下さし、。状況が O F i g u r e 3 . 4 )。 ドをオーバーライドすることを意味します ( メソッド(編集) 斗 メソツト A D D A D DD R A GOP A D DD R A GR E P A D DD R O PO P A D DD R O PR E P ‑ A D D ‑ R E C E T v E R ‑ ‑ A T T R I B U T E SD T A L O G B A C K G R O U N DD I A L O G B I N I T ‑ B P O S T T N I T B R O A D C A S T B T E R M ‑ B U P D A T E ‑ C H I L DP O P U P ‑ C O L U M N 一 一企~ 4 炉 │アクション 名前: 仁 三 亘E ソースエントリ │ S A S U S E R . S U G IJ 9 5 . L I B L S T B X . S C L r SAS/~ エントリを実行 r .S C Lエントリ内のラベルを実行 I 一 副 1 S E L E C T I 状況: Iov出 削 此 │ ,接頭シンポル一一一一一 ド鰻集成 メッセージ表示 牢上書き リセット │ [ i l l ヨE │ヘルプ│ F i g u r e 3 . 4 メソッドウインドウ CLASSエントリの作成はこれで終了です。メソッド定義の SCLエントりを編集する d i ts o u r c ee n t r y のアイテムを選択するか、メ 場合は、 「アクション」をクリックして E S E L E C T のアイテムをダブルクリックして下さ ソッドが表示されているリストボックスの ̲ い。ソースエントリで指定したエントリがオープンします(リリース 6 . 10からの機能で す〉。ここでは、一度カタログディレクトリウインドウに戻ってからソースエントリの編集 をします。 r了解」をクリックして L I B L S T B X .C L A S Sエントリウインドウに戻り、もう一度 A S U S E R . S U G I ̲ J 9 5カタログディレクトリウインドウに戻ります 「了解」をクリックして S ( Fi g u r e 3 .5 )。 116‑

123.

一 ユ 一 一 成 メ作 スント クウス ツダリ理 ポルL処 トプCプ スプS ツ リツ造ア リデデス 名ト構ト 照クタ一 参ス一タ ︼ ﹄ ヂ ' nドIlll ‑dn 2U2u 一フ: イ防白山 ラ民印印 ト﹄ 1LUMPUFU IFU 門 ﹁ qunb ﹄ ﹁ ﹂ quHυ 一 フ ¥4‑quu川 三 戸 一 A H F lLl ヱ ﹂ ト﹄ VAT‑ n円MHHM u 門H1 TlUN‑‑HU ︽ ︑ u F F︑ TlE 'E UMF ﹂ nk 圃園田 R M M K M K A a円 1iquA︽ Tl tLhυuMQM 0 4 / 0 6 / 9 5 0 4 / 0 5 / 9 5 0 4 / 0 5 / 9 5 0 4 / 0 5 / 9 5 F i g u r e 3 . 5S A S U S E R . S U G I ̲ J 9 5カタログディレクトリウインドウ 3. 1 .3 S E L E C T メソッドのオーバーライド L I B L S T B X .C L A S Sで指定した ̲ S E L E C T メソッドのソースエントリ L I B L I S T B X . S C Lエントリ を編集します。メニューパーより次のように選択して下さい。 新規作成ウインドウがオープンされます。エントリ名を L I B L S T B X、エントリタイプを 「了解」をクリックします。 L I B L S T B X .S C Lエントリがオープンされるので、 メソッドのプログラムをコーディングします C P r o g r a m 3 .1 )。 S C Lに設定し、 /本‑‑‑‑二二ニ‑‑‑‑‑‑二二二=======二二二二‑‑‑‑‑‑二ニニ‑‑‑‑‑‑二二ニ=======二二二二=======二二=本 │ メソッド定義 IS o u r c ee n t r y :S A S U S E R . S U G IJ 9 5 . L I B L S T B X . S C L IC L A S Se n t r y S A S U S E R . S U G IJ 9 5 . L I B L S T B X .C L A S S a r e n tC1 a s s S A S H E L P .F S P .L1 S T B O X .C L A S S IP IP r o g r a mF i l e I I I [A u t h o r :N a t u r eI n s i g h tC o . .L t d . :1 9 9 5 ‑ 0 4 ‑ 0 6 [ [ [ [M e t h o d :S E L E C T ( 1a1 b e1S E L E C T)1 9 9 5 ‑ 0 4 ‑ 0 6 .[ [N o t e :̲ S E L E C T ̲M e t h o d [ ID a t e [M o d i f i e d │ │ リストボックスオブジェクトで選択したライブラリ参照名を メッセージ名 S E L E C T E DL I B N A M Eによりブロードキャスト [ │ │ 本‑‑ニニニ‑‑‑‑‑‑ニニニ‑‑‑‑‑‑二二二二‑‑‑‑‑二二二二二‑‑‑‑‑‑二二二二====ニ二二二二二=====ニニ二二二二二本/ l e n g t h̲ S E L F ̲ 8 /本オブジヱクト 10 本/ L i b N a m e T x t $8 /本送信するライブラリ参照名本/ 1よ 1よ ヴ ‑

124.

1 * 一一一一一一一一一一一一一一一 一一一一一ー 一一一一 I S E L E C T ̲ メソッドのオーバーライド 一一一一ー 一一一 │ 一一一一一一一一一一一一一一一一一一一一一* 1 S E L E C T m e t h o d c a lIS E N D ( S E L F ,̲ G E T̲ L A S TS E L' R o w N u m I s S e l e c t L i b N a m e T x t i f (L i b N a m e T x t ^二 B L A N K )t h e n d o c a lIS E N D ( S E L F B R O A D C A S T' ' S E L E C T E D LI B N A M E ' 。 L i b N a m e T x t 1 *オブジェクト ID * 1 1 *メソッド * 1 1 *項目の行番号 * 1 1 *選択の有無 * 1 1 *選択されたライブラリ参照名 * 1 1 *オブジェクト ID * 1 1 *メソッド * 1 * 1 1 *送信メッセージ名 1 *数値データは使用しない * 1 1 1 *選択されたライブラリ参照名 * e n d c a lIS U P E R (̲SELF̲, ' S E L E C T ̲ ' ) :1 *スーパーメソッドの呼び出し * 1 e n d m e t h o d r e t u r n P r o g r a m 3 .1 S E L E C T メソッドのコーデイング プログラムをコンパイルすると変数 S E L F に関するI'IA R N I N G メッセージが出力されま E L F は特殊変数として使用しているので無視できます。メニューパーより次のよう すが S に選択して S A S U S E R . S U G I ̲ J 9 5 カタログディレクトリウインドウに戻って下さい。 1 1 8一

125.

3.1.4 NEWBU ILD. RESOURCEエントリの作成 S A S U S E R . S U G I J ̲ 9 5 . L I B L S T B X . C L A S S エントリを登録する RESOURCEエントリを作成 します。 RESOURCEエントリの作成方法は 2通りあります。ひとつは、新規作成する 方法で、もうひとつは、既存の RESOURCEエントリをコピーして追加修正する方法で す。作業効率を考えると後者の方法を使うことになります。ここでは、 S A S U S E R .S U G IJ 9 5 . A S U S E R .S U G I ̲ J 9 5 カタログウインドウで次のコ N E W B U I L D . R E S O U R C Eエントリを作成します。 S マンドを実行します。 C O p yS A S H E L P .F S P .B U I L D .R E S O U R C EN E W B U I L D .R E S O U R C E もちろんメニューパーからコピーを選択しでもかまいません G コピーした N E W B U I L D .R E S O F i g u r e 3 . 6 )。 U R C Eエントりをオープンします ( B U I L D :S A S U S E R . S U G IJ 9 5 . N E ' W BU I L D . R E S O U R C E( E ) 斗 F ' ス m m m m ﹃ ルクススン一ム 万ペツククルタルパユ す人ラポツツプポ一一ル主 下トクポポ一ンクユロダ一一一 文スツトオテコツ︑ソトイ口コ キキヱスジ張イ口ツンラク一‑ アテチリラ拡アププコスス E uv‑MVEMVEMVEMVEMVEMVEMVEMVEMVEMVEMVEMu‑ A A AAAAAAAAAAA IL‑LlLlLlLlLlLlLlLlLlL1LL ︑︑︑︑︑ ︑ ︑︑︑ 門 HEnvEnvEnvEnvEnvEnvEnyEnvEnvEnvE 門H﹄ 門 凶 Fbnununununuqunuqunununuga 岡山町山別別町山町 クラス . 司 砂 L •••• J叶 二 リノ 名プ kl必 f アクシヨン 工 ] 1 5I 名を表示する ン i 」 [ i l l ヨ~! へレプ│ メッセージ表示 1 j F i g u r e 3 . 6 N E W B U I L D .R E S O U R C Eエント 1 )ウインドウ 「アクション」をクリックし、 「追加」を選択します。エントリ選択のウインドウがオー A S U S E R . S U G IJ 9 5 .L I B L S T B X .C L A S S を選択し、 「了解」をクリックします。 プンするので S 指定した CLASSエントリ(ライフラリ参照名リストボックス〉が追加登録できました ( F i g u r e 3 .7)。 円叫 JV

126.

B U I L D :S A S U S E R . S U G IJ 9 5 . NE ¥ I I BUILD.RESOURCE( E ) 斗 . ヲラス C o n t a i n e rB o x 際関 ホットスポット ホットスポット D I S P L A Y クPラフ システムオプジ、ェクト D I S P L A Y イメーヅ S A S / A F フレームペースウィジェット A S / A F. F R A M E クラス A C T I V E S L E‑P a s t eS p e c i a l D I S P L A Y O L E‑I n s e r tO b j e c t D I S P L A Y O L E‑R e a dO b i e c t D I S P L A Y O u b C l s : ライプラリ参照名リストポックス D I S P L A Y S •••• L メッセージ表示│ こ 川JJI 名プ Llnf 工 アクシヨン ン 「別名を表示する 巨 翌 日 直~I ヘルプ| F i g u r e 3 . 7 クラス追加後の N E W B U I L D .R E S O U R C Eエントリウインドウ A S U S E R . S U G I ̲ J 9 5カタログディレクトリウインドウに戻ります 「了解」をクリックして S C F i g u r e 3 . 8 )。 B U I L D :D I R E C T O R YSASUSER.SUGIJ95(編集) 盆亙 タイフ 見出し ̲ ̲ ! ̲ : ・ 豆監日 L I B L S T B XC L A S S S リストボックス u b C l s : ライプラリ参プ照プ名ダ D S K M E N U P M E N U D s k t o p : デスクトツ ルウンメニュー N E W B U I L DR E S O U R C ECstRes:RESOURCEE n t s r y so fN IS T A D 一 L I B L S T B XS C L S u b C l s :L I B L S T B X 造 . C L S A メソッド作定成義 M A K E L I S TS C L G l o b a l : データ構 CL理 リスト ̲ S T A R T U P S C L G l o b a l : スタートアップ処 . ' 0 4 / 0 6 / 9 5 0 4 / 0 5 / 9 5 0 4 / 0 6 / 9 5 0 4 / 0 6 / 9 5 0 4 / 0 6 / 9 5 0 4 / 0 6 / 9 5 は 同 . F i g u r e 3 . 8 カタログディレクト 1 )ウインドウ S A S U S E R . S U G I J ̲ 9 5 .L I B L S T B X . C L A S S )作成の過程になりま ここまでの作業がサブクラス C す 。 120‑

127.

3.2 メンバ情報リストボックスクラスの作成 もう一例、 CLASSエントリの作成を紹介します。サンプルアプリケーションウインド F i g u r e 3 . 1 ) の右上に配置しであるリストボックスは、ライブラリ参照名リストボック ウ C スで選択されたライブラリに存在するメンバの情報を表示するウィジェットです。今度はこ のウィジェットのモデルとなるクラスを作成します。 3. 2. 1 メンバ情報リストボックスクラスの仕様 要求仕様は次のように定めます。 CLASSエントリ CLASSエントリ名:S A S U S E R .S U G I ̲ J 9 5 . M E M L S T B X .C L A S S 見出し (AIia s) :S u b CI s : メンバ情報リストボックス 親クラス :S A S H E L P .F S P .L I S T B O X .C L A S S CLASS属性 :標準 属性パネル オブジェク卜名:M E M L S T B X タイトル :メンバ情報 選択オプション:拡張選択 選択方法 :E N T E Rキーまたはシングルクリック T M B L ST ) 項目オプション :SCしリスト(TG メソッド定義 ダブルクリック SELECT 状況 :オーバーライド A S U S E R .S U G I ̲ J 9 5 .M E M L S T B X .S C L ソースエントリ:S ラベル :S E L E C T 処理 :リストボックスからタフルク 1 )ックで選択されたメンバが D A T A または V I E W の場合は F S V I E Wウインドウを表示し、 C A T A L O G の場合はカタログデ ィレクトリウインドウを表示する。 メソッド定義 RECEIVE 状況 :オーバーライド A S U S E R .S U G I ̲ J 9 5 .M E M L S T B X .S C L ソースエントリ:S ラベル :R E C EI V E 処理 :ライブラリ参照名リストボックスから送信された S E L E C T E DL I B N A M E メッ セージを受信し、リストボックスのタイトルにライブラリ参照名を反映さ E L L I B N M に受信メッセージ せる。また、設定した自動インスタンス変数 S (ライブラリ参照名)を格納する。 つ白

128.

インスタンス変数 ELLI B N M :S :N ew :ブランク(受信メッセージ S E L E C T E DLIBNAME のライブラリ参照名を格納) 自動初期設定:あり タイプ :文字 変数名 状況 値 リソースエントリ名:S A S U S E R .S U G I ̲ J 9 5 .N E W B U I L D .RESOURCE 3 .2 . 2 MEMLSTBX. CLASSエントリの作成 F i g u r e 3 . 9 ) を作成します。作成する方法は 仕様に従い CLASSエントリウインドウ C LIBLSTBX.CLASSエントリの場合と同様なので少し省略します。 B U I L D :S A S U S E R . S U GI ̲ J9 5 . M E M L S T BX .C L A S S( E ) C L A S Sエント 1 )名 見出し 親クラスのエントリ名 ISASUSER.SUGI̲J95.MEMLSTBX I S u b C l s : メンバ情報リストポックス │ S A S H E L P . F S P .L I S T B似 設定オプシヨン 属性の編集.. . カスタム属性の設定... メソッド.. . インスタンス変数.. . メッセージのリスト... │新規保存│ │メッセージ表示│ [ i l l │取消 l ヘルプ 1] Figure3.9 M E M L S T B X .C L A S Sエントリウインドウ 新規のインスタンス変数を設定しますが属性は標準のウインドウで設定します。メソッド は S ELECT と RECEIVE をオーバーライドします C F i g u r e 3 . 1 0 ) 。ソースエントリはど ちらも S A S U S E R . S U G I J95.MEMLSTBX.SCL に設定し SCLエントリ肉のラベルを実行を選択 します。ラベルは S ELECTおよび R E C E I V E とします。 qru q4 7ム

129.

斗 メソシド(編集) 名 前 : I̲SELECT̲ メソッド 牢 R ECEIVE 区 温盟E圃 ソースエントリ ADD ADD DRAGOP ‑ADD‑DRACREP ADDDROPOP ADDDROPREP ‑ADD‑RECETvER‑ ATTRIBUTES DIALOG BACKGROUNDDIALOG BINIT ‑BPosTTNIT BROADCAST BTERM ‑BUPDAfE CHILDPOPUP 1 ‑ 嗣 rS AS/AF エントリを実行 ーS C Lエントリ内のラベルを実行 lSELECT I 状 況 : IOVERRIDE ?妻頭シンポル一一一一ー ・‑ アクシヨン l.ASUSER.SUGI J95.MEMLSTBX.SCL ド護主成 *よ書き │ リセット 巨E ヨ E [ヘルプ│ メッセージ表示 F i g u r e 3 . 1 0 メソッドウインドウ 3. 2. 3 SELECT および RECEIVE メソッドのオーバーライド M E M L S T B X . S C L エントリに次のプログラムをコーディングします ( P r o g r a m 3 . 2 )。 1 * 二二二二二二二二二二二二二二二二二二ニニニ二二ニニニニニニニニニニニニニニニニ=二二二二=二二==========ニニ* │ メソッド定義 1S o u r c ee n t r y :S A S U S E R . S U G I ̲ J 9 5 . M E M L S T B X .S C L IC L A S Se n t r y S A S U S E R . S U G I ̲ J 9 5 . M E M L S T B X .C L A S S IP a r e n tC l a s s :S A S H E L P . F S P .L I S T B O X . C L A S S IP r o g r a mF i l e IA u t h o r ID a t e 1M o di fi e d 1 I I I t d . N a t u r eI n s i g h tC o .,L :1 9 9 5 ‑ 0 4 ‑ 0 6 : I I I IM e t h o d I ̲ R E C E I V E 一 (l a l b e lR E C E I V E)1 9 9 5 ‑ 0 4 ‑ 0 6 S E L E C T (1aI b eIS E L E C T )1 9 9 5 ‑ 0 4 ‑ 0 6 I I IN o t e │ R E C E I V E M e t h o d 受信メッセージ S E L E C T E D ̲ L I B N A M E によりタイトルを指定 I l I S E L E C T̲M e t h o d I │ ダブルクリックによりメンバの内容表示 l I S e l L i b N m変数は自動インスタンス変数定義 *============二二‑‑二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二‑‑二=二二 1 2 3 │ = = = = = = = = = = = * 1

130.

l e n g t h̲SELF̲ 8 /ネオブジェクト ID 本/ E V E N T $ 1/ 本 S E L E C T メソッド自動インスタンス変数字/ S e l L i b N m $ 8 /本選択されたライブラリ参照名 字/ S e l T e x t $1 0 0 /ネリストボックスアイテム * / / * 一一一一 1 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 R E C E I V E ̲ メソッドのオーバーライド │ 一 一一一一一一 一一一一一一一一一一 一 本/ R E C E I V E: 字/ m e t h o dM s g N a m e $ /ネメッセージ名 8 /半数値パラメーター * / N u m V a l S e l L i b N m $8 /本文字パラメーター(ライブラリ参照名) 本/ 8 /本送信側オブジェクト ID * / S e n d e r s e l e c t (M s g N a m e) w h e n(' S E L E C T E D LI B N A M E ' d o c a lIS E N D (̲ S E L F ̲, ,̲ S ET ̲ TI T L E ̲ ' /本受信債IJオブジェクト ID * / /ネメソッド ネ/ e l L i b N m1 1 'のメン 1 ¥ ' 情報' .ライブラリ参照名'日 S ); /*リストボックスタイトル ネ/ e n d o t h e r w i s e e n d c a lIS U P E R (̲ S E L F , /*スーパーメソッドの呼び出し本/ R E C E I V E' M s g N a m e N u m V a l C h r S t r S e n d e r e n d m e t h o d r e t u r n 1 * 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 1 S E L E C T ̲ メソッドのオーバーライド │ 一一一一一一一一一一一一一一一一一一一一一ーー一一一一一一一一一一一一一一一一一一一一一一一一一本/ S E L E C T m e t h o d 1 2 4一

131.

c a l lS E N D (̲ S E L F ̲ ,G E TL A S TS E L' R o w N u m I s S e l e c t S e l T e x t 1 *オブジェクト I0 * 1 /ヰメソッド ヰ/ 1 *項目の行番号 * 1 1 *選択の有無 * 1 1 1 *選択されたメンバ * M e m N a m e=S U B S T R(S e1 T e x t, 1, 8): 1 *メンバ名の取得 * 1 M e m T y p e=S U B S T R(S e1 T e x t, 1 1 , 8) : 1 *メンバタイプの取得 * 1 s e l e c t (E V E N T) w h e n(' D ') d o: s e l e c t V I E W ' )) w h e n (M e m T y p eI N (' D A T A ',' d o W(S e1L i b N m1 1 ', 1 1M e m N a m e, c aI IF S V1E R O W S E ' ,B e n d C A T A L O G ' w h e n (M e m T y p e= ' d o c a11E X E C C M D(' B U1 L D '1 1S e1 L i b N m1 1・ M e m N a m e) e n d o t h e r w i s e e n d e n d o t h e r w i s e e n d c a1 S U P E R( S E L F ,'S E L E C T̲ ' 1 1 1 *ス ー パ ー メ ソ ッ ド の 呼 び 出 し り e n d m e t h o d r e t u r n P r o g r a m 3 . 2̲ S E L E C T と R E C E I V E ̲メソッドのコーデイング プログラムをコンパイルすると変数 ージが出力されますが無視できます。 S E L F および E V E N T に関する W A R N I N G メッセ n︐白 1よ 日u

132.

3. 2. 4 NEWBU ILD. RESOURCEエントリへの追加 S A S U S E R . S U G I J ̲ 9 5 . M E M L S T B X .C L A S Sエントリを S A S U S E R . S U G I ̲ J 9 5 .N E W B U I L D . R E S O U R C Eエ F i g u r e 3 . 11)。 ントリに追加登録します ( B U I l D :S A S U S E RS U G IJ 9 5 . N E ¥ I B U I L D . R E S O U R C E(E) : . l 目 . クラス 一 [ D I S P L A Y ホットスポット ホットスポット D I S P L A Y グラフ システムオブジェクト D I S P L A Y イメージ S A S / A Fフレームペースウィジェット A S / A F. F R A M Eクラス A C T I V E S L E̲P a s t eS p e c i a l D I S P L A Y O L E̲ I n s e r tO b j e c t D I S P L A Y O L E̲R e a dO b j e c t D I S P L A Y O D I S P L A Y S u b C l s : ライブラリ参照名リストポックス u b C l s : メンバ情報リストポックス D I S P L A Y S リノイ 名プ •.•• E アクシヨン Ll 々f ノ ︑ 工 「見 IJ名を表示する ~ メッセージ表示 1 I~H~ II ヘルプ l F i g u r e 3 . 1 1 クラス追加後の N E W B U I L D .R E S O U R C Eエントリウインドウ 「了解」をクリックして S A S U S E R .S U G IJ 9 5 カタログディレクトリウインドウに戻ります ( F ig u r e 3 .1 2 )。 盆E 室iフ B U I L D :D I R E C T O R YS A S U S E R . S U G IJ 9 5(編集) 見出し MEMLS 丁 目 XC LASS S u b C l s : DSKMENU PMENU D s k t o p : NEWBUILDRESOURCE C s t R e s : ‑ LIBLSTBXS C L S u b C l s : MAKELIST S C L G l o b a l : MEMLSTBXS C L S u b C l s : ̲ STARTUP S C L G l o b a l : タ ッ 1 1棄斤日 ヱ ↓ ← 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 0 4 / 0 9 / 9 5 ~ . . ・ 4 F ig u r e 3 .1 2 カタログディレクトリウインドウ CLASSエントリの作成が終了したら動作のテストおよび修正を行います。 唱﹃ム ハ hv ヮ

133.

3.3 カスタムクラスのテスト 作成した CLASSエントリの動作のテストをします。 トを埋め込み、テスト用のウインドウを作成します。 FRAMEエントリにオブジェク 3 .3 . 1 DESKTOP. FRAMEエントリの作成 E S K T O P の FRAMEエントリを作成します ( F ig u r e 3 .1 3 ) 。左側のリスト エントリ名 D ボックスオブジェクト(オブジェクト名 L I B L S T B X )を S u b C l s : ライブラリ参照名リスト ボックスクラス ( L I B L S T B X .C L A S S ) から作成し、右側のリストボックスオブジェクト(オブ ジェクト名 M E M L S T B X )を S u b C l s : メンバ情報リストボックスクラス ( M E M L S T B X .C L A S S ) から作成します。 メン7vf語雇 ︐ • 孟﹁ I l l 1 1 1 i J フイブラリ参京語二覧 11111‑‑‑ B U I L D :D I S P L A YD E S K T O P . F R A M E(編集} F i g u r e 3 . 1 3 D E S K T O P .F R A M Eエントリウインドウ 2つのオブジェクトの埋め込み作業終了後、 L I B L S T B X オブジェクトのリストボックスの 属性ウインドウをオープンし、オブジェクト聞のリンクを設定します。オブジェクトリンク の設定はメッセージパッシングを行うためには必ず必要です。設定オプションのオブジェク トリンクをクリックし、オブジェクトのリンクウインドウをオープンして下さ L、。非連結オ ブジェクトのリストボックスに表示されている M E M L S T B X のアイテムをダブルクリックしま す。ダブルクリックしたオブジェクト M E M L S T B X が連結済オブジェクト側のリストボックス に移動します ( F i g u r e 3 . 1 4 )。 オブジェクトリンクの設定終了後、 「了解」をクリックしてリストボックスの属性ウイン ドウに戻り、もう 1度「了解」をクリックして D E S K T O P .F R A M E エントリウインドウに戻り ます。 内ノ ー ワー

134.

オブジェク卜のリンク オブジェクト: I L I B L S T B XI 一 ︒ 一 一 L::一:::一:ニ ︐︑一 ︐ J ' ' ' *illl111lillIll111Illl 本 一一一一一一 一一一一一一 一一一一一一 一一一一一一 一一一一二 一一一一一一 =一一一一 一一一一一一 一一一一一一 一一一一一一 一一一一= 二︑J 一一= 一一一一= 二 nu‑‑一一 =・一一一一 二噌l一一一一 一一一一一一 一一円川一一一一 一一nu‑‑一一 =・﹃E一一一一 =cu‑nH‑一一 =vt一nu‑‑‑ =ou‑‑‑t﹄一一一 =vv一 + L 一一一 一一一ハU一一一 二 r au‑‑ 二ゐL AV‑‑ 二nH一一一一 二ou‑‑円︑u一一一 二m川Bl﹄一a州日一一一 二nuFハhv一n︑u‑一一 二nun‑‑一一一 二11一一一一 =ρνnVE‑‑一一 =vnu‑‑一‑一 〒 =ρν l'‑J u 門 u 一 一 一 =nuvn一みし一一一 =nb一l﹄一一一 一一nHFF﹄一・一一一 =nunu‑‑一一一 一一‑aa‑‑nu‑‑一 =ゐL﹁ヨ一ハU一一一 同 二9un u v一一一一 二 GJV 一ゐL一一一 二・﹃'一一μH一一一 二fila‑NS一n= 二nvnu‑‑t‑nu‑‑ 二n ド HU一Sqv一・l= 二Ann‑一nnu‑s一一 二・一1﹄一一﹁= ニ SInk一凋斗‑e一一 =oF﹄‑enu‑v= 一一円︑u‑vt一一二 =11HU‑uEd‑t ニ =nun‑‑ゐLqv‑S二 =nva H 品 ‑ 9 u n 同 v ‑ a u ‑ ‑ u =丁目nb‑UNI‑‑丁目二 一一一一一一 =ゐ =vi‑‑= =nuau‑‑= ︐ =nur tt一一一一 =nurou‑‑IE一一一一 =Hum川﹁FE‑‑一一 二nba‑AU‑‑一 二MNm一e一一一 二先日明一VE‑‑ι一一一 二日yvt‑nuz‑‑一一 二﹁E‑μHe‑‑一e= 二ゐLnu一ゐLゐLJu‑ゐL= 一一nHVI一HU9unv‑nu‑‑ 二F﹄nr一aannυMm一MN= 一一一一一一 *Ill111I11111111111121﹄ll* ︐ ︐ ︐ ︐ ︐ 8 I 本ライブラリ参照名 SC L1 )スト * 1 8 I 本ライブラリ参照名メンバ情報 * 1 e n t r yo p t i o n a l =L i b N m L s t L iblDLst u u 1 2 8 1 )ジヲ蚕オヲジェク卜 I I[へルフ。 I 取消 I I 了解 1 メッセージ表示 i 竺 士 i 士 竺 I M E M L S T B X 非連結オブジェク下 Figure3.14 オブジェクトの 1 )ンクウインドウ 3.3.2 DESKTOP. SCLエントリの作成 DESKTOP.SCL エントリに次のプログラムをコーディングします C P r o g r a m 3 . 3 )。

135.

I N I T A K E LI S T0 ; /*メン I¥ ' t 青 報 SCLリスト*/ Tg t M b L s t=M r e t u r n /ト一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一* │ ライブラリ参照名リストボックスオブジェクト │ ラベルセクション *一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 一一一一一 一一*/ L I B L S T B X Ii n k SlctdLib; /*ライブラリ参照名リストボックスでの選択*/ r e t u r n /*一一一一一一一 │ 一一 一一一一 一一一一一一一一一一一一一一一一一一一一一 一* l ライブラリ参照名 1 )ストボックスアイテム選択時の処理 *一一一一一一一一一一一一一一一一一一一一一一一一一一一 一一 一一 一一 一一 一一一*/ S L C T D L I B T g t M b L s t =G E T N I T E M L (L i b l d L s t, S U B S T R(G E TI T E M C(G E TI T E M L(Li b L s t B x , 1), 1) , 8) c a lIN O T I F Y (' M E M L S T B X ' ,/*リストボックスの選択項目数の割り当て*/ ,S E TM A X S E L' L I S T L E N (T g t M b L s t) 日 I IN O T I F Y (' M E M L S T B X ' , R E P O P U L AT E ,/*メンバ情報リストボックス再定義*/ r e t u r n P r o g r a m 3 . 3 D E S K T O P . S C L エントリのコーデイング プログラムのコンパイル後、 D E S K T O P .S C L および D E S K T O P .F R A M E エントリをを保存しま す。 1 2 9ー

136.

3.3.4 DESKTOP. FRAMEエントリのテスト S A S U S E R . S U G I J ̲ 9 5 . D E S K T O P . F R A M Eエントリをテストします。次のコマンドを実行します。 A FC ニS A S U S E R .S U G IJ 9 5 . S T A R T U P . S C L S A S U S E R . S U G I ̲ J 9 5 カタログディレクトリウインドウから S T A R T U P .S C L エントリをテス トで実行しでもかまいません。ここではライブラリ参照名の情報とメンバ情報を格納した 2 つの SCLリスト ( L I B N M L S Tと L I B I D L ST)の作成処理を M A K E L I S T .S C Lエントリで行い、 D E S K T O P .F R A M Eエントリをオープンします ( F ig u r e 3 .1 5 )。 : r NISTADデスクトップウ三ヲFろ フイブヲJ 蚕烹客二重 H~ 三 与β盟邑 M A P S D :平S A S 6 1 0半M A P S S A S H E L P D: 半 SAS610半 JAPA~ S A S U S E R D: 半 SAS610半 SASU~ W O R K D :半S A S 6 1 0半S A S W C ・‑ F i g u r e 3 . 1 5 D E S K T O P .F R A M E ウインドウ初期画面 A S U S E R を選択するとメンバ情報のリスト ライブラリ参照名一覧のリストボックスから S ボックスに S A S U S E R ライブラリのメンバ情報が表示され、リストボックスのタイトルにラ F ig u r e 3 .1 6 )。 イブラリ参照名が反映されます ( N ライフラリ参照 S A S U S E R のメノハe司被 B U I L D D A T A 弘 前S D A T A C R I M E D A T A F I T N E S S D A T A H I G H W A Y D A T A 同U S E S D A T A I N G O T S D A T A N I S Y S T E M C A T A L O G 保A N G E S D A T A P R O F I L E C A T A L O G F i g u r e 3 . 1 6 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 V 6 1 0 NO N O N O N O N O N O N O N O N O N O Q u a r t e rI yb~ S t u d e n ti n f C r i m er a t e s E x e r c i s e / f i M o t o rv e h i c R e s i d e n t i a l F o u n d r yd a t F o u n d r yd a t D a t ao ns a l D a t ao ns a l D E S K T O P .F R A M Eウインドウ また、メンバ情報リストボックスに表示されているメンバをダブルクリックすることによ りF S V I E Wまたは B U I L D ウインドウが表示されます。 ‑130

137.

4 . 終わりに SAS/AFソフトウェアの OOP支援機能の一部を紹介してきましたが、短時間で G U Iアプリケーションが構築できることを実感していただけたで しょうか。最後にサブクラス を構築する場合の注意点をランダムにいくつか挙げてみます。 ‑プラットフォーム独自のクラスを持つ RESOURCEエントリを他のプラットフォーム に移送する場合は注意してください。特に Windows環境から他の環境へ移送する場 合 、 OLE関連のクラスが問題になります。できれば、移送する前にクラスを削除するか DISPLAY 属性を解除して下さい。リージョンマネージャはウィジェットクラスのポップ アップメニューを表示できなくなります。 .WIDGETクラスは親クラスとして使用できません。ウィジェットクラスのサブクラス を作成する場合はアイコンクラスやラジオボタンクラスなどの SAS/AFソフトウェア が標準提供しているウィジェットクラスのサブクラスとして作成して下さい。 .CLASSエントリ名とメソッドの SCLエントリ名は同じ名前にすると管理しやす L 。 、 さらに、 CLASSエントリの属性に指定するオブジェクト名も同じ名前にできれば構築 時にクラスとオブジェクトの関連が分かりやすい。 .CLASSエントリの属性を変更した場合は必ず RESOURCEエントリのアクション の同期を実行して下さい。オブジェクトの埋め込み後に CLASSエントリの属性を変更 した場合は埋め込んだオブジェクトを削除し、再度、同期実行後のオブジェクトを埋め込 んで下さい。ただし、メソッド定義の SCLエントリのプログラムの変更の場合は同期を 実行する必要はありません。 .RESOURCEエントリは定期的にアクションの分析を実行して CLASSエントリの 存在状況などを確認しておく必要があります。 .FRAMEエントリに埋め込んだオブジェクトの属性情報はオブジェクト名と同一の変数 名に SCLリストの形式でコピーされています。各オブジェクトの SCLリスト体系を知 っておくと便利です。また、オブジェクト 1Dとオブジェクトの SCLリスト 1Dは同ー の値になります。 SELF̲ 変数は FRAMEエントリの制御内であれば FRAMEエントリのオブジェクト 1Dを持ち、メソッドの制御内であればメソッドを定義しているオブジェクトのオブジェ クト 1Dを持ちます。例えば、ここで構築した D E S K T O P .FRAME エントリの I N I T セクシ ョンでは次の値を持ちます。 S E L F i nD E S K T O P .FRAME( E X E S I Z E二 8 7 8 P M E N UA L W A Y S二 " N A M Eゴ NISTADデスクトップウインドウ' S R O W = l S C O Lニ1 N R O W = 1 5 二8 0 NCOL P M E N Uニ' S A S U S E R . S U G IJ 9 5 . D S K M E N U .P M E N U ' 5 7 ] R E G I O N一 二 [ CLASSNAME = 'F R A M E .F R A M E ' C L A S S二3 0 3 o 1 3 1

138.

D E S C = 'S A S / A F. F R A M E クラス' R E L E A S E = 6 0 7 4 0 0 2 P R O M P TC H A R= ' ? ' W I N D O WT Y P E= 'S T A N D A R D ' ニ M A S T E R ' S I Z I N GP O L I C Y, V B A R = O H B A R = O B A N N E R= 'C O M M A N D ' ニ N ' A U T OC O M P I L E, S U P P O R TP O P M E N U= 'Y ' P O P U P = l 二1 C M D P R O C R E A LD S N A M E= ' Y ' U NI O N= ' γ C U R S O R二 " R O O T二 審 * .S C L ' H E L P = ', H F R A M E = ', K E Y S = ', B O R D E R C O L O R = 1 9 B A N N E R C O L O R = 1 8 C M D C O L O R = 2 1 M S G C O L O R = 2 2 B A C K C O L O R = 1 6 F O R E C O L O R = 2 8 B O R D E R A T T R = O B A N N E R A T T R = O C M D A T T R二O M S G A T T R = O F O R E A T T R = O L O O K U P D S = ', F R A M E= 5 5 LI B C A Tニ , S A S U S E R .S U GIJ 9 5 ' )[ 5 5 ] SCLリスト 1Dの 55 は DESKTOP.FRAMEエントリのオブジェクト 1Dとしても使用さ れています。同様に、 L I B L S T B X . S C L エントリの S E L E C T ラベルブロックでは次の値を持 ちます。 S E L F i n LIBLSTBX.SCL( U S E R A T T R = ( )[ 4 3 ] 4 5 ] L I S T L S T二()[ L A B E L二, LI B L S T B X ' 5 L E N G T Hニ2 R O Wニ2 C O L = 3 N R O W S = 8 2 9 C L A S Sニ3 C L A S S N A M E, ニ L I B L S T B X . L I S T B O X ' N U M = 4 L E N= 0 1 3 2

139.

B C O L O R = 7 二 , M E M L S T B X ' R E C E I V E R S= ( M E M L S T B X )[ 4 7 J D E S C = 'S u b C l s : ライブラリ参照名リストボックス' N A M E = 'LI B L S T B X ' ' ・ D B L C L IC K= P O P U L A T E= 'S C LL I S T ' L O C A T E二 ' L IB N M L S T' T I T L E二'ライブラリ参照名一覧. ̲ R E G I O N一二()[ 3 7 5 J C O L O R = 2 8 A T T RニO S E L T Y P E= 'S I N G L E ' A L L O WD E S E L= 'N ' S G L C LI C K= 'Y ' U NI Q U E= 'N ' N S E L = l F R A M E= 5 5 A S 6 1 0半M A P S I T E M S= ( ' M A P S D :半S D :半S A S 6 1 0半J A P A N E S E半M A P S ' ,S A S H E L P D :半S A S 6 1 0半J A P A N E S E半S A S H E L P D :半S A S 6 1 0半D B C S半S A S H E L P D :半S A S 6 1 0半C O R E半S A S H E L P D :半S ' ,S A S U S E R D :半S A S 6 1 0半S A S U S E R ' A S 6 1 0半S A S W O R K半 非T D 0 8 0 1 5・ ' W O R K D :半S )[ 3 8 3 J C U R S E L=( T E X T =( ' S A S U S E R D :半S A S 6 1 0半S A S U S E R ' )[ 3 7 9 J I D =( 3 )[ 3 8 1J A L L =. (. . )[ 3 8 3 J )[ 3 7 7 J 7 ] V A L U E ̲= ( . . . )[ 37 E V E N T 二, S ' )[ 41 ] SCLリスト 1Dの 4 1は D E S K T O P .F R A M E エントリの L I B L S T B X オブジェクトのオブジ ェクト 1Dの値と一致します。これらの SCLリストが持つデータはオブジェクトのデー タのコピーです。直接 SCLリストのリストアイテムを変更することもできますが、カプ セル化の概念から言えば、本来はメソッドを介して参照や書き込みをするべきです。オブ ジェクトの動作に致命的な影響を与えるデータに関しては実際の値とはリンクしていませ んが、メソッドによっては SCLリストの値を参照していると思われる動作をするものも あるのでマニュアルで紹介されている場合を除いては、直接の書き込みや参照は極力避け るようにします。 ‑133 ←

140.

参考文献 SAS/AFソフトウェア FRAMEエントリ 入門ガイド SAS/AFソフトウェア FRAMEエントリ 使用法およびリファレンス 車 1UN 1Xは 、 牟 2Win d 0 W sf 立、米国 M ic r0 s 0 ft社の商標です。 AT&Tベル研究所が開発し、 AT&Tがライセンスしているオペレーティングシステムです。 一1 34‑

141.

日本 5A5ユーザー会 (5U G卜.J) 債権管理システムの構築 岸田一浩 株式会社アルコ 営業部 Construction o fAss巴tManagement System k巴tingD e p t . ALCOC o r p . K日zuhiroKishid日. M日r タ 用て一 使いデ をつ客別 S に顧判 A ムの信 S テ去与 てス過を︒ しシ︑果る と定し結あ ル決用ので 一額使その ツ信を︑も 析 与Sした 分 動A析 し な 自S 分 に 様付版性つ v 多 貸S属よ ︑ 規Wりる の 新Oよき めたD にで たし N )用 の 始I J利 理 開W 3で 管 を ︑D境 権 働 はI環 債稼ム﹁ト 付にテ(ス 保2 シ リ ︑ 貸月スてホ 与信管理 担年のツし 2 H リノ ︑U L O 牢T け川 無回こ別化 は︑る準ブ ではす基一 ル今報ピて コ回告一テ キーワード: ア︒をロし )る要トと 株い概ンル しそをル (てのエ一 要旨 SAS IML GRAPH FSP AF 1.はじめに 当社は 1975年より主に一般消費者向け無担保融資を行っている。 1993年から営業部 および電算室が中心となり、全社的な債権管理システム構築を進めている。 これは、営業広担当者への与信審査業務、顧客動態信用管理業務の支援、管理部門の債権 管理業務の支援、さらに、中期的な経営計画策定支援等を目的としている。 本年 2月より、システムの一部(新規与信審査支援サブシステム)が本稼働にはいり、 続いて本年 8月からは、もう lつのサブシステム(顧客動態与信支援)を本稼働させる予 定である。このシステムは富士通メインフレーム上のオンラインアプリケーションとして A Sでプロトタイプ 稼働するが、システムに組込んだ与信限度額設定ルールはWindows 版 S 開発した与信分析システムを利用している。 A Sで開発した与信分析システムを使った与信分析について発表する。 今回はこの S 2 . システムの概要 2 . 1 システム全体の概要 当社の現状のシステムは、図 lに示すように、本社に設置した富士通メインフレームを ホストとし、全営業庖に設置した A T M端末および 94 50端末を専用回線接続した形態 である。営業庖では顧客からの新規融資申込があると、申込書記載の情報を端末から入力 する。ホストコンビュータ側では、 λ力された情報(職業、性別、年齢、学歴その他の属 性情報)と JDBその他の外部信用情報を収集し、与信限度額設定テーブルを検索し コンビュータ与信限度額を営業庖の端末に表示する。営業広ではコンビュータ限度額と 支庖長判断を加えることにより、融資限度額を最終決定する仕組みである。 ハ︿U 1よ R υ

142.

図l セ 七 ヌド メ イ 工 / て7 1‑‑‑ー‑.̲L.. 日 (属性変数) 分 ー キ 斤 用 テf ー ー タ FMR‑2BO 車云 主差 半リ芭斤 ( 与信限度額設定 ホスト ) M‑1400 主主当量~ ) . 5 寸一一一一一一一一一一一一一一一一一一一ーー ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ 1 「 一 一 一 一 一 一 一 一 一 一 限 度 額 I I属 限 I:I入 額 I:I 属 IiI性 度 IiI性 vj i 力 │i│ 入 ぜいヵ 亡 Eヨ ゴj 目 目 F 9 4 5 0八m kn F9450^m kn F 9 4 5 0八m kn このシステムは、当社と富士通デ、ィーラの A社および金融数理システム系コンサルタント B社との合同プロジェクトとして開発を進めており、 A社がシステム全体の基盤づくりを 担当し、 B社が与信設定ルール開発を担当している。 一1 3 6一

143.

(3)顧客評価の手法 優良顧客セグメントと不良顧客セグメントの分離は、基本的にはエントロビー基準による 判断ツリ一生成法を用いている。但し、分割基準はまず「通常 j か「移管」の変数を用い さらに支庖長が設定した新規与信レベルを基準変数としている。 その理由は移管率の低い顧客セグメントのなかでも与信レベルが低い顧客が存在している。 またその逆もあり、 2次元的にとらえる必要性がある。 そして限度額設定は、各ノードごとの移管比率および、届長限度額分布と限度枠増減のシュミレ ‑'J3iを 繰り返し行い最適値を設定している。 4 . 分析結果について )内はツリーの 顧客属性変数により生成された与信判別ツリーの一部を図 2に示す。( ノ ド番号を表し、次に分割された属性変数とそのカテゴリ を示す。 図の横軸の線の長さは移管率の大小を表している。分岐後の線の長い方が顧客の移管率が高い。 よって低与信を与える必要がある属性を表している。 実際に生成したツリーの深さは最低 6レベル最大 13レベルになっておりツリ の終端ノード (リーフと呼ばれる)は約 900である。当社における顧客の種類は 900になる。 図2 ( S 3 0 0 8 )世帯コード=既婚 ( S 3 0 0 6 )住居区分=賃貸 ( S 3 0 0 5 )住居区分=自己所有=家族所有 ( S 0 0 0 1 ) ( S 30 0 4 )住居区分=自己所有・家族所有 ( S 30 0 3 )住居区分=賃貸 ( S 3 0 0 2 )職種=事務 ( S 3 0 0 1 )職種二営業 137‑

144.

2 . 2 SASによる与信分析システムの概要 さて、 SASで開発した新規顧客与信分析システムは本社の Windowsパソコン上 に構築している。以下、その概要を紹介する。 分析を行うためのデータはホストコンビュータからテキスト形式で Windows上に ダウンロードしておく。テキストデータは、システムのメニューから自動的に分析用 SAS データセットに変換され、分析実行メニューにより、判断ツリーを生成する。判断ツリ の 各ノードに属する顧客属性クリレープに対する与信限度額設定も自動で可能である。 ツリ一生成結果はリストおよびグラフにより視覚化できる。 また、検証用データを用い、実際の支庖長判断の与信限度額とシステムが設定する与信限度額 との差異を統計出力する等の機能も持つ。 その他、ホストコンビュータで、行っている与信限度額計算を代替する機能も有し、地震災害等で ホストコンビュータが使用不能となった場合の補完機能として、この機能は重要と考えている。 なお、今回構築したシステムで利用している SASの機能は以下のとおりである。 基本機能・・・データ取込み、操作、テキスト出力、クロス集計、レポート作成等。 IML・・・・エントロビー計算等。 GRAPH・・グラフレポート出力。 FSP・・・・データ表示、データ入力。 AF. ・・・・システム全体のメニュー化。 3 . 与信分析内容について (1)分析データについて 過去 4 年分の融資実行顧客の融資申込書に現れる属性変数(約 20 )、 JDB等外部信用情報 および新規時与信限度額と「通常 j ・「移管 j の実積変数を用いている。 ( 2)顧客評価の手法の検討結果 当社は顧客評価の手法としてエントロビー基準による判断ツリ一生成法を採用した。 この手法を採用するまでには過程があった。当初検討した手法はスコアリング法(数量化 2類) である。スコアリング法は ①各属性カテゴリは他の属性カテゴリと無関係にスコアづけされる 為、属性聞の関連(交差)を無視する。 ②優良・不良の判断が属性カテゴリスコアの合計得点しかなく顧客の全体像がみえない。 一方当社が採用した手法の判断ツリーは ①判断属性の重要度を優先順位付けし、 しかも属性関連(交差)を踏まえた分析を行える ②分析結果がそのまま顧客セグメンテーションとして使える。それは個々の顧客の顔が見える 点が最大の強みで、ある。 1 3 8

145.

94年 T :庄長与信 c :コンピュータ与信 、 1 L C T九 、 、 ‑ ‑ ‑ ‑T 平均+ 、 ー 一 ー 一 ー 一 己 ' < ‑ ーT 一 一 一 一 一 一 一 一 一T T̲ 一一一一丁 ' c, C̲、 、 、、 c ̲ー ー ーーーー C 一 一 一 一 ー ー ー + 一 一 5万 一 ← ー + 一 一 1 0万 一 一 一 一 一 ー一一+一一ーー一一一一一一ー一一一一+一一一一一一一一一一一一一一一+ 一 一 一 一 一 20万 3 0万 40万 一 ー + 5 0万 C ︑ ︑ ︑ 、 ー 92年 ︑︑︑ 1 94年 T :庄長与信 1 c :コンピュータ与信 ー r ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲T 平均+ \くこ~T 一 一 一 ¥ に で ー ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑ ‑T ¥ ¥ ︑ a 一一一一一一一一 T 、 、 C、 、、 C、、 、 ーC ーー一一一一一+ー…一一一一一+一一一一一一一一一一ー一一一一+一一一一一一一一ーー一一一一一+ー一一一ー 5万 1 0万 20万 3 0万 ‑139 ー ー 一 + ー 40万 も 一 一 ー ー ー + ー 5 0万 ︑ ァ 90年 1 て 1 1 1 分 を︑ 降は 信 与 pu1 、 以て 年い 位︒つ とるにる 降あ降え 以で以与 年為年を つ 9 卯た2 )あし︒高︒ 3がかいどる 図更し近ほい (変︒に率て ︒のい値管え た準な常移考 し基え正低と に出見は︑る フ貸が率信き ラの差管与で グ社の移低現 を当率のど実 率と管とほが 管化移ご率理 移変の額管管 とのと信移権 額中信与高債 信の与りはの 与世低あ信ン 長はとも与一 庖て信め動タ 支し与締自リ のと高きたイ 去由は引しハ 過理降の用ク ︑︒以準採ス にた年基回リ 次し0出今一 示9貸 ロ 図3

146.

れ らて めえ 求考 ‑140‑ をと ︑分も 析る 分あ なで 的適 角最る 多がい がS て 供A つ 提S 行 報はを 情ジ定 の一測 へケ体 部ツ媒 業パ告 営析広 しるに 生す他 発を︑ に理が ム処る イにい タイて ルデめ ア一進 リピを がス析 報を分 情タの に一信 にうデ与 りよな上 わの量途 お社大 o 在 当たる現 まい 5 以 上

147.

日本 5A5ユーザー会 (5U G卜 J) 株式収益率の企業業績指標への反応の非線形性 中林三平 株式会社金融エンジニアリング・グループ 代表取締役 Non‑Linear Response of Equity Return t o the Fundamental Data Sampei Nakabayashi President. Financial Engineering Group. I n c . Suite 6 0 5 Sky Plaza Akasaka. 8‑6‑27 Akasaka. Tokyo. 要旨 市場における株式の収益率の変動を説明するために様々なファンダメンタルなデータや テクニカルなデータを用いたモデルが開発されてきている。これらのモデルは基本的には 株価の収益率の変動が、導入したデータに対して線形の反応を示すことを前提としている ことが多い。しかし、実際にデータを分析してみると必ずしも線形の関数により関係が説 明されるのではなく、データを層化したうえで分析を行っててみると様々な反応のパター ンが抽出される。本稿では、ファンダメンタルやテクニカルなデータに対する市場の反応 を解釈することにより仮説を生成すると共に、実際のデータの分析結果を示す。 キーワード: 投資分析、株式市場、データの層化 1. 問 題 の 概 略 株価の変動を何らかの指標により説明しようという努力が続けられている。株価を予測 するということは極めて困難であることは言うまでもなく、万能の予測モデルはおそらく 今後とも開発されることはないだろう。数理的なアプローチとは別に、市場には様々な経 験 的 な 法 則 が 存 在 す る 。 例 え ば 、 PERの 低 い 株 は 比 較 的 近 い 将 来 に は 相 対 的 な 価 格 上 昇 期を迎えるであろう、というように表現される。しかし、このような経験的な法則を数値 的に分析してみでもあまり満足のいく結論は導き出せないのが普通である。 例えば、 PERを例 l こ取ってみよう。特定の時点、 T (0) における PERの 値 と そ の 後 の収益率の動きの相関分析を行うと、弱い逆相聞を見いだすことができる。分析の母集団 と す る 銘 柄 群 と 、 分 析 対 象 時 期 に も よ る が 、 概 ね T (0) から 3‑4ヶ 月 後 に お い て 一 o . 2程 度 の 相 関 係 数 が 算 定 で き ょ う 。 し か し 、 市 場 に お い て P E R が 割 安 ・ 割 高 を 示 す 指 標 と し て 着 目 さ れ て い る 重 み か ら 考 え る と 、 ‑O . 2程 度 の 相 関 係 数 と い う の は や や 納 得 で きないものがある。 人工知能の分野においては、 「着目点による重みのシフト」という考え方がある。これ は、知識ベースによる推論を行うときに、前提となる条件によって(つまり着目点)適用 されるルールが異なるのではないかという仮説である。人間の頭の中には、様々な相互に 矛盾するルールが存在するが、人聞は状況を判断することにより矛盾するルールの中から 適切なものを(ルールの重みを変えながら)選択するのではないかと考えられている。こ れは、知識ベースは無矛盾でなければならないという大前提に反するものであり、論争の 格好のテーマではあるが、真理と思われる側面を持っている。 ‑141‑

148.

同 様 の 事 象 が 株 式 市 場 に も 存 在 す る 。 P E R で言うと、 P E Rが 平 均 〈 市 場 も し く は セ クター)よりも明らかに低い(もしくは高い)場合には、相対的な割安感〈割高感)が発 生し、市場は買い〈売り)のシグナルとして受けとめる。しかし、 P E Rが 平 均 程 度 の 株 式についてはどのような反応があるであろうか。ある程度の「着目範囲」から外れた銘柄 については、 P E Rは 売 買 判 断 の 参 考 指 標 と は な ら な い 。 つ ま り 、 高 い 方 向 お よ び 低 い 方 向 に 着 目 の 限 界 が あ り 、 そ の 限 界 内 で は P E Rに 対 す る ウ ェ イ ト は ゼ ロ と な る 。 こ の 場 合 には、 P E Rが 平 均 的 な 銘 柄 の 値 動 き は であろう。この動きは、 iP E R 以 外 の 」 評 価 指 標 に よ っ て 影 響 を 受 け る P E Rの 水 準 と は 無 関 係 で あ る 可 能 性 が 高 く 、 P E Rを 説 明 変 数 とするモデルを構築することを困難にする。 iPERが 低 い 株 は 値 上 が り す る 」 と い う 仮 説 は 概 ね 正 し い と 言 え よ う 。 経 験 的 に は 、 こ の 逆 も 真 で あ り iP E R が 高 い 株 は 値 下 が り す る 」 も 概 ね 正 し い 。 正 し く な い の は 、 そ の 中 間 の iP E R が 平 均 的 な 株 」 に つ い て で あ り 、 こ れ は P E Rか ら は 説 明 で き な い と い うのが正しい言明になるであろう。したがって、全ての銘柄に着目して、単純に相関分析 を行うということは、市場の反応を正しく伝えているわけではなく、市場の着目範囲に対 するシナリオを生成した上でデータを層化し、層別に分析していくのが望ましい方法と言 えるだろう。 2. 具 体 的 な 事 例 以下 l こ示す分析事例は、単純なテクニカルデータをベースとしたものである。ファンダ メンタルデータに基づく分析の結果については、現在公表可能かどうかを検討中であり、 公 表 可 能 と な れ ば 論 文 発 表 時 に OHPにより提示する。 1) デ ー タ の 定 義 直近 6年 間 の 月 次 株 価 収 益 率 〈 株 式 分 割 の 影 響 を 考 慮 し た 修 正 株 価 を 基 準 と し た も の で ある)の変動を対象とする。対象とする銘柄母集団は、 9 3年 12月 末 現 在 の 日 経 平 均 採 用の 2 2 5銘柄とする。 2) 検 討 対 象 と す る モ デ ル 非常に単純なモデルであり、過去の値上がりが将来の値動きにどのような影響を与える かを検証するものとする。基本的な仮説は、 「値が上がりすぎた株は値下がりする」とい うものである(株価収益率の自己相聞は負である)。 相場全体の変動を影響を除去するために、データを事前 l こ加工する必要がある。まず、 過去の価格上昇率については、母集団全体の平均上昇率 i こ対する比をとることにより相対 的な上昇率に変換する。同様に、将来の収益率についても母集団全体の平均収益率に対す る超過収益率に変換する。 1 4 2 ‑

149.

3) 事 前 分 析 以上のような準備を行った上で分析に入るが、そもそもの仮説である過去の価格上昇と 将来の価格上昇の聞に負の関係があるということを検証しておく。 図表 1 過去の価格上昇と将来の収益率の関係 Spearman Pearson 図表 過 去 3 ヶ月 過去 1ヶ月 過 去 3 ヶ月 過 去 1 ヶ月 1ヶ月後 一0.0565 一0.0999 ‑0.0743 ‑0.1329 2 ヶ月後 ‑0.0052 0.0364 ‑0.0222 ‑0.0523 3 ヶ月後 0.0030 0.0051 0.0009 0.0040 1は Pearson お よ び Spearman の 相 関 係 数 を 示 し た も の で あ る 。 過 去 3 ヶ月の価 格上昇率を基準にすると極めて低い相関しか得られず(統計的には有意であるものの)、 この指標をベースに何らかのファンドを設計する気にはなれない。前月の価格上昇率をベ ースにすると相聞はやや上昇するがそれほど高くはない。 過 去 の 価 格 上 昇 か ら 将 来 の 価 格 変 化 が 意 味 を 持 っ て 推 定 で き そ う な の は 、 高 々 1 ヶ月後 程度の間であると考えられる。しかし、一応は仮説は成立する(負の相聞が統計的に有意 であるため)と考えよう。 4) 層 別 し て の 分 析 次 に デ ー タ を 層 化 す る 。 図 表 一 lに 示 し た 結 果 を 参 照 の 上 、 前 月 の 価 格 上 昇 が 翌 月 の 収 益率変動に与える影響に局面を絞る。前月の相対価格上昇率をランク化し、 2 2 5の 銘 柄 を 4 5ず つ の 5つ の 階 層 に 分 類 す る 。 第 一 階 層 が 最 も 価 格 上 昇 の 小 さ か っ た グ ル ー プ で あ り、この将来価格上昇が最も大きくなることが期待される。この分析においては、相関分 析があまり意味を持たない(階層内での自己相聞を検証するのが目的ではない)。むしろ、 各階層の将来超過収益率の平均および分散が興味の対象となる。 図 表 ‑2に 各 層 の 超 過 収 益 率 に 関 す る 統 計 量 を 示 す 。 図表 2 層別の超過収益率 平均超過収益率 標準偏差 危険率 。 。 078 2. 7 8 4 階層 2 +1 +0 478 l 446 階層 3 ‑0 068 l o9 3 l 634 階層 l 階層 4 階層 5 。 415 ‑1. 0 7 4 ‑143一 2. 3 9 1 002 008 O . 609 O . o3 9 O . 001

150.

上 記 の よ う に 、 全 体 で 見 た と き の 相 関 係 数 一 O. 0 9 と い う 水 準 と は 雰 囲 気 が や や 異 な っ た 結 果 が 示 さ れ る 。 階 層 1、 2、 5 に 関 し て は 、 平 均 超 過 収 益 率 が か な り の 程 度 ま で 確 実にプラス(またはマイナス)になると言っても良いだろう。 予 想 外 で あ る の は 、 階 層 3の 標 準 偏 差 が 最 も 小 さ く 、 両 端 に 行 く に つ れ て 標 準 偏 差 は 大 きくなるということである。つまり、この指標(過去の価格上昇)の場合には、過去の価 格上昇が平均的であった銘柄は将来も平均的な上昇を示すという傾向がやや強いと解釈で きるであろう(これはどのような指標についても見られるというわけではない)。 4) 結 果 の 解 釈 と 結 論 以上の分析結果から何が言えるのであろうか。まず、上記の分析の結果を利用してファ ンドを一つ設計したとする。仕組みは単純で、前月の相対的な価格上昇率の低い順に 45 の銘柄を採用する。このファンドのパフォーマンスを見てみると図表 (分析対象とした 6年間のデータから、 図 表 ‑3 3 のようになる。 69 ヶ 月 の 月 次 収 益 率 の 変 動 を 見 た も の で あ る 。 単純ファンドのパフォーマンス 平均に勝った月数 平均に負けた月数 階 層 1フ ァ ン ド 45 24 階層 2 ファンド 41 28 階 層 3フ ァ ン ド 31 38 階層 4ファンド 25 44 階 層 5フ ァ ン ド 17 52 勝率 O . 65 o . 59 o . 45 o . 36 o . 25 L一一一一一 こ の よ う に 単 純 な フ ァ ン ド で も 6 5 %の 勝 率 ( 月 平 均 で 1% 強 の 超 過 収 益 率 ) と い う パ フォーマンスが示される。この結果は、事前分析で示された「弱い負の相関」とはかなり イメージの異なる結果でもある。 データ全体を対象として特定の業績指標が収益率変動に与える影響を分析するという、 ごく普通の手法に対して、データを階層化したうえで分析を行うことにより、見た目の相 関よりもはるかに将来収益率の推定に効果的な構造が発見できるのではないだろうか。そ して、その背景には(上記の分析ではそれほど明確にはなっていないが)、影響要因が市 場によって認識・着目される限界に依存した大きな非線形構造が隠れているのではないだ ろうか。 本報告においては、非常に単純な統計的手法しか用いることができなかったが、うまい こプラス αを 生 成 す る フ ァ ン ド を 設 計 す る 仕 階層化の手法を確立することにより、安定的 l 組みが構築できるのではないかと考えている。 ‑144‑

151.

日本 5A5ユーザー会 (5U G卜 J) 株式オプションの評価 円城寺佳子 株式会社 SASインスティチュートジャパン営業本部営業 3課 Valuing Stock Options ( U s i n g the SAS System) 要旨 YoshikoE n j o j i S a l e s Division,S a l e sS e c t i o n3 ,S A SI n s t i t u t e JapanL t d . Tokyo,JAPAN 株式オプションの評価についてニ項モデ、ル、ブラックーショールズ評価式それぞれの簡単 な例をあげて説明し、 SASを使用して計算をさせた実例を使って解説する。 キーワード: 株式オプション・二項モデル・ブラックーショールズ評価式 [導入] オプションを DCF(discountc ashf l o w )分析で、評価することはできない。それは、オプショ ンのリスクは株価に伴って変化するし、特定の割引率を選択することもできないからであ る の 株式オプションは、会社自身が発行するもの(ワラント)と他の投資家たちによって発行 されるもの(プット・オプションとコール・オプション)がある。 ‑コール・オプション 保有者はある特定の期限(または満期日)以前に、ある特定の値で一般の株を 100株 買う権利を持つ。投資家は、株価上昇を期待してコール・オプションを買う。コール・ オプションを売る人たちは、株価はそれほど上昇しないと思っている。 ‑プット・オプション 保有者はある特定の期限以前に、ある特定の値で一般の株を 100株売る権利を持つ。 投資家は、株価下落を期待してプット・オプションを買う。プット・オプションを売 る人たちは、株価はそれほど下落しないと思っている。 にU 1 ょ 4

152.

‑ワラント 一定の数の株を、指定された満期日以前のどの時点でも指定された値で買う オプション。 プット・オプションやコール・オプションは、通常 3カ月や 6カ月という期間であり、ワ ラントは、数年後までのものや、満期日がないものがある。アメリカン・オプションは、 満期日以前であればいつでも権利を行使できるが、ヨーロピアン・オプションは満期日の み権利を行使できる。従ってより柔軟性のあるアメリカン・オプションの方が価値が高い。 オプションには、次のような利点がある。 ‑オプションはてこ効果を与える。つまり、投資家は株の売買よりもコール・オプション を買う方が費用が少なくて済むため、利益率は拡大する。 ‑買い手の最大損失があらかじめわかる。オプションは、市場が逆に動いた際の保険とし ても使用される。例えば、投資家は短期売りのリスクをコール・オプションを買うこと によって減らすことができる。 ‑オプションは、投資家が売買、所持する資産の組み合わせを増やす。 I 二項モデル仁よるオプションの評価1 現在、一株 5 0 ドルで取り引きされている株のコール・オプションを買うと仮定して、 一年後に、株価は 6 0ドルに上がるか 40ドルに下がるかのどちらかだと仮定する。株価が 0ドルで株を買うと 1 0ドルの利益 ( + 2 0 % )になり、株価が下落した場合は、 上昇した場合、 5 1 0ドルの損失(・20%)になる。また、オプションの行使価格を 5 5 ド、ル、年利を 10%とする。 このコール・オプションの価値はどうなるかを考えてみる。 もし株価が 1年以内に 4 0ドルになると、 55ドルで買ったコール・オプションは全く価 0ドルで好きなだけ株を購入することができるのだから。) 値がなくなる。(なぜならば、 4 0ドルになると、このコール・オプションの価値は 5 ドル ( 6 0ド もし株価が 1年以内に 6 ルと行使価格 5 5ドルの差)になる。 0ド、ルで株を購入し 3 6 . 3 7ド ル(一年後の株価の安値の現在価値:$40/1 .1 ) この 2つを、 5 を銀行から借りる場合を比べてみる。一年後に、支払うローンと利息の合計は 4 0 ドルに なる。その時点で株価が 4 0 ドルであれば、株を売却することによってローンを支払うこ 3 . 6 3 ドルの損失になる。(これは、現在の株価と銀行からの借入 とができるが、全部で 1 額の差になることに注意。)もし、一年後に株価が 6 0 ド、ルになっていたら、株を売却し 0ドルの儲けがある。 てローンの支払をしても、 1 ここで、 1 3 . 6 3 ドルをコール・オプションに投資したとすると、株価が下落した場合は 上に書いた場合と同じ損失になるが、株価が上昇した場合は多くもうけることができる。 この 1 3 . 6 3 ドルという値は、下記の式で導かれるように、コール・オプションの値の倍数 になる。 オプション価格の変化 倍数= 原資産の変化 5‑0 1 60‑40 4 ‑ 1 4 6一

153.

この倍数はデ、ルタとも呼ばれる。(ヘッジ率、オプションデルタとも呼ばれる。)この 例では、株を一株買うことと、 4つのコール・オプションを買うことは同値になる。従っ て、コール・オプションの価値は、株価 ( 5 0 ドル)と銀行ローン ( 3 6 . 3 7 ド ル)の差を 4 で割った値 ( $ 1 3 . 6 3 / 4 = $ 3.41)と等しくなる。もしオプションが 3. 41 ドル以下で売られて いたら、株を売って 4コール・オプションを買うことで利益がでる。このロジックは、株 に対してのリスクを投資家がどう考えているかを表している。 リスクに関心のない投資家によって、期待される未来のオプションの価値を非危険利子 率によって現在価値に直した、オプションの価値を計算することもできる。もし、投資家 がリスクを考えないのであれば、期待される株の利益は利子率と等しくなると恩われる。 株価が 20%上昇して 60 ドルになるか、 20%下落して 40 ドルになると仮定すると、価格が 上昇する確率。)は、次の式で表される。 期待利益 p (Px上昇変化率 %)+(1・ P)x下落変化率%=利子率 利子率一下落変化率% 上昇変化率%ー下落変化率% 上記の例では、 期待利益=(Px2 0 ) + ( 1・ P)x・ (20)=10 P=~ 一 (-20) ̲3 一一一一一一 = ':"=75% 20一( ‑ 2 0 ) 4 となる。 株価が上昇した場合、コール・オプションは 5 ド、ルの価値になり、株価が下落した場合、 コール・オプションは価値がなくなる。このコール・オプション(l年もの)の期待され る未来価値は、次の式で計算できる。 ) + [ ( 1・ P )x0 ] = ( 0 . 7 5x5 ) + ( 0 . 2 5x0 ) = $ 3 . 7 5 コールの価値=(Px5 このオプションの現在価値は 未来価値 $ 3 .7 5 現在価値=一一一一一二一: ' : " : " : ' = $ 3. 41 1+利子率 1 . 1 この例では、株価の未来の値を 2種類しか考えなかったが、実際は未来の値はある分布の 範囲内の値をとりうる。もし、株価の年間利益の標準偏差 (σ)とオプションの満期日まで t:年換算した値)がわかれば、一般二項モデルを使用してオプションを評価できる。 の時間 ( その式は、自然乗数の e ( 2 . 7 1 8…)を使用して、以下のようになる。 1+上昇変化ニu=FJ7 1+下落変化= d = ̲ ! ̲ u ‑147‑

154.

*二項モデノレを用いたコール・オプション* SASの DATAステップに次のようなステートメントを記述することによって二項モデ ルを使用したオプションの評価をすることができる。 SASプログラム databinom1; /*現在と将来の株価*/ p r i c e = 5 0 ; p r i c e ̲ h = 6 0 ; p r i c e ̲ I = 4 0 ; /安行使価格、期間、利子率女/ s p = 5 5 ; t = l ; r = . 1 0 ; /古株価の下落率、上昇率、上昇確率*/ p̲down=( pr i c e ̲ l‑p r i c e )/p r i c e ; p̲up=(pr i c e ̲ h‑p r i c e )/p r i c e ; p̲up‑p ̲down); p= ( r‑p̲down)/( /*平均、分散、標準偏差*/ mean=p女 p̲up+( 1・p )*p̲down; ( P ̲up‑mean)帥 2 )+( 1・p )女((p̲down・mean)帥 2 ) ; var=p*( s=s q r t ( v a r ) ; /安二項計算女/ exponent=s*sq 此( t ) ; up=e x p ( e x p o n e n t ) ; I u p ; down=l up ̲ pe r=up‑1 ; ̲ pe r=down‑1 ; down /*収入、期待される将来の収益、オプションの現在価値打 i f p r i c e ̲ h<s ptheng a i n = O ; e l s ei f p r i c e ̲ h>s ptheng a i n = p r i c e ̲ h‑s p ; e x p ̲ r e t=g a i np ; pv ̲ c a l l=e x p ̲ r e t / ( l+ r ) ; r u n ; 女 /*結果出力安/ p r o cp r i n tdata=binom1; r i c i n g ' ; t i t l eOptionP ' ; t i t l e 2' B i n o m i a lModel t i t l e 3' C a l lO p t i o n ' ; r u n ; 守 ー 1 4 8一

155.

実行結果 O p t i o nP r i c i n g B i n o m i a lM o d e l C a1 1O p t i o n O B SP R I C EP R I C EHP R I C ELS PT R PD O W NPU P PM E A N V A R 5 0 6 0 O B SE X P O N E N T S 4 0 5 5 10.1 ‑ 0 . 2 0 . 20 . 7 5 0 . 10 . 0 3 0 . 1 7 3 2 1 U P D O W N U PP E R D O W NP E R G A I N E X PR E T P VC A L L O .1 7 3 2 1 1 .1 8 9 1 1 0 . 8 4 0 9 7 O .1 8 9 1 1 ‑ O .1 5 9 0 3 5 3 . 7 5 3 . 4 0 9 0 9 この出力結果には、入力データ、中間計算結果、コール・オプションの値が表示される。 リターンの分布の平均は 0にはならない。なぜならば利子率は Oより大きく、リスク・ニ ュートラリティーが仮定されているからである。コール・オプションの現在価値はおよそ 3. 41ドルとなり、 1 0 0棟では 3 4 0 . 9 1 ドルとなる。 自分の考える来来の株価に基づくオプションの値が計算されると、オプションの市場価 格と比較することができる。もし、自分の分析に自信があり、その値よりも安く設定され ているオプションを見つけたならば、そのオプションを買おうとするだろう。例えば、上 . 0 0ド ルだ、ったとすれば、分析結果の 3. 41ドルより安いの 記のオプションの市場価格が 2 で購入したいと思うだろう。もし、高く設定されているオプションを見つけたならば、そ のオプションを売ろうとするだろう。例えば、上記のオプションの市場価格が 4 . 5 0ドルで あれば、分析結果と比較して、そのオプションを売りたいと思うだろう。 会二項モデルを用いた複数のコール・オプション会 SASでは、複数のコール・オプションを 1つの DATAステップで評価することができ る。例として、行使価格がそれぞれ 5 2 . 5 0ドル、 5 5ドル、 5 7 . 5 0ドルで、高値と安値の範 0ドル・40ド ノ レ 、 6 5ドル・ 3 5 ドル、 7 0ドル ‑ 3 0ドルで、 囲が 6 その他の条件は先に挙げたものと同じような複数のコール・オプションを考える。これら のオプションの値はどうなるであろうか? 次の DATAステップでこれらのコール・オプションの値を計算する事ができる。 SASプログラム d a t ab i n o m 2 ; i n p u tp r i c ep r i c e ̲ hp r i c e ̲ ls p@@; r = . 1 O ; t = l ; /会下落率、上昇率、上昇確率会/ p̲down=( pr i c e ̲ l‑p r i c e ) / p r i c e ; p̲up=( pr i c e ̲ h‑p r i c e ) / p r i c e ; p=( r ‑ p ̲ d o w n ) / ⑪̲ u p ‑ p ̲ d o w n ) ; ‑149

156.

/女平均、分散、標準偏差合/ mean=p p̲up+(lp )p̲down; ( ( p̲up‑mean)対 2)+(ω̲down‑mean) 2 ) ; var=p会 s=s q r t ( v a r ) ; 会 ・ 会 帥 /*二項計算*/ exponent=s*s q r t ( t ) ; up=e x p ( e x p o n e n t ) ; I u p ; down=l ̲p e r=up・ 1 ; up down ̲per=down‑1 ; /*収入、期待される将来の収益、オプションの現在価値打 i f p r i c e ̲ h<s ptheng a i n = O ; a i n =pr i c e ̲ h‑s p ; e l s ei f p r i c e ̲ h>sptheng e x p ̲ r e t=g a i n * p ; pv ̲ c a l l=e x p ̲ r e t / ( l+ r ) ; c a r d s ; 50604052.5 50604055 50604057.5 5065355 2 . 5 50653555 5065355 7 . 5 50703052.5 50703055 50703057.5 p r o cp r i n tdata=binom2; vars pp r i c e ̲ hp r i c e ̲ lpe x p ̲ r e tpv ̲ c a l l ; t i t l e 3' C a l lO p t i o n s ' ; r u n ; 実行結果 O p t i o nP r i c i n g 8 i n o m i a lM o d e l C a l lO p t i o n s 0 8 S S P P R I C EH P R I C EL P E X PR E T P VC A L L 2 3 4 5 6 7 8 9 5 2 . 5 5 5 . 0 5 7 . 5 5 2 . 5 5 5 . 0 5 7 . 5 5 2 .5 5 5 . 0 5 7 . 5 6 0 6 0 6 0 6 5 6 5 6 5 7 0 7 0 7 0 4 0 4 0 4 0 3 5 3 5 3 5 3 0 3 0 3 0 O .7 5 0 0 0 O .7 5 0 0 0 O .7 5 0 0 0 O .6 6 6 6 7 O .6 6 6 6 7 . o66667 0 . 6 2 5 0 0 O .6 2 5 0 0 0 . 6 2 5 0 0 5 . 6 2 5 0 3 .7 5 0 0 1 . 8 7 5 0 8 . 3 3 3 3 6 .6 6 6 7 5 . 0 0 0 0 1 0 . 9 3 7 5 9 . 3 7 5 0 7 . 8 1 2 5 5 .1 1 3 6 4 3 . 4 0 9 0 9 1 . 7 0 4 5 5 7 . 5 7 5 7 6 6 . 0 6 0 6 1 4 . 5 4 5 4 5 9 . 9 4 3 1 8 8 . 5 2 2 7 3 7 . 1 0 2 2 7 Ei 唱 Fhu ハU

157.

ここで出力されたのは、行使価格 ( S P )、高値(pRICE̲H)、安値(pRICE̲L)、株価の上昇 する確率(P)、コール・オプションの期待リターン但XP̲RET)とコール・オプションの現 V̲CALL)である。行使価格が高くなると、期待リターンとコール・オプションの 在価値(p 現在価値は低くなる。高値と安値の範囲が広くなると、株価の上昇する確率は下がり、期 待リターンとコーノレ・オプションの現在価値は高くなる。 *一項モデ、ルを用いたプット・オプション* SASの DATAステップで、プット・オプションの値を計算することもできる。ヨーロ ピアン・プット・オプション(満期日にのみ取引がある)は、以下の式で表される。 プットの値ニコールの値‑株価+株価の現在価値 アメリカン・プット・オプションの値は、いつ権利を行使するかに依存する c アメリカ ン・プット・オプションでは、しばしば満期日より前に取引が行われる。極端な例でいえ ば、株価が 0になったとすると、オプションを使用して多くの利益を得ることができる。 前記の式を使用して、先ほどのコーノレ・オプションの評価をプット・オプションの値を 求めるように修正できる。行使価格 55 ドルでプット・オプションを買い、他の条件は前 のままだとすると、先に作成した BINOMlを使用して下のような DATAステップで計算 できる。 SASプログラム d a t abinoml; s e tbinoml; pv ̲ s p=s p / ( l+ r ) ; i f s pく p r i c e ̲ lthenpv ̲ p u t = O ; e l s epv ̲put =pv̲ c a l l ‑ p r i c e + p v ̲ s p ; o u t p u t ; r u n ; p r o cp r i n tdata=binoml; varp v ̲ p u t ; t i t l e 3' P u tO p t i o n ' ; r u n ; 実行結果 O p t i o nP r i c i n g B i n o m i a lM o d e l P u tO p t i o n O B S P VP U T 3 . 4 0 9 0 9 目 品 旬EA ' l白 唱 民U

158.

ここでは、プット・オプションの値のみのが表示される。この例では、プット・オプシ ョンの値がコール・オプションの値と等しくなることに注意する。これは、行使価格の現 $ 5 5 /1 .1 = $ 5 0 )からである。 在価値が現在の株価と等しい ( 通常は、この 2つの値は異なる。 合一項モデルを用いた複数のプット・オプション合 つの D ATAステップで計算することができる。下 複数のプット・オプションの値を、 1 ATAステップでは、 BINOM2のコール・オプションと同じ行使価格のプット・オ 記の D プションを計算している。 SASプログラム d a t ab i n o m 2 ; s e tb i n o m 2 ; pv ̲ s p=s p / ( l+ r ) ; i f s pく p r i c e ̲ lt h e npv ̲ J )u t = O ; e l s epv̲J)u t =pv ̲ c a l l ‑ p r i c e + p v ̲ s p ; o u t p u t ; r u n ; p r o cp r i n td a t a = b i n o m 2 ; v a rs pp r i c e ̲ hp r i c e ̲ lppv ̲ c a l lpv ̲ J )u t ; t i t l e 3' P u tO p t i o n s ' ; r u n ; 実行結果 O p t i o nP r i c i n g B i n o m i a lM o d e l P u tO p t i o n s O B S S P P R I C EH P R I C EL P P VC A L L P VP U T 2 3 4 5 6 7 8 9 5 2 . 5 5 5 . 0 5 7 . 5 5 2 . 5 5 5 . 0 5 7 . 5 5 2 . 5 5 5 . 0 5 7 . 5 6 0 6 0 6 0 6 5 6 5 6 5 7 0 7 0 7 0 4 0 4 0 4 0 3 5 3 5 3 5 3 0 3 0 3 0 O .7 5 0 0 0 O .7 5 0 0 0 O .7 5 0 0 0 O .6 6 6 6 7 O .6 6 6 6 7 0 . 6 6 6 6 7 0 . 6 2 5 0 0 0 . 6 2 5 0 0 0 . 6 2 5 0 0 5 . 1 1 3 6 4 3 . 4 0 9 0 9 1 . 7 0 4 5 5 7 . 5 7 5 7 6 6 . 0 6 0 6 1 4 . 5 4 5 4 5 9 . 9 4 3 1 8 8 . 5 2 2 7 3 7 . 1 0 2 2 7 2 . 8 4 0 9 1 3 . 4 0 9 0 9 3 . 9 7 7 2 7 5 . 3 0 3 0 3 6 . 0 6 0 6 1 6 . 8 1 8 1 8 7 .6 7 0 4 5 8 . 5 2 2 7 3 9 . 3 7 5 0 0 ‑ 1 5 2一

159.

ここで出力されたのは、行使価格 (SP)、株価上昇の確率(P)、コール・オプションの現在 価値(pV̲CALL)、プット・オプションの現在価値(PV̲PUT)である。行使価格が高くなる と、プット・オプションの現在価値は高くなる。このオプションを買う人というのは、株 価をある特定の値で売る権利を買うのだから、これは当然である。高値と安値の範囲が広 がると、プット・オプションの価値も高くなる。 会二項モデルの他の投資対象への拡張合 二項モデルのオプション・プライシングを、他の投資対象に拡張できる。 ここでは、ある製品をつくるための機械 2種類について考えてみる。それぞれが作る商品 が株の例の高値と安値にあたると考えられる。簡単のため、初期投資はこの 2種類は同じ で 、 2千万ドルとする。 1つ目の機械(セット A とする)は、低価格の製品だけを製造す る。もう 1つの機械(セット B とする)は、特定の製品だけではなく他の製品も作れる柔 軟性がある。一年後に支払う額は、次の表のようになる。 セット A セット B 需要が低かったとき 需要が高かったとき 4千万ドル 1千万ドル 3千 5百万ドル 5百万ドル どんな利子率(割引率)を使用しても、セット A の現在価値はセット B の現在価値より も大きくなる。だから、もし製造を続けるのであれば、需要の高い低いにかかわらず、セ ット A を選ぶことになる。しかし、セット Bの補償金が 1千 6百万ドノレで、セット A は 補償金がないとすれば、セット Bは、補償金の 1千 6百万ドルが行使価格になるようなプ ット・オプションとみなすことができる。 そうすると、比較結果は先程とは違ってくる。セット A では、需要が高ければ 4千万ド ル、低ければ 1千万ドルもうけることができるが、セット Bは、需要が高ければ 3千 5百 万ドルもうけ、低いときはこの資産を 1千 6百万ドルで売ることができる。(逆に製造し 続けると、 5 百万しかもうけられない。)このように、プット・オプションは保証手段の ような働きもする。通常、いくつかの不確実な資産の値に左右される支払のどんな組み合 わせも、その資産のオプションの組み合わせとして評価することができる。 セット B の機械のプット・オプションを、二項モデ、ルを使用して DATAステップで下 記のように記述して評価することができる。 SASプログラム databinom3; /索現在と将来の値*/ p r i c e=2 0 ; p r i c e ̲ h=3 5 ; ; p r i c e ̲ l=5 /会オプションの行使価格、期間、利子率会/ s pニ 1 6 ; t = l・ rニ . 1 0 ; EA 唱 phu qd

160.

戸下落率、上昇率、上昇確率*/ p̲down=( pr i c e ̲ l‑p r i c e )/p r i c e ; p̲up= ( pr i c e ̲ h・p r i c e )/p r i c e ; p= ( r‑p̲down)/( p̲up‑p̲down); /*平均、分散、標準偏差*/ mean=p*p̲up+( 1‑p )*p̲down; ( ( P̲up‑mean)**2)+( 1‑p )合 ( ( p ̲down・mean)合 2 ) ; var=p合 s=s q r t ( v a r ) ; /*二項計算合/ exponent=s* 自 q r t ( t ) ; x p ( e x p o n e n t ) ; upニ e I u p ; down=l ; up̲per=up‑1 down̲per=down・1 ; 作収入、期待される将来の収益、オプションの現在価値打 i f p r i c e ̲ h<sptheng a i n = O ; =price̲h‑s p ; e l s ei f p r i c e ̲ h>spthengain exp̲ret=gain 合p ; p v ̲ c a l l=e x p ̲ r e t / ( l+ r ) ; pv ̲sp =s p / ( l+ r ) ; i fs p < p r i c e ̲ lthenpv ̲put=O; e l s epv̲put=p v ̲ c a l l ‑ p r i c e + p v ̲ s p ; o u t p u t ; r u n ; procp r i n tdata=binom3; t i t l e 2' B i n o m i a lM o d e l ' ; A l t e r n a t i v eUseTechnologyPutO p t i o n ' ; t i t l e 3' r u n ; 実行結果 Option Pricing B i n o m i a lM o d e l Alternative U s e Technology P u t Option OBS O B S O B S PRICE PRICE̲H PRICE̲L SP T R P̲DOWN P̲UP P 2 0 3 5 5 1 6 0 . 1 ‑0.75 0 . 7 5 0.56667 MEAN VAR s EXPONENT UP DOWN UP PER 0 . 1 0.5525 0.74330 0.74330 2.10287 0.47554 1.10287 DOWN PER GAIN E X PR E T P VC A L L P V SP P VP U T 一0.52446 1 9 1 0 . 7 6 6 7 9.78788 1 4 . 5 4 5 5 4.33333 Tよ A‑ RU

161.

I プッラク,ショールズモデルによるオプションの評価1 二項モデルによるオプション・プライシングは、 1年後に満期をむかえ、 2種類の結果 しかないものとして、先の例で使用した。この二項モデルは、もっと短い期間(例えば 6 カ月)にも使用できる。そうすると、 I年後には 4種類の結果がでてくるようになる。も し株価が 3カ月おきに上下に変動するとすれば、 1年後には 8つの結果がでることになる。 期間が短くなればなる程、結果は連続分布に近くなって、二項モデルによるオプション・ プライシングは、ブラック・ショールズモデルに近づいていく。 ブラック・ショールズ、の公式は、コール・オプションの現在価値を株価のオプションデ ルタ倍から、株を買うための銀行ローンの現在価値を引し、たものであり、下記の式になる。 オプションの値= (デルタ x価格)ー銀行からのローン オプショシの値 =[N(dl)X価格]一[(行使価格)X eげ X N(d2)] ここでいう銀行からのローンとは、非危険利子率 ( r )で、現在価値に直したものである。オプ ションデルタは、 dlの累積正規確率として定義される。 dl‑1og(価格/行使価?)+rt+σ2//2 ‑ σ1 I 、 残存期間 (d2)は 、 dl一σJ tとして定義される。 d2=dl一σJ t 最後に、ブラック・ショールズ、モデルのプライシング・オプションは、配当のない株につ いてのものであることに注意する。配当付きの株については、二項モデルを使用して、そ れぞれの判断ポイント(これは、配当を払う日と利率を払う期間の終わりのこと)毎にオ プションの評価を行うべきである。 *ブラック・ショールズモデルを用いたコール・オプション* 下記の DATAステップは、最初の例に使用した二項モデルのコール・オプションと同じ 状態で、コール・オプションの値を計算したものです。累積正規確率の値は、 PROBNORM 関数で求めることができる。 SASプログラム datao p t i o n l ; /*現在の価格、オプションの行使価格*/ p r i c e = 5 0 ; s p = 5 5 ; ai 唱 R υ R υ

162.

/合標準偏差、期間、利子率引 s = . 1 7 3 2 1 ; t = l ; r= . 1 0 ; 戸ブラック.ショールズオプションプライシング計算打 d1 = ( l og( pr i c e / s p) + ( r * t ) + ( s帥 2合 ( t ) ) / 2 ) / ( 計s q r t ( t ) ) ; s * s q 此( t ) ) ; d2=d1・( =probnorm(d1); d e l t a ̲ c ̲p =delta̲c・1 ; d e l t a pv̲sp=sp合 e x p ( ( ‑ r ) * t ) ; loan =pv̲spう robnorm(d2); o a n ; p v ̲ c a l l =( pr i c e * d e l t a ̲ c )・l ̲put=pv̲call+pv̲ s p ‑ p r i c e ; pv o u t p u t ; run; procp r i n tdata =o p t i o n 1 ; ' ; t i t l e 2' B l a c k ‑ S h o l e sModel t i t l e 3; run; 実行結果 Option Pricing Black‑Sholes M o d e l OBS OBS PRICE SP S 50 5 5 0 . 1 7 3 2 1 T R 0 1 O .1 O .1 1 3 6 8 0 2 OELTAC ‑0.059529 0.54525 OELTA P PV SP L O A N PVCALL PV P U T ‑0.45475 4 9 .7 6 6 1 23.7018 3.56088 3.32694 入力データと中間計算、ブラック・ショールズによるコールとプットの評価が出力され る。現在の株価 50 ドル、オプションの行使価格 55 ドル、株価のばらつき(標準偏差: S=0.17321) 、期間 ( 1年)、利率 (10%) とすると、コール・オプションは 3 . 5 6ド 、 ル (100 株 で 356.09 ドル)という値になる。コール・オプションのデルタは、 0.54525、コール・ / 0 . 5 4 5 2 5となり、1.8株と同等の価値になる。 オプションは 1 EA 唱 にU nhv

163.

入力した条件により、プット・オプションは 3 . 3 3 ドル (100株で 332.69 ドル)になる 0. 45475になる。この結果から、プット・ ことがわかる。プット・オプションのデルタは ‑ オプションを買うかわりに 0. 45475株の株を売り、国債(非危険資産)を買うことも考え られる。 ここではコール・オプションとプット・オプションの値が等しくならないことに注意す る。これは、連続な割引がブラック・ショールズ モデ、ルで、使用されるので、行使価格の現 4 9 . 7 6 6 1 ドル)が現在の株価 ( 5 0 ドル)と等しくならなし、からである。 在価値 ( *ブラック・ショールズモデ ルを用いた複数のオプション* 複数のコール・オプションの値を 1つの DATAステップで計算できる。下記の DATA ステップで BINOM2と同じ条件でのコール、プット・オプションの値を計算する。 SASプログラム datao p t i o n 2 ; s e tbinom2; /*ブラック.ショールズオプションプライシング計算吋 d1 = ( l og(pr i c e / s p ) + ( r * t ) + ( s州 2会 ( t ) ) / 2 ) / ( s * s q 此( t ) ) ; d2=d1・( s * s q r t ( t ) ) ; d e l t a ̲ c =probnorm(d1); ; d e l t a ̲ p = d e l t a ̲ c・1 pv̲sp=s p * e x p ( ( ‑ r ) 吋 ) ; l o a n 二pv ̲ s p * p r o b n o r m ( d 2 ) ; p v ̲ c a l l ニ(pr i c ed e l t a ̲ c )・l o a n ; ̲ put =pv̲call+pv̲ s p ‑ p r i c e ; pv 会 o u t p u t ; r u n : ニo p t i o n 2 ; p r o cp r i n tdata vars pp r i c e ̲ hp r i c e ̲ ld e l t a ̲ cd e l t a ̲ ppv ̲ c a l lpv ̲ p u t ; t i t l e 3' C a l lO p t i o n s ' ; r u n ; h 戸 U ηー 1よ

164.

実行結果 O p t i o nP r i c i n g B l a c k ‑ S h o l e sM o d e l C a l lO p t i o n s O B S S P 2 3 4 5 6 7 8 9 5 2 . 5 5 5 . 0 5 7 . 5 5 2 . 5 5 5 . 0 5 7 . 5 5 2 . 5 5 5 . 0 5 7 . 5 R I C EL D P R I C EH P E L T AC 6 0 6 0 6 0 6 5 6 5 6 5 7 0 7 0 7 0 4 0 4 0 4 0 3 5 3 5 3 5 3 0 3 0 3 0 0 . 6 2 5 5 6 0 . 5 6 7 9 4 0 . 5 1 1 4 8 0 . 6 3 1 0 2 0 . 5 8 9 7 4 0 . 5 4 9 3 4 O .6 4 4 0 2 0 . 6 1 2 2 4 0 . 5 8 1 1 5 D E L T AP P VC A L L P VP U T 一0 . 3 7 4 4 4 4 . 8 8 0 9 6 . 0 7 2 5 7 . 3 9 4 0 7 . 1 4 7 7 8 .4 1 5 1 9 . 7 7 5 4 9 . 4 2 3 7 1 0 . 7 5 7 4 1 2 .1 6 2 5 ー0 . 4 3 2 0 6 ‑ 0 . 4 8 8 5 2 ‑ 0 . 3 6 8 9 8 ‑ 0 . 4 1 0 2 6 ‑ 0 . 4 5 0 6 6 ‑ 0 . 3 5 5 9 8 ‑ 0 . 3 8 7 7 6 ‑ 0 . 4 1 8 8 5 7 . 3 7 6 9 6 . 3 0 6 4 5 . 3 6 5 8 9 . 6 4 3 7 8 . 6 4 9 0 7 .7 4 7 3 1 .9 1 9 7 1 1 0 . 9 9 1 3 1 0 . 1 3 4 4 行使価格( S P )、 高 値 σRICE̲H)、 安 値 σRICE̲L)、 コ ー ル ・ オ プ シ ョ ン の デ ル タ (DELTA̲C)、プット・オプションのデルタ(DELTA̲P)とコール、プット・オプションの 現在価値が出力される。行使価格が高くなると、オプションのデルタとコール・オプショ ンの現在価値は低くなり、プット・オプションの現在価値は高くなる。高値と安値の範囲 が広がると、オプションの値も高くなる。 コール・オプションのデルタすべてが正で 1より小さいことに注意すること。これは一 株買うことの方がコール・オプションを買うより効果がある(lIDELTA̲C倍)というと とを示している。逆にプット・オプションのデルタはすべて負なので、計算結果によると、 プット・オプションを買うかわりに DELTA̲P単位の棟を売って、国債(非危険資産)を 買う方がよい。 参考文献 S t o c kMarketA n a l y s i sUsingt h eSASS y s t e m :P o r t ゐl i oS e l e c t i o nandE v a l u a t i o n ", V e r s i o n6F i r s tE d i t i o n ,SASI n s t i t u t eI n c . F . andS c h o l e s,M.(1973), The P r i c i n go fO p t i o n s and C o r p o r a t eL i a b i l i t i e s, " Black, Journalof P o l i t i ぬ 1Economy ,V o l . 8 1,6 3 7 ‑ 6 5 4 . B r e a l e y,R .andMyers,S .( 1 9 9 1 ),P r i n αp l e sofC o r p o r a t eFinance ,F ourthE d i t i o n ,New Yor k :McGraw‑Hill,I n c . E l t o n,E .andGruber ,M. ( 1 9 8 7 ),ModernP o r t f o l i oTheoryandInvestmentAna l y s i s , k :JohnWiley& Sons,I n c . T h i r dE d i t i o n ,NewYor .( 1 9 7 9 ),ModernP o r t f o l i oTheory , Homewood,I l l i n o i s :DowJ o n e s ‑ I r w i n . Hagin,R Jones,C .( 1 9 9 1 ),I n v e s t m e n t s :An a l y s i sandManagement ,T h i r dE d i t i o n ,NewYor k : JohnWiley& Sons,I n c . FhU 1よ n o

165.

日本 5A5ユーザー会 (5U G卜 J) UNIX版 SASシステムリリース 6 . 1 0の新機能 竹中京子 株式会社 SASインスティチュートジャパン t 支術本部テクニカルサポートセクション ChangesandEnhancements: SASSystemRelease6.10f o rUNIX KyokoTakenaka T e c h n i c a lS u p p o r tS e c t i o n, T e c h n i c a lD i v i s i o n, SASI n s t i t u t eJapan,L td . 要旨 . 1 0の新機能および変更点を紹介する。 UNIX版 SASシステムの新パージョン 6 キーワード: UNIX リPース 6 . 1 0新機能力ラ一変更リソースヘルパーシステムオプション 1 はじめに ' 9 4年末より UNIX版 SASシステム Pリース 6 . 1 0がリ Pースされた。 . 0 9から拡張された機能のうち、 SASシステム全体の環境設定など 本論文では、 UNIX版 SASシステムリ Pース 6 を行う管理者の方にとって有用と思われる機能を中心に紹介する。 2 SASウインドウのカラーの変更 まず SASシステムリ リース 6 . 1 0'l‑起動して従来のパージョンとの遣いを感じるのは DMS(DisplayManagerSys t e m )のデフォルトのパックグラウンドカラーが WhiteI'C.変更されているととである。従来のパージョンでは、デフォ ルトで P rogramE d i t o rウインドウが B u l e、 LOGウインドウが Gray、 OUTPUTウインドウが Cyanで表示され るようになっていた。 ウインドウのパァクグラウンドカラーやテキストのカラーは後述するように、 SASの SASCOLORウインドウで変更するととが可能である。 ‑159 xyソースファイノレや

166.

3 SASウインドウのカラーのカスタマイズ方法 SASウインドウのカラーを変更するには、 SASの X 9ソースファイルを変更する方法と、 SASCOLORウインド ウや COLORコマンドを使用して変更する方法がある。 .xリソースファイルでのカラーの変更方法 99ース 6 . 1 0から、 SASの X リソースファイルに記述できる項目として CPARMSが追加された。との リソースにより SASウインドウのカラーと属性を定義するととができる。 CPARMSは複数のクラスに分かれており、各クラスは特定のウインドウ領域を表す。 CPARMSリソース の記述方法は以下のとおりである。 SAS.cparmC/ass: DmC%rNameI DmAttrName [+ DmC%rNameI DmAttrNameJ DmC%rNameと DmAttrNameにはそれぞれ定義可能なカラーと属性が決められている。以下はエラーメッ セージを赤の反転で表示させるための指定である。 SAS.cparrnError: D r n R E D + DrnREVERSE 全ユーザがロードできる X9ソースファイル (/usr/lib/Xll/app‑defaults/SAS)にとのような記述を追加 するととにより、設定したカラーの属性を全ユーザの SASセッションに反映させるととができる。 • SASCOLORウインドウ、 COLORコマンドでのカラーの変更方法 SASCOLORウインドウ、または COLORコマンドで変更したウインドウ情報を WSAVEコマンドで保存 するととにより、ユーザごとにカラーの設定をカスタマイズできる。 99ース 6 . 1 0の SASウインドウは全てデフォルトのカラーと表示属性で初期化されるようになっている。 SASCOLORウインドウは、とのデフォルトのカラーと表示属性を参照および変更する機能を持っている。 SASCOLORウインドウはプルダウンメニューを グローパル→オプション→カラー設定 の1原に選択するととにより表示できる。とのウインドウの中でパックグラウンド、メッセージなどのウインド ウ構成要素を選択し、カラーおよび表示属性を選択した後、了解または保存のポタシをクリックするととによ り変更した情報を保存するととができる。 SASCOLORウインドウで変更した情報は、 SASUSER.PROFILEカタログの SAS.CPARMSエントリに保存される。 SASCOLORウインドウで変更し た設定はウインドウの初期化時に反映されるため、既に表示されているウインドウはいったん閉じて再度表示 させるか、あるいは SASセッショシを再起動するまで反映されない。 COLORコマシドの使用方法はリリース 6 . 0 9の時と同様である。 COLORコマンドでウインドウ構成要素の カラーを変更した後 WSAVEコマンドを発行すると、ウインドウ情報は SASUSER .PROFILEカタログの xxxx.WSAVEエント 9K.保存される。 COLORコマンドによる設定は、即時にそのウインドウに反映される。 WSAVEコマシドで保存したカラーと表示属性の設定は、 SASCOLORウインドウでの設定に対して優先す る 。 4 リソースヘルパー リソースヘルパーを使用すると、 SASシステムで使用する OSF/Motifのインターフェースのフォント、キ一定義、 カラーの定義を対話的に設定するととができる。との機能はリリース 6 . 1 0で初めてサポートされたものではないが、 以前のパージョシで使用しているケースは少ないと恩われる。 ← 1 6 0 ←

167.

6 . 1 0での拡張点としては、リソースヘルバーによりカラーの定義ができるようになったとと、 SASセッション内か らリソースヘノレパーを呼び出せるようになったととなどがあげられる。 Pソースへんバーによって定義の追加が行われるファイルについては、 iSASTechnical Report E‑100J: SASシ . 1 0における変更点と拡張点」に詳細が記述されている。 ステムリリース 6 リソースへんバーは SASセッション内で グローパル→アクセサリ → X リソース を選択するととにより起動できる。また、 SASセッションを起動せずにシェノレフ.ロンプトから スsasroot/utilities/bin/reshelper 8 1 ; コマンドを発行して起動するとともできる。 リソースへんパーの初期画面を以下に示す。 F o n t s, Keys,C o l o r sの各アイコンをク i !‑;;クするととによりカスタマイズ用のウインドウが表示され、対話形式 で設定を行える。 リソースへんパーはリソースファイんにキ一定義を追加したい場合などに大変便利である。 全てのユーザ環境でロード可能なリソースファイノレ (/usr/lib/Xll/app‑defaults/SAS)に定義を追加する 場合は、以下の手I J 闘でリソースへんパーを起動する。 1 . /usr/lib/Xll/app‑defaults/SASファイノレに対して書き込み権限のあるユーザ IDでログインする。 2 .環境変数 XAPPLRESDIRを設定する。 #s etenv XAPPLRESDIR /usr/lib/Xll/app‑defaults 3 . リソースへんパーを起動する。 5 RTRACEシステムオプション、 RTRACELOCシステムオプション RTRACEシステムオプションは、 SASシステムの実行中に行われる読み込み等のリソースリストを生成する機能を 、 SASコマンドまたは環境設定ファイノレで指定するととが可能である。 RTRACEは以 持っている。 RTRACEは 下の値を取る。 1 6 1

168.

FILE:読み込むファイんをトレースする。 LDAD: ロードした実行ファイルをトレースする。 FULL:読み込むファイノレとロードした実行ファイルの両方をトレースする。 RTRACELOCシステムオプションは、 RTRACE情報が書き込まれるファイルのパス名を指定するためのオプショ ンである。 RTRACELOCシステムオプションでファイル名が指定されていなければ、 RTRACE情 報 は 標 準 出 力 K書き込まれる。 以下は SASシステム起動時 K RTRACEおよび RTRACELOCシステムオプションを指定した場合の RTRACE 情報の出力の先頭部分である。 SASシステム起勤時 K環境設定ファイル(c o n f i g . s a s 6 1 0 )や a u t o e x e c . s a sファイルが 読み込まれている ζ とや、ロードされている実行ファイルの名前を確認する ζ とができる。 ζ の出力は、アプリケーション実行用のマシン KSASシステムのファイルの最小セットを傍築する場合に有用で あると思われる。 (SASシステム起動コマンド) %sas ‑rtrace FULL ‑rtraceloc /home/mydir/rtrc.txt /mydir/rtrc.txtの内容 File open: /var/opt/sas610/config.sas610 File open: /var/opt/sas610/jap阻 ese.sjis/sasmsg/initmsg File load: /var/opt/sas610/dbcs/sasexe/sasmotif File load: /var/opt/sas610/sasexe/base/sasxbam File load: /var/opt/sas610/dbcs/sasexe/sasxkini File load: /var/opt/sas610/dbcs/sasexe/saswzsd File open: /var/opt/sas610/sasmsg/msgdir.msg File open: /var/opt/sas610/jap阻 ese.sjis/sasmsg/host.msg File open: /var/opt/sas610/jap阻 ese.sjis/sasmsg/core.msg File open: /var/opt/sas610/jap阻 ese.sjis/sashelp/core.sctOl File open: /home/mydir/sasuser/profile.sctOl File load: /var/opt/sas610/dbcs/sasexe/sasxglob File load: /var/opt/sas610/dbcs/sasexe/sasxsini File open: /var/opt/sas610/autoexec.sas File load: /var/home/mydir/ File load: /var/opt/sas610/dbcs/sasexe/sasmotif File load: /var/opt/sas610/sasexe/base/sasxxxpm File open: /var/opt/sas610/jap阻 ese.sjis/sasmsg/xwind.msg File open: /var/opt/sas610/jap担 ese.sjis/sasmsg/base.msg File load: /var/opt/sas610/dbcs/sasexe/saswujp File open: /var/opt/sas610/jap組 問 e.sjis/sashelp/core.sctOl File open: /var/opt/sas610/jap阻 ese.sjis/sashelp/core.sctOl 6 INITCMDシステムオプション INITCMDシステムオプションは、 SASシステム起動時に ProgramE d i t o r, LOG, OUTPUTウインドウを表示せ ずに SASjAFアプリケーションを実行するためのオプションである。 yyース 6.09以前は、 SASシステム起勤時に AFアプリケーションを実行する場合、 a u t o e x e c . s a sファイノレ K D M ステートメントで AFコマンドを記述する必要があった。しかし ζ の場合は ProgramE d i t o r,LOG,OUTPUTの ウインドウが表示されてから AFのウインドウが表示される。 ンである。 ζ の問題を解決するのが INITCMDシステムオプショ PO Tよ ︒ノ

169.

あった。 今回リリース 6 . 1 0で、とのようなプロダクトを含め以下のものが新たに使用できるようになった。 • SASjLABソフトウェア • SASjEISソフトウェア • SASjSHAREソフトウェア • SASjSPECTRAVIEWソフトウェア 9 参考文献 • SAST e c h n i c a lR e p o r tE ‑ 1O O J :SASシステムリヲース 6 . 1 0における変更点と拡張点 本論文で使用されている商標は一般に各社の(登録)商標です。 1 ょ qu b ハ

170.

日本 5A5ユ ー ザ ー 会 (5U Gト J) Macintosh版 SASシステム 谷川 隆一 株式会社 SASイ ン ス テ イ チ ュ ー ト ジ ャ パ ン テ ク ニ カ ル サ ポ ー ト セ ク シ ョ ン AnI n t r o d u c t i o nt oSASsystemf o rMacintosh R y u i c h iTanikawa T e c h n i c a ls u p p o r ts e c t i o n , SASI n s t i t u t eJapanL t d . 要旨 Tokyo , Japan 新しいプラットフォーム、 M acintosh上の SASシステムを紹介します。 内容としては、 M acintosh版 SASシステム固有の仕様を中心に説明します。 キーワード: ] ¥ . 在a c i n t o s h 、 SASシステム 1.はじめに SASインスティチュートジャパンから 5月 1 8日にま庁しいプラットフォーム、 Macintosh に対応した SASシステムリリース 6 . 1 0がリリースされました。 Macintosh版 SASシステムは、 ・クライアント・サーパ環境を提供する SAS/CONNECTソフトウェアのサポート ・作成したグラフを DTPソフトにカット&ペーストできる .JMPとのデータの受け渡しなどがエンジンレベルで提供される などの特徴を持っており、 M acintosh上で本格的なピジネスアプリケーションを構築する ために最適のプラットフォームとなっています。 2.システム必要条件 6 8 0 2 0, 6 8 0 3 0, 6 8 0 4 0 : FPU必須)と PPCσowerPC)をサ 動作機種としては、 MC680xx( ポートしています。 MC680xxでは FPUが必須ですので MC68LC40のように FPU機能が 付加できない CPUを搭載した M acintoshでは動作できません。 MC680xx版は MC68040で最適化してあります。 オペレーテイングシステムは漢字 T a l k 7 . 5が必要です。それ以前の OSのパージョンでは動 作しません。メモリに関しては SASシステム用に連続した空きエリアが最低 8 Mバイト 必要ですが、 IBMバイト以上確保することを推奨します。 ‑ 1 6 5

171.

3.ファイル構成 M a c i n t o s h版 SAS システムでは、 s a s u s巴r , s a s w o r k等 は シ ス テ ム フ ォ jレダ:初期設 定: SAS のフォルダの中に作成されます。他のプラットフォームの場合には実行した場所か、 a c i n t o s h版の場合にはこの点の注意が 実行モジュー jレのある場所に作成されますので、 M 必要です。また、 CD‑ROMにはディスクイメージで格納されており、 CD ・ ROMを起動ドラ イプの一部としてインストー l レすることや、 CD‑ROM 自体から起動ができます。全部で 300Mバイト近い容量が必要ですので、ディスク容量が少ない場合に利用すると有効です。 4. 処 理 速 度 簡単な性能評価を行いました。 コンピュータやソフトウェアの評価の場合、 コンピュータの CPU性能、メモリ量、 CPU・ディスクのキャッシュサイズ、ディ スク装置のアクセススピード、ディスプレイへの表示速度、 OSの完成度、開発環 境(コンパイラ等)の完成度 等によって大きく値は変わってきます。 今回は Windows版 SASシステム 6 . 1 0との比較を行いました。プラットフォームが異なる ために同じ条件で比較することはできませんでした。あくまで参考として以下に述べます。 [Wind0 w S版] 実メモリ 2 4Mバイト DELLOMNIPLEX560 CPU:P巴ntium6 0 Mhz 仮 想 記 憶 :20Mバイト使用 Windows版 SASシステムでは最大使用メモリ量の上限はありません。 [Mac int0 sh版] PowerMacintosh8 1 0 0 / 8 0 ( A V) CPU:PowerPC60180 Mhz 実メモリ 48Mバイト 仮想記憶:未使用 ディスクキャッシュ: 128K SASの最大メモリ量 IBMバイト * b u f s i z巴はどちらも初期値を使用し、システムによる最適化を使用しています。 [テストプログラム} d a t at e s t ; d oi = lt o1 0 0 0 0 0 0 ; o u t p u t ; e n d ; r u n ; p r o cs o r td a t a= te s t ; byi ; r u n ; ‑166‑

172.

[結果] DATAステップ ISORTプロシジャ 明江 N 1 5秒位 MAC 1 5秒 位 h分 14秒 位 h 分2 5秒{立 PowerPC601 ( 8 0 Mhz ) は Pentium( 6O Mhz ) とほぼ同等にとどまっていますが、漢字 T a l k 7 . 5自身が PPCにネイテイプ対応している割合が低いことなども影響していると思わ れます。 5 . ユーザインターフェイス、プログラムインターフェイス 画面構成は他のプラットフォームの SASシステム 6 . 1 0の画面に似ています。 拡張キーボードではない通常の M acintoshのキーボードには、ファンクションキーがあり ませんので、ショートカットを利用してください。 Macintoshのマウスは lつボタンですが、キーボードの o p t i o nキーを押しながらクリック することで、右ボタンの動作を行わせることができます。 ファイ J レを SASアイコンに重ねることによって、プログラムエディタに読み込んだり、実 行させたりすることができます。この動作は、オプションのドロップアクションによって 決定されます。 Macintoshではファイルをフォ Jレダを使って管理します。 Macintosh版 SASシステムでは、ライフヲリ参照名、ファイル参照名を以下のようにして 指定します。 泊四の指定方法 ファイルの記述方法・ LIBN i b n a m el i b r e f'Ma c i n t o s h HD:SAS610'; 例: l FILE、FILEN 品四、 INFILE ステートメントでは、ファイル一覧を表示するリストボッ クスとして、 SFDIALOG オプションが指定できます。これにより、実際のファイルを動 的に決定できます。 6.サポートエンジン , OSIRIS以 外 に 品E エンジンがあ インタフェース・ライブラリエンジンとしては、 SPSS ります。これにより、 JMPのデータをそのまま SASシステムに取り込むことが可能です。 *JMPエンジンは SASシステム 6 . 1 0においては e x p e r i m e n t a lパージョンです。 1 6 7

173.

7 . ファイルの互換性 .68kと PPCの同で、 SASファイルはバイナリーコンパチプ J レです。 M acintosh聞なら、 たとえ CPUが異なるマシンの間であっても移送ファイルの作成は不要です。 ・品。エンジンを利用すれば、品E とのデータ交換でも移送ファイルの作成が不要になり ます。 .UNIX版 SASシステムとも互換性があり、 UNIX版 SASシステムで Macintosh版 SAS システムの SASデータセットがそのまま読めます。 8 . デバイス サポートしているグラフイツクデバイスには以下が含まれます。 MACCOLOR ディスプレイへの表示 MACPLOT E 在ACPRTC プロッタへの出力 E 在ACPRTG グレースケールプリンタ MACPRTM 白黒プリンタ APPPLUS L a s e r w r i t e rP l u s( po s t s c r i p t ) ALLPELW L a s e r w i t e r( po s t s c r i p t ) APPLEL 羽司在 L a s e r w i t e rA4 ( po s t s c r i p t ) カラーフ.リンタ 9 . グラフィック SASシステムで作成したグラフは、 PICT形式で他の DTPソフトウェアなどにカット&ベ ーストできます。 1O . フォント o n 五g . s y s 6 1 0 や 起 動 時 オ プ シ ョ ン 設 定 の た め の ツ ー ル OPTION 日本語フォントは c EDITORで指定します。 s a k a ‑ 等幅、等幅明朝、等幅ゴシックです。 選択できるフォントは o 11 . 印刷 Windows版 SASシステムと同様に、テキストの印刷ではオベレーテイングシステムの機能 を使います。 グラフイツクは「デバイス」の項で説明したデバイスが利用できます。 MACPRTC , MACPRTG , MACPRTM は Macintoshの OSの機能を利用して印刷されます。 1 6 8

174.

12 . 他のアプリケーションとの連携 ‑他のドローイング系ソフトウェアにグラフイメージをそのままカット&ベーストする ことができます。 .SCRAP、 CLIPBOARD を利用してデータ交換が行えます。 ・その他、外部ファイ J レ (CSV形式など)を利用する方法があります。 13 . チューニング ・メモリは多いほど良いといえます。メモリが足りないときは、仮想メモリを増やしてく ださい(速度は物理メモリに比べて低下します)。 .SASシステム自身のメモリサイズは、 SASアイコンを選択し、ファインダーのメニュー の、編集・〉情報を見るの中で変更してください。 ‑他のアプリケーションやウインドウを閉じるとメモリにゆとりができます。 14 . 日本語入力 Macintoshでの標準的日本語入力システム「ことえり」での動作確認を行っています。 15 . ヘルプ アップルガイドは日本語で各項目について説明が記述してあります。 このオンラインヘルプの日本語化により、ユーザにとって非常に親切なシステムになって います。 16 . オプション・エディタ レの作成と編集、 SASシステム起勤時の環境設定オプションの指定、 SAS 環境設定ファイ J セッション中のシステムオプションの変更などのために、 f Jfしくオプション・エディタと 呼ばれる M acintoshのアプリケーションが提供されます。 17 . 今後の対応 今後の対応として以下の内容が検討されています。 .G i l lをもっと Macintoshらしくする 'ODBCのサポート .OpenDo cへの対応 .DecNetのサポート .A p p l e S c r i p t対応の強化 1 6 9

175.

18. まとめ acintoshをサポートしたことによって、マルチベンダーアーキテ 今回 SASシステムが M クテャはまた一歩前進したことになります。 acintosh版 SASシステムのリリースは、 Macintosh上で本格的なビジネスアプ 今回の M リケーションを構築するための開発ツールを提供した、という意味で大きな価値がありま す 。 SAS/CONNECTソフトウェアを使った、 M a c i n t o s hも含めたクライアント/サーバ環 境の提供は、情報システムの構築で大きな力になることでしょう。 また、従来から iSAS/GRAPHの出力を M a c i n t o s hの DTP環境へ取り込みたい」とい う要望が多かっただけに、この意味でも M a c i n t o s h版 SASシステムのリリースは価値があ ると思います。 1 7 0一

176.

【付録】 Macintosh版 SASシステムリリース 6 . 0 7でサポートするプロダクト一覧 BaseSASソフトウェア SAS/AFソフトウェア SAS/ASSISTソフトウェア SAS/CALCソフトウェア SAS/CONNECTソフトウェア SASIEISソフトウェア SASIETSソフトウェア SASIFSPソフトウェア SAS/GRAPHソフトウェア SAS 凪正Lソフトウェア SAS 江NSIGHTソフトウェア SASιABソフトウェア SAS/ORソフトウェア SAS/QCソフトウェア SAS/SPECTRA VIEWソフトウェア SAS/STATソフトウェア SAS/SHAREソ フ ト ウ ェ ア ( *) (*) SAS/SHAREソフトウェアは e x p e r i m e n t a lパージョンです。 ワ I よ ‑1よ

177.

三口三三三 P I C T・・P r o d u c t i o nSASS p l e s hS c r e e n "I D=1 2 8f r o mSAS三三三三三 THE S A S @ S y s t e FOR MACINTO RE L E A S E6.10 • • • • • • I J I l SASI n s t i t u t eI n c . C o p y r i g h t@ 1989‑1995b ySASI n s t i t u t eI n c ., Cary, NC27513, USA, A l lRightsReserwd Macintosh版 SASシステム起動画面 1 7 2一

178.

i4項目 158門B空き 3 6 4 . 9門B使用 C a J I n s t e1 . 1Reed̲Me 置 SystemR e q u irements CD‑ROMの内容 j j i 31 J : 頁目 己 、 主 ,己 SAS 口 口 口 口 口 自 転 白 ssist SASCo汁1PenionFile config.ses610 口 口 口 bese 白 els english iml insight instell QC semple ロ 口 口 口 団 自 OptionEditor ef usege 158門 B空き 364.9門 B使 用 ets 口 口 口 口 口 白 cbt celc fsp leb 口 口 口 dbcs ]epenese SAS610の内容 白 greph lmeges 1eps 口 口 汁 shere spectreview stertup 口 白 connect or stet ワ 1 つ d 1

179.

I nste1Qpti ons: IQuick ・ following oompon.ntswillb.l o o l l d . dby d.f u1t: R.quir.dSASS hr ‑ tupF i l4.'S SAS/GRAPH SASNot.s 寸L SAS/GRAPHImag.F i l . s(Op析。 na1 ) SAS/町 BaS4.' SAS s(Op針。 na1 ) SAS/INSIGHT SAS/GRAPHMapDataS4.'t SAS/AF SAS/ASSIST SAS/LAB SASSyst.mI n s t a l lF i l e s(Op針。 na1 ) SAS/OR SASSamplePrograms( O p t i o n a l ) SAS/CALC SAS/TUTOR SAS/QC SAS/CONNECT SAS/SHARE SAS/EIS SAS/SPECTRAVIEW SAS/ENGL lSH SAS/STAT SASDBCS SAS/ETS SAS/FSP SASJapan.s. Th~ … ; Availabl.d i s kspac.ontarget: ZeroK Selected: 277.5門 B ( キャンセル Select eHecutable type to IOfld: ⑥ PPCend 6oK OPPC ) 06oK Quickインストール画面 InstellQptions: IByFolder ..,て'7 SAS610 J J J J J J J J J J Requir.dSASStartupF i l e s 2.2門 B BaseSAS SAS/AF 42.3門 B 399.8K SAS/ASSIST 7.6門 B SAS/CALC 4.2門 B SAsl TUTOR 17.5門 B SAS/CONNECT 830.6K SAS/EIS 7.6門 B SAS/ENGL lSH 4.8門 B SAS/ETS 8.9門 B Availabled i s kspaceontarget: ;以訂正品一一日同 ZeroK Selected: 277.5門 B い 叶 )K インスト叶 一 ( キャンセル Select eHecuteble type to loed: ⑨ PPCend 6oK OPPC By F0 1der インストール画面 174‑ 06oK )

180.

F 巳 ' ﹂ V Tl T﹄ HU J nu‑‑ J114 R﹁l﹂ す m一⑥一 一 団 容 Error GPUSH‑BUT‑STYLE: Flavors ‑ ‑ 一 一 日 朝 一 悶EEM BuHon F ﹁1﹂ Host 間一明‑ m一個一 町一筈一 │必│ 豆 |霊童劃障室~I ICON‑BUT‑STYLE: ロ ヨ EE芳司・ 墨 田 園 田 ・ ・ ・ B u t t o n 童 書 ( l BuHon I ) Option Editor 画面 口i i i : : ; : : ; ; : i i i i : : i i : : : : : : : : : ; i : : : ; : i i i i i i : i i : i i i i i i i i : i i : : : i i i j i i i i : : i i j j i j j i : : : : : : : : : : : : :… … SAS Host |園 Iml~ ? G u i d e 円円 ︿d ハV. n F ・ 0 Z4 1‑M川 れ 一 M だ ‑L く ‑K で一リ ん ‑4MM一 ﹂ H 連全力七 ・を一和一 目 ‑E EJEFL 項 ‑D 京一 B l‑A トピヲク S 事 桟索 2 .項目を運んで、 O K "乏クリックしてください: 10 ライフラリエンジン J門Pエンヲン 「ー H E Xフォーマット HO門Eコマンド・ I Bインフォーマット IB フォーマ'~ト I N C L U D Eコマンド・ 1 N F IL Eステートメント I N P U Tステートメント 帆刊ステートメント 。 ホストガイド画面 ‑175 固寸 J lSHIKAWAプロシジャ

181.

ツールパー ヘルプシスァム:メインメーユー 乏ニ之管3 里 解説 レポ」卜{生成 グラフ(完成 主型k楕築および・乏ニ之ゑ~lí:主法 主こえゴ斗三ゴー SAS ダ .口」ノ 1 ・ルコマンドー 盟主‑,,‑ ιょと立 盟主ー主詮 ユ」ザョサボ」トサ」ピス ホス卜情報 インフォメ』ションデリ)¥'リシス乏主 索引 (戻否)(終了)(ヘルプ) 「 SASヘルプ画面 1 7 6一

182.

日本 SASユーザー会 (SUGI ‑ J ) SAS/SHARE*NETソ フ ト ウ ェ ア に つ い て 佐藤元昭、石川 亨 SASイ ン ス テ ィ チ ュ ー ト ジ ャ パ ン Lt d . An overview for SAS/SHAREキNET Software Motoaki S a t o .Toru Ishikawa SAS Institute Japan L t d . 田正 多む ヒ ヱ , ド1 新 機 能 SAS/SHAREキNETソ フ ト ウ ェ ア は 、 ODBC対 応 の ア プ リ ケ ー シ ョ ン か ら S ASデ ー タ ライブラリのデータを参照できる機能である。本論文はこの機能について説明する。 キーワード SAS/SHAREキNETソ フ ト ウ ェ ア はじめに 近年、ネットワークの発達と整備により多くの企業や研究機関などでクライアント・ サーバコンビューティング(以下C /Sと 略 ) が 利 用 さ れ 、 様 々 な ア プ リ ケ ー シ ョ ン が 稼 働 されている。 SAS/SHARE州 E Tソ フ ト ウ ェ ア は 、 SASシ ス テ ム 以 外 の ODBCア プ リ ケ ー シ ョ ン から S ASデ ー タ へ ア ク セ ス す る た め の 機 能 を 提 供 す る 。 ク ラ イ ア ン ト 側 が SASシ ス テ ム で あ っ て も 、 そ の 他 の OBCSア プ リ ケ ー シ ョ ン で あ っ て も 、 ア ク セ ス が 可 能 で あ る た め 、 多 くの多様な C /S形 態 を 実 現 で き る よ う に な っ た 。 SAS/SJ lA REキNETソ フ ト ウ ェ ア は 、 サ ー パ 側 の SASシ ス テ ム に SAS/SJ lA REソ フ ト ウ ェ ア と 一 緒l こ イ ン ス ト ー ル さ れ て い る 。 そ し て 、 ク ラ イ ア ン ト 側 の ア プ リ ケ ー シ ョ ン と ODBC規 約 に も と ず い て 、 デ ー タ 交 換 を 行 う 。 ま ず 、 ODBCと S AS/SIIAREソ フ ト ウ ェ ア の 概 略 に つ い て 説明する。 oD B C とは エウノ ン'し v つ v﹂ 品 d フ一よ o タテのる イ換︑で の変とが 通度ると 共一すこ なへ用す うル使渡 よイをけ のア町受 ︑外る一 A ロのすデ 場式生接 う形発直 {打トがで をスル間 換キイン 交テアヨ タのフシ 一通間一 デ共中ケ ででやリ 間方業プ ン双作ア ヨ︑なの シば分方 一れ余双 ケけ︑ず リなどせ プしな生 ア在す発 る存渡が ながけ業 異ス受作 一をな 町 フω を ω部 ︒ 夕 ODBCとは、 Open Database Connectivityの 略 で 、 米 国 Microsoft社 が 提 唱 す る デ ー タ ベ ー ス ・ ア ク セ ス を 目 的 と し た API(Applications P r o g r a r n Interface)で あ る 。 こ の ODBCは SQL言 語 に よ る ア ク セ ス を 基 本 と し て い る た め 、 Microsoft社 の Excelや Visual Basicな ど のパーソナル・コンビュータで稼働するデータベースの標準インタフェースになる可能 性がある。 aA 司 ヴt ヴt

183.

ス タ ン ド ア ロ ー ン で の ODBCサ ポ ー ト Windows版 SASシ ス テ ム リ リ ー ス 6 .1 0か ら ODBCが サ ポ ー ト さ れ た 。 Base SASソ フ ト ウ ェ アには、 SAS ODBCド ラ イ パ が 標 準 で 提 供 さ れ て い る 。 SASシ ス テ ム が イ ン ス ト ー ル さ れ て い る マ シ ン 上 の ODBC対 応 ア プ リ ケ ー シ ョ ン は 、 SAS ODBCド ラ イ パ を 使 っ て 同 じ マ シ ン 上 の SASデ ー タ に ア ク セ ス で き る 。 Onnc‑C o m p l i a l l lA p p l i c a l i o l l ODnc/l[a l l a g e r SASonncd r i v e r BaseSAS(SASD a l a J 図 1 WindowsJ坂SASシ ス テ ム と ODBC 図 1では、 ODBC対 応 ア プ リ ケ ー シ ョ ン が 、 ODBCマ ネ ー ジ ャ 経 由 で SAS ODBCド ラ イ パ を 呼 び出す。 SAS ODBCドライパは、 SASシ ス テ ム を サ ー バ と し デ ー タ を 提 供 す る 。 IAREソ フ ト ウ ェ ア に つ い て 説 明 す る 。 次に、 SAS/S! SAS/SHAREソ フ ト ウ ェ ア と は SAS/S! IAREソ フ ト ウ ェ ア と は 、 複 数 の ユ ー ザ に よ る SASデ ー タ の 更 新 や 参 照 を サ ポ ー ト す る プ ロ ダ ク ト で あ る 。 SASデ ー タ へ の ア ク セ ス は 、 更 新 と 参 照 の 2種 類 が あ る 。 複 数 ユ ー ザ が す べ て 参 照 (Read Onl y )で 同 ー の SASデ ー タ に 同 時 に ア ク セ ス す る の で あ れ ば 、 SAS /SIIAREソ フ ト ウ ェ ア は 必 要 な い 。 し か し 、 複 数 の ユ ー ザ が 同 時 に デ ー タ の 削 除 や 追 加 な どの更新処理を行う場合、レコード単位のロックや解除など高度で複数のデータ制御が 必 要 に な る 。 SAS/SIIAREソ フ ト ウ ェ ア の SASサ ー パ は 、 こ の よ う な 排 他 制 御 の サ ー ビ ス を 提供する。 SASサーパは、 SERVERプ ロ シ ジ ャ に よ っ て 起 動 さ れ 、 OPERATEプ ロ シ ジ ャ で 停 止するまで、一つのセッションとして稼働する。 必要なソフトウェア SAS/SIIARE州 ETソ フ ト ウ ェ ア を 利 用 す る た め に は 、 以 下 の ソ フ ト ウ ェ ア が 必 須 と な る 。 また、 SAS/SIIARE州 ETソ フ ト ウ ェ ア と SAS ODBCド ラ イ パ の 聞 の 通 信 は 、 TCP/IPプ ロ ト コ ル が 使 わ れ て い る の で 、 ロ ー カ ル マ シ ン と リ モ ー ト マ シ ン の 両 方 に 適 切 な TCP/IPパ ッ ケ ー ジが必要である。 ローカルマシン (クライアント) ODBCア プ リ ケ ー シ ョ ン ODBCドライパ? リモートマシン (サーバ) Base SASソ フ ト ウ ェ ア SAS/SIIAREソ フ ト ウ ェ ア SAS/SIIARE宇NETソ フ ト ウ ェ ア ヰ1 * 1 Windwos版 SASシ ス テ ム で は 、 Base SASソ フ ト ウ ェ ア に 付 属 。 ま た は 、 リ モ ー ト マ シ ン 側 の SAS/SIIAREソ フ ト ウ ェ ア に 付 属 。 SAS/SIIAREソ フ ト ウ ェ ア が 必 須 と な る の は 、 ロ ー カ ル 環 境 か ら 参 照 す る SASデ ー タ が SASサ ー パ に 管 理 さ れ て い な け れ ば な ら な い た め で あ る 。 ‑178‑

184.

SAS/SHARE州 ETソ フ ト ウ ェ ア を 使 っ た ソ フ ト ウ ェ ア 構 成 例えば、 リ モ ー ト 環 境 上 の SASデ ー タ を ロ ー カ ル 環 境 の Microsoft社 の Excelな ど か ら ア クセスする場合の各ソフトウェアの関係を示す。 SASISllARE'NET SASISllARE ODnC‑ComplialltA p p l i c αl i o u saseSAS(SASData) (サーバマシン) ODl JC l I f a l l a g e r St 1 .S ODl JC D r i v c r (クライアントマシン) 図 2 C/S環 境 で の SAS/SIIAREソ フ ト ウ ェ ア ODBC対 応 の ア プ リ ケ ー シ ョ ン は 、 ODBCマ ネ ー ジ ャ 経 由 で SAS ODBCド ラ イ パ を 呼 び 出 す o SAS ODBCドライパは、 SAS/SIIARE州 ETソ フ ト ウ ェ ア を デ ー タ ゲ ー ト ウ ェ イ と し て SAS/S HAREソ フ ト ウ ェ ア が 管 理 し て い る SASラ イ ブ ラ リ へ ア ク セ ス す る 。 C/S環 境 の SAS/SHARE州 ET、 SAS/ACCESSソ フ ト ウ ェ ア に つ い て SASシ ス テ ム で は 、 デ ー タ ベ ー ス に ア ク セ ス す る た め の SAS/ACCESSソ フ ト ウ ェ ア 群 が 用 意 さ れ て お り 、 DB2、 ORACLE、 SYBASE、 DEC Rdbな ど さ ま ざ ま な デ ー タ ベ ー ス に 直 接 ア ク セスできる。 SAS/SHARE州 ETソ フ ト ウ ェ ア と SAS/ACCESSソ フ ト ウ ェ ア を 利 用 す る と ロ ー カ ル 環 境 か ら 、 SAS/SHARE州 ETソ フ ト ウ ェ ア を ゲ ー ト ウ ェ イ と し て SAS/ACCESSソ フ ト ウ ェ ア が サ ポ ー ト し ているデータベースにアクセスできる。 (クライアントマシン) (D B) 図 3 SAS/SHARE*NETソ フ ト ウ ェ ア と SAS/ACCESSソ フ ト ウ ェ ア 最後i こ SAS/SIIARE*NETソ フ ト ウ ェ ア は 、 SASシ ス テ ム 以 外 の ア プ リ ケ ー シ ョ ン か ら 初 め て SASデ ー タ へ ア ク セ ス で き る よ う に な っ た 重 要 な ソ フ ト ウ ェ ア で あ る 。 し か し 、 C/S環 境 を 支 援 す る た め の ソ フ ト ウ ェ ア と し て 、 SAS/CONNECTソ フ ト ウ ェ ア も 存 在 す る 。 こ れ ら の 特 徴 を 十 分 に 理 解 し 、 ど の よ う な C/S形 態 を 構 築 す る か な ど に よ っ て 使 い 分 け る 必 要 が あ る 。 ま こるネットワークの負担なども重要なポイント た、 C/Sア プ リ ケ ー シ ョ ン で 扱 う デ ー タ 量 i である。具体的には、目的に応じて、ファイル転送、データ処理の協調分散、レコード 単 位 で の デ ー タ ア ク セ ス な ど で 使 い 分 け る こ と が 必 要 で あ る 。 SAS/CONNECTソ フ ト ウ ェ ア は 、 ク ラ イ ア ン ト 側 に も SASシ ス テ ム を 必 要 と す る が 、 分 散 処 理 形 態 を サ ポ ー ト し 、 複 数 のプロトコルによる複数リンクの同時確率もサポートしている。 1 7 9一

185.

OBOCを サ ポ ー ト す る SAS/SHARE州 ETソ フ ト ウ ェ ア は 、 SQLベ ー ス で フ ァ イ ル 転 送 を 行 い 、 リモートデータへのアクセスのみをサポートする。クライアント側にS ASシ ス テ ム が 導 入 さ れ て い な く て も SASデ ー タ に ア ク セ ス で き る の で 、 処 理 目 的 を 限 定 し た C /Sア プ リ ケ ー ション構築となるであろう。 参考マニュアル SAS/SUARE Software:Usage & Reference V 61 s t EO SAS OOBC Oriver Technical Report U s e r 's Guide and P r o g r a r n r n e r 's Reference Release 6.10 ‑180‑

186.

日本 5A5ユーザー会 ( 5UGト..J) W i n d o w s 版S A Sシ ス テ ム リ リ ー ス6 .1 0 のG U I 7' 7 ) I ケ ー シ ョ ンl こ 関 す る 拡 張 点 石井由美子 株式会社 SASインスティチュートジャパン技術本部テクニカルサポートセクション E n h a n c e m e n t so ft h eS A SS y s t e mR e l e a s e6 . 1 0f o rW I N D O W S s h ii Y u m ik o1 T e c h n i c a lS u p p o r tS e c t i o n . T e c h n i c a lD i v i s i o n .S A SI n s t i t u t eJ a p a nL T D . 要旨 W i n d o w s版 SASシステムリリース 6 .1 0のさまざまな拡張点の中でも AFアプリケーシ ョンの開発や実行時に役立つ機能をとりあげて説明する。 キーワード: W i n d o w s .R e l e a s e6 . 1 0 .A F 1 .は じ め に W i n d o w s版 SASシステムリリース 6 .1 0のルック&フィールは、従来より W i n d o w s環境への親和性を 高め、より W i n d o w sアプリケーションらしくなった。これに伴い、 SAS/AFソフトウェアで開発し たアプリケーションをより W i n d o w sアプリケーションらしくするための各種機能も追加されている。 本論文では、 AFアプリケーションを制御するための新しいオプションやコマンド、関数などを紹介 する。 2 .拡 張 点 2 .1AF7 7'~ケーションの日動実行 リリース 6 .1 0では SAS起動時に AFアプリケーションを実行するシステムオプションの I N I T C M Dが追加された。これは、ディスフレイマネージャのP r o g r a mE d i t o r . L O G . O U T P U Tウイン ドウを表示することなく、 AFアプリケーションを実行するためのオプションである。 書式:一 I N I T C M D" a f ‑ c o m m a n d ;くD M ‑ c o m m a n d1. . .D M ‑ c o m m a n d ‑ n > " ① ② ① AFアプリケーションの起動コマンド C A S S I S T . E I S . L A Bなどの、 AFで作られているプロダクトの 起動コマンドを含む) ②任意のディスプレイマネージャコマンド 使用例: C : Y S A S 6 1 0 Y S A S‑ I N I T C 即 > > A FC = M Y LI B .M Y C A T .M E N U .F R A M E " ム 吋l ム 吋l ︒ 口

187.
[beta]
2
.
2 AWS(7i~ ケーションワークスペース)の制御

リリース 6
.1
0では AWSを制御する以下のオプションがサポートされている。
(一部リリース 6
.0
8からの機能)

・

.AWSのタイトルパーに表示するテキストを指定する
AWSメニューの表示をするかどうかの指定
.SASシステムの LOGOを表示するかどうかの指定
.タイトルパ一、システムメニュー、最小化ボタンなどを
表示するかどうかの指定
.AWSウインドウの表示位置と大きさの指定
.AWSメニューパーに Windows版固有のメニュ一項目を
追加するかどうかの指定
.SASセッション終了時i
こW
i
n
d
o
w
sセッションを終了する
SASアプリケーションウインドウから、システム市j
御
メニューおよび最小化、最大化ボタンを取り除く
.SASシステム起動時に AWSをアイコン化する
.SASの『ファイル』メニューにf
也のW
i
n
d
o
w
sフ。ログラム
を起動する項目を追加する

・

AWSTITLE
AWSMENU
L
O
G
O
AWSCONTROL
AWSDEF
AWSMENU肥 RGE
EXITWINDOWS
SASCONTROL
!
c
測
REGISTER

2
.3カスタムツールパーの作成とロード
アプリケーションに合わせたツールパーを作成することにより、アプリケーションの操作性を
上げることができる。
.ツールの作成と保存、使用
①ツールエディタを使ってツールを編集する。
②T
o
o
lE
d
i
t
o
rダイアログボックスで〔新規保存〕を選択、保存先のライブラリ参照名、
カタログ名、エントリ名を指定する。
③保存したツールをアプリケーションで使用するにはTOOLLOADディスプレイマネージャコ
マンドを使用する。

書式:TOOLLOADくBAR!BOX> <1
i
b
r
e
f
.
c
a
t
a
l
o
g
.e
n
t
r
y
>
① ②
①ツールパ一、ツールボックスの別
②ツールを保存するライブラリ参照名、カタログ名、エントリ名
使用例:TOOLLOADB
A
RS
A
S
A
P
P
.M
Y
T
O
O
L
S
‑使用例
SASAPP.SASCATカタログのA
.
F
R
A
M
EとB
.
F
R
A
M
Eで別のツールパーを使用する
①ツールエディタを使用し A
.F
R
A
M
E
用のツールパーを作成する。
〔新規保存〕を選択し、 S
A
S
A
P
P
.
S
A
S
C
A
T
.T
O
O
L
̲
Aに保存する。
②ツールエディタを使用し B
.F
R
A
M
E
用のツールパーを作成する。
〔新規保存〕を選択し、 S
A
S
A
P
P
.S
A
S
C
A
T
.T
O
O
L
̲
Bに保存する。
③A.FRAMEのS
O
U
R
C
EエントリにT
O
O
L
̲
Aをロードするコマンドを記述する。
I
N
I
T
:
C
A
L
LE
X
E
C
C
M
D
(
'
T
O
O
L
L
O
A
DB
A
RS
A
S
A
P
P
.
S
A
S
C
A
T
.T
O
O
L
̲
A
'
)
;
R
E
T
U
R
N
;
④B
.F
R
A
M
EのS
O
U
R
C
EエントリにT
O
O
LBをロードするコマンドを記述する。
I
N
I
T
:
TOOLLOADB
A
RS
A
S
A
P
P
.
S
A
S
C
A
T
.T
O
O
L
̲
B
'
)
;
C
A
L
LE
X
E
C
C
M
D
(・
R
E
T
U
R
N
;

1
8
2一

188.

2 . 4 オンうインヘルプの利用 リリース 6 .1 0では M i c r o s o f tW i n d o w sA p p l i c a t i o nヘルフにアクセスするための関数W I N! IE L P関 数が追加されている。 i c r o s o f tW i n d o w sのW I N H E L P . E X Eプログラムを実行する。 この関数は M これにより、既存の W i n H e l pファイルや独自に作成した W i n H e l pファイルにアクセスできる。 書式: W I N H E L P ( " h e l p ‑ m e t h o d . .," h e l p ‑ m e t h o d p a r m 1 "," h e l p ‑ m e t h o d p a r m 2 ) ① ② ③ ①ヘルプ方式 ②パラメータ 1 ③パラメータ 2 使用例: C 使い方〕ヘルプファイルにあるメインの C O N T E N T Sトピックを表示する。 O B 1 1: C :i 'S A Si 'C O R Ei 'W I N H E L Pi 'S A S H O W T O . H L P " ) ; M S G = W IN H E L P( " H E L P ̲ C O N T E N T S "," R E T U R N ; 2 . 5S A Sシステムのサブセット版作成 Windows版リリース 6 .1 0では、必要なファイルだけを抽出した SASシステムのサブセット版 を作成するための自動マクロ∞ P Y S A Sがサポートされている。あるマシンで特定のアプリケー ションだけを実行するような場合にこの機能を利用すると、ディスク容量を節約できる。 ‑手順 ①システムオプションの R T R A C EおよびR T R A C E L O Cを指定して SASシステムを起動する。 例) C :' iS A S 6 1 0i 'S A S‑ R T R A C EA L L‑ R T R A C E L O CA :i 'R T R A C E . L O G ②アプリケーションで実行する予定の処理を行う。 そのときに使用された SASシステムのファイルの情報がR T R A C E L O Cオプションで指定し たファイルに書き出される。 .RTRACELOCオプションで指定したファイルの内容例 F i l eo p e n e d : C :i 'S A S 6 1 0' is a s .e x e F i l eo p e n e d : C :i 'S A S 6 1 0' iC O N F I G . S A S F i l ec l o s e d : C :i 'S A S 6 1 0i 'C O N F I G . S A S : C :i 'S A S 6 1 0i 'd b c si 's a s d l li 'S A S H O S T .D L L F i l eo p巴n巴d F i l eo p e n e d : C :i 'S A S 6 1 0i 'd b c s' is a s d l l' iS A S V W U . D L L F i l eo p e n e d : C :i 'S A S 6 1 0i 'd b c si 's a s d l l' iS A S V I C O N . D L L 'S A S 6 1 0i 'd b c s' is a s d l l' iS A S V R E S J .D L L F i l eo p e n e d : C :i F i l eo p e n e d : C :i 'S A S 6 1 0i 'd b c si 's a s d l li 'S A S V B M P .D L L F i l eo p e n e d : C :i 'S A S 6 1 0i 'd b c s' is a s d l li 'S A B X K R N .D L L 'S A S 6 1 0i 'd b c si 's a s d l li 'S A B E B .D L L F i l eo p e n e d : C :i F i l eo p e n e d : C :i 'S A S 6 1 0i 'd b c s' is a s e x e' iS A B X I N I .D L L ③ SASセッションを終了する。 1 8 3 ‑

189.

④再度 SASシステムを起動し、∞ P Y S A S自動マクロを実行する。 このマクロは R T R A C Eオプションの指定により作成されたログファイルから、サブセットを 作成するための DOSのパッチプログラムを生成する。 書式: %∞ PYSAS(旦盟主L 旦旦竺担~,旦旦立,旦斗旦並2・些旦旦; ① ② ③ ④ ⑤ ①サブセット版の S A S R O O Tディレクトリ ②R T R A C EとR T R A C E L O Cオプションにより作成されたログファイル ③サブセット版作成時に使用する C O P Yコマンド(デフォルト値は C O P Y / V ) ④パッチプログラムの出力先(デフォルト値は ! S A S R O O T Y S A S U S E R Y C O P Y S A S . B A T ) ⑤サブセット版作成時に使用する D O Sのテ企イレクトリを作成するコマンド (デフォルト値は M K D I R ) 使用例: % C O P Y S A S ( C : Y S U B S A S,A : Y R T R A C E . L O G ) ; .COPYSASマクロにより作成されたノぜッチプログラム例 略 r e mC O P Y C M Di sy o u rf a v o r i t ec o p yc o m m a n da n do p t i o n s . r e mT A R G D I Ri st h ed i r e c t o r yy o uw a n tt oc o p yf i l e st o . r e mM K D I R C M Di sy o u rf a v o r i t em a k ed i r e c t o r yc o m m a n da n do p t i o n s . S E TC O P Y C M D = C O P Y/ V S E TT A R G D I R = c : Y s u b s a s S E TM K D I R C M D = M K D I R r e mMake t h et a r g e td i r e c t o r i e s . % M K D I R C M D %c : Y s u b s a s r e mMake t h es u b d i r e c t o r i e su n d e rt a r g e td i r e c t o r yt oc o p yf i l e st o . % M K D I R C M D %% T A R G D I R % Y C O R E % M K D I R C M D %% T A R G D I R % Y C O R E Y S A S E X E 耳 目T A R G D I R % Y C O R E Y S A S M S G % M K D I R C M D % M K D I R C M D 耳 目T A R G D 1R % Y D B C S Y S A S E X E % M K D I R C M D %% T A R G D I R % Y G R A P H 略 r e mC o p yt h ef i l e s % C O P Y C M D %C : Y S A S 6 1 0 Y C O N F I G . S A S% T A R G D I R % Y . % C O P Y C M D %C : Y S A S 6 1 0 Y C O R E Y S A S E X E Y S A S X D T U .D L L% T A R G D I R % Y C O R E Y S A S E X E Y . % C O P Y C M D %C : Y S A S 6 1 0 Y C O R E Y S A S E X E Y S A S V S U B .D L L% T A R G D I R % Y C O R E Y S A S E X E Y . % C O P Y C M D %C : Y S A S 6 1 0 Y C O R E Y S A S E X E Y S A S V T R E .D L L% T A R G D I R % Y C O R E Y S A S E X E Y . % C O P Y C M D %C : Y S A S 6 1 0 Y C O R E Y S A S E X E Y S A S V M T H .D L L% T A R G D I R % Y C O R E Y S A S E X E Y . 略 ⑤ COPYSASマクロにより作成されたノてッチプログラムを実行する。 I J : C :Y S A S6 1 0 Y S A S U S E R Y C O P Y S A S .B A T { 7 参考文献 .1 0における変更点と拡張点 1 . S A ST e c h n i c a lR e p o r tE ‑ 1 0 1 JV V i n d o w s版 SASシステムリリース 6 2 . S A ST e c h n i c a lR e p o r tE ‑ 1 0 0 J SA Sシステムリリース 6 .1 0における変更点と拡張点 184‑

190.

日本 5A5ユーザー会 (5U G卜 J ) SAS/AFソフトウェア、 SAS/FSPソフト ウェアでイメージデータを利用する 長谷川浩司 SASインスティチュートジャパン UsingImagewithSAS/AFSoftwareandSAS/FSPSoftware K o j iHasegawa SASI n s t i t u t eJapanL t d . EducationS e c t i o n 1・1 3 ‑ 1KachidokiChuo・kuTokyo 要旨 SASシステムリリース 6.10でイメージデータがサポートされた(一部の機能はベータ版 である)。そこで SAS/AFソフトウェア、 SAS/FSPソフトウェアでイメージデータ を利用する簡単なサンプルを紹介する。 キーワード: SAS シ ス テ ム リ リ ー ス6.10、SAS/AFソ7ト ウ ェ ア 、 SAS/FSPソ7ト ウ ェ ア SASシステムでイメージデータが使用可能なプロダクトは以下の通りである。 .SAS/GRAPHソフトウェア .SAS/AFソフトウェア .SAS/FSPソフトウェア .SAS/EISソフトウェア 本稿では、このなかの SAS/AFソフトウェア、 SAS/FSPソフトウェアについて 紹介する。 1 8 5一

191.

1: (FRAMEエントリ)イメージオブジェクトの利用 FRAMEエントリでイメージオブジ、ェクトを利用するには、 BUILDプロシジャを起動し、 「リージョンの作成」から「イメージ」を選択する。 リージョン テキスト入力 テキストラベル チェッフポッフス リストボッフス ラジオポッフス 拡張テーブル アイコン ブロッフ ブッシュポヲン コントロール スライヲー スフロールパー クラフテキス卜 S A S / G R A P H出力 C S F (フリテイカルサフセスファフヲ) C口吋 a i n e rB o x ホットスポット フ 例えばWindowsのピットマップファイルを張り込みたければ、タイプは物理ファイルの ままにして、ファイルパスのフィールドに、 BMPファイルの名前をフルパスで入力すればよい。 ‑186‑

192.

以下の画面は、イメージデータを張り込んだところである。 もちろん、枠をクリックして、イメージの縮小拡大が可能だし、オフ'ジェクト属性の「縦横比を 維持する Jをチェックしておけば、オリジナルの縦横比そのままで、縮小拡大が出来る。 イメージオブジェクトは、アイコンやプッシュボタンと同様に、処理項目を選択するときのボタ ンとして使用できる。その際、リージョンション属性を立体的にしておくとよい。 imgl ca 1 ← イメージオフ ジェクトのオフ事ジェクト名 e disp[ay(呼び出したいエントリ名) return , 1 8 7 ←

193.

2 :選択された BMPファイルを画面に表示する 例えば、選択された BMPファイルを画面に表示するアプリケーションを組んでみよう。ファイ ル名の表示は「リストボックス」、イメージデータの表示は「イメージ」を使用する。 議 家 機 ファイル任) ビュ一位) アクション(且) ローカル(L) グロー 1 1 ;レ(♀) オブション(Ql ウインドウ[ぜ) │ 欝 ~-~~- ヘルブl!:il 【 1 ' . ' ‑ 己 三 ‑ 存 7一 一 一 一 一 回 ; IWin蜘 日 閉 刊 し I ̲OO滋対桝械 i 画面左に「リストボックス」を、右に「イメージ」を配置した。 ‑リストボ ックス オブジェクト名 :LBOX タイトル :WindowsBMPファイル 項目のタイプ :SCLリスト(リスト名 ‑イメージ オブジェクト名: 1M AGE タイプ :指定なし ‑188一 f1ist ) r 一醸犠

194.

.SCLのソースリスト l e n g t hfname$30; mI t : f l i s t二 makelistO; ① r c=五l e n a m e ( ' d i r ', ' c :¥sas610 ¥bmpdat'); d i r i d=d o p e n ( ' d i r ' ); ② r e p=dnum(dirid); or e p; doi=1t r e a d ( d i r i d, i ); ③ f i l e n=d r c=i n s e r t c ( f l i s t, f i l e n, ‑ 1 ); end; r c=d c l o s e ( d i r i d ); c a l ln o t i f y ( γ ,'̲GET̲WIDGET̲','IMAGE',i m g i d ) ; ④ r e t u r n ; maln: return; t e r m : r e t u r n ; l b o x : t e x t l i s t=g e t i t e m l( l box, 1 ); f 1=g e t i t e m c ( t e x t l i s t, 1 ); ⑤ fname=' c :¥sas610 ¥bmpdat , ¥ I Il e f t ( f 1 ); ⑤ imgpath=lnamemk(1 ,fname); ⑥ r c=s e t n i t e m c (imgid,imgpath,' ̲ VALUE̲');⑦ c a l ln o t i f y ('IMAGE',' ̲ u p d a t e ̲ ') ; ⑧ return; ① SCLリストの定義(リストボックスで参照する f Iis t )。 ② BMPファイルの保存されたディレクトリをオープンする。 ①ファイル名を取得し、 SCLリスト(f list) に格納する。従って、 対応しているリストボックスにはファイル名の一覧が表示される。 ④ウィジット 1Dの取得 ⑤選択されたファイル名の取得と、完全なファイルパスの生成。 ⑥イメージデータのリード/ライトのためのイメージパスを設定。 ⑦オブジェクト 1Dとイメージ パスのリンク ③イメージの更新 ‑189

195.

1N 1Tセクションが実行されたときの画面(① ④) W in d o w sBM P7 1イJ~ H T N A 256. BW , f Bc a .a.BW 1 PUPPY.BW TI0lS00l.BW T152S086.BW T176S167.BW T195S232.BW W1 N L f f i O .BW WINVGA.BW 胤C . Bf . f l B A L L . B M P a .OR.BMP 2 5 6 C OELL2.BW 麹釜i 伊 織 宅 主 将 将 司2 予I 釜 リストボックスからファイル名を選択(⑤ ⑧) W in d o w sBMP71イ ル I B 舵 a .a 臥f' PUPPY.BW TI01S001.BW T1 5 2 S 0 8 6. BW T176S167.BW T 19 5 S 2 3 2 .BW W I N L凹 O . BM' WINVGA.BW MAC.BW 札 L.BW B 2 5 6 ca .a.BW DELL2.BW 刻 、 l : 1 i } i ' : " ' : " " : 九ゆ ‑190‑

196.

イメージパスの設定 path‑string= lnamemk(type , s t r i n g l , string2 , a t t r i b u t e s ) 第 l引数である、 t YPeはイメージデータをどういう形式で参照するかの指定である。 1 物理ファイル名 2 :ディレクトリ&ファイル名 3:ファイル参照名 4 ファイル参照名(ディレクトリ)&ファイル名 5:SASカタログ 例題では、物理ファイル名をそのまま使用しているため i1Jを指定している。 第 2引数以降は、第 l引数によって指定がかわる。また、引数は定数でも変数でも かまわない。以下の例は両方とも同じ意味である。 path= ( l' , c :¥sas610¥sample.bmp'); ' c :¥sas610 ¥sample.bmp'; fname= l, f name); path=( ‑サポートする Graphics データフォーマット • BM P ‑Bi t m a p .WMF ‑Windows Metafile(Windows のみ) ・ M E T ‑Metafile(OS/2のみ) • PBM ‑X W i n d o w s フォーマット ・ G 1F ‑ Co m p uSe r v e g 1m a g e Fi 1 e フォーマット • T 1F ‑Ta .PCX‑PC ペイントブラシ .XBM ‑XWindowB i t m a p s .XWD ‑XWindowD u m p .SASカタログ 1 9 1

197.

3:SAS/FSPでのイメージデータの利用 fram eエントリと違い、 SAS/FSPのスクリーンはイメージをオフ ジェクトとして張り e 込むことは出来ない。したがって、 SASデータセットのデータとイメージを合成する場合は SC Lで制御する。その例を以下に示す。 SASデータセット I su g i . imagedatJ OBS FILE LOCATION TYPE 1 puppy.bmp ¥s as610 ¥bmpdat ¥ c : FILE 2 tlOlsOOl .bmp c :¥sas610 ¥bmpdat ¥ FILE 3 balLbmp c : ¥s as610 ¥bmpdat ¥ FILE 4 winvga.bmp c : ¥s as610 ¥bmpdat ¥ FILE 5 winlogo.bmp ¥s as610 ¥bmpdat ¥ c : FILE 6 ibmcolor.bmp ¥s as610 ¥bmpdat ¥ c : FILE 7 hana256.bmp c : ¥s as610¥bmpdat ¥ FILE FSEDITプロシジャを起動しスクリーンの編集モードに入る。 imagedatscreen=sugi. imgsamp. imgview; procfsedit data=sugi. run; F I L E : tuPP¥ 人b r r p ∞ T I C N : c:~sas6 1O事brrpdat~ L A T Y P E : F I L E 1 9 2

198.

ディレク卜リ. ファイル名 : ・ ・ ・ ・ ・ ・ ・ 圃 ・ ・ ファイル形式・置園圏直 ‑イメージを表示する領域を考慮し、フィールドを左上に移動した。 ‑イメージ領域の定義は SCLで行う g i d = p i c o p e n ( l ) ; image=lnamemk(2, locat i o n, f i l e ) ; r i d = p i c f i l l ( g i d, "IMAGE " . 6. 46 . 2 3 . 9 Q, i m a g e ) ; rc=pi c c l o s e( g i d ) ; 46 ←一一 表示領域の設定 一 一 一 一 一 一 → 90 23 6 1 9 3

199.

SCLフ。ログラム f 列 f s e i n i t : g i d = p i c o p e n ( l ) ; ; r i d二 0 c o n t r o lt e r m ; r e t u r n ; i n i t : 一二 " Images t a r t u pe r r o r " ; r e t u r n ; e n d ; i f( g i d = O )thend o ; ̲msg i f( l o c a t i o nne"andf i l ene" )thend o ; s e l e c t ( u p c a s e ( t y p e ) ) ; when('CATALOG')d o ; c a t = l o c a t i o nI 1 " . "II f i l e ; image=lnamemk(5, c a t, 'FORMA T=C A T ' ) ; e n d ; when('FILE')d o ; image=lnamemk(2, l o c at i o n, f i l e ) ; e n d ; when('DIRREF')d o ; lo c a t i o n, f i l e ) ; e n d ; image=lnamemk( 4, when('FILEREF')d o ; i f( f i l e=" )thenimage=lnamemk(3, l o c a t i o n ) ; e l s eimage=lnamemk(3五l e ) ; e n d ; otherwised o ; l o c a t i o n, f i l e ) ; image=lnamemk(2, e n d ; e n d ; r i d = p i c f i l l ( g i d, "IMAGE", 6, 46, 23, 90, i m a g e ) ; e n d ; r e t u r n ; mam: r e t u r n ; t e r m : i f( r i dne0andg i dne0 )then r c = p i c d e l e t e ( g i d, r i d ) ; r i d=0 ; r e t u r n ; f s e t e r m : i f( g i dne0 )then r c = p i c c l o s e ( g i d ) ; r c +1 ; r e t u r n ; n w u Tム A‑

200.

FSEDITの画面 問問間書圃・・・・・ ディレクトソ: 園 田 閤 薗D ファイル名 : 圃 園 田 圃 凪 ファイル形式画彊・ つまり、 SASデータセットのある変数に、イメージデータのファイル名やエントリ名 ( SA Sカタログの場合)をもたせ、それを SCLで取得して、該当するイメージデータを画面にリン クしているだけである。 例題では、ファイル名をデータとして表示しているが、非表示にしてもかまわない。 1 9 5

201.

4 :イメージデータを S A Sカタログにコンパートする イメージデータはそのままでも利用可能だが、 SASカタログにした方が管理がやりやすい。ま た、コンパートのためのツールも用意されている(グローパル→データ管理→イメージの読み込み)。 1 9 6 ‑

202.

メニュー画面に必要項目を入力し、読み込みボタンをクリックするだけである。なお、 SASカ タログにコンパートするとオリジナルのデータより、容量が少なくなる。デスクスペースの削減の 点からいえば SASカタログへコンパートする方が良い。 なお、以下の画面は SASカタログにコンパートした後、イメージエディタを起動(グローパル →プレゼンテーション→イメージ編集)し、イメージを回転させたものである。 1 9 7

203.

まとめ SASシステムでイメージデータが処理できることによってアプリケーション開発の幅がますま す広がってきた。特に Windows環境では、ビデオや写真をピットマップファイルに変換でき るツールが安価で、提供されている。これによって、顔写真入りの人事情報管理システムや、商品管 理システムが簡単に構築できるようになるだろう。 なお、リリース 6 .10でベータ版である、 r 「イメージの読み込み J イメージの書き出し Jはリ リース 6 .11で正式サポートされる予定である。 ThankYOU! 参考文献 SAST e c h n i c a lReportP‑263 ImageExtensionst oSAS/GRAPHSoftware SASSoftware ChangeandEnhancements nud a u l

204.

日本 5A5ユーザー会 (5U G卜 J) SAS/GRAPH GMAPプロシジャを用いたテ、ザ、インの作成 0山下敏治宮里盛幸 日本ノレセノレ杉岡会社研究開発本部鰯庁課 GMAPP r o c e d u r ef o rP i c t u r eD e s i g n i n g Y a m a s h it a,1 . , 円i y a s a t o,M . B i o m e t r i c s,R e s e a r c h&D e v e l o p m e n tD i v i s i o n N i p p o nR o u s s e lC o .,L t d, T o k y o ( 1 9 9 5 ) 要旨 GMAP プロシジャは主に地図データの視覚化として効知'-J l~1j用されるが、ここ ではこのプロシジャで、ビジュアノレなデ ザインを描くことを目的として、そのために必要な 技法・手順を簡単に述べる。 C G、 3Dあるいは画像処理のような高度な表現・技術は他 のソフトに譲るとして、 SAS版お絵かき入門編とみて頂きたい。基本的な図形・オブジ エの作成方法、 1次変換の処理の仕方、色の調整とその応用(グラデーション処理)につ いて述べる。また充分とはし、かないまでも、 SAS/AFを用いた動画処理へのアフ。ロー チも試みる。 キーワード: GMAPプロシジャ、 2次元デー夕、デザイン化 1.はじめに GMAPプロシジャを用いてビジュアノレなオブpジェを作目たするには、オブジェのフォルム を座標化して、ベクトノレ形式で、処理する方法とヒ、、ットマッフ。の考え方を利用して{結党する 方法の 2通りが考えられる。前者は仕上がりが滑らか、正確であるが、数式への依存度が 高い。後者は数式に依存しない場合にも対応でき、木目の細かいマチエール等の表現が可 能であるが、データ量が膨大に増えて重くなる。いずれの方法においても、 GMAPプロ シジャで、は基本的にオブジェのフオノレムキ配置を 2次元の!謝祭データとして、 2次元ベク トル空間内で、処理する。本プロシジャは、①座探配置が直感的にわかりやすい、つまりキ ャンパスでいえばオブジェ全体の構図、コンポーネントがイメージしやすい、②データの 出現1 ) 慎に表現されていく、つまり描く!関芋を想定しやすく、色抜き・重ね塗り・立体処理 などの様々な工夫が容易である、③データの変換が容易である、つまりオブpジェのフオノレ ムキ配置を簡単に加工できる、などの特徴を持つ。以下、オブジェのフオノレムを座標化し て、ベクトノ叶彰式で、処理する方法を中心に述べる。 199‑

205.

2 . GMAPプロシジャの構文 p r o cg m a pm a p=m a p ‑ d a t a ‑ s e t d a t a=r e s p o n s e ‑ d a t a ‑ s e t; i d id‑variable; ! c h o r o r e s p o n s e ‑ v a r i a b l eId i s c r e t en o l e g e n d ; GMAPプロシジャには 2つのデータセットが必要である。 1つはオブジェのフォルム を表す座標値の集まり。もう 1つはオブジェの色調の情報。ともに両方のデータセットを 関係づける情報 ( id変数)を必要とする。前者をマッフ。データセットと呼び、 id変数 と輪郭を表す座標値 (x,y) の 3変数から成る。後者を応答データセットと呼んでいる が、こちらは id変数と応答変数の 2変数から成る。オブジェの色の種類やペイントパタ ーンを指定するにはこの応答変数を介して、 patternステートメントを利用する仕 組みになっている。 2次元データから成るオブジェの内部を塗りつぶす機能(ペイント機 能)が必要なので、そのために ch0 r0 ステートメントを利用する。 3 . 基本的なオフ、ジェの作成方法 (1) 多角形 P 4 (α‑l, b+l ) , b+l ) P3(α+l P2(α, b+l ) P1(α+l , b ) P3( G ' α (, b ) P1(α‑l, b‑l) P2(α+l , b‑l) P4(α, b‑l) 中心 C ( α, b ) 基本サイズ lの多角形(ここでは正方形)を作成する場合は、上図のよう に各点を座標化し、 P1→ P2→ 九 → P1→ P1 と順次つないでいくと得られる。 (2) 円(楕円) P i : ( ; ; ) = ( ; ) + ( ; ; ; 2 2 ) i=0, 1, 2, 3, . . . . , 360 2 0 0一

206.

中心 C(α, b ) 、 xi J I i l 方向の半径 l1 、 y軸方向の半径 l2 の楕円は、中心点回りの角度を 8 i ( ラジアン)とした円周上の点 R を順次つないでいくと得られる。ここで円の場合は l 1= l 2。極座標形式で星を描いてみる。中心 C(α, b ) 、外円の半径を r 1、内円の半径を r2 とすると、 2点 Pi1 および Pi2 を対として Pi1 山 べ R 1 九 ん 川 叫 川 吋 ι ι ι ; 2 : : : ι ι ι ( G c G ベ じ 川 ぷ 九 ん R 2: 順次 Pll→ P12→ P21→ P22→ … → PS1→ PS2 とつないでいくと上図の星が得られる。ち 1)の右図の場合も、この極座標を用し、て θ・=旦丘二i , 4 ) とす なみに ( 3 L 7、(i=1, 2, 1 8 0 ることで表現可能である。 円 4 . オブジェの 1次変換 (~:) =(~ ;)(~)ー(~) =(~ ~)(~:) a ', b ' )を逆変換により、予 以下の 1次変換は原点回りで行われるので、変換された c '( a, b ) に戻しておく。(ただし p s ‑ q r手 1) め元の位置 C( (~:) =示0/(二 ~q)(~) 一(~) = (日)(~:) r l J ・ 原 点 会j 称 (1)拡大・縮小、平行四辺7 間 七 、 x軸・ y車 X 軸方向に p倍 、 y軸方向に s倍 ( p > O, s > O ) q r手1) 平行四辺形化 ( X 車rlJ対称 (x 軸反転)、 ・ . ̲ y 軸:t朋~ (y軸反転) ( 7 1 ) ( l i ) .企圃 ̲ . . . 圃 畠 血 (71) 原点対柄、 畠 1 :1 (~ ~) ) (~ i 3:4 (4~3 ~) ‑201‑ 6 9:1 9~) t 6 1 (

207.

(2) 回転 ラジアン)とすると 回転の角度を e( 右の例は、中心 C( a, b )、半径1 1 (x軸方向)、 ( c o s θ ‑ s l n θ 1 ¥sinθcosθ/ 1 2 (y軸方向)の楕円 E を 中 ' L . ' 、 点 Cを中心に角度。 (ラジアン)だけ回転させたもの。楕円 E l 'を得る。 d a t ad 1 ; 14 1 5 9 2 6 5 ; p a i = 3. ニ1 ;a = 0 . 5 ;b = 0 . 5 ;1 1 = 0 . 6 ;1 2 = 0 . 3 ; i d t h e t a = 3 0 ; ニ (t h et a / 1 8 0 ) 叩a i ; s s p = c o s ( s s ) ;q = ‑ s i n ( s s ) ; ニs i n( s s ) ;s =c o s( s s ); r 1 i n ke 1 1i p s e ; r e t u r n ; e 1 1 i p s e : 1 i n kt r a n s ̲ a b ; x = . ;y = . ;o u t p u t ; d oi = Ot o3 6 0b y3 . 0 ; o s( ( i !1 8 0 )叩 ai ); x = a +1 1牢c y = b + 1 2 * s i n ( ( i / 1 8 0 )叩 a i ); 1 i n kt r a n s : o u t p u t ; e n d ; r e t u r n ; t r a n sa b : d e t = p * s ‑ q 牢r ; l I d e t )牢 (s * a ‑ q 油); a a =( b b =C 1/ d e t )*( ‑ r * a + p * b ); a = a a ;b = b b ;r e t u r n ; t r a n s : 牢y ; x x = p * x + q ; y y = r * x + s本y Xニ x x ;y = y y ;r e t u r n ; d a t ad 2 ; d oi = lt o6 ; i d = i ;c o 1 = i ;o u t p u t ;e n d ; ニe m p t yc = c x O O O O O Or = 6 ; p a t t e r n 1v p r o cg m a pm a p = d 1d a t a = d 2 ; i di d ; c h o r oc o 1/d i s c r e t en o 1 e g e n d ; r u n ;q u it ; (3) 鏡映 2次元ベクトノL 空 間 E2 の固定されたベクトノレ p=(u , v )から生成される部分空間に原点 ( x, y )を X '( x ', y ' )に鏡映さ を通って直交するベクトル空間に関して、オブジェ上の点 X せるには、 ,‑‑‑‑‑‑‑‑,‑,.,rL,‑‑‑‑(4一一 p=( u, v ) (~:) = (~)一等ず(~) x': ただし、 ( A, B ) はベクトノレA とベクトノレB の内積を表す。右の例はオブジェ Oを、固定さ れたベクトル p=(u, v )に対して、原点を通る法線ベクトル戸 =( ‑ v,u )に関して女王用化 ' を得る。直交座標系 x y q ! ! l 1 をtanθ = vjuだけ傾けた座標系 したもので、オブpジェ 0 ( p一戸)軸で戸軸に関して対称である。 5 . 色の調整 (1)色の種類とペイントパターンの制御 2 0 2一

208.

patternn c=b1ue v=s0 1id; (n:1"‑'255) patternステートメントを用いて、上記のように指定する。オブジェの id変数を、 仮に 3とすると対応する色調は pattern3となる。 ( 2 ) カラーコード RGB、HLS、グレイスケーノレおよびダイレクトの 4つが用意されている。指定方法は 下記のとおり。 RGB: HLS: グレイスケーノレ: ダイレクト c=cxrrggbb c=hhhhllss c=grayll c=c0 1o‑r‑‑nam e RGBコードt : t 赤 ( rr ) 、緑 ( gg ) 、青 ( bb ) を組み合わせることにより、色相 を生月たずる。各色加のコードは 0"‑'255を 16進数 2桁で言己主する。 o (00) は晴、 255 (ff)は明となる。 HLSコードは色相 (hhh) 、明度(l 1 ) 、 彩 度 (s ) とする。色相 hhhは円 (360度)を s ) を組み合わせることにより全体のトーンを生s 1度ずつ分割し (360色環)、 0"‑'359を 16進数 3桁で記述する。さらに明度と彩 度の制御が可能であり、それぞれ 0"‑'255を 16進数 2桁で言己主する。 o(00) は1 1 音 または鈍し、感じ、 255 (ff)は明または鮮やかな感じが得られる。 色粗 青 マジエンタ 赤 黄 緑 シアン 黒(暗) 白(明) RGBコード OOOOff ffOOff ffOOOO ffff00 OOffOO OOffff 000000 ffffff 0度 60度 120度 180度 240度 300度 HLSコード 00011ss 03c11ss 07811ss Ob411ss Of011ss 12c11ss hhhOOss hhhffss グレイスケールは色相 11について 0"‑'255を 16進数 2桁で記述する。従って、最 高 256階調のグレースケーノレが得られる。ダイレクトモードは色相の種類を酎封旨定す る 。 RGBコードでは、 トーンはフラットでくっきりしており、全体的に不透明な表現が 得られる。 HLSコードでは全{:柏句に木目の細かい、幅広い表現、多彩で、豊かなマチエー ルやノ{.;レーノレが得られる。 以上の 4つのコードは、多色フノレカラー表現、多階調のク守ラデーション、白黒のライン アートやグレーアート等の表現方法によって、また出力デバイス(カラープリン夕、プロ ‑203‑

209.

ッタ等)、あるいは出力メデ、イア(プロッタ専用紙、コート紙、 OHP等)によって使い では、 8ピットカラーまたは 256階調のグレー 分けるとよし L なお SAS/GRAPH スケーノレが表示可能で、ある。(詳細はマニュアル参照) ( 3 ) クeラデーション処理 B RGB、HLS、ク、、レイスケーノレの倒、目の逝売性を利用する。後述の事例では、背景とな A ) または等角分割 ( B ) し、各セルに色を順次 るデータ領域全体を y軸方向に等分割 ( 割り当てている。分割の担方(円柱曲面や周期曲線を導入)や、分割の方向(同心円上に 半径を拡大、あるいは全体を斜めに走査)、基準となる色相や色調の工夫を施すと多彩な グ、ラデーション効果が得られる。 6 . GMAPプロシジャのいろいろな使い方 (1)各種関数の利用 周期関数(三角関数)の利用。極座標を用いて、周期を持つ曲線を表現する。パラメータ 0を{玉意に変えることにより、様々な表現形式を工夫する。中心 C( a, b ) 、 2rx X2ry の章固に、山の数 f個の周期曲線を作成する場合は、損│屈し、位相幅 a ‑ rx→a + r x (x 範囲)、周期を p e r I o d = ( 3 6 0 / r x )X ( 2 r x /f)とすると、 (~:) (~) +( r y c o 告 θ)i : Pi = ‑r x→ a+r x L:α θi= ( 3 6 0 / r ( i一α) x) 、ノ、¥ノヘ、/'、J ~ 1 " " ' . . . . ノ' J ヘ J ヘ、/" 下記の例は極座標のパラメータ 0に係数をかけて表現したもので、任意の係数をとるこ 由形を表現することができる。 とにより、様々なi ‑204‑

210.

乱数利用。オブジェのサイズ子中J C A 立置あるいはフオノレムを形成する座標デ ータ等に対 して、一様乱数や正規乱数を用いて、ファジーなあるいは羽確定な効果を施す。 u '= u+kx( 0 . 5‑r a n u n i ( i n t (αb s ( t i m e ( ) ) ) )) n t (αb s (t i m e ( ) ) ) ) u '= u+kX rannor(i ただし、 u は変換前のデー夕、 k は任意の値をもっ係数、シードの中の time()は現 在の時刻を表す。 ( 2 ) ピットマッフ。デ タを読み込んで GMAPプロシジャで加工する 形式のデータ(テキストファイノレ)を SAS側に移し、 他のソフトで、作成したピットマッフ1 GMAPプロシジャを用いてオブジェを編集・加工する。 GMAPプロシジャは直接、 Z 次元データを処理するためオフマジェの編集・加工は比較的容易である。 ( 3 ) SAS/AFを用いた動画処理へのアプローチ SAS/GRAPHにはリフレッシュレートに近し機能として gwaitオフ。ションが用 意されている。これは次のグラフ(絵)が表示されるまでの、現画面の表示時間を表し、 秒単位 ( 1以上の整数)で制御する。通常、動画(アニメーション)は 1秒間に約 30コ マ、市販のソフトでも最低で約 10コマが要求される。従って、秒単位で処理する SAS /GRAPHに厳密な意味でのアニメーション機能は用意されていない。しかし、ここで 紹介する SAS/AFを用いた動画処理は、比般的に短時間でスムーズに画面をリフレッ シュする機能を持っている。 d oi = lt ox ; c a lin o t i f y ( g r a p h ‑ n a m e, S E TG R A P H,G R S E G ‑ e n t r y ) ; r e f l e s h ; e n d ; i SAS/AFの FRAMEエントリで SAS/GRAP1 ‑ 1出力クラスのメソッド" S E T G R A P H ̲ "を用いた SCLプログラムによって連耕助にエントリカットを表示することがで きる。ただし、画面がリフレッシュする速さは新子する県克やソフト窮覚、表示されるエ ントリカットの内容(色やフオノレム、データ量など)に影響されるので、この点を考慮し てオリジナノレカットを作成?する。 7 . 事例 事 例 (1 ) はプロッタ出力用に作成し、カラープリンタで再度プリントしたもの。事例 (2) ' "( 7 ) はカラープリンタで出力することを考えてコーデ、イングし、作減したもの。 さらに事例 ( 6 ) は SAS/AFを用いた動画処理も考慮して、複数の連続したカットを

211.

作成し、そのうちの 2カットを示した。 似下の事例は、多色カラー表現およびグラデー ション処理等のため、ここでの紹介は割愛させて頂きます。ポスター展示をどうぞご覧下 さし¥) (1)日本とフランスの歳時記 第 12回 SUGI‑]'93グラフコンペ出展作品から。日本とフランスの 12か月をモ チーフにした全 24カットのうち数カットを抜粋。プロッタ出力用に配色を設定し、フル カラーで最大 8色オフ、ジェをなるべく単純化し、フォノレムを簡単な数式で座標化。必要 に応じて、 1次変換や乱数関数などを用いている。とこでは日本の 4月(桜)とフランス の 5月(スズラン)を示す。 Ca (2) グラデーション処理を施したノレセノレ・ユクラフ社のロゴマーク シアン系の色を用いたク手ラデーションを背景に、 2次元化(座標化)により作成したオブ ジェを重ねて、背景とは逆方向に同系色のグラデ ーシヨン処理を施す。この方法は、自己 相似なオブジェをある一定の比率で重ねていくなどの透視図法に応用でき、 2次元データ の立体化に有用である。 (3) 南仏カーニュ・シユノレ・メール風最 ピットマッフ。方式で、作成した図案にグラデーション処理を施し、 y軸文摘ヰこ 1次変換を行 う 。 GMAPプロシジャにて生成するデ、ータ領域を大きめにとり、文字テキストを組み込 ん だ 、 ann0 ta teデータセットを取り入れて装飾を施す。 ( 4 )不思議な SASの世界のアリス 、 この図案の基本もヒ守ツトマッフ。方式で、作成した例。 1次変換処理により、アリスを y刺l 原点および x軸方向に実用化を行う。第 3および第 4象限では、さらに若干の司Z 行凹辺形 化を施し、同時に色調をn 音めのグレーにする。 ( 5 ) メリークリスマス 1994年 HLSカラーコードを用いて背景をク、ラデーション処理し、ツリーおよび星を座標化して マスキング処理する。さらに、同心円上にグ ラデーション処理した円(球)を重ねること P により、クリスマスツリーに立(科惑を添える。

212.

( 6 ) WAEVEロゴマーク 極座標を用いて、ウエーブ(波)を表現する。左側のオブジェは、同様に極座標を用いて、 パラメータ Oを回転させながら、円の半径を Oの従属パラメータとして周期的に変化させ て表現したもの。この例ではWAEVEのロゴも座標化し、 1次変換処理を可能としてい る。生体リズムの解析に利用される周期間数を用いた例。 ヨヨ •••• ••••••• ••••••• •• V AW . ︐ (7) ポートレイトをピットマッフ。で、描く アイコンエディタ (HP VUE添付)により作成したピットマッフ。デ、ータ (64X 6 4) を SAS側に読み取り、あらためて色4番号を指定しなわす。ここでは、アンバー系の に固定。明度を 16等分 モノカラーで 16階調。 HLSカラーコードにて彩度を 100% 割し 50% 点を明方向シフトして、明るいところでの明度を広くとるようにする。基準と なるセノレの色調を決めて、周辺l お丘傍の色を配置し、全体的なノミノいーノレl こ配慮する。 8 . おわりに GMAPフ。ロシジャを用いる場合、以下の注意が必要である。 (1) GMAPプロシジャが生此するデータ領域は ( x,y)座標値各成分の最J /イ直およ び最大値により確保される。 (2) 8ピットカラー (256色)、または 256階調のグレースケールが表示可能。 (3) カラーテーブルはリセットされなし 1。従って、セッション中のカラー表示が 256 色以内でも、色の種類を追加して(あるいは書き換えて)繰り返すと、カラーテーブルは FULLのメッセージを出し、色化けが起こる場合がある。 (4) SAS/GRAPH のフォントテキストは 1次変換が 1部不可。 x軸または y判l 方 向への拡大・縮小、対羽化はできない。また、日本語テキストのフォントは英数文字に比 べて極めて不備である。 (5) 各種メディアへの対応 カラープリン夕、プロッタなどの出力デノ fイス。コート紙、 OHP、プロッタ専用紙等の 出力メディア。 ヴl nノ n u

213.

持命文では、 2次元データのデザイン化という観的も述べたが、以下のアプローチも 充分可能であり今後の課題としたい。 (6) 3次元データのデザイン化および 3次元アフィン変換 (7) オブジェのお形(モーフィング 7) および 3次元表現へのアフ。ローチ。 (8) 曲線・曲面の表現。さらに、コッホ曲線、葉脈曲線、レヴィの C曲線、高木関数等。 マンデルプロー集合、ジュリア集合、ファトワー集合、エルマン・リング等の表現。 ベクトノレ形式の数式データを容易にビジュアノレ化・デザイン化できるのが GMAPプロ シジャ最大の利点である。本フ。ロシジャの特徴を活かした今後の応用・展開に期待したい。 また、本論文では高校程度の数学知識を基礎としているが、本プロシジャが英町平な数式表 現のみに終始することなく、より身近な対象への平易な表現に広く利用されていくことを 期待したい。以上、 GMAPプロシジャによる簡単なデザインの作成方法を述べた。 最後に、本論文の作成にあたり多くの助言を頂いた弊倒斬課の長谷効性、安藤永一の 両氏 I~惑謝致します。. 参考書籍・文献 1 )S A SI n s t i t u t eI n c .( 1 9 9 0 ) :SAS/GRAPH~ S o f t w a r e,R e f e r e n c eV e r s i o n6 2 )S A SI n s t i t u t eI n c .( 1 9 9 3 ) :SAS/AF~ S o f t w a r e ;F R A M EE n t r y, U s a g ea n dR e f e r e n c eV e r s i o n6 3) 山口昌哉 ( 9 9 2 ) : ["カオスとフラクタル入門」財団法人放送大学教育振興会 4) 杉原厚吉 ( 9 9 5 ) : ["グラフィックスの数理」 情報数者龍座1 3、共立出版 注・本文中に言己事比した会世浩・製品名は、各社の商標または登録商標です。 .WAEVEは住商情報システム(株) ["医薬品副作用情報管理システム:ウエーブ W h o l eA d v e r s eE v e n t sV i s u a lE s c o r tJの販売名です。 ・本文中のグラフィックス等は全て SAS/GRAPHソフトウエアの GMAPプロシ ジャ等で、作成しました。 ‑ 2 0 8一

214.

日本 SASユーザ会 (SUGI‑J) SAS/GRAPHの DSGI機能は S Cしでもご利用いただけます 石 川l亨 技術本部テクニカルサポートセクション 株式会社 SASインスティチュートジャパン 要旨 FRAMEエントリで、 DSG I(DATAステップグラフィックインタフェース)機能を用いたアニメー ションを紹介し、 DSGIの可能性に触れる。 また、プロシジャ出力では味わえない、 「痔い所に手が届く」 的使い方も紹介する。 キーワード :DATAステップグラフィックインタフェース 紹介 SAS/GRAPHソフトウェアの機能の中で、 あまりその存在を知られていない機能に テップグラフィックインタフェース J(以下、 DSG 1 )がある。 IDA TAス DSGIとは、その名の示すとおり、 DA T Aステップもしくは SCLアプリケーションからのグラフィック出力の作成を可能にするものである。 DS GIを使うと、全く白紙の状態からのグラフの生成や既に存在するグラフへの造形の追加のために、 SAS IGRAPHソフトウェアのグラフィックルーチンを、 DATAステップまたは S Cしから関数または CAL Lルーチンとして呼び出すことができる。通常グラフの装飾に使用される ANNOTATE機能との遣いは、 データセットを作成して出力に付加するのではなく、 DATAステップ実行時にグラフを出力する点にある。 もし、全く白紙の状態からグラフを DSGIによって作成するのであれば、 PROCステップを必要としない のである。用途にもよるだろうが、 出力位置の微妙な調整やプロシジャではサポー卜されていない出力形式に 柔軟に対応するのに適している。 もちろん、一度ぎりの出力にこだわるのであれば、グラフィックエディタ機能で編集するのもいいだろう。 既存のグラフに値を載せるだけならば、 ANNOTATEデータセットの方が有利に違いない。 だが、アプリケーション構築の立場から見れば、 定型処理の中で「エテ.ィタで編集」などという全く伽の はめようのない処理をエンドユーザに課することは、アプリケーションとしての完成度を問われかねない。か といって、柔軟性に欠けるシステムでは、面白味がない。 とすれば、エンドユーザに許す機能をあらかじめ組 み込んで台くことだろう。 そのためにも DSGIは有効である。 アプリケーション ここで紹介するアプリケーションは、 DSGIを用いて、 を表示し、 FRAMEエントリに SAS/GRAPH出力 その一部を操作に応じて動かそうという試みである。 素材として、昔流行った立体パズルを選んだ。 このパズルについての説明は不要であると思うので、 速、函面を見てみよう。 ‑ 2 0 9 早

215.

アプリケーション画面 I‑‑U 副│ J I F : e t u r n I 1SaveD z , t z , I 1I n c l u d e I lShuffle I : : : eI 1Ini ti aIi l6utton I I8utton I I B 凶 t o n I Y 巴1 1 011' 1 B l u e1 P u r p l e1 I (~r-. )f)hI Y e l l ol '2 E : lU~ ̲ P u r p l巴 2 L i b : l 1 0 R K C a t : G S E G N a l n巴 D S G I Y e l l ol '3 1:;il_・;;~コて) P u r p l e3 t ?: h oUf : F " ̲ , , : " 1 ' ¥.'2 V I E W ( ( ( X ) )4 0 V i e l l ' ( ' ( ) 4 0 V i ell'(Z) 1 0 . I r liそ Fぺ 210‑ 9 0

216.

立方体本体は、 1面に 9つの正方形を並べて、 それを立体座標系に配置し、投影変換して表示している。 立方体なので、表示できるのは最大 3薗までだが、各正方形問の隙聞を透明にすることによって、 ある程度の 裏側の配置を認識することができる。 立方体の外側にある数字のついた三角形は、 る 。 その列を 9 0度ずつ、数字の回数だけ回す指示を出すものであ この三角形は立方体とは別の SAS/GRAPH出力オブジェクトに表示し、 これら 2つのオブジェクト は「透過リージョン」として重ね合わせている。画面上の三角形は「ホットスポット」になっているから、こ れをクリックすれば、 指示に応じて立方体の一部または全部を動かした後、再表示する。 視点を変えるために全体を回す「プッシュボタン」が、 画面左下に配置されている。 これは、数字付の三 角形の、横一列をすべてクリックしたのと同じである。 その他、周りにある「プッシュボタン」は、データ保存などのためのユーティリティを捷供している。 保 存は、最新の画面を表示した際の SASデータセットによる。 プログラム これは、簡素化するために OBJ1というオブジェクト名の SAS/GRAPH出力をひとつだけ持つ F RAMEエントリの SCLソースである。(表示部分のみ)ここで使用している SASUSER.Dという データセットは、 3次元データを 2次元投影したあとのポリゴンデータを持つ。 具体的には、ポリゴンコード (NO:数値)、カラーコード (CO:数値)、 X座標 (X:数値)、 Y座標(Y :数値)、 措函開始点フラ グ (POLYSRT:数値)、 描画終了点、フラグ (POLYEND:数値)という変数を持つ。 init: control label ; return; r n al .n: return; obj1: call notify('obj1', '̲unhide̲'); dSid=open('sasuser.d', 'i'); call set(dsid); size=l; ̲vertice=l; 訂 ray̲x(6) ̲x1‑̲x6; 訂 ray ̲y(6) ̲y1‑̲y6; frc=fetch(dsid); 'work', 'gseg'); rc=gset('catalog', rc=ginit(); call gask(' n u r n g r a p h ', n, rc); if n ne 0 then rc=graph('delete','dsgi'); rc=graph('clear', 'dsgi'); rc=gset('colrep', 2, 'cxbb1111'); rc=gset('colrep', 1, 'cxff2299'); rc=gset('colrep', 3, 'cxddff33'); 4, 'cxeeeeee'); rc=gset('colrep', rc=gset('colrep', 5, 'cx3300dd'); 6, 'cx009922'); rc=gset('colrep', rc=gset('colrep', 7, 'cx222222'); rc=gset('window', 1, ‑6, ‑6, 6, 6); rc=gset('viewport', l, O, O, l, l ) ; rc=gset('transno', 1 ) ; do while(frc = 0); if polysrt then link reset; 14 14 η ︒

217.

else ̲ver 七ice=̲ vertice+1; ̲xC ̲ver七ice)=x; ̲ver七ice)=y; ̲yC if polyend then do; rc=gse七('filcolor', co); 'solid'); rc=gset('fil七ype', 6, ̲x1, ̲x2, ̲x3, ̲x4, ̲x5, ̲x6 rc=gdraw('fill', , ̲y1, ̲y2, ̲y3, ̲y4, ̲y5, ̲y6 ) ; end; frc=fe七ch(dsid); end; rc=close(dsid); 七e '); rc=graph('upda rc=g七e r r n ( ); call execcrnd('graph1;end'); call no七ify('obj1', '̲set̲graph̲', 'work.gseg.dsgi.grseg'); '̲unhide̲'); call notify('obj1', refresh; return; rese七: do i=l to dirn(̲x); ̲x(i)=x; ̲y(i)=y; end; ̲ver七ice=l; return; 七e r r n : return; サンプルデータ (SASUSER.D) 22222777774444 11111222225555 22222333336666 Y ‑0.30669 0.65930 0.62288 0.88666 1 .22427 0.01949 0.30321 ‑0.12782 ‑0.30669 0.65930 ‑0.87971 ‑0.25134 ‑0.18777 ‑1.03989 0.23445 ‑0.17961 0.37951 0.60396 ‑0.87971 ‑0.25134 ‑1.00308 ‑1.07703 0.31356 ‑0.21328 1.23610 ‑0.07299 POLYEND ‑212‑ U ︽ ハU 0.85777 ‑0.10314 POLYSRT ハUハUハU44ハUハunuハU44ハUハU 12345678901234 X ハ υ CO 4ムハununuハU44ハunununU4ムハununu NO 4444444444 OBS

218.

‑1.00308 ‑1.15848 1 .59814 1.76712 0.75997 ‑0.96241 ‑0.15709 ‑0.45250 0.69712 1.15848 1 .59814 ‑1.08055 1.65804 ‑0.37920 0.75289 0.55096 0.99036 ‑0.14931 2.00011 1.08055 1.65804 0.73647 0.91444 1 .87092 1 .19191 2.44590 0.21488 1 .33616 0.03739 0.73647 0.91444 1.53927 ‑1.37913 ‑0.73845 ‑2.16190 ‑0.23865 ‑1.14355 ‑0.94030 ‑0.35495 ‑1.53927 ‑1.37913 0.35699 ‑2.23421 ‑0.64672 ‑2.20376 ‑0.15336 ‑1.18112 0.81186 ‑1.11596 0.35699 ‑2.23421 2.15137 ‑0.90353 0.97535 ‑0.99403 1 .34818 ‑0.05595 2.45985 0.11310 2.15137 ‑0.90353 ‑1.97938 2.81806 ‑1.05928 3.31223 ‑0.23355 2.12157 ‑1.16434 1 .76618 ‑1.97938 2.81806 ‑2.81134 1.94999 1.86385 0.87021 ‑1.24282 1 .70579 ‑2.06319 2.75279 ‑2.81134 1.94999 ‑1.84135 0.65774 ‑2.58101 ‑0.36087 1.63565 ‑1.28493 ‑1.02422 ‑0.26064 ‑1.84135 0.65774 ‑0.03466 2.04223 0.66471 1.01940 1.80162 1.30966 4 A ハ ununU4AnunununU4AnunununU4AnunununU4AnunununU4Anu ハ ununU4A ハ ununu U ハ ununU4AnunununU4Anu ハ unununU4A ハ 0.85777 n U 4ム ハu n u n u n U 4ム ハu n u n u n U 4 A ハ u n u n u n U 4 1企 ハu n u n u n U 4ム ハu n u n u n U 4ム ハu n u n u n U 4 A n u n u n u n U 4 A n u n u n u n U 4ム ハu n u n u n U 4 A n u n u 111113333322222333336666666666222223333311111333 4222222222255555666663333311111000001111155555333 522222111112222255555555551111122222222 5678901234567890123456789012345678901234567890123 1111122222222223333333333444444444455555555556666 6 ハ ペU 1 ょ nL

219.

‑2.75277 ‑1.40005 ‑3.50990 ‑0.79912 ‑2.28550 ‑1.61243 ‑1.50423 2.34260 ‑2.75277 t 守 t 守 ヲ F 2.01094 1 .22615 3.42638 1.57235 3.94489 0.45462 2.58190 0.23663 t 守 t 守 t 守 氏 U t 守 氏 uau 氏 uau 氏 uauau 氏 uauau I00000uooouooouooouoonu ヲ 2.01094 1.22615 ‑0.25593 ‑3.74103 ‑1.29992 ‑3.55772 ‑0.70661 ‑2.32789 0.30131 ‑2.37110 ‑0.25593 ‑3.74103 3.76918 0.77903 2.29675 ‑0.89234 2.59610 0.13382 3.96169 0.34149 3.76918 ‑0.77903 1.73490 ‑2.27601 0.48095 ‑2.23797 氏 uau 0.93006 ‑1.10798 2.11357 ‑1.02809 1.73490 ‑2.27601 V 4 ム ハυ ハ υ ハ υ ハ U44nunununU44nu ハ υ ハ unU44nunununU44nunununU4 ム ‑2.34260 円 2.46665 2.04223 ハ υ ハ υ44 ハ υ ハ υ ハ u n U 4ム ハu n u n u n U 4 4 n u n u n u n U 4 4 n u n u n u n U 4 4 n u n u n u n u t 守 qJvququququququq4q4q4q4q4auau t 守 335555588888222228888800000 222222211111555554444455555 auauaunuaunu 456789012345678901234567890 1.12074 ‑0.03466 (以下省略) 反省 このパズルでは、 3次元処理にこだわってしまったため、 少し重い仕様になっている。 座標系で回転移動してから 2次元投影していたりするため、 形状を固定して、色だけを入れ替えるようにすれば、 たとえば、 3次元 45度だけ動かして止めることもできる。 画面の もっとパフォーマンスがよくなるのだが・・・ また、フロントに配置した、移動指示用の矢印(三角形)がことのほか大きく、立方体本体が見づらいこ とも反省点のひとつである。 応用 このアプリケーションをそのまま流用して何かに役立てることはほとんどないと思われるが、 SAS/S PECTRAVIEWや SAS/INSIGHTにない表示法を自分で構築していくという点での参考にはな るだろう。 2 1 4一

220.

日本 SASユーザー会 (SUGI‑J) SQL Query Windowの紹介 0今城義高 (株)S A Sインスティチュートジャパン営業本部営業三課 I n t r o d u c t i o nt ot h eS Q LQ u e r yW i n d o wW h i c hE n a b l e sE as yA c c e s st oY o u rD a t a 干1 0 4東京都中央区勝どき 1 ‑ 1 3 ‑ 1 イヌイビル・カチドキ 8 F 要旨 S A Sシステムリリース 6 . 0 8 以降のS A S / A S S I S Tソフトウェアに、汎用的データ検索メニュー S Q LQ u e r yW i n d o w が提供されたc これはS Q L ベースでさまざまなデータソースを検索するためのメニューシステムで、マウス操作 Q Lコードを自動生成してくれる c ここではその機能と使 により一般にエンド ユーザーにはむずかしいと言われる S い方を紹介する" U E R YA S S I S TA 配 邸SR D B M SO D s C問 問R T キーワード:泊LQ アクセス可能なデータソース S Q LQue r yW i n d o wC 以下Que r yW i n d o wと記す)はリリース 6 . 0 8 C百 4 0 7 )、リリース 6 . 0 9 C T S 0 3 9 )以降のS A S / A S S 1 S Tソフトウェアに含まれている。 S A Sシステムでアクセス可能なデータはすべて利用可能である。 S A Sデータファ A Sデータビ、ュー C S Q Lビュー、 D A T Aステップビュー)はもちろんのこと、 S A S / A C C E S Sソフトウェアを導入 イル、 S I i A C L EやS Y s A S Eなと、のデータ検索用フロントエンドツールとして利用できる c また、 W i n d o w s 環境におい すれば、 O D B C CO pe nD a t a b a s eC on口氏 t i v i t y )が利用で、きるため、 O D O Cをサポートしている他のソ ては、マイクロソフトの O フトウェアのデータを検索することも可能である c さらに、 S A S / C O N N E C Tソフトウェアを利用すると、リモート上 A S データライブラリにアクセスすることも可能である c に存在する S 起動方法 Q ue r yW i n d o w (土、次のいずれかの方法で担動て・きる。 •S A S / A S S I S T のデータ管理またはレポート作成メニューの照会アイコンを選択する Sウインドウのコマンド行で.Q U E R Y ' と入力する ・各‑SA r yW i n d o wを起動すると、画面 Iに示すようなメニューが表示される c メニューは、いくつかのフ図ルダウン Q ue M E N U と記す)、ディレクトリ名(ライブラリ参照名〕、テーブル名などの選択リストなどで構 メニュー(以降 P 成される c ‑215‑

221.
[beta]
データソースの追討R
デフォルトでは、既存の臥S
ライブラリ参照名とS
A
S
データセット (
A
C
C
邸S
ビュー、 S
Q
Lビ.ューを含む)が表示さ
れる。データソースを変更するには、 P
舵N
Uで"アクション"一)"アクセスモード変更"をi
罰R
する c すると画面

2に示すようなデータソースメニューか表示される。
子守FF円ーー??ーヲすー押r-ー『罰守~所雪罰~á-r

同 冨 冨 謹 呈 ‑ ー 吋
"づ

二豆己

画面 2

画面 1

例えば、 W
i
n
d
o
w
s
環境で'
S
A
S
/A
C
C
E
S
S、ノフトウェアO
D
O
C
インタフェースがインストールされていれば、

"
O
D
B
C
"を

すると、あらかじめ登録されたO
D
B
C
のデータソース一覧が表示される。データソース名を濁尺すると、ダイ
濁R
レクトに他のアプリケーションのデータを参照できるようになる。
また、 U
N
I
X
環境で'
S
A
S
/
A
α
E
S
SソフトウェアO
R
A
C
L
E
インタフェースがインストールされて L、れば、

"
O
R
A
C
L
E
"を

遇R
すると、 O
R
A
C
L
Eデータベースへアクセスするためのユーザー名やパスワードなどの指定メニューが表示され

る
つ

これらのデフォルトを変更した状態を保存したい場合には、 P
舵N
Uで"設定"一)"照会環境設定.ー"をi
罰R
す
る。画面 3のような照会環境設定メニューが表示される。ここで必要なa情報を設定し、"保存"ボタンを選択するの
このメニューではアクセスモードのほかに、 S
A
S
/
C
O
N
N
E
Cfを使ったリモート接続環境やS
Q
L関連オプションなどの
設定も可能である c これらについては後述する c

,,~,:ftプロフ司'凡 υ

一省一一一一一‑‑
一一ド一一一プ一一
一

ts
:
!
."
"
1
,
,
,
三
豆
コ

J

41

op

1

JH
m
棚

A
J Aぐ
F

巳室コ

?細川

一口一 F 一九一方一刊一
一三一時一配二レ叩一二

三一ト五一行亙

三一??玉一四コ

口亘二

プE ワ .-{JL 開会環境民主

二三三三亙コ

Z
鼠日カニ亡コ
3
務員品表示

ζ豆工己

巳主主コ

画面 3
データの選択
ここでは、データソースカ~ASデータライブラリのケースで説明する c まず、画面中央のディレクトリ名リスト

から検索した L、ライブラリ参照名を選択する。ディレクトリ名は複飾献でき、濁Rされたライブラリに存在す

A
S
データセット名か直直左制覇尺可能なテーブルリストに表示される (
Q
u
e
r
yW
i
n
d
o
wでは"
S
A
Sデータセット"
るS
などのS
応用語の代わりに"テーフ lレ"などのS
Q
L
用語を使用している)
一216‑

222.

次に、 i 説尺可能なテーフツレ名リストから検索した l~ASデ タセット名を選択し、マウスをダブルクリックする か画面中央の右矢印ボタンをクリックする η 趨尺されたテーブル名は函面右の濁尺済テーブル名リストに追加さ )。複秘説Rも可能である。 れる(画面 4 出 LFF ι GD 画面 4 項目の遇R テーフ拘ルの遇肋幣わったら、項目を趨尺するためにP 剛 U の"ローカル" ‑ ) "列・ー"を遇尺する。画面右側 に 濁R 可能な列名リストが表示されるので、テーブル選択と同様に必要な項目を選択する c 項目名と同時に<C O U N T (本 ))と本テープル名木 < a l lc o l u m n s ) という項目名が表示される c これは、それぞれ5QLのS E L E CI'文に代表 O U N T (本)と本のことで、該当する件数と全項目 i 献を意味するェたとえば、すべての項目が必要な場合 される C は項目すべてを晶R するかわりに、本テープ jレ名本 < a l lc o l u m n s ) を 濁R すればよし、(画面 5) , 検索条件指定 ( W H E R E句の指定) M E N Uで"アクション"ー)"実行" ‑ ) ..即時実行"を趨尺する。 ここですべてのレコードを検索した L、場合は、 P 検索結果はO U T P U T画面に出力される c "レポード話十"を選択すると、 P R O CR E P O R Tに検索データが渡される 検索条件を指定する場合には、 P舵 N Uで"ローカル" ‑ >" W h e r e. . ." を 遇R する c 画面 6に示す W H E肥句画面 H E R E ショップ‑三鷹" A N Dお弁当ニ"幕の内"とし、う条件を設定してみよう。まず、 が表示される c ここでは、 W 函面右の濁R 可能な列名リストから"ショッナを選択する c すると画面 7に示す比較演算子メニューか表示さ れてくる。ここでは"印" (イコール)を趨尺する c さらにくC O N S T A N Te n t e rv a l u e > 伝 説Rし、"三鷹"と入力 する。函面左の W H E R E 句: j 函面には作成中の W H E 肥句がその都度表示される c 次に論理演算子 " A N D " を指定する E T 副主E句 ω 当拘賓 ↑町附﹄ h に 怠 限︐ M U F Br宍 白CE院佐与渦 j l i L 3:J:二二二ご士てこ二二二二三回 5ZJ ヨ豆コ亡ヨヨ ロ : . . .I~.寸 円 τ : : : ‑ ‑ t 寸 片 言 士 ず つ 画面 5 画面 6 ‑217 二 二E J

223.
[beta]
ために、画面左下の"演算子"ボタンをクリックし、 "
A
N
D
"を選択する。同様に"お弁当"を濁尺し、 "
E
Q
" を 濁R
する。ここでひとつ便利な機能を紹介しよう c データ中にどのようなお弁当名があるか分かっている時には手入

1
加 K
四 D
i
s
t
i
n
c
tV
a
l
u
e
s
>を 遇R
すると、データを自動的に検索しユ
力も可能であるが、分からない場合には、 <
すると、聞E
郎句が完成する。メインメニューに戻
ニークな変数値を表示してくれる。ここで、"幕の内"を趨R
り
、 P
M
E
N
Uで 7 クション"一)" 照 会 文 表 示 " を 濁R
すると、現時点までの完全な S
Q
Lコードを参照できる(
画面 8)。
万日二ヲ:/)̲可I

町向山附間商問組問問品

4

E

声

‑局

岬

t

i"' jtl~'

,
(

︑

1
:

E

U町 ‑

J

旬ぷ川

巴
.

r‑‑

.
"
ヶ
"
,
0
{

"

I.C(.rα聞J:l~

I

"
' T

l

、左翼サ

包,"隠

、

u

l七
別

EE

EE

U翌王̲j L
.
1
:
!
!
̲
一
円 つ7寸 戸元7ア 1 戸 tて寸

I~I げ 1 ,~.I 幅I!官官司 c_,.!:_主 17

冨E
盟

当一

画面 8

画面 7
新しし、項目の作成

H
テーブル中の項目以外に、新たに項目を追加することもできる c 画面中央下の"値瑚肩集"を趨尺すると、 W
E
R
E
句設定の時と同じような画面が表示される。画面 9では"値段"の税額を新項目 "
T
A
X
" で定義しS
A
Sフォーマ
ットとラベル"税金"を指定している。

S
Q
Lコードの保存と S
A
Sファイルの作成

Q
Lは、保存しておいて以降のセッションで再利用できる c また、検索したデータをS
A
Sデータセッ
作成されたS
A
SS
Q
Lビューを作成することもできる。 P
M
E
N
Uで"アクション" ‑
) "照会文表示‑ー"を濁R
トに保存したり、 S
し照会文函面を表示する。"保存"ボタンを押すと、 S
Q
Lを保存する画面が表示される(画面 10)。デフォルトで
は、照会文はS
A
Sカタログ S
A
S
U
S
E
R
.
P
R
O
F
I
L
Eに保存される。保存にあたっては、エントリ名を指定し、オプショ

Q
Lを呼び出す場合には、"取込み"ボタンを趨R
すると画面 11に示す
ンで見出しを入力できる。また、保存したS
照会名リストか表示される。 Y 、ュ一作成"を押すと S
Q
Lビューの作風"テーブル作成"を押すと S
A
Sデータセット
が作成される c

フ園圃圃ウ門刷

' 市柄町羽詰

4守?すすでです~す~一一百習す官有古布口県l I

・
・
・
田
園F74; ~一一--tLi

).7{H;

川

~~,t る OI..~

ドlリI
.
"N・

OI
二コ
巴二二二二二二コ世i
[!;iL二二二=二二
~

戸説.rs'

国
隠さ*,;0

際お
H
割

ワ ン 山 口 一 川 町

."フ

喝ー~

)
1
1

国三文

語
前
日
「
軽
量5
2
L
t
i
町
田
¥
.
1
1
1
1
.
."
10
:
.
.
1
日
,

畠

σ

E
有害

rI

I

1
巴宝重己二三互コ o豆二コ
[~和庁寸寸 F

E工二二三~

己記L
乙」は!LJ己主三」

画面 9

画 面 10

‑218‑

↑

1
"

I" t!.~

亡三蚕豆二コ 仁王室コ
巴豆二巴iIDD 三亙三コ

H

与r1~!五Lyi?iが'25三宮 311ぬ描l1ù

224.
[beta]
i
Z
諒緊結磁器Z

割 引 す

J
.1"!W"74ん
‑
t
7
; ‑:"U771"f
l
.開=尽1
.
;史主

l リセートセ ν;.‑'~;.市既成

巴互豆五三亙コ

亡ご三三三王コ ~A
亡二亙玉三二コ」幽川';H
仁三董三五三王コ oA:四 櫛
亡二三三亙二コ

@コ

亡豆互三三丞Eゴ

I"~7 I

[
'
!
j
[
コ

C
E
:
二

画面 11

巳互三コ

亡三三三豆コ
Fム .
'
:
"
l
】
アi
l

f
i
l
l
i~

に二コ

さ引テ、 4表干
U 日~畏示

三三己

画面 12

リモートデータのアクセス
S
A
S
/
印N
N
E
C
Tソフトウェアを利用すると、Que
r
yW
i
n
d
o
wからもリモート上に存在する S
A
SデータライブラリやD
B
M
S
上のデータをアクセスすることができる c P
M
E
N
Uで"設定"‑
>"照会環境設定"を嵐尺すると函面 12に示

すようなプロファイルの照会環境設定画面が表示される c ここで"リモートセッション構成"ボタンを押すと、画
面 13のようなリモートセッションを生成するために必要なノ fラメータの設定画面が表示される c ここでは接続
するリモート
A
S
/
印N
N
E
C
TソフトウェアでF使用するスプリクトファイル、通信アクセス方式が必須指定項目て¥リモ
ホスト名、 S
A
Sデータライブラリを割り当てるためには、"リモートライブラリ名設定"ボタンを押し、ライプ
ート上の特定のS
A
Sデータライブラリ名を指定する。リモート上の D
B
M
Sにアクセスする場合(この場合、リモート上
ラリ参照名と S
B
M
Sに対応したS
A
S
/
A
C
C
E
S
Sソフトウェアのライセンスが必要)には、"アクセスモード"ボタンを押しエンジン
にD

を変更する c 設定が完了したら"保存"ボタンを押しプロファイルを保存する C 保存したプロファイルを有効にす
M
E
N
Uで"アクション" ‑
>"設定変更"を晶代し、カタログ内プロファイル名リストから選択する。
るためには、 P
p
n
h
p
)上のO
R
A
C
L
Eデータベースをアクセスした場合に、Que
r
yW
i
n
d
o
wが
画面 14はリモートホスト(ホスト名:j
A
S
/
C
O
N阻口ソフトウェアに関してはS
A
S
/
印N
阻口ソフトウェアのマニュアルを参
生成したコードである。なお、 S

照されたい。
l
届 I
MI忌 I
l
$
tl
mlヨl
凋I
c
.
.
.i
主 │ヲ

ルイ《リ

見d
l
l
1モート;;

I
J
!
!
'
!
:
璽
主
主
主

c
i
i
i
i
!
i
i
:
二
二
コ

l スク"プト c. イ A."~ò

リヨモー』ろ 4 プラリ<;話
Oil,告書,~, .

ロ
宣
二
=
二
コ

.1

γ

~芝山江-

「ー豆吾亨手主主守王 T
了
可

互

~"1> J>刷 ウ イ ノ ド ウ 何 』

融一肌⁝⁝・・山

一寸 t:
F1

1
三ー
一
一
一
一
一
ー
ー
一
一
一
一
一
ー
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
一
ー
一
一
ー
ム
J
.
;
.

i 江副M d ・
0k ∞ 蹴 附 剛 山 巾 出
山一点謀部蜘剛 MMMMMhk叫 目

仁

f内 併 h主も 1
;
:絞 f
吹き

亡 T"コ 仁 三 三 口 亡 豆Eコ

仁三~

画面 14

画面 13

2
1
9
‑

225.

テーブルの自動ジョイン Q ue r yW i n d o wではテーフツレジョインを行う場合、あらかじめ自動ジョインテーブルにジョインさせたいテープ ルのキー情報を登録しておくことにより、テープl凶器R だけで自動的にジョインを行ってくれる c 毎回、 W H E R E 句 の指定をしなくてもよいc 自動ジョインテーブルにキー情報を登録するには、前述したプロファイルの照会環境設定画面で"自動ジョイ ン1 タンを押す。愚Rリストがポップアップされるので、"自動ジョインテーブルの作成"を選択する。画面 1 5 1こ示すテーブルi 罰Rリストが表示される c ここでジョインさせたいテーブル名を 2つ選択し、"了解"ボタンを 押す。画面 16に示すように、選択したそれぞれのテーブルの項目名か表示されるので、ジョインさせたい項目 名(キー〉をそれぞれ選択し、"了解"ボタンを押すc 複数キーを指定したい場合は、再度キーを選択し、"了解" ボタンを押す。"戻る"ボタンで終わる。 登録された自動ジョインテーブル情報を参照する場合は、"表示"ボタンを押すc 設定を保存するには、"保存" ボタンを押す さ i 自動ジョインテーブルの登録後は、単にテーブル名を選択するだけで、附 E R E 句に自動的にジョインS Q L が生成 H E R E 句である c される。画面 17は自動ジョインテーブル登録により自動的に生成された W 竺J 二重己 亡霊コ I~', 7 コ 亡豆コ 巳 E玉三コ 画面 16 画面 15 「ご一回調 勾ロ ‑ 1 "‑ 1 L"1 J 5主主コ亡豆E二亡豆亙二コ コ a : : : コ ・ 仁 三 ヨ 歪 二 仁三五亙E 画面 17 ‑ 2 2 0一 . ' 」

226.

まとめ A S 言語になれているユーザーにとっては、 S Q Lは少々戸惑いもあるかもしれないc 事実、データ加工や集 既にS Q Lより S A S 言語の方がはるかに簡単でかつパワフルである c ただ、 S Q Lの利点は、テーブルの 計を行う場合には、 S A S言語なら複数ステップを要する作業を lつのS Q L 文 ジョイン(マッチマージ)、ソート、レポート作成など、 S で実行できるため、慣れるとスピーディに処理でき、パフォーマンスも向上するケースもある c 記目立、並列データベースシステムもコンビュータ市場においてひとつの話題となっている。並列データベー Q Lを採用している。そのため、 S A S / A C X : E S スも含めて、ほとんどのリレーショナル型データベースは検索言語にS Sソフトウェアのパススルー機能と組み合わせることにより、データベース本来の能力を引き出すことも可能であ i n d o w s 環境においては、 S A S / A C C 邸S ソフトウェアO D B Cインタフェースが利用できるため、パソコン るのさらに、 W Q LQ ue r yW i n d o wはエンドユーザ から動的に膨大なデータベースを検索し'情報を得ることも可能になっている。 S ーにとって強力なデータ検索ツールとして利用できる c 今後の課題はSQLの晶直化であろう c 並列マシンであっても効率の悪~ ¥ S ( J L を書いてしまってはデータベース本 来の能力を生かすことができないこともあり得る c 場合によってはデータの配置を考慮、する必要もでてくる。そ の意味でオ fジェクト志向データベースの必要性がだんだん明確化してくるのかもしれない。 参考文献 S A ST e c h n i c a lR e p o r tP ‑ 2 5 4, U s i n gt h eS Q LQ u e r yW i n d o w, R e l e a s e6 .0 8 ‑ 2 2 1一

227.

日本 SASユーザー会 (SUGI‑J) Windows 版 SASODBC ドライパの紹介 ( ) 事s I J1 忍 A S インスティチュートジャパン 技術本部 株式会社 S lntroductionofS A S ODBCDriver f o r Windows ShinubuHusukawa S A SI n s t i t u t e] a p a n Lt~ Technical Divisiun, T e c h n i c a lS u p p u r t Sectiun 要旨 W i n d o w s版 S A S リリース 6 . 1 0 では Microsoft 社の OpenDatabase Connectivity A S データ ( O D B C ) インタフェースに対応し、他の ODBC 対応アプリケーションから S へのアクセスが可能になりました。本論文にてご紹介します。 キーワード: ODBC DBMS SQL SAS/ACCESS SAS/SHARE D D E T C P / I P 1.はじめに W i n d o w s * 1版 S A S システムリリース 6 . 1 0 では Microsoft*2 社の ODBC インタフ ェースをサポートした S A S ODBC ド ラ イ パ が 標 準 で 提 供 さ れ て い ま す (リリース 6 . 0 8 ではベータとして提供されていました)。これは、他の ODBC 対応アプリケーシ ヨンからローカルまたはリモートの S A S データソースへのアクセスを可能にするもの です。 本論文で詳しくは言及しませんが、更に S A S / A C C E S S ソフトウェアと組み合わせる ことによって非常にオープンなデータベースアクセスが可能になります。 A SODBC ドライパを中心にその機能、設定そしてアクセス方法等を紹 本論文では、 S 介します。 2 . ODBC とは 。 DBC は、異なる種類のリレーショナルおよび非リレーショナルデータベース管理シ ステムが混在する環境でのデータアクセスを可能にするインタフェース規格であり、 A N S I 標準規格、 S Q LAccess G r o u p( S A G )の C a l lL e v e l Interface ( C LI ) 、 X / O p e n * 3 の仕様をベースにして M icrosoft 社が開発したものです。 また O DBC は 、 M icrosoft W i n d o w sO p e n Services Architecture ( W O S A ) の中心的 な構成要素であり、 A pple叫社などからの支持を得、将来 S y s t e m 7 * 5 でも ODBC をサ ポートすることが表明されています。 ηぺ u q ' u nノ ω

228.

ODBC は、次の 4 つのコンポーネントから構成されています。 ‑アプリケーション:SQL 文を発行し、処理結果を取り出すために ODBC ファンクシ ョンをコールします。もし SAS システムから他のベンダの DBMS をアクセスする場合 l ま S AS システムはここに属します。 ‑ドライバマネージャ:アプリケーションの代わりにドライパをロードします。 ‑ドライバ:ODBC ファンクションコールを処理し、特定のデータソースに SQL リク エストを発行し、処理結果をアプリケーションに返します。必要によって、 アプリ ケ ー シ ョ ン の リ ク エ ス ト を DBMS がサポートするシンタックスに変換します。 SAS ODBC ドライパはここに属します。もし SAS システムから他のベンダの DBMS をアク セスする場合はその DBMS 用 ODBC ドライパがここに属します。 ‑データソース:アクセスの対象となるデータベースまたはファイルなどを指します。 本論文のテーマで、もあるように、他のベンダのアプリケーションから SAS データソー スをアクセスする場合は SAS データソースはここに属します。 図 1には、 これら 4 つのコンポーネントの関係を示しています。 D B Cの 治 塗 園1. O S Q Lス子ートメントをサブミットしたり結果を アプリケーション 受け取るために∞B CA P I をコールする 志己志己 パ果 イ結 ラり pvl﹄ ドた 晴出 に求 め要す たに返 ∞B C フ7 ンクシヨンコールを処理し、特定の D B M Sに S Q Lをサブミットしたり結果を アプリケーシヨンに返す 有 特る 淵と Sす U要 る必 すを にネ 存ト 依ン ソン ス 一 一 ポ 一 一ク ‑T も 置咽ツ 4 ︑ワる はトあ のネ合 の場 9コ ↓ ネットワークソフトウェア のパに ンイン ヨ‑フヨ D B M S ドライパ ( D L υ シドシ ( O O B C .D LL l 一︑一 ケしケ ' v pけ︐ 川 プ一プ アロア ドライパマネージャ cを O D B CA P I ↓ デ一台ソース(DB I I S ) ドライパから要求を受け取り、結果を返す 3 .S A SO D B C ドライバの導入 Windows 版 SAS システムリリース 6 .1 0 CD‑ROM 版では、ルートディレクトリ上に SAS、WIN32S などのディレクトリと共に ODBC ディレクトリがあり、 SAS ODBC ドライ パはとこに入って提供されています。ここでは、 CD‑ROM 版の場合の SAS ODBC ドライ パの導入手順を簡単に説明します。 ‑ 2 2 4一

229.

1 ) M i c r o s o f tW i n d o w sの[プログラムマネージャ]ウインドウのメニュー項目から、 D ‑ R O M ドライブの ア イ コ ン ー 〉 フ ァ イ ル 名 を 指 定 し て 実 行 . .. を選んで、 C 判O B C 半S E T U P . E X Eを起動すると、 [ S A SO O B CO r i v e rS e t u p ] 初期ウインドウが表示さ れます(図 2) 。 I A . I Welco.etotbeSASOOOCOriverSet 阻P 回 凶l i t y l t (c)1!! 3 .SASI ・ 柑 畑tel ・c . Copyrigl ・ ・ u p blished AlIRigWsReseN唱 d ・ 町 i sIllice田 sedprod ctofSASI n s t i h l t eI n . TIIeSASODOCDriv RESTRICTEDRlGHTSLEGENO ・ 0 . . Use.d圃 plica 樋 ordisdos圃 rebytheu . s :Gover園 田 eutiss bje 旬 res 耐 c t i曲目 S IlS self o r t l li .subp町Ilgrllph(c)(l)( i i )ofIhe C l l lDIlI I l̲ dc o田 puterSofIwMe IltDFARS Riglds而 Tech圃 i • 252.221‑1目1 3 . SAS1 . 鍋i 畑t eInc SASC a I I IpusOriv田. C a . r y .NC.USA21513 守 匡歪E 仁亘コ 2 ) C o n t i n u eボタンをクリックすると、 [ I n s t a l lD r i v e r s J ウインドウが表示されま す(図 3) 。 Select田町 eor圃 oreOOOCdriverst 目白雲 針田園 t l l el ist.曲目・cIIoos田 OK. I コ 亘Eコ OK C̲ce Av 国自o.bl e000豆 Drivers: 企d曹 置 圃ced. 3 ) A v a il a b l eO O B CO r i v e r s のリストから S A S を選択し O K をクリックすると、 [ C o p y i n gF il e s ] ウインドウが表示され、 S A SO D B C ドライパ関連ファイルが W i n d o w s システムに導入されます(図 4) 。 225

230.

、 明 問 、 Copyi.g F:¥ODBCSASODBC.HLP To: C:¥ 禍"NDO SVSTEM SASODBC.HLP 、 E豆己 4 ) 導入が終了すると、次のダイアログウインドウが表示されます(図 5) 。 。 SASCommunica 世o nMethodsI n s t a l l ed │鍾│ 5 ) OK をクリックすると、 [ D a t aS o u r c e s J ウインドウが表示されます。詳細は第 4 章を参照してください。 [ D a t aS o u r c e s J ウインドウで C l o s e ボタンをクリックする S A SODBCD r i v e rS e t u p J 終了ウインドウが表示されます(図 6 ) 。 と 、 [ 図 1 : : : ' 1 ' . Iγ" 6 .S A SO D B CD r i v e rS e t u o終 了 ウ イ ン ド ウ 九 宅 九 九 ふ c : : : : : : : J , ミ γつ 之L ー 三 l i n t 壬よ下 ャ た J三 三 五 百 三 ど でγ 点止に一三込町とえろと l γ 町 わ 、 〆 1 戸山ミ ー だ と コf弓 に t Set 圃 pS .cceeded! l I . SASODBCDriver Sb ee.successf 圃I I yi . s t l l l l e 亡亙コ 4 . SAS データソースの定義 S A S ODBC ドライパウインドウを使用して S A S データソースについての情報を指定 する方法は次の通りです。 1 ) Microsoft Windows の[プログラムマネージャ]ウインドウから、メイングルー プのコントロールパネルか ODBC グループの中にある ODBC アイコンをダブルクリッ a t aS o u r c e s J ウインドウが表示されます(図 7 )。データソースが来 クすると、[D a t aSources [ D r i v e r J フィールドは空になっています。 定義の場合は、 D 2 2 6一

231.

Da 掴 S田 町 田 s(D r i v 官 官 】 : 日目前 Help 組~! D r i v e r s ̲ 旦p姐園田s̲ 2 ) ウインドウの右側の A d dボタンをクリックすると、 [ A d dD a t aS o u r c e J ウインド ウが表示されます(図 8) 。 図 8 .A d dD a t aSources ウ イ ン ド ウ 一 掛 川 伝 子 主 桜 ・ S田 l e c t. . i c l lODBCd r i v 田町 yo 箇 曹 冒. tt o .ro.t h el i s t .t h園田cIIoos日 0 1 ' ‑ 01 ( ・ Ca E恒 ・ t a l l e dODBC .D r i v e r s : Es 4 r , Help 晶音・圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃圃園 3 ) I n s t a ll e dO D B CD r i v e r sのリストから S A Sを選択します。 4 ) サーバが定義されていない場合は、ダイアログウインドウにサーバの定義を要求 するメッセージが表示されます。詳細は第 5章を参照してください。また、サーバが すでに定義されている場合は、 [ S A SO D B CS e t u p Jウインドウが表示されます(図 9) 。 ηJU ηJU ワ ー

232.

5 ) D a t aS o u r c eN a m e フィールドに、アクセスするデータソース名を入力します。 D e s c r i p t i o n フィールドには、オプションとしてデータソースの説明を入れることが e r v e r フィールドをクリックすると、定義されているサーバのリス できます。また、 S トが表示されます。サーバはデータソースごとに指定する必要があります。 6 ) O p t i o n s > > ボタンをクリックすると、その他の構成要素が表示されます(図 1 0 ・守也 a a s a s EO r E鋼1司652va e m a 阻 ep u n u 一叫的鴎 に山崎 S 向 h a 前倒剖 D D 一D . G . a n c e l I s 吋 閉山 S e r v e r : OK r l H e l p A d d i t i o n a lO p t i o n s lu祉 制es... 11SQLOptions...1 1 Senlers... 1 S u p p o r tO p t i o n s ‑228一

233.

7 ) L ibrari e s .. .ボタンをクリックすると、 [ S A SL i b r a r yD e f i n i t i o n s J ウインドウ が表示されます(図 11) 。 D e f t n e dL i b r a r i e s : lE 也│ 1 l 2 e l , 剖. e I I lOK I i. G a n c e l I │Help I 1Add 8 ) A d d ボタンをクリックすると、 [ S A SL i b r a r yI n f o r m a t i o n J ウインドウが表示さ れます。 9 ) L i b r a r yN a m e フィールドに、アクセスする既存の S A S データライブラリ名を入 o s tFiI eN a m e フィールドには、ライブラリの物理名(パス名)を入力し 力します。 H e s c r i p t i o n フィールドにはライブラリの説明、 ます。また、オプションとして、 D E n g i n e フィールドにはライブラリへの読み書きに必要な S A S エンジンの名前、そし p t i o n s フィールドには次のような指定ができます。 て O S L I B R E F =サーバのライブラリ参照名 A C C E S S = R E A D O N L Y 1 0 ) O K をクリックすれば、 ライブラリ情報が保存され、 [ S A SL i b r a r yD e f i n i t i o n s ] ウインドウへ戻ります。 11 ) 更にデータライブラリを指定する場合は、ステップ 8 )' " ' " '1 0 ) を繰り返します。 データライブラリの指定を終了する場合は、 O K をクリックして [ S A SO D B CS e t u p ]ウ インドウへ戻ります。 5 .S A Sサーバの定義 S A SO D B C ドライパは、 S A Sサーバを使用してデータソースにアクセスします。 ローー カルデータにアクセスするには S A SO D B C サーバを使用し、リモートデータにアクセ

234.

スするには S A S / S H A R Eサーバを使用します。ここでは、使用するサーバについての情 A SO D B C ドライパに提供する方法を説明します。 報を S 1 ) 初めて S A SO D B C ドライパウインドウを使用してデータソースを定義するとき、 次のダイアログウインドウが表示されます(図 1 2) 。 s eer(s)mustbedeftnedbeforedatasources 四 i滋 │ 2 ) S e r v e r s ] ウインドウが表示されます(図 1 3) 。 O Kをクリックすると、 [ lE 也│ │ D . e l e t e I lAdd I iQK I I. G a n c e l I lHelp I 3 ) A d d ボタンをクリックすると、 [ D e fi n eS e r v e r ] ウインドウが表示されます(図 1 4) 。 ‑230一

235.

国ame: P a s s w o r d : 1 ! : I c o 也・ J A c c e s s l..l~ . . L~~ ・ S i n g l eUs e rL o c a lS e r v e r u l 世U鵠 rS e 四e r( S A S l SHA 臨) rM ( i │OK II C a n c e lI IHelp I 4 ) Name フィールドに、定義しようとしている S A S サーバの名前を入力します。 s h r l のようにピリオドで区切らない名前を入力すると、 S A SODBC ドライパはサーバ k y h a w k .s h r l のようにピリオドで区切った名前を入 がローカルであると認識します。 s 力すると、サーバがリモートであると認識します。 5 ) サーバへのアクセスにパスワードが必要な場合は、 PROC SERVER または PROC ODBCSERVER の UAPW= オプションに指定したパスワードと同じものを Password フ ィールドに入力します。 6 ) Access Method フィールド横のドロップリストアイコンをクリックし、表示され るリストから適切なアクセス方法を選びます。 7 ) 1人のユーザがローカルデータソースにアクセスする場合は、 SingleU s e rL o c a l S e r v e r ラジオボタンをクリックします。また、複数のユーザがリモートデータソース e r v e r またはローカルデータソースのいずれかにアクセスする場合は、 Multi‑user S [ S A S / S H A R E ] ラジオボタンをクリックします。 8 ) アクセス方法の詳細な設定を変更しないでデフォルトを使用する場合は O K をク D e fi n eS e r v e r ] ウインドウへ戻ります。 リックし、 [ 9 ) ここで O Kをクリックすると、サーバの情報を保存し、 [Servers] ウインドウへ 戻ります。 ハペU ー ム ι η

236.

1 0 ) 更に別のサーバを定義する場合は、ステップ 3 )" ‑ '9 ) を繰り返します。サーバ の定義を終了する場合は、 OK をクリックして [ S A SODBC S e t u p J ワインドワへ戻りま す 。 6 .S A Sデータソースへのアクセス S A S データソースにアクセスする方法の詳細は、使用している ODBC 対応アプリ ケーションや通信ソフトウェアによって異なります。 ここでは、 DDE を使用したローカルデータソースへのアクセス方法と、 TCP/IP を使 用したりモートデータソースへのアクセス方法についての概要を説明します。 6 .1DDE を使用したローカルデータソースへのアクセス方法 S A S ODBC ドライパは、ローカル S A Sデータソースにアクセスするために、 DDE と ともに S A SODBCサーバを使用します。データソースの定義時には、サーバが動作し ている必要はありませんが、データソースへのアクセス時には、サーバが動作してい る必要があります。 S A S ODBCサーバが動作していなければ、 S A SODBC ドライパは、自動的にサーバを 起動します。もしすでに S A Sセッションが起動されている場合には、次のステートメ ントをサブミットすることにより、 S A SODBCサーバを起動することができます。 1 ' ¥ 盆. r u n : options c o m a m i d = d d e : proc o d b c s e r v e ri d =立 ‑ 6 . 2TCP/IP を使用したリモートデータソースへのアクセス方法 S A S ODBC ドライパは、リモートデータソースにアクセスするために、 SAS/SHARE サーバを使用します。データソースの定義時には、サーバが動作している必要はあり ませんが、データソースへのアクセス時には、リモートホストでサーバが動作してい る必要があります。 通常、 SAS/SHAREサーバは複数のユーザが使用するので、システム起動時にリモー トホストで起動されます。従ってエンドユーザがサーバを起動するための操作は、通 常必要ありません。 TCP/IPを通信アクセス方法として使用する場合、ユーザあるいはサーバ管理者は次 の作業を行なう必要があります。 • PROC SERVER を 実 行 す る と き に は 、 次 の よ う に O P T I O N S ステートメントに C O M A M ID=TCPを指定します。 options c o m a m i d = t c p : proc s e r v e ri d =SAS/SHAREサーバ名. r u n : ‑クライアントマシンの TCP/IPS E R V I C E S ファイルに次のようにサーバを定義します。 SAS/SHAREサーバ名ポート番号/ t c p#互正之上 2 3 2

237.

例: m k t s e r v5 0 0 0 / t c p非 S A Ss e r v e rf o rM a r k e t i n ga n dS a l e s 7 . おわりに 本論文では、 SAS ODBC ドライパを使って SAS システム以外のアプリケーションか らローカルまたはリモートホスト上の SAS システムのデータソースをアクセスする 方法の概要を紹介しました。しかし、実際にはこれとは異なるパターン、例えば SAS システムから他のベンダの D B M S にアクセスしたり、またもっと複雑な行程を経由し てデータをアクセスするなど、 ODBC 機能をベースにした数多くのパターンが考えられ ます。 今後 ODBC が分散コンビュータ環境において果たす役割は多大なものとなって行く のではないでしょうか。 参考文献 1 )M ic r o s o f t社 Mi c r o s o f tT e c h n o r o g yG ui d e, O pe nD a t a b a s eC o n n e c ti vi t y 2 )S A SI n s ti t u t eI n c . :SASωBCD r i v e rT e c h n i c a lR e p o r t, U s e r 'sG u i d ea n dP r o g r a n m e r 'sR e f e r e n c e * 1W indows は Microsoft 社の商標です。 * 2 Microsoft は米国 Microsoft 社の登録商標です。 *3 X /Open は、イギリスおよびその他の国々の 叫 Apple は米国 Apple 社の登録商標です。 キ5 System7 は米国 Apple 社の商標ですc X/OpenCompany Limited の登録商標です。 ‑233一

238.

日本 5A5ユーザー会 (5U G卜 J ) SASシステムと DB2: SASjASSISTソフトウェアの新機能 前田幸一 株式会社 SASインスティチュートジャパンテクニカノレサポートセクション TheSASSystem a吋 DB2: NEWFacilityin SASjASSIST Software KoichiMaeda T e c h n i c a lS u p p o r tS e c t i o n, SASI n s t i t u t eJapan, L td INUIB l d g .K a c h i d o k i8 t hF l o o r,1 ‑ 1 3 ‑ 1,K a c h i d o k i,Chuか k u, Tokyo 要 F 3 本論文では、 IDMDB2データベースシステムへのアクセスツールとして、 SASjASSISTソフトウェアの新機能 ‑QueryandR e p o r t i n gf r ol l 1DB2 ーについて紹介する。 キーワード: MVS,ACCESS,DB2,SQL,SASjASSIST,QUERY,REPORT 1 はじめに から提供される DB2へのアクセス(検索/非検索)や検 索結果のレボーテイングをより容易に実行できるツーん SASシステムの特毛主のひとつに、いろいろな DBMS ( D a t a B a s eManagel l 1e n tS y s t ell1)に対するアクセスが で?ある。 尚 、 ' 9 2 日本 SASユーザ会論文集 rSASjACCESSゾ 可能であるととがあげられる。その方法には、 フトウェア I n t e r f a c et oDB2, SQLjDSのりリース 6 . 0 i SASjACCESSソフトウェアの諸機能を利用したプロシ ジャレベルでのアクセスや、 SASjASSISTソフトウェ ueryウインドウを使用した対話的アクセス アの SQLQ の拡張点 JKSASj ACCESSI n t e r f a c et oDB2ソフト ウェアの諸機能が、 ' 9 4日本 SASユーザ会論文集 rSQL QueryV ¥ ' i n d o wの紹介」で SQLQueryウイシドウの がある。 諸機能が詳しく述べられている。 oSASjACCESSソフトウェア アクセスディスクリプタまたはピューディスクリプタを 2 Query and Reporting frol11 DB2の 介したアクセスでは、あたかも SASデータセットに対 特徴 するかのように透過的にアクセスするととができる。ま た 、 SQLプロシジャでは、直接 SQLステートメントを Q&ιRは MVS版 SASシステムでのみ提供される、 SASjASSISTソフトウェアの追加鉱張機能である。 Q&Rのインタフェースは、 3 2 i O端末での使用を考慮 発行するととも可能である。 oSQLQueryウインドウ UI(GraphicU s e r テープノレ名やカラム名を意識せず、 G I n t e r f a c e )環境で対話的にデータペースにアクセスする し、カラーディスプレイやマウスが必要ないようキャラ クタベースで設計され、 DB2データの検索やレポート ととが可能である。 作成を行うととを前提としたメニュー駆動型のインタフェー 本論文では対象とするデータペースを IBMDB2データ スを採用している。また、とれまでの SQLQ ueryウィ ペースとし、 SASjASSISTソフトウェアの新機能 Q uery ンドウと同様に、 DB2テープノレのアクセス、サブセッ andR e p o r t i n gf r ol l 1DB2( 以降 Q&Rとする)について ト、結合や検索した結果を基に新しい DB2のテープノレ 述べる。 やピューを作成する機能を提供する。 Q&Rは MVS版 SASシステムの)1)1ース 6 . 0 8[ T S 4 2 0 J η4 Ru qu

239.
[beta]
Q&Rは QueryManagerK欝税された DB2のテープル

自動/手勤結合 (
I
n
n巴rJ
o
i
nもしくは Ou.
t
e
rJ
o
i
nが指

情報を基に、テープんやカラム、インデックス、キーカ

定可能)、グループ化、出力!闘の並べかえの機能や、テー

ラム、テープル聞の Fレーション等の選択リストを作成

プル情報やカラム情報を見る機能も提供する。

する。リレーション情報はテープルの自動結合で使用さ

の処理もメニュー選択でそれぞれのウインドウを起動し、

とれら

れる。とれらの情報は DB2システムテープんやその他

そとから項目や情報(属性)を指定するととで行うとと

から集められ、アクセスを高速にするため SASファイ

ができる。また、 DB2のカラム同士を計算した結果等

んに保存される。 Q&Rでは幅広いユーザ居をサポート

を新しいカラムとして検索結果に追加したり、サブセッ

できるよう、ユーザの SASシステム、 DB2、 SQL

ト化する条件を指定する変数を追加して検索処理実行時

(
S
t
r
u
c
t
u
r
e
dQuery Language)に対する経験や知識に

にその{直を入力するウインドウを開いたりするとともで

応じて 2つの環境を用意している。

oQUERYウインドウ

きる。
ととでの検索結果は、新たな DB2テープル、または SAS

特に SQLについての知識の無いユーザ向けに、 DB2の

データセット (SASデータファイル /SASデータピュー)

テープル名やカラム名を意識するとと無く DB2Kアク

として保存するととが可能である。また、生成された SQL

セスするととができる、メニュー駆動型のインタフェー

ステートメントをその場で確認するとともでき、保存し

スを提供する。

て何度も使用するとともできる。

OSQLエディタ
SQLステートメントを編集し、 DB2Kアクセスすると

.
1
:初期画面]
[ディスプレイ 3

とができる。

OUl'Ty <UNIIIl(U>
Irlle [dll Yh.. locd~ G
l
o
h
.
.
l!
l1
l.
.
l
p

また、とれら 2つの DB2アクセスツールの他、検索結

iE E E E E E 1

果を自由な形式に変更したり、ドヲルダウンのレポート
を作成したりするための REPORTウインドウや、保存

1

した情報を一覧表示させる RESULTSウインドウ、環

I (.d 1
'
10 O
r
f
l.
rr U~n8tζ。 lu ・"

境設定のための SETUPウィシドウ等が提供される。

1 ̲

t ̲ ̲̲̲̲̲̲̲ n.HIGIIT

I ̲̲

2̲

とれらの諸ウィシドウの主な機能について、次章以降で

1̲

J

to

1 of

1

一
一
一
一 n.llnl[
一一一一一̲ n.o[rnnr
‑ .
一
一
一
一
一
一
一
一
一
一
.
B
O
n
l
l
:
[
J
r
.n
5 ̲ ー
一
̲
̲
̲
̲
̲
̲n
t
'
I.
I
R附 別 lA

述べている。

̲

1

色o

1

or

1

1
伺h
l.

n
Sn
!
i
Q
R 剛I!(I!

6 ̲
̲ ̲̲̲̲̲̲̲̲ n.KOI
4R
.
fY
1 ̲
n.(l
'
W
'n
CITY

̲
̲
̲
一
一

[ディスプレイ 2
.
1
: メニュー図面]

間関珊│
rw le
Ip
Irtle Y
J.

SQl (
itnH"tedb
y恥 打 切

¥0

1
0

o
r

10

SLLfcr
IUl
1G
!1
f

a附I
I
I

n.ocrn肘
n
.
s
n
n
lf
U
ln
.
n.IRnKSI[R
R
fV.
n.HOH
n.c側、n
ζ 1IT
nWM

圏

園

r
.
o
n
n
e
K

1
1
1
1
1

snSQR.HnRCH n

[ディスプレイ 3
.
3
:サブセット指定画面]
.
,
峰
, !<ct 5:̲'1‑‑‑‑ 一
一
一
一
一

Irll..[dll Y
II!'..Lot.・ h '
'
'
'
l
p

3 QUERYウインドウ

["le"~!I ..lc Ot吋1\ 1_咽

QUERYウインドウは、 QueryManagerが情報を提供

陶幽e
rt:

する選択リストから必要な項目を選択する方式のメニュー
駆動型のインタフェースを持つ。とのため QUERYウィ
シドウを使用するユーザは、 DB2のテープル名やカラ
ム名、その他の情報を意識するととなく DB2のテープ
んにアクセスするととができる。

QUERYウィシドウて・は、 DB2テーフツレのサブセット、

一一一一一一一一ー一一一一一一一一一一一一ー一一一一‑
I

・n

l

(
1
¥
伽
.
"
・
'
"
・
1
白nH$
1[
1
1・
剛
"
"
削LV) ): L~ ・ ζ"" 、(l1T)
仰柑1 D
lr
附n (
:

of

23

I
3
I

qd
η4

Fb

240.
[beta]
[ディスプレイ 4
.
1
:SQL編集困面]

[ディスプレイ 3.1:結合指定画面]
,.
.
0
,
.
.
"
,
ー
ー
ー
ー
ー
ー
一
一
一
一
ー
ー
一
一
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
一
一
一
一
一
一
一
一
ー
一
一
・
・
・
I
.
'
f
!

'
.
)
01
0
. lable "
1
Ir
i
l.
rf
.
d
l
lY
I刷 L c I
!
<I
l
o
o
:l
r
1聞 T
f
: nll l
・
.
bl
e!
'
l
"
.
,1
同 d
.
1.
ゐ1
1 lo 2 of 2

,

.
.
,
:

且1
岡 I nlauo
咽 G r
oup:

1

旬、$岨』劃割引

倫.

I

S
l
¥SOR.rnY
R
O
ll

1

1
t

"

1

,
'
"n.‑
1

,

I
1

A̲ 1

,
I

,

.
.
J
l
A
日
)
o
f

.

̲̲

r
.

n.OllnY
.[UftT n

.

~.IO瑠剛

一
.
.
.
民
o
! 凪.
x
m
島(0,
0
克
一
.
5
1
礼 団T
̲

・

1
1

1
¥
.
II
JR
lD

I

別

[ディスプレイ 4
.
2
: テープル選択画面]

~.1\ IA lI l

̲

2
'
l

自 .Ml

問団
臼 S
国

一 一 一 ,

一n
.
.
.
.
掬.川:札
t
叫E
1

.r

自.
fL
1
日1
1
.

I

3

・ 22

t

S(IfC
l

1

1
1
.,叫省側~.・1.. 1'1 1 ‘。,

Im(.htYl....L~ ・ h 1
I
t
‑1r

[ディスプレイ 3
.
5
:出力画面]

哨ー一一ー一一一一一一一一一一一・

1!
l
i
I
D
!
m
!
盟
彊 .
IftCl
1111
.
0
.
.
.
"1 l叫げ ~..lern・ 1 ruc l
el
n
c
:ludド
I.
fn
r
in
l
1
I

j
)
)
一
一
一
一
一
一
一
一
一
一
一
ー
一
一
ー
一
一
一
一
一
一
一
一
一 ‑

.:;0三InS~ISI: O
u
t
.
.
.
l ‑ 50
1
.(
U
l
l
l
l
l
t
l
If
l
l
.
.l
f
l
l
l v to
c I!'I (j)~叫, 1"" ,,,

,
.
, ・

I帥
。..肉.PlI
I
100001 1
1
.
1
1
1
1
1
.
l
l
l
I
I
I
M
I
1 009 I.M
10001
1
1 rAOM
100012 S
l
'5
Q
I
I
.
r
n
T附羽 1 n
.
同国.S(l
l胤凡 E
1013 S
I00014 W
lIR[
。帥。 tS ".11酬 附 :R.ll剛 酬

̲
一
ー
一
一
一
一
‑
,
伺
.
"・
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
‑
‑
‑
ー
ー
ー
ー
ー
ー
ー
ー
ー
̲
.
.
・
・
・
・
・ ・
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
・
伺
.
,

1
1
1
札 J
r
,
l
l
l

0
1
'
1
1
[

f
I
Ir岨 1

'00間 n t
R
附句"

'
1
4
・
,
.
,
・. 院
・" ・
川
崎
。

,
・

10阿 同 肘
<1:00
1
拘閣制
210:00
0岡崎'!t1 1
0
:'
1;
¥
.
0
0
3
1:
0
0
9
1 1
'
7:
1 o
01"
1
1:10:00
9. f,:~f, :OO
0
1網n民')04 1
! 1'):00
0
1例 閣 '4 lO:'R:OO
0
1判n
旬9
1 11:19:00

'"刷IIM")<

8
1
3
1

3
2

381

'
"
~2'J

982

の
.
,
・
"
岡
崎

・ 町附...
6n
821
1
2

・

(1刊nA,. 11:~ 帥

OUW
l
'
)1 1
3:07:00

・

1
0
t1
2

1
1

1
7

1~2

・
4
;

tll

1
9
'
70
7
705

t
‑
1S
1
1
l
t'
:
l

叫島

9:0'):00

Ui
'

01"僧 l
'
)
1 t!> 芳 ~:OO
O
l1Wl<J1 13:3 0
0
1
'
;
,
O
I
M
f
lR')1 11:"
0
1民I
I
R
!
H 13:11:00
L
lR
O
IW
l
f
'
l
'
Jt
o 1
1:)) 回 日 ?

・
29

)83
Ul
9
(
'116

1
8

t~t

)
'
)
8
lF
.1

仇。。官。

1
3
1
16
:
1
'0
19
IS
1
3
1
;
¥
U
I

.酬 R
IV

J

.
r
!
)

1
S
J
1
J
;
>
~

S

『

1(̲
ぜバ I

。
・

l
n
l'M.I1T

1

4

・

1]8
210
'
t1

。

。
匹

7'0
, ~O

IRO
710
1
8
ち
.
,e
7S0
710
3
同

。

t
'
'
I

S

1/8

16
19

1
4

J

lRO

r.目、。

8

<
4

l
A

[ディスプレイ 4
.
3
:外部ファイル読み込み画面]

mm
、

Iflh
Yh. l~・,.日時叫・ 1 1or 1 ,
I
・ーーーーーーーーーーーー・-_~-ー・
Il備 .... z
・
.
tr
t
.n.
f
"
J
I 5
0
1包
1
J
I
I
I-5d~ct '
'
'
'
'
'
1
.
.

・"。

。

mw""

,

1r p岬 し
II
n!'lcrl 1
1
o
chle I
I
IO

,

…一一一一一一一 ‑‑1
偽師宅江町削圃.,崎北口,

1ら 市 . . . 倫 『 肝

I
1
I

1

I [..hr t
晶 h

同
.
.
. I

同・・,

RcrllOCII'

I

1

1

1

ー
・ ー・
'4 ・
ー
ー
ー
ー
ー
か
‑
‑
ー
ー
ー
ー
ー
ー
ーー
ー
ー
・

I

」叫吋山司叫"...ー吋,

I

J

,
,

,

・

) 内 市e d

I

SQLエディタは DB2の SQLプログラマ向けのインタ
フェースを提供する。ととでは直接 SQLの SELECTス

23

~S国 rtl CilIl _I 珂償四川 2 酬

,

4 SQLエディタ

.r

J

1

.
・
c
:..11
1
(,

I
n
M
I

3

テートメントを入力、編集、実行するととができる。ま
た
、 CREATE
、 GRANT
、 DROPといったような S
E‑

LECT以外の SQLステートメントを実行するととも可

.
5
nS
/
f
t
S
S
J
S
I
: SUl I"It." 仲 nr!
.
ll
l
)・
・
・
・
・
ー
・・
・ ・・
・
・
・
・
・
・
fUI!' L
c
l
l
t Y,h:.. l
・
乞 h GJob・
h 比.
1,

自E
で?ある。
SQLエディタは DB2テーブルおよびピューの情報を取

.
S
/
lS leble/ 'i fcwζr~.. \JN\

SOl O
u
t
:r
V
: I
1

得するため、 QueryManagerを使用する。とのため、

、

.
T
I

n
.
I
I
Jl
o
I
ln.l
,
I
J.HIC
i
I
II
I
I.MI[

,
I

1

.
.
.
臥
.
I
'
I
;(C,
r
輔
"
.
巴
,
.
・.
.

.JU

向
.
"
削 11.1

S
l
¥S
O
A
.
I
'
n
l
snsC
N
I
:.
S
ζ
1

I ef
J

1
,,": 1
陣 l[

咽
"
.
'

g町
.
.
.

割
.
.
.

晶 1
.
.
/
Y
h
.
. W【胤'.'附 1
sns f

S[U口
I
1
1
.
1
1
自.SfX. I
n
.
.
.
.
.
.
.
ε1
'
1
1
1
1
n
.S
I
>
l
の

DB2のテープル名もしくは VIEW名を指定するだけで、
雛形となる SQLの SELECTステートメントを同エディ
タ上に呼び出すととができる。また、 QUERYウイン
ドウで生成した SQLステートメントや、外部ファイん
に保存しである SQLステートメントを呼び出すととも
可能である。複数の SQLステートメントを追加を指定
して呼び出した場合、 SQLステートメント中のテープ
ル聞にリレーションがあれば、自動的に結合された SQL

・
・
・
・
・
・
・
・
ー
・
・
・
・
・
・

一一一一一一一一一一・

$
llIt'"

1

・引い岡市

t

,
刷

1

o.

'
.
.
I
.J
'
.
.
.t

1
:
"
"
.

I r

I

I
'
,
.
.
南
町
ゐ
ーー~・~

回
.
.
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
一
一
一
一
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
一
ー
ー
ー
ー
守
司
一
一
一
一
一
ー
ー
・
ぬ1
1
榊U
"‑R.IDT
・剛

ステートメントが生成される。

QUERYウインドウと同様 K、ととでの検索結果も新た
な DB2テープル、または SASデータセット (SASデー
タファイル /SASデータピュー)として保存するととが
できる。

(
'
3

.

t

ヴ

n
べU
η4

241.
[beta]
5 REPORTウインドウ

[ディスプレイ 5
.
2
:属性指定画面]

REPORTウインドウでは、 QUERYウインドウや SQL

.
!
on!
o/A日 目 1
: W..,
"
I[Ih ldl¥ vl...l

エディタで笑行した検索結果を基ーに、際々なタイプのレ

r
.
,‑ 引
"
,
.
リ1
I
i
I
)
‑
‑
一
一
一
‑
・
:
c
o・
叫
曲 ・
l
I

:

.1

1
elp

D.I.:[~二コ

1
.
.
,
.
.
1
'
:

1

トを入力として REPORTウインドウで作業するととも

1 ̲̲ 1

r
.,
f

I

~恒三口

同
・

・
内e骨
.
.
.

回・

1
1
1
.
.O
r
c
k
.
. U
.
.伺 V

[.1.
.

P
,
1
l
'
n
.
・4

"
"
I
f

I
I
"P
""':

I

1
ー
・

.
r

{""Ill
,

・
1
.
.

1
1
1
ι
'
"

3
.

1
.
.

,
.
'
.

側側 3・内'"唱G

,

Cl
Y
'ntJJY
Drl M (

09スト形式

コ

巴豆E

f
V
ll
r
1
.

・
(
'
I
n
I
.
:
l
l
l
n

m

割引制

できる。
作成可能なレポートタイプは、以下の通りである。

ご
巾

34 司5

z

ポートを作成するととができる。また、 SASデータセッ

¥
1
I

[ディスプレイ 5
.
3
: プレーク、集計リスト出力]

0 テープル形式

一
一
一
一
ー
ー
ー
ー
ー
ー
‑
‑
‑
‑
‑
‑
ー
ー
・ ・
ー
ー
ー
ー
ー
‑
‑
‑
‑
‑
ー
ー
ー
ー
ー
・

O俸グラフ/同グラフ
O チャート
O ダイナミック・ド Pノレダウン・レポート

'5n~./n5:;ISI; U
utput
l
1S
I ミ明 1
1
1
1
1.
11
1
>
1!
.
I
Jr
.l
.
lu ¥'lu l
oclOl
:I剖品叫 S '
I
o
dl
'

r

"
.
r
.
.
.
.
.
・
,
,
̲

,,~・",~"p."'''

とれらのレポートタイプは、メニューから切り替えると

側
、l
(

ともできる。

。'"向~"

作成するレポートのタイプによって、データは自動的に
集計される。さらに、作成されたレポートを REPORT
7
"ロシジャ (
B
a
s巴 SASソフトウェア)やグラフィックエ

f
l
l
C
.
1
l
J

RonmJ
tO 州 剛 P
Al
'
,
j
l
o
!
(
j

"
.
"
.
"
.
"
.

"

"
喧
"

'
"
。
"

"
.
"
.
"
.

1;'~

".
宅2
9
l
.R
7

tF

"
,
.
.
,
.
"

。
個
'
"
。

3
の$

。
、
ァ

また同ウインドウでは、項目単位に以下の属性を設定で

75

,
.
,
3
、
3
"
'‑
‑
・
ー
・
・
・
ー
・
ー
‑
ー
‑
‑
‑
‑
‑
‑
‑
‑
‑
s
21"

ことができる。

・

珂
"
'n'

)
1
1"
,
。
ヲ
"
3.
'

"
"
品
l
I
'
J
o
C lR'
・
"
02

ディタ (SASjGRAPHソフトウェア)を使って加工する

I.M内 C
I1
Y

>"

3
2
'

きる。

OBREAK
OGROUP
ACROSS
OSUM
OAVG
OMEAN
OMAX
OMIN巴t
c
.

[ディスプレイ 5.4:テープル出力]

o

刷

0
.
"
"
"
" ‑ IMlI <
1 IllllD>
11
111' 1
山 1Y
lr
:
.
. lnc.h f
o
l
v
t
、
.
.
.
h
l
lr
:l
"
・
'~!'.Iの5!õ 151:

JI.~!lI' "R"r 1"'0".伺,,~、

,
.
.
,
命 ̲
̲
n I附酬 rnTJNGI
→
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
.
,
,
,
"

1

凶
"
I
(
I
1
.
‑
‑
‑
‑ー
ー
・
ー
ー
・
ー
・
ー
.
,

I

101"
岨引

(
'
8
4
1
1

9!
lI

,
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
・
‑
‑
‑
‑
ー
ー
ー
ー
ー
.
,1
,
.
拘
柚
,
.
,
呂田I
,
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
.
,
I
O
)MIl')1
I
'1911
971
,
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
.
,
1
。M貨9・
I
31181
,
.
・
,
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
.
,
I
O
!
点O
l
"
,J
f
=
"
1
0
1
1
J
'
J
I
t一
一
ー
ー
ー
.
.
.
ー
ー
ー
一
.
.
.
ー
一
・
一
一
一
ー
ー
ー
ー ー・ー
ー
ー
ー
ー
ー
ー
ー
.
,

上記の属性以外に項目の見出し、フォーマット、ソート

9
(
,

順(昇順/降順)や出力する順番等を指定でき、その情
報を SASカタログに保存するととも可能である。保存
した情報を同ウインドウに読み込み再実行するとともで

I
O
f
o
l
U
W
l9
1

きる。

I

t
'1
1
8
1

8
1
1

(,酬川附周 I
I
I

[ディスプレイ 5
.
1
:検索結果一覧画面]
・電

ー
ー
ー
ー
ー
ー
ー
.
.
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・

9

ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
'
.
.苧
ー
ー
.
.
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
ー
・
ー
ー
ー
ー
ー
ー
ー
ー
ー
一
一
.
.
̲
‑
‑
‑
̲
ー
ー
.
.

'ln F切 "ele:
ctlon Ilst‑
IltJr.(oIl
l'
Vl
e
.
.
tT
f
l:
.
.
h,
CI"
'
.
.
)
s
l
l
e
lr>
IJ
I
I
OI
l
:

I

f
'
J
,
t
.
,r

・
伺
"
.

51
'1
1'11;¥・n .

コ

C"".I.~: I
snSU
"
'
.
UI.MlOfJ
l
f

別 措e

亡
=
二
コ
同.'凶

C.d H..e

('k, ~rlþtSon

一 r LT3
)
(
l1 fI句h
t0
.
.
'
"

ー
.
"
ー
刷
、 t r.s・
m唱.. 0
・
"

1

t
1.::'

'
'
噌

n
・
偽

臥町民 T

07/011')
0110119

飢えR
T

[ディスプレイ 5.5:

ト~ 9)レダウン・レポート]

0
1 2

・

(
1 1ヨ

E二
コ

1
'
t
r
n
(

,匝亘司
~ ~ヨ

:~ 0
'
7
.
宙
,
.

,
"
'
..
,・
・

03縄 問 9
1 011t内..・

,.ち嶋崎,.
I O
+
"
,J
U
'
'
'
'
'
'
引
I 011Wl9

3
'
1
'
1.
(
'
0

1 I
tl
'
l
l
¥
R
!
l1
I t?
1
W
/
1
J
・
1 1
31t州自,.

,・
,倫
.
,
.
H

r
.
,
,
.
.
,
,
,

I
町 .0

・
,
.
脚 .00
2

。
・ 0(1'

2
1
3
.1'10

:
190.00

0
(2
1
.
(
>
;
)

3河f
j.
1
'
1
(
'

)(,~問。の

3
)
!
)
.
0
0
!
lJ
s
,
.
C
W
!
I
U8.00

,,
.
同
制
,
,
.

'
"
・
.
.
.
。

。
・
。
・
,'.0。
'
1
'
0。
。

柿雪帥

,.
.
恨
の
.
,
.
.

‑238‑

]
(
.
'
.
0
0

<
I
!
.
, .OO
p曾'S.0'l
3
:
'
1
.
0
0
3J
.
(
¥
'

: 。阿除制の 4

Il~J1

̲

̲ ̲ ̲
~~b

I Dnl
(

I O
l
l
t
l

'

仁
二
コ

E二
コ
Cコ
日
口
̲̲
,
̲
.
盟‑‑'!'山町‑‑"盟主・

・ ."0

J70.~

"ι'.0
90
(.
0
.0

331.0
373.00
38
o
(J
S
o.
O!
'
l

。
.
島

・
.
.
.
。

l

[
l
:
C
:
m
J

,
.
,
。
"
1
1・
・
'1

'
"
"
'
"
.
,
<
1

"
'
,
.
.
'
"
・
1
恥5

14
色

、
句

t
!
W
n
l

1
1

"

21
1
1

"
・
"
'
'
"
"3
1
1

'
2

1

242.
[beta]
ニュー画面を起動するようカスタマイズするとともでき

〔ディスプレイ 5
.
6
: グラフ出力]

る
。
〔ディスプレイ 7
.1
:SETUPメニュー画面]
.
o
.
.
.
.
.
'
v・・" R叩 o'lInll fro. 002: Sctup‑‑‑‑ーーーーー ーーーー ーーー一...ーーーーー・ーーーーーーーーーーー一..
D
.
.
I
"e
.
.!OC o
.
.
>
C
"r
v,
c
l明.:

fl!"・何 .
.
.
1
.
.
.
.
.
.
.
1
:
~.II~

,
1
.
.
1・
'
lIo.
.
.
.
.
.
l
e
,.

[
.
t
.
.
"明 I rll ",~

I

lhcr rrorll.....

"
"
"
R
.
.
.
.
.
.
,
'
"lcr r"
'Dfllc...
..・ ~r!1 I
'

・
t
"
t
.
.
.
̲,:

E

E内 t", l
ol
I
司 r
.
.
.
. r..~ ,・It~・・・

.
1
、
.
1
.
.
..
.
崎
"
・
!
l
l
.
.
.
,
.
,
判剛、・ 4 l
o
r

rrlut 1.

ー
ー

r"・・1'j, 1 r.~ 句・,,̲明...

C
叩 ur
"
'
‑
=lJ胴 h伊ー・・

6 RESULTSウ イ ン ド ウ
~

RESULTSウインドウは、保存した SQLステートメン

n
:
r
u
m

トやレポート、検索結果を一覧形式で提供する。

8 RESULTMANAGER

ここで表示された一覧から選択したウインドウに移動し
て編集を行うことができる。また、かくエントリのコピー
やリネーム、削除、プリントアウト、外部ファイんへの
書き出しを行うとともできる。
また、ととから処理の実行をフォアグランド、もしくは
バッチで行うととも可能である。パッチ実行の場合には、

JCL(JobC
o
n
t
r
o
lL
a
n
g
u
a
g
e
)が自動生成され、処理が
実行される。

のアイコンをクリック(または TABキーでカーソんを

TS420の RESULTSウインドウと同禄にコマンドで実

Jk

・,

豆
コ

[二二コ 1・円巴工二コ
o
r,
R̲: 1
1
.
‑
: 9
1
,
.
. B・
1
(
.
<
1 1
1
1
.
.
門
.crl IJ
1
1
1
'
1
1
1
。
"
,
個 r4
" 門 前 田n I !
'
I
K
I
I
I
S.
.
.
.
t
"
'
.
.
.r
.
.
.
.
。
11
1
"
1
.
.
11
̲̲ I
t
1G
l・
c
n
'o 0<<1,.....1 r.r 111
qur'V/ 1
0
"
'
;
'
・
"
咽
I
I
t
R
T
同,,"/ヨ 4
3 .0
ロn
s J
"
"
'
"
'
'"
.
{
',
.
.
.
<
1
閉
町
.
,
同 nl""
1
"
ω
.
.
.
.
1
.
P
・
".ch
OI T
06/ /94
'
"
川1 11 111‑101IのnTVl.ll!RNS >=J:叫l[S
'"同月4
r
;
: 晶。
1
0
7
14
則
"再l.Yrt?IR ・
,
.
.
1
門
町
、
.
,
.
.
.
.
,
,
.
,
̲
・
,
.
.
.
.
.
" Qt11,
f
'
I
H
06"1/9"
附
'
1
1 I
J
r
.
v
l
r .l
S

.
・

t
>

)
le
̲
"
:

行するととも可能である。

宅

側、

r. .....T .Jf'~

I
'

(,1.附.

可

とれに基づいてユーザ独自の SAS/ASSISTソフトウェ
アのメニューを作成することができる。メニューでは保

移動し実行キー)するだけで処理が実行される。また、

t
I ・・・
叫10"", lp

C. 2
司[%u:;[if.T'tUii
1

る
。
実行した QUERYや REPORTをカタログに保存し、

存された QUERYや REPORTはアイコン化され、そ

〔ディスプレイ 6
.
1
:初期画面]
s
n
:
'
/
n
S
S
I
S
I
; R" !'Iuh~
Irl
1
o
:l
dll V ..l c H

RESULTMANAGERは RESULTSウィシドウの機能
を拡援したもので、リリース 6
.
0
8
[
T
S
4
2
5
]から提供され

哩

刷

9 おわりに

司

白

宵

岬

f
J
1Ql
I

引

申肝切酬.....晶

削仁
則

l
o
I

¥
lI
l
'

J
(
I

町田"
y

円
l
'

t

川
"
K
I
"
o
I
、

四
'
'
1
l
j
; :
O
.
,
.
・

f
'p向

拘胴白.dI・、

Sinclc oyUCr
曹関o:ckrc..
.
.
.
1
.
.
.
.
c
h

7
(
,

弔

自

臥

o&n7""

現在でも多くのユーザーが SAS/ACCESSI
n
.
t
e
r
f
a
c
et
o

DB2ソフトウェアを介して、 SAS/AFソフトウェアで
作成したアプ Pケーションとして、または SAS/FSPソ
フトウェアの FSEDIT/FSVIEW機能を使用したメン
テナンスツールとして DB2データペースにアクセスし

7 SETUPウ イ ン ド ウ
Q&Rを使用するためのユーザフ.ロファイんを作成する。
とこでは、ユーザフ.ロファイノレに設定する様々な情報を
変更することができる。

oQUERYMANAGERの作成
ODB2サブシステム IDの指定
OSQLステートメントやレポート等の保存先 e
t
c
.
また、 SAS/ASSISTソフトウェアのメインメニュー画
環境設定)からログオンアプリケーション
面の SETUP(
tcQ&Rを指定すると、エンドユーザが SAS/ASSIST
ソフトウェアを起動したときにダイレクトに Q&Rのメ

cSASシステ
ている。また、 DB2以外のデータペース t
ムよりアクセスしているユーザも多いことであろう。

QueryandR
e
p
o
r
t
i
n
gfromDB2がより機能拡張され、
DB2以外のデータペースにアクセスできるようになれ
ばエンドユーザはもとより、データベース管理者にとっ
ても強力なツーんとなることにちがいない。

10 ソフトウェア必要条件
QueryandRep
o
r
t
i
n
gfromDB2機能を使用するには、
以下のソフトウェアが必須である。

2
3
9

243.

• B a s eSASソフトウェア,リリース 6 . 0 8 [ T S . 1 2 0 ]以 降 ・ SASjASSISTソフトウェア,リリース 6 . 0 8 [ T S 4 2 0 ] 以降 • SASjACCESSl n t e r f a c et oDB2ソフトウェアヲ リリース 6 . 0 8 [ T S 4 2 0 ]以降 • IBMDB2システム,リリース1.3以降 また、必要 K応じて以下のソフトウェアが必要となる。 • SASjFSPソフトウェア,リリース 6 . 0 8 DB2や SASシステムのデータの表示や編集を行 う場合 • SASjGRAPHソフトウェア,リリース 6 . 0 8 レポートをグラフ出力で行う場合 • SASjEISソフトウェア,リリース 6 . 0 8 レポートをダイナミァク K変更(ドリルダウン)す る場合 11 参考文献 • SUGI 2 0P a p e r ;I n t e l l i g e n tQueryT o o 1 sf o r Q u e r y i n gandR e p o r t i n g o r tP ‑ 2 6 4 ;SASjASSISTS o f t ‑ • SAST e c h n i c a 1Rep w a r e :QueryandRe p o r t i n gfromDB2 • SASTSNoteT S ‑ 4 3 5 ;M i g r a t i n gQMFQ u e r i e s t oSASjASSISTS o f t w a r e :QueryandR e p o r t ‑ i n gfromDB2 ‑240‑

244.

日本 5A5ユーザー会 (5U G卜 J) SA Sに よ る メ タ ア ナ リ シ ス 0 浜田知久馬 東京大学医学部薬剤疫学教室 ト l e t a ‑ A n a l y s i su s i n gS A SP r o c e d u r e s C h i k u m aH a m a d a U n i v e r s i t yo fT o k y o H o n g o7 ‑ 3 ‑ 1, B u n k y o ‑ k u, T o k y o,1 1 3 要旨 ~所1) の汗I!lli 方法として大切模臨床試験とともにメタアナリシスの丞要性に対する認識が 高まりつつある.メタアナリシスでは多数の研究データを統合するため,必然的に数千を 越える大規模なデータを扱うことになり,また交絡因子の影響を排除しつつ,様々な仮説 を 検 証 す る た め に 強 力 な 統 計 ソ フ ト ウ エ ア の 存 在 は 必 須 で あ る . S A Sの プ ロ シ ジ ャ の ラ インアップはメタアナリシスのための強力な道具となる.特に指標を生存時閣としたメタ ア ナ リ シ ス で は PHREGプ ロ シ ジ ャ が 主 役 を 演 じ る こ と に な る . 本 稿 で は 個 別 デ ー タ を 干1I T Iし て メ タ ア ナ リ シ ス を 行 う と い う 立 場 を と っ た 場 合 の , 解 析 の 方 針 と 実 際 の S A Sを f l jいた M 肝手 111買 に つ い て 解 説 す る . ミーヴート: メタアナリシス, P H R E G, G P L O T, L IF E T E S T ‑241

245.

1. メ タ ア ナ リ シ ス と そ の 意 義 個々数年,医薬品の開発をとりまく体制は, G C P, G P M S P, 1 C Hと 急 速 に 変 化 しつつある.またソリブジン事件をきっかけとして,新薬の評価に関する問題が連日のよ うにマスコミ報道され,現在の我が国の臨床試験の質の問題,審査・許認可の体制の問題 が広く認識されはじめ,臨床試験のあり方の変佑および薬剤の適正使用を社会が要請しつ つある.このような激動の時代の中,薬剤の効果の評価方法として大規模無作為化試験と ともに,メタアナリシスが今後益々大きな役割を果たすと考えられる.メタアナリシスと 大規模試験は相互に代替するという排他的な関係にあるのではなく,両者は補完的に医学 知識の向上に寄与すべきものである.メタアナリシスは現在までに行われた研究を整理す るための方法論であり,これにより大規模研究で検証すべき仮説を生み出す役割があると いえる. メタアナリシスという m活 は 'primary analysis'可 , S巴c ondary a n a1 y sis '"m巴ta‑anal y sis "と い う 流 れ で 登 場 し た . 簡 単 に 言 え ば , い く つ か の 類 似 し た 研 究 を 併 合 し て , 総 合 的 nalys な評価を下すための方法論である.各研究の解析結果をもう一度解析するので, "a i so fa n a l y s i s η と い う こ と も で き る . 歴 史 的 に は 医 学 分 野 へ の 応 用 は , 欧 米 を 中 心 に 198 0年 代 よ り 数 多 く な さ れ は じ め , 1987年 メ タ ア ナ リ シ ス の 総 説 論 文 を Simonがまとめ, 1992 年に P etoら が 早 期 乳 癌 の 治 療 に 対 す る タ モ キ シ フ ェ ン の 有 効 性 を メ タ ア ナ リ シ ス に よ っ て 評価したことによって一躍有名になった.またメタアナリシスを組織的,継続的に行うた めの組織として英国のコクランセンターなどが開設されている.大腸癌の治療法,抗血小 仮療法,線溶療法については既に結果が公表されている.全世界の研究者がデータを持ち 寄って,分担・共同作業を行う.しかも重要なことは,これらの総合評価の結果を時代と ともに更新する体制をとっている点である. 医学研究におけるメタアナリシスの意義とは 1つ の 医 学 上 の 問 題 に 対 し 独 立 に 複 数 行 われた研究を統計学的に併合することによって 3 サンプル・サイズの制約のため単独の研 究では立証しにくい以下の問題に答えることである 1) 効 果 と し て は 小 さ い ( m o d巴r a t巴)ものの, public health上 は 重 要 な 効 果 の 存 在 を 定 量 的 な評価とともに証明する. 2) 目 的 の 反 応 変 数 と 関 連 が 高 い 共 変 量 を 評 価 す る . こ の 結 果 を 利 用 し て 新 た に 研 究 を 企 画する場合の層別,最小化などの割り付けの工夫が可能になり,効率的な試験計画が 立案できるようになる. 3) あ る 年 齢 層 , 特 定 の 合 併 症 を 有 す る 患 者 な ど の サ ブ グ ル ー プ に 対 し て の 薬 剤 の 効 果 を 評価するサブグループ解析を行う,あるいは患者の重症度等の共変量と薬剤の効果の 交互作用について評価する. 4) 効 果 の 研 究 閣 の 変 動 に つ い て 評 価 す る . こ れ に よ り 新 た な 臨 床 上 の 仮 説 が 生 み 出 さ れ る可能性がある. 5) 頻 度 の 少 な い 稀 な 副 作 用 発 現 率 を 精 度 高 く 評 価 す る . 例えばメタアナリシスで調べる具体的な仮説として,がんに対する術後補助化学療法を 例にとれば, l 延命効果があるのか? ‑242一

246.
[beta]
2

補 助 化 学 療 法 に よ っ て 死 亡 の リ ス ク が ど の 程 度 下 が る の か , こ れ を 5年 生 存 率 に 換

3

補助化学療法が有効あるいは無効なサブグループを評価する.

算すればどの程度になるのか.

等が考えられる.

2. SA S と メ タ ア ナ リ シ ス
メタアナリシスは次の手順で行う.

1) 仮 説 の 設 定
2) 文 献 の 検 索

3) 研 究 の 組 み 入 れ , 除 外 基 準 に 照 ら し 合 わ せ た 論 文 の 質 の 評 価
4) 指 標 の 選 択 と デ ー タ の 収 集

5)統計解肝(併合同午 t
1
i, ‑ t
.
$性 の 解 P
r
‑, サ フ グ ル ー フ 解 桁 " さ ! え 汁 肝 )
1
寺
!
日jが さ か れ る こ
メ タ ア ナ リ シ ス を 実 施 す る 際 に は 2) か ら 5) の 過 程 で 多 く の 労 力 と 1
と に な る . こ の 過 程 の 中 で SASの 果 た す 役 割 に つ い て 述 へ る .

4) で 複 数 の 研 究 デ ー タ を 磁 気 媒 体 で 収 集 す る 場 合 , 通 常 デ ー タ 形 式 , カ テ ゴ リ ー の フ
ォーマット等は研究ごとに異なっており,統一フォーマットのデータを作成する必要があ
る. SA Sデ ー タ セ ッ ト は 出 入 力 の 形 態 が 多 様 で あ り ,

DATAス テ ッ プ の 高 い 加 工 能 力

を考え合わせると,メタアナリシスを行うための傑準的なデータ形式になると考えられる.

5) で は 多 数 の 研 究 デ ー タ を 統 合 す る た め 必 然 的 に 数 千 を 越 え る 大 規 模 な デ ー タ を 扱 う
ことになる.このような巨大データに対し,交絡因子の影響を排除しつつ,様々な仮説を
検証するためには強力な統計ソフトウエアの存在は必須であり,

SA Sの 豊 富 な プ ロ シ ジ

ヤのラインアップはメタアナリシスの強力な道具となる.指標としてオッズ比を考えた場
'
需 の 場 合 は PHREGプロ
合 は L0G 1ST 1Cア ロ シ ジ ヤ ( 条 件 付 き ロ ジ ス テ ィ ッ ク 回 1

シジャ) ,ハザ

ド 比 を 考 え た 場 合 は PHREGプ ロ シ ジ ャ , 計 量 値 を 考 え た 場 合 は M 1

XEDプ ロ シ ジ ャ が そ れ ぞ れ 主 役 を 演 じ , UNIVARIATE, MEANS, FREQ
GRAPHの プ ロ シ ジ ャ
策じることになる.
がヒロインを i
見 逃 し て な ら な い の は サ ブ グ ル ー プ 解 析 , 感 度 分 析 を 行 う 場 合 の , BY文 と WHERE
文 の 役 割 で あ る . BY文 に よ っ て サ ブ グ ル ー プ ご と の 解 析 を 簡 単 に 行 う こ と が 可 能 で あ る
し
, WHERE文 に よ っ て あ る 研 究 を 除 い た 場 合 に 併 合 リ ス ク 比 が ど の 程 度 変 化 す る か ,
プ ロ シ ジ ャ が ワ キ を 固 め , 結 果 を 美 し く 表 記 す る た め に SAS

感 度 分 析 を 容 易 に 実 施 す る こ と が で き る . ま た 研 究 を 時 間 の 111買 に 並 べ て , 最 初 の 研 究 か ら
累積した評価を行う累積メタアナ 1
) シ ス も WHERE文 を 利 用 す れ ば 容 易 で あ る .
サブグループ結果
感度分析
累積メタアナリシス

BY SUBGROUP;
:WHERE STUDY NE 5;
:WHERE 1<=STUDY<=4

併合を行う場合の方法論は既に多くの文献で述べられている.一般的な解説としては折

笠(
1
9
8
7,1
9
9
0
)を 参 照 さ れ た い .
こ こ で は 2つ の 観 点 、 か ら メ タ ア ナ リ シ ス の ス ト ラ テ ジ ー を 分 類 す る .

1) 対 象 デ ー タ

‑243

247.

A) 論 文 で の 基 本 集 計 結 果 ( 例 え ば 群 聞 の 死 亡 率 の 差 ) を 用 い る . B) す べ て の 試 験 の 個 々 の デ ー タ を 入 手 し て 解 析 す る . A) に は , よ り 簡 便 に 結 果 を 得 る こ と が で き る と い う 利 点 は あ る も の の , 可 能 な 1) 背 景 因 子 の 影 響 の 評 価 と 調 整 , B) の 解 析 で 2) 薬 効 と 背 景 因 子 の 閣 の 交 互 作 用 ( サ ブ グ ル ー プ ) の 検 討 が 行 え な い と い う 欠 点 が あ る . た だ し こ こ で い う B) は , 研 究 開 の 反 応 変 数 の ベ ー ス ラ イ ン の 違 い を 無 視 し て , 各 研 究 デ ー タ を 単 純 に lつ に し て 解 析 す る こ と を 意 味 するものではない. 2) 解 析 の 方 針 基本原則は,研究を併合する前に各研究の中で処置法に関する比較を行うことである. 研究は層別変数の役割を果たし,規模が大きく精度が高い研究ほど高い重みが与えられて 併合される.治療効果に関して A) ; I , d. tt :数 の ベ 2つ の 考 え 方 が 存 在 す る . * スラインの研 究 1 mの 遣 い を 許 告 す る が , 治 1 奈良. ! J I J(~~は少なくとも方 向は同じで似ていると考える.効果の一様性が否定された場合には,その原因を探索して 説明するという立場をとる. B) ベ ー ス ラ イ ン に 加 え 治 療 効 果 が 研 究 開 で 分 布 す る と 考 え る . 統 計 学 的 に 表 現 す る と 治 mixed effect model)を 仮 定 す る . こ の た め に は 療効果に変量効果を想定した混合モデル ( 治療効果の分布については適切なモデルを想定する必要がある. 本稿ではエンドポイントを主存時間とし, 1) の 対 象 デ タとして個別デ タを想定し, 2) の 解 析 方 針 と し て 研 究 開 で 治 療 効 果 が 似 て い る と い う 立 場 の メ タ ア ナ リ シ ス に つ い て , 共 変 量 の 調 整 を 行 わ な い 場 合 ( 3節 ) 、 行 う 場 合 (4節 ) の 双 方 に つ い て , 統 計 解 析 上 の 方 法 論 と SA Sの プ ロ シ ジ ャ の 実 際 の コ ー デ ィ ン グ 方 法 と 読 み 方 を 解 説 す る . 複数の研究データを統合することを想定して説明するが,本稿でいう研究を施設等の層 J ¥ (層間)と処置法の交互作別の評 に(泣き換えれば,施設(層)を併合した解析と,施設Il 価の問題に直接拡張することができる. 3. Peto流 の 複 数 研 究 を 併 合 し た 解 析 と 効 果 の 一 様 性 の 検 定 平方和の計算公式として次の式がよく知られている. ~ (Yi‑Y') '=~Yi' ー (~Y.) '/n=~Yi'-nY.' ここで y. は Yi の平均値である~ Y i 'は Oか ら の 個 別 デ ー タ の 変 動 の O からのズレ, ~ n Y.'は 平 均 値 (Yi‑Y')' は 個 別 デ ー タ の 平 均 値 か ら の 変 動 を 表 し て い る . こ の 式を変形すると, ~Yi'=nY.'+~ (Yi‑Y')' と な る . こ の よ う に 個 別 デ ー タ の 変 動 は 平 均 値 の Oか ら の ズ レ と 平 均 値 か ら の 個 別 デ ー タ の バ ラ ツ キ に 分 解 で き る . Pet0 流 の 解 析 を 直 感 的 に い う と 、 こ の 式 が 示 し て い る よ う に各研究の全体の効果のバラツキ (~Yi') n Y .')と平均的な効果からのズレ(~ が大きいければ効果が高いこと, ~ を,平均的な効果( Y . )で説明される部分( (Yi‑Y.)') に 分 解 す る も の で あ る n Y.' (Yi‑Y')' 大 き け れ ば 効 果 の バ ラ ツ キ が 研 究 開 で 大きいことに対応する. I If . 目 の 臨 床 試 験 を 想 定 す る . エ ン ド ポ イ ン ト を 5年 以 内 の 死 亡 例として複数のがんの第 I の 有 無 の 2値 に と っ た 場 合 , 研 究 ご と に 構 成 さ れ る 2 x 2 ( 反 応 × 処 置 ) の 分 割 表 の 処 理 244‑

248.

B r e s l o w ‑ D a y (プレスロウ・デイ)検定が l a 知 ら れ て い る . ま た 研 究 別 の オ ッ ズ 比 を 併 合 し て 共 通 の オ ッ ズ 比 を 推 定 ・ 検 定 す る の が ト' K o c h ( 1 9 8 6 ) ).これは各研究ごとにオッズ比の変動を,共通の n t e l ‑ H a e n s z e l検 定 で あ る ( 効 果 と , 共 通 の 効 果 か ら の ズ レ に 分 解 し た こ と に 対 応 し て い る . こ れ ら の 方 法 は SASで e t oの メ タ ア ナ リ シ ス で あ る . は FREQプ ロ シ ジ ャ で 計 算 可 能 で あ る . こ れ が い わ ゆ る P 効果のオヅズ比の一様性を調べる方法として, この方法は論文に分割表の形式で集計されたデータが示されていれば,個別データが得ら れなくても計算可能である.併合した結果が有意であるかを調べる検定統計量は研究ごと に 計 算 さ れ る 観 測 死 亡 数 (0 ,) と 帰 無 仮 説 の 下 で の 期 待 死 亡 数 (E ,) の 差 を 足 し 合 わ せ た も の を そ の 分 散 で 除 し た も の で , (1)式 と な る . x'" = (l:(O,‑ E,)) '/ (l:V ,) た だ し sを 研 究 を 表 す 添 え 字 と し (1) Vお を (O,‑ E, ) の 分 散 と す る . SA Sで は (l)LIFE (2) PHREGプ ロ シ ジ ヤ の 双 方 で 可 台Eで あ る . た だ し 前 者 で は TESTプ ロ シ ジ ヤ r e s l 出力結果を読み取って簡単な手計算をする必要がある.また生存時閥解析における B o w ‑ D a y検 定 に 対 応 し た 方 法 を 行 う こ と も 可 能 で あ る . ロ グ ラ ン ク 検 定 の 検 定 統 計 量 が 死 亡 ~J: ~二 Peto;去の生存lI:i I I ¥Jテータに対する拡張について述へる. 時点の層ごとに計算した観測死亡数と期待死亡数の差をすべての時点について集計したも の で あ る こ と を 考 え れ ば , J:広張は容易であることが類推される. 3. 1 L1FETESTプ ロ シ ジ ャ に よ る 解 析 処 置 が 2種 類 の 場 合 で 説 明 す る . デ ー タ は 患 者 を 単 位 と し て , 研 究 , 処 置 法 , 生 存 時 間 , 打 切 り を 表 す 4 変 数 か ら 構 成 さ れ て い る と す る . 処 置 を 表 す 変 数 は 0,1の 数 値 変 数 で コ イングしているものとする. デ 次のプログラムで研究ごとに治療効果を調べる. PROC LIFETEST; TIME 時 間 変 数 * 打 切 り 変 数 ; STRATA 処 置 を 表 す 変 数 ;BY 以下では研究に関する添字を s 1, 2, ・・・ 研 究 ;RUN; Sとし, LIFETESTプ ロ シ ジ ャ で 計 算 さ れ る ロ グ ラ ン ク ス コ ア , そ の 分 散 , カ イ 2乗 統 計 量 を そ れ ぞ れ U s, V s, X's と表記する.これらの統計量に手計算を加えることによって解析を行うことができる.処 置 が 3群 以 上 で 用 量 の 違 い を 表 す 順 序 カ テ コ リ カ ル デ ー タ で あ る 場 合 に は , STRATA 文 の 代 わ り に TEST文 を 用 い れ ば , 用 量 反 応 関 係 に つ い て 併 合 解 析 が 可 能 に な る . 1) 全 体 の カ イ 2乗 (x' T ) を計算する. 研 究 ご と に B Y文 を 用 い て ロ グ ラ ン ク 検 定 を 行 い . 第 s研 究 の ス コ ア u, ( R a n kS t a t i s C o v a r i a n c eト l a t r i xf o rt h eL o g ‑ R a n kS t a t i s t i c sと し て 出 ti csと し て 出 力 ) , 分 散 V, ( ,) を 計 算 す る . 力), ロ グ ラ ン ク 統 計 量 (x' 研究ごとに計算される x ', を 足 し 合 わ せ た も の が 全 体 の カ イ 2乗 (x'r)になる. X'T 二l: x' , (2) ‑245‑

249.

2 ) 平 均 的 な 効 果 (R ,,)と平均的な効果のカイ 2乗 (x' ") を 計 算 す る . L :V s) R ,.,二(L: us) / ( (3) x'" = ( L :us) '/ ( L :V s) (4) R" を 指 数 の 肩 に の 乗 せ た も の が 群 問 の ハ ザ ー ド 比 に な る . 2行 出 力 さ れ る ス コ ア の う ち l行 目 は , 第 2群 に 対 す る 第 l群 2行 目 の ス コ ア は , 第 l群 に 対 す る 第 2群 の ハ ザ ー 1 9 9 5 ) ド比を表す.各研究ごとのリスク比と信頼区間を求める方法については大橋、浜田 ( の2 .6節 を 参 照 さ れ た い . 3 ) 研 究 聞 の 一 様 性 の カ イ 2 乗 (X2 H ) を計算する. X2 " 二 X2 " X2T ( 5) I~ の式は,全体の X 2T を , 平 均 約 史 の Oか ら の ず れ (X2 、,)と,平均からの研究開のハ ,,)に分解したものであり,ちょうど平方仰の分解公式に対"じする. ラ ツ キ (x' 研究開で治療効果が一定であるという仮説の下で のカイ 2乗 分 布 に 漸 近 的 に 従 う X 2"は 自 由 { 立 が 研 究 の 数 (S) ‑ 1 X 2Hが 自 由 度 S‑ 1のカイ 2乗 分 布 の 適 当 な % 点 、 よ り 大 きければ,研究閣で治療効果が一定であるという仮説は棄却される.すなわち治療効果は 研究ごとに異なると解釈することになる.このような場合には,研究ごとにハザード比を 推定したものをプロットするなどして,この交互作用の内容を記述し,その原因を考察す る必要がある X2 "が 有 意 で な い 場 合 に は , 研 究 に よ ら ず 一 定 の 治 療 効 果 が あ る こ と が 消 極 的 に 示 唆 さ れ , こ の 場 合 に は 平 均 効 果 R" と 平 均 効 果 の カ イ 2乗 X 2 "が 大 き な 意 味 を 持 つ X 2"の 有 意 性 検 定 は 自 由 度 lのカイ 2乗 分 布 と 比 較 す る こ と に よ っ て 行 わ れ る . こ の etoの 原 典 に し た が っ た 解 析 に な る . ようにして計算した結果がP PHREGプロシジャによる両手祈 3.2 共 変 量 が 2値 デ ー タ lつのみの場合, ることを利用して, C0 X 回 帰 は 本 質 的 に ロ グ ラ ン ク 検 定 と 等 し く な PHREGプ ロ シ ジ ャ で Peto流 の 解 析 を 行 う こ と が で き る . 1) 全 体 の カ イ 2乗 (X 2T ) を計算する. PROC PHREG MODEL 時 間 変 数 * 打 切 り 変 数 = 処 置 を 表 す 変 数 /RL; B Y 研 究 ;RUN; B Y文 を 用 い て 研 究 別 に C O X回 帰 を 行 い . 研 究 ご と の モ デ ル カ イ 2乗 (X2,)を計算 5 % ) を出力するための する. MODEL文 の R Lは リ ス ク 比 の 信 頼 区 間 ( デ フ ォ ル ト で は 9 ‑ 2L O GL ), ス オ プ シ ョ ン で あ る . PHREGプ ロ シ ジ ヤ で は モ デ ル カ イ 2乗 と し て 尤 度 比 ( Score),ワルド (Wald)の 3種 類 、 が 出 力 さ れ る . 研 究 ご と の x ヘ を 足 し 併 せ た も の が 全 コア ( 体 の カ イ 2乗 (X2T ) となる. X'T =L :X 2 s 上記のモデルは研究ごとに基準となる生存時間分布も薬物の効果も異なるとするモデル である. 2 4 6一

250.

2) 併 合 効 果 (R ~I ) と 併 合 効 果 の カ イ 2乗 (R,,)の計算 PROC PHREG; MODEL 時 間 変 数 * 打 切 り 変 数 = 処 置 を 表 す 変 数 /RL; S T R A T A 研 究 ;RUN; S T R A T A文 で 研 究 を 示 す 変 数 を 指 定 す る . こ の と き 得 ら れ る モ デ ル カ イ 2乗 が 平 均 効 果 の カ イ 2乗 (X' H ) で パ ラ メ ー タ 推 定 値 が 平 均 効 果 (RM ) となる. このモデルは研究ごとに基準となる生存時間分布が異なるが薬物の効果は一定であると するモデルである. 3) 耐 火 の .t i J' 1 " : 1の カ イ 2采 (x'1 1 ) を ! ¥ I .r xす る . X214 二 X' T ‑ X' " プ ロ グ ラ ム 例 , 出 力 の 読 み 方 の 詳 細 に つ い て は , 大 橋 , 浜 田 (1 995) の 2.7節 を 参 照 さ れ た い.この節で説明している癌のステージを研究に置き換えれば,メタアナリシスにそのま ま適用できる. 3. 3 適 用 結 果 が ん の 術 後 補 助 療 法 の 有 効 性 を 評 価 I i す る た め に 行 わ れ た 3 つ の 研 究 (A, B , C) に P t o流 の メ タ ア ナ 1 ) シ ス を 適 用 し た 結 果 を 示 す . Aと B は , サ ン プ jレ ・ サ イ ズ が 1000程度, 巴 C は 100程 度 で あ る . 3つ の 研 究 は い ず れ も 生 存 時 間 を エ ン ド ボ イ ン ト と し て 治 療 法 a と b を比較するものである.表 表 7'日シシーヤ 方法 A研 究 B研 究 C研 究 併合 一様性 lに 結 果 を ま と め た . 1 P巴t o流 の メ タ ア ナ リ シ ス の 適 用 結 果 L I F E T E S T P e t o i 去 , カイ 2乗 P1 1 直 10.84 0.58 0.28 5.45 6.25 0.001 0.445 0.600 0.020 0.044 P H R E G 尤度比 カイ 2乗 pi 1 直 10.37 0.58 0.28 5.44 5.79 治 療 法 aに 対 す る bの ハ ザ ー ド 比 0.001 0.446 0.600 0.020 0.055 スコア カイ 2乗 p 値 ワ jレド カイ 2乗 p値 10.84 0.58 0.28 5.45 6.25 10.70 0.58 0.28 5.45 6.11 0.001 0.448 0.600 0.020 0.047 0.001 0.446 0.600 0.020 0.044 (PHREGで 計 算 ) 点推定値 目見の信頼区間 A研 究 0.672 0.530‑0.853 B研 究 0.944 .172 0.760‑1 C研 究 1 .358 0.616‑2.994 併合 0.828 0.707‑0.970 単 独 で は A 研 究 が 強 く 有 意 で あ り , 治 療 法 b を 用 い る と aに 比 べ て , ハ ザ 247‑ ドが 0.67倍

251.

に 低 下 す る . A研 究 に 引 き ず ら れ て 併 合 し た 結 以 も 5 %水 準 で 有 意 と な る が 8 , C研 究 で l f [も 5%前 後 で か な り 強 い 効 果 の 異 質 性 が 示 は 効 果 が ほ と ん ど な く , 一 様 性 の カ イ 2乗 の Pf さ れ て い る . PHREGプ ロ シ ジ ャ の 3極 鎮 の 険 定 聞 で は A研 究 会 で カ イ 2乗 統 計 量 の 大 きさが多少食い違うが,サンプルサイズが大きいためかどれを用いても実用上問題となる o ; 去の結果と,スコア検定の結果は非常によく一致してい よ う な 差 は 存 在 し な い . ま た F巴t る こ と が わ か る . こ の 2つ の 検 定 は , 生 存 時 間 の 同 順 位 が な け れ ば 代 数 学 的 に 一 致 す る こ 巴t oの 原 典 と は 異 な り , 個 別 の デ ー タ を と が 知 ら れ て い る . PHREGの 結 果 は 厳 密 に は F 必要とするが,手計算を加える必要がなく,直接計算できるので便利である.またリスク 比とその信頼区間を出力することもできる. P eto法 を よ り 精 密 に し た も の が PHREGプ ロシジャの解析結果といえる.逆に言えばP eto法 は PHREGの 計 算 を 近 似 し て お り , 少 し保守的(有さになりにくい)ことが知られている. 3. 4 結 果 の グ ラ フ 表 示 メタアナリシスの結果の表記法としては,コクランセンターのロコマークが象徴するよ うに,各研究会ごとにリスク比(ハザード比とオッズ比の場合がある)とその信頼区間を 並 べ て 表 記 し , 最 後 に 併 合 し た 場 合 の 信 頼 区 間 も 表 記 す る の が 一 般 的 で あ る . PHREG プ ロ シ ジ ャ で 解 析 す る も う 1つの利点は, PHREG文 の OUTEST=デ ー タ セ ッ ト 名 オプシヨンを用いて推定したパラメータをテータセットに落とすことができ,これを D A TAス テ ッ ア で 加 工 し て , GPLOTプ ロ シ ジ ャ に 渡 す こ と に よ っ て , 直 接 , 図 を か く こ とができる点である. プログラム例を次に示す. proc sort data=CANCER;by S T U D Y ; 本 ー ー 一 一 A nalysis b y study 一一一一一一 ー一ーーー一一一一一一一一一一一 ; FA HU ︐ .nu proc phreg data=CANCER covout outest=estby ; 1 model TINE本 CENSOR(I)二 TREAT /rl;by S T U D T ; 本一一ー一一 P ooled Analysis 一一一一一一 ーーーーー一一一一一一一一一一ー ; proc phreg data=CANCER covout outest=estst; model TINE*CENSOR(I)=TREAT /rl;strata S T U D Y ; *ーーーー‑ D ATA STEP ‑ ‑ ‑ ‑ ー ー一一一一一一 ーーーーー一一一一一一一一一一一一一ー; data estst;set estst;study='pooled'; data est;set estst estby; proc sort data=est;by s t u d y ; proc transpose data=est o u t二 e s t ;i d ̲type̲;var treat;by s t u d y ; data est;set e s t ; s eニsqrt(cov) ; risk=exp(parms) ; t y p e = 'p o i n t ' ; o u t p u t ; risk=exp(parms‑1 .9 6*se);type='l o w e r ' ; o u t p u t ; ri sk=exp(parms+1 .96*se); t y p e = 'u p p e r ' ; output; *‑‑‑‑‑ PLOT 一一一一一一一 ーー一一一一一一一一一一ー ; proc gplot dataニ e s t ; plot risk*STUDY/vref=l frame ; symboll i=hiloct value=none; 2 4 8 ‑

252.

デ ー タ セ ッ ト CANCERに は , 生 存 1 1 寺1 1¥)を表す変数 T I H E, 打 切 り を 表 す 変 数 C E N S O R ( 打 切 り で あ れ ば 1), 処 ; 百 の 間 類 を 表 す 変 欽 T R E A T, 研 究 を 表 す 変 数 S T U D Y (A, B, C) を 含 ん で い る . 研 究 別 解 析 の 結 果 を デ ー タ セ ッ ト E S T B Y, 併 合 し た 解 析 結 果 を ES T STに出力し, D A TA ス テ ッ プ で リ ス ク 比 と そ の 信 頼 区 間 を 計 算 ー し て い る . G P L O T プ ロ シ ジ ヤ の SYMBOL文 で i =hiloct を 指 定 し て い る . こ こ で hi1 0は 最 大 値 と 辰 小 値 の 聞を線で結ぶ cは 平 均 値 に 一 番 近 い 点 ( こ の 場 合 は リ ス ク 比 の 点 指 定 的 ) を 示 す た め の 指 定 で あ る . SAS G R A P Hの 出 力 を 次 に 示 す . τ司 王1e res "1.l1 t o f 1V[eta‑ a I 1alysis E ミIS 壬く 3 z 一 T 1 。 J司 、 B 仁 コ s τ u工 コ 、 : p c>c>led 併合した結果については菱形で示す流儀があるが,このためには A N N O T A T Eの 機 能 を 利 用 H R E Gの H O D E L文 を 変 す れ ば よ い . 4節 で 示 す 調 整 し た 解 析 に つ い て も , プ ロ グ ラ ム の 中 の P 更することによってグラフ化できる. 4. 背 景 因 子 の 影 響 を 調 整 し た メ タ ア ナ リ シ ス 4. 1 調 整 し た メ タ ア ナ リ シ ス の モ デ ル 治 療 群 聞 の 背 景 因 子 の 影 響 を 調 整 す る こ と に よ っ て , 次 の 2点 が 期 待 で き る . 1) 群 間 の ア ン バ ラ ン ス を 調 整 す る こ と に よ っ て , 交 絡 因 子 の 影 響 を 除 く こ と が で き る . I I層 試 験 で は 無 作 為 化 が 行 わ れ る が , 最 小 化 法 や 層 別 割 り 付 け を 行 わ な 通常がんの第 I 00程 度 い単純な割り付け法では,無作為化を行っていたとしても,サンプルサイズが 1 の小さな試験では,予後因子についてアンバランスが生じる場合がある.また最終的 にはサンプルサイズが大きくてなってバランスがとれる場合でも,中間解析の段階で はアンバランスが生じることは十分考えられる. 2) 生 存 時 間 に 与 え る 影 響 が 強 い 重 要 な 予 後 因 子 で 調 整 す る こ と に よ っ て ( 群 問 で ア ン パ 2 4 9

253.

ランスが生じていなくても)より鋭敏に治療効果を検出できる. 以下ではがんの臨床試験について C0 X 回帰でメタアナリシスを行う場合の著者の考え 方について述べる.もちろん実際の適用は調べたい仮説,対象とするデータによってケー ス・パイ・ケースの面が当然ある.また仮定した比例ハザードモデルの妥当性については 事後的に検証する必要があるが, こ れ に つ い て は 大 橋 , 浜 田 (1 9 9 5)の 3.7節 お よ び 浜 田 他 (1 9 9 5 )を 参 照 さ れ た い . 1) ベ ー ス ラ イ ン の 生 存 時 間 分 布 個別のデータによって患者の年齢,性別,あるいは壁深遠度,転移に関する情報を総合 したステージ等の情報が観測されたとしても,研究間で生存時間に影響を与える未知ある いは観測されてない要因の分布が異なっていることは十分に考えられる.また時代の変化 とともに,全休的な治療レベルが向ヒすることも W l i 存される.このような点、を間まえると ~lJl なっていると与える Ji が[,",j起が少ない.もち ろん事後的にベースラインの生存時間分布が耐火I ¥ Jで 似 て い る こ と が 依 認 で き れ ば , 同 ベースラインの . : 1のI l i ![I\ J 分 (ji については の生存時間分布を仮定してもよい. 2) 処 置 以 外 の 共 変 量 調 整 を 考 慮 、 す べ き 共 変 量 は , 次 の 3つ の 条 件 を 満 た す 変 数 で あ る l 生存時間に影響を及ぼす. 2 群問でアンバランスを生じている. 3 効果が研究開で一定である. (2は 必 要 条 件 で は な 重要な共変量の効果が研究ごとに異なる場合は,根本的に異質な集団であると考えられ, 治療効果のみを一定であると考えるには無理がある.基本的には研究聞で共変量の効果は 同じであると考える必~ーがあり,調整は効果が同じ共変量のみで行う必姿がある.共変量 の影響を研究ごとに評価するためには対照群のみを抜き出し次の解析を行う. PROC PHREG MODEL 時間変数*打切り変数=治療法を示す変数 共変量/RL; BY 研究 WHERE 治 療 法 を 示 す 変 数 = 対 照 群 ;RUN 共変量に対するパラメータを研究開で比較することによって効果の一様性について調べ ることができる. また共変量をモデル化する際は,後のサブグループ解析のことも考慮、して, 年齢などの 連続変量もいくつかのカテゴリーに区切ってダミー変数として表すのが望ましい. 3) 処 置 変 数 1) , 2) の 条 件 を 固 定 し た 上 で , 処 置 に つ い て は 研 究 開 で 効 果 が 一 定 だ と す る す る モ デル(このモデルにより平均的な効果を推定できる) ,異なるとするモデル(このモデル により効果の異質性を評価することができる)の双方のモデルをあてはめ,あてはまりの 程度を比較する. 以上をまとめると ‑250‑

254.

メタアナリシスのための C0 X 回帰のモデル 1) ベ ー ス ラ イ ン 生 存 時 間 分 布 :研究開で異なる. 2) 共 変 量 (X ;)の影響 :研究開で等しい hi (t) = h,(t) . exp (Xiβ) h i ( t )ニ hB (t) .exp (X, β) h i (t )ニ hc (t) . exp (Xiβ) 3) 処 置 の 効 果 :研究開で等しいとするモデル および等しくないとするモデル 4.2 P H R E Gによる向: 1i ' r 1) 処 置 の 効 果 が 一 定 と す る モ デ ル 処置の効果が一定であるモデルを用いる場合次の構文を用いて解析する. PROC PHREG; MODEL 時間変数*打切り変数二処置を示す変数 共 変 量 /RL; S T R A T A 研 究 ;RUN; P H R E Gプ ロ シ ジ ャ は S T R A T A文 で 指 定 し た 変 数 の 水 準 ご と に , h~~ なったベース ライン生存時間分布をあてはめる.ただし処置と共変量の効果は研究開で共通である. 2) 処 置 の 効 果 が 研 究 ご と に 異 な る モ テ ル 処置の効果が研究ごとに異なるモデルで解析する場合には少し工夫が必要である;欠に 示す研究×処置の交互作用を表すダミー変数 ( T R E A T A,T R E A T B,T R E A T C )を D A T Aス テ ッ プ で作成するのが一つの方法である. C 。 。 。 C l STUDY A A B B 。 。 。 。 。 TREAT TREATA l l l 。 。 。 。 。 TREATB 。 。 。 。 。 TREATC l l もう lつ の 方 法 は P H R E Gプ ロ シ ジ ャ の 中 で プ ロ グ ラ ミ ン グ ス テ ー ト メ ン ト を 用 い る 方法である.構文を次に示す. 効 果 の 一 様 性 に つ い て は 1) , 2) の モ デ ル カ イ 2乗 の 大 き さ の 比 較 に よ っ て も 可 能 で あ る が , 簡 便 な の は T E S T文 に よ る 検 定 で あ る . こ の 例 で は T E S T文 で , 研 究 開 で 処 置 の 効 果 が 異 な る か を , 自 由 度 2の ワ ル ド 型 の 検 定 に よ っ て 評 価 し て い る . ノ にd ょ ー n

255.

PROC PHREG; MODEL 時 間 変 数 * 打 切 り 変 数 =TREATA STRATA TREATB TREATC 共 変 量 /RL; STUDY;RUN; TREATA=O;TREATB=O;TREATC=O; 1F TREAT=' A' T H E N TREATA=TREAT; 1F TREAT=' B' T H E N TREATB=TREAT; IF TREAT=' C' T H E N T R E A T C = T R E A T ; HOMO:TEST TREATA=TREATB=TREATC; 4. 3 適 用 結 果 と P H R E Gプ ロ シ ジ ャ の 出 力 3節 で 解 析 し た デ ー タ に 調 整 し た 解 析 を 適 用 し た 結 果 を 示 す . こ こ で は 共 変 量 と し て C OVl~COV8 の 8 変数をモデルに取り込んだ例を示している. 1) 処 置 の 効 果 が 一 定 と す る モ デ ル Criterion Testing Global N u l l Hypothesis: BETAニ O Without With Covariates Covariates Hodel C h i‑Square 5.589 15.640 ))) lll 9.349 ••• nHVハHUハHU ハHVハHUハHu nHVハHUハHU COV8 巴 4・n6 0.912 2.409 ・ ・ 0.663 1.362 ハHVハHUハHU 1 r84 ・ PDqaFhunhu ρU 司 ‑ n h υ パU H u d斗 +し1iqkunb 免 U 免U F人ω mMW‑qunb 0.778 1 .811 qunし TREAT C O V l ふ tu'hu Variable Conditional Risk Ratio and 95% Confidence Limits Risk Ratio Lower Upper nHU 72.49555 司 パU ぺJ 0.26253 ‑ ‑ 一 一 一 一 nynyny ((( 1 nununu " " ー ・ 円 ド・ 円 ド・ 'hu'huLH 4EU4EU4Iiw ︐ ︐ υハuυ ハuυ n司 ・l・ ‑ ‑ ‑ www i ‑ ‑ ・ ‑‑‑ ・ nu 司 パu d 斗 ‑ nノu 'hHPAPAnノUFhu ‑‑ム a 0 1 4 k u ‑‑JurQ04 巴 nrnU14 bnaFι ・・ 2.235281 yueo ・‑ COV8 ・1ム 4EunHUnHU m Hu m x ‑ ‑ ム arρuku‑‑ MHρv+し1100 ιEivqaハHUハHU 内 十 A ρ u m 川 1よバ斗‑ num川 ・1ム Fnυnud aU41MnノUFnυ quFAqu i apu ハU ハU cdnV 1 一 ・ v d nU 2u 1 4A n"ム 1414 nu Variable TREAT C O V l 8218.328 ORUFhunhu ハHvnノunhu 'Inb4 8468.437 nU バ 斗 ・ λ斗 ‑ Fhunudpnu nノ u nノu nノu 2 LOG L Scor巴 Wald P r> Chi‑Square 0.0020 0.0001 0.0001 共 変 量 の 効 果 を 調 整 し た 処 置 の 効 果 は 推 定 値 が ‑0.251015に な り , こ れ を 指 数 の 肩 に 乗 せ た も の が リ ス ク 比 で , 点 推 定 値 は 0.778, 9 5 %の 信 頼 区 聞 は 0.663から 0.912と な る . ま た カイ 2乗 は 9.54584, p 値 は 0.002で 1% の 水 準 で 有 意 で あ る . 調 整 前 は そ れ ぞ れ 5.45, O . 252‑

256.

0 2で あ っ た の で 調 整 す る こ と に よ っ て 有 意 性 が 高 く な る こ と が わ か る . 実 は こ の デ ー タ で は主要な共変量について併問でアンパランスが生じていたため調幣することにより,より 鋭敏に効果が現れた.このようなアンバランスがない場合でも,一般に予後に重要な影響 を与える共変量で調整することによって,解析の感度が増強することが期待される. 2) 処 置 の 効 果 が 研 究 ご と に 異 な る モ デ ル 7l .84438 0.0001 v ぃ 比 n u ︑ 円 ρ ︐ パU 肉︑ +し日 aas し m+ ‑EAnu‑A + し ・l m u+し・14 nιaTIU AUρu nu'vnFし osn 'nu‑‑ム ρ いV ρν1in+i 刈 14nRAU ・ ‑‑ ・ l ︿ Label HOHO 卜 9.256 unu ‑ U A 免 ‑ ‑ ム n u ハ υ し TunU 門 m みし U' u u n〆 円・ 14Fhυ'υA ハ und444nhu mAUqus‑‑FDnzDooqu ‑ T A n ‑ ‑ +し nbn白 内Lワ a xonna‑‑‑‑ nnnunut‑‑ょ n 十A COV8 P r> Chi‑Square 0.0005 0.1849 0.5363 0.0001 0 a nし ! ト u n u u 肉︑ ︑ 円 . ‑ 9u v u 1 n u AA Variable TREATA TREATB TREATC C O V l 0.26253 ll‑ 2.225260 ))i 。 nHunHU ハ H V ハ H Uハ H Uハ H U ハ H Uハ H Uハ H U COV8 0 1 ••• ハ H Uハ H Uハ H U Variable TREATA TREATB TREATC C O V l Analvsis o fト l a x i m u m Likelihood Estimates Parameter Standard ¥ Va ld Estimate Error Chi‑Square OF 0.427259 0.12232 12.20012 ‑0.146867 0.11076 1.75813 0.250179 0.40455 0.38244 16.16484 0.585400 0.14560 ‑ ‑ 一 一 一 一 DaDap ((( nHAnHAnHA nununu 9u r1i1i14 ρutIT‑‑‑ 刊 ︑︑ uhuhuh nuZ4L4L4L u・1ム‑EA‑‑ム ・ l ︑ 円‑MWMWM 内 〆u LH ﹃d F h υ 丈d nlunxuη uη υ F h υ F h υ 門/︼ ム yl l ・ ・ ・ 〆M 内 ノ Criterion ‑ 2 LOG L Score ¥ Va l d ρUA斗ムハ凶d n凶 d ︐ ︐ AUFhυqu p h υ ハ υη i ︑PA Testing Global N u l l Hypothesis: BETA=O Without With Covariates Covariates 8468.437 8213.853 Lower 0.513 0.695 0.581 l .3 5 0 Upper 0.829 l .0 73 2.838 2.389 5.533 15.484 Linear Hypotheses Testing Wald Chi‑Square O F 4.4822 2 P r> Chi‑Square 0.1063 各研究ごとの処置の効果 ( TREATA TREATB TREATC)の 推 定 値 と リ ス ク 比 が 出 力 さ れ る . 最 後 に こ の 3研 究 問 で , 処 置 の 効 果 が 等 し い か を 倹 定 し た 結 果 が , .1063と な る . 出 力 さ れ る . カ イ 2乗 統 計 量 は 4.4822, p値 は 0 3) 解 析 結 果 の ま と め 1) , 2) を ま と め た 結 果 を 表 2に 示 し た . H 0M 0 と ラ ベ ル さ れ て rυ 円 ηノ qd

257.

表2 調整した解析結果 調整した解肝 倹定 リスク比 直 点 推 定 値 目見の信頼区間 カイ 2乗 pj 究究究性 研研研合様 A B C併一 12.20 1 .7 6 0.38 9.55 4.48 0.0005 0.185 0.536 0.002 0.106 0.652 0.863 1 .2 84 0.778 調整しない解析 リスク比 点推定値 目見の信頼区間 0.513‑0.829 0.695‑1 .0 73 0.581‑2.838 0.663‑0.912 0.672 0.944 1 .3 58 0.828 0.530‑0.853 0.760‑1.172 0.616‑2.994 0.707‑0.970 参 考 ま で に 1)と 2)のトl o d e l Chi‑Square の 差 に 基 づ い て 一 様 性 の 検 定 を 行 っ た 結 果 を 1l l cは, 示 す と , カ イ 2来続三 ‑ A :1 立比 ( 4.475), ス コ ア (4.910),ワ)~ド (4.769) となる. 5. ま と め 本稿ではエンドポイントを生存時間とし,対象データとして個別データが得られること を 想 定 し , 研 究 開 で 治 療 効 果 が 似 て い る と い う 立 場 の メ タ ア ナ リ シ ス の 方 法 論 と S A Sの プ ロ シ ジ ャ の 実 際 の コ ー デ ィ ン グ 方 法 と そ の 読 み 方 に つ い て 解 説 し た . SA Sの 強 力 な プ ロシジャを利用すれば,複雑な解析が簡単なプログラミングで実施できる.しかしながら 元 々 全 く 別 個 に 計 四 さ れ た 研 究 の がi 栄を統合するというメタアナリシスの宿命上,結果の I学 , P [, P Dな ど の 係 々 な 側 面 を 考 慮 解 釈 は 単 純 で は な い . 統 計 学 以 外 の 臨 床 薬 理 学 , 薬 斉J して結論は下されるべきである.またあくまで探索的な解析で,メタアナりシスによって 生み出された仮説は,新たな研究によって検証がなされる必要がある. 参考文献 折 笠 秀 樹 (1 9 8 7 ) いくつかの独立な研究を併合する方法 応用統計学, メタアナリシス 1 6 ‑ 2,44‑53 折 笠 秀 樹 (1 9 9 0 ) 薬 剤 臨 床 試 験 の メ タ ア ナ リ シ ス , 臨 床 医 薬 , 6,1745‑1759 大 橋 靖 雄 , 浜 田 知 久 馬 (1 995) 生 存 時 間 解 析 東京大学出版会 浜田知久馬,大森崇,若菜明 ( 1995) Cox回 帰 に お け る モ デ ル の 評 価 と 感 度 分 析 , 癌と生存時間研究会誌 投稿中 別府宏回 ( 1994) コ ク ラ ン セ ン タ ー , メ デ イ カ ル 朝 日 1994年 6月 号 Koch G . G . and Edwards S.(1988) Clinical efficacy trials with categorical data, In:Peace K.E e d . Biopharmaceutical Statistics f o r Drug Development Dekker Simon R.(1987) Overview o f randomized clinical trials.Cancer Treatment Reports, 71:3‑5. Simon R.(1987) The role o f overviews i n cancer therapeutics. Statistics i nト ledicine, 6, 389‑393 ‑254一

258.

日本 5A5ユーザー会 (5U G卜‑..)) モンテカル口・シミュレーションによる例数設計 高橋行雄 日本ロシュ(株)臨床開発本部・臨床統計解析部 AsampleS i z eC u l c u l a t i o nu s i n gMonteCarloSimulation YukioTakahashi i v .NipponRochek .k . C l i n i c a lResearch&Developmentd 6・1Shiba2・chomeminato‑ku,Tokyo 要旨 医薬品の臨床試験において、客観的なプライマリ・エンドポイントの選定、 および例数設計の重要性が増してきている。 2群聞の問題については便利な数表、ある いは計算公式により、簡便に必要例数が求められる。しかしながら、 3群以上の場合に ついて様々な用量反応関係の仮説に対応できる例数設計のための便利な数表はない。そ こで、 SAS の乱数発生の関数と解析プロシジャを組み合わせたいくつかのモンテカル ロ・シミュレーションによる例数設計の事例を報告する。 キーワード 例数設計、モンテカルロ・シミュレーション、臨床試験 はじめに 日本の医薬品の開発の分野で例数設計が現実的に行われてきたのは、二重盲検比較試 験での 2群聞の出現率の差、生物学的同等性試験におけるクロスオーバ一法での 2群の 平均値の差、抗悪性腫:房薬の l標本の出現率の問題などが主なものであった。最近は、 比較的初期の段階より用量反応の探索を目的とし 3群以上の臨床試験が行われるよう になり、その検出力、あるいは例数設定の根拠を強く求められるようになってきた。と ころが、多群の場合の様々な問題に対し定式化が十分になされていない。そこで SAS の DATAステップの乱数発生関数と SAS/STATの解析プロシジャを組み合わせて、い くつかの間題に対する例数設計を経験してきたので、その事例を示す。 計量値の場合 プラセボを含む 4用量の DBTを計画した。特性値は、ある臨床検査値の投与前と投 与後の下降率とし、投与前値を 100%となるように数値変換した。反応は、投与量が増 η4 RU RU

259.

加する従って単調的に減少すると期待される。 G l :P l a c e b o群 G 2 :10mg群 G 3 :20mg群 G 4 :30mg群 μ1 = 9 5 μ2 =8 0 μ3 =7 0 μ4 6 5 二 σ1= 1 5 5 σ2 1 0 σ3 2 σ4= 20 二 二 各群は、平均 μ1、分散 σ 1 2 の正規分布に従うとする。 このような計画に対して各群のサンプル数を様々な観点より検討したいとしよう。例 数設計の段階では、効果が単調に増加するか否かは不確定であり、このような場合だけ を仮定しただけではリスクが大きいので、効果が一定となるような場合も想定してサン プルの設定も考えておくべきであろう。試験計画書に最終的には、一本化した例数設計 を示すべきであるが、様々な仮定における検出力の変化を検討しておくことは、実際に は有意義である。例えば、次のような場合である。 1 ) P l a c e b o群を Omgとして、回帰直線を当てはめたい。有意水準 5%、検出力 80% となる場合のサンプル数を求めたい。 2 ) 実薬群の減少率がすべて G2群並であったとした場合に (G2+G3+G4) 全体と P l a c e b o群との間で、有意水準 5%、検出力 80%となるサンプル数も知りたい。 付表 lに、反復の回数、各群のサンプル数、平均値、および標準偏差を引数として持 つシミュレーション・プログラムを示す。検定プログラムとしは、 GLMプロシジャを 使い CONTRASTステートメントにより様々な仮説に対して結果が得られるようにな っている。 各群のサンプル数が等しいとした場合の結果は、表示 lに示すように、効果が期待通 り単調増加であれば、 l群 6例程度で直線回帰の検出力は 80%となると予想される。 表示 l 検出力の変化 効果が単調増加 サンプル数 5 7 1 0 1 5 L i n e a r 7 6 . 2 8 8 . 9 9 8 . 3 1 0 0 . 0 n=1000 実薬の効果が一定 L i n e a r G1VS( G 2 + G 3 + G 4 ) .3 31 .6 21 .4 41 5 9 . 3 2 5 6 ‑ 6 4 . 2 .9 81

260.

しかしながら、用量反応が一定であった場合には、直線回帰の検出力は大幅にダウンす る。この場合、 G1VS(G2+G3+G4) のような検定を考えた場合には l群 15例で検出力 カ {80%となる。 2値データの場合 計量値と同じような場合を考えてみよう。 G1:Plaeebo群 T[ 1 G2:10mg群 T[ G3:20mg群 T[ 2二 0. 40 . 5 5 3‑ 0 0 . 6 0 T[ 4 G4:30mg群 検定プログラムは、 = 0.20 FREQプロシジャを使用して、 CMH統計量を用いた。 FREQプ . 0 7より各種の統計量および P値が、 SASデータセットとして ロシジャは、リリース 6 出力できるようになり、付表 2に示すように手軽にシミュレーションが出来るようにな った。結果は、表示 2に示すように、効果が期待通りであれば、 l群 2 0例 で 検 出 力 が 80%となる。効果が期待通りでなかった場合の CMH1統計量(相関性)の検出力は 40% G1vs(G2+G3+G4 )の場合の検出力は 65%と高くなっている。 と低いのであるが、 表示 2 検出力の変化 効果が単調増加 サンプル数 1 0 1 5 20 25 30 35 40 Linear 5 0 . 9 6 5 . 3 8 0 . 2 8 8 . 2 n二 1 000 実薬の効果が一定 Linear G1VS (G2+G3 +G4 ) 2 6 . 2 3 0 . 2 3 0 . 6 3 6 . 0 41 .6 3 8 . 1 4 8 . 8 4 9 . 5 5 6 . 9 6 4 . 7 )I!買序データの場合 結果が順序データとなる場合に、検定統計量として F REQプロシジャの CMH統 計 量とした場合の考え方を示そう。この場合の乱数発生には若干の工夫がいる。順序デー タに対して分布関数を定めておき、 0から 1の一様乱数を RUNUNI関数で発生させ分 布関数を参照して順序データに変換すればよい。シミュレーションプログラムは、 2値 2 5 7

261.

データと全く同じものが使える。ディフォルトのスコアは、 ) 1貢序データそのものを使う ので、 W i l c o x o nスコアにする場合には、 SCORE=RANKとすれば、順位和検定に自 動的に置き換わる。 まとめ 用量反応試験が、比較的早い段階で実施されるようになってきた。これに伴い、様々 なエンドポイントに対して実験デザインおよび例数設計の必要性が増してきた。限られ た情報から得られた幾つかの仮説に対し、実現可能かつ臨床的に意義のある差に対して 検出力の面での許容できる例数設計が求められている。統計的に定式化された問題に対 しても、シミュレーションを合わせて行うことは、実際の解析方法を前もって検討する ことにもなり、有意義であると思われる。 シミュレーションによる方法の欠点は、ある程度のコンビュータ・パワーを必要とす ることである。 SAS でシミュレーションが手軽に出来るようになったのは、必要な統 計量を SASデータセットとして取り出せるようになってきたからである。計量値の場 合に GLMプロシジャで CONTRASTステートメントの P値を OUTSTATオプション で SASデータセットにダイレクトに出力しているが、この機能はパージョン 6からの 追加機能である。 2値、および順序データで使用している FREQプロシジャでも、 OUTPUTステー トメントが使えるようになったのは、つい最近のリリース 6 . 0 7からであり、この機能 1 1 &序データに対し、 は、テクニカル・レポートによってのみ知ることができる。例えば、 ) NPAR1WAYプロシジャを使った場合には、 P値を SASデータセットに直接出力する 機能がないので、結果のリストをデータファイルとして登録をし、そこから SAS の DATAステップで必要な部分を切り出すといった、原始的な方法をとらざるを得ない。 この方法は、更に多くのディスクの容量を必用とし、とても薦められる方法ではない。 LOGISTICプロシジャなどで、 P値が出力できない場合もあるが、 OUTESTオプ ションと COVOUTオプションを組み合わせて統計量と分散共分散が SASデータセッ トとして出力されるので、簡単に P値を計算する事が出来る。 コンピュータ・パワーの面でも、ここに示したシミュレーションは、 COMPAQ /DESKPROEX4100程度の WINDOWS版の SASで 1000回のシミュレーションで l 分程度で結果が得られるので、十分実用的になると思われる。 258一

262.

添 付 1 4群の計量データに対するシミュレーション・プログラム T i t l e l' P O 冊0 5 A . s a s 1 9 9 5 ‑ 4 ‑ 8 Y . T a k a h a s h i '; T itl e 2'くくく N l = N 2 = N 3 = N 4ニ1 0, M l = 9 5,M 2 = 8 0,M 3 = 7 0,M 4 = 6 5,S Iニ1 5,S 2ニ2 0,S 3ニ2 0,S 4 = 2 5>>> ' o p t i o n s p s = 5 5 l s1 1 0, ニ p r o c f o r m a t S T A0 . 0 0‑0 . 0 5=' 1 ‑B e t a' v a l u巴 A 0 . 0 5‑1 .0 0=' Beta'; もm a c r o P O W E R l(N N E X, 附 1 ,附2 ,附3 ,附4 , 剛1 ,剛2 ,剛3 ,剛4 , S S I,S S 2,S S 3,S S 4 ); l = & N N 1,N 2 =品川3 , N 3 = & 附3 , N 4 = & 附 4/M l =品川1, M 2 = & 剛2 , M 3 =品川3 , M 4 =品川4/ T i t l e 2"くくく N 品S S I,S D 2 =品S S 2,S D 3 = 品S S 3,S D 4二 品S S 4>>> " , S D 1 = d a t aD l; N G R O U P 4, a r r a y 附1 4 1 N l ‑N 4 a r r a y M1 4 1 M l ‑M 4 a r r a y S D I 4 1 S D l ‑S D 4 ニ 肥 X=品N N E X; N l =品川 1, N 2=品川2 , N 3=品川3 N 4=品川4 , 4 =品剛4 , 2=品剛2 , M 3=勧制3 , M M l =品川 1, M S D l二品SSI; S D 2 =品SS2; S D 3ニ品S S 3; S D 4 =品S S 4; s e e d ニ o, d oE X=1t oN E X; 日 =1t oN G 即日; d o G R O d o I D=1t oN NI G R O U P I; Y=i n t (M I G R O U P I +S D I G R O U P I *r a n n o r ( s e e d ) ); o u t p u t e n d, e n d, e n d k e e p E X G 即日 I D Y; * p r o cp r i n t d a t a = D l, o p r i n t, p r o cg l m d a t aD l o u t s t a tO l I I 1 n c l a s s G R O U P, m o d e l Y=G R O U P/ s s 2; 2,G 3,G 4 ( A N O V A ) ' G R O 凹 ‑ 3 1 1 1, c o n t r a s t' I : G l,G G R O 凹 o‑2 1 1, G R O 凹 o0‑1 1 ; c o n t r a s t' 2 : " ( L i n e a r ), G 四 一3‑ 1 13 ; R O c o n t r a s t' 3 : " ( Q u a d r ) ' G R O U P 1‑ 1‑ 1 1 ; G R O U P 3‑ 1‑ 1‑ 1 ; c o n t r a s t' 4 : G lv sG 2 + G 3 + G 4 c o n t r a s t' 5 : G l + G 2v sG 3 + G 4 G R O 凹 1 1‑ 1‑ 1 ; G R O凹 1 1 1‑ 3 ; c o n t r a s t' 6 : G l + G 2 + G 3v sG 4 c o n t r a s t' 7 : G l, G R O G 2, G 3( 馴O V A ) 凹 o‑2 1 1, G R O 凹 o0‑1 1 ; 2,G 3 (L i n e a r ), G c o n t r a s t' 8 : G l,G R O U P 0‑ 1 0 1 ; 二 b y ニ E X; ‑259‑

263.
[beta]
添付 1 (続き)

p
r
o
c t
a
b
u
l
a
t
e d
a
t
a
=
O
U
T
1 n
o
s
e
p
s,
whereηPE ='
C
O
問'RAS
T
',
c
l
a
s
s S
O
U
R
C
E
̲P
R
O
B;
一
, P
R
O
B刊 日 七7
.p
c
t
n
<
P
R
O
B
>
=
'
%
'
*
f
=
8
.
1
) a
l
l吋 =
7
.
t
a
b
l
e S
O
U
R
C
E
f
o
r
r
n
a
t P
R
O
B A
S
T
A
.;
r
u
n ,
%
r
n
e
n
d 問W
E
R
1;

NE
X N
S
D
本/
M
e
a
n
%
p
o
w
e
r
1 (1
0
0
0, 5,5,5,5, 9
0,
7
0,
6
5, 1
5,8
5,1
5,
2
0,2
0
)
%
p
o
w
e
r
l (1
0
0
0,
7,7,7,7, 9
5,8
0,
7
0,
6
5, 1
5,1
5,
2
0,
2
0
);
見p
o
w
e
r
1 (1
0
0
0, 1
0,1
0,1
0,1
0, 9
5,
8
0,7
0,
6
5, 1
5,
2
0,2
0
);
5,1
%
p
o
w
e
r
l (1
0
0
0, 1
5,1
5,1
5,1
5, 9
5,8
0,
7
0,
6
5, 1
5,
2
0,
2
0
)・
5,1
/
本

もp
o
w
e
r
1 (1
0
0
0,

見p
o
w
e
r1 (1
0
0
0,
見p
o
w
e
r
1 (1
0
0
0,

5,5,5,5, 9
5,8
0,
8
0,
8
0, 1
5,1
5,
2
0,2
0
)
1
0,1
0,1
0,1
0, 9
8
0,
8
0,
8
0, 1
5,1
5,
2
0,
2
0
)
5,
1
5,1
5,1
5,1
5, 9
5,8
0,8
0,8
0, 1
5,1
5,
2
0,2
0
)

γA

n
n
u
<
<
<N
1
=
5,
N
2
=
5,
N
3
=
5,
N
4
=
5/M
1
=
9
5M2=
8
0M
3
=
7
0M
4
=
6
5/S
D
1
=
1
5
.
S
D
2
=
1
5
.
S
D
3
=
2
0
.
S
D
4
=
2
0>
>
>
P
R
O
B

1

│一一一一一一一一一ー

1

一一一一一一一 1

1

1‑B
e
t
a

1
‑
‑一一一ー
1 N
│一一一

5
6
9
1
7
6
2
1
9
9
1
6
7
3
1
6
6
0
1
4
3
0
1
2
0
0
1
2
5
5
1

‑260

1
1A
I
l 1

B
e
t
a

一一+一一一一一一一一+一

1 弘

一一一ー一一一ー←一一一一一+一一一

I
̲
S
O
U
R
C
E
̲
1
1
:
G
1
.
G
2
.
G
3,G
4
(
A
N
O
V
A
)
"
(
L
i
n
e
a
r
)
1
2
:
"
(
Q
ua
d
r
)
1
3
:
1
4
:
G
1v
sG
2
+
G
3
+
G
4
G
4
1
5
:
G
1
+
G
2v
sG
3+
1
6
:
G
1
+
G
2
+
G
3v
sG
4
2,
G
3 (fu~OVA)
1
7
:
G
1,G
G
2
.
G
3
(L
i
n
e
a
r
)
1
8
:
G
l,

1
1 N

1 弘

一│

1 N

1

←一一→一一一一+一一一一一│

5
6
.
9
1
7
6
.
2
1
9
.
9
1
6
7
.
3
1
6
6
.
0
1
4
3
.
0
1
2
0
.
0
1
2
5
.
5
1

4
3
1
1
2
3
8
1
9
0
1
1
3
2
7
1
3
4
0
1
5
7
0
1
8
0
0
1
7
4
5
1

4
3
.
1
1
2
3
.
8
1
9
0
.
1
1
3
2
.
7
1
3
4
.
0
1
5
7
.
0
1
8
0
.
0
1
7
4
.
5
1

1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1

264.
[beta]
添付 2 4群の 2値データに対するシミュレーション・プログラム
T
it
l
e '
P
O
W
B
0
6
B
.S
A
S 1
9
9
536 Y
.T
a
k
a
h
a
s
h
i ・;
o
p
t
i
o
n
s I
s
=
9
0 p
s
=
5
5,
p
r
o
c f
o
n
n
a
t
v
a
l
u
e Gl
̲
2
3
4
F 1
=
'
1
' 2
=
'
23
=
'
2
' 4
=
'
2
';
=
'
2
' 4
=
'
2・;
v
a
l
u
e G
1
2
̲
3
4
F 1
=
'
]
' 2
=
'
13
v
a
l
u
e G
1
2
3
̲
4
F 1
=
'
]
' 2
=
'
!
' 3
=
'
14
=
'2
';
p
r
o
c f
o
n
n
a
t
v
a
l
u
e A
S
T
A 0
.
0
00
.
0
5='
1 ‑B
e
t
a'
0
.
0
51
.0
0=' Beta';
耳
目a
c
r
o P
O
I
V
E
巴(
NNEX,

N
N
I,附2
,
N
N
3,N
N
4, 協1,陥1
2
.附 3
.陥I‑l) ,
T
it
l
e
2.
.くくく N
I
=
針刺 1
,
N
2
=
&
N
N
3
.N
3
=
&
N
N
3
.N
4
=
創N
4/M
I
=
必
I
:
I
I
l.
M
2
=
産品ロ.M3=&l.~.β. M
4
=
&
¥
N
4
d
a
t
aD
I;
N
G
R
O
U
P=4 ;
a
r
r
a
y N
N1
4
1 N
I ‑N
4
a
r
r
a
y M1
4
1 M
l ‑M
4
X
N
E
X=針刑E
N
2=企州2 N
3=必刑3
N
4 =企附4,
N
l =必刑 1
M
l =勧制 1; ~也=品仏12; M
3 =品制3; M
4 =企陥,~!
s
e
e
d =0

E
X;
d
o e
x=1t
oN
d
o g
r
o
u
p=1t
oN
G
R
O
U
P;
Y= 1
N=r
a
n
b
i
n
(s
e
e
d, 州 I
g
r
o
u
p
l
. MI
g
r
o
u
p
l)
o
u
t
p
u
t,
Y=2 ;
N=N
NI
g
r
o
u
p
l ‑N ;
o
u
t
p
u
t,
e
n
d
e
n
d,
k
e
e
p E
X G
R
O
U
P Y N;
/
寧
くくく
1
:
G
l,
G
2
.G
3
.G
4(
刈O
V
A
) >>> *
/
p
r
o
c f
r
e
q d
a
t
a
=
D
I n
o
p
r
i
n
t
w
e
i
g
h
t N,
t
a
b
l
e G
R
O
U
P Y/C
附j ,
o
u
t
p
u
t o
u
t
=
O
U
寸1 C
附C
O
R C
N
回訓S;
b
y EX;
l
J
fl,
d
a
t
aO
s
e
t O
l
J
fl
T
E
訂 ='
I
:
G
l
.
G
2
.
G
3
.
G
4
(
A
N
O
V
A
) ,;
P =P
̲
C
M
H
R
M
S
o
u
t
p
u
t;
T
E
S
T=• 2
:
.
. (Linear)';
P =p
̲
C
陥
l
C
O
R
o
u
t
p
u
t;
k
e
e
p E
XT
E
S
TP
/ ・ < < <
3
:
G
Iv
sG
2
+
G
3
+
G
4 >>>> *
/
p
r
o
c f
r
e
q d
a
t
a
=
D
I n
o
p
r
i
n
t
w
e
i
g
h
t N,
t
a
b
l
e G
R
O
U
P Y/C
附;
o
u
t
p
u
t o
u
t
=
O
l
J
f
2C
附C
O
R C~四MS
b
y E
X,
f
o
n
n
a
t G
R
O
U
PG
l
̲
2
3
4
F
.;
d
a
t
aO
U
口;
s
e
t 0'2 ,
T
E
S
T='
3
:
G
lv
sG
2
+
G
3
+
G
4
';
P =Pα剛 I
S
k
e
e
p E
XT
E
S
T P;
1
*
<
<
<4
:G1
+
G
2v
sG
3
+
G
4> > > ホ /
p
r
o
c f
r
e
q d
a
t
a
=
D
I n
o
p
r
i
n
t
w
e
i
g
h
t N;
t
a
b
l
e G
R
O
U
P本 Y/CMH;
J
f
3C
附C
O
RC
M
H
R
M
S
;
b
y EX;
o
u
t
p
u
t o
u
t
=
Ol
f
o
n
n
a
t G
R
O
し
J
PG
1
2
̲
3
4
F
.;
d
a
t
aO
U
口;
s
e
t 03
T
E
S
T='
4
:
G
I
+
G
2v
sG
3
+
G
4
';
P =P
̲
C
M
H
R
M
S;
k
e
e
p E
XT
E
S
T P;

・

・

‑261

265.
[beta]
1
*
<
<
<5
:
G
l
+
G
2v
sG
3
+
G
4>>> *j
p
r
∞ freq data=DI noprint
w
e
i
g
h
t N;
t
a
b
l
e G
R
O
U
P Yj C
凶;
o
u
t
p
u
t o
u
t
=
01
J
f
4 C~別COR C~IfIR\IS;
b
y EX;
f
o
r
m
a
t G
R
O
l
J
PG
I
2
3
̲
4
F
.
d
a
t
a0
1
J
f
4;
s
e
t O
U
庁4,
T
E
S
T='
5
:
G
I
+
G
2
+
G
3v
sG
4
'
p
=P
̲
C
凶
‑
!
R
¥
I
S;
k
e
e
p E
XT
E
S
TP
/
*
<
<
<='
6
:
G
2,G
3,G4(以 0
¥
'
,
1
)>
>
> *j
p
r
o
c f
r
e
qd
a
t
a
=
D
I n
o
p
r
i
n
t
w
h
e
r
e GROUP'=1;
w
e
i
g
h
t N
t
a
b
l
e G
R
O
U
P Yj C
附;
o
u
t
p
u
t o
u
t
=
01
J
f
5C
附C
O
RC
M
H
R
,
¥
!
S;
b
y EX;
1
J
f5;
d
a
t
a0
庁5,
s
e
t O
U
T
E
S
T='
6
:
G
2,G
3,
臼 (
A
N
O
V
A
),
P =P
_C~IfIR\IS ;
o
ut
p
ut;
T
E
S
T='
7
:
.
. (
L
i
n
e
a
r
)
'
附C
O
R
o
u
t
p
u
t;
P =p
̲
C
k
e
e
p E
XT
E
S
T P;
/ 本 < < < 百S
T 1
,
2
,
3,
4,
5,
6 >>> *j
d
a
t
ao
u
t,
s
e
t 0
1
J
f1O
U
T
20
1
J
f
30
1
J
f
40
1
J
f
5;
J
f n
o
s
e
p
s
p
r
o
c t
a
b
u
l
a
t
ed
a
t
a
=
OI
c
l
a
s
sT
E
S
T P;
本
(nf
=
7
.p
c
t
n
<P>='%'吋 =
8
.
1
) a
l
l吋={. ,
t
a
b
l
eT
E
S
T,P
f
o
r
m
a
t PA
S
T
A
.;
run

%
m
e
n
dP
O
l
V
E
R
2
/ 本 阻X

%
p
o
w
e
r
2 (1
0
0
0,
%
p
o
w
e
r
2 (1
0
0
0,
%
p
口
百e
r
2(1
0
0
0,
%
p
o
w
e
r
2 (1
0
0
0,

M
S
D
勺
1
0,1
0,1
0,1
0, 0
.
2
0,0
.
4
0,0
.
5
5,0
.
6
0);
5,1
5,1
5, 0
.
2
0,0
.
4
0,0
.
5
5,0
.
6
0);
1
5,1
0,2
0,2
0, 0
.
2
0,0
.
4
0,0
.
5
5,0
.
6
0);
2
0,2
2
5,2
5,2
5,2
5, 0
.
2
0,0
.
4
0,0
.
5
5,0
.
6
0);

N

もp
o
w
e
r
2(
1
0
0
0,

2
0,2
0,2
0,2
0, 0
.
2
0,0
.
4
0,0
.
4
0,0
.
4
0);
5,2
5,2
5,2
5, 0
.
2
0,0
.
4
0,0
.
4
0,0
.
4
0);
%
p
o
w
e
r
2(
1
0
0
0, 2
0,3
0,3
0,3
0, 0
.
2
0,0
.
4
0,O
.刊
, 0
.
4
0);
%
p
o
w
e
r
2(
1
0
0
0, 3
%
p
o
w
e
r
2 (1
0
0
0, 3
5,3
5,3
5,3
5, 0
.
2
0,0
.
4
0,0
.
4
0,0
.
4
0);
r
u
n,

<
<
<N1=10,N2=10,N3=10,N4=10 / M1=0.20,胞 =0.40,旧 =0.55.M
4=0.60

1

P

1

│一一一一一一一一一一一一一一一一一 ‑
I
1
1
1̲Beta
1
Beta
1A
I
l 1
I
‑
‑
一一 一ー
+
一一一一一一一一+一一一一一 l
1 N 1 也
1 N 1 %
1 N 1
l
一一一一一一一一一一+一一一一+ーー
ーー+一一一ー+一一一ー一一→一一一一ーー│
直訂
1
1:
G
1
.G2,
G3,
G4(
刷O
V
A
)1 3391
3
3
.
9
1
6
6
1
1
6
6
.
1
1 1
0
0
0
1
(
L
i
n
e
a
r
)1 5
1
2
:
0
9
1
5
0
.
9
1
4
9
1
1
4
9
.
1
1 1
0
0
0
1
1
3
:
G
1 vs G2+G3+G4
4
2
0
1
4
2
.
0
1
5
8
0
1
5
8
.
0
1 1
0
0
0
1
14:G1+G2vs G3+G4
4
2
8
1
4
2
.
8
1
5
7
2
1
5
7
.
2
1 1
0
0
0
1
G2+G3 vs G4
1
5
:
G
1+
2
5
4
1
2
5
.
4
1
7
4
6
1
7
4
.
6
1 1
0
0
0
1
16:G2.G3.G4 (N~OVA)
1
1
0
1
.01 8901
8
9
.
0
1 1
11
0
0
0
1
" (
L
i
n
e
a
r
)1
1
7
:
1
4
2
1
1
4
.
2
1
8
5
8
1
8
5
.
8
1 1
0
0
0
1

.
.

‑262

266.

日本 SASユーザー会 (SUGI‑J) 医 薬 品 副 作 用l輔自1 シ ス テ ムr A L I S J 0安藤永一山橋愛子 日本ルセル株式会社 研究開発本部解析課 A L I S,w h o l巴 a d v e r s ee v e n t sv i s u a le s c o r ts y s t e m ,A .Y a m a h a s h i E . A n d o h e s e a r c h&D e v巴1 0 p m 巴n tD i v i s i o n, B i o m e t r i c s,R N i p p o nR o u s s e I C~ , L t d 4 ‑ 1 ‑ 2 1,N i h o n b a s h iM u r o m a c h , i C h u o ‑ k u,T o k y o i I f i . 5 1 . : 1 , ニ 日 iALISJは、市販後医薬品の副作用情報を一元的に管理し、厚生省への報告業務を 支援するシステムである。本システムは、 HP‑UX 版 SAS/AF 、 SAS/FSP および SAS/SHAREソフトウェアにより開発さ才L 、現在、 UNIXワークステー ション上で稼働し、実務に活用されている。本システムの開発課程において、 UNIX とWindowsの比較および SAS/SHAREソフトウェアの有用性について検討 を行った。 SAS/SHAREソフトウェア、 UNIX、Windows キーワード: 1.はじめに ‑ I Y 昨 の SUGI‑J' 9 3において、我々は、 SASシステムを使用して自社開発し たアプリケーションである「新薬開発業務支援システム CLIS2Jについての発表を行 なった。当時、 CL1 S2は 、 UNIX ワークステーションのネットワーク上で稼働する 系統 C UN1X系)とパーソナルコンビュータのネットワーク上で稼働する系統 C PC系) 系 ‑PC 系聞のデ とを有機的に統合したシステム構成をとっていた。そのため、 UNIX ータ転差処理が必要なこと、 PC 系のデータベース更新処酷車度が遅~ ,こと等が問題点と してあげら払解決のための検討課題として i UN1Xへの統一」カ嘆されていた。 ! l CLIS2のパージョンアップを継続的に行なってきたが、 1994年 12月、すべてのシステムを UNIX 上で構築したパージョンをリリースし、 この発表の後も我々は、 システム全体のパフォーマンスや各サブシステムの操作性を大幅に向上することができた。 一方、機能の面でも、 1994年 5月、市販後医薬品の副作用情報を管理するサフ守シス テム i ALISJを新たに開発。これを加えて、業務支援の守備範囲を拡大した。 こうして CLIS2は強化さ才い現在、名称を改め i CLISJ として稼働している。 今回は、新たに追加した機能である医薬品副作用情報管理システム i ALISJをとり あげ、 SASシステムによるシステム構築についての報告を行なう。 qru pb q o

267.

2 . AL1Sの概要 2‑1 開発の車五邑 1994年 2月、我々は、市販後医薬品の副作用情報の管理をコンビュータ化して業務 効率を上げるため、本システムの開発に着手した。 この業務を担当している部門では、それまで、 の記録と書類のファイリングで行なう、 (1)入手された情報の管理は、台帳へ (2)厚生省への提出カ事務付けられている副作 用報告は、必要な書式ごとに別々にワードプロセッサを使用して作成する、など、ほとん どの業務を手作業で行なっていた。 業務分析の結果、機能としては後述 (2‑3)のものが必要であり、必要とされるデー タ項目や出力帳票も整理された。そこで次に、以下に記す検討を行なった。 (1)何を使って構築するか? 「同ーのソースデータから複数の異なった複雑な帳票(定型)を作成する必要があ データを追加・修正することがある」ことから、ワードプロセッサによる管 るJ r 理は、言うまでもなく、非効率的である。ソースデータを一元的に入力・蓄積して 管理し、必要に応じて、決まった書式で出力できるシステムが必要である。 「弊社の環境では、複数人で同時にデータ入力を行なう必要性は、現在のところほ とんと、なしリことから、同一データを複数のユーザが同時に書き込みモードでオー プンするための機能は不要である。また、 「厚生省に提出し、登録した資料を保存 する必要はあるが、それまでのデータ変更の臨邑を全て記録し保存しておく必要は ない」。したがって、特別な排他制御や完全な履歴管理の機能は必要ではない。 「システムか稼働した後も、入力帳票(=入力項目)および出力帳票のレイアウト などが変更される可能性が大きい」ことから、データ構造の変更やレコードの追加、 削除が容易であることが望ましい。 以上の点を考慮すれば、本システムも、特に市販のリレーショナルデータベースを 使用せず、 SASシステムのみで構築し得ると判断した。 SASシステムは非常に柔 軟性が高いので、例えば、現在想定されていない要求が生じたような場合でも、よほ どのことでない限り対応できると考えた。 さらに、 SASシステムであれば、‑殻のユーザでも比較的容易にプログラムが作 成できるので、簡単なデータ集計などは自由に行なえるという利点もある。 ‑ 2 6 4一

268.

C2 ) プラットフォームは UNIXかWindowsか ? 先にも述べたように、 CLISシステムを UNIXに統一する計画があったので、 上で構築することを考えた。しかし、本システムの場合、 当初、本システムも UNIX ユーザ数が、データ入力の 1 , . . ̲ ,2 人を含めた数人(1日のべ 1 , . . ̲ ,2 人程度〉であるこ とから、必要台数は 1 , . . ̲ ,2 台であり、また、厚生省への資料提出をフロッピテeィスク で行なうものがあるため、フロッピテeィスクドライブが必要となるが、 UNIX‑WS の場合、メテ'ィアとしてフロッピテーィスクは一般的ではなく、フロッピーディスクへ の出力操作は PCに比べて容易ではない。さらに、一般的なスペックの PCであれば、 価格的には UNIXより安い。これらのことから、 Windows上での構築も検討 すべきであると考え、いくつかの点について、 UNIXとWindowsの比較を行 なった。その結果を表 lに示す。 表 1 UNIXとWindowsの比較 評価項目 U N I X W i n d o w s ケ リ 7 ド シ ン ー7 ョ ィ ン ー の l し l 7 b 7 ? ? 大変満足 不満 . f i 車 度 処l 大変満足 不満 セキュリティ やや満足 大変不満 安定性 満足 やや不満 開発のしやすさ 満足 やや不満 ハードウェ了の価格 やや不満 満足 (大変満足、満足、やや満足、やや不満、有昔、大変有高の 6段階で評価〉 これらのうち、特に問題となったのは処置車度とセキュリティである。 まず、処直車度については、本システムの疾患コードを検索するサブシステムのプ ロトタイプを使用して UNIXとWindowsの速度を比較してみたところ、表 2 のような結果であり、 UNIX‑WSが最も速かった。少なくとも、もし、 Windowsを使用するのであれば、 PentiumC90MHz)以上の PCで なければ実用にならないと思われた。 表 2 UNIXとWindowsの処理車度の上国交 U N I X W i n d o w s C P UC ? 口 " ,7 ) P A ‑ R I S C( 5 0 附z ) P e n ti u m( 9 0 附z ) i 4 8 6 D X 4( 6 6 附z ) メモリ 処理時間 3 2 M b 2 4 M b 2 0 M B 約1 0 秒 約2 5 秒 約l 分2 5 秒 0 b sず、つ f e t c hし 、 i n d e x関数 C 2 8 9 4 0 b sのデータセットからシーケンシャルに 1 により、指定した変数に「肺炎」とし寸文字を含むo b sを抽出する〉 F町 nd p oυ

269.

次に、セキュリティについては、 Windowsの場合、基本的には誰でもファイ ルの書き換えが可能であるので、副作用のような重要な情報で、今回のように、 SAS データセットのみでデータベースを構築する場合には不向きではないかと思わわれた。 その点、 UNIX の場合には、ユーザ別やグループ別のファイルの保護か可能である ため、本システムのようにクローズドの環境で使用される場合には、十分とは言えな いものの、とりあえず、実用上は問題ないであろうと判断した。 その他、アプリケーションのルックアンドフィールは UNIXとWindowsで はかなりの差があり、 UN1X (特に Motif)を見慣れてしまうと Windows は貧弱に感じられる。特に、 Windows版 SASでは、プッシュボタン等のオブ ジ、ェクトの色が変えられず、使いやすいユーザインターフェースを作るためには大き な障害となる。 また、システムの安定性は、弊社の環境だけの問題かもしれないが、 Windows の方が、ダウンする頻度が若干高いように思わ才k さらに、ダウンすると他のアプリ ケーションまで景見聾を受けてしまう点も問題となった。 以上のような点を総合的に考慮して、やはり、本システムは UNIX 上で構築する ことにした。最初に述べたフロッピテ'ィスクの問題は PCを接続して FTP等による ファイル転差によって解決することにした。 (3) CLISシステムの中に作り込むか、独立のアプリケーションとするか? 現在、弊社での市販後医薬品の副作用情報に関する業務は、 CLISで、カノ〈ーさ れている新薬の開発段階での業務とは、重なる部分がほとんどない。 しかし、今後、 CLISに蓄積された開発段階での副作用に関する情報と市販後の 副作用に関する情報とを統合し、一括管理する必要が生じてくることは十分予想され る。したがって、システム開発時には独立したアプリケーションとして設計・構築を 行ない、後に CLISの中に組み込むことにした。 以上の検討結果から、結論として、このシステムは CLISのサブシステムのーっと位 置付け、 CLISのコンセプトに従って構築することにした。すなわち、データベースは SASデータセットのみとし、システムプログラムは SAS/AFおよび SAS/FSP ソフトウェアにより開発し、 UNIX 上で稼働するメニュー選択式のビジュアルアプリケ ーションとする、また、ハードウェアおよびソフトウェア構成は後述 ( 2‑2 )のとおり とすることに決定した。 ‑266

270.

2‑2 ハードウェアおよびソフトウェア構成 本システムに使用したハードウェアおよびソフトウェアの一覧を表 3に示す。また、全 体のシステム構成を図 lに示す。 表 3 ハードウェア・ソフトウェア一覧 7 C P U ~7 トウェ 7 H P ‑ U X9 . 0 O S S A S 6 . 0 9 7 オ ー ム オ ー バ レ イ :H PF o r m D i r e c t o r1 . 1 1 ¥ ‑ ド ウ ェ7 C P U nト ウ ェ7 ネ ッ ト ワ ‑ , U N I X P C :H P 9 0 0 07 1 5 / 5 0 l台 :H PC 1 2 0 8 A 1 台 ハ ー ド ウ ェ7 リ 〉 担 IB~I552 ト Y18 O S 1 台 :~IS-Windo \V s 3 . 1( lB MD O SJ 5 . 0 2 D / V ) W R QT C PC o n n e c t i o nf o rW i n d o¥ Vs4 . 0 W R QR e f r e c t i o nXJ 4 . 1 1 W O R K S T A T1 O N H P 9 0 0 0 7 1 5 / 3 3 7 1 5 / 3 3 7 1 5 / 3 3 7 1 0 7 1 0 図 l システム構成図 2 6 7一 7 1 0 X ‑ T E R M I N A L

271.

2‑3 主な機能 全てメニュー形式であり、データ入力時の文章入力以外はほとんど、がマウスのクリック 選択という簡単な操作で使用できる。 (1)入手形態の異なる副作用情報全てを統一的に、しかも容易に入力できる 入手情報のフォームにこだわらずに、副作用情報として必要となる項目を網羅し たデータ構成とし、入手した副作用情報全てを、自社の販売製品別に、報告症例単 位で入力できるようにした。コード、入力が必要な項目については、予めコード表を 引くなどの下調べをせずとも、入力時に、ポップアップ式のコード一覧からの選択 またはコード表のオンライン検索を利用して簡単に入力できるようにした。 ( 2)副作用の既知・未知を自動的に判定する 従来は、豊富な実務至験をもった社員のみが行なっていた「報告された副作用が 既知のものか元法日のものかの判定」を行なう機能をもたせた。すなわち、添付文書 に記載されている副作用(およびそれと同義とみなされる記述 いわゆる、読みか え〉をあらかじめデータベースに登録しておき、報告された副作用を入力した時に、 システムがその場で直ちに既知か未知かを判定するように設定した。 (3)厚生省への報告区分を自動的に判定し、報告期限を表示する 報告症例単位に、副作用項目と情報入手の区分を入力した時点、で、システムがそ の場で直ちに 15日報告対象か 30日報告対象か集積報告対象か年次報告対象かの 区分を判定し、報告対象の場合はその提出期限も併せて画面表示する。 (4)厚生省提出用医薬品副作用症例票(様式 2‑2) を自動的に作成する 入力画面上の必要項目がひととおり入力できた時点ですぐに、複雑な提出規定を 知らない人でも、印刷ボタンをクリックするだけで自動的に規定に合致した医薬品 )を作成できる。 副作用症例票(様式 2‑2 (5)厚生省す是出(フロッピー提出〉用ファイルシートを自動的に作成する フロッピー提出のフォーマットを知らない人でも、入力画面上の必要項目がひと とおり入力されていれば、 (4)の印刷と同時に自動的にデータが作成できるよう にした。また、内容確認用の印刷も併せて出力できるようにした。 ( 6)厚生省への報告が完了していない症例の警告表示をする 件ごとの背景を、期 報告が完了していない症例全てを一覧表示する。一覧中の l 限切れは赤、期限切迫は黄、余裕ありは青で表示し、視覚的に分かり易くした。 268‑

272.

(7)データ検索および該当症例の一覧表作成が容易にできる 検索される可能性のある項目を予めメニューの中に用意しておくことで、簡単に 検索条件の指定ができるようにした。また、挽宥後、条件に合致した症例について 定型の症例一覧表を印刷できる。一覧表のフォームは使用目的に合わせて、数種類 用意した。 さらに、ユーザーが個別に特別な資料を作成することも考慮して、検索結果は、 l症例 lオブザベーションの SASデータセットとして出力するようにした。シス テムのメニューから SASテーィスプレーマネージャーを起動できるように設定し、 SASテeィスプレーマネージャーからの操作でこの作業用 SASデータセットを自 由に加工することで、さまざまなデータ加里ができるようにした。 (8)集積報告や年次報告についての情報を掲示する 厚生省の規定に従った提出期限、報告対象となる症例数、提出済みならば提出年 月日、提出期限を過ぎた場合は期限切れの警告、などを一覧表示し、誰もが何時で も提出状況を参照できるようにした。 (9)コード表等のメンテナンス(辞書更新・情報追加・修正など)ができる 病名コード、医薬品コード、副作用用語コードについては、外部機関から購入し た電子データをシステムに取り込めるようにした。自社特有のコードも手間をかけ ずに追加・修正ができるようにした。ただし、これらは、コード辞書の管理者のみ が実行できるようになっている。 3 . SAS/SHARE対応版 fALISJ の開発 以前から我々は、業務上の必要性と見合わない高い投資をせずとも実現可能であれば、 「複数のユーザが、更新処理も含めて、ひとつのファイルに同時にアクセスできる」方が 望ましいと考えてはいた。しかし、高価なリレーショナルデータベースを使用するほどの 必須事項ではないと判断し、 SASデータセットのみからなるデータベースを構築して、 システム上で同時に複数のユーザが更新処理を実行できないように設計し、運用してきた。 昨年秋、 UNIX 版 SAS/SHAREソフトウェアリリース開始の情報を得、これを 使用すれば、高い投資をせずに排他制御やファイルの共用化か可能になると考え、現行の CLISシステムへの導入を検討することにした。 S i n g l e ‑ U p d a t巴環境で使用している SCLプログラムを M u l t i p l e ‑ U p d a t巴環境に移行す るために、どの程度のプログラム変更が必要になるかが問題となる。この検証の対象とし て、データとシステムプログラムを比較的小さな lパッケージとして分離・独立して使用 できることから、 ALISを用いることとした。 まず最初に、同ーの SASデータセットをアクセスする場合に、データセットのオープ ンモードの組み合わせによって、どのようになるかを検討した。 2 6 9

273.

問題となる点に対しては、矢作氏の発表 2)を参考にして、 SCL関数のリターンコード を利用することで、 SCLプログラムの変更を最小限におさえて、データセットの共用化 を実現した。 c uモード〉と書き込み c uモード)の組み合わせ (1)書き込み ‑同ーの SASデータセットに同時にオブザベーションを追加する 単純に、同じデータセットに同時にオブザベーションを追加するだけであれば、 SAS/SHAREソフトウェアの機能に任せれば問題なく実行できる。ところが、 本システムでは、データベースが複数のデータセットから構成されており、メイン データセット lオブザベーションに対しそれに関連づけられたオプザベーションが 複数のサブデータセットに存在する。メインデータセットの編集には SAS/FSP ソフトウェアを使用しており、このメインデータセットにオブザベーションを追加 する場合、サブデータセット群に新しいオブザベーションを追加する SCLプログ a p p e n d J関数の実行ルーチンが問題になる。 S i n g l e ‑ U p d a t e環境のプログ ラムの i ラムでは、 2ユーザーが同じメインデータセットに同時にオブザベーションを追加 した時、サブデータセットの正しい位置にオブザベーションができなかった。 この問題を回避するために、次に示すように、 i o b s i n f oJ関数を用い、 lつの オプザベーション追加処理が完全に終了するまで、他のユーザによる追加処理を実 行させない方式を採用した。 <M u l t i p l e ‑ U p d a t e環境のプログラム> d s n a m e l :S A SS H A R EL I B R A R Yにある共用可能データセット d s n a m e 2 :S A SS H A R EL I B R A R Yではなく通常の S A SL I B R A R Yにある 索引用データセット a d d w t i m e :新規追加処理最大待ち時間 i ni t : l o c k f = o b s i n f o ( 'L O C K E D ' ) ; <===表示されるオブザベーションが 他ユーザーにより ロックされているかを確認 i fo b s i n f o CN E W ') = 1t h e nd o ; <===表示されるオブザベーションが データセットに新規に追加された 未保存のものであるかを確認 d s i d = o p e n ( d s n a m e 1,' U ' ) ; d oi = 1t o1 0 ; r c = a p p e n d ( d s i d ) ; <===サブデータセットに 1 0オブザベーション追加 r c = u p d a t e ( d s i d ); e n d ; c a l lc l o s e ( d s i d ) ; r e t u r n ; ‑ 2 7 0一

274.

Eψ 令.︐ ︐︐︐︐︐ nH obm ・可ム︽む し 一﹄ ρw ‑ T LU+1 ンなン チポチ 一・川一 川︐パ ︑︑︐︐︐ゆみ白 ム WH ﹄ ・ n u n u +L' 一で追 'レ ︐ JC0 行ト行 要 ン 乙 一 0さ は ン ツ ; ま 要 加 チ 附 は e下 山 チ 引 叩 り き 加 dl 追一日出口ちば一 追新 Aunu ‑ b 'レ n f U‑‑ 告刈ふ主 主 ole‑A Au︑ s rr ︑ 実ぱ実 理・川;;理 U ︐・心';処 処;;九 の /1JUd 一 仏 / ん の 求 ヰ Uρhmい 一 本 ; せ 求 mb 何怒川引 温 ヨ4 M L v s f C生 Lh山 吉 凶 行 山 新認 M MUE 一 山 寸 加 ド 目 凶 凶 リ 一 山 ヨ ロブ U JJ' 一 nH 0u J 目地 レ ・ ン確問ぱ山内 U︐一一;引実o m e M J一 ︐ ン 引ヨ理司 d シ 処 E一 寸 寸 日 刊 日 比 追 r一l e d 同 時 間 シ ‑ d 一;規f一一副 ; F K m一ぱ;一 m 目的m 町 一 他 d一 α 山オヰ宇オ ・ r叫 べ 山 べ 排 UHF‑rfM新f.CM山ra 一 ザ O ザ︺ dsfde)iede トプ ・︐︐︐︐︐.・︐︐︐︐︐ nu‑‑rJ'JJ' F?4 1i ・ 玄 白 ・ ・ 玄 白 ・ nu q a m e n d ; r e t u r n ; ‑同時に同じオブザベーションを編集する SAS/SHAREソフトウェアの機能により、先にオブザベーションを取得し たユーザーがそのオブザベーションをロックし、他ユーザーの更新処理を拒否する。 その際、 SAS/FSPソフトウェアでは、後からオブザベーションを取得したユ ーザーに対し、表示されたオブザベーションがロックされているというメッセージ が送られる。 しかし、前述のように、本システムのデータベースは、メインとサブの複数のデ ータセットから構成されており、サブデータセットの編集には SAS/AFソフト ウェアで作成したスクリーンを使用していることなどから、サブデータセットの排 他処理を実現させるには制御が複雑となり、現行のシステムの SCLプログラムの ほとんどが修正対象となってしまう。この修正にかかる作業量とそれによって得ら れる効果とを勘案した結果、表示されるオブザベーションが他ユーザーにロックさ れている場合は、それに対応するサブデータセットのオブザベーションに対して、 編集等の更新処理を一切拒否し、 SCLのMainセクションで他のオブザベーショ ンへ移動するか、メンデータセットの入力スクリーンを終了するかの処理しか許可 しないとすることで、修正を最小限におさえての共用化を図ることにした。 2 7 1 ‑

275.

( 2 )書き込み (Uモード)と読み取り(Iモード)の組み合わせ ‑他ユーザーが編集中のオブザベーションを読む ‑他ユーザーが読んでいるオブザベーションを編集する いず、れの士易合も、プログラムを変更しないで、 SAS/SHAREソフトウェア の機能だけで特に問題なく実現できた。 i n g l e ‑ u p d a t e版 rALISJから M u l t i p l e ‑ u p d a t e 対応版 以上のような点をふまえ、 S 週間足らずであり、予想以上に早く終えること への変更を行った。作業に要した期間は 1 ができた。そして現在、 M u l t i p l e ‑ u p d a t e対応版を実際の副作用報告業務に使用しながら 検証を行なっている段階である。 しかしながら、例えば上述のオブザベーション追加の問題なども、システムの一昔日に更 に変更を加えれば SAS/SHAREソフトウェアの機能をより一層効果的に活用できる と思われる。また、本システムのあるプログラムの実行により、我々が使用している HP‑UX版 SASシステム ( TS037 )の SAS/SHAREソフトウェアには、若 干の問題点が潜在していることがわかり、その点については、現在 SAS 社が調査中であ る 。 4 . まとめ 今回、この r ALISJを開発する上で最も問題となったのは、システムのプラット にするかWindowsにするかという点であった。我々が、なぜ フォームを UNIX UNIXを選択したかという理由は前述の通りであるが、一般的にふ Windows の特性を考えれば、個人が自由勝手に使用するのではなく複数の人が同ーの機能を使用す る「システム」のプラットフォームには向かないのではなし 1かと考えている。すなわち、 Windows‑PCは 、 UNIX‑WSに比べると、コンビュータをあまり知らない人 でも手軽に比較的簡単に使うことができる(使い勝手が良いという意味ではなしゅ勺。し たがって、例えば、表計算ソフトやワープロなどの、いわゆるパーソナル OAのプラット フォームとしては、 Windowsは有力な選択肢の一つで、あろう。しかし、複数の人が 特別な目的のために同ーの機能を使用する「システム」のプラットフォームとして考えた 場合には、逆に、その「手軽さ」がデメリッ卜となってしまうのではないだろうか。例え ば、色々な設定の変更が全てのユーザに許されているので、アイコンの色や庁久位置等が 使う度に違ってしまうことも考えら才い同じプラットフォームを複数のユーザで、使うよう な場合には、色や形や位置等で操作方法を覚えている人にとっては、たいへん使いにくし、 ものになってしまう。また、システムファイルの削除や変更でさえも、全てのユーザが簡 単に行なえてしまうので、ちょっとした操作ミスでシステムが破壊されてしまうことも考 のようなコンビュータは、誰でも気軽に使える えられる。それに対して、 UNIX‑WS というわけではないので、パーソナル OAの道具には不向きであるかもしれないが、自由 に変更されては困る「システム」のプラットフォームとしては、 Windows‑PCよ ‑ 2 7 2一

276.

りも適しているのではないだろうか。このことは、特に、 SASのような自由度の高い言 語を使用してシステムを開発する場合には、考慮すべき重要な点になるのではなかろうか。 次に、 SAS/SHAREソフトウェアに対しての評価であるが、本システムによる検 証段階において既に、我々のシステムにとって非常に有用なプロタークトであることが確認 できたので、今後、 CLISの他のサブシステムにも導入し活用してゆきたいと考えてい る 。 さて、本システムを導入した効果についてであるが、これまで個々に任されていたデー タの管理が一元化されたことで、何時でも誰でもが副作用報告の件数や内容、報告業務の 進行状況を知ることができるようになった。あってはならない報告漏れや提出期限の超過 も一目でチェックできるようになった。また、このシステムを使用することで、副作用症 状の既知・未知判定および入手情報の報告区分の分別、厚生省への報告資料用のコーテ イ e ングなどの業務も、経験の浅い人にでも任せられるようになったので、豊富な実務詩玉験を もった社員の負担が軽減された分、より至験が必要とされる業務に専念することができる ようになり、効率的な業務分担・効率的な人員の配置が可能になった。作業に要する時間 については、 l資料の作成だけを考えると、導入前と比較した場合、より正確で詳細なデ ータ入力が要求されるようになった分、時聞が多くかかるようになった。しかし、入力画 面上の必要項目をひととおり入力した時点で、厚生省への提出資料の作成、問い合わせに 対する症例の検索、社内外で使用する資料(症例一覧表)の作成などが可能になること、 それらの間でのデータの整合性の検証が不要であることなどから、全体的な目で見れば、 むしろ、省力化できたのではないかと思われる。実務担当者からは、 「報告漏れや提出期 限の超過が一目でチェックできる J i データ入力の画面に向かったままでコード表検索が できて便利J i 症例のピックアップ(検索〉が楽になったJ i 業務の質が向上した」など が上げられている。現在、本システムは、完全に業務に取り入れられ活用されており、シ ステム導入の目的であった業務改善は一応の成功を収めたといえる。 なお、本システムの S i n g l e ‑ u p d a t e 版は、住商情報システム株式会社によりパッケージ 、 化 さ 才 1 . r . . iWAEVEJ という商品名で発売されている。この iWAEVEJ は iALISJから弊社特有の部分を除し、たもので、通常の副作用報告業務に必要とされる 機能をもつものである。今回の SUGI‑J' 95の会場にてデモンストレーションが予 定されているので、 UNIX‑WS上で HP‑UX 版 SASシステムにより構築されたア プリケーションのルックアンドフィールを実際に確認して頂きたいと思う。 最後に、 SAS/SHAREソフトウェアの導入にあたり、多くの助言を頂いた SAS インスティチュートジャパン株式会社斉藤宏、手塚節子の両氏に感謝致します。 ηJU ハ ベU ワ t

277.

参考文献 1 ) 安藤永一他日本ルセル株式会社, 1 9 9 3 ,r 新薬開発業務支援システム CLIS2J. 第1 2 回日本 SASユーザー会 ( S U G1 ‑J '9 3 )論文集., 1 0 7 ‑ 1 1 6 9 9 3, r 更新プログラム作成 2 ) 矢作浩行, SASインスティチュートジャパン株式会社, 1 のテクニック J,第 1 2回日本 SASユーザー会チュー卜リアル発表資料 注〉本論文中に記載した会社名・製品名は、それぞれ各社の登録商標または商標です。 2 7 4一

278.

SASシ ス テ ム に よ る 乳 児 期 の ア 卜 ピ ー 性 疾 患 発 症 予 測 に つ い て 0高 橋 幸 一 早j 畢 宏 紀 冨 田 守 白 鷹 増 男 本 宮 原 英 夫H 森永乳業(株)食品総合研究所 本北里大(医)医用情報学 件北里大(医療衛生)リハ1:"げ ‑ ; ; 3 / L o g i s l I CR c g r e s s i o nA n a l y s i so fThcR i s kF a c l o rf o rA l 0 p i cD i s e a s ei n[ n f a n l sandC h i l d r巴nbySAS S y s l巳m. K o u i c h iTakahashi, H i r o l o s h iHayasawa,MamorllTomila肘 (lorinagaMilk[ n d l l s l r yCo.,LTD.Food r c h& 0巴velopmcnl Lab o r a l o r y ) . MasuoS h i r a l a k a ( K i l a s a l oU n i v e r s i l ySchoolo fM e d i c i n c ) . R巳5巴a K i l a s a t oU n i v e r s i l yS c h o o lりfA I l i c dH e a l t hS c i巴nc 巴s ) . Hid巳oMiyahara( 要旨 乳幼児のアトピ一性疾患発症と家族のアトピ一性疾患既往歴の有無との関係を中心に全国 規模のアンケー卜調査を実施し、児のアトピー性疾患発症予測に有効な因子を明らかにす ると共に、これらを用いてどの程度正確な予測が行えるかを検討した。ロジスティック回 帰解析により、アトピ一性皮膚炎発症のリスクファクターとして家族歴、年齢、食物アレ ルギー、卵の摂取開始時期の 4項目が示唆された。 キーワードーアトピ一性疾患、家族歴、乳幼児、 SASjSTAT;Logistic プロシジャ 1 . はじめに アトピー性疾患は、遺伝因子(家族歴)と妊娠中及び出産後の児を取り巻く環境因子に よって発症又はその予後が影響されると考えられている。近年、アトピ一性皮膚炎を中心 としたアトピ一性疾患の増加は乳幼児を持つ親の育児不安の大きな一因となっており、家 族のアトピー性疾患既往歴などの簡単な問診から、ある程度のアトピ一性疾患発症の危険 性(確率)が推定できれば、この不安を軽減しアトピー性疾患発症予防に役立つものと思 、 IgE抗体値等と発症の関 われる。これまでの調査・研究では、 H L Aの表現型や R A S丁 係を中心としたものが多く、特定の地域で比較的小数例を対象とされていた。アトピ一性 疾患発症と家族歴との関係に重点をおいた全国規模の多数例で・の調査・研究は少ない。 2 目的 乳幼児のアトピ一性疾患発症と家族のアトピー性疾患既往歴の有無との関係を中心に全 国調査し、児のアトピ一性疾患発症予測に有効な因子を明らかにすると共に、これらを用 いてどの程度正確な予測が行なえるかを検討した。 3 方法 平成 5年 7月現在、満 1歳 児 ( : : ! : :1ヶ月)の 5千人と満 2歳児(::!::1ヶ月)の 5千人、 合計 1万人を対象として、児の母親に対する郵送法によるアンケート調査を実施した。 母子手帳副読本応募者リストから、全国都道府県別出生数・構成比に基づき対象者を抽 出し、調査用紙を発送した。回収された調査用紙のデータから家族のアトピー性疾患既往 ‑275‑

279.

歴を以下の 3群に分けた。 ①家族歴あり(医師の診断・治療歴あり)群、②家族歴疑いあ り(医師以外の判断による既往歴あり)群、 3家族歴なし(既往歴なし)群。対象児のア トピー性疾患(アトピ一性皮膚炎、アレルギ一性鼻炎、気管支鴨息)既往歴を、複数の設 問項目に対する解答から、それぞれの疾患毎に、 O v e r t ‑ .P r o b a b l e ‑ .P o s s i b l e ‑ .N o n e ‑ . の 4カテゴリーに分類した。設問項目は厚生省アトピ一性疾患実態調査票に準拠した。 アトピ一性疾患のリスクファクターとして、 T a b le1.に示す項目を検討した。 TabI e1 . 乳幼児のア卜ピー性疾患発症のリスクファクター 本 居 住 地 域 (7値変数) 本父親の既往歴(6値変数) I 買位(3値変数) 本児の出生 J *母親の既往歴(6値変数) *母親の年齢(定量変数) *同胞の既往歴(6値変数) *母親の職業の有無(2値変数) 本父方祖父母の既往歴(6値変数) ネ児の 3ヶ 月 迄 の 栄 養 法 (3値変数) *母方祖父母の既往歴(6値変数) ネ母親の妊娠・擾乳期の食事制限の有無(2値変数) *児の食事制限の有無(2値変数) 本 性 別 (2値変数) *離乳食開始時期(定量変数) 本児の年齢(2値変数) 本卵の摂取開始時期(定量変数) 本児の食物アレルギーの有無(2値変数) 本牛乳の摂取開始時期(定量変数) 2群聞の差の検定には X2検定及び F i s h e re x a c tt e s t を、関連の検定には Cochran M a n t e l ‑ H a e n s z e l検定を、リスクファクターのオッズ比算出にはロジスティック回帰分析を 用いた。解析には、 SASシステムを使用した。 4 結果 回収された調査用紙のうち解析対象として有効と判断されたのは、 1歳児 2 .7 1 4 (回収率 5 4 .3 % ) . 2歳児 1 .8 9 5 (回収率 3 7 .9 % )の合計 4 . 5 1 0通であった。 461 0人の乳幼児のうちアトピー性疾患が O v e r t 又は P r o b a b l巴あった児(発症し た児)は、 2 2 .5 %( 1 0 3 1人)、 1j歳児では 2 1 .1 、 目 2歳児では 2 5 . 1 %であった ( Fi g .1 ) 。 ‑276‑

280.

F i g . 1 I n c i d e n c eo fa t o p i cd i s e a s e 3 0 2 5r i 圏P robablel [ i 図O vert 2 0 1 5 1 0 5 ¥ tD ¥ ti l B ¥ t 1Year 2 Years 年齢別の発症率は、統計的に有意に 2歳児に高かった (P<O.01)。また、家族歴のある児 の約 2 0 %は何等かのアトピ一性疾患を発症していた。 2親等以内に家族歴のある児は、 2699症例 (58.5%) で、そのうち両親にのみアレルギ ーの既往歴があった児 484症例 (10.5%) の 27.3%にアトピ一性疾患が発症していた。ま た、家族歴のない児の 8.8%にアトピー性疾患が発症していた (Table.2) 。 Table2 . A t o p i cd e r m a t i t i si nr e l a t i o nt of a m i l yh i s t o r y Onep a r e n t Bothp a r e n t s S i b r i n g s G r a n d p a r e n t s Withf a m i l yh i s t o r y W i t h o u tf a m i l yh i s t o r y T o t a l N 1656 484 354 205 2699 1 9 1 1 4610 % 3 5 . 9 1 0 . 5 7 . 7 4 4. 5 8 . 5 .5 41 100 a t o p i cd e r m a t i t i s % N 325 1 9 . 6 132 2 7 . 3 54 1 5 . 3 26 1 2 . 7 537 1 9 . 9 168 8 . 8 705 1 5 . 3 Overt と判定されるアトピ一性疾患の発症を予測する為にロジスティックモデルを用い 巴c tion) を試行し、検討したアトピ一性疾患の て単変量解析と多変量解析 (Stepwis巴 S巴 l うちアトピー性皮膚炎の発症予測に有用と思われるモデルを見出した。このモデルを用い ヴー ヴt n J臼

281.

て事前確率を判別区分点として 4 6 1 0症例の予測結果を発症あり、発症なしに判別した結果 は、発症あり 1 7 7症例中 1 3 4症例が発症あり(感度 7 5 .7 % ) と判別され、発症なし 4 4 3 3症 例中 3 6 4 2症例が発症なしと判別された(特異度 8 2 .2 % )。 T a b l e 1.に示したアトピー性疾患発症のリスクファクターのうち、ロジスティック回帰 解析の結果、家族歴、年齢、食物アレルギ一、卵の摂取開始時期の 4つの項目がアトピー T a bI e .3 )。 性皮膚炎発症のリスクファクターであることが示唆された C Table3 . Effectofcertainvariablesonr i s ko fa t o p i cd e r m a t i t i si nthe m u l i t i p l el o g i s t i cregressiona n a l y s i s . v a r i a b l e 日 SE oddr a t i o 95%c o n f i d e n c ei n t e r v a l Familyh i s t o r y 0 . 5 8 2 1 0 . 1 1 1 8 1 .79 44‑2.23 1. Age 0.3437 0.1659 1 .41 1 .02‑1 .95 Fooda l l e r g y 2. 4658 0.1824 11 .8 8 . 2 3‑1 6 . 8 3 Eggi n t r o d u c e d 0.0620 0.0267 1 .06 1 .0 1‑1 .12 アトピ一性皮膚炎発症の相対危険度は、家族歴なしを 1とした場合、父親又は母親のい づれか 1人にある場合では1.8倍、両親ともにある場合では、3.2倍になることが明らかと なった C Fig .2 )。 F i g .2 R e l a t i v er i s ko fa 1 : q ) i cd e r m t i t i si n d 1 H世 田 厄 由 d i f f e r m t: D 掴i l yh i s おd白 3 . 5i 3 2 . 51 2 1 .5 い / . . ‑ 。 0 . 5‑ 1 一一一一ーーーーーL一一一一一一一一一一 ¥ ¥ ' it h o u t ¥ ¥ i t h lmm l V l l l s t o r E i s f u i ' v I I I o n e J ll l r e n t 、 ‑278一 一 ー ー 一一̲j W i t h I l l s t O l ・V i i i b o i h pal ' P! 1 b

282.

日本 SASユーザー会 (SUG卜 J ) 患者より見た病院サービス評価の曜日間変動 0田 久 浩 志 東邦大学医学部 病院管理学研究室 E v a l u a t i o no fs e r v i c eq u a l i t yv a r i a t i o nf o r o u tp a t i e n td u r i n gweekd a y s TakyuH i r o s h i i,Depa吋mento fH o s p i t a lA d m i n i s t r a t i o n TOHOU n i v .,5・2 1 ‑ 1 6 Omori‑Nishi Schoolo fMed., Tokyo, 143, Japan Ota‑ku, 要旨 患者より見た病院サービスの評価において、重視度・満足度関係をP C 版S ASシステムを用 いて作成し、受療推薦度、満足度、重視度の関係を用いた場合の病院サービス評価の曜日間変動を 6日間にわたり行い検討した。その結果、患者数と医師数のバランスが診察待ち時間に影響を与 え,診察待ち時間の満足度が変化すること、また、診療待ち時間以外の質問項目についての満足度 と重視度、及び受療推薦度は曜日間変動が無いものの、土曜日の受療推薦度が低下する傾向にある こと、などが判明したので報告する。 キーワード:満足度、重視度、 P C 版S A Sシステム 1.はじめに 近年、一般産業では顧客の満足の重要性が指摘され1.2)、それにともなって医療の現場 においても、患者の満足度の測定と要因解析の報告が盛んに行われるようになった刊。 著者は大学病院を対象とし、患者の立場よりの病院の患者サービス状況を示すサービス 評価指標として、患者の満足度、重視度、受療推薦度を開発し、外来患者サービスの問 題点の抽出を試みその結果について既に報告した九 最近、週休 2日制の導入に伴い、多くの企業、国公立病院は土曜日が休みとなり、そ の結果、民間病院の土曜日の受診患者が増加してきでいる。このことは、曜日によって 患者のサービス評価が変動する可能性をも示唆するものと考えられる。しかしながら、 前回の大学病院を対象として行った患者の満足度の解析は、連続する 2日間を対象とし た調査であったため、各サービス評価指標の曜日間変動の検討は行っていなかった。 今回、甲状腺疾患の専門病院である神戸の K病院を対象に前回と同様のアンケート調 査を 6日間にわたり行い、各サービス評価指標の曜日間変動を検討した。その結果、患 者数と医師数のバランスが診察待ち時間に影響を与え, 診察待ち時間の満足度が変化した。また、診療待ち時間以外の質問項目についての満足 度と重視度、及び受療推薦度は曜日間変動が無いものの、土曜日の受療推薦度が低下す る傾向にあること、が判明したので報告する。 2 7 9

283.

2 .対 象 と 方 法 2 .1対 象 K病院は神戸市内の甲状腺疾患の専門病院である。診療科は内 科、外科、精神科で、病床は 57床を有する。 今回調査対象とした、 2 .2 方 法 用いた調査票は、患者に負担をかけずに回答出来るように、A4用紙 1枚とし、患者の 属性、患者サービスの項目に対する満足度と重視度、受療推薦度、病院に対する意見の 記述等の質問項目より構成した(表 1)。満足度項目に関しては、できるだけ平易な文 章を用い、かっ患者の受診の流れにそった質問内容とした。調査票の各質問項目を以下 に示す。 2 . 2 .1患 者 属 性 患者属性の調査項目は、年令、性別、郵便番号、住所、通院期間、来院時間、離院時 間、当日の担当医師名、病院までの所要時間、予約の有無等からなる。 2 .2 .2満 足 度 患者が受けるサービスの満足度を測定するにあたり、本報告では患者サービスを、1) 患者・家族への情報提供、 2 )患者が医療機関を選択し、受診し、入院するまでの過程で うけるサービスのなかで、患者の快適性や利便性に配慮、したサービスと定義した 10)。 患者サービスに対する満足度の測定は、表 lに示す各質問に対し、 「とても満足 (5 点) J、 「満足 (4点) J、 「不満足 ( 2点) J、 「とても不満足(1点) Jの 4段階 尺度で記入するようにした。 2 .2 .3重 視 度 初診患者以外の再来、もしくは再来初診患者は、既に病院のサービスを受けているた め、純粋な事前期待を測定することは出来ない。そこで、それらの患者における事前期 待に代わる尺度として「重視度」を定義した九重視度は、各患者に表 lの満足度の質 問の中のどれを大事に考えるかを 3項目選択させ、各項目を選択した人数の全体の人数 に占める割合、すなわち選択率と定義した。 2 . 2 . 4受 療 推 薦 度 患者の本院に対する総合的な評価として、受療推薦度を用 L、たの。これは、患者が本 院を受療して良かった等の主観的な評価を測定するのでなく、患者自身が友人知人に本 病院の受療を薦めるか否かとしづ具体的行動を、受療を「必ず薦める (5点) J、 「薦 ‑ 2 8 0一

284.

める (4点) J、 「未定(3点) J、 「薦めない(2点) J、 「絶対に薦めない(1 点) Jまでの 5段階尺度で測定することにした。 調査は平成 5年 12月 6日より 18日まで 2日おきに月曜日から土曜日まで・行った。 調査は、外来の会計窓口で全ての患者に調査票を配付し、自記式で回答を依頼し、離院 時に備え付けの箱に回収した。この際、薬のみや検査のみの患者は対象より外した。各 満足度の質問項目において、患者の症状によっては患者が全ての病院部門に出向かない ことがあるため、満足度に欠損値が存在することになるが、これらの患者も調査対象に 含めて解析を行った。解析は, S A SV e r 6 .0 4を用い、 I B MP S / 5 5n o t eN 2 3 s xで・行った。 3 .結果 著者は以前、満足度、重視度、受療推薦度は年令の影響を受けること、新来患者と再 来患者とでは病院のサービスに対する事前知識が異なるため別のグループとして解析す る必要があることを報告した九 K 病院の患者は 3 0 ‑ 5 0歳代が 6 0児近くを占め、かつ再来患 0 ‑ 5 0歳代の者を解析対象とし 者の数が大部分を占めている。そこで再来患者で、今回は 3 た。なお、男性の数が少ないため、男性女性の区別無く取り扱うことにした。そのため、 解析対象は全体で 572人となった。 K病院の受診患者は兵庫県、大阪府を中心に関西一円より来院しているため、曜日に よって来院する患者の地域分布が異なることが考えられる。そこで各曜日別に、兵庫県 と大阪府の病院の近郊より来院する患者の割合を検討したところ、最小が金曜日の 7 1 %, 最大が水曜日の 8 1.似であり、特定の曜日に患者が遠方より来院する傾向は見られなかっ た(表 2) 。 診察待ち時間に関係する医師数は、月曜日が 8人、火曜、木曜、土曜が各 9人、水曜、 金曜が 10人であった。その他、サービス評価指標に影響を与えると考えられる、患者 数、医師一人当りの患者数、院長診察の患者数、院内滞在時間等を表 2に示す。 3 .1全体の満足度、重視度、受療推薦度 解析対象者全体の、満足度に関する質問の回答数と満足度の内訳を表 3に示す。質問 項目中、満足度の最高は I C :医師の応対」の 4 .2 2であり、これに次いで J :1 薬局までの 待ち時間」が4 . 1 9と高かった。低いものは、最低が 1 1 :会計待ち」で 2 .5 9であり、 I G : 診察待ち」の 2 .6 8、 I H :採血待ち」の 2 .9 5と、待ち時間関係の項目がこれに続き、前回 の大学病院の調査と同じく 9)待ち時間関係の満足度が低~)傾向が見られた。しかし、薬 局待ちの満足度は 4 . 1 9と高い値を示し、他の待ち時間に関する質問項目と比較して、比 較的満足度が高いという特徴がみられた。 重視度の最高は I E :医師の説明の解かりやすさ」の O .3 3であり、 I C :医師の応対」の O .2 8、 I G :診察までの待ち時間」の 0 . 2 1と、診察に関する項目が続いた。一方、診察待 ち以外の待ち時間(採血、会計、薬局、超音波、その他の検査の待ち時間入 ‑ 2 8 1 I D :その他

285.

表 1 満足度質問項目 A .受付職員の応対 1.会計までの待ち時間 B .看 護 婦 の 応 対 J .薬局までの待ち時間 . c医師の応対 K .超音波検査までの待ち時間 L.その他の検査の待ち時間 M .病院内の表示のわかりやすさ N .建物の雰囲気と快適性 治療費について D .その他の職員の応対 E .医師の説明の解かりやすさ F .医師との会話による不安の減少 G .診察までの待ち時間 H .採血までの待ち時間 . o とても満足から、とても不満足までを 5点から l点で評価 表 2 各種変数の曜日変化 曜日 患者数 (人) 月曜 火曜 水曜 木曜 金曜 土曜 2 2 6 4 0 6 3 4 3 3 8 0 2 7 4 2 8 6 医師数医師一人毎 (人) 患者数(人) 8 1 0 1 0 9 2 8 . 2 5 4 5 . 1 3 4 . 3 4 2 . 2 2 7 . 4 1 .7 3 院長診 平均在院 近郊牢 察数(人) 時間(時間)患者率(目) 7 8 . 1 1 .5 2 2 2 3 2 3 6 1 6 2 .2 3 1 .9 6 2 . 1 5 1 .8 1 1 . 97 本兵庫県、大阪府より来院する患者の割合 表 3 質問別満足度重視度 回答数満足度重視数重視度 質問項目 A .受付駿員の応対 E看護婦の応対 . c医師の応対 D .その他の職員の応対 E .医師の説明の解かりやすさ F .医師との会話による不安の減少 G .診察までの待ち時間 I!.採血までの待ち時間 ].会計までの待ち時間 J .薬局までの待ち時間 K .超音波検査までの待ち時間 L その他の検査の待ち時間 M .病院内の表示のわかりやすさ N .建物の雰囲気と快適性 〔 L治療費について 総数 : 5 7 2 一2 8 2 5 1 9 3 . 9 9 5 1 2 4 . 1 0 5 1 8 4 . 2 3 4663.98 5 0 3 4 . 1 7 4 7 9 4 . 0 3 5 1 7 2 . 6 8 4 8 8 2 .9 5 5 0 3 2 . 5 9 4164.19 2513.43 2 6 1 3 .3 3 4 3 3 3 . 9 9 4 4 4 3 .7 2 4 0 5 3 .3 8 3 4 0 . 0 6 6 4 0 . 1 1 1 6 1 0 . 2 8 50.01 1 8 7 0 . 3 3 1 0 6 O .1 9 1 1 9 0 . 2 1 2 9 . o0 5 7 5 . o1 3 20.00 30.01 8 O .0 1 1 0 0 . 0 2 1 8 O .0 3 4 4 且0 8 7 8 . 8 8 1 . 9 7 3 7 1 7 7 . 2

286.

の職員の対応」、 r M :病院内の表示のわかりやすさ」、 N :r 建物の雰囲気と快適性」な どの重視度は 0 . 0 5以下であり、これらのサービス項目については、ほとんど患者が重視 . 4 9で、その内訳は、受療を必ず薦め していないことがわかった。全体の受療推薦度は 4 6 .6 見、薦めるもの 3 6 .郎、未定のもの 6 .錦、薦めないもの O .5 %であった(図 るもの 5 1) 。 3 . 2 サービス評価指標と曜日との関係 3 . 2 .1曜日間変動解析のための質問事項 外来サービスの評価指標の曜日間変動の解析を行う場合、解析の精度を向上させるた め、対象とする質問事項は回答数が多い事が望ましい。今回用いた質問項目は類似した ものがあるため、類似の質問事項から回答数が多いものを代表として選択し、解析する A :受付職員の応 ことにした。そのため、曜日間のサービス評価指標の変動解析には r 対」、 r B :看護婦の応対」、 r c :医師の応対」、 r G :診察待ち時間」、 r N :建物の雰囲 気」の 5種類の質問項目を用いて検討した。 3 . 2 . 2 満足度、重視度、受療推薦度の曜日間変動 一番来院患者の少ない月曜日を基準とし、満足度、重視度、受療推薦度の曜日による 変化の有意差検定を行った。 1 ) 国序尺度である満足度、受療推薦度は W i l c o x o nの順位和検 定、類別尺度である重視度はカイ 2乗検定を用いて危険率 p = O .0 5で有意差の検定を行っ た。なお、解析にあたっての有意差の検定はすべて危険率 p = O .0 5で行った。 重視度に関しては、 r A :受付職員の応対」、 r N :建物の雰囲気」は、これを重要と考 えるものが曜日によっては 5名以下の場合が存在したため、カイ 2乗検定による有意差 B :看護婦の応対」、 検定は行わなかった。その他の r r c :医師の応対」、 r G :診察待ち 時間」の質問項目の重視度には曜日間で有意な変化は見られなかった。 G :診察待ち時間」以外は有意な曜日間変動は無かった。 満足度は r r G :診察待ち時間」 の満足度は金曜日以外は有意に低下していた(表 4) 。満足度重視度の土曜日と月曜日 の比較(図 2)と、土曜日と同じ程度の来院患者数である金曜日と月曜日の比較(図 3) を見ると、土曜日の方が「診察待ち時間」の重視度が大きくなり、満足度が低下してい た 。 受療推薦度は月曜日が4 . 5 9で、最高が金曜日の 4 .5 9、最低は土曜日の 4 . 4 2であり、曜 p = O .0 5の危険率での有意差は生じないものの ( p = 0 . 0 5 7 7 ) 、土曜日は低下してい 日間で' た(表 4) 。その内容を見ると、必ず受療を薦めるものは金曜日に 6 4 . 0 6 %存在したが、 土曜日には 4 7.83%に低下するという特徴が見られた(図 1) 。 3 . 2 . 3 サービス評価指標と担当医師、通院期間、診療予約との関係 K病院は、病院名に院長の名がつき、院長自身が全患者の 1 /7の患者を診察している。 そこで担当医師が院長か否かで患者のサービ、ス評価指標に変化が起こることが予想され

287.

曜日 孟塁韮重阜 全体 4 . 4 9 土曜 4 . 4 2 金唱 4 . 4 6 木曜 4 . 5 3 水曜 4 . 5 0 火曜 4 . 4 6 月曜 4 . 5 9 o1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 1 0 0 % 園薦めない ~未定 ~薦める 口必ず薦める 図 1 曜日別受療推薦度分布 表 4 質問項目の曜日比較 月曜との 比較 火曜 水曜 木曜 金曜 土曜 本 呈皇霊童皇 満足度 職員看護婦医師診察建物 応対応対応対待ち雰囲気 N . S N . S N . S N . S N . S . S N . S N N . S N . S N . S N . S N . S N . S . S N . S N 本本本 本 本本本 N . S 本本本 N . S N . S N . S N . S N .S N . S N . S N . S N . S O .0 5 7 7 p < 0 . 0 5 本本 p < O .0 1 本意本 p < O . O O I 職員応対、建物雰囲気を重視するものが 5以下の場合があるため これらの重視度の有意差検定は未実施 看護婦応対、医師応対、診察待ち時間の重視度は p )ニ0 . 0 5 表 5 担当医師、通院期間 診療予約の 2群間比較 比較する 2群 担当医師:院長・院長以外 通院期間: 3月未満・以上 診療予約:有り・無し 本 p < O .0 5 件 p < O . O I 満足度 職員看護婦医師 応対 応対 応対 N . S N . S N . S N . S N . S N . S 診察 待ち 建物 雰囲気 N . S 本 N .S N . S N . S 重視度、受療推薦度はすべて N . S ‑2剖ー N . S N . S N . S 本本本

288.

満足度 4 . 5 i 満足度 A 8 EC C B F F F kN 3 .5 l ‑ K H l ~~ &G H .0 印字伊J A:月曜日 A :土曜日 H 3‑ 1 2 . 5 E C B rE D E F E G A 印 : 字 月 例曜日 G II A :金曜日 2 . 5 G K :超音波待ち az 0 :治療費 d N :建物雰囲気 n H υ C :医師応対 G :診察待ち n H ν B :看 護 婦 F :不安減少 J :薬局待ち ︑ 戸n4υ n 4 υ nU 刈 引お叫度 nU 兎 司 nU 2 ︽ ω重 日 同Hu M Ju Hu ︽ Hu ︽ ︽ D :その他職員 A :受付職員 H :採血待ち E :医師説明 L :他検査待ち 1 :会計待ち M :院内表示 ︑ ﹁Hυ nU のFL‑ a na 凶 ﹁ h J u n H υ AHu C :医師応対 G :診察待ち K :超音波待ち 0 :治療費 n 4 υ n 4 υ ︾ J :薬局待ち N :建物雰囲気 ハ υ 1 :会計待ち M :院内表示 叩白引度 F :不安減少 ハ υ B :看 護 婦 2克 n H υ 叩凶川重 phJv nHu nHU F L U ︒ A :受付職員 E :医師説明 D :その他職員 H :採血待ち L :他検査待ち 図 3 月曜日と金曜日の 満足度・重視度関係図 図 2 月曜日と土曜日の 満足度・重視度関係図 るので、両者の比較を行った(表 5) 。その結果、重視度、受療推薦度に関する 2群聞 の有意差は存在しなかった。しかし、満足度に関しては院長の診察が i G :診察待ち時間」 で有意に低下していた。そこで両者の l患者あたりの院内滞在時間を測定すると、院長 は2 .7 時間、院長以外は1.9 1時間と大きな差があった。 前回の大学病院を対象にした解析のでは、患者の通院期間が長くなるにつれて、 i G : 診察待ち時間」に関する満足度が低下する傾向が見られた。今回の解析では、通院期間 が初めて来院してから 3月未満の群と、 3月以上通院している群では i G :診察待ち時間」 に関しての有意差は見られなかった。しかし、 i N :建物の雰囲気」に関する満足度は 3 月以上の群で有意に低下した。 診療予約の有無では、サービス評価指標に有意差は見られなかった。 4 . 考察 サービスに対する満足を示す値の大小だけでは、そのサービスの優劣を判断すること はできず、サービスに対する期待を考慮、して評価する必要があるといわれている1)。そ の考えにたち、先に著者は、満足度、重視度、受療推薦度という評価指標を開発し、こ れを用いて患者サービスの評価を行うと、 L満足度の分析のみでは、患者サービス改善 項目を検出するのに、期待していない項目の満足度が低いことを問題視するという錯誤 をおこす恐れがあるが、満足度重視度という複合した観点からの分析ではその心配がな いこと、 2 .待ち時間が主な不満の原因であること、 3 .医師に関する患者サービス項目に ‑285‑

289.

ついては患者の重視度と満足度が高いことなどを指摘した。また、これらの 3種類の指 標を用いて患者サービスを総合的に評価することが医療の現場では重要であり、そのこ とによって患者サービスの現状を簡明に説明できることを明らかにしたの。 近年、一般企業において週休 2日制が導入され、これに伴い、医療産業界、とりわけ 国公立病院が土曜日に休診になり、その結果、民間病院の土曜日の受診患者の増加傾向 が顕著になってきていると言われている。このことは、曜日によって患者のサービス評 価が変動する可能性を示唆するものと考えられる。そのため、今回、前回の解析では行 えなかった、満足度、重視度、受療推薦度の曜日間変動についての検討を行った。 4 .1重視度と満足度の曜日間変動について i A :受付職員の応対」、 i N :建物の雰囲気」に関しては、これを重要と考えるものが 曜日によっては 5名以下の場合があり、両者の重視度の曜日間変動の有意差検定は行わ なかった。他の項目の重視度に有意な曜日間変動は無かった。しかし、医師に関する患 者サービス項目の患者の重視度が高く、 「受付職員の応対」、 「建物の雰囲気」、 「 院 内表示のわかりやすさ」、などのアメニティーに関する重視度が低い傾向は、前回の大 学病院を対象とした解析7)でも観察された。 満足度は、診察待ち時間に関してのみ曜日間で有意な変動があり、金曜日以外の診察 )。患者の院内滞在時間を見ると、月曜 待ち時間の満足度は有意に低下していた(表 4 日が1.5 2時間、その次が金曜日の1.8 1時間であった。また、医師一人あたりの平均患者 8 .2 5人に対し、金曜日は 2 7 . 4人であった。この事から医師数と患者数が、 数は月曜日が2 院内滞在時間や診察待ち時間に影響を与え、その結果、診察待ち時間の満足度が低下し ていくことが考えられる。そこで、院長と院長以外の医師との比較をすると、院長の診 .7 時間、 察待ち時間に関する満足度は有意に低下し、その時の院内滞在時間は、院長が2 1時間と大きな差があった。これよりも、前述の考えが裏付けられる。 院長以外が1.9 以上から、満足度、重視度を用いて患者サービスの評価を行う場合、診察待ち時間の 満足度が患者数、医師数に影響を受けることに注意し、複数日の調査を行い、満足度、 重視度の評価を行う方が、一日の調査より望ましいことが判明した。 病院側が、待ち時間に対する患者の不満を改善するには、特に診療上の支障がない限 り再来患者に対して単純に一週間後の同じ曜日を予約させるのではなく、一週間の患者 の待ち時間を平坦化するようして予約を受け付けるべきであろう。そのためには、患者 数の少ない曜日に特殊外来等を行うなど、積極的に患者数の分布の平坦化を行うのも有 効な手段のーっといえる。また、今回の K病院の場合では、患者に対して、院長の診察 に患者が集中するため診察待ち時間が長くなること、月曜日から木曜日の聞が患者が多 く待ち時間が長いこと、などを事前に患者に知らせて患者に納得させ、待ち時間に対す る重視度を相対的に低下させ、診察待ち時間に関する患者の満足度が低くても、支障が 無いように配慮することも有効な方法と考えられる。 4 . 2受療推薦度の曜日間変動について 2 8 6一

290.

受療推薦度の曜日間変動は、 p = O .0 5での有意な変化は無かったが、月曜日の受療推薦 . 5 9であるのに比較して土曜日は 4 . 4 2と低下していた。また、受療を必ず薦めるも 度が4 4 .0 6出であったのに土曜日は 4 7 . 8銚と減少していた。受療推薦度の低下は のが月曜日は 6 口こみによる当該病院の受診をすすめる機会の減少、ひいては来院患者の減少につなが り、病院経営上の問題に発展すると考えられるため、この点について検討する。 月曜と土曜を比較した満足度重視度関係図(図 2 ) と、土曜と同じ程度の来院患者数 である金曜と月曜を比較した満足度重視度関係図(図 3)とを見比べると、土曜日の方 が診療待ち時間に関して重視度が大きくなり、満足度が低下している。ところが院内滞 在時間は金曜日が1.8 1時間、土曜日が1.9 8時間と大差ない。これから、単に待ち時間が 受療推薦度に影響を与えているとは言いきれない。 受療推薦度が土曜日に低下する原因として、土曜日には会社の休日を利用して、遠方 より来院する患者が増加し、月曜から金曜にかけての患者と土曜の患者とでは、その性 格が異なる可能性が考えられるが、特に土曜日に患者が遠方より来院する傾向は見られ ない(表 2 )。その他に土曜日の受療推薦度の低下理由として、院長診察の有無の影響 が考えられる。しかし、解析対象群において院長が担当した患者は月曜日は無く、土曜 人であった(表 2)。そのため、院長診察の有無が土曜日の受療推薦度に影響を与 日は l えているとは考えられない。 一方、土曜日の受療推薦度の分布を詳細に検討してみると、その低下は、受療推薦を 否定する患者が増加するのでなく、必ず受診を薦めるものの割合が低下することに起因 していた(図 1)。以上のことを総合すると、今回の調査対象とした質問事項より、土 曜日の受療推薦度の低下傾向の原因を断定することはできないが、 K病院では土曜日に 来院する患者の持つ価値判断は、他の曜日の患者と異なっていることが考えられる。こ のことは、週休 2日制の増加と共に、土曜日を有効に過ごしたい患者が増加しているた め、他の曜日と同程度の在院時間でも、診察待ち時間に対する重視度が増加し、満足度 が低下すると解釈するのも、一つの可能性として考えられる。従って、患者に対して土 曜日でも、特に待ち時間が短くなるわけではないことを知らせる、あるいは土曜日でな くてよい患者は、比較的すいている金曜日に受診するように指導するなどして、積極的 に曜日間の受療推薦度の平滑化を行う必要がある。また、病院職員に対して、土曜日の 受療推薦度が低下する傾向にあることを知らせ、土曜日の患者対応への注意を喚起させ )、患者の病 るのも有効であろう。病院側が、需要者の口こみの効果の重要性を認識し 2 院に対する期待、受療の推薦を積極的に制御できれば、藤江らが提唱する病院の評判圏 1 1 )、ひいては病院の診療圏も拡大し患者数も増加していくことが充分考えられる。 5 . 結語 甲状腺疾患の専門病院である神戸の K病院を対象に、サービス評価指標である満足度、 重視度、受療推薦度の曜日間変動について検討を行い、満足度重視度関係図を用いて外 0 ‑ 5 0歳 来サービス改善事項を検討する場合に、考慮、すべき事項を検討した。その結果、 3 2 8 7 ‑

291.

代の再来患者を対象とした場合、曜日間のサービス評価指標の解析において、1.曜日に よる患者数と医師数の変化が院内滞在時間に影響を与え、その結果、診察待ち時間の満 .診察待ち時間の他の満足度、重視度は曜日間で有意な変 足度が有意に変化すること、 2 .土曜日の受療推薦度は有意ではないが低下する傾向にあること、など 動が無いこと、 3 を明らかにできた。土曜日の受療推薦度の低下傾向は、その原因が特定出来なかったも のの、土曜日に来院する患者の価値判断が他の曜日の患者と異なることが示唆された。 本稿で用いた解析手法は、医療の質の評価の中で、患者より見た病院のサービスの質 の評価手法の一つである。今後は、満足度、重視度と受療推薦度の関係の解明と共に、 実際の外来サービスの改善を行った後の患者のサービス評価の変化を求め、本手法によ る評価の適応対象を追及していきたい。 本研究を行うにあたり、神甲会隈病院の隈寛二院長、鳥井原秀一氏、および(株)エ フアイティーの皆様に御協力をいただきました。ここに感謝の意を表します。 参考文献 1)畠山芳雄:サービスの品質とは何か、日本能率協会マネージメントセンタ一、 1 8 ‑ 1 9, 1 9 9 2 2 )佐藤行男:S A Sシステムによる自動車の購入重視度と満足度の相関グラフ自動作成シス 9 7 ‑ 2 0 2,S U G I ‑ ]' 9 2 テム、 1 9 8 7 . 7、1 3 3 )池上直巳、河北博文:患者の満足度と病院の管理姿勢、日本病院会雑誌、 1 9 8 7 1 9, 1 4 )長谷川万希子、杉田聡:患者満足度による医療の評価 大学病院外来における調査か ら、病院管理、 1 9 9 3 .7 、3 1 ‑ 4 0, 1 9 9 3 5 )三宅浩之:患者アンケートによる客観的病院評価の試みの報告、日本病院会雑誌, 1 9 8 8 . 6、5 2 ‑ 6 1、1 9 8 8 6 )菊池令子:入院中の看護の満足感と看護婦への期待、日本看護協会調査研究報告、 2 9, 8 ‑ 4 7, 1 9 8 9 7 )島津望:患者満足規定因の構造分析、病院管理, 3 0( 1 ) , 8 8,1 9 9 3 8 )田久浩志:患者よりみた病院サービス評価の有効性について、 4 8 3 ‑ 4 9 2,S U G I ‑ ]' 9 4 9 )田久浩志:満足度と重視度による外来患者サービスの評価、病院管理、 3 1 ( 3 ),1 5 ‑ 2 4,1 9 9 4 9 8 9 1 0 )厚生省健康政策局総務課編:患者サービスガイドライン、金原出版株式会社、 1 1)藤江俊彦:変革時代の病院評判圏づくり、病院 5 3 ( 7 ),6 0 8 ‑ 6 1 3,1 9 9 4 1 森 満・庄野菜穂子・槽垣靖樹他:病院の広告と患者の受療行動、病院、 5 3 ( 7 ),6 1 8 ‑ , 11 9 9 4 6 2 2 8 8一

292.

日本 5A5ユーザー会 (5U G卜 J) 記 述 疫 学 で の GM A Pプ ロ シ ジ ャ の マ ッ プ 作 成 と BA SE SA Sソ フ ト の 適 用 ザ内 yJ 内 d D ‑ 内 d n ρν+L nuρ ρνρu An? nnP4 ザ Tム ρU し HU ム σbρU ︐ .V r ム' Jnuwvd ・ qa nuφL4L 2u ・1ム ・ 1ム snu 'hμT +Lρν 1iVEU d ・1ム Fhu nkuρun‑ 円 U H H u n u u v n同U V 1 内 ︐nu・'A ・ ム . ︐ A n・ v ρunNU ー D‑‑n um ︐n u H u v・ Tム Tム +La A 内 u m川 ・ Ic nHUOO 内 す よ ‑ nv 円U 2 u ‑ t A ρ U Tム +LLH 1+L 内 U ‑‑ム HHUnunuv A 川 +Lρum 川一 nν6m ・1ム ριvqaqa ヒ 0 . • ︐ae 1in onuC1io0 4 M川. ︐A d nU1ica ︑ .m e A u h υ fム 4L Application of GMAP Procedure and Base Sas Software for the cunM‑cu ρνρU nununn Gω 効/い命度/︑と思 有 S てう程 S合るる てA し言る A 場すす し S供とれ S のと釈仰 m とコ提る触︑くう解 アβをててた多ょに︒日 M ィあ境立めまはめ胆る デで環をじ︒ト高大あ メ的援説はるフををでプ の果支仮にくソ性象適ツ 達効なの一てく作現最マ 伝に力学タつ描操なはス H 一 報と強疫一なを︑異 ベ e 情この述ユとフに特 P AU やるめ記ピ利ラ逆︑ 日M y R ルてた︑ン便グ︑は ぱ叩 一立のばコと︑りで 叶 ツみ成けはるずな学 / m s s m m .川 考組作おえすらく疫 Apsh 思を図て換化限悪述 s u m ‑引 の説地しれ純にが記 hE ら仮は化入単一性︒︑刊 自のヤ型のにヤ作るり問 H ︑症ジ類ス別ジ操れあヤア は発シを一型シ︑さでジェ・印 現病ロムベ類ロと約義シウ口 表疾︒フラ︒に︒フる制一ロト閃 D 図は P グるう Pすが第プフ 地で A ロれよ A と度が P ソ学 の学 Mプさる M う由と A ス疫 M 一述 料疫 G のたえ G よ自こ G ベ記 資述の成満扱のめのる 計記 H作にに H高理め 統に P 図分者 Pを処すド 種特 A地十心 A性のすレ 各︑ Ro は初 R用図を J でG る題の G汎地考キ 長ζ I l ,‑U i 功 斉藤 小津秀樹 0 青里子裕士 大分医科大学・公衆衛生医学教室 1、 は じ め に 積多いし得ツ段 ︒集がす供をセの る族とや提図タ次 あ家こしを地一︑ で︑る析境るデき 義布め解環すプで 一分求と援足ツが 第的をる支満マ理 ず理徴すなをに処 ま地特化力件者に が︒の表強要心易 学る病図は︑初容 疫れ疾くヤ成︒が ︑さどやジ作る者 は用なばシのす析 に応かりロト要解︒ るが型と︒フッを︑た す学平つ P セ力もし に疫水て A タ労て討 か述か︑ M 一とせ検 ら記型て G デ間さを 明︑直しのプ時力ム をに垂使 H ツで入テ 因め︑駆 P マ雑をス 要たてを A る煩タシ のるし料 Rすに一く 症て出資 G力外デつ 発たり計/入意本び 病を割統 S ︑︑基結 疾説を種 A がはにで で仮性各 S ろ整置ま ル︑積は︑こ調位学 べは集にでと微の疫 レ階域れ階︒の定析 団段地こ段るめ特分 集一︑︒のいたのの 第性いこてるト階 2、 G M A P プ ロ シ ジ ャ に よ る 地 図 の 作 成 らでれ/もたいれ か現す Sなれのこ 図表成 A的ぐKo 地図作 S準すC) 白地を︒標に 01 ︑るムるて現 L表 てよラあし表B( しにグがと図・つ︒ 現ムロさタ地 M持い 実テプ利一の Sをす にスの便デ元 I造や 上シ図う値次 R構し のタ地い数 3 P のが 図一本とのび・通断 のユ基る図よ E共判 枚ピ︑き地お Cは析 一ンめで︑元 A ト分 をコたがは次Fγな一 )︒なとト 2R セ的別 料る易こツは U タ覚づ 資 あ 容 る セ ヤ S 一視 計でがすタジ・デ︑ 統ス工成一シ Oプで ( セ 加 作 デ ロ R ツと 報 ロ の を プ ︒ フ O マこ 情プど図ツ PH るる 性るな地マ AC すす 特 す 除 の る M ︑力用 と成削類す Gが入利 報作・種力︒る︑に 情を加の入るいも切 間図追かにあてて適 空題・つ H でしいを は主正く P つ有つ能 図な修い A 一をに機 地要︑︑ R の能れの 必 は ば G の機︑ずら

293.

次元 表 1 表現の多様な地図の種類 類型 事例 一 元 FU p u 次 点線面 3 TA NEAF INER OIRU PLAS ドットマッフ。 フロー コロプレス イソプレス G M A Pプ ロ シ ジ ャ 分布図 流線図・流跡線図 色分け地図 等ポテンシャル線図 等値線図・等充線図 (ANNOTATE) (ANNOTATE) CH 0 R0 SU R FA C E PRISM B L0 CK 3、 マ ッ プ デ ー タ セ ッ ト の 作 成 と そ の 他 の S A S / G R A P Hプ ロ シ ジ ャ の 関 連 ①例 1 S A S / G R A P Hの G M A Pプ ロ シ ジ ャ は 日 本 全 国 や 東 京 ・ 大 阪 の 大 都 市 圏 など、小縮尺、中縮尺についていくつかの地図データが提供されている。これらは は oP T I 0 N に よ り 都 道 府 県 単 位 や 、 道 州 単 位 の 作 成 が 可 能 で あ る 。 こ こ に は 日 本 地 図 を 作 成 の 上 、 さ ら に 近 畿 の 地 図 を 作 成 し た ( 図 1、 図 2 お よ び 近畿の地 図 を 描 く た め の プ ロ グ ラ ム 1) 。 /長養器発養器発養器発発養器発養器発養器発養器発養器発養器発/ 図 1 / 長 プログラム 1 data japan2; set maps.japan; select; when (pref=l) chiho=l; OTHERWISE CHIHO=2; end; data japan2;SET JAPAN2; IF CHIHO=2 THEN DELETE; data pop2; set pop; select; when (pref=l) chiho=l; OTHERWISE CHIHO=2; end; data POP2;SET POP2; IF CHIHO=2 THEN DELETE; value=mln45; value=m2n135; chiho=l; run; ‑ 2 9 0 長/

294.

DROP R1; FAREN=R1; PREFEC='全 国 男 子 , ;OUTPUT; CARDS; 1 2 3 4 5 7.1 7.3 7.4 7.5 7.8 RUN; TITLE1 H=l F=NONE '図 3 年 齢 調 整 死 亡 率 で 見 た 男 子 の TITLE2 H=l F=NONE ・くも膜下出血の死亡の推移'; / 普 フ。ロク'ラム 2 普/ SYMBOL1 C=YELLOW L=33 I=JOIN V=DOT; AXIS1 VALUE=(F=NONE H=l) LABEL=(F=NONE H=l '率, ) ORDER=4 TO 8 BY 2 LENGTH=8 cm MINOR=NONE; 品種早監事1 暫 晶 子 の AXIS2 VALUE=( '1970' '1 LABEL=(F=NONE H=l OFFSET=(2) WIDTH= LENGTH=10 cm MINO 図3 PROC GPLOT DATA=DATA5 ; PLOT FAREN谷 YEAR=PREFEC 率8 RUN; ••• ー . 6 子 男 国 全 .‑‑‑‑‑・ーーーー'ー・‑‑‑・ ー ー 4 197日 1975 198日 1985 人口 1日万対 年 2 9 1 199日 のは H た 道 位向 P き都 単傾A ては o s ‑存亡 3 県 の R っ移 府こ Gが推 道の/上次 そ 都近 Sび年︒ の最 Aかの) ︑るをが死ム をき移型血ラ 亡で推平出グ 死にの水下ロ 血確率と膜プ 出明亡性も 下を死積く 5 膜県の集る︑ もの体域め 4 く定全地占図 の特子とに( 子︒男る患る 男た人み疾れ るし本て管取 い討日い血て て検︑用脳見 れをかを が o さ差のヤ)と 目域なジ 2 こ 注地向シムる 近て傾ロラな 最し少プグ異 ︑ 較 減 T ロく に比か O プ き らで向 L大 2さ率傾 P3 で 例亡増 G図県 ②死漸の(府 DATA DATA5;INPUT YEAR R1; / 普 全国男子各/

295.

比{え) 12 t~( 記) 12 ι 日 日 1 9 9 ⑪ 1 9 8 5 1 9 8 日 T 中 よ 刊U ︐ ・ nu PA 中よ nu nU 中よ Up ︐ . nu 県︐ 城国 宮全 戸 し 戸U P μ p μ PAPA Pμpμ 比 比 DFF RAA n U D比 D 比 pipμpμ 比 RR ヮ PAPA ︐ . R ょ ‑ 1っ D D D よ ー 一 一 一 一 NN 1 9 7 日 1 9 7 5 1 9 8 日 1 9 8 5 1 9 9日 1 9 7 日 1 9 7 5 DATA DATA5;INPUT YEAR / 養 プ ロ グ ラ ム 3 養/ R1 / 養 宮 城 県 養 / R2;/養 全 国 養 / 町パ〆 t v :~~〆・ 和万 B ノ / 二 6 一ノ 8 8 全国 帝 帝4 ‑・・宮城県 1 日 図司E P 益属Z E E 黒 星5 F F J 5 5 1 Z Zの 回 全5 f f 品調2 2 E 史 書5 F f 2 2 2 1 Z Zの CARDS; 1.69027 2.12702 1 3.12303 2.75472 2 3.35516 3.66337 3 3.86941 5.59701 4 5.60750 7.96730 5 s H 高理きを P を処で考 A 性のに思 R用図かる G汎地らす をと配地さのムて/︑と明釈 説こな︑た図ラめ S合るを解 仮る適し満地グじ A場す係に 3 判るす最かに ロは S の と 関 胆 る o 引け足のし分るプに︑くう応大あ ーお満で︒+きと一た多よ反をで M にをトるはで々タまはめ量象適 や学件ンな題成長一︒ト高︑現最 か疫要エと命作にユるフをはなは 仰述のジ要うにめピえソ性の異 H 日記てレ必言速たン考く作る特 P A 比はし︑がと迅のコと描操すは R る一とか整るを写はきを︑にで ャ図と調て図描えベフにか階 G I ‑ ‑ 十ジ地い微立地図換くラ逆明段/ ‑ 1 シ oく ︑ を な 地 れ お グ ︑ を の f ド ロ る に れ 説 要 の 入 て ︑ り 因 学 A 見患プいれさ仮必りのしずな要疫 S で疾各て入求︑︑限ス化らくの述︑ 率菅︑しを要ばでる一純限悪病記り 亡血他供ルがけえれベ単にが疾︑あ 死脳の提一誤お換さろに一性︒くで Pをケ錯てれ想しうヤ作るよ義 整の A境ス行し入予むよジ操れで一 調血 M 環と試化のり るシさ階第 3 齢 出 hhえ ロ ム 約 段 が G援位の型スた I l M年 M 下 の 支 方 り 類 一 わ な 扱 プ る 制 の と 聞の間膜 H な︑なをべにはに P すが学こ 手国トも P力ばかムな部で者 A と度疫る 1全 1 く A 強 れ は ラ 当 細 き 心 M う 由 析 め R ですにク適︑べ初 G よ自分す ドと↑の い県引でに G 上とでロもりるののめのるす 'EU り/る的まプかたて度 ' 山 札 城E 子 わ S て 目 る の し あ 立 程 宮男 R ‑' RU U' お A 立 を 至 成 ︒ に み る ︑S み み に 作 る 理 組 れ 組の置図れ処を触 4 参考文献 1) 高 橋 行 雄 、 大 橋 靖 雄 、 芳 賀 敏 郎 ( 1 9 8 9 ) S A S に よ る 実 験 デ ー タ の 解 析 、 東京大学出版会。 2) S A S 出 版 局 編 ( 1 9 9 3 ) S A S / G R A P H ソ フ ト ウ ェ ア 入 門 ガ イ ド 、 S A S 出版局。 3) S A S Institute I n c . (19 9 0) S A S/G R A P H Software: Reference S A S 出版局。 2 9 2一

296.

日本 5A5ユーザー会 (5UGト J ) SASシ ス テ ム を 用 い た 症 例 対 照 研 究 ー急性心筋梗塞の責任冠動脈と喫煙との関連ー 0斉 藤 功 青野裕士 小薄秀樹 大分医科大学公衆衛生医学第一 case‑control study using SAS system ‑relationship between the culprit lesion of AMI and smoking‑ Isao Saito,Department of Publi c Health and Hygiene, Oita Medical University, Oita Prefecture, Japan 要旨 疫学的手法の中で症例対照研究は擢患率の低い希な疾患のリスクの評 価を行うときに用いられる。各因子の影響の大きさは相対危険度をオッズ比 で 推 定 さ れ 、 一 般 に オ ッ ズ 比 が 1よ り も 大 き け れ ば 危 険 因 子 と し て 、 ま た 1 未満であれば防御因子として考え各因子の評価を行う。症例対照研究は症例 と対照において各因子の比較を行うものであるが、比較する際には交絡する 因子の調整を行う必要がある。その一つの方法がマッチングであり、あらか じめ 1人 の 症 例 に 対 し て N人 の 対 照 を マ ッ チ ン ク さ せ て 選 ぶ 。 こ の 場 合 、 マ ッ チング変数には性と年齢が用いられることが多い。また、検討したい因子問 で の 交 絡 が 考 え ら れ る と き に は 多 変 量 解 析 が 用 い ら れ る 。 今 回 は SASシ ス テ ム を用いた症例対照研究の例を示す。 ド: PHREGプ ロ シ ジ ャ キーワ 【はじめに】 症例対照研究 多変量解析 急性心筋梗塞 ( A MI )の重症度は心筋の梗塞範囲と関連しており、 閉塞した冠動脈の部位が主幹部に近いほどその末梢に流れる冠血流は妨げら れ 、 梗 塞 範 囲 は 広 く な る と 考 え ら れ る 。 一 般 的 に AMIに よ る 梗 塞 範 囲 が 広 い ほ ど 心 機 能 は 低 下 し 、 そ の 予 後 は 悪 く な る の だ が 、 最 近 で は AMIの 初 期 治 療 と し て 、 冠 動 脈 造 影 を 行 い AMIの 梗 塞 責 任 冠 動 脈 を 確 認 し た 上 で の 再 疎 通 療 法 が 行 われるようになり、できるだけ早期に冠血流量を確保することを目的とした 治療が行われる。 AMIの 危 険 因 子 の 検 討 は こ れ ま で 全 AMIを 対 象 と し て 数 多 く 行 わ れ て き て お り 、 喫 埋 、 高 血 圧 、 高 脂 血 症 と い っ た 3大 危 険 因 子 を は じ め と し て 、 糖 原 病 、 肥 満 と い っ た 因 子 の 報 告 が な さ れ て い る 。 今 回 の 検 討 で は AMIを さ ら に そ の 梗 塞責任冠動脈の部位別に分けて症例対照研究を行い、 AMIの 責 任 冠 動 脈 の 近 位 病変部と遠位病変部のそれぞれの危険因子の度合いについて、特に喫埋の影 響をみるとともに、他の因子として肥満、高血圧、高指血症、糖原病の因子 について検討を行った。 症 例 対 照 研 究 は 患 者 1人 に 対 し 性 ・ 年 齢 で マ ッ チ ン グ さ せ た 3 人 の 対 照 を 無作為抽出し、 PHREGプ ロ シ ジ ャ を 用 い て 解 析 を 行 っ た 。 ‑293‑

297.

【対象と方法】対象は 1 988年 1月 か ら 1995年 3月 ま で の 聞 に 国 立 O病 院 循 環 器 科 にA MI発 症 よ り 2 4時 間 以 内 に 入 院 し 、 入 院 時 の 冠 動 脈 造 影 (CAG) に よ り 梗 塞 責 任冠動脈の部位を確認できた 1 2 0名(男 8 9名,女 3 1名)とした。 入 院 時 の CAGか ら AHAの 分 類 に 準 じ 右 冠 動 脈 の 刷 、 左 冠 動 脈 主 幹 部 、 前 下 降 枝の非 6、 回 旋 枝 の #1 1を 近 位 病 変 部 、 そ れ ぞ れ の 末 梢 を 遠 位 病 変 部 と し て 区 分 した。喫煙歴は診療録より調査し、また本人が死亡していて診療録に記載の ない場合は家族に生前の喫煙習慣について電話による聞き取り調査を行った。 肥 満 度 の 指 標 と し て body mass i ndex( B M1 )を用い、 日本肥満学会の定める肥 2 満、即ち B M Iが 2 6.5 kg/m 以 上 を 肥 満 と し て 区 分 し た 。 高 血 圧 、 糖 原 病 に つ い ては診療録より既往歴の有無で調査した。高脂血症については入院時の採血 20mg/dl以 上 を 高 脂 血 症 あ り と で得られた血清総コレステロールの値により 2 した。 対照は 1 992年 の 大 分 県 に お け る C村 の 老 人 保 健 法 に 基 づ く 基 本 健 康 診 査 お よ び 大 分 市 内 の 某 職 域 で の 健 康 診 断 の 資 料 合 わ せ て 約 3 干 人 の 中 か ら 患 者 1人 に 対 し て 性 ・ 年 齢 で マ ッ チ ン グ さ せ た 3人 を 無 作 為 抽 出 し た 。 ま た 、 対 照 者 については、肥満及び高脂血症は前述の基準に従い、高血圧は治療中のもの を含みW HOの 判 定 区 分 に 従 っ た 。 糖 原 病 は 現 在 治 療 中 の も の 、 あ る い は 随 時 血 糖2 00mg/dl以 上 、 空 腹 時 血 糖 140mg/dl以 上 を 糖 原 病 あ り と し た 。 解析は遠位病変部6 9人 と 近 位 病 変 部 5 1人 に つ い て 、 そ れ ぞ れ に PHREGプ ロ シ ジャを用い、 1 :3で マ ッ チ ン グ さ せ た と き の 条 件 付 き ロ ジ ス テ ィ ッ ク 回 帰 分析によるオッズ比と 9 5弘 信 頼 区 間 を 算 出 し た 。 【結果と考察】 遠位病変部と近位病変部別に肥満、喫煙、高血圧、高脂血症、糖原病の各 因子について A MI患 者 と 対 照 者 に つ い て 異 常 者 の 割 合 を 示 す ( 表 1) 。 各 因 子 とも対照よりも異常者の率は高く、特に高血圧、高脂血症および糖原病につ いては A MI患 者 で 顕 著 に 異 常 者 の 率 が 高 か っ た 。 図 1に 条 件 付 き 口 ジ ス テ ィ ッ ク 回 帰 分 析 を 行 っ た プ ロ グ ラ ム を 示 す 。 このプログラムにより遠位病変部および近位病変部別に肥満、喫煙、高血 圧、高脂血症、糖原病の各因子間での調整したオッズ比および9 5弘 信 頼 区 間 が 算 出 さ れ た ( 表 2) 。 肥満と喫煙については遠位病変部、近位病変部ともに有意な関連はみられ なかった。高血圧、高脂血症、糖原病!ま危険因子として有意な関連を示した。 遠位病変部と近位病変部でみると、糖原病は近位病変部のA MIに 対 し て 大 き く 影響していることが考えられた。 ‑ 2 9 4一

298.

ここまで、 SASシ ス テ ム を 用 い た 症 例 対 照 研 究 の 一 例 を 示 し た 。 条 件 付 き ロ ジスティック回帰分析のプログラムは容易であり、今後幅広く応用できる方 法であると思われた。 しかしながら、症例対照研究では資料の収集の際に様々なバイアスが入り 易く、出てきた結果については慎重に検討する必要があると思われる。 参考文献 1. 重 松 監訳:疫学・臨床医学のための患者対照研究、ソフトサイエン 逸造 2 1 9、 1 9 8 5 ス社、 2. S A S Institute Inc..SAS technical Report P‑229.SAS/stat software: Ghange a n d Enhancements.R eI e a s e 6.07.433.1992 図 1 PHREGプ ロ シ ジ ャ に よ る プ ロ グ ラ ム proc sort:by p r o x :I 叩 r o x = l 近位病変部、 prox=O 遠 位 病 変 部 * 1 proc phreg: model time*event(O)=obese smoking h th ld m Ities=discrete r l alpha=O.05: strata s e xn e n : b y prox: r u n . 注) t ime=l:症例、 また、 time=2:対 照 event=l:症例、 event=O:対照とする。 一2 95‑

299.

表 1 近位病変部と遠位病変部別にみた 各因子の異常者の割合 遠位病変部 近位病変部 AMI 対照 AMI 対照 人数(人) 6 9 207 5 1 1 5 3 肥満(日) 1 4 .4 9 8.21 1 3 .7 3 8.50 喫煙(目) 42.03 36.23 5 0 .9 8 3 7 .9 1 高血庄内) 47.83 25.60 49.02 25.49 高脂血症(日) 4 2 .0 3 20.29 39.22 1 8 .30 33.33 4.35 47.06 3.92 糖原病(日) 表 2 条件付き口ジスティックモデルによる 近位病変部と遠位病変部別にみた急性心筋梗塞患者における 各危険因子のオッズ比と 9 5日 信 頼 区 間 遠位病変部 ( n = 6 9 ) 近位病変部 ( n = 5 1) 危 険 因 子 オ ッ ズ 比 (9 5日 信 頼 区 間 ) オ ッ ズ 比 (9 5日 信 頼 区 間 ) 肥満 1.334(0.484‑ 3.676) 0.639(0.153‑ 2.673) 喫煙 1.291(0.645‑ 2.586) 2 .078( 0.850‑ 5.077) 高血圧 3.035(1.536‑ 5.999)牢牢 5.920( 2.021‑ 17.337 ) 牢 牢 高 脂 血 症 2.330(1.148‑ 4 .728)牢 3.061( 1.213‑ 7.724)牢 糖原病 牢 10.871(4.397‑26.877)牢 牢 牢 48.690(12.902‑183.745)牢 牢 牢 : pく0.05, 牢 牢 : pくO .0 1, 牢 牢 牢 : pくO .0 0 1 ‑296‑

300.

日本 5A5ユーザー会 (5U Gト J) U N I X 版S ASシステムによる O u t p u tE d i t i n gP r o g r a m ( O E P ) 山懸清壮 呉羽化学工業株式会社 医薬情報部 OutputE d i t i n gProgram(OEP)u s i n gUNIXv e r s i o no f t h eSASSystem く │i y o s o uYamagata o ., L td . M e d i c a l l n f o r m a t i o nDepartment,KurehaChemicallndustryC 19 ‑ 1 1N i h o n b a s h iHoridome‑choChuo‑kuTokyo103 ・ 要旨 昨年の SUGI‑J'94において、パーソナルコンヒ。ユータ上で、 PC版 SASシステムと表 計算ソフトを組み合せることにより、事前の設計を必要とせず、かつ比較的簡単で汎 用的に、症例一覧表や解析結果の報告書の作成が行なえることを報告した。 今回、それを発展させるためにワークステーションでの適用を検討し、 UNIX 版 SASシステムと DTPソフトの組合せによる症例一覧表や解析結果の報告書の自動作成 が可能となり、より鮮明な報告書が作成でき、作業効率が飛躍的に向上しただけでな く、従来より問題とされていた罫線処理をも解決することができた。 キーワード: UNIX 版 SASシステム、 OEP、 DTPソフト、症例一覧表 1 . はじめに 昨年、報告した r p c版 SASシステムによる OutputEditingProgram(OEP)J 1)は 、 SASのマクロ機能等により、各プロシジャで出力された結果から必要な情報(変数ラベ ル、デー夕、基本統計量、検定統計量等)を SASデータセットに取り込み、 DIFファイ ルに変換出力し、表計算ソフト上で帳票の体裁を整えるものであった。このプログラ ムにより、報告書の信頼性や作業効率の向上を図ることができたものの、出力帳票が 大量になると表計算ソフトでの編集に時間を要するようになり、新たな課題となっ た。そこでワークステーションで、このフログラムの適用を検討したところ、 C言語 を用いたアプリケーション開発により、 DTPソフトである GlobalView@*(以下、 GV と称する)と SASシステムとのインターフェースが可能であること 2)が報告されている ところから、 UNIX 版 SASシステムと DTPソフトの組合せによる OEPの開発を試み た。これは、従来の PC版 SASシステムによる OEPの機能を継承し、新たに機能追加 を行なったもので、主な機能を表 1に示す。以降に於いて、調査票イメージの症例一 覧表(以下、症例一覧表と称する)の作成例をもとにして、 SASシステムと DTPソフト との組合せ法について紹介する。 表 1 OEP の主な機能一覧 マクロ名 LIST PRINT CRLIST CHISQ UTEST 機能 定型的な表形式の症例一覧表 非定型的な表形式の症例一覧表 調査察イメージの症例一覧表 クロス集計表とカイ自乗検定 クロス集計表と U検定 マクロ名 機能 CHISQ2 クロス集計表と累積カイ自乗検定 TTEST 平均値等の統計量と F検定並び l こt 検定 DATAINFO SASデータセットの変数定義一覧表 PHREG 比例ハザードモデル GRAPH SASグフフを GV 文書化 2 9 7一

301.

2 . 症例一覧表作成機能 (CRL lSTマクロ : Q a s e̲ R e p o r tL i 旦) 2 . 1 概要 この症例一覧表作成機能は、日本語ワードプロセッサや DTPソフトの機能のひとつ である差込み印刷の手順と同様の方法で、事前に GVにより調査票イメージのひな型 形式の文書ファイルのことで、以 の文書 (GV 下文書と称する)を作成しておき、 SASデー タセットからテキストファイルを介して、順 次そのデータを差し込み、作成された症例一 )。 覧表は文書として保存される(図 1 文書として保存することの利点は、紙以外 の媒体への保管が可能であり、画面上で作成 した結果の確認が行なえ、必要に応じた印刷 が可能となる。 通常の DTPソフト等の差込み印刷機能との 違いは 出力媒体の違いだけでなく、 1 文書 中に差し込める項目数を特に制限していない 点で、臨床データのような膨大な項目数を有 するデータ等でも十分に耐えうる処理能力を もっ。 また、 SASシステムからマクロを通じて、動 的に作成できることからスムーズな操作性が 実現できた。 図1 症例一覧表作成の概要 園田 日T ↓ 出 力 2 . 2 ひな型文書の作成 GVにより作成するひな型文書は、用紙サ イズ( A 4, B4, A3の縦横)、文字タイプ(ゴシッ ク体,明朝体等)、ならびに文字サイズ( 6 ‑ 2 4 ポイント)を調査票に合わた形で設定し、そ れに従って症例一覧表が作成される。文書作 成の要領で行なうため、タイトルや項目の座 標位置等の詳細な設計は不要で、レイアウト の変更も容易である。 具体的には、図 2で示すような調査票のイ メージの文書を作成するわけであるが、 GV ではタイトルや項目名の部分はテキスト枠、 データを差し込む箇所をフィールド枠とい い、それぞれの要素を文書上に張り付ける形 でレイアウトを決定する。その際にフィール ドプロパテイ(フィールド定義のウインドウ) 上の名前に SASデータセットの変数名を指定 することでインターフェースを取るので、各 項目の変数名はあらかじめ整理しておくこと が必須となる(図的。 ‑298 追跡調査票 │症例番号 c │治療群 c │性別 |@女~ │年 齢 │μ │治療開始[fl年ヂ月 d日 ! │転帰 │生存o@P 消息不明~ |確認日 177~ . 1月 /tl日 │ 図2 仮想試験データ 3)の項目に沿っ て仮に作成した調査票例

302.
[beta]
雪女X E生死

ー存亡

叩酬

HH

r
u
n
;

亀
"
。
刷SE.'t AGEGROUP 5:lI,Y y.,mccf

t
l
a
t
a
T
E
S
T
D

n
p
u
t白 S

'
o
r
f
l圭tS
:
e
X FSD

GROUPFGF(UP

m刷円V.rc:l
S
D
A
Y即 " y
拘置"

l
凶"

c
崎日旧三'症伺亜守
SEX
A. ~E

住~'r

::'年齢'

1
'
.

四国 p ='治妓

ま
'
JA
Y ::'治明帯悼集月白
骨耐ニ'生

π

凹"

士'死亡'"用ヨ・;

箇

ひ令 E
巴

・
叉

図3 調査票イメージのひな型文書作成例

2
.
3 症例一覧表作成機能の起動
図1
で示した一連の処理の流れを C
R
L
I
S
Tマクロとして集約しており、症例一覧表
を作成する際は、対象となる S
ASデータセット名とひな型文書名をパラメータとして
与えて起動する。その起動と出力結果の例を図 4に示す。

E国国暗

ト~:..ス

ヲァ

XEW

閉じる T
r
r
踊 1.1戸
IE¥lol霊

.;;薗顛倒

i

通路調査隈│

1
"
'
.
.
.
.
1二こコ巨空工二王コ

EE
工
二Eコ EE
工
二Eコ

l
<
<
:R
l
I
S
T
(
T
E
ST
:
>A
T
A,ひ自主t
文冨 1
;
1

│輔副 1

EE
工豆Eコ
"品目

│

1 ・E 臼'n- ~5.1・|

箇
図4 症例一覧表機能の起動と作成結果

2
9
9一

303.

2. 4 CRL lST マクロの処理概要 指定された SAS データセットから出力するテキストファイルの形式は、変数名を格 納するヘッダ一部とそれと同じ並びのデータ部に分けて保存される(図 5)。 次にマクロの内部でインターフェースプログラムを起動しているが、これはC言語4) を用いた文書アクセスのためのアプリケーション開発ライブラリー 5)により、自社開 発したもので、ひな型文書を読み込み、該当するフィールドにテキストファイルの データを挿入し、新しい文書として作成する処理を行なっている。 3 . おわりに ヘッダー部 〆 CASENO ここでは、 SASシステムと DTPソフトの SEX 組合せによる症例一覧表の作成について紹 AGE 介したが、他に PRINT マクロも C言語によ GROUP り、開発したプログラムを用いて、ひな型 SDAY TENKI 文書を必要としない表形式の症例一覧表(罫 " DDAY 線を自動的に付与)を作成する機能も用意し ENDOFVARIABLE ている。 /11 + ‑ DTPソフトは通常、文書作成ソフトとし 男 6 2 て、広く用いられるようになったが、必要 A に応じたアプリケーションを開発すること 7 7 ‑ 0 4 ‑ 0 3 によって、文書生成ソフトとして適用範囲 死亡 を広げることができる。開発には多少、困 7 7 ‑ 0 6 ‑ 1 5 2 難な点は多いものの、 C言語はある程度、 女 プログラミングの知識があれば、扱えると : ¥ 言われており、手持ちの DTPソフトに付属 図5 テキストファイルの形式 する開発ツールを是非とも参照されること ASの出力編集の問題は解決できる を勧めたい。それによって、従来から抱えていた S ものと確信している。 この UNIX 版S ASシステムによる OEPの機能としては、ほぼ満足できるレベルに達 したと考えており、現在、市販後に行われる使用成績調査に広く適用させている。 今後、より効率的な運用法を検討していくと共に、将来、 GCP 等での適用について も検討していきたいと考えている。 データ部 参考文献 1 )山勝清壮 ( 1 9 9 4 ) P C版 SASシステムによる O u t p u tE d i t i n gP r o g r a m ( O E P ), 第1 3回 SASユーザ、会論文集 : 9 5 ‑ 1 0 4 . 9 2 ) S A SとDTPソフトウエア ( G l o b a lV i e w )によるレポート作成,第 1 1 2 )望月久永(19 回S ASユーザ、会論文集 : 2 5 72 6 2 . 1 9 8 5 )治療効果判定のための実用統計学,蟹書房 : 7 7 . 3 )富永祐民 ( 引 )L e 白s Hanc ∞ o c k 王 4 5 日)富士ゼゼ、ロツクス株式会社( 1 9 9 3 ) 河 VP文書アクセスインタ一フエ一スフプ。ロググ ラマ一 ・ P ズガイド. * G l o b a lView③ l 、 立 富士ゼロックス株式会社の商標である。 3 0 0一

304.

日本 SASユーザー会 (SUGI‑J) 研究会解析 (Key upen) における SAS と Excel の利用例 0小 沢 義 人 吉 田 彰 夫 日本化薬株式会社医薬事業本部医薬データセンター Using the SAS system and M工crosoft Excel in analysis with ameeting for the study (KeyOpen) Yosh工hito Ozawa and Ak工o Yoshida Medical Data Center Pharmaceuticals Group Nippon Kayaku CO..LTD. TOKYO JAPAN 市i ヒ2 3ど 日 我々は SUGI‑] '94において SASデ ー タ セ ッ ト と EXCEL の交換を行うマ クロを発表した 1)。今回はこのマクロの応用例として、プレゼンテーション 用 Prograrn の作製例の報告を行う。 キーワード Windows 版 S AS シ ス テ ム , Microsoft Excel , 研究会解析 1.はじめに 新薬開発のための臨床試験、とくに第三相比較試験の試験デザインでは二重 盲検法が原則であることが新薬臨床評価ガイドライン 2) などに示されている。 二重盲検法においては症例の固定がなされた後、薬剤割り付け照合記録を開封 し (Keyupen)、各群において背景因子、改善度、安全度、有用度などについ て統計学的あるいは推計学的な群比較を行う。これらの作業は一般に研究会の 形態で発表されることが多い。 現在、我々の用いている環境は、メインフレーム版 SASのデータを管理、 解析し、研究会の時にデータを PC版 SAS上に展開しデータを持ち運び Key ASのポー upen のための解析を行っている。このときのデータ移送に関して S タピリティのよさが十分に生かされている。 一方、従来のパソコン (PC) 環境では PC 側にデータを取り込んできても 十分なパフォーマンスが得られなかった。しかし、近年、コンピュータの発達 が目覚ましく小型軽量なノートブックタイプのパーソナルコンピュータでも大 AN環境に接続することにより、強力な 容量のデータを直接持ち運んだり、 L SAS の環境を使用することが可能となってきている。加えて Windows 上の SAS では他の Prograrn との連携により表現力の高いプレゼンテーションが 可能になる。 我々は SUGI‑] ' 9 4 において SASデ ー タ セ ッ ト と EXCEL とのデータ交 換を行うマクロを発表した。今回はこのマクロの応用例として、プレゼンテー ション用 Prograrn の作製例の報告を行う。 ‑301‑

305.

2 . Main Program概 略 1.マクロ変数・グローパル定義 (機種依存、定義) 2 .データ読み込み (データおよびフォーマットのコピー) 3 .必要なマクロの実行 ( X L入出力および操作マクロ) (解析マクロ) 4 .キーコード入力(入力画面) 5 .解析 Program 実行 I T T用 、 P P B 用など) 解析データセットの用意 ( 改善度、安全度、有用度などの集計、検定、出力 背景因子の集計、検定、出力(出力例 1、 2) 下︒ 以す は示 でを 文面 論画 本力 キ一入力画面、出力例 l、 2および SAS入 3 . 入力画面 キーコードの入力は以下のワークシートにより入力し SAS にデータを取り 込む。 5PPAAAPAPAPAPAPPA A U﹃ AHAH 円﹁円﹁ AH 円 ﹁ AH 円﹁円﹁門﹁ AHAH 円 ﹁ AHAH円﹁‑ つ叫門﹁門﹁門﹁ AHAHAH 円 ﹁ AHAH 円﹁門﹁ AHAH 円﹁円﹁ AH・ 門 ﹁ 一 AHAH‑円﹁円﹁ AHe .. e.d.e ... ぜ 巴 JV.II 内示ぜ 円﹁込凸 A 門e 門 ﹁ eゐ A d ee3Je . ザ AHAH 門﹁円﹁円﹁ AH 円 ﹁ AHAH 門﹁門﹁ AHDEAHAH . F P ι 勺乙門﹁ AHAH 円﹁円﹁ AHAH 円 ﹁ AHAH 円﹁門﹁ AH 円 ﹁ AH 円 ﹁ AH 円 ﹁ ‑AHDEAH 円﹁一円﹁ ﹁ 寸l A H 門 302

306.

4 .出力例 1 以下のデータは SAS により出力されたものを表示したものである。 5 f l i l f ユ57 工6 2 Wilcoxon:.J:' ank-:~um t~91ョ Q C H H" , , ' lk.55. p~ 0 女 が ま l .Z te: = st Qp= 16.22 p = 0 ま女合 出力例 2 ' ) : 't 食エE 事~!ZSJ i t ‑ 宝 月1 口・ 9 7 u 主手歯吉 ロ ー 2762 ! 有量 1 胃其月再司 0 . 9 7 3‑ 41 歪見1 寓居歪 O̲637Si ヰ廃宇舌 重量I1EI 支 D‑9E31i p = ロ .37 E正干主毘霊 合 f 井l1E 台車鞭 宵可 3 f 弁 F詞 ‑ 斉J ' i qd qu n u

307.

5.SAS 入 力 画 面 SASは実際にはこのシートにまとめて出力される。出力例 1、 2はこのシー トを参照したものである。 一盟一二一 園一一一 ;一 一‑一コJ 一睡判明匡円‑間四 一山扇町圏 一 ﹂ 土t一志一 ー丸山川 品 川 日 川 川 間帯治文相主制 6 .おわりに 本論文中では Program 作製の概略を示すにとどめた。詳細な Program に ついては当日示す予定である。 7 .参考資料 1 ) '94年日本 SASユ‑'f一会 (SUGI‑]) Windows四版 SAS システムの動的データ 交換 (DDE)による MicrosoftExcel とのデサ交換マクロの作成 2 ) 新薬臨床評価ガイドライン薬事日報社、日本公定書協会 ( 1 9 9 2 ) Microsoft は米国 Microsoft Corporation の登録商標です。 Windows は米国 Microsoft Corporation の商標です。 ‑304‑

308.

日本 5A5ユーザー会 (5U G卜‑..)) 解析帳票作成支援システム 望月久永 富士ゼロックス株式会社 東日本 SE部 TheDataP r e s e n t a t i o nSystemf o rC l i n i c a lS t u d i e s HisanagaMochizuki E a s tJapanSystemEngineeringD i v i s i o n F u j iXeroxC O ., L t d . 要旨 臨床開発、市販後調査部門の統計解析業務で発生する、グラフ、症例一覧表、集計解析表 を、自動的に Akaneまたは GlobalView( 共に S o l a r i s 上の DTPソフト)に出力するシステムを開発し た 。 従来、この業務のシステム化は、 ①薬剤、フェーズごとに試験項目、解析方法が異なり都度変更が必要になるため、定型の システムでは対応できない。 ② SASで の 処 理 結 果 を 、 直 接 DTP 文書に出力するためのインターフェースが無い。 等の理由から、実用に、耐えるシステムは無かった。本事例は、この問題点を克服したエンドユー ザです及えるシステムである。 キーワード: DTP, SAS/STAT, SAS/GRAPH, SAS/AF 1 . システム概要 本システムは、 SAS/AF 上 で 構 築 さ れ た ソ フ ト ウ ェ ア で 、 大 別 し て 以 下 の 2つ の 機 能 か ら 構 成 さ れる。 ①データ抽出 ORACLEデ ー タ ベ ー ス で 管 理 さ れ る デ ー タ を 属 性 情 報 ( タ イプ/レングス)も含めて SASデ ー タ セ ッ ト と し て 抽 出 す る 。 11 . 1 データ抽出I!FJで紹介する。 →詳細は、 ②解析結果の文書化 SASデ ー タ セ ッ ト に 対 し て 辞 書 変 換 、 グ ラ フ 化 、 集 計 解 析 等を行い、その結果を Akane 文書のフィールド枠、テープ ル枠、図形枠にオーバーレイする。 → 詳 細 は 、 帳 票 の 種 類 別 に 、 11 .2 カ ー ド ( 1症 例 / 1帳票)作 成I!FJ、 11 .3 一覧表作成I!FJ、 11 .4 集 計 表 作 成 I ! FJで紹介する。 r . . . . . .. . . . ... . . . .. . . . . . .. . . . .. . . . . . .. . .... . ... . . . . . ・ . <動作環I 車〉 直 :ハードウェ 7 S P A R C s t a t i o口シワーズ・ 1 S ol a r i sl . l .l勺 05 :デタベース ORACLE6or7・ 3 :統計解析 S A S 6 . 0 9 DTP A k a n e S 2 . 2o rGlo b a l V i e wS3. 2 ~ Fhu 苛 qυ n u

309.
[beta]
1
.
1 データ抽出 I
/
F
データ抽出I!Fは、 ORACLEデータベースで管理されるデータを属性情報(タイプ/レングス)も含め
て SAS
のデータセットとして抽出する機能を提供する。(本I!Fでは、 SAS/ACCESSを 使 用 せ ず に p
i
p
e
機能で実装している。)
データ抽出I!Fの操作画面、操作手I
}
頂、特徴を以下に示す。
,
"
"
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・ ・
・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
:<操作手順〉
:①

ORACLEデ

:②

作成する S
ASデータセット名を入力する。

:③

タベースに接続する。

ア ク セ ス 可 能 な ORACLE上 の テ ー プ ル 一 覧 か ら 、
データ抽出を行いたいテープルを選択する。

:④

テ

プルに定義されている項目

覧から、抽出項目

を選択する。

:⑤
:⑤

抽出条件を設定する。
[実行]を選択すると、設定に基づいてデータ抽出が
行われ、 S
ASデータセットが作成される。

‑
・
・
・
・
・
・
・
・
・ ・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
"
"
"
・
・
・
.
.
.
.
.
・
.
.
.
.
.
.
.
・
・
・
・
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
<特徴〉
:①

データ抽出作業を画面設定で行える。

:②

複数テープルからの抽出が可能。

:③

画面で設定された内容の保存。

.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
.
.
・
・
・ .
.
.
.
.・
.
.
.
.
.
.
・
・
.
.
.
.
.
.
.
.
.
.

1
.
2 カード作成 I
/
F
カード作成I!Fは、 SASデ ー タ セ ッ ト の 生 デ ー 夕 、 も し く は SASフ ォ ー マ ッ ト 変 換 、 辞 書 変 換
(
例:
1→男)、グラフ化後のデータを、 1
症例単位にA
kane文 書 に 出 力 す る 機 能 を 提 供 す る 。
カード作成I!Fの操作画面、操作手順、特徴を以下に示す。
.
.
.
.
.
.
.
.
.
.
.
.・
・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・
・
.
.
.
.
.
.
・ .
.
.
.
・
・
・
.
.
.
.
.
.
.
.
.
.
.
〈操作手 1
[直
〉
j①

フォーム文書名を入力する。

:②

作成文書名を入力する。

;③

SASデ ー タ セ ッ ト を デ ー タ セ ッ ト

覧から選択す

る
。
j④

Akaneテ

プル枠に出力にしたい変数を変数名一覧

から選択する。

i⑤

SASフ ォ ー マ ッ ト 変 換 、 辞 書 変 換 を 行 い た い 場 合
は、変数ごとに設定する。

:⑤

グラフを搭函するためのプログラムを設定する。

:⑦

[実行]を選択すると、設定に基づいて A
kane文 書 が
作成される。

・
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

‑306‑

310.

. . . . . . . . . . . . . . . . . . . . ・ ・ . . . . . . . . . . . . . . . . . . . . . . . ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ . . ・ 生成される文書 〈特徴〉 : : [ ¥ ¥ ¥ j① グラフとテープルの同時出力。 :② i③ SASフォーマット変換、辞書変換出力。 画面で設定された内容の保存。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ・ ・ ・ ・ . . . . . . . . . . . . . . . . . . . . . . . . . . . R B C i 直の推移 1 . 3 一覧表作成 I / F 一覧表作成I/Fは、 SASデータセットの生デー夕、もしくは SASフ ォ ー マ ッ ト 変 換 、 辞 書 変 換 ( 例: 1→男)、グラフ化後のデータを、一覧表形式で Akane文書に出力する機能を提供する。 一覧表作成I/Fの操作画面、操作手順、特徴を以下に示す。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・. ・ 4 〈操作手順〉 ;① フォーム文書名を入力する。 ;② 作成文書名を入力する。 ③ SASデ ー タ セ ッ ト を デ ー タ セ ッ ト 一 覧 か ら 選 択 す ④ Akaneテ ー プ ル 枠 に 出 力 に し た い 変 数 を 変 数 名 一 覧 ⑤ SASフ ォ ー マ ッ ト 変 換 、 辞 書 変 換 を 行 い た い 場 合 ⑤ 同一列に 2つ の 変 数 値 を 分 割 行 出 力 す る 場 合 に は 、 る 。 から選択する。 i 土、変数ごとに設定する。 編集文字を入力する。 ⑦ :③ グラフを描画するためのプログラムを設定する。 [実行]を選択すると、設定に基づいて A kane文 書 が 作成される。 毒 事 生成される文書 〈特徴〉 :① :② :③ 分割行出力。 i③ 画面で設定された内容の保存。 追跡 318 364 グラフとテープルの同時出力。 SASフォーマット変換、辞書変換出力。 ヴt nd n u

311.

1 . 4 集計表作成 I / F 集計表作成I/Fは、 SASデータセットを集計解析し、その結果デー夕、もしくは SASフォーマッ ト変換、辞書変換(例 : pく 0 . 0 5→勺後のデータを、 Akane 文書に出力する機能を提供する。 } 頂、特徴を以下に示す。 集計表作成I/Fの操作画面、操作手I .<像作手 ) I [ ! i > j① フォーム文書名を入力する。 :② :③ 作成文書名を入力する。 i④ 列項目に行いたい処理を設定する。 :⑤ 行項目に処理したい変数を設定する。 SASデ ー タ セ ッ ト を デ ー タ セ ッ ト 一 覧 か ら 選 択 す る 。 :⑤ [実行]を選択すると、設定に基づいて集計解析後、 Akane文書が作成される。 襲 撃 じ 生成される文書 . ・ ‑ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ . . . . . . . . . . . . . . . . . ・ ・ ・ ・ ・ . . . ・ ‑ ・ ・ ・ ・ ・ . . . . . . . . . . . . . . 〈特徴〉 :① 項目 p 生万! 分類 背景因子表 投与群 薬 剤A 薬剤日 1 2 ( 4 4 . 4 )1 5 ( 6 0 . 0 ) 1 5 ( 5 5 . 6 )1 0 (4 0 . 0 ) 25 27 . 3 ) 4 ( 2 2 . 2 ) 0‑29 2( 8 I~年歳齢) 2 ( 2 5 . 0 ) 4( 2 2 . 2 ) 30‑39 6 . 3 ) 1(5 . 6 ) 40‑49 2( 8 ( 2 9 . 2 ) 3( 1 6 . 7 ) 50‑59 7 . 7 ) 3( 1 6 . 7 ) 60‑69 4(16 . 5 ) 3( 1 6 . 7 ) 70‑98 3(12 合計 24 1 8 I~ 合計 . 臨床試験、市販後調査で使用される一般的な統計量 の出力を画面設定で行える。 ② 合計 検定 27 0 . 2 6 2 25 52 61 0 . 8 0 1 1 0 3 1 0 7 6 42 SASフォーマット変換、辞書変換出力。 ③ ユーザ作成のプログラムを組み込み可能。 ④ SASで 出 力 さ れ る 統 計 量 の ほ と ん ど を 取 得 可 能 。 画面 (データセットに出力される統計量、 OUTPUT ⑤ 多重比較にも容易に対応可能。 ⑤ 画面で設定された内容の保存。 に出力される統計量を問わない。) ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ . . . . . . . . . . . . . . . . . . ・ ・ ・ ・ . ・ . .・ . . . . . . . . . . . . . . . . . . . 防 2 . エンドユーザコンビューティング環境 本システムには、新規プロトコール発生時に、データ抽出、帳票作成をエンドユーザ部門で 対応可能にするために、いくつかの仕組みが盛り込まれている。ここでは、その中から代表的な ものを 2つ紹介する。 2 . 1 サンプル集の提供 臨床試験、市販後調査で発生する一般的な解析帳票作成のための画面設定情報のサンプル集で ある。 新規に解析帳票を作成する際には、この画面設定情報のサンプル集をひな型として効率的に作 業を進めることができる。 308‑

312.

2 . 2 設計管理モードと自動実行モード 本システムには、データ抽出、帳票作成のイ乍り込みを行うユーザのための「設計管理モード」 と、データ更新後の再解析、(マシンを持ち込んでの)キーオープン対応、一般ユーザーへの部分 的なオペレーション解放のための「自動実行モード」がある。 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :<設計管理モード〉 :各種 I I Fを使用して、データ抽出、解析帳票作成のための i画面設定を行い、 S ASカタログに登録する。 〈自動実行モード〉 :登録された画面設定情報を一覧表示し、選択された画面 :設定情報を自動実行する。 3 . 帳票出力サンプル 本システムで自動的に出力される帳票は様々であるが、ここでは、 る帳票を紹介する。 「集計表 I J F Jで 出 力 さ れ 3 . ' 効果判定表 下記の帳票は、「集計表作成I J F Jの基本機能で作成可能である。 効果判定 項目 総合判定 投与群 薬剤iJA 薬剤iJB 薬剤 C やや 有効 有効 不変 悪化 6 5 2 5 5 5 5 9 9 1 4 判定 不能 合計 H検 定 5 5 6 3 0 2 5 2 5 p= 0 . 6 8 3 8 0 . 7 6 2 3 . 2 効果判定表(多重比較) 下記の帳票は、上記の帳票 ( 3 . 1 効果判定表)を多重比較にしたものであるが、 11 .4 集 計 表 J F Jのく特徴〉⑤で触れたように、モードの切り替えによって容易に対応可能である。 作成I t e e l ‑ D w a s s検定は、「集計表作成 I J F Jの 基 本 機 能 で 提 供 さ れ て い な い が 、 〈 特 徴 〉 ③ また、 S の「ユーザープログラムの組み込み」機能を使用して統計量を出力している。 { 疋 ‑A 門 川 川 内 検 ‑8S 訓 白山‑=二一一 A‑ i yム ・ Hn‑o oo 白旬園噌 印一 p p p ai 臥 M E T ム A笹 口 U +UEnon61ム i ・ ・ ・ nununu ‑A 生 nuqh ‑Qd 司SQd 刑問‑一一一一一一 { 疋 ‑549 s‑000 高 貝 圃 QdQdQd ‑309‑ 回一 p p p M川 園9 2 8 kun6nu nununu BCC 群‑剤剤剤 与一薬薬薬 投 Ell‑ AAB 総合判定 剤剤剤 薬薬薬 項目

313.

3 . 3 生存時間分析表 下記の帳票は、 11 .4 集計表作成 VFJの く 特 徴 > ③ 「 ユ ー ザ ー プ ロ グ ラ ム の 組 み 込 み 」 、 ④ IOUTPUT画面からの統計量取得」機能を使用して、 LIFETESTの統計量を OUTPUT画 面 か ら 取得、出力している。 群‑ 与‑ 剤剤剤 凡 EE I‑ABC 生存関数 薬薬薬 項目 ログランク腕 │ウィルコクソン検定│ 尤度検定 2 5. 40 3 7 I 3 3 . 9 3 4 3 1 9. 43 3 1 I p= 0 . 0 0 0 1 * * *Ip= 0 . 0 0 0 2 * * *Ip= 0 . 0 0 0 1 * * * 4 . 今後の検討事項 本システムは、機能的に円熟の時期を迎えており、大きな機能追加は予定していない。(フル モデルチェンジを考えるならば、 SASのメジャーバージョンが上がる時であろう。) そこで残るは、マルチプラットフォーム対応ということになるが、以下を現在検討中である。 ① HP9000シリーズ叫への移植 ・ ② Windows3.15へ の 移 植 5 . 終わりに 本システムは、臨床開発、市販後調査部門の統計解析業務で発生する、グラフ、症例一覧 表、集計解析表作成のための最適な環境を提供することができたと確信している。特に、帳票作 成 が SASで 提 供 さ れ な い 機 能 で 、 か つ 莫 大 な 工 数 を か け て い る 作 業 で あ る だ け に 、 ユ ー ザ ー に とってのメリットは計り知れないものである。 く登録商標〉 本 1 吃 SPARCstationは、米匡I SunM i c r o s y s t e r n s 社の登録商標です。 S o I a r i sは、米国 SunM i c r o s y s t e r n s 社の登録商標です。 3 ORACLEは、米国 ORACLE社の登録商標です。 * 4 * 5 HP9000は、米国 H e w l e t tPackard 社の登録商標です。 Windowsは、米国 M i c r o s o f t 社の登録商標です。 本 ‑310‑

314.

経時データの回帰係数(傾き)を endpoiけとした解析 0植松弓美子 日本ロシュ株式会社 臨床開発本部統計解析部 Analysyso fslopef o rendpoint YumikoUematsu MedicalBiometricsCRDD i v .NiponRoche 要旨 経時データで途中打ち切りがある場合、時期ごとの平均値の比較を行うことは誤った判断を生み出し かねない。その場合、なにをもって評価するかを考えた。もし、各症例ごとに直線的に変化するような データであるなら、症例ごとに回帰直線をあてはめ、その回帰係数(傾き)によって比較できるのでは ないだろうか。ここでは、実際にその傾きによって群間比較をおこなったのでその事例を紹介する。 キーワード:途中打ち切り、回帰置線、回帰係数(傾き) 1.はじめに この臨床試験では薬剤の投与によってある臨床検査項目 A を低下させることを期待した試験であり、 その目的はプラセボと実薬群に差があるかということと、実薬群聞で用量相関的な線形性があるかとい うことについてである。試験デザインは、プラセボを含めた 4用量の二重盲検平行群間比較(1 2週間 投与)である。一方、過去の試験成績よりこの薬剤は Aを低下させると共にある臨床検査項目 Bを上昇 させることがわかっており、 Bはあるレベル以上に達すると危険であるため、そのレベルを越えたとき には投薬を中止した。そのため、高用量群では、途中打ち切りが多くなることが予想された。また、 A は効果の指標であり、 Bは安全性の指標として、共に評価上重要なパラメータであるため一括測定を行 った。割り付けの際、施設および項目 Bを要因とした最小化法を用いた。 2 . データの検討 まず、 Aの分布の型を検討した。 UNIVA悶ATEプロシジャの PLOTオプションによりヒストグラムを 出力した。(図 2 .1)項目 Aは生データだと高値に裾をひいている。項目 Bについては生データでも正 規分布に近い分布をしていた。項目 Aについては、常用対数をとってみると、とぴはなれ値がなくなり 正規分布に近づいた。項目 Aについて対数変換後データにて解析することとした。対数変換後の Aにつ いて、症例ごとに推移図を描いてみた。ほぽ直線的に低下しているか、ほとんど変わらず水平であるか のどちらかを示すものがほとんどであった。また、用量による差もあると思われるが、個体差もかなり あるようである。低下しているものについては、途中打ち切りが多く、変化のあまりないほほ水平なも のは完全終了しているものが多かった。この傾向は高用量群に多くみられた。 1 2週時の脱落率は高用 量群では約 50%前後であった。もし、このまま、平均のグラフを措いたとすると、ある程度まで直続 的に低下した後、水平になるようなグラフになると考えられる。群別の推移図(図 2 . 2 ) およびそのま . 3 ) を描いたので示す。この平均値のグラフは、このようにこのまま ま計算した平均値のグラフ(図 2 ‑311‑

315.
[beta]
では項目 Xは変化のない症例が残るためにある時期から低下の限界があるような誤った判斬がくださ
れそうである。平均値のグラフは途中打ち切りの多い高用量については、 2
0%以内の脱落率に押さえら
.
4
) しかし、これだけでは情報量も少ないので試験全
れた 4週までのグラフを示すこととした。(図 2

体としての評価をするうえで平均値以外の評価の指標が必要であると考えた。一方、個々の推移図から、
視覚的に直線があてはめられそうなことがわかったが、数学的に直線のあてはめについて検討すること
にした。

図2
.
1項目 Aの分布

‑
・

,

:
:
I
!
:
I:oq:

l
!
IOK?~ 0:

・

L

対数変換後データ

1

3

3

7

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

25

.
.
.
・
・
・
・
・
・・
.
.
・
・
・
・
・
・
16
:
:
'
o
o
.
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
.
.
・
・
・.
.
.
.・
'
"
・
.
.
.
.
.
.
.
.
.
,
・
・
・
・
・
・
.
.
.
.
・
.
.
,
・
・
・ ・
・
・
.
.
・
・
・
・
.
.
.
・
・
・
・
・
.
.
.
.
・
・
・
・
・
・
・
・
・ ・
"
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・ ・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・e
1

R

1

a

a

一
ー
『
一
一
・
ー
一
ー
‑
一
ー
・
ー
ー
一
・
一
ー
司
ー
一
‑
・
一
一
・
ー
ー
『
.r
u
.y r
・
pNse
1
.
.
,
.,,0 9 C::U :
:
S
E

:
l
l
:

:
'
I

'
"
'
"
'
"

)1

a

4

i

:'~l

4

..

"
17
3

:
.
9
.
.
.
.

・.
0
.
3
.
.・

3

,

・ー・-~---...-一ー・一一・ーーーー・一勧『ーーー・-...--・-._ー.

y r・"・ s ・ n乞苫~ :0

.
. '
:
'
l
l
l
.

co、~!l t ・

図2
.
2Aの症例ごとの推移図

j
i
‑‑
l

1・

au
z
・
・
3
1

drug=P

drug=l

j
a
‑
‑
‑
s
l
・
・‑1'l・
1
1
e

・
・
E・

‑
S
1

.•

i
・II II I'II II ! I II II II I
fJte

:
: I ・・‑
‑
・
1
i
l ‑ 53
i
‑

a凶

r

t
元j.
5
九
.4

1a
i
l

drug=1.5

drug=2

e

4J
l

1
‑ iI II 1I I1 ! J 1I II 1I I1
ー
!

,
そ
汀
匂

,
司

、

i
!

‑3121

I
I

!i!E0306

・
.
.
.
.
.
.
.
.
・
・
・
・
・
・
・
・
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

,

a~s::.;:'''::

!l
'
"
・
・
・
.
.
.
.
.
.
loS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
.
.
.
3
2
.
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・・
・
・
・
・
・
・・
・
・ l
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
.
.
.
. 3"
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・
・
・
・
・
.
.
.
.
.
2
.
:
'・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
'
"
<
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
・
・
・
・
・
・
lCC
・
・
・
・
・
・
.
.
.
.
.
・・
・1
.
,
・
・
・
・
・
・
・
1
・
.
.
.
.
・・・・・・...~.....

‑Ili

"
"
"
1
>
"
ニ

!2S~.....

‑‑
‑‑
‑
一‑
‑lil‑‑

.
・
・
.
.
.
..
.
・
・
.
.
.
.
.
.
.
.
.
.
.
.
.

一
日
一

8
1
5

agZ333C11:iii‑‑‑‑1

.

司1 1 i

.
.
.
.
.
.
.
.
.
.
.
.

2Uil."

316.
[beta]
.
4Aの群別の平均値のグラフ
図22
.
3A の群別の平均値のグラフ

1
.
52)については 4週まで)
(高用量 (
均的"

10000

"
ー
・
‑
¥

T7

守 守

TT

111001

T

l
r

I .,~-昨ー斗、.

1001

I

1

1
1

11
1 1
1
1 1
1
1

1
1
1 1
1
1

‑.
・
・・
‑
‑
‑
‑
・
.‑
‑
‑
‑・
1
‑‑‑‑.1.'

DJU10

2

1
1
1

1
1
1 1
1
1 1申 3・1

U

‑,・

・"

z

I)P‑U Q

‑‑‑‑‑

2
P

t
I

!
I

一
一
・
‑
‑.
.

.

・
,

3
. 直急車のあてはめの妥当性について
SASの GLMプロシジャを用いて、多項式回帰により症例ごとにチェックした。ここで、

Yは logA

を示す。
Proc glm
data=DDD.D03 outsta
↑=
STAT n
o
p
r
i
n
t
;
5
5
1;
model Y=WEEK WEEK.WEEK WEEK.WEEK.WEEK/
by
ITEMIDNO;

JF 可
﹃

f

hMmm4

MeanSquare FValue
1
1
.
0
5
0.20946660
0
.
1
7
0.00319375
0
.
5
3
0.00997812

:︑
l
J
.49
0

TypeI
SS
0.20946660
0.00319375
0.00997812

F︒
瓜 O

aiI
DEI
‑‑

Source
WEEK
WEEK'WEEK
WEEK'WEEK'WEEK

これから、各項の F値および p値を比較することにより一次回帰か二次回帰か三次回帰のどれが妥当か
.
1未満
を検討した。 TABULATEプロシジャで結果をまとめてみた。多くの症例が一次について p値 が 0

であった。また、そうでない症例についてグラフで確かめたところ p値が大きい症例は水平に変化して
いるものが多い傾向にあった。これらのことから、この検査項目の経時データについては一次の回帰直

f
泉をあてはめることにした。
4. 回帰係数(傾き)の算出
.1)回帰係数は REGプロシジャで
回帰係数(傾き)の算出には GLM プロシジャを用いた。(表示 4

も計算できる。回帰直線のあてはめ例を示す。(4
.
2
)

ム
守h

qd

qd

317.

表示 4 . 1 proc glm do↑0=000. 003 outs ↑ 0↑=STAT model Y=WEEK; 汀EM 10NO; by e ↑e r Poro門1 E s t i m o t e INTERCEPT WEEK ‑ 0. 0 4国 6 4864 Tf o rH O : Pr> 1 T1 S t dE r r o ro f Porometer=O E s t i m o t e 2.712414800 3 8 . 2 1 ‑ 2 . 1 1 0 . 0 0 0 1 0 . 0 8 8 5 0.07098112 0.01968662 図 4.210gAの回帰直線のあてはめ例 logA=2.712‑0.0412week 3 ・ 2‑ 5 . 回帰係数(傾き)の比較 . 1)対数変換後データでの傾きなので、一定 群別に回帰係数(傾き)の BOXPLOTを措いた。(図 5 期間あたりの下降率が計算できる。 Bについては生データの傾きであるから一定期間当たりの上昇量が 計算できる。項目 AとBの関係について検討するために Aの傾きを縦軸に Bの傾きを横軸にプロット図 を描いた。(図 5 . 2 ) これによって、安全性の指標である項目 Aの上昇量に対する効果の指標である項 目Bの変化率が検討できる。 plocebo群では明らかに、項目 A、 Bともに変化がない。また、用量が 高くなるにつれ、 Aの変化率が高い傾向にあり、 Bの上昇をある程度にとどめながら、 Aを低下させて いる症例もあることがわかる。 図 5.1 logAの回帰係数(傾き)の BOXPLOT ・ ・ 円HUllt ・ ハU ‑ J 1寸44JAS寸4JJJ U4t ハU ♀ ・ハ ‑E 4t ハU 呈 下 ; 詩 寺i 詰 ‑ 0 . 2‑ 1 川W ; j 逗 石7寸 市 す 百 W 当た り 2 卜 , 1l1 ) r...................~.f~ 引 fこ二::訓;;::判 引:コ引幻 ;:2 0%{ ‑ O . C4 司 ヨ 1 1 130% 十0.15司I75~/O a 心 3‑ , I 卜 ~O% ( ‑ C . 2 2 2 )1 8 7 ' i │卜 50%( . 0 . 3 0 1 )1 94% I 97'>0 ‑ 0. 4‑ E O Q / も{心 3 S S ) ‑0.5‑ P l a c日bo 1 . 5 ‑314一 2

318.
[beta]
図5
.
2A とBの回帰係数(傾き) の関係

drug=l

1

drug=P

•••.
•

u

u寸 一 一 一 一 一 一 一 一 一 一 一 一

事

︿ OO

一

〈

071.1
‑
︑
句
n
a
u

0

d

¥
f 1
"・"
ANU

4

•

•

^
" ~.

B

1
l

攻
守
︑

•

t
.

! 1

,
.
‑

・
'

ι

~

・
.

'

huu

4‑
・

AE
1.1.';

•

11‑
・
RU

‑KJ

・
11

・

•

,

1
1

M

1

-~

rh d

n
"
v

1
1

‑
u •

。
。 。
。

l‑

む
打

‑B

Au

︑'

••

i 、
色

・
・v ・
.

︿ OO
一

凶 』

ilili‑‑7

〈
AI
0
>‑
0

.‑

drug=2

drug=1.5

u

寸

B

1
.J

7U

・

1

u

•

‑
u

1

1
1

BU

•

︑
r

‑

,
'
‑"
、
'J
..J

丁

T

¥
.
u

1.J

u

B

B

6
. 回帰係数 (
f
c
噴き)の対比による比較
今回の試験で知りたいのはプラセボと実薬群に差があるかということと実薬群間で線形性があるか
ということについてである。この二つが同時に有意になることを期待するわけで、どちらか一方が有意
となることを期待するわけではないので多重性の考慮はいらないことになる。この 2種類の対比を設定
し、対比による平方和の分解を行えばよい。これは、 GLM プロシジャの c
ontras
↑ステートメントに
より実行できる。

Fhu

η

t‑

︒

319.

表示 5 1 proc glm data=SLOPE3 ou↑ s ↑ at=CONTRAST; c l a s s DRUG; model Y=DRUG/ ぉ ,2; ↑r a s t' D (l )v sD ( 2 . 3, 4l ' DRUG ‑ 3 1 1 1 ; con con ↑r a s ↑D ( 2 . 3, 4 lliner' DRUG 0・ 1 0 1 ; by ITEM; GeneralL inearModelsProcedure Source Model E r r o r ↑ edTo ↑ 。l Correc DF 3 1 4 7 150 Sumo fSquares 0.28017330 0.74458334 1 .02475664 . v . MeonSquore 0.09339110 0.00506519 FValue Pr>F 1 8 . 4 4 0 . 0 0 0 1 R‑Square 0.273405 C ‑ 1 0 0 . 5 2 3 2 Roo ↑MSc 0.07117017 DF 3 Type1 1SS 0.28017330 MeonSquare 0.09339110 FValue 1 8 . 4 4 Pr>F 0 . 0 0 0 1 MeanSquare 0.12149646 0.15311325 FValue 2 3 . 9 9 3 0 . 2 3 Pr>F 0 . 0 0 0 1 0 . 0 0 0 1 Source DRUG ↑r a s ↑ Con 1 )v sD ( 2 . 3, 4l D( D ( 2 . 3, 4ll i n e r DF s s Con ↑r a s ↑ 0.12149646 0.15311325 YMean ‑ 0.07079975 7 . まとめ 今回の試験の endpointとして傾きを用いたが、適切であった。なぜなら、今回の試験は打ち切りデ ータが多かったが、その影響を受けない c また、今回の試験では一括部定をし、また、毎週の検査が欠 かさず行われたので途中の欠担j l 値がなかったことも幸いした。 Aについては一定期間当たりの下降率、 Bについては一定期間当たりの上昇量も言t 算することができた C また、 A とBの関係について理解する うえでもその材料となった。 以上 文献 1 ) 高橋行雄、大橋靖雄、芳賀敏郎 (1990): iSASによる実験データの解析」京大出版会. ‑316一

320.

日本 SASユーザー会 (SUGI‑J) 利用者自身によるデータ活用のための SAS教育の展開 章 O高 橋 和 子 八木 株式会社竹中工務庖 情報センター I n t r o d u c t i o na n dT r a i n i n go f SAS S y s t e m F o rE n dU s e r s Y a g iA k i r a T a k a h a s h iK a z u k o I n f o r m a t i o nM a n a g e m e n tCente~ T a k e n a k aC o r p o r a t i o n 1 ‑ 1 3, 4 ‑ c h o m e,H o n m a c h i, C h u o h ‑k u, O s a k a5 41 .] a p a n 要旨 業務に適した情報機器,ソフトの選定、利用方法などデータ活用環境の整備は情報化推 進部門の重要な役割である。 当社は、 197 6年に建設業界で最初に TQCを導入し、 1979年にはデミング賞実 施賞を受賞した。受賞後も審査員の意見を参考に TQC活動の一層のレベルアップのた めに統計手法の活用が求められた。 1980年にメインフレームのデータ活用ツールと して SASを導入し、以来 13年間に新入社員を中心に 1600人以上に対して SAS の基礎教育を実施している。しかしながら、一般の利用者にとって SASは難解であり、 暫く使用しない場合には利用技術が後退することや、 SASの利用環境の変化に十分対 応できないなどの問題点がある。 J 下年からは部門 こういった問題を解消すべく、 2年前よりデータの利用環境を整備し、 I 別に実践的な教育、普及活動を展開している。今回は、この教育の諸活動について紹介 したい。 キーワ ド: 利用者に対する SAS教育 (EUC) SAS/BASE 1.はじめに ・デ タ活用の現状と環境整備 当社においては、従来よりメインフームのデータの加工、検索、抽出さらには部門の アプリケーションの開発等を情報部門ばかりではなく、本支庖の利用部門が日常の定 期業務や計画策定のためのデータ分析を独自に実施している。このところの機器、ソ フトの低価格化や操作の容易性の良さなどから、利用者(エンド、ユーザー)自身から もメインフレームのデータを利用して業務にあった処理、分析のニーズが強い。 情報部門では利用者の情報化ニーズに対応し、簡単にデータ活用が図れるよう、教育 の充実と利用環境の整備に努めている。 ‑メインフレームにおける基幹データベ スの構築 87年からメインフレ ムにおける経理・工務等基幹データベースの再構築を行い、 データベースの統合と環境整備を実施してきた。データベースソフトは、 ADABA Sを採用しこれにアクセスするメインフレームの利用者言語の lっとして SASを用 いている。なお、 SASと DBのインターフェイスをとるソフトとして SAS/ATS を導入している。 ・デ タ公開:デ タ利用のルール化、公開ファイルの設定 利用者に対してメインフレームのデータ利用のために、 SAS/ACCESSによる フ ァ イ ル 定 義 [ :ビュー定義]を作成することに因って、利用者が簡単にデータにア クセスできるように図ると共に、セキュリティの理由から利用基準をルール化した。 また、利用者がファイルの一覧や、定義情報、格納項目の意味などを参照するシステ ムを準備している [SUGI‑] '93:データ活用のためのデータベース環境整 備と SASシステム]。 1 ヴ n ペU 1よ

321.

2 . SA S教育の経過 (1)情報教育の経過 SASの導入以来、事務系新社員は必ず受講することになっている。 9 2 年 8 2 年 9 3年 例 年 一尊世 一JE‑一 ‑一 兜﹀ハ 粧 一 日 一 昨 昨 日 斗 一 昨 口 図1.情報教育の経過 (2)ホストデータの主な利用目的、利用形態 利用者がデータを新たに独自に投入することは少なく、通常はすでに定期業務のな かで入力し、生成した外部ファイルを取扱うことが大半である。 ① ホストデータの主な利用方法 ‑部門のニーズにあった資料作成 ‑部門のニーズにあった集計、層別分析 ・部門アプリケーションデータの入力作業削減のためのデータ連動 ② SASの利用者 ‑主な SAS利用者 ・]70 ' } ' J‑hi 開発者 ③ ④ ⑤ 部門の実質的な O A担当者、技能のある担当者 部門のキーマン、情報センター研修生 OB ・情報の利用者 管理職を含めた部門の業務担当者全員 SASの主な使われ方 ‑大量データの検索、抽出、加工、データの蓄積、 .検索結果の出力 ・データの抽出、ダウンロード用ファイルの作成 一般利用者の使用する機能 PRINT.SUMMARY.TABULATEなどの BASE.SAS SAS/AF SAS/FSP SAS/GRAPH 利用者からみたデータ活用ツールの要件 1)大量データの層別、集計、分類を行うユーザ(主に経理、人事、営業、工務〉 にとっては、機能が豊富でホストデータを直接処理できるツールが有効である。 2)大量のデータから抽出し、 PCで資料を作成するユーザにとっては、 PC用フ ァイルの作成、変換、ダウンロードが容易であるツールがよい。 3)部門のアプリケーションを開発するユーザのとってはデータベース機能、入力 ・更新プログラム、アプリケーションメニューの作成が容易で、ホストデータ との連動が簡単に行えるツールがよい。 4)ビュー定義がある方が便利であることが多いが、定義体がないファイルの利用 も多く、定義されていないファイルも利用可能であるツールがよい。 ‑318‑

322.

3 . SA Sを普及する上での難しさ (1)利用上の問題点 これまで S A Sの講習会を継続して実施してきたが、情報処理が専門でない利用者 にとって S A Sの利用技術を維持、向上することは難しい。これはまず企業にあっ て部門担当者の配転、異動は避けられないことである。部門担当者が S A Sで高度 で複雑な分析に利用していたとしても、異動により暫くの間使用しない場合、 S A Sを忘れてしまったり、コンビュータの利用環境の変化についていけなくなるから である。 このような状況から業務を円滑に進めてゆくためには組織的にみた人材の確保、ア プローチが必要であり、部門としてのスキルを低下させないための対応策を要する との考えに至った。部門毎に、利用技術i を継承してゆくことが課題である。 対応すべきポイントは、次のとおりと考えた。 ① 言語の習得、利用がむずかしい。 ① ② 部門としてスキルの維持がむず かしし、。 ②・部門内の人材の確保 .部門の重点的教育 教育の方法を改善 ③ 教育、支援体制が必要である。 ③・インストラクターの養成 ‑支援担当者の育成 (2) S A Sの修得のむずかしさについて 一般利用者とっての S A Sの修得のむずかしさは、次の点による。 ①言語としての S A Sの特性 ‑自習しにくい 0 ・ロジックを必要とする .処理が多機能である。 0 ・マニュアルが高く、手元にない ・文法を理解する必要がある。 ②メインフレームによる特性 ・メインフレームに関する知識を要する。 0 ‑大型コンビュータ利用のための社内ルールがある。 ③デー夕、ファイル ・利用者は蓄積されている項目を理解していない。 ‑蓄積されている項目の意味が専門的であり、意味が分かりにくい 0 .業務システムの組立てが複雑である。 ④社内講習会に関して 。講師不足で講習会が聞かれない 0 .教材が乏しい 0 ・講習会後のフォローがなく、支援体制がまだ十分でない。 ⑤受講者 ‑演習に費用がかかる。 ‑適当な演習問題がなく、刺用環境が整わない .データの中身がわかりにく L 。 、 0 d 可﹄ム 凶 ハ ﹃υ

323.

4 . SA S教育の再検討と実施事項 S A S教育を再検討した結果、次の点に重点をおいて対応している。 検討事項 教育の方法を改善 ②・部門内の人材の確保 ①・標準カリキュラムの設定 ム防w v ① 具体的な対応策 ・テキストの改訂 ②・人材マップによる部門のスキル管理 ‑職能別 S A S例題集の作成 ‑部門の重点的教育 ‑職能別 S A S講習会の実施 ③・インストラクターの養成 ‑支援担当者の育成 ③・インストラクター養成講座の開催 ・部門のコアマンの養成、支庖支援体制の確立 (1)当社の S A S教育 ① 育成のねらいと方法、実施 S A S教育の最終目標は、情報を必要とする人が、必要な情報を自由に且つ迅速 に抽出・加工でき業務にいかせるよう育成することではある。新入社員に基礎的 知識を植え付ける一方、特に、 『職能別 S A S講座』を実施することにより利用 部門のデータ活用の中心となる担当者を各職能(部門〉毎に複数人数育成し、部 門しての利用技術の維持をはかる。また、インストラクタ一教育を実施して、支 援スタッフを育成することが有効と考える。 {データ活用基本 O A講座} {応用講座} 図2 . 講習会受講のながれ (2)標準カリキュラムの設定 一般の利用者が S A Sを使用する場合に必要とするコマンドや文法などを、業務に 利用する頻度や、ロヅックの難易度に基づき説明項目を選択し分類した。またメイ ンフレームに関係する周辺知識、処理内容を検討して、カリキュラムを設定した。 ( 表 2 : ~学習の目標.1 ) 320

324.

(3)テキストの改訂 データ活用教育として、前述のカリキュラムに従いテキストを改訂し、講習会にお いては全庖共通で‑使用することにした。テキストは、講習会の説明事項だけでなく 後日業務においてプログラムを作成する時に参考書としても使用できるものにした。 講習会で使用する教材は主につぎのとおりである。また、当社でこれまで作成した 簡単な練習問題集を配布している。練習問題や講習会の例題は講習が単なる教養に 終わることのないよう、日常よく刺用する業務用のファイルを使用すると一層効果 的である。 講習会で利用するテキスト 大型コンビュータの端末操作 T S O手引き 16 10 75 35 15 9 15 S A Sテキスト(初級) S A Sテキスト(中級) 統 計 解 析 シ ス テ ム (SAS)説明書 コンビュータ刺用手引 ページ ページ ページ ページ ページ ページ 4種 社外ファイルをつかった統計解析 (4)公開ファイルの不J 1用ルール化 1用についてのルー デ タの活用のために、公開ファイルと公開レベルを設定し、不J ルを定め、不iJ用手続きを明確にした。 (5)人材マップによる部門のスキル管理 ① 人材マップ 人材マップを作成することにより、部門毎に利用できる人材の穴ができないよう 部門のスキルの保有者とその利用技術を把握する。これにより重点的に個々の部 門に対する教育、支援を実施する。 表1. 本? 白人 2 i 酬 《責任甥烹〉 関 4 4 h l 同lr ‑I 轍 柵 手Lt ~ 同 321‑ 噛~IDI-寸 4 噛 柵棚 一 柵 蜘 鵬 ト 一 捕 │ i 明珊一宮 1 1 臨 I3 3332 4 1.f~ 欄骨 棚棚鵬{ 四j A 川1 棚 人事 (f:~LI 匝制竹下|ずみ L ‑rBA1 川 ハ A1 則傍・ 8 予押 人材マップ:例 開 J 1 ~I鵬楠百

325.
[beta]
②

受講者の管理
職能別講習会の受講者管理データベースを作り、また、社内の利用者やスキルの
保有者を一元管理して、情報の提供や人材マップを作成する。
基礎教育の受講者ついては、人事部門の管理する教育訓練受講者データベースに
登録する。

③

習得レベルの設定
当社では人材育成、人材活用を目指した人材情報把握制度があり、社員の業務遂行
上の知識、技術水準を適切に把握するため、知識技術把握基準を設定している。
SASについては、汎用コンビュータ利用者言語 (SAS等)の活用能力として把
握すべき要素として位置づけられている。全庖的に利用者や利用技術の保有者を把
握するため、つぎのような基準を設定し、本社主管管理部門、支庄、利用部門と共
に育成につなげている。

知識・技術把握基準表
う}~

5

コード・杷!I;l従来

L
O
l

阪祭コード LO

指導を受けて、検余、力1一、庁ラムが組め、プログラム
長に対応できる。

処理効率、信頼性、保守の容易性、生.
産性等を考慮したプログラムを組め、
目的に応じて複数の言語を使い分けで
きる.

L
0
2
既存の問 1
1
1なプログラ:;.イルやデータベースを用い
汎1
1
1コンビュータ利lIh'
i プログラムの一郎を修ド加工、集計及びデータの更
言 i~ (
S
A
S等)の活 J
I
!
って業筋に 1
6
mできる e?きる。

被雑なプログラムが組め、回帰分析等
の統計解析処理ができる。

i
旨導を受けて、検索、 7.:Jグラムが組め、プログラム

処理効率、信頼性、保守の容易性、生
産性等を考慮したプログラムが組め、

汎I!Iコンビュータ糸言:!~ ログラム均{組める.
(
N
A
T
U
R
AL
.PL/I
.FORHAN,

C
O
B
O
L
等)の r
,
l
;
J
I
l

ノ

7 IL
0
3
ト
オフコン f
{
ミ
言 m(Qum
,

ログラム iJ(~日める.

問談に対応できる.

(6)職能別例題集の作成
大型コンビュータの特別な教育を受けでなくても、メインフレームで SASが簡単
に使えるように、職能別にプログラム例題集を作成した。作成にあたっては、全庖
の業務を統括する本社の職能(部門)管理部門の協力が有効であった。
①例題集作成の背景
1)ホストの公開データベ

ス、公開ファイルが順次作成され、また利用するル

ルが整うなどデータ活用の利用環境が整備しつつある。
2) SASのパ ジョンアップが終了し、公開ファイルのデータを簡単に取出せる
環境が整いつつある。

3)責任部署、部門推進担当者の役割が確認され、各部門は自ら情報を簡単に、素
早く、無駄無く加工し取り出す必要がある。
4)ユーザ 及び教育・支援の負担を軽くするため、利用者言語は汎用性のある
SASの使用を標準とすることになり、支援を目的にユ ザ に対して一層便
宜を図る必要がある。
5)ユ ザーの学習用資料としては業務に応用可能な具体的な資料が準備、提供さ
れていなかった。

‑
3
2
2

326.

②作成のねらい 1)業務に即した S A Sの例題を収録することにより、初心者でも簡単に業務に対 応できるようにする。 2)刺用者が処理する頻度の高い例題を選択して掲載することにより、類似した S A Sのプログラムを選択、引用することにより、プログラム作成の効率をあ げる。 3) SASの職能別講座の教材として刺用する。 事例集の構成 ③ S A S事例集[財務・経理] 部門(職能〉毎のサンプル集 S A S事例集[人 事] S A S事例集[営 業] 務] S A S事例集[工 標準(共通)のサンプル集 ④ S A S事例集[標準プログラム] 。 例題集の特徴 出力見本をつけて実行結果をわかりやすくした。 2 ) 各例題に文法説明を細かく付記した。 3 ) 支店の業務ですぐっかえる例題をあつめた。 4 ) 処理の目的、手順、処理のタイミング、使用ファイルを付記した。 5 ) 例題はメインフレームのディスクに集中して格納し、誰でも利用できるように した。 6 ) 処理をパターン化して手順を簡単にした。 7 ) プログラムの中に注釈を詳しくつけた。 8 ) 初心者でもわかるように、簡単な機能をつかった例題をつくった o g ) JCLを例題につけて、利用者の手聞を省いた。 (6)職能別講習会の実施 全店の各職能部門別の講習会実施にあたっては、本社の職能管理部門と協議し、全 面的な協力を得て開催した。職能別講習会に参加できる前提は、端末操作について の知識と初級の基礎知識を保有するものとしているが、受講者のスキルにバラツキ があり、受講者のレベルにあわせた内容に逐次内容をかえた。また、講習会での説 明内容について各職能(部門)や支庖により説明する内容が異なり、部署ごとに業 務の仕方に違いがあるなどして、単にソフトの説明に止どまらず、業務の知識、定 期処理の内容などの説明が必要であり、実務に則した講習の重要性と難しさがある。 継続した講習会の開催とフォローが必要である。 ① 社内講習会の実施概要 講習会の内容は受講者のレベルにより、付加する事項もある。特に、新社員の 段階で基本を習得すべきと考えている。 ‑ 3 2 3 ‑

327.

職能別講座実施の概要 職能別講座 講習会 経理、人事、営業、工務の職能別の ヲ 自 目 講習 内容 データ活用 O A基 本 講 座 .SASの基本機能の修得 ホストデータの効果的活用方法 の習得 .SASプログフミング ‑利用可能者の養成 .SASの利用環境 ‑ホスト利用の手続き ‑公開ファイルの活用方法 ‑公開ファイルの活用方法 .SASフ。ログフミング ‑職能別の業務知識 育成レベル 日数 所要 レベル 4 O. 5~ 1日 テキスト 者 本社主管管理部門、情報センター ‑コンビュータ利用手引 王 ③ 催 レベル 3 ‑中級 L べJ[;4 O. 5~ 2日 O. 5~ 1日 .SASテキスト初級 .SASテキスト中級 .SAS例題集(標準) ‑コンビュータ利用手引 支庖情報部門 ‑初級 ‑中級 .SASテキスト初級 .SASテキスト中級 .SAS例題集(職能別・標準) 教材・ ‑初級 職能別 SAS講習会の実施 受講者の講習会に対する反応は概ね良好であって、今後の業務への適応が重要であ る 。 実施結果 講習会 出席者 の特徴 職能別講座 ‑業務改善、業務の O A化に極めて 意欲的である。 部門はスキルが高く、前向き である。 . x x ‑支庖により、取組の姿勢に差異が みられた。 ‑アンケートでは良好の反応 ( 8日) 出席者の 反応・声 実施後の 反応 開催の環境 不満は時間が短い。 機器が少ない。 ‑部門毎に支援依頼がある。 ‑総本庖の職能主管管理部門が例 題集の作成、講習開催まで積極 的に活動した。 ‑ 3 2 4一 データ活用 O A基本講座 ‑極めて意欲的である。 活用のニーズのある者が多 こ 。 かっ f ‑事前講習(端末操作)がよ くできていた。 ‑ホストデータ利用の第一歩 になっ f こ 。 ‑新入社員の時にしっかスキ ルをつけておくべきであっ f こ 。 .SASを実行するにあたっ ての固い合わせがある ‑支庖情報部門が事前学習等 開催まで熱心であった。

328.

講習会日程の例(営業〉 受講者の反応 美谷課長 日: 3 0‑ 1 0・0 0 77イルの公聞について 情報センター データ活用 G 1 0・0 0‑ 1 0・1 5 休憩 1 0 : 1 5‑ 1: 3 0 利用手続き、 1 1 : 1 5‑ 1 2 : 0 0 r sAS例題集」の説明 1 2 : 0 0‑ 1 2・4 5 昼休み 1 2・4 5‑ 1 3・0 0 質問 1 3 : 0日‑1 4 : 3 0 演習 JCL 情報センター教育 G 森 総本庖営業職能藤井 理解度について Ulo 総本庖営業担当 な 解き 趣旨説明 理で 9 : 0 0‑ 9 : 3 0 5 4 5で きた 総本庖営業職能藤井・岸 情報センター 教育 G 開発 G 〔休憩) 1 5 : 3 0‑ 1 6 : 3 0 演習(回答〕の説明 総本底営業職能藤井 1 6 : 3 0‑ 1 7 : 0 0 ダウンロードデモ 総本庖営業職能岸 1 7 : 0 0‑ 1 7 : 1 0 留意事項説明 総本庖営業職能岸 1 7 : 1 0‑ 1 7 : 1 5 総括 情報センター 八木課長 教材の内容について 6 1 . . . . 6 4 2 O 不満 o 1 L一 一 ー 満足 6 . データ活用教育 (SAS) の今後の課題 昨年から部門別に実践的な教育を実施しているが、本年度も未実施の部署に対して講習 をおこなうと共に、利用者へのフォローを継続する。 当社では支庖を中心においた情報教育を進めており、支庖でのインストラクターの養成 ・支援体制の確立が重要である。また、今後事務部門に留まらず技術系の分野への教育 支援を実施する。技術系の分野では分散化の方向に進んでいるが、メインフレームのシ ステムのデータを一部刺用するケースもあり、利用環境からみて SASによる対応を検 討してゆく。また、統計解析についても活用できるように進める予定である。 にd nノ qu

329.

学習の目標 表2 . SAS (統計解析システム)基本的な機能と利用環境を理解し、データの処理活用が自由にできること を目標とします。 さらに多くのニーズに対応するため、次の研修コースを用意していますので活用してください。 . 07で、行っています。 なお、本書の説明は、パージョン 6 人 初 級 編 内 処理、プログラム コマンド・ステ トメン卜 合 zh SASで何ができるか ファイル読込、カ ド読込 FT H E N,E L S Eなど 四則演算、 I o r m a t カンマ編集, f 機能概要 READ文 データスアップ記述文 PROC PRINT PROC SORT PROC MEANS PROC SUMMARY PROC FREQ PROC TABULATE 1 ) 頂序の並変え 平均値等の計算、 7 1 イル作成 合計値、平均値等の計算、 7 1 イル作成 1 イル作成 度数の計算、 7 合計値、平均値等のクロス集計 漢字処理 (JCL) 選 デ 択 ータスアップ記述文 条件指定 データの出力、プリント 中 級 編 日付の処理 レコーディング 選択条件指定による処理 配列 ク辛フフ処理 クoフフ処理(分布) データのダウンロ (JCL) 会話型 ド(ファイル作成) 会話型 SAS ヒ、ュ一定義 会話型アプリケーション開発 特 J J I J 編 その他 備考 会話型データ管理 会話型アプリケーション開発 SAS/クーフフィク処理 SAS/マクロ百語 統計解析 MERGE WHERE PUT SAS日付 FORMAT SELECT/WHEN ARRAY PROC CHART PROC PLOT PUT (JCL) 会話型 SAS SAS/ACCESS SAS/AF SAS/FSP SAS/SCL 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ? な ? な 。 。 SAS:f‑7 ぐ れ SASfセ タ7ト JCL TSS C‑LIST、カタ・プロ デタ管理、運用管理 ドキュメン卜 。は新社員は必須 大はマニュアル、事例集を参照 以 上 ハ hu nノu nJ

330.

日本 SASユーザー会 (SUGI‑J) JMPを用いた視覚的な多変量解析紹介 OJll本均 野口病院事務長 V i s u a li n t r o d u c t i o no fm u t i v a r i a t ea n a l y s i su s i n gJMPs o f t w a r e 日i t o s h iKawamoto NoguchiThyroidC l i n i cand日o s p i t a lFoundation C h i e fA d m i n i s t r a t i v eO f f i c e r Beppu,O i t a,J a p a n874 要旨 副甲状腺ホルモンの血中濃度と性・年齢の関係を JMP で調べた。ホル モン値は、 t ‑ 検定では男女間に差はなく、単回帰分析でも年齢との関係は 見い出せなかったが、多変量解析では性と年齢の影響を受けることが示さ れた。 キーワード: JMPソフトウエア 重回帰分析 1.生データの歪んだ分布とその対数変換 正常値の設定を目的とし、健常人における血中副甲状腺ホルモン ( i n t a c tPTH)濃 度を調べた。サンプル数は 1 5 0で 、 i n t a c tPT 日の生データは下図の分布を示した。 100 90 80 70 60 5 0 40 30 20 1 0 7 Mean S t dDev S t dE r rMean u p p e r95%Mean l o w e r95%Mean N 41.3366 15.5821 1.2723 43.8506 38.8225 150.0000 l a X l m u昨1 昨 q u a r t i l e m e d i a n q u a r t i l e l l n i m U円1 円 ‑ 3 2 7 100.0% 97.5% 90.0% 75.0% 50.0% 25.0% 10.0% 2.5% 0.0% 94.931 84. 423 64.389 45.959 37. 782 473 3 1. 24.918 17.193 14.590

331.

Testf o rN o r m a l i t yS h a p i r o・W i l kW Test W =0.909255 Prob(0.909255>W)= 0.0000 右側に示されたダイヤモンドが示す平均値とその標準誤差が、長方形の中央が示す中央 値より上にある。つまり、全体の分布は高い値の方に長く尾を引いているとがわかる。 Shapiro‑W i 1 kT e s tの結果、正規分布から有意に外れていた。そこで、測定値を対数変 換した。 2 . 0 1 . 9 1 . 8 1 . 7 1 . 6 1 . 5 1. 4 1 . 3 1 . 2 1 . 1 1 0 9 1 0PTH Mean S t dDev StdE r rMean upper95%Mean l o w e r95%Mean N 1 .5881 0.1565 0.0128 1.6133 1.5628 150.0000 l a X J m U円1 100.0% 1.9774 97.5% 1.9264 90.0% 1.8088 q u a r t i l e 75.0% 1.6624 median 50.0% 1.5773 q u a r t i l e 25.0% 1 .4 ~79 10.0% 1.3965 2.5% 1.2347 minimum 0.0% 1.1641 Testf o rN o r m a l i t yS h a p i r o ‑ W i l kW Test W =0.977612 Prob(0.9776>W) = 0.2776 円 対数変換後の分布は上下にほぼ対称で、正規性検定の結果は P=28% (正規分布からの サンプルでもこの程度のずれは 4回に l回以上見られる)であり正規分布と見なしでも 大きな問題はないことがわかる。正常人の 9 5 %が入る範囲を推定するために、正規分 布を仮定して、 2.5%点と 97.5%点を推定すると、1.5881‑1 .96*0.1565=1 .281 1.96*0.1565=1.895 となり、データのパーセンタイル点の値に近い。 1.5881+ 2 .性と年齢の影響を各々単独に解析 ホルモンを始め多くの検査項目で、性別・年齢別に正常値が異なることがあるの で、性と年齢の影響を探った。先ず、男女間で i n t a c tPTHの値に差があるかを見た。 分散分析の中で 2組のみの比較なのでト検定と呼ばれる。 328‑

332.

2 . 0 1 . 9 1 . 8 . 1. 7 工 ﹄ ・ 仏OFF‑ ‑r 1 . 6 1 . 5 1. 4 ート 1 .3 1 . 2 1 1 • F e m a l e sex M a l e E a c hP a i r S t u d e n t ' st 0 . 0 5 Meanswithc o n f i d .i n t e r v a l Q 75%, 50%, 25%, 10% u a n t i l e s : 90%, L e v e l number Mean Std E r r o r Comparisono fMeans t ‑ T e s t 128 1 .59613 0.01377 Female .52532545 DF= 1 48 t ‑ v a l u e= 1 Male 22 1.54128 0.03322 P r o b > l t l= 0 .1293 女性の i ntPTHがやや高い傾向が見られるが、 P値が 1 2 . 9 %なので男女聞に差が無くても 8回に 1回以上このような差が見られることを意味する。男女聞に差があると結論しに くい 次に、 i n t a c tPTHの値が年齢によって異なるかを回帰分析にて調べた。式で表わ すと intPTH=Y 切片+年齢+ぱらつき。 .4 ‑‑ ‑‑ e‑‑ ・ ‑ P e‑ ‑E 一 一 ‑ . ‑ ‑ ‑ 一 ‑ ‑ ‑ ‑ 一 一 ι ‑‑ ‑‑ ‑ ‑‑ ‑ ‑ ・ . ; 目 u‑‑ ・e; ・・ ‑dl ・ 1 . 4 1r ﹁ 1 .5 ・ 工 ﹄ ・ 仏OFF‑ 1 . 6 ・ ; 1 .7 ・; ‑ i: 1 . 8 e ‑ ‑‑‑‑ ・‑ . ‑ ‑ H ー 一 ・ ‑ ‑ ‑ . r . ‑ ‑ ‑ ‑ ‑ ‑ ‑ ・ ・ ・ 1 . ‑ 1 . 9 ‑ ‑ ‑ la ‑ ‑ z a・‑ ︐ ・ ・ ‑‑‑‑‑[・・ :・・・;・・・ ・ : ・ ・ ‑‑‑‑・ ‑1 ・2 ‑‑‑‑ ー ‑ ・ ‑ ・ ︐ ・ E・ E‑ ‑ :.. ‑ ‑ t ・ : ‑ Ef ‑: ‑ ‑ ‑ ‑ f ‑ ‑‑ ‑‑ ‑‑ ‑ e ‑ 2 . 0 1 . 3 1 . 2 1 .1 2 0 3 0 Rsquare= 0 .009064 Term E s t i m a t e 1.5456572 I n t e r c e p t a(Age) 0.0013143 4 0 a g e 5 0 6 0 O b s e r v a t i o n s= 150 Std E r r o r tR a t i o 0.03863 0.00113 ‑ 3 2 9 ‑ 4 0 . 0 1 1 . 1 6 Prob>I t l 0.0000 0.2465

333.

きちんとした数式は log10( intPTH)= I n t e r c e p t+aAge+Error ここで aは回帰直線 の傾きで、その推定値は 0.0013143、つまり年齢が高いほと、 intPTHが高い傾向が見ら れるが、その P値は 25%なので年齢による影響が無くても、 4回に 1回ぐらいはこのよ うな傾向が見られる。 以上のことから、健常人の intPTH 値と性別や年齢との関係は検出できない、 と結 論できるだろうか。 3 .サンプル集団での男女問の年齢の違い ここで、年齢と intPTHのプロットを男女別にして見た。 2 . 0 B E 固 U 固巴 園 固固固 ‑ ‑ E • 5 0 6 0 固園園園 ‑1 悶 a 固目 目 固盟国晶 ‑ M 司 ・a固 a 園園川包置却 固固固回国 ‑ M a t 1 固園固 白 回目固固 固 園圃 1 . 3 ‑ 箇 1. 4‑ 1 . 2 ‑ ロ掴目固固 固固包固固 園田園園固巴固四回園田園 固固固固固固固 zト仏OFO‑ 1 . 5 ‑ 固 固pu Ef 固し十持a Eat 園 園田園 1. 7‑ 固目・ 1 . 8 ‑ 1 . 6 ‑ 固固固圃︐ 固 EE 1 . 9 ‑ 箇 固 A﹃ 叩Z 2u 2 0 3 0 lnUE 1 . 1 T T ちょっと見えにくいかも知れないが、 Xの男性のほうが高年齢に偏っている。 男女別の 年齢を見ると 6 0 5 0 曲︒咽 40 3 0 2 0 Female sex Level Female Male number 128 22 a c hP a i Male E : ‑ ̲ . . . ̲ . S t u d e n t ' st Mean 30.8672 40.5000 ‑ 3 3 0一 0 . 0 5 Std Error 0.9586 2.3123

334.

a g ed i s t r i b u t i o n 什l a X l m u什1 100.0% 90.0% q u a r t i l e 75.0% m e d i a n 50.0% q u a r t i l e 25.0% 10.0% 円l l n l m u円1 0.0% F e m a l e 56.000 49.000 36.000 26.000 23.000 21.000 18.000 M a l e 62.000 .100 61 48.250 38.000 750 29. 27.300 26.000 平均年齢は女性31歳に対して男性41歳で、中央値は女性26歳に対して男性 38歳であっ た 。 n t a c tPTHは、女性が男性よりやや高く、高年齢ほどやや高 各々単独の解析では i いかもしれないと示された。この直前の解析では男性が高年齢に偏っていたことがわか った。 高年齢である男性の i n t a c tPTH値はやや高いかも知れないので、年齢を無視した ntPTHの関係では、高年 単独の男女間の比較はおかしいことになる。同様に、年齢と i 齢の部分で i n t a c tPTHの低いかもしれない男性が多く含まれているのに性別を無視し て年齢だけを説明変数とした回帰分析はおかしいことになる。 4 .性と年齢の影響を同時に含む重回帰分析 ntPTH=y 切片 そこで、性別と年齢の影響を同時に解析して見た。式の形では、 i +男女差+年齢の影響+ぱらつきで表わされる。これは、重回帰分析という多変量解 析の入り口付近にあるポピュラーな手法である。 o g 1 0 ( i n t P T H )=I n t e r c e p t+a 1Sex+a2Age+E r r o r 数式をきちんと書くと、 l ここで、 Sexには男性 = 1女性= 2と性別を数値化した値が入る。 a 1は性に関する回帰係 数で統計的に推定される。 a 1>0と推定されれば、同じ年齢では女性の方が高値になる 2は年齢に関する回帰係数で、 a2>0と推定されれば、高年齢ほど ことを示している。 a intPTHが高値であることを示す。結果は Summaryo fF i t 0.034857 R s q u a r e R o o tMeanS q u a r eE r r o r 0.154797 150 O b s e r v a t i o n s P a r a m e t e rE s t i m a t e s Term E s t i m a t e S t dE r r o r tR a t i o Prob>I t l I n t e r c e p t 1.3853715 0.08946 15. 49 0.0000 a 1( S e x ) 0.0742696 0.03747 1 . 9 8 0.0493 a 2 ( a g e ) 0.0020157 0.00117 1. 72 0.0879 同じ年齢なら女性は男性より 0.074高いと推定された。 P値は 0.049なので、男女間で 差が無ければこのような結果は 20回に 1回以下でしか見られない。同じ性なら 1歳に つき 0.002だけ高くなるが P値が 0.088なのでもし年齢の影響が無ければこのような 1回に 1回以下でしか見られない。 結果は 1 重回帰分析の一般ルールとしては、説明変数は少ないほどよい。意味のない変数 を含めるとモデルが不安定になり、解釈が困難になる場合があるので注意が必要である。 年齢の影響はP値だけで見るとボーダーライン(おちこぼれすれすれ)である。しかし、

335.

年齢を同時に考慮することによって、性による差が鮮明に示されたことから、年齢も意 味のある変数として式の中に残すべきである。 性と年齢を同時に組み込んだモデルによる推定値は下図のようである。中ほどの 真直ぐに並んだ点線と上下の弓状の点線は、ある年齢での平均値とその 9 5 %信頼区間 を示している。 2 . 0 1 . 9 E i g 1 . 8寸 ー 固 . D 寸 園 固 回 周 調M ‑E 目 ・ . . 亙'1.5 寸固:~ ~ J 4 固 E ‑E ・ I . Q 4.E‑ ‑a J ‑ r ‑ J a t t E . L . A・目 ・白 : : : : ・冒 . : . q 0 •.•••• • • •• • ••• ••• ・司 g . 」 日目 a. 固図 工 I • B̲̲̲ ̲ . . ・ ・ ・ ・ ・2 ← 1 . 6寸.40・ M・ ・・ ・ ・ q‑aa 1.7寸固圃園 ‑ 固 ・ 固 固 " ‑ ‑ ‑ a‑ ‑ a 固・ ・ ‑‑ ・ E ・ ロ・・ 回目・ E 園周 1.4寸固巴 園 箇 周 g園 園 園 1.3‑ 1.2i 固 7 寸 20 30 40 AGE 50 60 F o rf e m a l e 2 . 0 1.9‑ 1.8‑ 1.7‑ 工 6‑ b :1. 。 ~1.5- 1.4‑ 1 . 3‑ • •. :II.x.1f . . 語 ..•.・'・・・・. . . . ' . . • ..Jk 調 • • • 30 40 AGE • ・ •• J 汗. • ..訓 1 . 2‑ 20 F o rm a l e 50 60 5 .重回帰モデルの仮定の確認 以上の解析で欲しいものはほぼ得られておりここで結論を出したいところだが、 その前にいくつか確認作業をしなければならない。 n t e r a c t i o nの有無の確認である。ここでの例では、年齢の影響の 先ず、交互作用 i 強さ(回帰直線の傾き)が男女間で同じと見てよいか、である。上の図のデータからは

336.

傾きはほぼ同じように見える。統計的には、交互作用を含んだ、モデ、ルを作ってみて推定 が著しく良くなるかを検定するなどの方法がある。交互作用を含んだモデルの式は、 log10(intPTH)=I n t e r c e p t+a1S e x+a2Ag e+a3SexAge+Error となり、この結 果は $ummaryo fF i t R s q u a r e 0.034975 R o o tMean$ q u a r eE r r o r 0.155317 O b s e r v a t i o n s 150 P a r a m e t e rE s t i m a t e s Term E s t i m a t e $ t dE r r o r tR a t i oP r o b > l t l I n t e r c e p t 1.3551617 0.24298 5.58 0.0000 a1( $ e x ) 0.0904822 0.12688 0. 71 0.4769 a 2 ( A g e ) 0.0027787 0.00582 0.48 0.6339 a 3 ( $ e x A g e ) ・0.000417 0.00312 0.13 0.8938 となり、 R‑squareはほとんど変化せず交 E作用の回帰係数の P値は 0.89であった。交 互作用は無意味つまり男女共通の傾きを採用してよいことを示している。 次の確認作業は層別解析による結果の確認である。層別解析とはデータを小さな グループに分け、そのグループごとに解析するという意味です。先ず、データを年齢の グループに分け、その中では年齢の影響を無視できると考え、男女間の差をみます。 I 2 . 0 I , . 8 1. 7 ~, . 6 a . . ~1.5 ~1 .4 , . 2 F e m a l e 4 s e x 2 5・3 M a l e E a c hP a i r S t u d e n t ' st 0 . 0 5 F o r25三 五a ge<35 t ‑ T e s t t ‑ v a l u e= 0.97254001 DF= 49 P r o b > l t l= 0.3356 MeanE s t i m a t e s L e v e l number F e m a l e 42 M a l e 9 ‑ 3 3 3一 Mean 1.59071 1.52665 $ t dE r r o r 0.02767 0.05978

337.

2 . 0 1 . 9 1 . 8 1. 7 ~1.6 a . ~1.5 0> ~1 .4 1 . 3 1 .2 1 .1 F e m a l e sex40‑49 M a l e E a c hP a i r S t u d e n t ' st 0 . 0 5 玉age<50 F o r4 0 ; : t ‑ T e s t t ‑ v a l u e= 1 .3917017 DF= 22 P r o b > l t l= 0.1779 MeanE s t i m a t e s L e v e l number Std E r r o r Mean Female 19 0.03512 1.65850 Male 5 0.06846 1 .55142 2つの年齢グループとも、女性の方がやや高い傾向が見られた。 次に、データを男女別に分け、性による影響をなくして、年齢の影響を見た。 1 . 9 1 . 8 1. 7 1. 6 ~ 1 . 5 戸 0 白 • s 1. 4 1 . 3 ぶ: 1 . 1 20 30 F o rfemale Summaryo fF i t Rsquare RootMeanSquareE r r o r O b s e r v a t i o n s Term I n t e r c e p t b 事 E s t i m a t e 1 .5361261 0.0019439 40 a g e 60 0.016286 0.161592 128 Std E r r o r 0.04393 0.00135 ‑334‑ 50 .tR a t i o 34.97 1 .44 P r o b > l t l 0.0000 0.1511

338.

2 . 0 1 . 9 1 . 8 1. 7 ~1 . 6 a . ~1 . 5 口 、 1. 4 1 . 3 1 . 2 1 . 1 2 0 3 0 F o rm a l e Summaryo fF i t R s q u a r e R o o tMeanS q u a r eE r r o r O b s e r v a t i o n s Term I n t e r c e p t ベ~ E s t i m a t e 4456439 1. 0.0023613 4 0 age 5 0 6 0 0.06714 0.107682 22 S t dE r r o r 0.08295 0.00197 tR a t i o 1 7. 43 1 . 2 0 Prob>I t l 0.0000 0.2443 男女間で回帰直棋の傾きは男性のほうがやや大きいものの標準誤差が大きいので、傾き が異なるとは言えない。男女とも年齢との関係は直線から大きくずれていない。女性の i n t a c tPTHのばらつき r o o tmeansquaree r r o r(モデルの誤差項の標準偏差)が男性よ り大きいが、極端な違いではない。以上より、重回帰分析の結果はほぼ妥当であると結 論できる。 わざわざややこしい重回帰分析をせず、始めから男女別の回帰分析だけで十分で あろうか。いいえ。男女別の解析では各々のサンプル数が少なくなっているため、 P値 は女性で 15%、男性で 24%と、回帰係数の信頼性がない。 重回帰分析の結果、同じ年齢なら女性の log10( intPTH)の平均値は男性より 0.074高い。実数値に戻すと女性の intPTHの平均値は男性の1.19倍である。向性な intPTH)の平均値は 10歳あたり 0 .02高くなる。実数に戻すと、 10歳毎に ら log1O( 1 .05倍高くなる。以上より、十分なデータ数をそろえた後、性別年齢別に正常値を設 定するのが望ましい。 6 .まとめ 1 )全体の分布型を見ると高いほうに尾を引いていたので対数変換をして正規分布に υ n ぺu ぺU n ︑ 戸 近づけた。

339.

. r 変換にはこのほか、 x,l/x,x**n,a r c s i n ( x )などいろいろある。また、データ が 0又は負の値を含むような場合、対数をとる前にゲタをはかせる l o g ( x + a )こ ともある。 2 )男女間差、年齢による違いをそれぞれ単独で見たが、女性が男性より高く、高年 齢ほど高い傾向が見られたが、明確には示されなかった。 3 )測定対象者の性別年齢分布を見ると男性が高年齢に偏っていた。この為、年齢を 無視した男女比較や性別を無視した年齢の回帰はおかしいことが示された。 研究デザインの段階で、性と年齢など大切な要因についてマッチングがとれてい ればこの問題は発生しにくい。臨床研究では、マッチングがとれない場合が多い。 4 )性別と年齢の影響を同時に解析する重回帰分析を行ったところ、同じ年齢なら女 性の平均値は男性より高いことが明確に示され、高年齢ほど平均値が高くなる影 響も無視できないことが示された。 性と年齢など大切な要因のマッチングができていても、多変量解析によって検出 力が良くなることが多い。 5 )性と年齢の交互作用を調べたところ、男女別に異なる回帰直線を推定する必要は なく、共通の傾きでよいことが示された。 6 )データを小さなグループに分けて見る層別解析によって、重回帰分析の結果に大 きな矛盾はないことが示された。ただし、ぱらつきが女性の方で大きく、年齢の 影響が男性でやや強いかもしれないことも示された。データ数を増やした後で、 性別年齢別の正常値を設定すべきであると考えられる。 多変量解析のメリッ卜は、いくつもの影響を同時に解析できることにあります。 ただし、解析の結果をきちんと確認する作業を怠ると、とんでもない結果を含んだまま レポー卜してしまうことがあるので十分注意すること。 重回帰分析のほかにもいろいろな多変量解析の手法があります。複数の要因を同 時に解析すると、 1つずつの解析では得られない重要な結果を得ることがあります。多 変量解析とグラフ表示を組み合わせることによって新たな知見が得られるかもしれませ ん 。 nd p o nd

340.

日本 5A5ユーザー会 (5U G卜 J ) S A S に よ る 主 主 干 三 業 泉 芳 三 Eヨタ帯タま左斤 岸本淳司 欄 SA S イ ン ス テ ィ チ ュ ー ト ジ ャ パ ン 統計解析研究室 N o n l i n e a rR e g r e s s i o nA n a l y s i su s i n gT h eS A SS y s t e m J u n j iK i s h i m o t o S A SI n s t i t u t eJ a p a nL t d . S t a t i s t i c sR e s e a r c hS e c t i o n I N U IB l d g .K a c h i d o k i1 ‑ 1 3 ‑ 1K a c h i d o k iC h u o ‑ k uT o k y o1 0 4 要旨 非 線 形 回 帰 分 析 を 実 行 す る た め の SA Sの 機 能 に つ い て 概 観 を 紹 介 す る 。 特 に 、 P R O CN L I N ( S A S / S T A T ) P R O CM O D E L( S A S / E T S ) P R O CN L P ( S A S / O R ) の 3つ の プ ロ シ ジ ャ に つ い て 機 能 を 比 較 し 、 得 失 を 検 討 す る 。 キーワード: L1 N .M O D EL .N L P 非線形回帰. N 1. は じ め に 非線形回帰分析はさまざまな科学分野で必要とされる。 SA Sの 中 で も 非 線 形 回 帰 分 析 に 対 応 す る プ ロ シ ジ ャ が 複 数 存 在 す る 。 一 般 的 な 非 線 形 回 帰 が 実 行 で き る の は 次 の 3つ で ある。 PROC NLIN (SAS/STAT) PROC MODEL (SAS/ETS) PROC NLP (SAS/OR) これらのプロシジャにはそれぞれ特長があるが、その豊富な機能群はあまり知られてい SA Sで 非 線 形 回 帰 を i t t l ea n dE r d m a n ( 1 9 9 4 )の 実行するための機能を紹介することにある。本稿の構成は、 L C o m p u t e rT e c h n o l o g yW r o k s h o o ps e s s i o nのテキストに全面的に依存している。 ない。本論の目的は、非線形回帰の理論を紹介することではなく、 ワt ハペU q o

341.

2. Puromycinの デ ー タ 非線形回帰分析の理論と応用について学ぶためには、 B ates a n d Watts(1988) の 教 科 書 がたいへん優れている。そこで同書 i こ掲載されている例題を使うことにしよう。酵素の薬 動 力 学 に お け る Michaelis‑Mentenの モ デ ル に よ れ ば 、 酵 素 反 応 の 初 期 速 度 ( Yelocity) は 基 質 濃 度 x CConcentration) と次のような関係がある。 f Cx, θ) θlX θ2+X 次 に 示 す Puromycinデ ー タ は 、 こ の モ デ ル が 適 切 で あ る と さ れ て い る 。 ︑ t 円 ' n凶 unta nudru n 川U TiqL Ti ‑‑‑ TiqL nhunJhnHU n u q L Tよ 宝 nt'n凶 UTi a H qunU n︐白 4lingu 内 nuU4licd data pmycin; input conc veloc @ @ ; cards; .0 2 7 6 ••• .11123 . 5 61 9 1 .06107 . 2 21 5 2 1 .1 02 0 0 2 2 0 1 8 0 1 6 0 • • 1 4 0 • 1 2 0 • 1 0 0 •• • • • • 6 0 4 0 丁 寸 丁 [‑ ‑ ‑ ‑ ‑ ‑ . ‑ [‑ ‑ ‑ ‑ ‑ , ‑ ‑ ‑ [ . 7 0 .1 O .2 0 . 4 O .5 0 . 6 0 . 8 0 . 9 . 11 O .0 O . 3 0 10 . C O N C 図1 P u r 0 m y c i nのデータ 一3 3 8 ‑

342.

3. N L 1N 非 線 形 回 帰 分 析 の 最 小 二 乗 法 に よ る ノ 守 ラ メ タ の 推 定 に は NLINを 使 う の が 普 通 で あ る 。 proc nlin data=pmycin; parms theta1=205 theta2=0.0 8 ; model veloc = theta1宇conc / (theta2+conc); der .theta1 = conc / (theta2+conc); der .theta2 =一 theta1宇conc / (theta2+conc)*宇2; r u n ; NLINを 使 う と き の ポ イ ン ト は 次 の 3点である。 MODELス テ ー ト メ ン ト で 非 線 形 回 帰 モ デ ル を 記 述 す る 。 PARMSステートメントでモデル式中のどれがノマラメタかを記述する。 また、初期値は必ず与えなければならない。 モ デ ル 式 を 各 パ ラ メ タ で 微 分 し た 式 を DERス テ ー ト メ ン ト で 与 え な い と い け な い (デフォルトの Gauss‑Newton法のとき)。 Non‑Linear Least Squares Iterative Phase Dependent Variable VELOC Method: Gauss‑Newton Iter THETA1 THETA2 Sum o f Squares o 205.000000 0.080000 3155.004234 1 213.028894 0.062892 1205.661845 2 212.603375 0.063988 1195.477124 0.064108 1195.449080 212.675434 0.064120 1195.448817 212.682940 4 0.064121 1195.448814 212.683666 NOTE: Convergence criterion m e t . NLINは ま ず 収 束 過 程 を 出 力 す る 。 こ こ で は Bates and Watts(1988)に 示 さ れ た 良 い 初 期 値 を 使 っ た の で 、 わ ず か 5回 の 反 復 で 問 題 な く 収 束 す る 。 ‑339‑

343.

Non‑Linear Least Squares Summary Statistics Dependent Variable VELOC Source D F Sum o f Squares Mean Square Regression Residual Uncorrected Total 2 1 0 1 2 270213.55119 1195.44881 271409.00000 135106.77559 119.54488 (Corrected Total) 1 1 30858.91667 Parameter THETA1 THETA2 Estimate Asymptotic S t d . Error Asymptotic 9 5% Confidence Interval Upper Lower 212.6836658 6.9471509268 197.20435150 228.16298000 0.0641212 0.0082809366 0.04566997 0.08257235 Asymptotic Correlation Matrix Corr THETA1 THETA2 THETA1 THETA2 0.7650835687 0.7650835687 NLINに よ る 解 析 結 果 は 上 の よ う に 表 さ れ る 。 ま ず 、 モ デ ル と 残 差 の 平 方 和 と 平 均 平 方 が 示 さ れ る 。 次 に パ ラ メ タ 推 定 値 と そ の 漸 近 標 準 誤 差 ・ 95% の 信 頼 区 聞 が 表 示 さ れ る 。 最 後に、パラメタ聞の相関行列が表示される。 線形モデルの場合は、誤差が正規分布するという仮定のもとで、パラメタ推定値の正確 な小標本分布を知ることができる。非線形モデルでは、推定値の小標本分布はわからない。 ゆ え に 、 推 定 値 の 標 準 誤 差 は 近 似 に よ ら ざ る を 得 な い 。 NLINが 計 算 す る パ ラ メ タ の 標 準 誤 差は盤亙孟且によるものである。従って、データの性質によっては信頼できない。 ‑ 3 4 0

344.

4. M O D E L 非線形回帰分析を実行するためには、 S AS/ETS の MODELプ ロ シ ジ ャ を 使 う の も 1つ の 方 法である。 MODEL プ ロ シ ジ ャ は 非 線 形 同 時 方 程 式 モ デ ル の 推 定 や シ ミ ュ レ ー シ ョ ン を 行 う ためのものであるが、最も簡単な応用として非線形回帰分析も扱える。 proc model data=pmycin; veloc = theta1事conc / (theta2+conc); f i t veloc; r u n ; MODELプ ロ シ ジ ャ の ポ イ ン ト は 次 の 5点である。 非線形モデルは割り当てステートメントの形式で与える。 FIT ス テ ー ト メ ン ト で 当 て は め る モ デ ル 式 を 指 定 す る 。 こ現われると、それはパラメタで 入力データセットの中に存在しない変数がモデル中 i あると自動的に判断される(推定すべきパラメタを明示的に指定することもできる)。 パラメタの初期値は指定しなくてもよい。その場合は 0 .0001が デ フ ォ ル ト で 採 用 さ れ る 。 推定するパラメタに関する導関数の式は与えなくてもよい。解析的な導関数が自動的 に計算される。 MODEL Procedure Model Summary Model Variables Parameters Equations Number o f Statements Model Variables: VELOC Parameters: THETA1 THETA2 Equati o n s : VELOC The Equation t o Estimate i s : . THETA2 ) VELOC = F(THETA1 最初のページにはモデルの情報を表示される。どの変数がノマラメタで、どの変数が従属 変数とみなされたかが、ここでわかる。 ‑341一

345.

MODEL Procedure OLS Estimation ERROR: After 2 0 halvings o f the GAUSS method parameter change vector the objective function was n o t improved. W it h the change vector below reduced b yt h e factor 9.5367432E‑7, the OBJECTIVE=22616.537519, which i sn o t less than the previous OBJECTIVE=22616.537498. Failed GAUSS Method Change Vector A t OLS Iteration 2 THETA1: 3.4035E11 THETA2: 5.0273E13 ERROR: The parameter estimates failed t o converge for OLS after 2 iterations using CONVERGE=O.OOl a st h e convergence criteria. OLS Iteration 2 : N=12 Objective=22616.537498 MSE=27139.844997 Nsubit=20 Phi= 2.16098E‑13 R=0.9514938452 RPC=260204691 .3 7(THETA2) PPC= 1912916271 .6( T H E T A 2 ) Obj=0.0000376204 THETA1: 177.93151831 THETA2: 26280.673929 GAUSS Method Parameter Change Vector A t OLS Iteration 2 THETA1: 3.4035E11 THETA2: 5.0273E13 Collinearity Diagnostics Number Eigenvalue 2.00000 5.123E‑11 Condition Var Prop Var Prop Number THETAl THETA2 1 .0 0 0 0 197584 0.0000 1 .0 000 0.0000 1 .0 000 NOTE: The parameter estimation i s abandoned. Check your model and d a t a . I f th e model i s correct and t h e input data are appropriate, try rerunning t h e parameter estimation using different starting values for t h e parameter estimates. PROC MODEL continues a si ft h e parameter estimates had converged. この場合ノ f ラ メ タ 推 定 は 収 束 し な い 。 最 後 の メ ッ セ ー ジ で 示 唆 さ れ て い る よ う に 、 デ フ .0001が 適 切 で な か っ た た め で あ る 。 ォルトの初期値0 342

346.

初 期 値 を 設 定 す る た め に は 、 fi t ス テ ー ト メ ン ト 中 に START=オ プ シ ョ ン を 指 定 す る 。 proc model data=pmycin; veloc = theta1宇conc / (theta2+conc); f it veloc START=(theta1=205 theta2=0.0 8 ) ; r u n ; MODEL Procedure O L S Estimation OLS Estimation Summary Dataset Option DATA= Dataset PMYCIN Parameters Estimated Minimization Summary Method GAUSS 3 Iterations Final Convergence Criteria R 0.00044785 PPC(THETA2) 0.000183 RPC(THETA2) 0.001884 Object 0.00002346 Trace(S) 119.544908 Objective Value 99.6207566 Observations Processed Read 1 2 Solved 1 2 NLINの と き と 同 じ 初 期 値 を 指 定 す る こ と に よ っ て 、 今 度 は 無 事 に 収 束 す る 。 初 期 値 を 指 定しなかった時と同じモデルの要約が表示された後、上のような推定の要約が表示される。 収束過程は、デフォルトでは表示されない。 NLINで は 収 束 ま で に 5回 の 反 復 が 必 要 で あ っ た が 、 MODEL は 3回 で 収 束 し て い る こ と が わかる。これは、収束基準が異なるためである。収束基準がいくつか表示されているが、 ates a n dW a t t s で 推 薦 さ れ て い る "relative offset" このうち Rと表示しであるのは、 B の収束基準と同じものである。 ‑ 3 4 3

347.

MODEL Procedure OLS Estimation Nonlinear OLS Summary o f Residual Errors DF DF Equation Model Error S S E VELOC 1 1 9 5 2 1 0 MSE Root MSE R‑Square A d j R‑Sq 119.54 10.93366 0.9613 0.9574 Nonlinear O L S Parameter Estimates Parameter THETA1 THETA2 Estimate Approx. S t d Err 212.675434 0.064108 6.94670 0.0082796 Number o f Observations Use d 1 2 Missing 。 .T ' Approx. Ratio Prob>!T! 3 0 .6 2 7 .7 4 0.0001 0.0001 Statistics f o r System Objective 99.6208 1195 Objective宇N MODEL プ ロ シ ジ ャ に よ る 推 定 結 果 は 上 の よ う に 表 さ れ る 。 ま ず 、 誤 差 の 平 均 平 方 . R2 などモデルの当てはまりの良さを評価するための残差関係の統計量が表示される。次にパ ラ メ タ 推 定 値 と 線 形 近 似 に よ る 標 準 誤 差 、 お よ び パ ラ メ タ = 0 の 仮 説 の 下 で の t検 定 の 結 果 が 示 さ れ る 。 一 般 に 非 線 形 回 帰 分 析 で は R 2 や パ ラ メ タ = 0 の t検 定 の 結 果 は 有 用 で は なく、 NLINで は 表 示 さ れ な か っ た 。 最 後 l こ示される " Objective"の 値 も 、 方 程 式 が 1つの モデルでは有用でない。同時方程式モデルの目的関数は、 1方 程 式 で は 単 に 自 由 度 の 調 整 を し て い な い 残 差 平 均 平 方 で あ る 。 目 的 関 数 X Nの 値 は 誤 差 平 方 和 に 他 な ら な い 。 ‑344‑

348.

5. N L P 非 線 形 回 帰 分 析 を 実 行 す る 方 法 の 1っとして、 SAS/ORに 入 っ て い る N LPプ ロ シ ジ ャ を 使 LP は 極 め て 一 般 的 な 非 線 形 最 適 化 の た め の プ ロ シ ジ ャ で あ る 。 目 うことも考えられる。 N LP は 最 適 化 的関数を残差の自乗和として、これを最小化すると非線形回帰分析となる。 N のプロシジャであって回帰分析のプロシジャではないため、何を最適化しているのかを把 握しておかなければならない。 proc nlp d a t a = p r n y c i n ; p a r r n s theta1=205, theta2=0.0 8 ; e = veloc ‑ theta1宇conc/(theta2+conc); obj = e 宇 巴 ; n ri no b j ; r u n ; NLP の プ ロ グ ラ ミ ン グ に は 次 の よ う な 特 徴 が あ る 。 DATAス テ ッ プ と 同 様 な プ ロ グ ラ ミ ン グ ス テ ー ト メ ン ト で 目 的 関 数 を 記 述 す る 。 上 の プ ロ グ ラ ム の 場 合 、 変 数 eが 残 差 で あ り 、 そ の 二 乗 を 目 的 関 数 o B J としている。オブザ ベーションが複数ある場合には、各オブザベーション l こ関する和が目的関数となる。 こは M INス テ ー ト メ ン ト を 、 最 大 化 さ せ た い 場 合 に は 目的関数を最小化させたい場合 l MAX ス テ ー ト メ ン ト で 目 的 関 数 を 表 す 変 数 を 指 定 す る 。 PARMS ス テ ー ト メ ン ト で パ ラ メ タ を 指 定 す る 。 初 期 値 は 与 え な く て も よ い ( 一 様 乱 数 で与えられる)が、前例でも示したように明示的に与えた方がよい。 微分式は指定しなくてもよい。解析的な導関数が自動的に計算される。 データの性質によって、最適化法が自動的に選択される。 PROC N L P : Nonlinear Minirnization NOTE: Gradient i sc o r n p u t e d using analytic f o r r n u l a s . NOTE: Hessian i sc o r n p u t e d using analytic f o r r n u l a s . O p t i r n i z a t i o n Start P a r a r n e t e rE s t i r n a t e s P a r a r n e t e r E s t i r n a t e Gradient THETA1 THETA2 205.000000 0.080000 一1 88.739697 2 136920 Value o f Objective Function = 3155.0042339 まず、初期値の設定が表示される。 RU A ω ‑ q u

349.

PROC N L P : Nonlinear Minimization ︑ n J臼 Tよ n u oqL1 ノ ・1ム P 0 4LO n aubeo zn+L ・ I ・‑4・1And+L ﹄ am川 n d m川 1a ・ 1And‑‑AVV +Lniv+LFA n M 0u p o o u ・ nHunHUPO TA‑hυ ︒ ououFAnHV E t e i︑ ・ et u ・1 ・ 1 m川 oueu nkamn TAndnu nundFA‑‑A OPAa+L ndnununHA nk‑H nvaniv hp t n ︒ ︒ uriu M川 一 + L T A rよ nu‑‑ム ounu O 山"'hu FA 川 +Lm W 山 H U O U OUM 山川 hU MNUm 川 H U Optimization Start: Active Constraints= 0 Criterion= 3155.004 Maximum Gradient Element= 136920.005 。 。 。 。 。 。 。 4 B n n u p o n d nし l ‑ ‑ l n u n d ‑l 。 p o p o ρ u nn anuz‑‑4 4 1よ 一 =ハ 一 u eu hH ・ nn 円 dnu 1よ ︽ ‑ ‑ nし l ca n‑‑ ︒ nHOν ORunko ‑‑AODAU + I防 局Uz‑‑ 也 nk nH ・ u k d a也 n H 1 ・ 0udnhu 4114nHu よ Q J V ud 1i ponunHu nununu nu‑‑Anu ‑‑ATAnuu +Lρu‑ nd+lbnU FA‑‑4 OUFA= し + l b +Ln Tin ν ‑‑nHum川 cuoν +L=1i ﹄ a qunHU 1a HU4L eunH4L ρu・ ・ 1 1 nu nkae FA‑‑A ntd osa ‑‑AnuFA +Lonu ndn し ワ bm 川 m川 v v m川 ・1AρUHu ・ l・ l・ l ・ + 1 4LVA nvnivnd nUAAUM 1 0 1 1 1 2 1 3 rho optcrit difcrit maxgrad ridge .0 0 0 0.0771 2953 2 0 2 .0 228989 8 1 4日O 1463.1 56115 16.000 1 .1 7 8 .0 0 0 1 1 2 4 2 2 4 8 .3 9355.3 4 .2 4 3 1 1日7 44.3759 1163.7 1 .0 0 0 1 .1 7 6 .2 5 0 1 1195 1 .8 215 46.385 O .0 54 1195 0.00609 O .1 4 4 0.0625 1 .0 1 3 1195 1 .1 15E‑6 0.00002 1 .0 0 0 ‑‑‑一 。 。 。 。 。 。 。 Iter rest nfun a c t 7 NOTE: GCONY convergence criterion satisfied. 次に、反復過程が表示される。 Optimization Results Parameter Estimates P a r a r n e t e r Estimate Gradient THETA1 THETA2 212.683743 0.064121 1 .9916513E‑9 ‑0.000019906 Yalue o f Objective Function = 1195.4488144 最後に最適化の結果が示される。パラメタの推定値は N LINや MODELで 求 め た も の と 一 致 する。最適化された目的関数の値は誤差の平方和である。 ‑346‑

350.

実は、 N LP で は 非 線 形 モ デ ル の 最 小 二 乗 法 に よ る 当 て は め を も っ と 簡 単 に 行 う こ と が で SQス テ ー ト メ ン ト で 指 定 す る と 、 二 乗 和 を 最 小 化 す る 最 適 きる。目的関数を表す変数を L 化を行う。 proc nlp data=pmycin; parms theta1=205. theta2=0.0 8 ; e = veloc ‑ thetalキconc/(theta2+conc); LSQ 巴; r u n ; PROC N L P : Least Squares Minimization Levenberg‑Marquardt Optimization Scaling Update o f More ( 1 9 7 8 ) Number of Parameter Estimates 2 Number of Functions (Observations) 1 2 Optimization Start: Active Constraints= 0 Criterion= 1577.502 Maximum Gradient Element= 68460.002 Radius= 110727831 .5 1 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 optcflt difcrit maxgrad lambda rho 9 7 4 .7 6448.5 602.8309 1 .0 1 1 597.7386 5.0924 2 31 .6 1 .0 2 1 597.7245 0.0140 20.529 1 .0 9 6 4 597.7244 0.000131 1 .9 7 2 1 .0 9 6 4 597.7244 1 .222E‑6 O .1 9 0 1 .0 9 6 Optimization Results: Iterations= 5 Function Calls= 7 Jacobian Calls= 6 Active Constraints= 0 Criterion= 597.72441 Maximum Gradient Element= 0.189957 Lambda= 0 Rho= 1 .0 9 6 Radius= 0.005916 Iter rest nfun a c t NOTE: GCONV convergence criterion satisfied. NOTE: A t least one element o ft h e (projected) gradient i s greater than 1 e ‑ 3 . 最 小 二 乗 最 適 化 を 選 ん だ と き は 、 Levenberg‑Marquardt 法 が デ フ ォ ル ト で 選 択 さ れ る 。 普 通 の 最 小 化 で デ フ ォ ル ト だ っ た リ ッ ジ 安 定 化 Newton‑Raphson、法では収束まで 7 回 の 反 復 が必要であったのに比べ、 5回の反復で解を得ている。 1 ウ ぺ n υ 4・

351.

Optimization Results Parameter Estimates Parameter Estimate Gradient THETA1 THETA2 212.683666 0.064121 9.9796904E‑9 0.189957 2 Value o f Objective Function = 597.72440723 パ ラ メ タ 推 定 値 の 値 は 同 じ で あ る が 、 最 適 化 さ れ た 目 的 関 数 の 値 は 誤 差 平 方 和 の 1/2 になっている。 こ関する パ ラ メ タ 推 定 値 は NLINや MODELと 同 様 に 得 ら れ る こ と が わ か っ た が 、 推 定 の 幅 l 情報は出力されないのだろうか。実は、非線形モデルにおいてパラメタ推定値の分散共分 散行列を近似する方法は各種存在する。たとえば、パラメタ推定を最小二乗法で行うのか 最尤法で行うのかにも依存する。 NLPは 非 線 形 最 適 化 を 一 般 的 に 行 う プ ロ シ ジ ャ で あ り 、 いままで示したような最小二乗法よりも、むしろ任意の尤度関数を指定して最大化する最 尤法のアプリケーションに便利である。そこで、 N LP に は さ ま ざ ま な 方 法 に 対 応 で き る よ う パ ラ メ タ 推 定 値 の 分 散 共 分 散 行 列 を 計 算 す る 方 法 を 6通りもっている。 た と え ば 、 へ シ ア ン の 逆 行 列 に 基 づ い て 分 散 共 分 散 行 列 を 計 算 す る に は 、 COV=2 という オ プ シ ョ ン を つ け る 。 推 定 さ れ た 分 散 共 分 散 行 列 を 表 示 す る た め に は PCOVと い う オ プ シ ョ ンをつける。 proc nlp data=pmycin COV=2 PCOV; 8 ; parms theta1=205, theta2=0.0 e = veloc ‑ theta1*concj(theta2+conc); lsq 巴; run; ‑348‑

352.

Optimization Results Parameter Estimates Parameter Estimate Approx. Std Err Ratio Approx. Prob>[t[ THETA1 THETA2 212.683666 0.064121 7.160661 0.008711 2 9 .7 0 7 .36 0.0001 0.0001 Optimization Results Parameter Estimates Gradient THETA1 THETA2 9.9796904E‑9 ‑0.189957 Value of Objective Function = 597.72440723 Covariance Matrix 2 : H =sigmasq inv(G) THETA1 THETA2 0.04870733 .27506991 51 0.00007589 0.04870733 Factor sigm = 119.54488145 Determinant = 0.0015186238 Matrix has Only Positive Eig巴nvalues THETA1 THETA2 推定された分散共分散行列 l こ 基 づ い て 、 パ ラ メ タ 推 定 値 の 近 似 標 準 誤 差 と 近 似 t検 定 の 結 果が示されている。 PCOVオ プ シ ョ ン の 効 果 に よ っ て 、 分 散 共 分 散 行 列 も 表 示 さ れ て い る 。 ‑349一

353.

6. T N L I N MODEL プ ロ シ ジ ャ や NLPプ ロ シ ジ ャ で は 導 関 数 の 式 を 指 定 し な く て も 自 動 的 に 計 算 す る LINプ ロ シ ジ ャ で は 必 ず 指 定 し な け れ ば い け な い と い う の は 不 便 で あ ことができるのに、 N LINで も 使 え る よ う る 。 MODEL プ ロ シ ジ ャ で 使 っ て い る 導 関 数 を 得 る た め の プ ロ グ ラ ム を N に す れ ば よ い の で あ る 。 長 い 間 無 視 さ れ て い た こ の 改 良 が 実 験 的 に 行 わ れ た 。 現 在 TNLIN というプロシジャが存在する。これは、導関数を自動的に計算する N LINで あ る 。 将 来 的 に LINの 中 に 統 合 化 さ れ る 予 定 で あ る 。 は 、 N proc tnlin data=pmycin; parms thetal=205 theta2=0.08; model veloc = thetal*conc / (theta2+conc); r u n ; TNLIN を 利 用 す る に は 、 上 の よ う に NLINを TNLIN'こ置き換えて、導関数の定義を外せば、 よい。結果は N LINで 得 ら れ る も の と 同 じ で あ る 。 7. パ ラ メ タ の 検 定 線形モデルではパラメタの検定について問題は少ないが、非線形モデルでは様々な問題 が 生 じ る 。 一 般 に 用 い ら れ て い る 仮 説 検 定 の 方 法 に は 、 次 の 3 つがある。 ワルド検定 ラグランジュ乗数法検定(ラオのスコア検定) 尤度比検定 既に指定されたモデルでパラメタが推定されている場合、ワルド検定は計算のコストが ほ と ん ど か か ら な い 利 点 が あ る 。 後 2者 は 、 検 定 で 定 義 さ れ た 制 約 モ デ ル で の 推 定 が 必 要 になる。しかし、尤度比検定はモデルのパラメタ化を変更しでも不変であるという好まし い性質をもっている。 .1 1の MODELプ ロ シ ジ ャ か ら 簡 単 非 線 形 モ デ ル に お け る こ の 3種 類 の 検 定 が 、 リ リ ー ス 6 に実行できるようになった。 proc model data=pmycin; veloc = theta1宇conc / (theta2+conc); f it veloc start=(theta1=205 theta2=0.0 8 ) ; test theta1=205; ML R OUT=outt e s t ; test theta2=0.08, / WALD L r u n ; u に n u v nJ

354.

1番 目 の TESTステートメントは、 θ , = 2 0 5 という仮説を検定している。検定する仮説に は任意の式表現をもちいてよい。検定の種類を指定しないとワルド検定が実施される。 番 目 の TESTステートメントでは、 2 θ2=o .08と い う 仮 説 を 検 定 し て い る 。 こ こ で は 、 実 行 す る 検 定 の 種 類 を 3種 類 指 定 し て い る 。 ま た 、 検 定 結 果 を デ ー タ セ ッ ト に 出 力 す る よ う に し て い る 。 こ こ で 示 し た よ う に 、 TESTス テ ー ト メ ン ト は 複 数 指 定 し で も よ い 。 結 果 は 次 の よ うになる。 MODEL Procedure OLS Estimation Test Results Test Type Statistic P r o b . Label TestO Test1 Wald Wald L .R . L .M . 1 .2 2 3 .6 8 329.23 298.56 0.2692 0.0549 0.0001 0.0001 THETA1=205 THETA2=0.08 THETA2=0.08 THETA2=0.08 TYPE WALD 2 L .R . OLS OLS OLS L .M . NUSED 4 E i 4 E i 4 1 1ゐ NAME ︐ ︐ n Ln LqL OBS Test1 3 .6 8 4 329.233 298.561 ー ム Ru qu

355.

8. ま と め 以上概観して、 N L 1N SA S システムでの非線形回帰分析について次のようにまとめられる。 :他の 2 つ に 比 べ て 機 能 が 制 限 さ れ て い る た め 、 初 心 者 に と っ て 使 い や す い 。 導関数を書かなければいけないという問題も回避された。 M O D E L :豊 富 な 機 能 が あ る た め 、 非 線 形 モ デ ル の 上 級 者 に 適 し て い る 。 特 に 、 尤 度 比 検定が容易に実行できるのは便利である。 NLP :柔軟な指定が可能であるため、上級者向けである。特に、解析者独自の尤度 関数を指定して最尤推定を行うのに便利である。 参考文献 Bates,B .M ., and Watt s,D .G .( 1 9 8 8 ), Nonlinear Regression Analysis and 1t 's applications, Wiley. Little,M ., and Erdman,D .( 1 9 9 4 ), The SAS System for Nonlinear Regression Analysis, SAS Institute. ‑352一

356.

日本 S A Sユーザー会 (SUGI‑J) 数量化理論アプリケーションの開発 O 谷川俊彦 岩谷きよみ NECソフトウェア岡山 野宮明子 第一システム開発部 Development o f STATQUA application T.Tanikawa K . l w a t a n i A.Nomiya L t d . 6 7 7, OUCHIDA, OKAYAMA 701‑01 NEC Software Okayama, 要旨 NECソフトウェア岡山は、 SASシステムの専任部隊を持ち、ハードメーカにこだわらな い SASシステムのソリューションを提供し、好評を博している。 今回、 SASシステムで要望の多かった、数量化理論アプリケーションを開発したので、こ こに紹介する。 キーワード: 数量化理論 与信管理 SAS/AF 1. はじめに 日本で生まれた数量化理論。日本では非常にポピュラーなこの手法も SASシステムにおい ては残念ながら標準のプロシジャとしてはサポートされていない。現在、サンプルプログラム として提供されてはいるが、ユーザインターフェースを持たないため、エンドユーザが使いこ なすにはやや難しい。また、変数名の制限が多い事やラベルを付与するのがたいへん面倒な事 等改良を求める声も多い。弊社にも SASシステムで簡単に数量化理論を扱いたいという要望 が多くよせられるようになった。 そこで、今回、 SASシステムで数量化理論アプリケーション(製品名 iEasyStat /数量化理論 J )を開発したので、ここにその概要を紹介する。 2. 数 量 化 理 論 2. 1 数量化理論とは 数量化理論とは、アンケートデータに代表されるような質的データ(カテゴリカルデー タ)に多変量解析を行う手法のことである。数量化 I 類、 E類、皿類、 W類と呼ばれる 4 つ の 手 法 を 持 ち 、 そ れ ぞ れ 量 的 デ ー タ に お け る 重 回 帰 分 析 (1類 ) 、 判 別 分 析 ( I I類)、 F h υ nd nd

357.

主成分分析、因子分析(皿類 'N 類)と思ってもらってよい。 2.2 適用事例(与信管理システム) 金融機関・カード会社等においては、顧客に対してどれだけの信用を与えられるか、す なわち与信管理をどれだけの精度で行うことができるかが収益を左右することは言うまで もない。融資限度額やカード利用限度額などを決定するとき、リスク回避を重視するので あれば、限度額を低〈抑えればいいのであるから簡単である。しかし、これでは収益は下 がってしまう。筆者も複数のカードを持っているが、以前、あるカードを買い物に使おう としたところ、その商品の価格が限度額にひっかかったらしく、使用を断られた。そこで、 別のカードを提示してみたところ、そちらでは使用可能であった。この後、使用するのは もっぱら後者のカードとなった。 筆者の実例を出すまでもなく、リスク回避を余りに重視するのは考えものである。もち ろん、だからといって闇雲に限度額を上げればいいというものではない。返済不能に陥っ てしまうような額では収益どころの騒ぎではないのだから。 与信管理システムは、このように重要な与信管理業務の意思決定支援を行うために、過 去の顧客情報や既存顧客データを数量化理論を用いてモデル化し、そのモデルを使い新規 顧客が正常返済できるかどうかを予測する。それにより、意思決定の支援を行ったり、場 合によっては自動化を実現する。 与信管理システムの例 ①項目の分類 目的変数(正常返済かどうか)と説明変数(個人情報)の聞に関連性があるかないか をクロス集計を使用して χ2検定を行う。 r2つの変数は独立である」という帰無仮設 が棄却されたとき関連があるとする。 これにより、モデルに使用する変数を選択するときのよりどころの 1っとする。 ②貸し付け診断モデルを作成 顧客データをもとに、貸し倒れリスクを予測するためのモデル式を作成する。返済実 績と関連の深い項目を選び、数量化理論で貸し付け診断モデルを作成。作成したモデ ルは評価と再構築を繰り返し、予測診断に使用するモデルを決定する。最終的には、 利益が最大になるようなモデルを求めることが目標である。 ③予測診断 新規顧客の個人情報をモデルにあてはめてみて希望融資金額が適切かどうか、融資の 可否を判別。判別得点を計算し、その判別得点が正常返済の分布に近いか、貸し倒れ の分布に近いかで判別し予測する。 この他にも既存顧客データを数量化理論で分析することによって、顧客が何を見て来庖 したか、優良客かどうか、などからどんな媒体に広告を出すとより効果的かを判断する広 告媒体分析に利用したり、また、どんな個人情報を持つ人に D Mを送れば効果的なのかを 予測する顧客開拓分析等いろいろな顧客分析に数量化理論は適用できる。 354一

358.

3. EasyStat/数 量 化 理 論 の紹介 3. 1 特 徴 今回、 SASシステムで数量化理論アプリケーションを開発するにあたり、まず気にか けたことは、エンドユーザが使いやすいようなアプリケーションにすることであった。そ のためユーザフレンドリーな GUIを SAS/AFで実現することに注力した。 数量化理論を実行する際、最も面倒なところは変数名やラベル名などを付与するところ だと思われる。つまり、データごとにアイテム名、カテゴリ名、アイテムラベル、カテゴ リラベル等をつけてやらないと、質的データの解析だけに結果が見づらいものになりがち である。そこで、変数名やラベル名をとりあえず自動的に付与するようにした。もちろん GUI上で自由に書き換えることができるので、自分で付与したい方も楽に付与できるよ うになっている。 さて、そのようにして一度付与した変数名やラベル名と同じものを異なるデータに対し でも付与する場合が考えられる。例えば、同じアンケートを時聞をずらして取る、もしく は地域を変えて取るという場合である。この場合、データに付与するアイテム名、カテゴ リ名、アイテムラベル、カテゴリラベル等は異なるデータであっても同じものが利用でき る。それを再度手入力しないですむように、 1度付与したものは保存して再利用できるよ うにアイテムーカテゴリ対応表という形で保持できるようにした。 次に、できるだけ高速に処理ができるように、データを変換するところなどではプロシ ジャを使わず、 SCLで処理を行った。また、解析のたびにデータ変換(アイテムカテゴ リ型からカテゴリ応答型)を行っていた今までの方法と違い、前もってデータ変換を行う ようにしているので、例えば同じデータで、説明変数を変えながら分析するときなどは、 ずいぶん早く分析できるようになった。 その他、新たな統計量もいくつかだせるように改良している。 なお、数量化 W類は実際にはほとんど使われないため、今回のパージョンには入れなか った。もし、リクエストが多ければ採用するかもしれないので、気軽にご意見をお寄せい ただきたい。 3.2 機 能 ① 数 量 化 I類、 E類、皿類を簡単に SASシステムで実行。ユーザフレンドリーな GU Iを持ち、マウスによる画面上での簡単な操作で使用可能。 ② SASシステムで構築しており、もちろんマルチプラットフォーム対応。 ③とりあえず、数量化にかけてみるとき便利な簡易モードを用意。 ④面倒なアイテムやカテゴリの名前やラベルづけを自動的に行い、分析。 ⑤自分でアイテムやカテゴリの名前やラベルづけを行いたい方も、 GUIにより、簡単 に付与することができる。 ⑥一度付与したアイテムやカテゴリの名前やラベルはアイテムーカテゴリ対応表という 形で保存しておけるので、再度同じ名前やラベルを付与する手聞がいらない。 ⑦連続量データのカテゴリデータ化機能等、便利な機能を用意。 RU RU nd

359.

3.3 標準モード使用例(アイテムカテゴリ型データで数量化 H類を実行する場合) ①標準モード ・E a s yS ta tの起動画面(図 1)より、 「標準モード」クリック ・標準モードのメニュー画面(図 2) を立ち上げる EasyStat/ 数量化理論 Ver1̲O 庫E C o p y r i g h l( c )1 9 9 5N E CS o f t w a r eO k a y a . a .L t d . 本ソフトウェアの使用には、パッケージに同封された使用位弓議謬勅書の同意e : / ) > ,必要てす. 図 1 EasyStat起動画面 EasyStat/ 数量化理論 《額準モード》 アイテムカテゴリ型データ カテゴリ応答型データ E璽 轟轟 E調 開 ' V ! 可 噌' 蹴量データのカテゴリ化 1 2!と旦!J E轟 堕 "1 jt l I i ! 7 . > 図 2 標準モードメニュー画面 I ーと~ ﹃u RU nb

360.

②アイテムーカテゴリ対応表作成 ・標準モードのメニュー画面(図 2 ) より、 「対応表作成」クリック ・アイテムーカテゴリ対応表作成画面(図 3) でデータセットの中のアイテム変 数を指定し、アイテム変数の一覧(図 4) を作成。 ・一覧の中のアイテム名をクリックして、そのアイテムのカテゴリ名、カテゴリ ラベルを入力(図 5) くアイテムカテゴリ型データ アイテムーカテゴリ対応事刻字成〉 入 加Sデータセット名 : ISASUSER.II1 AY アイテム変数名 J STEE .SEAT8肌 SP臥 カテゴリ名設定 三 二1iii翌 J 刷 問 j必須 Y A H H E ‑ l 出力対応表名 I ~ i . l i ! 1 . > I ーご:Z̲J 図 3 アイテムーカテゴリ対応表作成画面 カテゴリ名を設定したいアイテム変数名をクリックしてください. カテゴリ名を設定し:な IU 奇合、既定値のカテゴリ名て合f 応表を作成します. アイテム変数名 耳 石2 . 町E E R I N G 未 S E A T 8 E L T 未 ( 1/ 1 ) 日 E S P E E D 未 S T A T U S 未 日 E 一TIll I ~主」 図 4 変数名指定画面 戸 h u ー ワ ηd

361.

アイテムラベル,カテゴリ名,カテゴリラベルを入力してください. アイテム名 S P E E D アイテムラベル: 盟 E 四国mJ 値 カテゴリ名 カテゴリラベJ レ 湿@ a l "T ' . p (ν1) E 日‑ 2 9 l!Ii週圃 3 日‑ 4 9 l i I i 四 ・ 湿璽彊湿~ 5 日 + l!Ii国圃 湿室温m.. 日 E I 7s 1 : l &i i i I ーごとこ」 図 5 カテゴリ名設定画面 ③アイテムカテゴリ型データをカテゴリ応答型のデータに変換 ) より、 ・標準モードのメニュー画面(図 2 「データ変換」クリック ・アイテムカテゴリ型データの変換画面(図 6) で変換するデータを指定 くアイテムカテゴリ型データの変換> アイテムカテゴリ型→カテゴリ応答型 入力SASデータセット名 入力対応表名 出力SASデータセット名 iEAEUSER‑旧日 ' W A Y " ' 印 刷Y I必耳 u ‑‑宣 ~J., I ーヱ巴~ 図 6 アイテムカテゴリ型データの変換画面 q u ︒ O Ru

362.

④数量化 E類 ・標準モードのメニュー画面(図 2) より、 「数量化 E類」クリック ・数量化 E類メニュー画面(図 7)で分析に使用するデー夕、対応表、外的基準 変数、説明変数などを指定 ・処理オプション画面(図 8) で分析や出力に関するパラメータを指定 ・統計量オプション画面(図 8) で出力する統計量を指定 く数量化理論第 2 類> 入力 SASデータセット: アイテムーカテゴリ対応表 i必至頁 : i必ヨ買 妥当世: │必須 外的率鮫数(質的 : i必須 アイテムーカテゴリ型誹服激 鯉 オ フh 一主主̲j ~;., ン i I ーど~ 図 7 数量化 E類メニュー画面 ーーーーーーーーーーーーー・省婦官画面面猛司E園 田 園 圃 圃 圃 圃 圃 圃 圃 圃 圃 圃 国 市 川 圃カテゴリ聞のクロス表 一 一 一 一 一 一 一 一 一 一 一 一 一 一 ‑ . t 皇 室Z面盛田EIO f f ' 国カテゴリ数量 国カテゴリ数量の棒グラフ 出力次元数:~ 圃アイテムレンジ カテゴリ数量の基準化方法・ 国アイテムレンジの棒クーラフ ・平均値を 0 〉端点を 0 圃サンフワL 数量のグl トフ掌礎統計量 圃サンフ.)~数量と半jlllj結果 統計量オプション 国事前判別と判別清果のクロス表 出力 SASデータセット! 圃サンフワL 数量のグループごとの相関係数 回サンフワ喰量の散布図 iJ i ; I ~主1 J 領樹ヨ 圃判5ll _2_とヰ」コ乙j i l i ; 図 8 処理オプション画面 I旦f.i!J̲2̲と牛iぷ 乙J 図 9 統計量オプション画面 ‑ 3 5 9

363.

3.4 簡易モード使用例 ①簡易モード ・EasyStatの起動画面(図 1)より、 「簡易モード」クリック ・簡易モードのメニュー画面(図 10)を立ち上げる ②数量化 E類 ・簡易モードのメニュー画面(図 10) より、 「数量化 E類」クリック ・数量化 E類メニュー画面(図 11)で分析に使用するデー夕、外的基準変数、 説明変数などを指定(処理オプション等の指定は標準モードと同じ) EasyStat/ 数量化理論 《簡易モード》 . . E語 圏 図 10 簡易モードメニュー画面 く数量化理論第 2 類> 入力 SASデータセット: i必探 変数: 州騨鶴(質的)│必須 アイテムーカテゴリ諮棚変動 i必須 ~l\I里オプション 一旦工̲j 図 11 簡易モード ̲ J l R J . > ̲ ̲ 1 ̲三巴 数量化 E類メニュー画面 360‑

364.

4.今後の展望 rEasyStat/数量化理論」が今後、パージョンアップを行うとすれば、機能的には 以下のような強化項目が考えられる。もちろん、この他にも課題はあるだろうし、機能以外に も、使いやすさや高速化といった観点からもより完成度の高いものを目指していきたい。 ・説明変数に連続量も扱えるようにする。 ・出力の部分もアプリケーション化し、より美しく、よりきめの細かい出力ができるよう にする。 ・マルチアンサ一対応とする 0 .数量化 W類をサポートする。 また、数量化理論を組込んだシステム、例えば与信管理システムやアンケートデータ分析シ ステムといった方向に応用していくことも考えられる。 5. おわりに SUGIー J' 95において、昨年の EasySelectorXlに続いて、 SAS EasyStat/数量化理論として発表 できたことは大変ありがたく思っている。弊社の力だけでなく、 SASシステム自体の開発ツ 今回、 システムで数量化理論アプリケーションを実現し、 ールとしてのレベルの高さがあればこそである。 NECソフトウェア岡山は、これまでの豊富な統計解析分野での実績をベースに、 SASシ ステムによるソリューションビジネスを展開している。今後ともよろしくお願いしたい。 rEasyStat/数量化理論」の開発にあたり、多くの貴重なご意見をいただ き、お世話になった附 SASインスティチュートジャパンの石井様、藤井様、青柳様にこの場 最後に、 を借りて深く感謝いたします。 本 lEasySelector NECソフトウェア岡山が開発・提供しているソフトで、 RDBから SASシステムに データを取り込むツールである。 SAS/AFによるユーザインターフェースを持ち、 SQLの知識がなくともマウスで指定するだけでデータを取ってくることができる。抽 出条件もマウスで指定できるうえに条件式の保存・呼び出しもできる。 V1EWにも対 応している。 ※ 論文中のすべての画面は、開発中のものであり、変更される可能性があります。 ※ 記載されている会社名・製品名は、一般に各社の商標または登録商標です。 守﹄‑ ﹃υ pb

365.

参考文献 [1] 駒 津 勉 、 馬 場 康 維 ( 19 9 2 ) 数量化理論,放送大学教育振興会 [2]Tchnical Report:J‑l08 数量化 1• I I類サンプルプログラム U の'u p o nペ

366.

日本 5A5ユ ー ザ ー 会 (5U Gト J ) マーケティング・パッケージ 西田素子 鈴木督久 竹田みや子 (株)日経リサーチ aP a c k a g ef o rM a r k e t i n gR e s e a r c h u s i n g SASiAF MotokoN i s h i d a, MiyakoTaketa, TokuhisaSuzuki N I K K E I RESEARCH I NC . 2 ・ 2 ・ 7 Kandat s u k a s a ‑ c h o C h i y o d a・ kuT o k y o 1 0 1 要旨 SAS/AFの FRAMEエントリ機能をマーケティング・リサーチに利用した試みを紹介す る 。 さそーワ ‑F二 SAS/AF, FRAMEエントリ, マーケティング はじめに 伝統的なマーケテイング・リサーチの手I } 買は、市場を代表する標本を住民基本台帳等か ら無作為抽出し、調査票を持って対象者に函接して回答を求め、データ入力・チェック・ 修正のあと集計して報告書にまとめるーーという進め方であった。 ここでパソコンは「集計・分析」のツールであった。しかし SASのような環境をうまく 使えば、マーケティングに関するさまざまな作業を「パッケージ」のようにまとめてシス テム化することが考えられる。例えば以下のような作業である。 ‑ 調査結果をデータベース化し、手元のパソコンで質問項目(変数)を指定するだけで いつで、も必要な集計表だけを出力する(大量の保存用クロス集計表を出力しなし、) ・ ・ グラフやワープロのアプリケーションと連動させることで、紙への出力を媒介せずに 報告書の自動作成をする マスターサンプルや顧客情報をデータベース化し、そこから無作為抽出や条件抽出を するメニューを準備し、迅速な調査の実施や、きめ細かい顧客対応に役立てる ηべ u nべU nb

367.

‑ コンジョイント分析など、パソコン・インタビューが効果を発揮するタイプの調査の データ収集に使う このような作業をパソコンで処理することは、部分的には実施されているものの、さま ざまな形式のマーケテイング・データを一般的に処理するための形式化はされていない。 しかしある程度の簡易化は可能なので、 SAS/AF を使ってマーケティング・パッケージを 作ることを試みた。 1.調査のデータベース化と集計 マーケティング・リサーチの結果は、大量のクロス集計表として出力されることが多い。 もちろんそのような報告書にも意味はあるが、パソコン利用が高度化した現在では、分析 者の手元で気軽に再集計をしたり、表をレポートに挿入したり、表のスコアをグラフ化し たくなる。 図 1はデータベース化されている調査を選択したあとの「集計・データ加工メニュー」 を選んだ画面である。 図 1 集計・データ加工のメニュー画面 ‑ 3 6 4

368.

図 1の「単純集計グラフ」のアイコンをクリックすると、図 2の画面に移る。最初は右 側に分析中データの全変数のラベルが一覧になったリストボックスが現れる。ここで集計 したい変数を選択すると、左側に度数分布グラフが出力される。 個々のカテゴリの件数を確認したい場合は、グラフのパーをマウスでクリックすること によってパーの色が変化し(図 2はカラーではないので様子がわからないが)、下の行に 度数と比率を表示する。 図 2 単純集計グラフの出力画面 、 図 3は 「クロス集計」を選択した画面である。 [EXCEL出力]のアイコンは最初は見 えない。現在のデータに含まれる全変数のラベルが左右 2つのリストボックスに表示され るので、表頭・表側にする変数を 1個ずつ選択して、 [実行]ボタンをクリックすると OUTPUTウインドウに FREQプロシジャの出力が表示される。 ENDコマンドで AFに戻 ると、今度は [EXCEL出力]のアイコンが現れており、 EXCELによる作業に移ることも できる。このアイコンを押すと EXCELが起動し、 FREQの出力を EXCELのシートにう まく適合するように加工をしたうえで EXCELに渡す。セル内の統計量やテキストを切り 出して、 EXCELのセルに対応させているのである。 365‑

369.

ここではリストボックスによる指定方法を採用したが、クロス表の集計計画の形式とし てよく知られているものに、調査項目を表側と表頭にすべて配置したマトリックスを作り、 クロス集計したい組にチェックする「集計計画表 J がある。この方法は質問項目が少なけ れば一覧性があって便利だが、通常の規模の調査ではラベルも含めて「計画表 J の形式で 表示するだけのスペースが不足するので、見送った。 図 3 FREQの出力画面から戻って EXCEL出力のアイコンが出た画面 2. セグメンテーション マーケティング・リサーチでは特殊なセグメントに対する調査結果を意思決定に使うこ とがある。代表性よりも特殊性、全体的よりも部分的な調査で問題を解決できると調査の 利用者が判断すれば、ランダム・サンプリングにこだわらない。 大規模なパネル調査やモニター調査をした「マスターサンプル」を SASデータセットで データベース化しておけば、ここからセグメントを抽出できる。 I サンプル」を「顧客」 に置き換えれば顧客データベースとなる。 抽出条件に使う項目は、基本属性や感性、行動、意識、噌好などの観測変数を用意する phv phv qu

370.

数になるという不都合がある。 REQプロシジャだけを使った。本格的なクロス集計表を作る機能は 11.クロス集計には F ASでクロス集計をする ないのだが、体裁よりも指定が簡単であることを重視した。 S ABULATEプロシジャを使えばよさそうだが、これが汎用的なクロス集計プロ なら T グラムとは異なっている。マーケティング・リサーチなどにおけるアンケー卜調査に ABULATEは当然のことながら完全に SAS は複数回答。仏)があるのが特徴だが、 T のプロ、ンジャの性格を持っていて「変数」で表侭J Iと表頭を指定する形式で一貫してい る 。 M A も含めて一般的なクロス集計の指定方法を考えてみると、 M Aに関しては内 部的に配列を定義するようなマクロが必要になる。ラベルやフォーマットの自動的な ASで本格的なクロス集計システムを開発 テキス卜加工も必要である。いずれにせよ S REQで十分とした。 するのは手聞がかかるので、利用目的に照らして F 1 2 . パスワードは L I S Tエントリを作成して有効値を登録している。したがって変更の際 ISTVALUEワインドウで値を変更して再コンパイルしなければなちない。セ には、 L キュリティーの面では問題がないのだが、それほどセキュリティーを必要としない場 合のために、パスワードを記述した外部ファイルを参照して管理する機能が欲しい。 1 3 . すべての変数にラベルとフォーマットを作成し、拡張テープ ルで、もフォーマットのみ が表示されるようにしている。値が希望の順番で表示されるよう考慮したフォーマッ トを作成する必要があり面倒だった。無回答(欠損値)を最後に表示したければ最大 REQの出力にうまくテキス卜が出るように半角と全角 値にするように変更したり、 F を組み合わせるなど職人芸のような作業になった。カタカナ半角のヲがアの前にソー 卜されるなどの予想外のハプニングもあった。 1 4 . コンジョイン卜分析におけるデータ収集の例をあげたが、実際には予算という難しい 問題がある。コンジョイン卜分析の回答は時聞がかかるので会場テストなどによる小 0台ほどのノートパソコンをレンタルして調査 サンプル調査が多いが、それにしても 1 にのぞむだろう。 1回の調査実施のために S ASを 10セットも契約する予算はないこ とが多い。 1 5 . データ収集のアプリケーションでは可搬性が重要である。特に質問紙調査に代わって パソコン・インタビ、ューをするとなると ヨンパイルした独立実行型のプログラムと Fはコンパイルできるが Baseは必要である。もしも SASシステム して扱いたい。 A SP の機能の 1っとして「データエントリー Jを実用的水準に高めたいのなら、 AFや F に関してはコンパイル結果を独立実行型ファイルにできる機能が望まれる。 ー ム マt qu

371.

おわりに SAS/AFのプログラミング i こはまだ精通しているとはいえないので、開発段階で直面し た問題点には解決方法があるかも知れない。ただし、 SAS/AFに柔軟性があるといっても 細部まで完全に満足のいくようなシステムを作るには、やはり時間をかけた工夫が必要で ある。 たとえばデータの定義にしても、パッケージ化を目指す限り、いつも違う形式のデータ を統 J 闘で処理する定義方法を考える必要性を感じている。 的な手I マーケティング・パッケージとしてはまだ試行錯誤の中にいるので、具体的なケースへ の対応を重ねながら検討を進めていきたい。 ※ Windowsは米国 M i c r o s o f tC o r p o r a t i o l lの登録商標です. x c e lは米国 M i c r o s o f tc o r p o r a t i o l lの登録商標です. ※ E nノu ハ ペu ー ヴ

372.

日本 S A Sユーザ一会 (SUGI‑J) マーケティング情報のビジュアル化テクニック ‑PLOTITマクロの紹介一 Warren F . Kuhfeld 翻訳:奥山真一郎 (SAS Institute Japan) SAS Institute I n c . Graphical Scatter Plots of Labeled Points . Kuhfeld Warren F SAS Institute I n c . SAS Campus Orive,Cary,NC 27513 USA 要旨 SAS/STAT ソフトウェアのサンプルライブラリにある PLOTIT (plot iteratively) マクロ の使用法を紹介します。このマクロにより、 M D S ・選好多重回帰・対応分析などの解析 結果を、容易にビジュアル化することが可能です。曲線・ベクトル・円などを描くことは もちろん、プロット点の色・サイズ・フォントなど、グラフ全体の見栄えを整えることが できます。 PLOTITマクロは、 SAS/STAT ソフトウェアのサンプルライブラリの中にありま す 。 キーワード: PLOTIT,SAS/STAT,SAS/GRAPH,マーケットリサーチ 1.はじめに S A Sシステムはこれまで、散布図作成の機能(例えば PLOT プロシジャや GPLOT プロ シジャ)を提供してきました。ある変数の値でラベルをつけた各点を散布図中に表現する ことは、さまざまなデータ解析においてたいへん有効です。しかしながら最近まで、その ための十分な方法がありませんでした。 GPLOT プ口、ンジャはグラフイカルな散布図を作成します。その際、 Annotate 機能を併用 することにより、長いラベノレをつけることもできます。しかし、それらのラベノレを最適な 位置につける、自動的な機能はいままでありませんでした。 PLOT プ口、ンジャで散布図中 で長いラベルを最適な位置につける機能は、 M V S、 C M S、 V M S版 S A Sシステムリ リース 6.07、その他の O Sでも 6.07 以降のリリースで利用可能になりました。そのアル ゴリズムは、 Kuhfeld(1991)によって開発されたものです。また、この新しい PROC PLOT の各オプションについては、 SASTechnical Report P‑222,Changes and Enhancements to Base SAS Software と SAS Technical Report P‑229, SAS/STAT Software: Changes and Enhancements に記載されています。ここでは PROCPLOT がグラフイカルな散布図を直接 ワ 1 η ηd ︒

373.

作成できないことに注意してください。 今回の新しい S A S / S T A Tマクロ、 P L O T I T( p l o ti t e r a t i v e l y ) はラベルつきのグラフイ カルな散布図を作成します。このマクロを使用することにより、曲線をフィットさせたり、 ベクトルや円を描くことができます。たくさんのオプションがありますが、その中のごく 1部を用いることで、さまざまな形式のデータに対応できます。 P L O T I Tマクロは、 D A T Aス テップと P L O Tプロシジャ・ P R I N T T Oプロシジャ・ G 釧N Oプロシジャを含む複数のプロシ ジャを使用します。 P L O T I Tマクロは、 4500行を越える長さのため、ここに載せるこ とはできません。このマクロについての説明などは、マクロの最初のコメント行に全て記 述されています。 L O T I Tマクロの主な機能を紹 本論文では、いくつかの例題を通じて、 P 介します。 2. PLOTITマクロの概観 P L O T I Tマクロは、次のステップを実行します。 1.入力データを読み込み、その前処理を行います。前処理済みデータセットは、軸変数、 ポイントシンボル変数、ポイントラベル変数、シンボ、ル、ラベルタイプ、サイズ、フォ ント、カラーなどの情報を含みます。前処理の内容は、入力データセットを生成するデ ータ解析の種類に依存します。例えば、オプションの D A T A T Y P E = M D P R E Fが多次元選好分 R O CP R I N Q U A L より作成された入力データセットに対して指定された場合 析のための P L O T I T マクロは、 には、 P T Y P E= ' S C O R E ' のオブザベーションに対して青い点と、 T Y P E= ' C O R R 'のオブザベーションに対しては、赤のベクトルを描きます。 2 .D A T AS t e pG r a p h i c sI n t e r f a c e を用いる D A T Aステップでは、グラフイカルプロット の大きさを決定します。 3 .P R O CP L O Tでは、ラベルの位置をどこにするかを決定します。前処理済みデータセット P R O CP R I N T T Oにより、あるファイルに転迭されます。いくつ かのラベル文字が重なって隠れている場合、デフォルトで P L O T I Tマクロは、 L I N E S I Z E とP A G E S I Z Eを大きくしてプリンタプロットを作成します。この働きにより、ラベノレの のプリンタプロットは、 ために十分なセルとスペースが確保されます。 4 . プリンタ出力が読み込まれ、その情報と前処理済みデータセットを 1つにまとめて、 A n n o t a t eデータセットを作成されます。ラベルの位置の情報は、 P R O CP L O Tの出力から 読み込まれます。そしてシンボル、サイズ、フォント、色に関するすべての情報は、前 処理済みデータセットから抽出されます。 A n n o t a t eデータセットは軸、刻み、目盛り、 タイトル、ポイントシンボル、ポイントラベル、軸ラベルなどを描くための情報を全て 持っています。 n n o t a t eデータセットは、 5 .A G A N N Oプロシジャで表示されます。 P R O CG P L O Tを使用しません。 ‑ 3 7 4一 P L O T I Tマクロは、

374.

図 lの「単純集計グラフ」のアイコンをクリックすると、図 2の画面に移る。最初は右 側に分析中データの全変数のラベルが一覧になったリストボックスが現れる。ここで集計 したい変数を選択すると、左側に度数分布グラフが出力される。 個々のカテゴリの件数を確認したい場合は、グラフのパーをマウスでクリックすること によってパーの色が変化し(図 2はカラーではないので様子がわからないが)、下の行に 度数と比率を表示する。 図 2 単純集計グラフの出力画面 図 3は 、 「クロス集計」を選択した画面である。[EXCEL出力]のアイコンは最初は見 えない。現在のデータに含まれる全変数のラベルが左右 2つのリストボックスに表示され るので、表頭・表側にする変数を l個ずつ選択して、 [実行]ボタンをクリックすると OUTPUTウインドウに FREQプロシジャの出力が表示される。 ENDコマンドで AFに戻 ると、今度は [EXCEL出力]のアイコンが現れており、 EXCELによる作業に移ることも できる。このアイコンを押すと EXCELが起動し、 FREQの出力を EXCELのシートにう まく適合するように加工をしたうえで EXCELに渡す。セル内の統計量やテキストを切り 出して、 EXCELのセルに対応させているのである。 ‑365一

375.

ここではリストボックスによる指定方法を採用したが、クロス表の集計計画の形式とし てよく知られているものに、調査項目を表側と表頭にすべて配置したマトリックスを作り、 クロス集計したい組にチェックする「集計計画表 j がある。この方法は質問項目が少なけ れば一覧性があって便利だが、通常の規模の調査ではラベルも含めて「計画表」の形式で 表示するだけのスペースが不足するので、見送った。 図 3 FREQの出力画面から戻って EXCEL出力のアイコンが出た画面 2. セグメンテーション マーケティング・リサーチでは特殊なセグメントに対する調査結果を意思決定に使うこ とがある。代表性よりも特殊性、全体的よりも部分的な調査で問題を解決できると調査の 利用者が判断すれば、ランダム・サンプリングにこだわらない。 大規模なパネル調査やモニター調査をした「マスターサンプル」を SASデータセットで データベース化しておけば、ここからセグメントを抽出できる。 i サンプノレ」を「顧客 j に置き換えれば顧客データベースとなる。 抽出条件に使う項目は、基本属性や感性、行動、意識、噌好などの観測変数を用意する ‑366‑

376.

が、多変量解析で得た分類変数を使うこともできるだろう。 図 4は条件抽出の画面である。左のリストボックスに、現在のデータに含まれる全変数 のラベルが表示される。抽出したい変数を選択すると、その変数がもっ値(カテゴリー) のフォーマットが右の拡張テーブルに表示される。カテゴリーの選択が終わると、 [実行] ボタンを押すことによってデータが絞られ、抽出した件数が表示される。 図 4 条件抽出の画面(すべて OR条件の場合) [AND条件による抽出]と、 このシステムでは、抽出の条件によって、 [OR条件によ る抽出]を独立した画面に分けた。条件文をユーザーに書かせる(あるいはそれに近し、) と複雑な条件設定ができるが、操作は難しくなる。 3 . パソコン・インタビュー 面接法や郵送法では実査とデータ入力は別の作業であった。電話調査、 F A X調査、パ ソコン通信を利用した調査では実査とデータ入力は同時に進行する。 しかし面接法や会場テストでも調査内容によってはパソコン画面で調査を進めることが できる。実査・即時入力の機能だけでなく、分岐質問への確実なジャンプ、回答直後のエ r 円 ‑ η苛U b ハ

377.

ラーチェックなどを設計できる。 、 SAST e c h n i c a lR e p o r tの C o n j o i n tA n a l y s i sExamples" にある Example4 図 5は S p a g h e t t iSauce のデータを SAS/AFの FRAMEエントリを使ったパソコン・インタビュ ー形式で収集しようとし、うものである。 質問文は OPTEXプ口、ン、ジャによる実験計画に基づいて、属性・水準の組み合わせをテ キス卜として生成する。(コンセプ卜画像も生成すれば素晴らしいのだが!) 。 回答者は 1人ずつ違う乱数の順番で画面を提示され、購買意欲の度合をスライダーで答 ) 。質問が終わると同時に 1人分のデータが SASデータセットに格納される。 える(図 6 C o n j o i n tAna l y s i sE x a m p l e s η では FSEDITプ口、ン、ジャを使ってデータ収集をする例 が示されているのだが、 FSEDITでは数字キーを入力しなければならない。また、回答者 はオブザベーションの反復 (FORWARD,BACKWARD PAGEUP ,.PAGEDOWN) や 終了 (END) の操作を覚える必要もある。さらに回答者ごとに FSEDITを実行しなければ ならないことも、実査管理のうえでは面倒なことである。 AFなら画面が美しく、スライダーで回答できる。次の質問へも「了解」ボタンをクリッ クするだけで進める。 SASの知識のない回答者にも、視覚的で自然な入力ができる。 議慈雲:~ i 議護普通選当選 ファイル w オプション ω ウィン F ゥω へ J レブ凶 図 5 コンジョイン卜分析を開始する画面 ‑368‑

378.

図 6 コンセプトに対する購買意向をスライダーで回答する画面 4 . システム開発上の諸問題 SAS/AFの FRAMEエントリ機能を使った開発の感想をまとめる。 1 . 複雑な条件指定を簡単なメニュー方式に設計するのは難しい。 AND条件と OR条件の F文を記述す 組み合わせを自由に指定できるようにしたかったが、自由度を高めると I る状態に近くなってしまう。従って、 AND条件か OR条件のどちらかのネストに限定 してサブセットを再利用するとか、 n個の条件設定をプールしておいて m 個以上の一 致があれば抽出するーーなどの制約を考えざるを得なかった。 2 . AFから EXCELを起動して、作業を EXCELに移行したいのに、 EXCEL起動直後に SASに戻ってしまう。また、戻らない場合もありプログラムで制御できないようであ UTOEXEC.SASで必要なファイルを割り当ててから SAS る。現象的には、例えば A 起動と同時に AFアプリケーションを起動する環境にすると、 E XCEL起動直後に AF に戻ってしまう。 DMS画面からファイル割り当てをして A Fを起動すると、 EXCEL ρb q d q a

379.

にとどまる。正確な理由は分からない。 3 . EXCELを終了させないまま、 SASに戻って、再び EXCEL起動ボタンを押すと複数 の EXCELが起動してしまう。そうしたい場合もあるが、無意識に続けるとメモリ不 足になる。起動アプリケーションを監視するオプションが欲しい。 4 . プロシジャの出力結果は OUTPUTウインドウに表示せざるを得ないようだが、 AFの メニュ一体系の中にいて、いったん DMS ウインドウに行ってしまうと、アイコンや ボタンで制御できなくなってしまう。突然、 SASコマンドや PMENUが必要なウイン ドワを見せるのは、 「不自然な」インターフェースである。プロシジャの出力結果を FRAMEに表示する機能が欲しい。 5 . AFアプリケーションを SASを意識することなく Windowsのアイコンの 1っとして 起動したいのだが、 AUTOEXEC.SASの中の D Mステートメントで AFコマンドを発 行すると画面の色や位置がずれてしまう。やむをえず DMSワインドワから PFキーで 起動したが、スマートではない。 6 開発機と運用機の画面サイズが異なると、アイコンやボタンの位置を修正して再コン パイルしなければならない。たいへん面倒に感じた。 7 . CALL DISPLAYステートメントを使って画面の往来を頻繁に続けると、 20メガ程 度のメモリがあっても、数時間も作業するとメモリ不足となりハングアップしてしま う 。 GOTOステートメントを使うと画面はメモリに残らないが、画面間を往来する機 能も使えない。設計に工夫が必要であった。 8 . アプリケーションを終了すると、作業中に展開したすべての画面が再現してしまう。 2時間程度の作業で 8 0 " ‑ ' 9 0個の画面を展開した場合、終了するまでに 90秒程度かか った。起動時間よりも遅い。即座に終了したい。 9 . SCL変数に変数名などの文字列を格納することが多いのだが、 SCL変数の最大長が 200バイトしかないため、すぐに限界に達してしまう。プログラミングに工夫が必要 であった。 1 0 . グラフオブジェクトで度数分布表を作成できるのは便利だが、マーケティング・リサ S Q )がある。クロス集計用語でいう「フィルター」が必 ーチでは、いわゆる分岐質問 ( 要になるのだが、グラフオブ ジェクトにはその機能がないため、分母は常に全回答者 P ‑370一

380.

数になるとし、う不都合がある。 11.クロス集計には FREQプロシジャだ、けを使った。本格的なクロス集計表を作る機能は ないのだが、体裁よりも指定が簡単であることを重視した。 SASでクロス集計をする なら TABULATEプロシジャを使えばよさそうだが、これが汎用的なクロス集計プロ グラムとは異なっている。マーケテイング・リサーチなどにおけるアンケート調査に σ は複数回答 ilA)があるのが特徴だが、 TABULATE は当然のことながら完全に SAS のプロシジャの性格を持っていて「変数」で表側比表頭を指定する形式で一貫してい る 。 M A も含めて一般的なクロス集計の指定方法を考えてみると、 M Aに関しては内 部的に配列を定義するようなマクロが必要になる。ラベルやフォーマットの自動的な テキスト加工も必要である。いずれにせよ SASで本格的なクロス集計システムを開発 するのは手聞がかかるので、利用目的に照らして FREQで十分とした。 1 2 . パスワードは LISTエントリを作成して有効値を登録している。したがって変更の際 には、 LISTVALUEウインドウで値を変更して再コンパイルしなければな与ない。セ キュリティーの面では問題がないのだが、それほどセキュリティーを必要としない場 合のために、パスワードを記述した外部ファイルを参照して管理する機能が欲しい。 1 3 . すべての変数にラベルとフォーマットを作成し、拡張テーブルでもフォーマットのみ が表示されるようにしている。値が希望の順番で表示されるよう考慮したフォーマッ トを作成する必要があり面倒だ、った。無回答(欠損値)を最後に表示したければ最大 値にするように変更したり、 FREQの出力にうまくテキストが出るように半角と全角 を組み合わせるなど職人芸のような作業になった。カタカナ半角のヲがアの前にソー トされるなどの予想外のハプニングもあった。 1 4 . コンジョイント分析におけるデータ収集の例をあげたが、実際には予算という難しい 問題がある。コンジョイント分析の回答は時聞がかかるので会場テストなどによる小 0台ほどのノートパソコンをレンタルして調査 サンプル調査が多いが、それにしても 1 にのぞむだろう。 1回の調査実施のために SASを 1 0セットも契約する予算はないこ とが多い。 1 5 . データ収集のアプリケーションでは可搬性が重要である。特に質問紙調査に代わって パソコン・インタビューをするとなると、コンパイルした独立実行型のプログラムと して扱いたい。 AFはコンパイルできるが Baseは必要である。もしも SASシステム の機能の 1っとして「データエントリー」を実用的水準に高めたいのなら、 AFや FSP に関してはコンパイル結果を独立実行型ファイルにできる機能が望まれる。 ηf よ ー q u

381.

おわりに SAS/AFのプログラミング i こはまだ精通しているとはいえないので、開発段階で直面し た問題点には解決方法があるかも知れない。ただし、 SAS/AFに柔軟性があるといっても 細部まで完全に満足のいくようなシステムを作るには、やはり時間をかけた工夫が必要で ある。 たとえばデータの定義にしても、パッケージ化を目指す隈り、いつも違う形式のデータ を統一的な手順で処理する定義方法を考える必要性を感じている。 マーケテイング・パッケージとしてはまだ試行錯誤の中にいるので、具体的なケースへ の対応を重ねながら検討を進めていきたい。 ※ Windowsは米国 M i c r o s o f tC o r p o r a t i o nの登録商標です. ※ E x c e lは米国 M i c r o s o f tc o r p o r a t i o nの登録商標です. η4 勾 t η δ

382.

日本 S A Sユーザー会 (SUG I‑J) マーケティング情報のビジュアル化テクニック ‑PLOTITマクロの紹介一 Warren F . Kuhfeld 翻訳:奥山真一郎 (SAS Institute ]apan) SAS Institute I n c . Graphical Scatter Plots of Labeled Points Warren F . Kuhfeld SAS Institute I n c . SAS Campus Drive, Cary, NC 27513 USA 要旨 SAS/STAT ソフトウェアのサンプルライブラリにある PLOTIT (plot iteratively) マクロ の使用法を紹介します。このマクロにより、 M D S ・選好多重回帰・対応分析などの解析 結果を、容易にビジュアル化することが可能です。曲線・ベクトル・円などを描くことは もちろん、プロット点の色・サイズ・フォントなど、グラフ全体の見栄えを整えることが できます。 PLOTITマクロは、 SAS/STAT ソフトウェアのサンプルライブラリの中にありま す 。 キーワード: PLOTIT,SAS/STAT,SAS/GRAPH,マーケットリサーチ 1.はじめに S A Sシステムはこれまで、散布図作成の機能(例えば PLOT プロシジャや GPLOT プロ シジャ)を提供してきました。ある変数の値で、ラベルをつけた各点を散布図中に表現する ことは、さまざまなデータ解析においてたいへん有効です。しかしながら最近まで、その ための十分な方法がありませんでした。 GPLOT プ口、ンジャはグラフイカルな散布図を作成します。その際、 Annotate 機能を併用 することにより、長いラベルをつけることもできます。しかし、それらのラベルを最適な 位置につける、自動的な機能はいままでありませんでした。 PLOT プロシジャで散布図中 で長いラベルを最適な位置につける機能は、 M V S、 C M S、 V M S版 S A Sシステムリ .0 7 以降のリリースで利用可能になりました。そのアル リース 6.07、その他の O Sでも 6 ゴリズムは、 Kuhfeld( 1991)によって開発されたものです。また、この新しい PROC PLOT の各オプションについては、 SASTechnical Report P‑222,Changes and Enhancements to Base SAS Software と SAS Technical Report P‑229,SAS/STAT Software: Changes and Enhancements に記載されています。ここでは PROCPLOT がグラフイカルな散布図を直接 f ヴ η η ︒ ︒

383.

作成できないことに注意してください。 A S / S T A Tマクロ、 P L O T I T( p l o ti t e r a t i v巴l y ) はラベルつきのグラフイ 今回の新しい S カルな散布図を作成します。このマクロを使用することにより、曲線をフィットさせたり、 ベクトルや円を描くことができます。たくさんのオプションがありますが、その中のごく 1部を用いることで、さまざまな形式のデータに対応できます。 P L O T I Tマクロは、 D A T Aス テップと P L O Tプロシジャ・ P R I N T T Oプロ、ンジャ・ G A N N Oプロシジャを含む複数のプロシ ジャを使用します。 P L O T I Tマクロは、 4500行を越える長さのため、ここに載せるこ とはできません。このマクロについての説明などは、マクロの最初のコメント行に全て記 述されています。 L O T I Tマクロの主な機能を紹 本論文では、いくつかの例題を通じて、 P 介します。 2. PLOTITマクロの概観 P L O T I Tマクロは、次のステップを実行します。 1.入力データを読み込み、その前処理を行います。前処理済みデータセットは、軸変数、 ポイントシンボル変数、ポイントラベル変数、シンボル、ラベルタイプ、サイズ、フォ ント、カラーなどの情報を含みます。前処理の内容は、入力データセットを生成するデ ータ解析の種類に依存します。例えば、オプションの D A T A T Y P E = M D P R E Fが多次元選好分 R O CP R I N Q U A L より作成された入力データセットに対して指定された場合 析のための P には、 P L O T I T マクロは、一T Y P E ̲ = ' S C O R E ' のオブザベーションに対して青い点と、 T Y P E= ' C O R R 'のオブザベーションに対しては、赤のベクトルを描きます。 2 .D A T AS t e pG r a p h i c sI n t e r f a c e を用いる D A T Aステップでは、グラフイカルプロット の大きさを決定します。 3 .P R O CP L O Tでは、ラベルの位置をどこにするかを決定します。前処理済みデータセット のプリンタプロットは、 P R O CP R I N T T Oにより、あるファイルに転送されます。いくつ かのラベル文字が重なって隠れている場合、デフォルトで P L O T I Tマクロは、 L I N E S I Z E とP A G E S I Z Eを大きくしてプリンタプロットを作成します。この働きにより、ラベルの ために十分なセルとスペースが確保されます。 4 . プリンタ出力が読み込まれ、その情報と前処理済みデータセットを 1つにまとめて、 A n n o t a t eデータセットを作成されます。ラベルの位置の情報は、 P R O CP L O Tの出力から 読み込まれます。そしてシンボル、サイズ、フォント、色に関するすべての情報は、前 処理済みデータセットから抽出されます。 A n n o t a t eデータセットは軸、刻み、目盛り、 タイトル、ポイントシンボル、ポイントラベル、軸ラベルなどを描くための情報を全て 持っています。 5 .A n n o t a t eデータセットは、 G 刷N Oプロシジャで表示されます。 P R O CG P L O Tを使用しません。 ‑ 3 7 4 P L O T I Tマクロは、

384.

PLOTIT マクロにより、 .プロットを表示し、グラフイカルストリームファイルと G OUT=エントリを作成すること ができます 0 .対応分析、多次元選好解析、多次元尺度構成法、回帰分析の結果を簡単にグラフ表現す ることができます。 ・ 1文字の、あるいは文字列によるシンボルが使用できます。またそれらの色・フォント・ サイズを調節できます。 ・文字列によるラベルの使用およびそれらの色・フォント・サイズの調節が可能です。 .特定の色・変数で指定される色・ランダムな色などを自由に指定することができます。 第 3次元における変化をそういった色で表現することができます。 ・自動的に良いラインサイズ・ページサイズ・ラベル位置のリストを決定します 0 ・どのようなデ パイスに対しでも自動的に等価な軸を描きます。 ・色・サイズ・フォントなどプロットの全体的な表示に関する全ての側面を調節できます 0 ・データの前処理や後処理ができます。 OPTIONS の指定ができます。 .たくさんの G PLOTIT はマクロなので、デフォルトの変更や新規のオプション追加など、改良すること ができます。 PLOTIT マクロには、改良しやすいように多くのコメントが含まれています。 また、期待する結果が得られなかったときのデバッグのために、エラーチェック機能と中 間結果をプリントするオプションがあります。さらに、前処理済みの入力データセットや Annotate データセットを含む、マクロが生成するすべてのデータセットへのアクセスが可 能です。 Annotate データセットや前処理済みデータセットを編集することにより、結果を 変更することもできます。 3. 使用例 ここでは、 PLOT口マクロの機能を用いたいくつかの例を紹介します。ここでは、プロット の解釈や統計解析の詳細の議論をすることではなくて、 PLOTIT マクロにより何ができるか を紹介することに焦点をあてています。その生データや詳細について参照できるようにこ ,V e r s i o n6 ,F ourth Edition にも こで紹介するほとんどの例は、 SAS/STATUser包 Guide とづいています。但し、いくつかの例では、全て大文字の変数値を大文字小文字を交えた 値で置き換えられていたり、新しい変数が追加されたりしています。 ヴt ηぺU RU

385.

例 1 :晴乳類の歯に関する主成分分析 主成分分析は、データに対する低い次元での近似を計算します。そして主成分は、通常グ s e r ' sGuidep .6 0 1 の噛乳類の歯に関す ラフイカルに表現されます。この例は、 SAS/STATU るデータセットにもとづくものです。 p r o cp r i n c o m pd a t a = t巴巴 t h o u t = s c o r巴s ( k巴巴 p = p r i n 1p r i n 2m a m m a l ) ; r i n c i p a lC o m p o n巴n t so fM a m m a l s 'T巴巴 t h ・ 2 ; t i t l巴 P r u n, 見p l o t i t ( ) プロットは、図 1になります。 P L O T I Tマクロには、オプションを何も指定していない ので、デフォルトにより、最後に作成されたデータセットのはじめの 2つの数値変数と終 わりの文字変数からプロットが描かれます。 P L O T I Tマクロはログに SAS L O G1に示され るような情報をプリントします。 OSAS LOG1 l t e r a t i v eS c a t t e r p 1 0 to fL a b e 1 e dP o i n t sMacro l t e r a t i o n P 1 a c e L i n eS i z e PageS i z e 1 2 2 3 65 80 45 5 0 P e n a 1 t y 3 4 0 : Thef o l l o w i n gc o d ew i l lc r e a t β t h ep r i n t e rp 1 ot o p t i o n snonumberf o r m d 1 i m = ', l s = 8 0p s = 5 0 ; … 1 +1 ‑ ‑ ‑ 'data=pr e p r o cvωh=2; p r o cp 1 0 tn o 1 e g e n df o r m c h a r = '1 l ̲/ p1otPRIN2大 PRIN1$MAMMAL=̲symbo h a x i s = b y1v a x i s = b y1box1 i s t = 1 p 1 a c e m e n t = (( h =2‑ 2: s ニr i g h t1 e f t )( v = lt o2bya 1 t*h=O 1to 1 0 bya 1 t ) ) ; r u n ;q m t ; ・ ・ Thep 1 0 twasc r e a t e dw i t ht h ef o l l o w i n gg o p t i o n s : l 1 .3 7v p o s = 3 4 . 7 4h s i z e =1 O . 42 i n g o p t i o n sr e s e t = g o p t i o n se r a s ehpos=1 v s i z e = 6 . 5 0 i nd e v i c e = x c o 1 o rc b a c k = b 1 a c k : n o t a t ed a t as e thas1 4 9o b s e r v a t i o n s . TheOUT=annoAn ThePLOTITmacroused4 2 . 0s e c o n d st oc r e a t eOUT=anno. ‑376‑

386.

I te r a t i o nT a b l eは 、 P L O T I Tマクロがプロットを作成するのにラインサイズ 6 5~ 8 0 の 2回試したことを示しています。そして、すべてのラベル文字がペナルティー 1 0 でプ L O T I Tマクロは、 ロットされたときにマクロは終了しています。また P グラフイカルプロ ットのもととなるプリンタプロットのための P R O CP L O T のコードを表示します。 P R O C G 釧N Oで使用される G O P T I O N S ステートメントも表示します。 z 以下では、図 1のプロットにおけるいくつかのすぐれた機能をまとめます。 . E lk ~ R e i n d e e r のように、いくつかの点は同じ位置にプロットされています。 P L O T I T マクロは、デフォルトでそれらの点を若干ずらして表示します。これにより、同じ位置に 点が複数あることが明確になります。 R O CP L O Tで作るプリンタープロットのように非連続的な座標 ‑打点のラベルの位置は P L O T I Tマクロでは、プリンタープロットとは異なり、プロポーシ に置かれます。しかし、 P ョナルフォントが利用できます。 .シンボルは固定されたセノレにより制限を受けません。 点の位置と皮標値との対応は本 質的に連続していて、 P R O CP L O T よりも P R O CG P L O T に近いものです。 ‑ある距離は、縦軸・横軸両方に関して等しいデータの範囲を示しています。すなわち、 距離や角度が意味を持つように 2つの軸は等しいスケールになっていることを意味します。 これに対し、 P L O Tや G P L O Tでは、 (デフォルトでは)利用可能な空間を全て埋めようと するので 2つの軸は等しいスケーリングになっていません。 l ペナノレティーは、ラベルが最適な位置にプロットされない時に生じます。 PROC PLOT は、全てのラベルについてのペナルティーを最小化するようにプロットします。 e c h n i c a lReportP‑222 を参照してください。 詳しくは、 SAST 2 これは、デフォルトのデバイスと色を用いるための GOPTIONSステートメントです。 本論文に掲載されているプロットを出力する場合には、このグラフがカタログに転送さ ,YMAX=9.12,MAKEFIT=O.9,GOUT=GC.FIGURES, れる際、オプションの MAX=7 GOPPLOT ニD EVICE=XCOLORBACK= 羽在HTE ,COLOR=BLACKが LOG に追力日表 示されます。 η 可 f ηf ︒

387.

例 2 :犯罪率の主成分分析 典型的なプロットでは、各点に対して 1文字のシンボルと文字列のラベルの両方がありま す。しかし、必ずしもそうしなければならないということではありません。この例は、 S A S / S T A TU s e r ' sG u i d ep .1 2 5 4にある米国犯罪率データセットに基づいています。ポイン トラベルは、州、│の名前で、それそれのラベノレのシンボルは 2文字の郵便コードになってい ます。 proc princomp data=crime o u t = c r i m e ; t i t l e Crime Rates Per 1 0 0, 000Population b yS t a t e " r u n ; 先p lotit(data=crime,plotvars=prin2p r i n 1, symvar=postcode,symlen=2,symsize=0.6, paint=larceny,l a b巴l v a r ニs t a t e,l a b e l = t y p i c a l ) プロットは図 2になります。このマクロでは、次のことを指定しています。 ‑ 入 力 デ ー タ セ ッ ト : CRIME • x軸の変数と Y軸の変数: PRIN1 と PRIN2 . シ ン ボ ル 変 数 : POSTCODE .シンボル文字の長さ: 2 .プロットのシンボルフォントサイズ: 0.6 ・ 色 付 け の た め の 変 数 : LARCENY . ポ イ ン ト ラ ベ ル 変 数 : STATE .プロット軸の変数ラベルを生成する一般的方法 シンボルサイズには通常の1.0の代わりに 0.6が使用されています。これは、通常 1文 字のところに 2文字をマッピングをしなければならなし、からです。 PAINT=LARCENYにより、 補間されるラベルやシンボルの色が決まります。デフォルトでは、青・マゼ、ンタ(深紅色) 赤のグラデーションになっています。よって、窃盗の発生率が低い州は青で、高し ψ卜│は赤 で表示されています。変数 PRIN2 と P R I N 1 に対する LABEL=TYPICALは、次の LABEL ス テートメントを生成します。 LABEL P R I N 2 = ' D i m e n s i o n2 'P R I N 1 = ' D i m e n s i o n1 ' ; このプロット指定は、その他の指定よりもはるかに複雑です。たいていの場合は、データ セットを作成した解析の種類を指定するのみです。 ‑378‑

388.

例 3&4:所有する草に関する調査の対応分析 対応分析により、クロス集計表をグラフイカルに表現することができます。ここでの例は、 S A S / S T A TU s e r ' sG u i d ep .653 の車に関する調査データです。対応分析を実行するには次の プログラムを記述します。 p r o cc o r r e s pd a t a = c a r so u t c = c o o r s ; t i t l e' C a rO w n e r sa n dC a rO r i g i n ' ; r i g i n ; t a b l e sm a r i t a l, o r u n ; 見p l o t i t ( d a t a = c o o r s,d a t a t y p e = c o r r e s p ) プロットは、図 3f こなります。 D A T A T Y P E = C O R R E S P により P L O T I T マクロは、自動的に i n e r t i a3 の大きさを軸のラベルとして組み込み、行の得点を赤で、列の得点を青でプロッ トします。 多重対応分析を実行するには、次のようになります。 またプロットは、図 4になります。 p r o cc o r r e s pm c ao b s e r v e dd a t a = c a r so u t c ニc o o r s ; t i t l e' M C Ao fC a rO w n e r sa n dC a rO r i g i n ' ; t a b l e so r i g i ns i z et y p ei n c o m eh o m em a r i t a ls e x ; r u n, 見p l o t i t ( d a t a = c o o r s,d a t a t y p e = π l c a ) 例 5&6:余暇活動に関する多次元選好分析 多次元選好分析は、人と物に対する人々の選好とを同時に示すとしづ、主成分分析の l種 です。それぞれの被験者は、入力データセットの lつの変数になり、それぞれの対象とな る物はオブザベーションとして行になります。各被験者は、それぞれが、最も好む物へ向 かうベクトルとしてプロット中に表示されます。ここでの例は、余暇活動に関する選好の データセット 4を用います。多次元選好分析を実行するには、次のプログラムを記述します。 3 I n e r t i a とは、主成分分析における分散に相当します。 4 このデータセットは、現在どの出版物にも載っていませんが、リリース ルライブラリのマクロの中には、掲載されています。詳しくは、 用するために」の項を参照してください。 ‑379 6 . 1 0 のサンプ iPLOTITマクロを使

389.

p r o cp r i n q u a 1c o rd a t a = r e c r e a t eo u t = r e cs c o r es t dr e p ; t r a n s f o r mi d e n t i t y ( s u b l ‑ s u b 5 6 ) ; i da c t i v i t y ; r u n, t i t 1巴 ' M u 1 t i d i m巴n s i o n a 1P r e f e r e n c eA n a 1 y s i so f ' ' R e c r e a t i o n a 1A c t i v i t i e s ' ; a t a t y p e = m d p r e f3 ) % p 1 o t i t ( d a t a = r e c,d プロットは図 5になります。 D A T A T Y P E = M D P R E F により、 P L O T I Tマクロが、ベクトルとし て被験者の情報を、そして点として活動に関する情報(変数一T Y P E ̲に基づく)を自動的 に表示します。 M D P R E Fの後の 3は、ベクトルのスケーリングファクターです。全てのベ クトルの長さは、グラフ表示を見やすくするため、 3倍に長くなります。また次のように 指定することにより、ベクトルにラベルをつけることができます。 見p 1 o t i t ( d a t a = r e c,d a t a t y p巴= m d p r e f 23 ) M D P R E F ) をラベル付きのベクトルで実行するための指定です。 M D P R E F 2 は多次元選好分析 ( (2の意味は、 1 a b巴l st o o ということで、 「ラベルも J とし、う意味です。) 入力データセットでは各被験者のデータは、 S U B 1,S U B 2 といった変数であらわされている ため、それら全ての S U B5 を表示すると非常にごちゃごちゃしてしまいます。よってこの L O T I Tマクロの中で直接 プロットでは、その表示は行われません。しかし以下のように P S U B を取り除くための前処理が可能です。 % p 1 o t i t ( d a t ar巴c ,d a t a t y p巴ニ m d p r巴f 23 , a d j u s t l = % s t r ( i f̲ t y p e ̲ = ' C O R R 't h巴na c t i v i t y = s u b s t r ( a c t i v i t y,4 ); ) ) 二 このプロットは、図 6になります。 A D J U STlオプションは D A T Aステップステートメント をデータ解析のステップの終わりに付け加えます。デフォルトでは、 P L O T I Tマクロは、ベ クトルのラベルをベクトルの原点と先端の間ではなく、外側に表示します。 5 データセット中の最後の文字変数であるため、デフォルトのラベル変数は、 ID ステート メントで指定された ACTIVITY になります。 PROCPRINQUALは、変数 ACTIVITY の ̲TYFE̲ ='CORR' のオプザベーション(ベクトルとしてプロットされる被験者に関す るオプザベーション)に SUBl‑SUB56 という変数名を割り当てます。 ‑380一

390.

例 7&8:自動車に関する選好布置 選好布置とは、物とそれらのものの属性とを同時に表示をするものです。ここでの例は、 S A S / S T A TU s e r包 G u i d ep .1 6 0 5 の自動車に関する選好データセットを用いたものです。 次にあるプログラムは、選好布置ベクトルモデルのあてはめを行うものです。 t i t 1巴 , Pr巴ferenceRatings forA u t o m o b i 1 e s ' , Manufactur巴di n1 9 8 0 '; 1 *Compute Coordinates for a2‑Dimensiona1 1 *Scatterp10t ofCars proc prinqua1 d a t aニcarpref out=pr巴su1ts(drop=judgel‑judge25) n=2 r巴p1ac巴 standards c o r巴s ; i d mod巴1mpgreliab1巴 rid巴; transform ide(judgel‑judg巴2 5 ); run, * 1 * 1 1 *Comput巴 Endpointsfor Vectors * 1 p r o c transreg data=presu1ts; model ide(mpgre1iab1e)=identity(prinl p r i n 2 ) ; output tstandard=c巴ntercoefficients rep1ace out=vector; i dm o d e 1 ; title2 ' P r巴ferenceMapping ( P R E F M A P ) Ana1ysis'; run, 見p 1otit(data=vector, datatype=v巴c t o r2 .5 ) プロットは、図 7になります。各属性は、その属性について比較的大きな値をもっ対象の 方向を、だいたい示すようなベクトルとして表示されています。 DATATYPE=VECTOR2 .5 と いうオプション指定は、 2.5倍にベクトルを引き伸ばすベクトルモデルを実行します。あ るいは、次のような指定により、点で属性を表示することができます。 1 *Compute Ideal Point Coordinat巴s proc transreg data=pr巴s u 1 t s ; mod巴1i d巴 ( r i d巴)=point(prinlp r i n 2 ) ; output tstandard=cent巴rcoordinat巴sr巴p1aceout=idea1; i dm o d e 1 ; t i t 1巴2'Pr巴ferenc巴 Mapping, I d e a 1 Point M o d e 1 '; run, 話p 1otit(data=id巴a 1, datatyp巴=idea1,antiid巴a = l ) 381‑ * 1

391.

プロットは図 8になります。 DATATYPE=IDEAL は、各属性を理想点で表示する選好布置を 出力するための指定です。 それぞれの円は、各自動車と各理想点との聞の距離を示すように描かれています。 ANTIIDEA=l オプションは、反理想点がどのように認識されるかを指定するものです。 6 こ の円は、その属性についての理想的な程度が等しい仮説的な車の位置を示しています。デ フォルトでは、属性のラベルは他のラベルよりも長くなりますので、ときどきプロット点 を越えてしまうことがあります。図 8の 、 " M il e sp e rg a l l o n " がそれにあたります。この ようなときは、次のようなオプションを加えることにより、 1バイト分上に、 12バイト 分左にラベルを動かすことができます。 a d j u s t 4 =見s t r ( i ft e x t = : ' M i l e s 't h e nd o ; y = y + l ;x ニx ‑ 1 2 ;e n d ; ) この ADJUST4 オプションは、最後の ANNOTATEDATA ステップに、 DATA ステップを加えま す 。 PLOTIT マクロの中には、美学的センスは含まれておりませんので、最終的なプロッ トを作成するためには、多少人工的に手を加える必要があるかもしれません。 例 9&10:出生率と死亡率の曲線のあてはめ しばしば、回帰直績や非線形回帰曲線と共に各点をプロッ卜することは有効です。 PLOTIT マクロは直線や曲締をあてはめ、表示することが可能です。(オプションで、回帰パラメー .577 タと分散分析表を出力することが可能です。)ここでの例は、 SAS/STATU s e r ' sGuidep の死亡率と出生率の統計データセットを用いた、 3次の多項回帰を実行します。 t i t l e' C r u d eD e a t hR a t ea s aF u n c t i o n ' ~f C r u d eB i r t h Rat~; 覧p l o t it( d a t a = v it a l,v t o h =l .7 5,d a t a t y p e = c u r v e 2 ) プロットは、図 9になります。 VTOH=l .75 は 、 ています。デフォノレトは 2.0 になります。 PROC PLOT の横軸と縦軸の割合を指定し 小さい値を指定すると、ラベル文字はより大 きなセルをとってプロットします。これは、プロット点が密集しているような場合に、大 変有効です。 DATATYPE=CURVE2 は 、 6 PLOTIT マクロに曲線と各点のラベルをその曲線を避 反理想、点は符号が間違っているため、プロット前にマクロでは、それらの符号を反対に する必要があります。数値が小さいほど評価が高い場合には、 ANTIIDEA= ・1を、数値 が小さいほど評価が低い場合は、 ANTIIDEA=l を指定します。 ‑382‑

392.

けて表示するように指示するものです。 また、曲線の種類を指定することも可能です。 PLOTITマクロは、曲線のあてはめに PROC TR 釧S REG を使用していますので、 PROCTRANSREGのオプションを指定することができます。 例えば、節点が 2つの単調スプライン回帰を実行するには、以下のように指定します。 先p lotit(data=vital,datatype=curve,bright=128,maxiter=4, k n o t s = 2 ) symbar=country, regfun=mspline, n プロットは図 10になります。図 9と図 10では、回帰組以外にいくつかの違いがありま す。図 10では、 DATATYPE=CURVE2ではなく、 CURVEが指定されていますので、各点のラ ベルと曲線がよりオーバーラップしています。各点のプロットシンボ、ルには、国名のはじ めの文字が使われています。それぞれのシンボルとラベルの組み合わせは、ランダムな色 と 1 2 8 の明るさ (RGBの平均)で表示されます。これらのオプションにより、それぞれ ラベルと対応するシンボルを簡単に見つけることができます。また、セルの数を減らし、 ラベルをより長くするために V T O Hのデフォルトは 2になっています。このデータでは、 4回目の反復のとき、ペナルティー合計は 8 になっています。 MAXITER ニ4オプションに 2 5 から 1 5 0へ 増 より、 5回目の反復計算をおこないません。これにより、 LINESIZEが 1 加することはなくなります。また、ラベルを長く表示することができます。そのかわり白 の空白部分にセルが少ないため、いつかのラベルは重なり、ごちゃごちゃしているように なります。(例えば、 Germany と S ) 4 . PLOTIT マクロを使用するために PLOTITマクロは、リリース 6 .0 8以降の SAS/STATのサンプルライブラリ ( C R S P P L O T )に .1 0 より本論文で使用した例題のデータセットは全て、この あります。また、リリース 6 CRSPPLOT に入っています。 PLOTITマクロは、サンプルとして提供されているもので、 S A S Instituteからのテクニカルサポートの対象にはなりません。 PLOTITマクロを使用するには、 B a s eS A S ソフトウェアと SAS/GRAPH ソフトウェアが必要 です。 DATA=CURVE と DATATYPE=CURVE2オプションは、 SAS/STAT ソフトウェアの PROC TRANSREG を使用しています。その他の DATATYPE=オプションはすべて、 SAS/STAT ソフト ウエアのプロシジャが生成する形の入力データセットを仮定しています。新しく拡張され た PLOTITマクロは、リリース 6 .1 0から使用できます。この拡張 PLOTITマクロを使用 するには、リリース 6 .1 0の PROCP L O Tが必要になります。拡張 PLOTITマクロは、本論 文で説明、使用されてパージョンにあたります。 ‑383

393.

5 . まとめ P L O T口マクロはさまざまなデータ解析の結果をグラフイカルに表現するのに大変便利で す。たいていの場合、いくつかのオプションを指定するだけで、残りはマクロが自動的に L O T I Tマクロは、 行います。 P G P L O Tや P L O Tなどのプロシジャを置き換えません。その 代わり、通常のプロシジャでは非常に困難な多くのプロットの作成が容易にできます。 6. 参考文献 K u h f e l d, W . F .(1991), "A H e u r i s t i cP r o c e d u r eF o rL a b e lP l a c e m e n tI nS c a t t e r p l o t s . " P r e s e n t e dt ot h ej o i n tm e e t i n go ft h eP s y c h o m e t r i cS o c i e t ya n dC l a s s i f i c a t i o nS o c i e t y o fN o r t hA m e r i c a,NewB r u n s w i c k,N J :R u t g e r sU n i v e r s i t y,J u n e1 3 ‑ 1 6 . 384‑

394.

P r i n c i p a l Componentso fMammals'T e e t h T 寸 十 十 T ト qu 1 .R eindeer E l k* MooseτH Deer 2← NZ一江仏 ∞ ∞ 四l 図 寸 一 S i l v e rH a i r Bat ' f 'n Ba~ Red B a tBro 1ト e a r淋 Wolf → ‑ 木 R accoon W o l v e r i n e Marten ート R i v e rO t t e r Badger ホ 汁 WeaselF u rS e a l GreyS e a ltJaguarSeaL ion ート 林 、 SeaO t t e rネ 宇 ,1 ' 、 回 Pigmy B a t 本 H buseB a t 十 M ole j 。 ト 1 , Groundho g : 'i 同 Beaver 持 、t ,' Rabbit Porcupine HGrayS q u i r r e l ト H C_ou'ga~ E l e p h a n tSe a J" HouseMouse ‑2 ト ート 十 一5 ‑4 ‑3 十 7 ‑2 ‑1 PRIN1 0 十 2 3

395.
[beta]
Crime RatesPer100,
000 P
o
p
u
l
a
t
i
o
n byS
t
a
t
e

5
.
0

M
AMassachusetts
R
I

2
.
5

Rhode I
s
l
a
n
d
H
I H
awaii

C
TConnecticut
VermontMinnesota
D
EDelaware
N TUtah..N
JNewJ~sey
rn
WisconsinVT M
lowa I柑 iNew Ha川þsh~白shington WA Colorado~~ f>.:ZArizona
MEMaine
…
OR O
regon
N
DN
o
r
t
h DakotaMontana
N
YNewYork
NebraskaNE M
T
IndianaO
剥
<
i
t.
"
.M!chigan MIIKAlaska
C
AC
a
l
i
f
o
r
n
i
a
Wyoming
N
~n .c l
Ii
n
o
i
s
Idaho同 P
e
n
n
s
y
l
v
a
n
iaKa
nsas
M
D Maryland
NvNevada
冊a
Missouri
V
i
r
g
i
n
i
aOklahq
M
U
TXT
exas
FL F
l
o
r
i
d
a
V
A OK
WV W
estV
i
r
g
i
n
i
a
N
MNewMexico
附 トe
nnessee
Ke叫 J
c
k
y .
. ~.
~ A
f
k
a
n
s
a
s
.G
AGeorgia
N
c
N
o
r
t
hC
a
r
o
l
i
n
a
L
o
u
i
s
i
a
n
a
AlabamaAL
凶
S
CSouthC
a
r
o
l
i
n
a
げ

N C O COE

1
¥
)

的
一︒
一
﹄

ω∞白

図

;
y
r
ゅ

守

‑2.5‑

M
SM
i
s
s
i
s
s
i
p
p
i

‑5.0

→
2
.
5

ト一一一一ーー

‑5.0

‑2.5

0
.
0
Dimension1

5
.
0

7
.
5

396.

CarOwnersand CarO r i g i n 0 . 2 0. 1 木 European , 活 包 ー ミ 〉 、 句 守ーー ‑ 、 、 I れl 。 ω 。 E 0 . 0 米 E S i n g l e ド 〉 J apanese 木 M a r r i e d M a r r i e dw K ids米 Ame r i c a nド > E 。 ‑0. 1 ‑0.2 米 ‑0.2 ‑0. 1 S i n g l ew K ids 0 . 0 0 . 1 Dimension1( 9 2 . 8 4 % ) 図3 ‑387一 0 . 2

397.

MCAo fCa rOwnersand Ca rO r i g i n 2 . 0 *Large 1 .5 1 . 0 口 一 ωcoE NCO 一 X S i n g l ew K ids * American ド ヰ 0 . 5 〉 七 米 F a m i l y M a r r i e dw K i d s Wo rk x Medium>K 1Income > Rent ド 〉に 0 . 0 *S i n g l e Male *Own Female X ITill‑i ー 50 nU41 ‑ 1 . 0 *2I n c o m e . s Japanese~ x S m a l l ‑ " 'European S p o r t y *M a r r i e d 上 十 〉に ‑0.5 0 . 0 0 . 5 Dimension1 図4 ‑388 1 .0 1 .5

398.

M u l t i d i m e n s i o n a lP r e f e r e n c eAn a l y s i so fR e c r e a t i o n a lA c t i v i t i e s 3 2 ab a s k e t b a l l game w a t c h i n gspoはson b a s k e t b a l l本 l e 町 一 ω 巴 ∞ ωcoE百 NEO 1 陪 nud 中小可 mg 1wm‑m 中小 中小 本 刷 川m M sm mw 潤 s sc 中小中小 g 凡 :h d W 林 本 木 m*tm 均 3 g r gcmw l 昔 x │ 副司苫耐 FC as‑w‑一ゆ 何本 a vE 。 gbM 01 ‑ n pw ud hue 図 mphony sewing ‑2 ‑2 ‑1 。 2 Dimension1 3 4

399.

M u l t i d i m e n s i o n a lP r e f e r e n田 A n a l y s i so fR e c r e a t i o n a lA c t i v i t i e s 3 4 1 2 48 0> 申 5 NE03EE ω由 ︒ │ 図 。 ホ p i n g b i l l i a r d s r u n n l n g本 snows k i i n gs a i l i n g chess林 本 b o w l i n g *hunting 本 岡 崎t b剖l本 r a l r e a d i n g I *aerobics 本 蚊 f i s h i n g 49 h i k i n g本 本 sewlng 本 ‑2 ‑2 ‑1 g a r d e n i n g 45 。 2 Dimension1 3 4

400.

P r e f e r e n c eR a t i n g sf o rAutomobiles Manufactured i n1980 P r e f e r e n c eMapping,V e c t o r Model 3 * C o n t i n e n t a l Eldorado 2 /f‑ R i d e 41nU 口 一 ω oE NCO 一c R e l i a b i l i t y Accord 半Rabbit 中 ホC i v i c F a i r m o n t水 木 C i t a t i o n ¥ P i n t o本 木 C h e v e t t e M i l e sperg a l l o n ‑2 ‑2 。 Dimension1 図7 2 3 ーよ Qd q u

401.

P r e f e r e n c eR a t i n g sf o rAutomobiles Manufactured i n 1980 P r e f e r e n c eMapping,I d e a lP o i n t Model 3 //ヘヘ¥ 2 内n z r l + R j d f / N 1上 o c E E @ 。o 十 く i > P i n t o* ‑2 ‑2 。 Dimension1 図8 ‑392 2 3

402.
[beta]
Crude Death Rateas a F
u
n
c
t
i
o
n0
1CrudeB
i
r
t
h Rate

30

ド

吋

A
I
g
h
a
n
i
s
t
a
n

,
‑U
pperV
o
l
t
a

I
v
o
r
y Coast E
t
h
i
(
)
p
i
a
1 本
Angola'
Cameroon 木 村
Madagascar

ホ

20

N
i
g
e
r
i
a

Neoal 寸

*.
/
刈 SaudiArabia
MozambiquθY
Z
a
i
r
e"
" /Uganda
V
i
etnam 主
/ 本 ; 木 本 Sudan
オ . ~_
̲.̲
a
吋'1
1
日
n
i
a Mpr~p_c_o
I
n
d
o
n
e
s
i
a
/ / 'T‑
,‑"‑‑
T
"
A
i
g
e
巾
.戸 angla~esh

ー

(0

目玉潟@白

ー

ω
∞
ω

図

Germany. Fed Repo
f
J
'̲ G
erman Dem Rep
U
n
i
t
e
d附 nqdom
ヰ A
u
s
t
r
i
a
Romania
:
1
'
、 林 Belgium
ド
サ H
ungary
u
l
g
a
r
i
a 向 Ir
J
u
g
a
l
,
、
‑
‑
.
.
̲
̲
小 France
"
‑ Czachoslovakia
Sweden.
1
0‑
G問直心'
e"
l
t
‑
.
、
、
.
本 USSR 本 A
rg
四l
t
i
n
喧
l
t
a
l
y
USA ドY 九""‑‑"
ド
ニ 向 a
川d
j
,
S
r
i Lanka
Neiherlan
由‑‑‑‑‑‑一二 Soain

、
¥

、

泳

I
n
d
i
a . ‑ 本 Burma
/
Ghanat
r
a
q Rhodesia
Guatemala ド./'ー・ λ
j
‑
̲
*
.本
本 K
enya
./' Pak
四回 S
y
r
i
a
"
South A
f
r
i
c
a Egyptうバ<Peru
l
y,
"
ト
ヰ
ン/' tranキ 牢 K orea. D唖 畑 PeoRep
T
u
!
kE
ホ P
h
i
l
i
p
p
i
n
国/く'"
十戸
China
~ T
h
a
i
l
a
n
d
,. E迎~uador
̲̲̲̲̲
'
j,
B
r
a
z
i
l
Colombia
』 一

‑
‑
‑
‑
.
.
.
.
.
.
ー
ー
一
一
一
一
ー
一
一

、 H~

S
w
i
t
z
e
r
l
a
n
d
.
J,
Canada
'
"C
h
i
l
e
Y
u
g
o
s
l
a
v
i
a
"
レ
K
o
r
e
a
.R
e
p
u
b
l
i
c ofψ
A
u
s
t
r
a
l
i
a ,
.
,J
apan
Cuba
M
a
l
a
y
s
i
a
本 T
aiwan
平

ト

平

'
" Mexico
"Venezuela

。
1
0

20

a

~

B
i
r
t
h
s

w

60

403.

Crude Death Rateasa F u n c t i o no fCrude B iはh Rate AA f g h a n i s t a n 30 U UpperV o l t a 20 。 ωZ 官︒口 ー ω∞品 図 1 0 r a l i a 。 1 0 20 40 30 B i r t h s 50 60

404.

視聴率高位番組と年層の関係を探る 飯塚書子 N H K放送文化研究所 世論調査部 TVpopular programs and age group ‑From t h e audience r a t i n g survey i n t h e Kanto d i s t r i c t,conducted by NHK‑ H i s a k ol i z u k a B r o a d c a s t i n gC u l t u r e Research I n s t i t u t e NHK 2 ‑ 1 ‑ 1,Atago,Minatoku,Tokyo 1 0 5,Japan 司 要旨 6月と 11月に調査している、 NHKの個人視聴率調査結果のなかから、 80年 以降の 5年次ごとの調査結果を選ぴ出して、 6区分の年層別の視聴率と、高位番組 の視聴率との関係を数量的に把握することを試みた。 NHK視聴率調査は、個人を 対象にした調査であるため、個別の年層の分析が可能である。 ほぽ 15年間の高位番組の変容と年層の関わりかたには、 90年前後に大きな変 化があったことカfわかった。 キーワード NHK個人視聴率 1980‑94、高位番組、 SAS/STAT、 SAS/GRAPH 1 はじめに NHKでは、人々がどのような番組をみているのかなど、人々とテレビの関わり を明かにするために、定期的に視聴率調査を実施している。 N H Kの調査は、個人 別視聴率調査なので、性別や年層別の視聴率をみることができる。 、 85年 、 90年 、 94年 の ほ ぼ 5 今回の分析に使用したデータは、 1980年 年刻みの関東地方の視聴率調査結果である。高位番組は、放送時間 15分以上の番 組群のなかから、視聴率 25位までのものを抜きだしだ。 このようにして選んだ 25番組を、性年層 6区分の視聴傾向により分類し、高位 番組に登場した背景を明かにしていく。また、ほぼ 15年の定点観測による高位番 組の変容の過程もみていきたい。 2 分析に使用したデータ 分析に使用した調査データの概要はつぎのとおりである 0 ・調査時期 6月および 11月の第 1週の 7日間。 ‑ 調 査 番 組 調 査 時 期 に 放 送 さ れ た NHK.民放のテレビの全番組 ‑調査対象 層 化 2段無作為抽出、関東地区 1都 6県の 7歳以上の住民、 1地点あたり 12人、年次により 89~ 94地点を調査 ‑調査方法配付回収法、 放 送 局 時 刻 目 盛 (5分刻み)記入用紙 (OMR) を使用した日記式 .調査地点数・週平均有効率 80年 (89地点、 1068人) 6月 85.6% 11月 84. 9% 85年 (90地点、 1080人) 6月 81 . 6 11月 79 . 3 90年 (93地点、 1116人) 6月 8 1 . 7 11月 8O. 6 94年 (94地点、 1128人) 6月 81 . 7 11月 80. 4 ハ ペU RU ハud

405.

3 分析の方法 6月期と 11月期では番組編成が大幅に異なるため、 6月と 11月の各々につい て分析を行なった。 80、 85、 90、 94年のデータを、性・年層 6区分(男性については、 7歳 から 19歳を M7と表示、 20歳から 39歳までを M20と表示、 40歳以上を M 40と表示、同様に女性についても、 F7、 F20、 F40とする。 6層に分けた のはサンプル数や誤差を考膚したためである)の視聴率によって分類したものを、 年次ごとに比較して、変化の過程と高位番組の特徴をみた。これらの目的達成のた めに、 SAS/STAT、 SAS/GRAPH、 BASE/SAS等を使用した。 4 分析の結果 ① 5年ごとにみた高位番組の全体像 ア 高位番組の平均視聴率 高位 25番組の平均視聴率をみていくと、 6月期、 11月期ともに高いのは 80 年 (6月・ 15 . 3% 、 11月・ 17 . 0%)である。 80年の番組の特徴は、 6月期では高位番組トップの視聴率が 25.3% ( 8時 だよ!全員集合) 2位が 24. 5% (NHKニュースワイド 1)など、 11月期で は 28. 7% (NHKニュースワイド 1) 、 25. 6% 、 (8時だよ!全員集合) 22.1%(水戸黄門)、 2l . 5% (NHKニュースワイド 2)など、飛びぬけ て視聴率が高い番組があること、高位番組の最下位の視聴率も他の年次より高いこ となどである。 高位番組を、全体の視聴率の高低という視点からみると、 80年と 85年以降で は、やや趣が異なっている。 5年ごとにみた高位番組の平均視聴率 表1 3A19 町山 S32311 11月期 6月期 平均 MIN MAX STD 平均 MIN MAX 8 . 7 7 . 0 1 3 . 2 2 1 5 . 31 2 . 8 2 5 . 3 3 . 3 1 4 9. 3 . 7 1 0 . 8 1 1 2 . 0 9 . 6 9 . 4 2 . 4 1 .4 4 . 2 0 . 8 21 1 2 . 1 9 . 2 1 6 . 9 2 . 1 1 8 . 1 . 3 9 . 5 1 1 1 .3 9 . 5 1 5. 4 1 .6 11 80年 85年 90年 94年 イ テレビ視聴時間量の変化 最近の高位番組は、 20%以上の高い視聴率を獲得することは稀になっている。 これは、テレビ視聴時間とどのような関わりを持つのであろうか。 80年以降の 5年ごとのテレピ視聴時間量(関東・週平均)の年次変化をみると、 6月期、 11月期ともに 85年がそれぞれの底辺であり、それ以降は、少しずつ増 えてきていることがわかる。また、視聴時間量は、どの年も 6月期より 11月期の ほうがやや多い。 hマ ︐ + t ︐ 平 週 国分 全 l (期 3 1 7 9 量 月 間2 3 3 司 キ寸 i‑ f間 同f 時 13333 J41 日 九 聴 ビ分 レ 5 テ 1224 た 期 間5 1 3 年年年年 DnUAせ nU ﹁ δ 口 QUQUQU み月時 に6 3 2 3 3 V ﹂ シ﹂ Fhd 年 表2 円同d ﹃u p o

406.

90年以降、テレピ視聴時間量は多くなってきてはいるが、高位番組の視聴率は 高くなってはいない。どうやら、高位番組の視聴率の高低と、テレピ視聴時間量は あまり関わりがない様子である。 ② 高位番組視聴率と年層別視聴率の関わり では、高位番組の視聴率と個別の年層の視聴率は、どのような関係にあるのだろ うか。ここでは、高位番組の視聴率と年層 6区分の相関係数を計算し、 「相聞があ るj とみなしでもよい O . 5以上(小数点 2位 で 4捨 5入)の基準に達したものを カウントしたものと、年層 6区分の視聴率による因子分析 (me th 0 d=p r i ncomp) をしたものにより、高位番組と年層の関わりをみていく。 ア 6月期の番組群 a 90年以降は特定の年層の視聴率しか獲得できなくなった高位番組 高位番組への登場は、どの年層の視聴率を獲得してなされたのだろうか。全体の 視聴率と個別の年層の視聴率の関係をみると、年度が新しくなるほど相関があると みなされる番組数が少なくなっていることがわかる。これは、高位番組に登場する 番組をよくみている年層が、 80年では 4つあったのに対し、 94年では 1つ し か なくなったことを示し、高位番組でも特定の年層の視聴率しか獲得できなくなった ことを意味している。 表 4 6月期の高位番組視聴率と年層別視聴率の関わり 全体 M7 M20 M40 F7 F20 F40 80年 4 ( 0 ) * * * * 85年 3 ( 0 ) * * * 90年 2 ( 0 ) * 94年 1 ( 0 ) *は、高位番組の視聴率と相闘がある年層(相関係数 O . 5以上) b 若年層に接近する F20一因子分析結果からみた特徴 因子分析では、固有値( E i g e n v a l u e、因子を選ぶときの基準となる数値、意味のあ る因子の基準としては、 l以上の数値をとるものを選ぶことが多い)や寄与率(そ の因子が、目的変数である高位番組の視聴率をどの程度説明できるかを示す数値で、 ~ 1の聞の値をとる)を計算する。 高位番組の年層別視聴率を要因にして因子 分析をしたところ、つぎのような 2つの特徴がわかった。 o ‑高位番組への登場は、番組ごとに特定の年層に依存している 前述の因子分析の結果をみると、年層を分けているとみられるものが lつめの因 子である。この因子だけで、高位番組の視聴率を、 80年 ( 0 . 46) 、 85年 ( 0 . 49) では 5割弱、 90年以降では 6割以上を説明することができる。こ れをみると、 85年以前と 90年以降では、異なった傾向があることがわかる。 なお、 2つめの因子は、あまり明瞭な解釈はできない。 表5 6月期の因子分析による固有値と累積寄与率 f a c t o r 1 f a c t o r 2 f a c t o r 3 80年 2 . 7 6 ( 0. 4 6 ) 1 .2 3 ( 0 . 6 6 ) 1 .0 9 ( 0 . 8 5 ) 85年 2 . 9 2 ( 0. 49 ) 1 .3 6 ( 0 . 7 1 ) 1 . 14 ( 0 . 9 0 ) . 8 8 ( 0 . 6 4 ) 1 . 16 ( 0 . 8 4 ) 0 . 5 3 ( 0 . 9 3 ) 90年 3 94年 3 . 7 5 ( 0 . 6 2 ) 1 . 10 ( 0 . 8 1 ) 0 . 5 7 ( 0 . 9 0 ) ‑397‑

407.
[beta]
6区 分 の 層 は 、 高 年 層 (M40、 F4 0) 、 成 年 層 (M2 0F 2 0) 、
若 年 層 (M7、 F7
)3つ の グ ル ー プ に ま と め る こ と が で き る が 、 90年
以降になると、
F20が 成 年 層 か ら は ず れ て 若 年 層 の グ ル ー プ に 変 わ っ た
前 述 し た 2つの因子の値をプロットしてみると、 3つのグループにわかれる。
) のグループで、 90年 で は 男 女 の 違 い が 小 さ
一 つ は 、 高 年 層 (M40と F40
くなっているものの、他の年の男女の位置がやや離れているのは、プロ野球のナイ
タ一番組を好む M40とドラマ志向の F40の 違 い に よ る も の で あ ろ う (1)2つめは成年層 (M20と F20) の グ ル ー プ で 、 こ れ も 第 l因 子 の 値 が プ ラ ス
で あ る 。 し か し 、 特 に 大 き な 値 を も っ 90年と 94年の F20は 、 こ の グ ル ー プ か
ら外れてしまう。 M 20と F20の 距 離 は 、 こ こ で も プ ロ 野 球 の ナ イ タ 一 番 組 の 視
聴、率の違いが関わっているようである。
3つめは、 F20の一部と M 7、 F7のグルーフ。である。 90年 以 降 の F20の
ち び る ま る 子 ち ゃ んJ I
ドラゴンボー
若年層への接近は、 90年 の 「 サ ザ エ さ ん J I
ル ZJ 等のアニメ番組、 94年 の ア ニ メ 番 組 と 一 部 の バ ラ エ テ ィ 番 組 の 高 視 聴 率 に
。
よるものである(1)
図 l 6月 期 ・ 因 子 負 荷 量 の プ ロ ッ ト 図 (
f
a
c
t
o
r
1Xf
a
c
t
o
r
2
)1
0.8

M20
M 且F4040

0.6

i..~'" ・

0.4

.
企

F20‑M20

80~手 6 月

•

F20

i

0.2

85年 6 月

.
.

‑

F7
M7
圃 咽 F7

!

‑
.
.
90主手 6月

94年 6月

F40
1
IF2071
01・
一一‑‑‑.....̲‑‑‑一一一一一一一一一一
一一」・一一一一一一一一一‑‑‑‑一一一
ーー.・4
I
....
I

包

c>

ζ
:
>
E
司

0.2

M460b4O

i

.
.

i

0.4

‑ート7
1

!

年ヰ~~-

~

0.6

ー

M20

•

‑0.8
1
‑1

0.8 ‑0.6

0.2
0.4 ー0.2 0
factor1

0.4

~

M20
食

0.6 0.8

11月 期 の 番 組 群
a F40の 存 在 感 が 大 き い 11月期
11月 期 の 高 位 番 組 の 視 聴 率 と 年 層 間 の 視 聴 率 を み る と 、 関 わ り が 大 き い も の の
数は lから 3で 、 年 次 に よ る 差 は 6月 期 程 明 瞭 で は な い 。 ま た 、 こ れ ら の 数 が 男 性
イ

より女性のほうがやや多めなのは、 6月 期 の 「 ナ イ タ 一 番 組 群 」 の よ う に 、 確 実 に
中高年の男性を中心に高視聴率を獲得できる番組群がないためである。

11月期の個別の高位番組視聴率と年層別視聴率の関わり
全 体 M 7 M20 M40 F7 F20 F40
80年 3
(
0
)

表6

85年 2
(
0
)

*

90年 1(0)
94 年 ~/QL./~M ___...l.O lT+~

*

*

_LMFI~!_'::- J..

I̲LH I=IFlJ‑‑‑r. **
*
*

,
,
*

*は、高位番組の視聴率と相闘がある年層(相関係数 O
. 5以上)
17,h‑a:::;::;I'

‑398一

408.

b 90年以降は M20の存在が希薄になった 6月期と同じように、因子分析をしてみるとつぎのよつな 2つの傾向がわかる 0 .85年と 90年の聞に断層がある。 第 l因子は、若年層がプラス、高年層がマイナスの得点を持つ年層をわける因子 である。第 2因子はあまり明瞭な解釈はできない。第 l因子をみると、 85年以前 (80年 0.58、 85年 O . 59) では高位番組の視聴率を 6割近く説明できる . 67、 O . 74) になる。こ のに対し、 90年以降ではほぼ 7割(それぞれ、 O の結果をみると、 85年と 90年の聞に断層があることがわかる。 表 11月期の因子分析による固有値と累積寄与率 f a c t o r 1 f a c t o r 2 f a c t o r 3 3. 4 7 ( 0 . 5 8 ) 1 .7 0 ( 0 . 8 6 ) 0 . 3 7 ( 0 . 9 2 ) 80年 .0 4 ( 0 . 7 7 ) 0 . 7 1 ( 0 . 8 9 ) 3 . 5 6 ( 0 . 5 9 ) 1 85年 4 . 0 5 ( 0 . 6 7 ) 0 . 8 6 ( 0 . 8 2 ) 0 . 5 6 ( 0 . 9 1 ) 90年 41 ( 0 . 7 4 ) 0 . 7 0 ( 0 . 8 5 ) 0 . 3 9 ( 0 . 9 2 ) 4. 94年 .M20の 若 年 層 へ の 接 近 は 90年以降に始まった。 第 lと第 2の因子を使った散布図をみると、大きな 2つのグループに分かれる。 lつは、 M40と F40のグループである。 80年だけがやや離れているが、それ 以外の年次はほとんど分離できないほど近接している(図 2) 。 図2 1 1月期・因子負荷量のプロット図 ( f a c t o r 1X f a c t o r 2 ) M20 M20 ! • ! ・ i 0 . 8 1 1 F40 0 . 6 1 噌0 1 i ・・ : ・ • F20 ~ i~M70 8 5年 1 1月 ‑~20 041 L 明4 0 . 1 . m 0.2rF;f~q I FlO~干7 I |i ・~!Ý17 呉 o ~-~賢一--_.._-_...・M・...-..一一・一一_.....・-一一一一一一一 Fi骨 ぷ 1 ! C F ア ー l ‑ 0 . 2 1 I 企 9 0 年1 1月 . .9 4 年1 1月 企 M 7 ‑ 0 . 4 │ i ! I ‑ 0 . 6 1 M20‑ * i n u ヴ E nU 口 U A守 五u n u nU oo 1A l‑ ‑ 0 . 8 1 8 0 年1 1月 0 . 2 0. 4 0 . 6 0 . 8 f a c t o r 1 2つめは、 M20と F20、M 7とF7の大きなグループである。このグループは、 80、 85年の M 2 0のサプグループに分けることもできる。このサプグループは、 M20の視聴番組が、どの位高位番組に登場しているかに関わっている。 6つの層 のなかで、 M20の視聴率が相対的に高い番組が、高位番組に登場したのは、 80, 85, 94年でそれぞれ l本ずつしかない。これは、 M 20主体の高位番組 が少ないことを意味し、 85年まではかろうじて保っていた M 2 0の視聴者として の存在が、 90年以降は M 7や F7に従属した希薄なものになったことを示してい るものと考えられる。 ‑399‑

409.

③ 年次ごとの高位番組の分析 80年以降の高位番組の視聴率と年層の関係をみると、 6月期、 11月期ともに、 90年以降とそれ以前では、異なった傾向を示していることがわかる。 つぎに、主成分分析による検証、クラスター分析 (ward法)による分類によ り、年次ごとの高位番組の構造がどのように変化したのかを具体的にみていく。 ア 6月期の特徴 a 8 0年の高位番組 80年の番組群の全体的な特徴を要約すると、つぎの 4つになる 0 ・飛ぴぬけて高い視聴率の 2番組があることは前述したが、この 2番組と 3位 (1 なっちゃんの写真館 J18 . 5%) との聞に統計的な有意差が認められる 0 .6つの年層の全ての視聴率が 10%を超える全年層型の番組は 3本(前述の l、 2位と 1100人に聞きました J 13 . 1%)である。 5年 層 型 (5つの年層の 視聴率が 10%を超える番組)は 6本である。 ‑主成分分析をして第 l主成分と第 2主成分の散布図を描いてみると、視聴率トッ プの番組は、他の番組とは離れた位置にプロットされる、いわゆる外れ値になっ た。これは、若年層の視聴率が突出した全年層型の番組が他にないためである 0 ・年層 6区分の視聴率を使ったクラスター分析結果では、つぎの 3つにわかれる。 1 8時だよ! 全員集合」や「ザ・ベストテン J 1 サザ、エさん」に代表される若 日曜ナ 年層の視聴率が高いグループに 9番組、 INHKニュースワイド 1J 1 連 イター・ヤー巨」などのナイタ一番組群に 6番組、 「なっちゃんの写真間 J 1 想ゲーム J INHKニュースワイド 2J など、 NHK型の 10番組である。 b 85年の高位番組 ・20%を超える視聴率の番組がなくなり、トップは「涛つくし J (19.4%) である。主成分分析による外れ値はない。 ・クラスターは 3つにわかれ、 「湾つくし」ゃ INHKニュースワイド」などの N H K番組群とナイター 2番組を含む 14番組、ナイター 4番組だけのグループ、 ふぞろいの林檎たち 2J 1 マンガ・日本むかしぱ 「ザ・ベストテン J 1タッチ J 1 なし」など、若年層の視聴率が高い 7番組にわかれる。 c 90年の高位番組 ・飛びぬけて高い視聴率の番組はない。全年層型の番組もないが、 トップの「日曜 、 5年層型に入る。 ナイター巨ー中 J (16.9%) は ・クラスターは 3つにわかれ、 「志村けんのだいじようぶだあ J 1 サザエさん」ゃ 「ねるとん紅鯨団」に代表される若年層の視聴率が高いアニメ・バラエテイ番組 日曜ナイター巨ー中」などのナイタ一 群に 8番組、 「ニュースステーション J 1 l : 票 凍 とJ 1 朔ぶが如く J INHKモーニングワイド 2J に加 番組群の 7番組、 I えて「暴れん坊将軍国」などを含めた NHK番組型の 10番組である。 d 94年の高位番組 ・飛ぴぬけて高い視聴率の番組はなく、全年層の番組もない。トップの「家なき子」 (15.3%) は他に「ホテル J ( 1 2. 3%)、 「サザエさん J (1 1 . 3%) の 3本が 5年層型である。 ホテル J 1 サザエさん J 1とんねるずの生 ・クラスターは 2つで、 「家なき子 J 1 でダラダラいかせて! ! Jなどの若年層の視聴率が高い番組が 11、 INHK ど自慢 J 1 花の乱」と「ナイター中継・中一巨」などが一つにまとまった 14番 組の大きなグループになる。 ‑400‑

410.

7 11875 一=3 E 合 1413 Qd1i1ょ 40304一l 7 4 U 9 6 門 1 0 14 Qd1i 組型型型 番K 一 イ のHタテ 値Nイエ れ一ナラ 6 1 10 ハ unU i只 ハunUム 1 ﹂ ‑ 一分 J卜干l e ¥ 々ノ如叩ノ 層層分スア 析一メ 型型分タニ 年年成ラ 全5主ク 表 8 年 次 ご と に み た 特 徴 一 覧 (6月期) 80年 85 3 0 ( 注 1)クラスターの名称については、そのクラスターに入る番組の特徴に基づい て 、 NHK型(視聴率から見て、高年層が高く若年層が低い番組群、必ずしも N H K番組ばかりとは限らない)、ナイター型(男性の成年層、高年層の視聴率がやや 高い香組群、ナイタ一番組のほかにニュースステーション等も入る)、アニメ・バ ラエティ型(若年層の視聴率が高く、成年層も周辺に取り込んだ形の香組群、アニ メ番組とバラエティ番組)の 3 つに分類した(クラスターの詳細は, ISUGI‑ J'94日本 SASユーザー会論文集「視聴率高位番組のクラスター分析」参照) 11月期の番組群の特徴 a 80年の高位番組 8時だヨ!全 ‑視聴率が 20%を超える番組は前述したとおり 4本あり、 2位の 1 イ 員集合」は、全年層型であるのに加えて若年層の視聴率の突出により、主成分分 析では、外れ値になっている。 ・全年層型の 8本の番組は、視聴率が高いものが多い。他に 5年 層 型 が 5本あるが、 これは必ずしも視聴率が高いものばかりではない。 8時だヨ!全員集合」 ・クラスターは 3つにわけられる。全年層型の番組のなかの 1 INHKニュースワイド 1J 1 水戸黄門 J 1 クイズダービー」などの 6本は lつの 獅子の時代 J INHKニュースワイド 2J グループを形成し、 「連想、ゲーム J 1 などの NHK番 組 群 が 9本 、 「ザ・ベストテン J 1 グランド劇場・熱中時代」 サザエさん」などのクイズ・バラエテイ香組が 「欽ちゃんのどこまでやるの!J 1 10本である。 b 85年の高位番組 ・トップは INHKニュースワイド J (19.4%) で、視聴率 20%以上の番組 バレーボール・日本×アメリカ J 14. 5%、 はない。全年層型の番組は 2本 ( 1 . 4%)で、視聴率は中間である。 「世界まるごと H O Wマッチ J 14 、 M7と F7の視聴率だけが突出した香組 ‑外れ値は「タッチ J (15.2%) で であることが影響していると思われる。 ・クラスターは 2つにわかれ、 NHK型の INHKニュースワイド J 1 いちばん太 鼓J 1 大岡越前 J 1 ニュースセンター 9時 J 1 春の波涛・抱月、漸く J 1 クイズ ダーピー」などの 16番組と、 「タッチ J 1 サザエさん J 1 世界まるごと H O W マッチ」などのクイズ・バラエテイ型の番組群が 9本である。 c 90年の高位番組 ・視聴率 20%以上の番組は、全年層型の「ちびまる子ちゃん J ( 21 . 4%) 、 「サザエさん J (20.4%) のアニメ番組である。 5年層型は視聴率が高いグ ループに属する 1 7時のニュース・天気予報J (16.9%) 1 すてきな片想い」 ( l6. 2%)の 2本である。 サザエさん J 1 ドラゴンボール ZJ ・クラスターは 2つで、 「ちぴまる子ちゃん J 1 「すてきな片想い」等のアニメ・バラエティ型の 12本と、 1 7時のニュース・天 大相撲九州場所・ 8日目 J 1 即位の礼・正殿の儀」などの NHK型の 気 予 報J 1 番組群 13本である。 ‑401‑

411.

d 94年 の 高 位 番 組 ム ロ1 5 4 計382361 年エ聴 A 1土︑a ︑ ︐刀お刷し 現群ク し番高 けイが だテ率 のニ+右 もア ょ 0 ラ視 8 パの ︑ 層 でメ年 Qd1i1i のたに 上し他 以示の Qd1i1 %で組 0 1番 1 れ在イ が︑テ 率はエ 聴型ラ 視イパ にテ︒ もエメる とラニあ 層パアで nunノ臼円ノunuqu 一 円 ノ M ょ 41005一 o 白川 l年 001 K層 イ H年テ 型型型 層︒スわ 6 ・︑の ︑ズでも はイ一た 型クタつ 寸﹂ 値N全エ れ一ラ 全なクが 年いラ加 )いの組 2て似番 注れ類ズ (わとイ 外析バ 一分 層層分スク 析一ズ 型型分タイ 年年成ラ 全5主ク U 1ょnU 口δFhJ1iQUFOハ 世 見 徴 +主1 ・ul μ た み ﹂ シ 次 年 表9 一9 )52116 期8 1 ・視聴率 20%以上の番組はなく、 「大相撲九州場所. 8日目 J ( 18 . 1% ) が トップになった。全年層型の番組は、あまり視聴率は高くない「投稿!特ホウ天 国J ( 12 . 2%)だけ である。 5年層型はない。 ・クラスターは 2つで、 「嵐を呼ぶ園児クレヨンしんちゃん J I 投稿!特ホウ天国」 「サザエさん J I 妹 よ 」 等 の ア ニ メ ・ バ ラ エ テ イ 型 の 番 組 10本と、 「春よ、来 い J INHKニュース 7J I 水戸黄門 J I ニュースステーション j などを含む N H K型 の 番 組 群 15本のグループになる。 5 おわりに 80年以降の高位番組と年層の関係をみると、つぎのような傾向がわかる。 ① 90年 以 降 の 高 位 番 組 に は 、 全 年 層 で 10%以 上 の 視 聴 率 を 獲 得 す る 力 を 持 っ た 番組がほとんどなくなった。 6月期では、全年層型の番組は 80年に 3本 あ っ た のみで、 85年以降は l本もなくなり、 11月期は 80年の 8本から 94年 に は l本に減った。 ② 80年以降の高位番組を分類してみると、 80年と 85年のグループ、 90年 以 降のグループになる。この 2つ の グ ル ー プ を 分 け る も の は 、 テ レ ビ 視 聴 の 形 態 が 集団視聴から個別視聴の形態に変化したこと、さらに、テレビの送り手側がター ゲットを絞った番組を作るようになったことの両方によるものと思われる。 ③ 5年ごとの高位番組をクラスターにわけたところ、 2つの特徴がわかった。 ・バラエテイ型番組群が、若年層の視聴率中心のタイプに変容したのは、 「ちびま る子ちゃん j や「サザエさん j が M7と F7で 50%前 後 の 視 聴 率 を 集 め 、 周 辺 に F20や M20を取り込んでトップに登場した 90年 11月頃からである。 ・ナイタ一番組の視聴者層が、 90年までは 2桁 の 視 聴 率 を 確 保 し て い た M7が 9 4年では 1桁の視聴率に下がるなどの変化があったために、ナイタ一番組のクラ スターの縮小と、 NHK型番組群とナイタ一番組群の合併がおこった。 402

412.

日本 SASユーザー会 (SUGI‑J) 数量化理論 E類サンプルプログラムの改良とその適用 有 馬 昌 宏 神戸商科大学・商経学部・管理科学科 A nI m p r o v e m e n to fS a m p l eP r o g r a mf o rQ u a n t i f i c a t i o nT h e o r yT y p er Masahiro Arima D e p a r t m e n to fM a n a g e m e n tS c i e n c e, K o b eU n i v e r s i t yo fC o m m e r c e .G a k u e n ‑ n i s h i m a c h i, N i s h i ‑ K u, K o b e6 5 1 ‑ 2 1J a p a n . 8 ‑ 2 ‑1 要旨 T e c h n i c a lR e p o r t :J ‑ 1 0 9 ( 1 9 9 1 ) に示された数量化理論 E類サンプルプログラムには,レポ ートの第 5章「サンプルプログラムの改良について」においても指摘されているように,相関 比や偏相関係数などの数量化理論 E類を適用していく上で必要な統計量が計算されないといっ a s e た改良点が存在している.そこで, SASシステムを構成する基本的ソフトウェアである B S A S と SAS/STAT のみを利用して相関比と偏相関係数を計算するステップを付加して数量化理 論 E類サンプルプログラムの改良を図り,大規模なアンケート調査データと中規模のアンケー ト調査データの解析に適用した.本稿では,改良したサンプルプログラムと適用例を紹介し, 今後のさらなる改良の方向の指針を示す. a s eS A S,SAS/STAT,p r o cr e g キーワード.数量化理論 E類サンプルプログラム, B 1 . はじめに SASシステムにおける数量化理論は,現 在はサンプルプログラム [4Jとして提供され ているが,実際のデータ解析に適用するには, ①分析対象データセットの構造の制約緩和, c o r r e l a t i o nr a t i o ) や偏相関係数 ②相関比 C C p a r t i a lc o r r e l a t i o nc o e f f i c i e n t ) など の統計量の出力, といった改良が必要となる.サンプルプログ など各所で試みられて ラムの改良は嶋津 [5J いるが,ソースプログラムは公開されていな い.また,改良に際しては,偏相関係数の計 A S / I M Lを利用するケースが多い 算のために S AS/IMLが導 と思われるが,この場合には, S 入されていないと利用できないことになる. そこで, B a s eS A SとSAS/STATのみを利用して 相関比と偏相関係数が出力されるようにサン プルプログラムの改良を図った. 2. 改良サンプルプログラムとその適用 相関比を出力するには図 1のステップを, 偏相関係数を出力するには図 2に示したステ かの前後に置けばよい.ただし,偏相関係数 r o cr e g に関しては,本改良プログラムでは p を利用しているため, S Q u a r e dP a r t i a lC o r r T y p e1 1 の列タイトルの下に 2乗されて印刷 されることに留意されたい.また, 2次元以 上の次元での偏相関係数を求めるためには, 図 2の図中に示された一部のステップを複写 し,次元に応じて変数名の一部を修正しなけ ればならないことにも留意されたい.なお, 改良サンプルプログラムの分析対象データセ ットと制限事項については,サンプルプログ 4Jと同ーである. ラム [ 3. 改良サンプルプログラムの適用事例 0,7 0 0人 改良サンプルプログラムは,全国 1 の学生を対象とする大規模な社会調査データ および大学の卒業生 4 9 9人を対象とする中規 , 模の社会調査データの解析に利用した C[1J [3J ) .また,大学の講義の中でも,小規模 な例題に適用させて,理解を深めるとともに 興味を持たせるツールとして利用している. 4. おわりに ップを,要求する印刷出力の順序に応じて, 2のステップのいずれ サンプルプログラムの 1 本稿で示した改良サンプルプログラムでは, 4 0 3

413.

K E E P % D O I1% T O& V N ; % LE TW l= & & X &1 ; & W l . S l &Wl.S&&&Wl % E N D ;; R U N ; /ホホホホ*事旗本*ホホ**旗本****事旗本***旗本車***ホ*旗本****旗本/ / 本 1 3 . .jiJ[期比(全ての次元について) * / /***旗本旗本****旗本車*ホ**本*****旗本*****旗本**旗本旗本**/ 二 T I T L E l 'CORRELATION R A T I O ' ; 1 = 1; D A T AC O R R A T I O ; S E TS T A T ; WHERE T Y P E =' C A N C O R R ' ; % D O1 = 1% T O& V N ; % LE TW l = & & X & I ; RATIO=&Wl.Dl*&Wl.Dl; % E N D ; , 3 )' D1 M '; S U B S T R (N A M E ,1 L A B E L N A M E= ' D I M E N S I O N ' ; LABEL RATIO='CORRELATION R A T I O ' ; K E E P N A M E R A T I O ; R U N ; P R O C PRINT DATA=CORRATIO L A B E LN O O B S ; R U N ; 1 * 説 明 ア イ テ ム の ,t l ‑j 京町 D A T AI N D E P ; S E TC A T D A T A ; I F N= 1T H E NS E TC A T S C O R E ; % D O1 = 1% T O& V N ; % LE TW l=&&X&1 ; ARRAY & W l . D& W l . D l& W l . D & & & W l ; A R R A Y &Wl.S & W l . S l& W l . S & & & W l ; A R R A Y &Wl.T & W l . T l& W l . T & & & W l ; .T ; D OO V E R& W1 &Wl.T=&Wl.D*&Wl.S; E N D ; &Wl=SUM(OF & W l . T l& W l .T & & & W l ) ; % E N D ; K E E P % D O1 = 1% T O& V N ; % LE TW l = & & X & I ; & W l % E N D ;; R U N ; 二 図1.相関比を出力するステップ /***ホ*本****事事旗本車******本*ホ*ホ************ホ**/ / * 1 4 . 制相1[見係数(1次 兄 ま で ) * / /******叫旗本*****旗本*****ホ*****ホ * ***********1 T I T L E l' P A R T I A L CORRELATION C O E F F I C I E N T ' ; 1 * ア イ テ ム ・ カ テ ゴ リ 別 0‑1型 デ ー タ * / D A T AC A T D A T A ; SET O U T ; K E E P % D O1 = 1% T O& V N ; % LE TW l = & & X & I ; & W l . D l & W l . D & & & W l % E N D ;; R U N ; /本外的 J 正準アイテムの計算本/ D A T AD E P ; S E TS A M P ; K E E PO B SM E A N1 ; R U N ; P R O CS O R T ; B YO B S ; R U N ; 1*********旗本*********事**本****ホホ****判事旗本****/ 2玖: . i 己以 1 :の 場 合 に は , 以 下 を 被 写 し , * 1 事/ 1 * 各数字を対応する次兄に変更すること. :'*恒輔i 関係数の.if‑r , J :* 1 D A T AP A R T D A T A ; M E R G EI N D E PD E P ; R E N A M EM E A Nト D I M 1 ; R U N ; P R O CR E GD A T A = P A R T D A T A ; M O D E LD I M 1 = % D OI ニ 1% 10& V N ; % LE TW l = & & X & I ; & W l % E N D ;I S S 2P C O R R 2 ; R U N ; /本 /****事**本料******************枠制*****事*****/ / * 1次 j e1 1の カ テ ゴ リ ス コ ア の 読 み 込 み * / D A T AC A T S C O R E ; S E TS T A T ; W H E R E T Y P E ニ ' R A W S C O R E 'A N D N A M E ='C A N 1 ' ; / *< = = = 1次 元 * / % D O1 = 1% T O& V N ; 百L E TW l = & & X & I ; ARRAY & W l . D& W l . D l& W l . D & & & W l ; ARRAY &Wl.S & W l . S l ‑ & W l . S & & & W l ; .S ; D OO V E R& W1 & W1 .S = & W1 .D ; E N D ; % E N D ; 1 *< = = = 1次 元 * / / *< = = = 1次 元 * / / *< = = = 1次 元 * / /**********事**事****事*****事事***********事事****/ 1 * このトーが 2次 A 以 上 の 場 合 の 彼 写 先 * / /***********事*****事******事******本 * **********1 図2 . 偏相関係数を出力するステップ SAS/IML を利用していないため,偏相関係数 に関しては洗練された出力は達成できていな い. SAS/IML が利用できる場合は,データセ ット PARTDATAから相関行列を計算し,その逆 行列を求めることで偏相関係数が求められる. 9 8 2 . データ処理,朝倉書庖, 1 [ 3 J 野脇祐次・山中和重,アンケート調査に よる管理科学科卒業生の現状と動向 ‑SA Sシステムを用いた数量化理論による分析, 9 9 3年度卒業論文, 1 9 9 4 . 神戸商科大学 1 [ 4 J 側 SASインスティチュートジャパン, 参考文献 [ 1 J 有馬昌宏, ipC版 SASとUNIX版 SASによる大規模調査データの解析 J, 日本 SASユーザー会 ( S U G1 ‑ J' 9 4 )論文集, p p .4 9 3 ‑ 5 0 2,1 9 9 4 . [ 2 J 駒沢勉(林知己夫監修) ,数量化理論と 数量化 1• Il類サンプルプログラム, T e c h n i c a lR e p o r t : J ‑ 1 0 9, SA S出版局, 1 9 91 . [ 5 J 嶋津吉秀,数量化理論マクロ(fo r SAS/ V e r 6 ) について,第 3 6回関西 SASユ ー ザ 9 9 3 . ー会配布資料, 1 ‑404

414.

日本 5A5ユーザー会 (5U G卜‑.)) マクロ言語を用いたアンケートデータの分析 福井誠 富山女子短期大学商経学科 A n a l y s i s01t h eS u r v e yD a t aU s i n gM a c r oP r o c e s s i n g MakotoFukui De岡市鴨川 o fB u s i n e : 弱 andManagemen , t ToyamaWomen'sCol l e g e 4 4 4 .G~nk~ii i. Tovama930・ 0 1Janan. 要旨 アンケートデータの解析方法は、一括処理から対話的処理へと変化しつつある。この 変化の中での SASシステムの優位性と改善点を整理した。そしてその一例として、ク ロス集計を対話的に行うためのユーティリティーをマクロ言語を用いて試作した。 キーワード: アンケート調査.マクロ言語, T A B U L A T Eプロシジャ 1.はじめに アンケート調査は計量データの収集法として、最も普及した技法の一つである。個人 レベルから企業や行政に至るまで様々な問題解決の場面で、手軽にかっ確実にデータ を入手する方法として広く採用されている。実際には質問紙の設計や実査には高度な 技術が必要であり、そのために専門家や調査会社の支援が必要となる場面は決して少 なくはない。この意味でアンケート調査はそれほど手軽な方法とはいえなし、かもしれ ない。しかし、ことデータ処理に関しては、最近の情報機器の低価格化と高性能化に よって個人レベルで分析を進めることが十分に可能な環境ができつつある。 このような環境変化は、調査データの解析の方法を大きく変えようとしている。すな わち、従来は調査会社に処理も含めて委託し、一括処理されプリントアウトされた結 果をもとに分析を進めるという方法が一般的であった。しかし処理環境の急速な革新 を前提に考えるならば、今後は問題意識を持つ調査の実施者が、自分自身でデータと 向き合い対話的に分析を進めるという方向が主流になると考えられる。 これまでも SASはアンケートデータの解析に活用されてきたが、分析の進め方の変化 によって、その有効性はより高まっているのではないかと思う。 以下ではアンケート集計専用のパッケージプログラムの機能について検討し、 SASシ ステムとの比較を行った。この両者の違し、から SASシステムをこの種のデータに適用 する場合の有効な分析の進め方について検討したい。あわせてアンケート調査の分析 で最も多用されるクロス集計表の作成を SAS システム上で対話的に行うためのユー

415.

ティリティーを試作してみる。 2 .ア ン ケ ー ト デ ー タ の 処 理 で の 専 用 ソ フ ト 利 用 と SASシ ス テ ム このようにアンケートは広く普及した技法であるところから、アンケートデータを処 理することに機能を特化した、いわゆるアンケート調査支援ソフトも多く市販されて いる。しかし、これらのソフトの多くは、用途がアンケートの入力・集計に限定され ているにもかかわらず(機能が限定しているがゆえにと言うべきであろうか)高価で あり、個人での利用はもとより、恒常的にアンケートを行わない企業や組織にとって も手軽に購入できる範囲のソフトではない。そのためもあるのか、これらのソフトは 調査会社などの専門家の利用を前提とした仕様となっているものがほとんどである。 これらの中から 2 ""3のアンケート集計ソフトの仕様について検討したところ、その 機能は以下のようにまとめることができる。 1.データの入力支援 アンケートはほとんどの場合、アンケート用紙に記入された状態で回収される。 このため集計処理のためにまず最初に機械可読形式に変換する必要がある。こ の作業では人為的なミスが発生しやすい。そこで多くのアンケート専用ソフト は入力時のミスを防止するためのチェック機能を備えている。作業効率をあげ つつ、ミスを避ける工夫がなされているわけである。 2 .集計機能 アンケートデータの解析の基本は単純集計とクロス集計である。調査会社に分 析作業を委託する場合など、あらかじめクロス集計を行う項目を指定しておき 一括して出力を行うのが通例であった。専用アプリケーションのほとんどがク ロス項目は一括指定するようにできている。また出力はプリントアウトを前提 としているので、クロス表のレイアウトについて細かな指定を行う機能も充実 している。 3 .集計表とグラフ作成・出力機能 この段階では、 DTPソフトやグラフ作成専用のユーティリティーで仕上げたのと 同じレベルの仕上がりが求められる。すなわち専用ソフトに求められているの は「商品価値のある J 見やすい図表である。とくにクロス集計表を表現するた めの横帯グラフの作成には重点が置かれており、細かいレベルまで文字位置や ハッチングパタンを指定できる。 このように専用ソフトは専門家向けに処理効率を改善し、商品価値のあるアウトプッ トを作成する点に重点が置かれている。操作性やデータの扱い安さには専用ソフトな らではの機能がある。対話的な操作はこのような用途ではあまり必要ないものと思わ

416.

れほとんど考慮されていない。 一方、この処理を SASで行う場合、以下のような手順で分析を進めることになると思 われる。 1.データの入力 SAS上のエディタで入力することも可能だが、実際の利用では外部でデータを作 成したあと、 DATAステップで外部ファイルを読み込んで利用することが多いと 思われる。このような手順を踏んだ場合には、入力ミスや論理チェックは一旦 入力が終わった後で行われる。論理チェックなどはこのような一括処理でも問 題は少ないど恩われるが、入力ミスは入力作業を行う者ど分析者土は往々にし て異なっているので入力の時点、でそのつどチ t ツクできる方式のほうが便利で ある。 一般的な利用を考えた場合、表計算ソフトなどを利用してデータの入力とチェ ックのための環境を構築するのが最も安価で簡便な方法であろう。かつて、 x コマンドが S A Sシステムと外部環境とを結んでいたが、 Windowsや OS/2上で の S A Sを利用できるなら、 SASシステムと外部のアプリケーションとはシ一人 レスにつながる。実際に表計算ソフトを入力用のエディタとして活用した事例 は有馬 lにより報告されている。 SAS/CALCなどを用いてもこの作業は可能であろ フ 。 2 .集計と集計表の出力 S A Sでアンケートの集計作業を行うときに多用するのは、 FREQ と TABULATE の両プロシジャであろう。とくに TABULATEプロシジャの作表機能は強力であり、 クロス表の出力で求められる形式をすべて表現可能である。しかし、結果をプ リントアウトする段階で、両プロシジャの罫線が疑似罫線であることが問題と なっていた。 SUGI‑]92ではこの問題に対する解決策が 2件報告されている ZJO SAS6.08からは SAS/GRAPHの ]PRINTプロシジャを用いて実線での表の出力が可 聞がないため実際に利 能になっている¥残念なことに筆者の環境には SAS/GRA 用したことはないが、この機能強化の意味は大きいとだろう。なお、ワープロ ソフトやエデ、イタのマクロ機能を用いても罫線の置き換えは可能である。筆者 の場合は、 SASの OUTPUTWINDOWの内容をテキストファイルに取り込み、このフ ァイルを Windows上の一太郎 Ver.65に読み込んで一太郎のマクロ言語であるプ レイライトでこの作業を行っている。 3 .グラフ化 探索的にデータの内容を読みとっていく段階では、データの視覚化は内容の理 解を深めるのに大きな力となる。一方、データの構造を分析者が阻唱したあと は、グラフは結果を第三者に伝達する有効な手段となる。専用アプリケーショ ンはプレゼンテーション用としては高機能であるが、探索的な用途には適して

417.

いない。一方、 SASシステムでは SAS/INSIGHTを用いれば探索的段階でのグラフ 利用が可能である。プレゼンテーション用のグラフは SAS/GRAPHで作成できる。 3 .ク ロ ス 表 の シ ン グ ル / マ ル チ 自 動 判 別 マ ク ロ の 概 要 アンケートデータの特徴は多様なデータ形式の混在にある。とりわけマルチアンサー とシングルアンサーとの混在はアンケート調査の分析を煩項なものにしている。 SPSS6に は 阻JLT RESPONSE という複数回答用のプログラムがあらかじめ用意されてい るが、 SASシステムにはそのような機能はない。そこで項目番号を指定すればマルチ アンサー/シングルアンサーを意識せずにクロス集計処理ができるマクロを作成し た。探索的段階で仮説検証を繰り返しながらデータの理解を深めるとき、データの型 や反応数を意識せずに、思考を分析に集中できることは対話的な処理では重要な要件 ではないかと考える。今回試作したマクロは当日資料配付する。 4 .まとめ アンケート調査の専用アプリケーションの機能を検討したところ、これらのソフトは 専門家が受託した業務を一括処理する場面を想定して作成されており、対話的な分析 では、 SASのほうに可能性がある。 一般的に専用ソフトは仕様の確定時に想定しなかった用途には向かず、汎用的なソフ トは専用ソフトほど使いやすくはない。しかし、汎用的なソフトはカスタマイズを行 うことで様々な用途に応用が可能である。 SASを用いたこれからのアンケートデータ の処理は ‑他のアプリケーションとの連携のもとで ‑対話的な処理が可能な方向にカスタマイズすることで より有効な分析ツールになると考えられる。 【注釈および引用文献】 有馬昌宏、「パソコン版 S A Sシステムによる大規模統計調査データの解析 J, SUGI‑ ] ' 9 2 論文集, pp297‑314,1992 田村佳郎, iPROC GTABULATE ‑TABULATEの自動グラフィック化プログラムー」 SUGI‑]'92論文集, p p .125‑136,1992 新城博子 渡辺俊彦, iSASシステムとレーザーフォームを用いた一覧表とグラフの 作成について J, SUGI‑] ' 9 2論文集, p p .111‑118,1992 SAS Technical News, P.9 ,1994.6.20 一太郎 Ver.6はジャストシステムの商標である。 S P S Sは S P S S社の商標である。 4 0 8一

418.

日本 SASユ ー ザ ー 会 (SUGI‑]) 医薬シンポジウム 臨床試験データの解析と SAS 大橋 立育雄 東京大学医学部健康科学看護学科疫学・生物統計学 TheAna l y s i so fC l i n i c a lT r i a lD a t aandt h eSASsysωm Y a s u oO h a h s i U n i v e r s i t yo f T o k y o o k y o Hongo,Bunkyo・ku,T 総合改善度から、より客観的な試験の目的・相に応じたエンドポイントを対象とした臨 床試験が行われるようになり、多様な解析手法を駆使することが必要となってきている。 V a l i d a t i o nを考虚したとき、プログラム開発はどのように行うべきか、豊富な SASの機 能をどう使いこなしていくべきか、実際の開発研究の事例も含め、議論したい。 ‑ 4 0 9

419.

日本 SASユーザー会 (SUGI‑]) 経時データ解析の事例紹介 副甲状腺機能充進症に対する用量設定試験 井村伊久子 東京大学医学部健康科学看護学科疫学・生物統計学 Anexampleoflongitudinaldataanalysis Ad O S E ト 五n dings t u d yf o rh y p e r p a r a t h y r o i d i s m l k u k oImura U n i v e r s i t yo fTokyo Hongo, Bunky o ‑ku, Tokyo, 経時データは臨床試験においては必ずというほど測定される型のデータであるが、その 解析のための標準的な方法が確立しているとはいえない状況である。 また、近年理論的な展開が MixedE f f e c tmodel、GEEなどなされつつあり、その中に は 、 SASの Mixedプロシジャ等により適用可能な手法もあるものの、使いやすいプログラ ムパッケージの開発はまだまだ十分ではない。また我々の解析の経験も十分蓄積したとは いえない状態である。 そこで、副甲状腺機能克進症に対し活性型ビタミン D3の投与を行った用量設定第 2相試 験を例に、経時データを解析する際の問題点を挙げ、いくつかの手法を適用した結果、及 び SASの利用法についての紹介を行う。 n f o n n a t i v eC e n s o r i n gと、同一個人を複数 経時データ解析の問題点として、欠測、特に I 回測定することによる個人内の測定値聞の相関の考慮、の 2点が挙げられる。異なる手法を 適用するということはこれらに対し異なる仮定をおくことになるが、仮定の誤りに対しロ バストな手法を用いることが望ましい。 ここでは、いくつかの相関構造を仮定し、 REML推定、 GEEによる推定等を行った。そ の際の SASの利用法としては、 REML推定のためには Mixedプロシジャを用いることが 可能であるが(相関構造は限られる)、 GEEの実行にはマクロの利用か IMLプロシジャに よるプログラミングが必要となる。 ‑410一

420.

日本 SASユーザー会 (SUGI‑J) 臨床試験データ解析の事例紹介 腎移植における免疫抑制剤の第 E相比較試験 里井洋一 1) ・大橋靖雄 2) 1)藤沢薬品工業株式会社・開発本部・臨床統計企画室 2 ) 東京大学医学部・健康科学・看護学科・疫学生物統計学 Anexampleo fd a t aa n a l y s i so fc l i n i c a ls t u d y : Aphasem c o m p a r a t i v es t u d yo fanimmunosuppressant f o rkidneyt r a n s p l a n t a t i o n YOICHISATOI1 )・YASUOOHASHI2 ) LTD. 1 )FUJISAWAP h a r m a c e u t i c a lCO., 1 ・ 6, 2・ chome, Kashima, Yodogawa・ ku, OSAKA532 2 ) S c h o o lofHealthS c i e n c e sandNursing, U n i v e r s i t yofTOKYO 7・ 3・ 1 , Hongo, Bunkyo・ ku, TOKYO1 1 3 新薬の有用性を確認する第 E相比較試験においては、対照薬との無作為化同時比較試験 が最も適切な方法であるが、各種の理由から同時対照群を用いることが困難な場合もある。 今回、我々が経験した腎移植における免疫抑制剤の第 E相比較試験では、疾患自体が極め て重篤な疾患であること、対象となる患者数が非常に少ない疾患であるため同時比較試験 の実施には長期間を要することが予測される一方で、現場の臨床家からの試験薬に対する 要望と期待が高いこと、さらには試験薬の最適な用法・用量や併用薬との組み合わせが未 だに確立されていないことなどを勘案し、ヒストリカルコントロールとの比較を採用した。 ヒストリカルコントロールには、一般に種々のバイアスが混入する危険性があるとされて おり、適用には充分な注意を要する。そのため、それらのバイアスを可能な限り少なくし、 比較可能な対照群を設定するために、試験実施施設で過去の一定期間内において治療を受 けた全症例を調査し、適格規準に該当する症例の中から 1 :1のマッチングにより試験薬 群の症帆と患者背景の類似した症例を選択することとした。マッチングに際しては、多様 な因子がリスク要因と考えられることから、集積したヒストリカルデータに対して多変量 解析を適用して重要な予後因子を選択し、求めたモデ ルから算出したリスクインデックス を用いて症例を選択した。 本試験の主要なエンドポイントである移植腎生着率や患者生存率の比較については、生 存時間解析を適用し、 1年生着率、 1年生存率について同等性の検証を行った。また、拒 絶反応の発現率の比較については、初回発現まで・の期間についての生存時間解析や人年法 による発現率についてのシミュレーションによる並べ替え検定を実施した。 これらについて SASを用いた解析の事例を紹介する。 ‑ 4 1 1一

421.

日本 SASユーザー会 (SUGI‑]) 解析プログラムの開発、検証過程 ある臨床試験データ解析システムの例一 問自 部 理 発 開 主回全品 光社 舟式 株 薬 製 田 持 ADevelopmentandV a l i d a t i o nP r o c e s so fComputerProgramsf o rS t a t i s t i c a lAna l y s i s ‑Exampleso fAC l i n i c a lDataAna l y s i sSystem・ K o i c h iFunaki t d . MochidaP h a r m a c e u t i c a lC o .,L B i o s t a t i s t i c sD i v i s i o n 臨床試験データの解析は近年急激に多様化、複雑化しており、従来中心的に用いられ てきた手法だけでは太刀打ちできない状況にしばしば遭遇するようになった。このよう な状況におけるプログラムの開発、検証過程について弊社の臨床試験データ解析システ CATS) を例として検討する。 ム ( .システムの概要 CATS は 各 々 独 立 に 機 能 す る SAS マ ク ロ ・ プ ロ グ ラ ム を 集 め た ラ イ ブ ラ リ ー と SAS品 F で構成され、 AFから必要となるマクロ・プログラムを順次呼び出して処理を行 う。対応のある t ・検定の場合を例とすると、 t ‑検定用の AF は散布図用、 t ‑検定用、順位 和検定用の各マクロを順次呼び出して処理を行う。また、それぞれのマクロ・プログラム は必要に応じ他の AFからも利用される。このようにモジュール化された既存のマクロ・ プログラムを再利用することで開発時の負荷を軽減させている。 ‑開発過程 開発は解析基本部分のコーディング、マクロ化、 AFプログラムとの統合の順に行われ る 。 0解析基本部分のコーディング:解析の基本部分をコーディングし(ほとんどの場 SAS プ口、ンジャーを利用)、出力の検証を行う。検証の対象は論文、教科書、 SAS マニュアル、 AS/IML、データステッ 他のソフト・ウェアの出力等が中心であるが、場合によっては S プ等で作成した検証ルーチンを用いることもある。従来はほとんどの場合こういった検証 方法を取ることが可能であった。しかし、昨今は SAS マニュアルだけがたよりといった ケースも多く、結果に不安を感じることも少なくない。 Oマクロ化:解析基本部分をマクロ対応に変更した後、コメント、前処理、後処理など を一定の方法で追加し、検註を行う。検証の対象は上記の結果である。なお、出力は SAS の ‑412‑

422.

冗 長 な ( ?)出力のままであるため出力編集ルーチンの検証は不要である。また、検証の 容易さを考慮、し、マクロのネスティングは原則的には行わない。 OAF プログラムとの統合 :AFに必要なマクロ・プログラムを呼び出すプログラムを記 述し最終的な検証を行う。検証の対象は上記の結果である。 なお、三段階の検証結果およびマクロ・プログラム・リスト、 AF プログラム・リス トは参照可能な形式で保存される。 .利用 現在の出力形式はほとんどの場合ノ¥ード・コピーで、磁気媒体への出力は症例一覧表 など極く限られた範囲のみである。これらの出力と公表論文あるいは当局提出用資料な ATSの中では考慮されていない。 どとの聞の整合性の保証は C ‑413一

423.

日本 SASユーザー会 (SUGI‑J) 品質管理シンポジワム 品質管理データベースと S A Sによる解析 新製品開発と S A Sシステム 芳賀敏郎 東京理科大学工学部経営工学科 Q u a l i t yC o n t r o lDatabaseandAna l y s i su s i n gt h eSASsystem NewP r o d u c tDevelopmentandt h eSASsystem T o s h i r oHaga S c i e n c eU n i v e r s i t yo fTokyo 1 ・3K agurazaka,S h i n j u k u ‑ k u,Tokyo 品質管理は,望ましい品質の製品を安定して生産するための手法として出発した.その 後,顧客が満足する品質の製品を開発するための手法としての役割を期待されるようにな った. このパネル・デイスカッションでは,この 2つの面から,品質管理を取り上げ, SAS との関わりについて討論する. 生産部門では,原料の受け入れ検査結果,製造工程の記録,製品検査データ,クレーム などの市場情報などが発生する.これらをコンビュータのデータベースに蓄積し,解決す べき問題が発生したときに,必要な情報を抽出し,多面的かっ探索的に解析して,問題の 解決に役立てることが期待される.このための品質管理情報システムについては,すでに 1987年の SUGI‑]で新日本製鉄の事例が報告されている. このようなシステムに対するニーズは高いが,これを実現し,維持するするためには相 当の努力と労力を必要である.このために,配慮すべき点,解決しなければならない点, などが提起される.フロアの方々から経験が語られ,議論が発展することを期待する. 198 7年にはデータベースの構築にはメインフレーム(大型)コンピュータを必要と したが,ダワンサイジングが進み,生産工程からのデータの取り込みやデータベースの構 築が容易になった.その一例が報告される.そこでは,ユーザ一作成のシステムと SAS との役割分担や, SASに対する要望も議論されるであろう. 新製品開発のための品質管理については,まず,神田先生に「商品企画七つ道具」につ いて紹介して戴く.ここでは,コンジョイン卜分析など, SASの世話にならねばならな い手法について解説され,今後これらの手法が普及するきっかけになることが期待される. ついで,この分野での問題点が具体例とともに紹介されるが,フロアの方々からの積 極的な発言が期待される. ‑414‑

424.

日本 SASユーザー会 (SUGI‑]) 製造現場における品質管理データベース化 入倉則夫 日本電装株式会社 電機製造 2部 第 1生産技術室 Q u a l i t yC o n t r o lD a t a b a s eandA n a l y s i si nAutomotiveI n d u s t r y N o r i oI r i k u r a NippondensoC o .,L t d .An j oF a c t o r y EngineE l e c t r i c a lM f g .D e p t .2A l t e r n a t o rP r o d u c t i o nEng.C e n t e r1 2・ 1 , Nagane,S aω‑cho,An j o・ s h i,A ic h i 1.品質管理データベースとは 自動車部品製造業における品質に関するデータは多岐にわたるが、いわゆるデータベー こ大別できる。 ス(以下 D Bと略記)化については、以下の 3点 l ①市場クレーム情報・・・納入先を含む市場での品質トラブ、ルに対するデータ類(発生日 章モードほか) 時、場所、故障部位、故1 ②工程内の品質管理データ・・・日々の操業条件、管理図、工程能力など ③工程解析結果のデータ・・・特定の課題に対するデータ解析(実験の計画、解析、対策 果ほカミ) 製造現場における品質管理データの活用の観点から②・③について考察する。 2. 工程内の品質管理データ 自動化した大量生産システム下では、多くの企業が日常の品質管理データを長期間にわた って保管している。これは、市場クレーム情報に対して、大量かっ長期間にわたる性質の 故障モードか否かの観点から、当時の製造条件を再検討するためである。その作業の容易 化、迅速正確化の為に、手軽な D B化が必要である。 ム 唱E d侍 Fhu

425.

3. 工程解析結果のデータ いわゆるデータ解析の事例を D B化して、生産技術面、工程管理面のノウハウの保管、横 展開を計るねらいである。労働装備率の高い製造工程では、設備の良否が品質を左右する。 そこで、生産技術、保全診断技術、工程管理方法について、検索機能を中心とした D B化 が必要である。 4. 今後の展開と課題 (1)工程内の品質管理データについて wsレベルの分散的、中小規模の安価なシステムの構成や、製造工程のオンライン でのデータ収集方法の研究が課題となる。 ( 2)工程解析結果のデータについて ノウハウの体系化、検索プレゼンテーションなどの研究が課題となる。 ‑416一

426.

日本 SASユーザー会 (SUGI‑J) SASを使って品質管理業務を如何に改善するか 早川 l 豊 日立超 LS 1エンジニアリング株式会社 システム開発部チーフシステムエンジニア Howcanweimproveq u a l i t yc o n t r o lt a s k sbyu s i n gSASs y s t e m ? YutakaHayakawa C h i e fSystemEngineerSystemDevelopmentD e p t . H i t a c h iULSIE n g i n e e r i n gC o r p . 2326lmai,Oume‑shi,Tokyo 製造業におけるリエン、ジニアリングの波の中で、製品の品質レベルを向上させながら、更 に品質管理業務全般を再構築していくには、品質管理システムの機能はどうあるべきでし ょうか。 実際の品質管理業務の業務プロセスには、以下のものがあります。 ( 1 ) 品質状況を把握し問題の有無を確認する業務 ( 2 ) 品質上の問題を解析し対策する業務 ( 3 )対策結果が目的の結果となっているかを確認する業務 ( 4 )製品の品質レベルが基準を満たしているかを確認する業務 ( 5 )製品の品質管理指標を決定する業務 ( 6 )製品の品質レベルを下げずに原価を低減する業務 これらは、各々個別の業務ではありますが、全体として有機的に連携することで、始めて 製品の品質が、維持、向上して行くことになります。 システムは、各々の業務個別に支援するのではなく、製造ラインから上がってくる情報を もとに、各々の業務に利用できるような機構、機能を備えておく必要があります。特に、 各々の業務が、同じ情報を元に同じ手法を用いて、遂行される必要があります。 SASシステムは、このようなシステムを構築するために必要な機能を全て備えています。 しかしながら、単純に機能を使えるようにするだけでは、品質管理業務全般を支援するこ とは出来ません。データベースシステムや、取り込んだデータの管理、利用可能な機能の 管理やシステム環境の管理全般を、取り扱う機構が要求されてきます。 弊社はこのような要求を満たすために、製造業向け品質管理用 SASアプリケーション iVC1M/CHCJ を開発しました。 ‑417

427.

日本 SASユ ー ザ ー 会 (SUGI‑]) I 商品企画七つ道具lに よ る 新 商 品 開 発 神田範明 成城大学 経済学部経営学科 N e wP r o d u c tD e v e l o p m e n tb y' S e v e nT o o l sf o rN e wP r o d u c tP l a n n i n g ' N o r i a k iK a n d a D e p a r t m e n to fE c o n o m i c s, S e i j oU n i v e r s i t y 6 ‑ 1 ‑ 2 0S e i j o, S e t a g a y a ‑ k u, T o k y o 題ケを 課一 J ' 急マ具で 緊'道の るてっす い当七た てを画果 れ点企を ら焦品割 めに商役 求ス﹁な がセ'要 業ロた重 企プしが るの合析 ゆで融分 らまをト ある法ン のす手イ 固定たヨ が確しジ わを案ン はト考コ 化プにや︒ 率セた析る 効ン新解れ ︐コぴ量さ 化品及変奨 ム商'多推 テ新法はに スは手でい シでの中大 の表C のが 発発Q こ用 開本と︒活 品︒グるの 商るンす S 旨 新 あ イ 案A でテ提 S 要 キーワード:グループ・インタビュー,アンケート調査, ポジショニング分析, 多 変 量 解析,発想法,コンジョイント分析,品質表 1 . はじめに ツ状を要さ七て シいげは難画え 一し上者困企変 ダ厳売費の品に 一たに消面商ム リし実たト﹁テ 的う着つスたス 治そはなコしシ 政し品にも案る 'か商かか提れ 追した豊し年ら 急︒し︒︐昨得 のい起るず︒がが 固な喚すせるら想 諸らを感足あ者発 ア当要痛満で筆な ジ見需ては方をク アがのめで一画一 南料者改度る企ニ 東材費を程な品ユ とい消さ品く商 境るでし良深るく 環明し難改はめ高 高は案とのみ占が 円に提さ少悩を性 の済を白多の分観 有経ト面︒者部客 曾本プのい当な 未日セ発ぽ担要て う'ン開つ発重い いとコ品き聞の用︒ と安い商飽︒発をる 台不し新つい開﹂す 円会新'かな')案 印社'り'もは 7 提 ='もおでででP を ル知でて様ま表(と ド欠中し多う発具こ プ況伸求はつい 1 ののばが言本道く 2. 商 品 企 画 七 つ 道 具 (P7) と SAS 次 頁 図 1に 推 奨 す る 商 品 企 画 の 流 れ の 例 と 共 に 掲 げ る 。 た だ し , あ く ま で も 標 準 的 な も の で あ り , 順 序 や 利 用 す る 手 法 は 事 情 に 合 わ せ て 変 更 す れ ば よ い 。 表 1に 各 手 法 の 概 略 を 述べる。手法そのものの細部については,文献口] [ 2 ]を 参 照 さ れ た い ( 詳 細 は [ 3 ]で)。 こ の 中 で 特 に SASの 活 用 が 有 効 な の は 次 の 3手法である。 ① アンケート調査・・・・・データ集計,グラフ化,重回帰分析,判別分析等。 ② ポジショニング分析・・・因子分析,クラスター分析等で既存商品の相互位置 関係を検討する。 ③ コンジョイント分析・・・価格と品質,デザイン等との兼ね合いを調べるのに最 R O CT R A N S R E Gを用いれば順序データでも容易に分析可能である。 適。 P 3.事 例 紹 介 ( 当 日 ) 仮想の事例であるが, 極 め て 現 実 性 の 高 い rOLのための元気商品」 の企画例を紹介。 く参考文献> [1] 神 田 範 明 (994): r 商品企画の新たな展開に向けて一商品企画七つ道具の提案 J (品質月間テキスト N o . 2 4 4 ) ,日科技連出版 [2] 神 田 範 明 , 長 沢 伸 也 , 今 野 勤 , 岡 本 員 一 , 大 藤 正 (994):.活用シリーズ『商品 ol .4 5 No.7‑12. (国)日本科学技術連盟 企 画 七 つ 道 具 J "品質管理, V [3] 神 田 範 明 , 長 沢 伸 也 , 今 野 勤 , 岡 本 虞 ー , 大 藤 正 0995.10月予定): r 商品企画 七 つ 道 具 一 新 商 品 開 発 の た め の ツ ー ル 集 ‑J , 日 科 技 連 出 版 418‑

428.

<開発のステップ> > <併用を推奨する <商品企画七つ道具 ( P7 ) ~ ① ニーズの探索・検討 IM ュー│ ̲2(アンケート調査法│ ② QC手 法 な ど > j 親和図,連関図 j 多変量解析 i・因子分析/主成 ̲ 3 1 ポジシヨニング分析│ ③ ; 分分析 !.クラスター分析 i・数量化理論 i‑霊回帰分析 i.判別分析 <関連業務> 各種情報収集 ー 晶 ・ ・ 』 圃 ‑顧客,販売チャン ネル等からの声 ‑ヒット商品分析 ‑マスコミ情報 ‑専門誌情報 ‑生活実態,商品 利用実態の調査 社内技術シーズ調査 (活かせる技術) 社外技術動向調査 ;‑MDS 想 法 4 1.発想チェック ④ .リスト コンセプト発想 コンセプトの樹立 5Il l .表形式発想法 章受二図グ法 註二スンズ法 措一ク・ミ一想 主一ツン一ニ発 汁一図図図リ一ト法・他 訂一和関統トレス M 一の N キそ 航一親連系マブ 発 各種発想法 ⑤ 三│コンジョイント分析│ ; 鰍 計 吋 重回帰分析 ⑥ j 品質機能展開; 一回 設計・試作・評価 ⑦ ③ 7 Z Z K │グ j 竺竺竺; i ‑多変量解析 i j ・実験計画法 E .・信頼性工学; 生産技術の確立 ⑩ ⑪ ⑫ ⑬ 試作の技術的評価 ュー│ 2fアンケート調査│ ;多変量解析; <図 1 商品開発の流れと P7> ‑419‑

429.

<表 1 N oI 手 法 P7の各手法の目的と概要> 主な目的 ニ ﹃ 見いる 発しぺ の欲調 ズがか 一何の ・ユ 一タ プピ グイ ルン i 句 21アンケート │ニーズの検証 1 . . . .本当に欲し いのか調べ 調査 る 概 要 ‑数名 ( 5 . . . . . . 6名)の代表的な消費者に生活実態や商品の利用状況,不 満点,要望などを自由に語り合ってもらい,その中からニーズを探る. .費用は余りかからない. ・仮説の発見は勿論,仮説の(定性的な)検証にも応用できる. ・定性的調査の代表。事前の計画立案,対象者の選択,司会者の能力, 言語データの解析などに注意を要する. ‑大量の消費者に回答を求め、グループ・インタビューから得られた仮 説などを定量的に検証する. ‑自由回答から思わぬヒントを得る場合もある. ・通常数百名以上の回答が必要なため,費用がかかる. ・定量的調査の代表。事前の質問と回答の選定,表現の検討に注意を要 する. ・対象集団の決定、サンプリングを厳密にする必要がある. ‑豊かな解析カからは豊かな情報が得られる.特に多変量解析は商品の ポジショニング,商品のクラスタリング,満足度の要因解析等に好適 である. ・解析の流れを決めてから調査票を設計すべきである. 関化係? 置ル関は 商係﹃ 位デのマ のモと?キ ロ聞の他はス ン ニ ヨ シ析 ジ分 ポグ q o ・調査データを用いて,商品問の位置関係を明らかにし,マップ上にプ ロットして比較検討する.主観的に決めた軸を用いる方法もある。 ・一般的には、いくつかの商品の多次元の評価点を因子分析や主成分分 析にかけ、その得点の平均値を用いる.数量化 類やMDS ( 多 次元尺度構成法)も有効.商品の分類にはクラスター分析が使える. .商品空間上でのスキマはそのようなコンセプトの商品の不在を意味す るので,新規開発の可能性を示唆する. m.w デを イくア アなデ 的想れイ 羅発もア 網ア﹃ ザノ 'hE ク エ ス チリ 想・ 発 AT ・オズボーンのチェック・リスト.発想のもれ・ぬけがないか自己チェ ックし、多様な発想に至るヒントを提供する便利なリスト. ‑次の 9項目の大分類とそれぞれの小項目から成る. ①他に使い道はないか? ②応用できないか? ③修正したら? ④拡大したら? ⑤縮小したら? ⑥代用したら? ⑦アレンジし 直したら? ③逆にしたら? ⑨組合わせたら? 51表形式発想法│表の形でのア ・表の形にまとめた 3種類の狙自の発想法。ユニークなアイデアを得た い場合に最適である。 イデア発想、 時効率よく ①組合わせ発想法・・・課題の属性や状況を分解し,組合わせることで 新しいアイデアを得る方法. ユニークな アイデアを ②アナロジ一発想法・・課題そのもの,またはその逆設定からアナロ ジー(類比)を探し,解決に導く方法.逆転の発想を得られる. ③シーズ発想法・・・・技術シーズの活用を図るのに上記の発想法を応 用し,システマティックに展開できるようにした. 品︑メめ ト商かイ決 プ化なる的を セ適んす体ジ ン最どに具一る コの﹃ 析 分 ヨ ' 卜 一 ン ︑ ノ ンイ コ 戸 b ‑コンセプトはいろいろな属性(大きさ,色,形,材質,機能,価格等 々)の組合せによって表現される.どの属性が選好にどう影響し,ど う選ぶと震適かを消費者に対する実験から検証する. ・多属性の場合は直交表を使って属性の水準を割り付けるので,実験計 画法の知識が活用できる. ・実物(試作品)での評価が好ましいが,通常は作れないので,イラス ト,文章等で組合わせごとにカードを作成して用いる. ・特性値が計量値的な評価点なら,そのまま分散分析による解析や重回 帰分析,数量化 I類が使える. ・一般的には順序データ(好ましい方から順位付けしたデータ)を用い て,その順序が再現できるような各属性の「効用 J をモデル化し,推 定する. ント性 リプ特 のセ質 とン口問 計コをへ 設ク﹃ 表 質 品 守S ・コンセプトが明確になってもそこから設計迄への距艇はなお遠い.技 術者と共に具体化するにはやはり QC の品質機能展開,中でも「品質 表」の一層の有効活用を推奨したい. ‑品質表により,ここまでの検討結果がすべて明確に設計品質として スムースに橋渡しされる. ‑従来の「要求品質」は要求項目のウェイトが必ずしも明らかではない が,コンジョイント分析等で相当部ぬまで数値化することができるた め,効率と正確さがかなり向上する。 (注:コンジョイント分析ではすべての属性を精密に決定することは困 難であり,それを実現すべき品質特性が明らかになる訳ではない) ‑420‑

430.

日本 SASユーザー会 (SUGI‑J) 商品開発のための市場調査のポイント 一既存商品の市場調査を中心に一 高島邦彰 いすゾ自動車株式会社 圏内営業企画室 MarketR e s e a r c hf o rP r o d u c tP l a n n i n g KuniakiTakashima ISUZUMORTORSLIMITED 6・2 6・1M i n a m i ‑ o i,Shinagawa・ku,Tokyo. 1.市場調査担当の役割 2 . 商品改良と商品開発 3 . 定期調査の重要性 4. 開発への参加(コンセプト作りから市場品質評価まで) ① 市場構造とその変化の把握 ② 商品のポジション把握とターゲットの設定 ③ ターゲットのプロフィルと商品コンセプト ④ 目標設定と社内評価 ⑤ 商品の市場品質評価 5. 開発設計担当との関係のあり方 6 . 調査分析結果を活かす為に 7. 調査担当メンバーの育成 ‑ 4 2 1一

431.

日本 SASユーザー会世話人会 代表世話人: 夫楕靖雄 東京文学 副代表世話人:藤沢薬品工業株式会社 松岡 j 事 会計: =菱銀行 青沼君明 世話人: 株式会社竹中工務居 八木 E己 株式会社日立製作所 小野寺 徹 国際文学 夫槻聴幸 キリンビール株式会社 本山│ ィ ク' ) 9ィ ) v XY V 'Yィ ' ) ? 西 東京文学 市 川 I1 申 科研製薬株式会社 渡辺敏彦 株式会社 S A Sイ双子ィチユ卜Yャ ハ 。y 奥山真一郎 株式会社 S A Sイ双子ィチユ一卜Yャ ハ 。y 鈴木真弓 事務局: ~ 次男 [順不同] ※本文中の商標 I d:各社の宣録商標です。 ※本論文集 I d:、再生紙を使用レております。 事務局 株式会社 S A S 1 j A T 1 7 1 ‑卜Yャ ハ 白Y 内 〒1 0 4東京都中央区勝どき 1丁目 13番オ号イヌイピル・力チドキ T E L0 3 ‑ 3 5 3 3 ‑ 3 7 8 0 F A X0 3 ‑ 3 5 3 3 ‑ 6 9 2 7 干5 4 1大阪市中央区淡路町 3丁目オ番 7号シンコーピル T E L0 6 ‑ 2 2 2 ‑ 7 6 9 1 F A X0 6 ‑ 2 2 2 ‑ 7 6 9 5