For Higher
Customer Satisfaction,
We Bridge
the SAS System
Between
Customer’s World.

SPRING 2011
特集

SASから始めるSQL

01

SAS Academic News- 事例紹介- コラム「SAS四方山話」

09

Q&A

18

SASトレーニングのお知らせ

21

最新リリース情報

23

SASユーザー総会のお知らせ

24

SQLは長い歴史を持つデータベース操作言語で、現在も多くのリレー

データ処理方法を持つ言語を学ぶことで、プログラミングの幅を広げる

ショナルデータベースで標準的に使用されています。SAS以外のリレーことができます。例えば、複数のテーブルから情報を取得するような処

ショナルデータベースでSQLを使用していた方は、その知識をSASで理はSQLを利用すると簡易に記述できるため、その箇所だけSQLで書直接生かすことができます。まだSQLに触れたことがない方も、これかくケースがあります。処理の内容によってDATAステップとSQLを使い分らSQLを学ぶ利点はあります。DATAステップとは異なる構文、異なるけることで、プログラムの開発効率をスマートに上げることができます。

02

SPRING 2011

[特集] SASから始めるSQL

特集

SASから始める
SQL

2

本特集ではSQLの基本であるデータの抽出と、代表的な処理である

使用する場合、次のようにSQL ステートメントをSQLプロシジャの中にテーブルの結合およびサブクエリについてサンプルプログラムと図を交記述します。

SQLプロシジャ

SQLプロシジャはBase SAS ® に含まれるプロシジャです。SASでSQLをえてご説明します。
PROC SQL;< SQLステートメント>;/* QUITステートメントで終わる点に注意! */

1

QUIT;

SQLとは
SQLステートメントは一つのまとまった処理を実行するための命令文です。複数の句によって構成され、必ずセミコロンで終わります。

SQLとはリレーショナルデータベース管理システム（RDBMS）において、

また、下記のように一つのSQLプロシジャの中に複数の独立したSQL

デー タの 抽出や更新を 行 うための言 語で す。標 準規格として多くのステートメントを記述することも可能です。

データベースでサポートされており、SASでもサポートしています。
SASでSQLを使うと、DATA ステップとほぼ同等の処理をデータセット
や 外部デー タベースの テ ーブル に対して行 うこと がで きま す。ま た、SQL文の中でSAS関数、データセットオプション、マクロなどSAS特有の機能も使用することができます。
SQLとDATA ステップにて使用する用語の名称が異なるものがあります。主な用語の違いについては以下の表をご覧ください。
SQLとDATAステップ用語比較表
SAS DATAステップにおける名称 SQLにおける名称
データセットテーブル

オブザベーション行

変数

カラム（列）PROC SQL;< SQLステートメント>;< SQLステートメント>;< SQLステートメント>;
QUIT;

SPRING 2011

[特集] SASから始めるSQL

03

このクエリは、S EL ECT句で指定したカラム(name、weig ht、age) を、

3

FROM句で指定したテーブル（sashelp.class）から抽出し、結果をアウト

データの抽出と加工

プットウィンドウに表示します。カラムはSELECT句で指定した順番で表示されます。

S Q Lで 最 も多く使 用され るデ ー タの 抽出処 理 について 説 明しま す。
データの抽出とは、既存のテーブルからデータを読み込む処理です。
DATAステップの「データセットの読み込み」と同じ処理です。
SQLでデータの抽出処理を行うには、次のようなSQL ステートメントを記述します。

/* クエリの基本構文*/
PROC SQL;
SELECT カラム名
FROM ライブラリ名.テーブル名
WHERE 抽出条件
ORDER BY カラム名;QUIT;

S Q Lプロシ ジャの中で S E L ECT句を 使うと、抽出結果はアウトプット
ウィンドウに表示されます。SELECT句単体では、新しいテーブルは作成されません。
また、次のようにSELECT句でアスタリスク（*）を指定するとすべてのカラムが抽出されます。

上記のようにSELECT句から始まるSQLステートメントをクエリと呼ぶこ

PROC SQL;/* すべてのカラムを抽出する */とがあります。クエリには必ずSELECT句とFROM句が必要です。それ以外の句は処理の内容に応じて追加します。
この章ではクエリにおけるさまざまな句の使い方について、サンプルプ
ロ グ ラ ム を 用 い て 説 明 し ま す。 な お 、サ ン プ ル プ ロ グ ラ ムで は

SELECT *FROM sashelp.class;
QUIT;

sashelp.classを用います。これはSASのsashelpライブラリ配下に標準で格納されているデータセット（テーブル）です。

SELECT文の前にCREATE TABLE ASステートメントを追加することで、

s a s h e l p . c l a s s に 格 納 さ れて い るデ ー タは 以下の 通りで す。な お、

クエリの結果をテーブルに出力できます。大きいテーブルを扱う場合は

SAS ® 9.2から文字データが日本語に変更されています。

抽出結果をテーブルに出力することが有用です。

sashelp.classの内容
OBS

Name

Sex

Age

HeightWeight1

アルフレッド

男子

14

69

112.5

2

アリス

女子

13

56.5

84

3

バーバラ

女子

13

65.3

98

4

キャロル

女子

14

62.8

102.5

5

ヘンリー

男子

14

63.5

102.5

6

ジェームズ

男子

12

57.3

83

〈7行目以降省略〉

PROC SQL;/* 新規テーブルを作成 */CREATE TABLE table1 AS
SELECT *FROM sashelp.class;
QUIT;

上記プログラムを実行するとworkライブラリの中にテーブルtable1が作成されますが、他の恒久ライブラリの中にテーブルを出力することもできます。

3.1 データの抽出（SELECT句、FROM句）
クエリの最も簡単な形は、次のようにSELECT句とFROM句のみを含みます。

/* tempライブラリの割り当て */LIBNAME temp "c:¥temp";
PROC SQL;/* 新規テーブルを作成 *//* 最も簡単なクエリ */PROC SQL;
SELECT name, weight, age
FROM sashelp.class;QUIT;

CREATE TABLE temp.table1 AS
SELECT *FROM sashelp.class
;
QUIT;

04

SPRING 2011

[特集] SASから始めるSQL

3.2 データの並べ替え（ORDER BY句）

結果テーブル（age降順、height昇順）

特定のカラムの値に応じて行を並べ替えるにはORDER BY句を用いま

OBS

Age

す。下記の例では、カラムageに含まれる値に応じて行が昇順で並べ替

1

16

フィリップ

72

2

15

ジャネット

62.5

3

15

メアリー

66.5

4

15

ウィリアム

66.5

5

15

ロナルド

67

6

14

キャロル

62.8

えられます。

PROC SQL;
CREATE TABLE sorted AS
SELECT age, name, height
FROM sashelp.class/* ageによってデータを並べ替える */ORDER BY age
;
QUIT;

Name

Height〈7行目以降省略〉

SQLでは、クエリを実行すると行の順序が変わってしまう場合があります。
行の順序を保つ必要がある場合はORDER BY句を指定してください。

3.3 抽出条件の指定（WHERE句）
デフォルトではデータは昇順で並べ替えられます。降順で並べ替えるに

WHERE句でデータの抽出条件を指定できます。WHERE句の条件に合はカラムの後に「DESC」を記述してください。

致した行がテーブルから抽出されます。
SQLのWHERE句では条件式を記述します。条件式は真・偽について評価され、真の場合に限り該当の行が抽出されます。条件式では比較演

並べ順キーワードについて

算子、論理演算子、または特殊演算子を用いることができます。それぞ

カラムの後に「ASC」を記述することで、昇順で並べ替えることを明れにおける代表的な演算子を例に挙げて、説明します。

示的に指定できます。
ASC: 昇順● 比較演算子

DESC: 降順

SAS DATAステップとほぼ同様の比較演算子を使うことができます。
例えばカラムageが15より大きい行を抽出するには、次のようなプログラ
ムを記述します。
/* 降順で並べ替える */ORDER BY age DESC

PROC SQL;
CREATE TABLE condition1 AS
SELECT age, name, height
FROM sashelp.class

結果テーブル（age降順）
OBS

Age

Name

/* 抽出条件を指定 */Height

1

16

フィリップ

72

2

15

ロナルド

67

3

15

メアリー

66.5

4

15

ウィリアム

66.5

5

15

ジャネット

62.5

6

14

ヘンリー

63.5

WHERE age > 15;
QUIT;

結果テーブル（age > 15）〈7行目以降省略〉

OBS

Age

1

16

Name
フィリップ

Height72

SOR T プロシジャと同様に、複数のカラムの値を対象とした並べ替えを行うこともで きます。次のようにOR D ER BY句で複数のカラムを指● 論理演算子

定します。

DATAステップのWHEREステートメントと同じように、「AND」「OR」「NOT」
論理演算子が使用できます。以下のサンプルプログラムでは、カラムsex/* ageを降順で、heightを昇順（デフォルト値）で並べ替える */ORDER BY age DESC, heightが「男子」ではない行を抽出します。なお、二つの条件を明示的に区切るためにカッコを記述しています。

PROC SQL;
CREATE TABLE condition2 AS
SELECT age, name, height
FROM sashelp.class/* 男子を除外する */WHERE sex NE "男子";QUIT;SPRING 201105

3.5 重複データの削除 (DISTINCT句)

結果テーブル（男子を除外）
Name[特集] SASから始めるSQL

OBS

Age

Height

1

13

アリス

56.5

2

13

バーバラ

65.3

3

14

キャロル

62.8

4

12

ジェーン

59.8

5

15

ジャネット

62.5

6

11

ジョイス

51.3

7

14

ジュディー

64.3

8

12

ルイーズ

56.3

9

15

メアリー

66.5

クエリの中でDISTINCT句を指定することで、重複する行の削除を行うことができます。例えば、sashelp.classに含まれる変数ageの値の種類や範囲を調べたい場合、次のようにDISTINCT句を指定します。

PROC SQL;
CREATE TABLE unique AS/* ageの値が重複している行を削除する */SELECT DISTINCT age
FROM sashelp.class;
QUIT;● 特殊演算子
INやCONTAINSなどDATAステップのWHEREステートメントと共通する
特殊演算子の他、EXISTSやANYなどSQL特有の演算子を使うことができます。以下、CONTAINS特殊演算子を使ったサンプルプログラムをご紹介します。
下記プログラムを実行すると、カラムnameの中に「ア」もしくは「イ」が含まれている行が抽出されます。

4

テーブルの結合

前 章では 単体のテ ーブルからデー タを抽出する方法 をご紹介しました。本章では複数のテーブルからデータを抽出し、共通カラムを使ってデータを結合する「テーブルの結合」について説明します。結合の中でPROC SQL;
CREATE TABLE condition3 AS
SELECT age, name, height
FROM sashelp.classも特に使用頻度が高いと思われる内部結合と外部結合について説明します。

/* アもしくはイを含む行 */WHERE (name CONTAINS "ア") OR (name CONTAINS "イ");QUIT;

説明にあたって、例として文房具店の販売データを用います。販売デー
タはテーブル商品表と、テーブル売上明細表で構成されます。テーブル
商品表とテーブル売上明細表はそれぞれ異なる情報を保持していますが、両テーブルに共通してカラムIDが含まれる点にご注目ください。
通常、テーブルの結合を行う場合はIDのような共通カラムが必要とな

結果テーブル（nameにアもしくはイを含む）
OBS

Age

Name

Height1

14

アルフレッド

69

2

13

アリス

56.5

3

11

ジョイス

51.3

4

12

ルイーズ

56.3

5

15

メアリー

66.5

6

15

ウィリアム

66.5

3.4 カラム名のリネーム（AS句）
クエリの中にAS句を記述することで、カラム名のリネームを行うことができます。以下のサンプルプログラムを参照してください。カラムageをage2にリネームして新規テーブルrenamedを作成します。
なお、リネーム処理は、抽出元テーブルsashelp.classのカラム名には影PROC SQL;
CREATE TABLE renamed AS/* ageをage2にリネーム */

;
QUIT;

商品表 (one)
OBS

id

item

price

1

1

消しゴム

100

2

2

ボールペン

120

3

3

鉛筆

50

4

4

ノート

210

5

5

ガムテープ

200

6

6

万年筆

1200

7

7

カレンダー

400

売上明細表 (two)OBS

響を与えません。

SELECT name, age AS age2
FROM sashelp.class

ります。

id

amount

date

1

4

4

2011/01/01

2

2

3

2011/01/03

3

7

1

2011/01/12

4

1

6

2011/01/15

5

6

4

2011/01/18

6

94

3

2011/01/22

06

SPRING 2011

[特集] SASから始めるSQL

サンプルテーブルの作成方法
以下のDATAステップを実行し、サンプルテーブル商品表、売上明細表を作成します。
DATA one;
INPUT id item : $15. price;
DATALINES;
1 消しゴム 100
2 ボールペン 120
3 鉛筆 50
4 ノート 210
5 ガムテープ 200
6 万年筆 1200
7 カレンダー 400;
RUN;

PROC SQL;
CREATE TABLE join1 AS
SELECT one.id, one.item, one.price, two.amount, two.date/* 内部結合 */FROM one JOIN two
ON one.id=two.id;
QUIT;結合を行う場合、カラムを「テーブル名.カラム名」という形で記述することがあります。これは、二つのテーブルにおいて同じ名前のカラムがある場
合、どちらのテーブルのカラムであるかを区別するためです。

4.2 テーブルの外部結合
外部結合には、「左外部結合」「右外部結合」「完全外部結合」の3種類がDATA two;
INPUT id amount date : yymmdd10.;
FORMAT date yymmdds10.;
DATALINES;
4 4 2011/01/01
2 3 2011/01/03
7 1 2011/01/12
1 6 2011/01/15
6 4 2011/01/18
94 3 2011/01/22;
RUN;

存在します。
左外部結合とは、左のテーブルに存在するすべての行と、左と右に共通して含まれる行を抽出します。
右外部結合はその逆です。完全外部結合は、両テーブルのすべての行を抽出します。
それぞれをベン図で表すと次のようになります。
左外部結合
今回は、左外部結合について解説
します。

結果

4.1 テーブルの内部結合
内部結合とは、二つのテーブルから指定したカラムの値が一致する行を抽出する処理です。

左
テーブル

右
テーブル

上述の文房具店の例を用いると、テーブル商品表とテーブル売上明細表の両方に含まれる商品だけを抽出したい場合に内部結合を使用します。
具体的には、次のような結果テーブルを想定しています。テーブル商品表とテーブル売上明細表のカラムidの値が一致する行だけを出力します。

右外部結合

完全部結合

テーブル売上明細表6行目のカラムI Dの値は商品表には存在しないため、結果テーブルに出力されません。

左
テーブル

右
テーブル

結果

結果
左
テーブル

右
テーブル

左
テーブル

結果

右
テーブル

また、テーブル商品表3行目のカラム I Dの値はテーブル売上明
細表に存在しないため、これも文房具店の例を用いると、商品表を左テーブル、売上明細表を右テーブル

出力されません。

として左外部結合を行った場合、次のような結果テーブルが出力されます。
結果テーブル(内部結合）
OBS

id

item

price amountdate

結果テーブル（左外部結合）

1

1

消しゴム

100

6

2011/01/15

2

2

ボールペン

120

3

2011/01/03

1

1

消しゴム

100

6

2011/01/15

3

4

ノート

210

4

2011/01/01

2

2

ボールペン

120

3

2011/01/03

4

6

万年筆

1200

4

2011/01/18

3

3

鉛筆

50

.

.

5

7

カレンダー

400

1

2011/01/12

4

4

ノート

210

4

2011/01/01

内部結合によって上記結果を得るには、次のようなSQL文を記述します。

5

5

ガムテープ

200

.

.

FROM句の後に、二つのテーブルをJOIN句で繋げて記述します。また、

6

6

万年筆

1200

4

2011/01/18

ON句を使って共通カラムidを等式で繋いでいます。

7

7

カレンダー

400

1

2011/01/12

OBS

id

item

price amountdate

SPRING 2011

[特集] SASから始めるSQL

07

ベースとなる商品表のデータは全て出力されます。これは売上明細表か

5.1 サブクエリの結果が1行だけの場合

ら商品表にマッチするデータだけを抽出して結合するイメージです。

第4章で使用した文房具店の販売データに関するテーブルを使って、サブ

左 外 部 結 合 の 構 文 は 以下の 通り で す。左 テ ーブル と 右 テ ーブル をクエリの使い方をご紹介します。

LEF T OUTER JOIN句で繋ぎます。また、内部結合の時と同じように
ON句を使って共通カラムを繋ぎます。

商品表 (one)OBS

PROC SQL;
CREATE TABLE join2 AS
SELECT one.ID, one.ITEM, one.price, two.amount ,two.date/* 左外部結合 */FROM one LEFT OUTER JOIN two
ON one.id=two.id
;
QUIT;

id

item

price

1

1

消しゴム

100

2

2

ボールペン

120

3

3

鉛筆

50

4

4

ノート

210

5

5

ガムテープ

200

6

6

万年筆

1200

7

7

カレンダー

400

売上明細表 (two)
なお、右外部結合の場合はRIGHT OUTER JOIN句を、完全外部結合の場合はFULL OUTER JOIN句を記述します。

OBS

id

amount

date

1

4

4

2011/01/01

2

2

3

2011/01/03

3

7

1

2011/01/12

4

1

6

2011/01/15

5

6

4

2011/01/18

6

94

3

2011/01/22

5

例題として、売上(カラムamount)が5個より大きい商品の商品名(カラム

サブクエリとは、クエリの結果を別のクエリに渡して処理させる方法でitem)と価格(カラムprice)を抽出する処理の実現方法を考えます。求める

す。サブクエリを使うことで、複数のテーブルをまたぐ複雑なクエリを効

結果は次の通りです。

サブクエリ

率よく記述することができます。
以下の図を参照してください。外側の円がベースとなるクエリで、内側の円がサブクエリを表します。最初に内側クエリが実行され、その抽出結

結果テーブル（amount > 5）
OBS

id

1

果を受け取った外側クエリが実行されます。

item
1

price

消しゴム

100

このような処理を行うにはどうすればよいでしょうか？

ご覧のとおり、商品表には売上の情報は含まれていません。また、売上明細表には商品名、価格のデータは含まれていません。

外部クエリ

一つの選択肢として内部結合を使う方法が考えられます。二つのテーブ

SELECT カラム
FROM テーブル1
WHERE 共通カラム =ルを内部結合で一つにまとめて得られたテーブルに対してカラムamountの値が5個より大きい行を抽出するクエリを記述することが考えられます。
確かにこの方法によって求める結果は得られます。しかし、別のテーブル
から1行のデータを抽出するためだけにテーブル結合を実行し、新たなテーブルを作成するのは効率よくありません。
このような処理はサブクエリを使うことで効率よく行うことができます。次内部クエリ
SELECT 共通カラム
FROM テーブル2
WHERE 抽出条件

結果を渡すの構文を参照してください。

PROC SQL;
CREATE TABLE subquery AS
SELECT *FROM one
WHERE one.id =(/* 1行のみ抽出される */SELECT two.id
FROM two
WHERE amount > 5
)
;
QUIT;

08

SPRING 2011

[特集] SASから始めるSQL

開き括弧から閉じ括弧までの構文がサブクエリです。

このような問題は I N演 算子 を 使うことで 解決で きま す。I N 演 算子は右辺に複数の値を持つ式を評価することができる特殊な演算子です。

/* サブクエリの内容 */SELECT two.id
FROM two
WHERE amount > 5

サブクエリのWHERE句を満たす1行（amountが6、idが1の行）が外側クエリに返されます。

次のように=演算子をIN演算子に置き換えます。

PROC SQL;
CREATE TABLE subquery2 AS
SELECT *FROM one/* =の代わりにINを使う */WHERE one.id IN(

サブクエリの結果を受け取った外側クエリは、次のようなクエリを実行します。最終結果として、1行だけのデータを持つテーブルが作成されます。

/* 複数行が抽出される */SELECT two.id
FROM two
WHERE amount > 3/* 外側クエリの内容 */SELECT *FROM one
WHERE one.id =1

)
;
QUIT;

5.2 サブクエリの結果が1行より多い場合前の例題では、サブクエリに合致する行が1行だけでした。今回はサブクエ

結果テーブル（AMOUNT > 3）
OBS

id

item

price

リに合致する行が1行より多い場合を想定します。

1

1

消しゴム

100

例えば、売上(カラムamount)が3個より大きい商品の商品名(カラムitem)

2

4

ノート

210

と価格(カラムprice)を抽出するにはどうすれば良いでしょうか？

3

6

万年筆

1200

サブクエリ内の「amount>5」という記述を「amount>3」に変えてクエリを実行
すると次のようなエラーが発生します。

/* エラーが発生する */PROC SQL;
CREATE TABLE err AS
SELECT *FROM one
WHERE one.id =
(

6

終わりに

本特集ではSQ Lの基 本から応用まで広く説明しました。記事の都合/* 複数行が抽出される */SELECT two.id
FROM two
WHERE amount > 3

上省 略 せ ざる を 得 な か った 句 や、紹 介 し き れ な か った テ クニッ ク、
S Q L 独自の動 作 な どがありま すが、本 特 集 が そ れ らを 学ぶための第一歩となれば幸いです。

)
;
QUIT;

サブクエリの結果が複数の場合、エラーが発生
ERROR: 複数の行に対して、サブクエリが評価されます。
2536 QUIT;NOTE: エラーが発生したため、このステップの処理を中止しました。
NOTE: PROCEDURE SQL 処理 (合計処理時間):
処理時間
0.02 秒CPU 時間0.00 秒(参考資料)

エラーの原因は、サブクエリから受け渡される複数の値を外側クエリの（ W H E R E 句 の）等 式 で 扱 う こ と が で き な いた めで す。今 回、サ ブ
クエリに合致 する行が 複数（カラムidが 4、1もしくは6の値の時) 存 在
しますが、これらが W H ER E句に返されると次のような無効な条件式になってしまいます。

DATA Step vs. PROC SQL: What's a neophyte to do?
http://www2.sas.com/proceedings/sugi29/269-29.pdf
Efficiency Techniques for Beginning PROC SQL Users
http://www2.sas.com/proceedings/sugi29/127-29.pdf/* 無効な条件式*/
WHERE one.id = 4、1、6

SAS 9.2 SQL Procedure User's Guide
http://support.sas.com/documentation/cdl/en/sqlproc/62086/HTML/default/titlepage.htm

Intermediate PROC SQL
http://www2.sas.com/proceedings/sugi23/Advtutor/p35.pdf

SPRING 2011

SAS Academic News

09

SAS
Academic NewsSAS アカデミック・ニュース

事例紹介、第4章SAS ® Enterprise Guide ® と基本統計の算出をご紹介いたします。

事例紹介

SAS Enterprise Guideには、通常メニューとウィザードメニューが用意されています。
通常メニューとは、各種統計手法による計算結果を算出でき、ウィザードメニューとはガイド機能に沿って操作し出力を得ることができます。本文では、これらのメニューの使い分けや使用方法について説明しています。

コラム「SAS四方山話」

SAS四方山話では、新企画として医学研究をテーマに4話にわたり、統計学をもちいた研究デザインとその重要性についてご紹介いたします。

高柳 良太
國學院大學 経済学部および人間総合科学大学 人間科学部 兼任講師

事例紹介
第4章 SAS Enterprise Guideと基本統計の算出

今回は、SAS Enterprise Guide （以下、いうことを気にかけていない例が多いようEG）の「記述 統計」メニュー内で実行で きにも思います。

る各種統計量の算出機能について、説明したいと思います。

統計学の授業などで統計量について説明する場合、教えているのが数学専 攻のデータ解析に慣れていない人に説明をし学生ではないこともあり、それぞれの統計ていると、データを入力したら、もしくは入力

量 がどういう 役割 を持 ってい るのか 具体

済みのデータを手に入れたら、即分析がで的に示してあげることが大切だと考えていきると考えている人が多いことに気づかさます。もちろん 各 統計量を計算で きるようれます。もちろん、大学での統計学や調査になることは大切ですが、それ以上にそのの講義では、そうではないことをこちらが教統計量の意味を理解してもらうことが大切

えていかないといけないので、学生たちがだと思います。得られた統計量から、デー

そう考えているのはある意味仕方がないでタの傾向などを把握し、後に分析をかけたしょう。また、あまりほめられた話ではない

際にだいたいどんな結果になるかを予測ですが、私が授業用に用意したデータに入できるようになる。データ解析の講義や指力間違いがあることがあります。しかし、学

導では、もちろん個々の分析方法を習得す

生たちは先生が配るものが間違っているとるということも大切で すが、デー タ解 析の前 置 きが 長 くなりました が、今回はこのは思っていないのです。もちろん、入力間違全体が見通せる、方略を立てることができ「記述統計」でできる基本統計の算出についはよくないですし、配るものに誤りがある

るようになることも大切です。

いて説明をしていきたいと思います。

のは教育上よくはないことです。ただ、自分そのようなことを指導するのにも、EGのがミスしている可能性を考えもしない、得ら

基 本 統計の算出機能は非常に役に 立ちれたデータに間違いがあるかもしれないこます。基本的な統計値の算出はExcelでもとを疑いもしないという姿勢は、データ解析

で きますが、変数としてデー タを管理で きをする場合に問題があるようにも思います。

るという点で、EＧには大きなメリットがあり教える側としては、そういう部分も留意してます。初学者や学生など、Excelしか使ったいかないといけないと痛感させられます。

ことがない人には、EGに抵抗を示す人もいデー タのチェック以外にも、手に入れたデータの傾向を把握することは大切なこと

EGの記述統計メニュー 一覧

リスト

ますが、このメリットを知ってもらうだけでもだいぶ違います。

リスト出力例です。しかし、データ解析の指導をしていた
り、相談を受けたりするときに、このことがEGは、手軽にデータの傾向を把握するた「リスト」は、この出力例のように入力デー

どうも忘れられているような気がしてなりまめのメニューが用意されています。基本的タを一覧出力します。後述のリストレポート

せん。根本的に、なにをしようと思ってデーな統計量の算出は、［記述統 計］メニューにとは異なります。

タを取ったのかという視点が欠けているこ

集約されています。

「リ ス ト」 で は 一 覧 表 示 し た い 変 数 を、と が多く、手法にばかり気を取ら れ、得た「データ」画面の「タスクの役割」で「リスト変データがどういう情報を持っているのかと数」に指定します。

10

SPRING 2011

SAS Academic NewsEGの「要約統計量」では、統計量の出力指定を明確、かつ柔軟に行うことができます。統計学の講義等で統計量の説明をするときなど、意識的にクリックさせて統計量を出力させ、そして統計量について理解させるといった使い方をすることもできます。
同じ内容のものでウィザードメニューとそ「リスト」の「データ」画面（抜粋）

うでないものがあるときは、メニューやプロ「タスクの役割」で「合計」に指定した変数

セスフローで表示されるウィザード側のア

要約統計量メニュー

イコ ン に 、語 源（ 魔 法 使い）に ち な んでキは、リスト末尾に合計が出力されます。マル
チア ン サ ー の変数 を指定すると、回答 数「 要 約 統 計 量ウィ ザ ー ド」も「 要 約 統 計

ラッ！と光る魔法の杖が描かれています。

の把握 がで きま す。「グル ープ 変数」に属量」でも、出力される内容は同じです。どち

後述の「集計表」も、同様にウィザード側の性となる変数を指定すれば、属性ごとのリらも出力したい 統 計 量や グラフ を 任意にアイコンがキラッ！としています。もちろん、ストを出力することができます。

指定することができます。「要約統計量ウィ

出力自体は変わりありません。

ザード」では、ウィザードの3番目のメニュー

要約統計量

で「編集」ボタンから統計量の指定ができ、同じ画面内ヒストグラムなどのグラフ作成の指定ができます。

プロセスフローにて上が「要約統計量」、下が「要約統計量ウィザード」のアイコン

要約統計量出力例

EGの「記述統計量」メニューには、「要約統計量ウィザード」と「要約統計量」の２種

集計表

類の要約統計量メニューがあります。「要約統計量ウィザード」はウィザード（ガイド

要約統計量ウィザードの3番目 統計量やグラフ出力の指定ができる

分類変数ごとに統計値を算出するものです。

機能）メニ ュー従って指定を行えば、出力を得ることができます。

「集計表」は属性などを分類変数に指定し、「 要 約 統 計 量 」で は 、統 計 量 の 指 定は「統計量」から、グラフの指定は「グラフ」から行うことができます。

要約統計量ウィザード開始画面 下部にある「次へ」ボタンで進んでいく「要約統計量」メニューの画面（抜粋）
左 「統計量」／下 「グラフ」「集計表」の出力例

ウィザードは質問に答えていく形式なので、EGに慣れていない人でも簡単に使うことができます。

「集計表」も、「要約統計量」と同様にウィザードと通常のメニューがあります。「要約「 要 約 統 計 量 」 は 、他 の E G と 同 様 のメ

統計量」でも分類変数を指定すれば属性

ニューです。講義等で説明をし ながら使う

毎の統計量を算出で きますが、「集計表」

場合や、操作に慣れている場合はこちらがは表作成の自由度が高く、より複雑な表形便利だと思います。

式での統計量出力が可能です。

SPRING 2011

SAS Academic News

11

「リストレポート」の「リストの定義」画面「編集」ボタンのメニューと「列の割り当て」

上 「集計表ウィザード」の画面／下 「集計表」の画面

る カ テ ゴ リと して使 用 し た い 場 合は 、「編「データの特性分析」では、文字変数はカ集」ボタンの「列の割り当て」から「選択したテゴリごとの度数が算出されます。数値変数

列」の内容を「すべての値を表示する」に変の場合は各種の統計量が算出されます。

更します。こうすることで、文字変数の同様

出力はＮ、欠損値、合計、最小値、平均値、の扱いとなります。

最大値、中央値、最大値、標準偏差です。

なお「リストレポート」は、文字変数の同じカテゴリで集計（要約）されるようになってネスト（入れ子）になった集計表など、「集いま す。こ れを「リスト」と同 様 に すべての計表ウィザード」でも「集計表」でも複雑なデータが表示されるようにしたい場合は、帳 票を 作成 することがで きま す。「集計表上図の「編集」ボタンのメニューから「テーウィザード」「集計表」ともに作成で きる表

ブルのプロパティ」をクリックします。初期設

は基本的に変わりがありませんが、「集計定ではここが「同種の行を要約する（集計表」のほうがより細かく表の形式を指定すデータ）」になっていますが、「すべての行をることが可能です。

表示する（詳細データ）」を選択すると「リスト」と同じような出力になります。

リストレポート「リストレポート」は、ウィザードメニューのデータの特性分析「データの特性分析」画面「データの特性分析」は「リストレポート」と同じくウィザードです。こちらはほぼオプション

みが用意されています。「リストレポート」とデー タに文字変数と数値変数が混在し指定はなく、数値変数の統計値もありませ前述の「リスト」の違いは、「リストレポート」て い る 場 合、「デ ー タの 特 性 分析」を 使うん。数値データと文字データを意識しなくては文字変数ごとに同種の行を要約したリと、変数の種類を気にすることなく一度でも一気に出力が出るので、講義のようなとストが出力されます。

データの傾向を把握できます。

きに使用するのには向かないかもしれませんが、業務等で簡便に結果を出したいときは重宝するでしょう。

分布
特定の分布と見なせるかどうかの検定を

リストレポート出力例

行います。また、ヒストグラム、確率プロットなども指定で きます。これらについては次「リストレポート」は文字変数を属性のカ回詳しく説明したいと思います。

テゴリとして、カテゴリ別の統計量を出力します。初期設定では、すべての数値変数の合計（Sum）が出力されるようになっています。ウィザードの2番目で、「編集」ボタンをクリックし「列の割り当て」から、出力する変数と統計量の種類を指定することがで きます。数値変数を文字変数のように分割す「データの特性分析」出力例

12

SPRING 2011

SAS Academic News

一元度数表にしてしまうと、相関分析で変数として選択できなくなります。そのような変数でも、変数度数表は、その名の通り度数を集計するの種類を数値のままにしておいても、「一元ものです。度数のほかにパーセント、累積度数表」を利用すれば数値のままで度数を度数、累 積パー セント も出力で きま す。ま

算出できます。もちろん種類を変えていない

た、棒グラフの出力も指定できます。

ので、相関等を行う場合でも分析変数として選択が可能です。

分割表分析
クロス集計表の算出を行います。χ二乗

複数回答の割合を出した「集計表」出力
この場合Sumが度数PctSumが％検定などもこのメニューから行います。こちらも「分布」とあわせて次回の説明にしたいと思います。

まず、マルチアンサーの集計となっている
変数部分のみを、「要約統計量」で集計します。このとき、算出するのは「合計」だけでマルチアンサーの集計

す。また、出力結果をデータセットとしてファイルにして保存します。この保存したデータ

いわゆる複数回答のことですが、EGでマを 使 用して、「集計表」で 分析をしま す。な

ルチアンサーの集計も可能です。ちょっとマ

お、ここでの集計 結果を表示してもあまりニアック な指定が必 要な部分がありま す

意味がないので、データセットに保存するが、複数回答データの比率を把握すること

際に統計量表示のオプションを外してもよができます。

いでしょう。

「一元度数表」出力例「一元度数表」は、「データ」画面の「タスクの役割」で「分析変数」に指定した変数の度数を集計します。文字データになっている変数はもちろんですが、数値データの変数でも「分析変数」に指定すれば度数が算出されます。変数のプロパティを、数値から文字に変更する必要はありません。
「要約統計量」の「データ」画面（抜粋）マルチアンサーの変数を「分析変数」に指定「一元度数表」の「データ」画面（抜粋）Excel等で入力したデータをインポートす
ると、数値であればSASの数値データとなります。そのデータで「データの特性分析」などを実行すると、統計量は算出されます
が、度数は算出されません。その場合でも「要約統計量」の「統計量」画面の「基本」画面（抜粋）「合計」だけをチェック「一元度数表」で分析変数に指定すれば、数値変数でも度数が算出されます。
例えば順序変数として順位相関などを出したい場合など、データの種類を文字変数「要約統計量」の「結果」画面（抜粋）「統計量をデータセットに保存する」にチェック

SPRING 2011

SAS Academic News

13

次に、今「要約統計量」で保存したデータセットを開きます。

「要約統計量」で保存されたデータセット

このデータセットを、「集計表」で集計しま

行されていますが、実際にはメニュー指定

す。このデータセットには、算出された回答にあわせてSASプログラムが実行されてい数合計が変数（「_FREQ_」）となって追加さます。その実行前のプログラムコードを、これていますが、それも分析変数に含めて集の「コードのプレビュー」で見ることができま

計します。

す。

ウインドウが表示されます。

「ユーザーコードの入力」画面
これはコードを入力した状態 右に「OK」ボタンがある

ここで、
PctSum<_FREQ_>と 記 述 し 、「O K」 を ク リ ッ ク し ま す。こ の「集計表」の「データ」画面（抜粋） 「_FREQ_」も分析変数に指定

次に集計表を指定します。ここで集計した「PctSum」は、レポートの合計比のことです。

「タスクのコードプレビュー」画面
上に「コードの挿入」ボタンがある

それを回答数合計の変数である「_FREQ_」

い 変 数 を 指 定 し ま す が 、合 計 で あ る「_FREQ_」は集計表には指定しません。

で求めよというコードになっています。
こ の プ レ ビ ュー 画 面 で、一 番上 に あ る「OK」をクリックすると、「ユーザーコード」「コードの挿入」ボタンをクリックすると「ユー画面にコードが追加されます。前述の部分のザーコード」画面が表示され、コードを追加<コードを挿入するにはダブルクリックしま

することができます。

す> が消えて/*列ディメンション*/Sum
PctSum<_FREQ_>となっています。

「ユーザーコード」画面「ユー ザ ーコ ー ド」画 面を下 方向に スク「集計表」の「集計表」画面（抜粋）
図のようにマルチアンサーの変数を指定する 「_FREQ_」は指定しない。左下に「コードのプレビュー」ボタンがある

ロールしていくと、末尾の方に/*列ディメンション*/Sum

マルチアンサーの比率を出す場合、SAS<コードを挿入するにはダブルクリックします>のプログラムコードを使います。使うといってもほんの少しだけです。「集計表」画面のという箇所があります。ここで <コードを挿入

左下に「コードのプレビュー」というボタンがするにはダブルクリックします> をダブルクあります。EGは、画面上はGUIで分析が実リックすると「ユーザーコードの入力」というコードが追加された「ユーザーコード」画面真中下に「OK」ボタンがある

14

SPRING 2011

SAS Academic News

ここで「OK」ボタンをクリックして、コードプと い う 記 述 が 追 加 さ れて い る は ず で す。

一から全部プログラムで分析を実行する

レビュー画面に戻ります。

追加されていれば、 右上の 「×」 をクリッのは、 慣れていない人には大変で すし、クしてウインドウを閉じて、 集計表画面に業務がある人には勉強する時間も取りにく

戻 り ま す。 そ して 集 計 表 画 面 で 「実 行」

いでしょう。ただ、 ちょっと一工夫というか、をクリックすると、 マルチアンサーの回答

ほんの一手間かけるだけで、 さらに EG を数での割合が出力されます。

便利に使うことがで きま す。プログラムだ

SAS プログラムというと敷居が高いといからといって毛嫌いせず、 ほんの少しだけう人はいるかもしれませんが、 このようなでいいから理解してもらえればよいなと思

ちょっとしたカスタマイズに利用することがいます。

できます。 GUI メニューは確かに便利なの

コードが追加された「タスクのコードプレビュー」画面
右上に小さな「×」ボタンがある

プレビュー画面上ではですが、 微妙な部分がどうしても用意でき

今回は基本的な統計量の出力と、 それないということがあります。そういう場合に、に関連して SAS プログラムの非常に簡単

少しだけでいいので SAS プログラムの知な 利用方法 の説 明 をしました。次回は今識があると、 このようなちょっと便利なこと

回触れなかった 「分布」 と 「分割表分析」 のができます。

説明をしたいと思います。

集計等で、 もうちょっと便利にできないか/*列ディメンション*/

Sum

なという場合、 GUI にはメニューがなくても、このようにプログラム側から制御ができます。今回はその一例です。普段はプログの下に

ラムコードを使うことがなくても、 そういうことができるということを知っているだけで、/* カスタムユーザーコードの開始位置です。 */EG の使い方も変わってきます。「できない」

PctSum<_FREQ_>と思っていることが、ひょっとしたらできるか/* カスタムユーザーコードの終わりです。 */もしれないのです。

SPRING 2011

コラム「SAS四方山話」

SAS Academic News

15

大橋 渉
千葉大学医学部疾患プロテオミクス寄附研究部門 データベース・インフォマティクス担当
ヤンセンファーマ株式会社 研究開発本部 臨床統計部 統計解析グループ マネージャー 医学博士

第13回 医学研究のススメ（1）まずは本年のテーマ

であれば、Googleに聞いても分からないと床と 呼ば れ、ま だ ヒト を対 象 としては おりいうことであれば「ガッカリ」なのでしょうけません。

本 年度は久々に 筆 者 本来の医 薬 関 連れ ども 、逆 に 研 究 の 場 合 は 「シ テ ヤ ッ タ

一方、ヒトそのものではなくとも、ヒト由来について、これから4回分にて述べさせてリ！」なのです。まだ誰も答えを出していなの細胞や組 織（流行の遺伝子解析等）をいただきたく存じます。もちろん、他分野のい問題に対して、ご自身が疑問を持ったと用いた研究は全て臨床研究になります。ま方が 読 んでもそれ なりに 楽し んで いただ

いうことは、研究活動において極めて重た、ヒトの集団を見る場合にはそれらは疫けるように努力致しますので、何卒ご理解要な「新規性」の問題をクリアしたことに学研究になります。さらに疫学研究のうち、ください。筆者の経 験 則ではありま すが、なるからです*。新 規 性 が 認 めら れ な い

対象集団を複数群に分けて、それぞれの他分野の作法を知っているということは、論文が（まともな雑誌に）採択されることは群に異なった治療や薬剤を与えて比較を単に視 野 を広げられるだけではありませ

まずありませんので、考えようによっては、行う研究は臨床試験です。また臨床試 験ん。他分 野 に おけるデー タの見 方やア プ

研究上の一番大きな問題をクリアできたとの うち、厚 生 労 働 省から医 薬 品（医 療 機

ロー チなどは、必ずご自身の分野 におけ

言って も良い ほ ど な ので す。既 に 答え が器）の承認を得ることを目的として行われる研究や業務にも 役 立ちま すので、時に出ている事柄であれば、調べてその結果るものが治験です。基本的に、内側に行く

はご自身の分野について、より深く理解すを用いれば良いだけの話であり、おそらくほど規則・規制が厳しくなっていきます。参ることにもつながります。

Googleなどの検索でも何らかの手がかり

考 ま で に、一番内側 に あ る治験に関して

統計学はどのような分野にも 必 要な知がヒットするのは間違いありません。ま たは、日本国内はもちろんですが、世界的に識であり、英語などと同様に共通のツール

医学系の論文であれば、有名な「pubmed

もSASによる統計処理結果以外は認めらである、と 筆者は考えておりま すので、絶(http://www.ncbi.nlm.nih.gov/pubmed/)」

れておりません。

対に「ムダな 知 識 」に なることは ありませで検索すれば出てくると思われますので、ん。例えば、統計学とは一番縁遠いであろ

むしろヒットしなかったときこそ喜べるわけうと思われる哲学や文学にも統計学が用です**。

いら れていた、な どと いう 事 実 も ありま す以上のように、まずは研究を開始する前が、他 分 野 の 方 に は（ 当 該 分 野 の 方 にに、以前に自身の問題意識と同様の研究も？）案外知られていなかったりします。「私（先行研究と呼びます）がなされていないは文科系出身なので 統 計学は…」などとかを調べ るのは、研究開始前の 儀式（常おっしゃる方も多いのですが、統計学はい識 ）と いえるで し ょ う。こちらを 調 べ る こ と

わゆる文科系の分野にも深く浸透しておりで、自身の問題意識もよりクリアになってく

ま す。少々古いフレ ーズでは ありま すが、ることは間違いありませんので、出来る限「統計学は皆兄弟」のような広い心で統計り念入りに調べてみることをお勧めします。

学と向き合ってみてください。

Pubmedのtopページで色々とKeywordを臨床研究

臨床疫学研究臨床試験

治験

入力して調べてみるのも方法ですが、そのヒトに用いる新薬を開発する
ヒトの集団間で比較を行う

分 野 の 研 究者の方 な どに 尋 ねてみ るの調査・研究のススメ

も、より確かな方法です。

図1：臨床研究の種類と包含関係（臨床研究人材教育コンソーシアムのHPより）

皆様が何かを知りたいと思ったときに、それを明らかにするための方法は何でしょうか。昔だったら図書館 で 調べ るのが一般

ヒトそのものの集団を見る
ヒトの組織も含む

医学研究の種類的であったと思われますが、今であればイ

知りたいことは見つかりました。続いてそンターネットのGoogleなどで検索をするとの「知りたいこと」の方向性や深さ、目的にいう方も多いでしょう。他の方法も駆使してついて考えてみましょう。

色々と 探 してみても 見つか ら な い 場 合に

医学研究の場合ですと、基本的に「ヒト」

は、知ること自体を諦めるか、もしくはご自を対 象 として 実 施 され る も のは すべてが身でさらに調べるか、自ら実験するか、の

臨 床 研 究 に な りま す。マ ウス な どの 実 験

方法で確認する以外にありません。普 通

動物を相手に実験をしている段階は前臨

16

SPRING 2011

SAS Academic News

検証か探索か〜デザインの重要性〜
1）探索的研究とは筆 者 が 各所 で主張して い る も ののひ とつに、研究デザインの重要性があります。

字とグループ分けのフラグさえあれば検定自体は可能ですが、適切なデザインをされ仮説検証型のデザインを行うためには、ていない調査・研究から得られたp値や検仮説の設定根拠が必要です。この場合の定 統 計 量 に は 何の 意 味 も あり ま せん の仮説の設定とは、対照群と比較して、反応で、求めたところでもあくまで参考程度とし率や生存割合などの評価項目にどの程度てください。

の差が見込まれるかの見積もりが必要ということです。そうすることによって、ようやく

2 0 0 9 年のS A S ユー ザ ー 会でもお話 させて いた だ いた だ き ました が、筆 者 が受けてきた統計相談のうちの多くが 研究終了

研究に必要な必要最低限のサンプル数を注）比較可能性は？

後の「事後相談」であり、研究開始前のデザインに関 する 相 談は全体の 僅 か 3 0 ％弱 程 度で した。早 い話 が、既 に 収 集さ れたデー タ を持 参して きて、「このデータから何かを言ってくれ！」というような要望が
全 体 の7 0 ％ 強 程 度 と い う こ と な の で すが、残念ながらほとんどのデータについて
は、その「何か」を言うことは不可能で す。
しかも求められることの多くは検定（つまり仮説の検証です）なので すが、適切な例えば治療法Aと治療法Bが施された患者を100人ずつ比較して、A群は5年後に60人が、Bは同じく30人が生存していたという結果がありました。χ2検定によりp<0.001 と高度に有意になったので、私が開発した治療 法 AはBよりも優れていると言えます！
（拍手喝采…！）も、（一応 p 値は出ま すが ）それは 適切な計算することができるのです。基本的には過去の先行研究を前述のpubmedなどか
ら検 索してくるか、探索 的な研究などを行って設定するかのいずれかです。
「ちょっと待ってください、必要最低限って…サンプル数なんて多ければ多いほどいいのではないですか？」…というご意見もあるかと存じますが、それ

ところが、こそちょっと待ってください。本当にそれでいいのでしょうか。ここで少し、研究を下記

デザインがなされていない（そもそも仮説がない！）調査・研究のデー タを解析して

3）サンプル数の設定

・治療法A群の平均年齢は60歳、B群は80歳だったの観点から考えてみましょう。

結果とは言えません。せめてもの「何か」として、次回の研究につなげるために調査・研究項目の探索がで きました…と言えれば、まだ上出来な方です。

・治療法A群は過去に手術歴なし、B群は平均1.5回の手術歴ありだった

確かに無計画に集められたデー タから何かが言えることも、時にはないわけではありませんが、そこには一番大切であるはずの研究者の疑問といった問題意識は存在しません。たとえ問題 意 識の発掘を目的とした探索的研究であっても、瓢箪から駒のような探索ではない、やはり何らかの疑問を持って臨む必要があります。

のような場合、余命や手術歴（=既に他の病気あり）が5年後の生存率に影響している可能性が非常に高いです。実際に治療法Aが優れていたとしても、このデザインではそれを立証することはできません。本当に効果があった場合は、非常にもったいないことになってしまいます。

調査・研究の実施可能性①時間的制約：限られた時間内で実施できるのか？
②経済的制約：限られた予算内で実施できるのか？
③ 倫理的制約：
法的・心情的・倫理的観点から実施は可能なのか？
④技術的制約：実施方法が存在するのか？

2）検証的研究とは探索的調査・研究を経て得られた仮説を検証するためには、必ず比較対照が必要

図1の臨床試験よりも内側は比較対照をになります。しかも、その比較対照としてど持ちますので、すべて検証的研究になりま

まずは①で すが、例えば視 聴率のデーのような 集団を集めるかは研究デザインす。検証的な研究には必ず検証するためのタを求めるのに1年もかかってしまえば、その段 階 で明確に定められてい るため、研仮説が必要であり、その仮説を検証するたのデータは価値を失ってしまいます。医薬究の趣旨に合致しない被験者は除外されめに各種検定を行います。その、検証したい品も同様、特許期間の間しか独占的に販ることになります。たとえば新薬Aと既存薬

項目の こ と を 評 価 項目（E n d p o i n t ）と売することがで きませんので、企業としてBの効果を比較したい場合には、それぞれ呼び、特にその調査・研究において一番知利益を確保するためにはできるだけ早く売の治療群A,Bの集団は可能な限り均一にり た い 項目を 主 要 評 価 項目（P r i m a r y

り出す必要があります* * *。また、サンプル

しなければなりません。他の要素が入り込

Endpoint）と呼びます。もしも、主要評価数が増えればそれだけ時間も経費も要しむ余地がある限りは、純 粋に新薬 Aの効項目が存在しなければ仮説が設定できまますので、② を考えれば、サンプル数は必果を確認することがで きませんので、たとせんので、そもそも 検定が成立しません。

要最低限で行うのが良いことになります。

え本当に新薬 Aの効果があったとしても、検定が成立しなければ、仮説検証型の研それを立証出来ないことになります注）。数究デザインが成立しないのです。

③は上記以上に重要な問題であり、たとえば開発中の新薬であればどのような副SPRING 2011

SAS Academic News以 上、医学 研 究 に おけるサンプル 数は

作 用 が あ る か わ か り ま せん 。そ の よ う な「得体の知れない薬」を多くの人に投与するということは 、それだけ多くの人を副作用の危険にさらしてしまうことになりますので、明らかに倫理的問題があります（④はまた別の機会に）。
ま た、右記の図 3はお なじ みの t 検 定の
検定統計量ですが、こちらのnは両方とも、

17＜症例数設定 Power Procedure＞
proc power;
twosamplemeans test=diff （平均値の差の検定=t検定）
meandiff=1 （見込まれる平均値の差）
stddev=5 （見込まれる標準偏差）
alpha=0.05 （有意水準）
power=0.8 （検出力）
ntotal= .;「多ければ多いほど良い」というものではな
いことが、ご理解いただけたかと存じます。
アンケートなどは特に「こんなに集まった」と歓喜する場面が良く見受けられますが、臨床試 験 ではさまざまな事情から、必 要
最低限しか集めないようにしているのです。
次号は引き続き他の手法による症例数

大きくなればなるほど、検定統計量Tの値設計のプログラムと、論文の見方等についは 大 き く な り ま す。と い う こ と は 、例 え ばてご説明させていただきます。

身長差1mmなど、明らかに意味がない差であったとしても、サンプル数さえ大きけれ
ばTの値は大きくなるということです。結果
として、医学的や常識的に全く意味のないN

2
22 { zα/2 zβ} SD*しかし、どれほど新規性があったとしても、その研究を行うこと自体に意味や価値があるか否かとい2

うのはまた別問題です。まずは第一関門というだけ差であっても、統計的検定上は有意になっですので、誤解なきよう。

てしまうということに他なりません。

* *通常、英文論文であればpubmedには掲載され
N ：必要サンプル数

ますが、中には掲載されない雑誌もあることはあり

SD：個体間のバラツキの大きさます。

Δ ：見込まれる平均値の差* * *あくまで 特許期間は出願後受理された時点か

Zα/2:有意水準から算出する値（通常5%で1.96）

T

XA XB
S 1 nA

1 nB

ら20年ですので、実際に独占的な利益を得られる

Zβ:検出力から算出する値（通常80%で0.84）のは発売開始後の話です。特 例による5年間の延****長が得られたとしても、実 際に発売出来る期間は
せいぜい5年～10年ですので、売り出すのは1日も早い方が良いのです。

図3： t検定による必要症例数の設定プログラムと公式* * * *図3における式は一般的に用いられる近似公

X A: A群の平均値
X B: B群の平均値
S : A群およびB群の標準偏差（分岐は等しい）
n A: A群の例数n B: B群の例数式となりま す。P O W E R プロシ ジャにて用いてい る

実際に図3のプログラムを実行しますと、

手法、O’Brien and Muller (1993)、とほぼ同じ結果

図4の出力が得られます。見込まれる平均となりますが、厳密には異なります。また、近似公式

値の差が1と小さく、標準偏差が5と大きいでは各群にて必要とされるサンプル数となっていま

ため必要なnの値は大きくなります。図3のす が、P O W E R プ ロ シ ジ ャ で は 2 群 併 せ て必 要 な
サンプル数が出力されています。

公式を見ても、Δ（分母）が大きければ大き図2: t検定の検定統計量は…nが大きくなれば大きくなりやすい！

いほど、SD（分子の一部）は小さければ小※ 各 群 に お けるサ ン プル 数 を求 め る 場 合 に は 、

さいほど必要症例数は小さくなることがわ

NTOTAL= オプションではなくN PERG ROU P = オプ

かります。

ションを用います。

SASによるサンプル数の設定（t検定による2つの平均値の差）

SASでは、上記のt検定をはじめとした各
種 統計手法 を用いた検定に対応した
サ ン プル 数 の 設 定 機 能 が あ り、p o w e r

正規分布

procedureにより算出されます。下の囲み

有意水準

は、主要評価項目についておなじみのt検平均値の差定を行う場合の症例数設定のプログラム
です。Ver9．1以降に搭載されたものゆえ、標準偏差出力はまだ英語のみですが、他にもχ2検

両側検定の場合2（片側で1）定やLog-rank検定など、多くの手法による解析に対応した症例数設定が可能になっています。この事例ではnを求めるプログラ
ムを 紹介させて 頂きましたが、例えばnを固定して検出力を空白にすることも可能で必要な症例数す。n数が決まっていてpower（検出力）が不明な場合には、power=.とすれば検出力を求めることができます。

図4 SASによる出力

18

SPRING 2011

Q&A

Q&A
● グラフ枠の非表示● 残存したWORKライブラリの削除について● 時点ごとの平均推移グラフの作成● EXPORTプロシジャにてCSVファイルを作成する際、変数名出力を制御する方法● ODS のアウトプットに使用されているスタイルを調べたい● INFILEステートメントにて複数の文字を● ODSで出力されるファイルを１つのファイルへ圧縮する方法

区切り文字として指定する

Q
A

散布図を作成していますが、グラフの枠(右側、上側の線)が表示されます。この枠を非表示とできますか。

GPLOTプロシジャでの散布図作成の場合、PLOTステー

Q

時点ごとの平均値の推移グラフにおいて、エラーバーも併せて表示するため、以下のSYMBOLステートメントを用いました。

SYMBOL1 I=STD2TJ V=DOT C=red;

トメントのNOFRAMEオプションを用います。
各オブザベーションの値に対してシンボルが表示されますが、平均値のみシンボルにて表示することはできますでしょうか。

例
PROC GPLOT DATA=sashelp.class;/* NOFRAME オプションの追加 */PLOT weight*height=sex / NOFRAME;SYMBOL1 I=none V=dot C=red;
SYMBOL2 I=none V=dot C=blue;
RUN;
QUIT;

A

SYMBOLステートメントにて直接、対応している指定はありません。しかし な がら、A N N OTAT E 機 能 を用 いて、GPLOTプロシジャにて作成したグラフにシンボルを追加することができます。ただし、この場合、事前に平均値を算出しておく必要があります。
例

散布図の作成はSGPLOTプロシジャにても行うことができますが、枠の非表示に対応しているオプションはありません。このため、ユーザー定義のスタイルを作成、適用し、枠を非表示とします。
例/* ユーザー定義のスタイル作成 */PROC TEMPLATE;
DEFINE STYLE styles.mystyle;
PARENT=styles.default;/* FRAMEBORDER を OFF に設定 */STYLE GRAPHWALLS FROM GRAPHWALLS / FRAMEBORDER=OFF;
END;
RUN;
/* 作成したスタイル適用 */ODS LISTING STYLE=styles.mystyle;/* 散布図の作成 */PROC SGPLOT DATA=sashelp.class;
SCATTER Y=weight X=height / GROUP=sex;
RUN;/* 事前に平均値を算出 */PROC MEANS DATA=test NWAY NOPRINT;
CLASS time;
VAR resp;
OUTPUT OUT=out(DROP=_TYPE_ _FREQ_) MEAN=resp;
RUN;/* ANNOTATE データセットを作成 */DATA anno;
SET out;
RETAIN XSYS YSYS '2' WHEN 'A' COLOR 'red';
FUNCTION="SYMBOL"; TEXT="dot"; X=time; Y=resp;OUTPUT;
RUN;/* GPLOT プロシジャにてグラフ作成 */PROC GPLOT DATA=test ANNOTATE=anno;
PLOT resp*time;
SYMBOL1 I=STD2TJ V=none C=red;
RUN;
QUIT;

また、他の方法としてはSGPLOTプロシジャを用いることができます。
この場合、事前に平均値を算出しておく必要はありません。
例/* SGPLOT プロシジャにてグラフ作成 */PROC SGPLOT DATA=test;
VLINE time / RESPONSE=resp STAT=MEAN LIMITS=BOTH MARKERS/* シンボルの指定 */
MARKERATTRS=(SYMBOL="CircleFilled" COLOR="red")/* 線の指定 */LINEATTRS=(COLOR="red");RUN;

SPRING 2011

Q
A

TEMPLATE プロシジャでスタイルを作成する際、どのス
タイルエレメントがアウトプットのどの部分に反映されているのかを簡単に調べる方法はありますか。
ODS TAGSETS.STYLE_DISPLAY を使用すると、スタイルエレメントを確認するための特殊なアウトプットを生成することができます。

Q&A

Q
A

19

複数の連結文字が区切り文字として入っているファイルを正常にインポートするにはどうしたら良いでしょうか。

SAS ® 9.1ではINFILEステートメントのDLMオプションにて区切り文字を指定することが可能です。しかし、DLM
オ プシ ョンは 単一文字 を指定する オ プシ ョンであるため、複数の連結文字を区切り文字を指定することができません。
例

この場合はDATAステップにて追加のロジックを記述することで可能になります。一例として区切り文字を他の文字に変換した後、区ODS TAGSETS.STYLE_DISPLAY
FILE="c:¥temp¥stylecheck.html" STYLE=STYLES.RTF;
TITLE 'TITLE のメッセージ ';FOOTNOTE 'FOOTNOTE のメッセージ ';PROC REPORT DATA=sashelp.class nowd;
COLUMN ( sex name age height weight );DEFINE sex/ GROUP;
DEFINE name
/ GROUP;
DEFINE age/ ORDER;
DEFINE height / ORDER;
DEFINE weight / ORDER;RUN;
ODS TAGSETS.STYLE_DISPLAY CLOSE;

このプログラムで作成された HTML ファイルを Internet Explorer
で開き、ウィンドウ内の任意の場所をクリックすると、その場所で使用されているスタイルエレメントの定義が以下のような形で表示されます。
例
STYLE Data /FONT_FACE = "'MS PMincho', 'Times Roman', serif"
FONT_SIZE = 10pt
FONT_WEIGHT = medium
FONT_STYLE = roman
FOREGROUND = cx000000;

切られた文字をSAS変数に代入する方法が考えられます。
右の例ではその一例を示します。
SAS 9.1にて複数の連結文字を区切り文字に指定する例:
DATA DLMTEST;INFILE DATALINES;
INPUT;/* 「{sep}」 を 「/」 文字に置き換える */_infile_=TRANWRD(_INFILE_,"{sep}","/");/* 区切り文字で区切った一番目の文字を数値に変換 */N1=INPUT(SCAN(_infile_,1,"/"),32.);
LENGTH N2 $ 8;/* 区切り文字で区切った二番目の文字を変数に代入 */N2=SCAN(_infile_,2,"/");/* 区切り文字で区切った三番目の文字を変数に代入 */N3=INPUT(SCAN(_infile_,3,"/"),32.);DATALINES;
123{sep}sep{sep}789
0{sep}ABCXYZ{sep}456
run;

S AS ® 9 . 2では、複数の連 結文字列を区切り文字として指定する
DLMSTRオプションが追加されています。区切り文字に大文字小文字が含まれる場合は、DLMOPTオプションに「I」を指定します。
SAS 9.2にて複数の連結文字を区切り文字に指定する例:
DATA dlmtest;/* DLMSTR、DLMSOPT オプションを使用して文字列を区切る */INFILE DATALINES DLMSTR="{sep}" DLMSOPT="I";
INPUT n1 n2 $ n3;
DATALINES;
123{sep}sep{sep}789
0{Sep}ABCXYZ{SEP}456
RUN;

20

SPRING 2011

Q&A

Q

Unix版SASでは、CLEANWORKというツールにて、残存した W O R K ラ イ ブ ラ リの削 除 を 行 う こ と が で き ま すが、Windows版SASに同様のツールはありますか？

Q

１つのプログラムの中でODS HTML、ODS RTFステートメ
ントを使用しています。たくさんのグラフや結果を出力しているため、ファイル数も多く、ファイルサイズも大きく管理が大変です。これらのファイルを一つのファイルにまとめるような方法はASAS ® 9.2より、標準でWindows ディスククリーンアップツー

ありますか？

ルのCOMフックとして、残存したWORKライブラリを削除可能なツールがインストールされます。

例）ASAS ® 9.2では、出力されたグラフや結果を１つのZIP形
式 の 圧 縮 フ ァイル へま と め ら れ る O D S P AC K A G E
ステートメントが追加されました。これにより、出力する

Windowsエクスプローラを開き、ドライブを右クリック→プロパティ、結果、グラフなどが多く、ファイルサイズが大きい場合でも圧縮して"ディスクのクリーンアップ"を選択し、"SAS Temporary Files"という１つのファイルとして出力できます。

項目がありますので、こちらにチェックをいれ、OKボタンを押していただくことで、 残存しているWORKライブラリを削除できます。

例/* パッケージ化開始 */Q

EXPORTプロシジャを使用して、CSVファイルを作成しています。デフォルトではCSVファイルの先頭行に変数名が出力されますが、これをデータ行から出力するように変更できますか？

AODS PACKAGE OPEN;
出力内容/* 作成した内容を ZIP 形式の圧縮ファイルへ出力 */ODS PACKAGE PUBLISH ARCHIVEPROPERTIES(ARCHIVE_NAME=" ファイル名 " ARCHIVE_PATH=" 出力パス ");SAS ® 9. 2の新機能であるPUTNAMES= NOオプションを指定することで、データ行から出力されます。

例
PROC EXPORT DATA=sashelp.class
OUTFILE='c:¥temp¥noheader_92.csv'
DBMS=CSV REPLACE;PUTNAMES=NO;
RUN;

S AS ® 8またはS AS ® 9.1. 3を 使用している場合は、以下のようなDATAステップを実行します。
例
DATA _NULL_;SET sashelp.class;
FILE "c:¥temp¥noheader_913.csv" DSD;PUT name sex age height weight;
RUN;/* パッケージ化終了 */ODS PACKAGE CLOSE;/* サンプルデータ作成 */PROC SORT DATA = sashelp.class OUT = sample;
BY age;RUN;
ODS LISTING CLOSE;/* パッケージ化開始 */ODS PACKAGE OPEN;
ODS HTML PACKAGE;
PROC GPLOT DATA = sample;
PLOT height * weight;
BY age;RUN;
QUIT;
ODS HTML CLOSE;/* 作成した内容を ZIP 形式の圧縮ファイルへ出力 */ODS PACKAGE PUBLISH ARCHIVEPROPERTIES(ARCHIVE_NAME="Sample.zip" ARCHIVE_PATH="c:¥temp");
ODS PACKAGE CLOSE;

上記の例では、変数AGEごとに出力される結果をSample.zipファイルとして出力します。
ODS PACKAGEステートメントの詳細に関しましては、ドキュメント
をご確認ください。
http://support.sas.com/rnd/base/ods/odspackages/statement.html

21

SPRING 2011

SAS Training

SAS トレーニングのお知らせ

プラットフォーム系3試験の日本語版提供開始、BI試験練習問題にチャレンジ！

2 0 1 0 年12 月より S A S のプ ラ ッ トフ ォ ーム 系 の 3 試 験：

上がったのか、その理由がわかる」、「さらにおいしい料理になるに

SAS BI Content Development for SAS ® 9（以下、BI試験）、

は、どのような材料を使った方がよいのか」などの判定も可能な美SAS Data Integration Development for SAS ® 9（以下、DI試験）、

食家のイメージです。

SAS Platform Administration for SAS 9 （以下、PA試験）が実務上では、作成された分析結果・指標から経営判断を行う方や、

日本語で受験できるようになりました。

簡単な分析レポートを作成する担当者に該当します。

®

今回はこれら3試験の大まかな位置づけを紹介し、BI試験のサンプル問題を掲載します。

■シェフ：BI Content Developer※ 試 験 範 囲 の詳 細 な どは 下 記 W e b ペ ー ジより 確 認 可 能 で す。

食材を適切に調理して、おいしい料理を作る人です。もちろん味見

www.sas.com/jp/training/certify/index.html

もして作った料理の味判定も可能です。BI試験では、上記2つの役
割を試験範囲としています。
業務上ではビジネスユーザーから要求されるレポートの作成や、試験の位置付けビ ジ ネ ス ユ ー ザ ー が 分 析 の 切 り 口 と して 使 用 する さ ま ざ ま なコンテンツ（Information Map、 Stored Process 、OLAPキューブ、

企業では膨大なデータが日々記録されており、そのデータから何らか

経営ダッシュボード）を提供します。

の価値のある知見を見つけ出し、今後の予測や経営上の判断を下したいという要望があります。

■下ごしらえ担当：Data Integration Developer

弊社ではこの要望に応える製品群として、SAS Analytics Platform

このレストランには、非常に大量な食材があるため、適切な食材のを提供しています。SAS Educationでは業務上の役割（ジョブロール）

下ごしらえを行う担当がいます。各地に存在する食材を厳選し、膨に従って主に使用するPlatform製品を図1のようにまとめており、日本大な食材を煮込んで特製スープを作るような作業を担当します。こ語化された3試験の試験範囲もこのジョブロールに基づいています。

の役割に対する試験がDI試験です。
実際では分析の目的に適した形式にデータの結合・変換などを行う、データウェアハウスやデータマートの作成者です。

SAS Analytics Platformのシステムは多くの製品を組み合せるため、複雑に感じるかもしれません。そこで、今回は企業内の膨大なデータから価値ある情報を提供する過程を、食材（データ）からお■レストランのオーナー：Platform Administrator

いしい料理（分析結果）を作る過程とみなして解説します。

レストラン全体の支配人です。誰にどのような業務を担当させるのか、役割分担などを指揮します。いわゆる全体的な管理を行う役■美食家：Business User

割であり、PA試験が該当します。

シ ェ フ が 作 成 し た お い し い 料 理 を 食べ る お 客 さ んで す。た だ 、

システム上ではサーバー、データ、ユーザーなど、SASリソース全体

単に食べて満足するだけ では なく、「な ぜこのような 料理 が出来の管理を行います。

図1：認定試験別のジョブロールと主なアプリケーション

認定試験

PA試験

レストランのオーナー

ジョブロール

Platform
Administrator

BI試験

DI試験

下ごしらえ担当

シェフ

美食家

Data
Integration
Developer

BI Content
Developer

Business
User

SAS ® Add-In for Microsoft Office
SAS ® Web Report StudioSAS ® Information Delivery PortalSAS
プラットフォーム
アプリケーション®

SAS 管理コンソール®
SAS OLAP Cube StudioSAS ® Data Integration StudioSAS ® Enterprise Guide ®

DataFlux dfPower StudioSAS ® Information Map StudioSAS ® BI Dashboard
SAS ® Visual BI

22

SPRING 2011

SAS トレーニングのお知らせ

新規トレーニング・コースの開催のご案内

BI試験の練習問題にチャレンジ！
以下のSASプラットフォーム・アプリケーションの説明として間違っ●「事例によるデータ分析法入門」コース（1日間）ているものを選択しなさい。

［日程］

2011年6月6日(月) 10:00 ～ 17:00 (東京会場）

A.

2011年6月20日(月) 10:00 ～ 17:00 (大阪会場）
AMO（SAS Add-In for Microsoft Office）を使用して直接OLAPキューブの情報をドリルダウンできる。

［価格］

57,750円(税込)／チケット捺印数1［受講対象］

B.

データ分析法の習得に興味のある方
W R S（S A S W e b R e p o r t S t u d i o）は W e b ベースのレポート作成アプリケーションである。

マーケティング担当者、営業企画・営業管・経営計画等担当者［学習内容］
ビジネス分析の基礎となる知識を、身近な事例と共にご紹介します。
・基本統計量（平均、分散、標準偏差）C.
IDP（SAS Information Delivery Portal）をクライアントPCにインストールすると、企業内の情報を効率的に検索できる。

・各種分布（ｔ、χ２、Ｆ）
・平均値の差の検定
・相関分析（相関関係、相関係数）
・回帰分析（単回帰、重回帰）D.

事例については、SAS ® Enterprise Guide ® を使用して、実際に分析
EG（SAS Enterprise Guide）を使用するとレポート作成だ
けでなく、ストアドプロセスの作成も可能である。

結果を確認します。
［Web Page］
www.sas.com/jp/training/course/da̲intro̲cs.html

選択肢A～Cの3製品はビジネスユーザー向けのアプリケーションとして位置付けています。これらはすべてテーブルの結合やフィルタリング●「Microsoft OfficeによるSAS分析入門」コース（1日間）などのシステム的な知識がなくても、普段のPC操作で使い慣れてい［日る、WebブラウザやMicrosoft Office製品を使用してSASの分析結果

2011年7月4日(月) 10:00 ～ 17:00 (東京会場）にアクセス可能です。IDPはWRSと同様にWebアプリケーションである［価

た め ク ラ イ ア ン ト P C に イ ン ス ト ー ル する 必 要 は あ り ま せ ん 。

57,750円(税込)／チケット捺印数1

従ってCが正解です。

［受講対象］

ちなみにIDPは分析レポートのPortal（入口）となるサイトです。Portal

Excelスプレッド・シートを使用してビジネス分析を行いたい方のWebページからWRSへのリンクも作成できます。

［学習内容］

程］格］

よく知られたMicrosof t Excelのインターフェイスを通して、SASの正解：C

分析のパワーを使用する方法を学習します。
本コースでは、SAS® Add-In for Microsoft Officeの機能を紹介します。
SAS Add-Inを使用することで効果のあるようなシナリオを通して、ȎǳȈǴƶ๓ભǚӕ‫ڡ‬Ɵǆơº

PICK UP!

プログラミング系の試験対策は
e-Learningで！

・ス プ レ ッ ド・シ ー ト 内 で S A S 分析 タスク を 実 行 するた め の S A S
ツールバーの操作・プログラミング系の2試験ではe-Learning形式の練習問題を提供しています。

・グラフの作成
・要約タスクの実行や箱ひげ図の描画によるデータ分析
・線形回帰分析の実行

・受験直前の力だめしや試験対策にご活用ください。
・実際の試験配分を考慮しているため、弱点の把握にも役立ちます。
e-Learning名アクセス期限申込み価格

SAS ®認定プロフェッショナル模擬試験:
SAS Base Programmer for SAS ®9

180日間

7,350円SAS ®認定プロフェッショナル模擬試験:
SAS Advanced Programmer for SAS®9180日間

7,350円・クラスタ分析によるデータの探索［Web Page］
www.sas.com/jp/training/course/mso̲ai.html

SPRING 2011

SAS トレーニングのお知らせ

23

コース内容・日程等の詳細は、順次弊社Webサイトに公開しますの

新人研修キャンペーンのご案内

で、以下のURLをご参照ください。
毎年好評いただいております新人研修キャンペーンを今年も期間限定

http://www.sas.com/jp/training/で実施します。
お得な「Basic Plan」を6月30日までに「新人研修キャンペーン」専用申その他、トレーニングに関する情報については、上記のURLをご参照

込書にてお申し込みをいただくと20％割引でご受講いただけます。

いただくか、下記トレーニング担当までお問い合わせください。

［Web Page］
www.sas.com/jp/training/newcomer.html

トレーニング担当

SAS Institute Japan株式会社では、今後も多岐にわたったトレーニ
ングコースを追加していく予定です。

T E L： 03-6434-3690
E-mail： JPNTraining@sas.com

F A X： 03-6434-3691

Latest Releases

最新リリース情報

PCプラットフォーム

UNIXプラットフォーム

Windows版

SAS 9.1.3 / 9.2

SunOS/Solaris版

SAS 9.1.3 / 9.2

64-bit Windows(Itanium)版

SAS 9.1.3 / 9.2

HP-UX版

SAS 9.1.3 / 9.2

HP-UX(Itanium）版

SAS 9.1.3 / 9.2

メインフレームプラットフォーム
IBM版(OS/390,z/OS)

SAS 9.1.3 / 9.2

AIX版

SAS 9.1.3 / 9.2

Linux(Intel) 版

SAS 9.1.3 / 9.2

IBM版(OS/390,z/OS)

SAS 9.1.3 / 9.2

SAS Technical News入手
SAS Technical Newsは、右記のURLから入手できます。

http://www.sas.com/jp/periodicals/technews/index.html

24

SPRING 2011

SAS ユーザー総会のお知らせ

SASユーザー総会

アカデミア／テクノロジー＆ソリューションセッション

毎年、多くのお客様にご参加いただいております SASユーザー総会は、今年で30回目を迎えます。これも日頃からSASをご愛顧いただいておりますお客様のおかげであり、心より感謝申し上げます。
今回30回目開催を記念し、また西日本地区お客様からの熱いご要望にお応えするべく、初の関西（神戸）開催が決定いたしました。
是非ともこの機会に進化を続ける SAS をご体感いただきたく、皆様のご参加をお待ちしております。
また、同時にお客様からSASを使っての論文やプレゼンテーション等も募集しております。
奮ってご応募くださいますようお願いいたします。
■日程

2011年7月28日(木)〜29日(金）※SASユーザー総会前後に特別セッションを企画しております。
7月27日は基礎講座、7月30日はSAS Institute Japanエデュケーション部主催の「SAS Learning Session 2011」を予定しています。
■会場

神戸国際会議場
住所：〒650-0046 神戸市中央区港島中町6-9-1
アクセス：ポートライナーで神戸空港より8分、三宮駅より10分
MAP

■内容

内容の詳細は、5月以降にSASホームページにてご案内を予定しております。
・お客様による発表（論文、プレゼンテーション、ポスター）
・基礎講座（分析、データマネジメント、製品基礎など）
・SAS製品ハンズオン、製品/ソリューション紹介セッション・優秀発表表彰式、懇親会■お申し込み2011年の発表募集、参加募集ともにSASホームページにて5月頃ご案内を予定しております。
昨年開催の内容はこちらをご参照ください。
http://www.sas.com/offices/asiapacific/japan/usergroups/■お問い合わせ先SASマーケティング本部
T E L： 03-6434-3702

E-mail： jpnsaswg@sas.com

発行：S A S I n s t i t u t e J a p a n 株 式会社

SPRING 2011
■ テクニカルニュースに関するお問い合わせ先
テクニカルサポートグループ
TEL:03-6434-3680 FAX:03-6434-3681

SAS Institute Japan 株式会社

本社
〒106-6111
東京都港区六本木6-10 -1
六本木ヒルズ森タワー 11F
Tel 03（6434）3000
Fax 03（6434）3001

大阪支店〒530 - 0004
大阪市北区堂島浜1-4-16
アクア堂島西館 12F
Tel 06（6345）5700
Fax 06（6345）5655

w w w.s a s.c o m / j p
このカ タログに記 載 された内容は改良のため、予 告なく仕 様・性 能を変 更する 場 合がありま す。あらかじ めご了承く ださ い。S A S ロゴ、T h e Po w e r t o K n o wは 米国SAS
Institute Inc.の登録商標です。その他記載のブランド、商品名は、一般の各社の登録商標です。
Copyright©2011, SAS Institute Inc. All rights reserved.