特集

平均や比率に関する推定と検定をSASで行なう方法
平均や比率に関する推定と検定をSASで行なう方法

1. はじめにQ&A

手元に得られたデータをもとに分析を行なうとき、そのデータの概要をSASで探ることはこれまでのSAS Technical Newsでご紹介してきました。今新刊マニュアルのお知らせ

号の特集では、SAS/STATソフトウェアのTTEST、およびFREQプロシジャを使用して、母平均や母比率に関する推定と検定を行なう方法をご紹介します。

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

2. 平均に対する推定と検定分析を目的として標本データを観測しているとき、その値は大きく分けて量最新リリース情報的な場合と質的な場合があります。たとえば、温度や金額、100点を満点としたテストの点数、血圧、身長などは、一般に量的な値と考えられます。

SAS Technical News送付についてのご案内

量的なデータに対しては、その平均に関心を持つことが多々あります。このとき、母集団が正規分布に従うことを想定した上で、その平均について調べる、言い換えると平均に関する推定や検定を行なうことがあります。
平均に関する検定は、
いわゆるt分布に従う統計量を計算することから、t検定と総称されることがあります。また、ある場合によっては、t分布について初期の考察を行なったスチューデント
（Student、
これはウィリアム・ゴセットの論文投稿時のペンネーム）にちなんで、
スチューデントのt検定と呼ばれるときもあります。

2.1 1標本の場合
次のような状況を考えてみましょう。A県の電気屋をランダムに20店舗選び、ある電化製品Xの価格を調べた結果が以下のようになったとします。
3180, 3599, 3280, 2980, 3500, 3099, 3200, 2980,
3380, 3780, 3199, 2979, 3680, 2780, 2950, 3180,
3200, 3100, 3780, 3200

（単位は円）

この商品の平均価格が3000円と異なるか、有意水準をα=0.10とした
1標本のt検定を行なってみましょう。ここでの帰無仮説H0と対立仮説H1は、以下のように設定します。
H0: A県における電化製品Xの平均価格は3000円である
H1: A県における電化製品Xの平均価格は3000円ではない

S A S プログラムを 扱った 書 籍 に は 、この 検 定 は B a s e / S A S の

統計量

UNIVARIATEプロシジャで対応していると記載されているものがありますが、現在ではSAS/STATのTTESTプロシジャでも実行できます。TTESTプロ

変数

最小値

最大値

シジャで読み込むSASデータセットでは、分析で使用する変数が1つ用意さ

Price

2780

3780

れていれば十分です。ここでは、販売価格を表すPriceという変数ただ1つからなるデータセットSample1を作成し、TTESTプロシジャで読み込んで

t 検定

検定を行なうプログラムを書いてみましょう。
1標本の平均に関する検定のプログラム 1
DATA Sample1;

変数

自由度

t 値

Pr > |t|

Price

19

3.94

0.0009/*サンプルデータの作成 *//* @@で1行から複数のデータを読み込む */この出力では、「統計量」と「t検定」という2つのテーブルが現れています。

DATALINES;

最初の「統計量」テーブルでは、標本から得られた統計量と、それらに基3180 3599 3280 2980 3500 3099 3200 2980 3380

づく母集団パラメータの推定値が得られています。出力されている「平均」

3780 3199 2979 3680 2780 2950 3180 3200 3100

は、標本平均であり、かつ母平均の推定値でもあります。また、2つの「平3780 3200

均の信頼限界」は、信頼水準を90%とした母平均に対する区間推定の

INPUT Price @@;;両端を表しています。2つ目の「t検定」テーブルでは、名前のとおり平均RUN;に関するt検定の結果が出力されています。t値は3.94であり、自由度19/* TTESTプロシジャの実行 */PROC TTEST DATA=Sample1 H0=3000 ALPHA=0.10;/* 分析する変数名をVARステートメントで指定する */のt分布をもとに、0.0009というp値が計算されています。このp値は有意水準0.10と比べるとより小さいことから、
この検定では帰無仮説H0は棄却され、A県における電化製品Xの価格は3000円ではないことが強く示
唆されることになります。

VAR Price;
RUN;

実は、標本のおおきさ（N）、標本平均（MEAN）、および標本標準偏差（STD）という3つの要約統計量がわかっていれば、上記の検定を行なうことがで
PROC TTESTステートメントでは、DATA=オプションで分析に使用する

きます。これら3つの統計量を含むSASデータセットを用意しておくと、

SASデータセット名を指定しています。これを省略すると、TTESTプロシジャ

TTESTプロシジャはそれを認識し、検定の結果を出力することができます。

は直近に作成されたデータセットを読み込みます。昔の書籍では、DATA=

なお、データセット中では統計量を表すキーワードを変数̲STAT̲、またはオプションを省略しているプログラムが記載されていたりしますが、想定外

̲TYPE̲で与えておく必要があります。

の問題を避けるため、データセット名の指定は必ず行なっておきましょう。
1標本の平均に関する検定のプログラム 2
このステートメントでは、他にも2つのオプションが与えられています。H0=
オプションでは、帰無仮説で設定した数値（ここでは3000）を指定します。
もしこのオプションを省略するとH0=0と指定されたものとして解析が行な/* 要約統計量からなるSASデータセットを作成 */DATA Stat_for_Sample1;

われるので、1標本の平均に対するt検定では、通常このオプションを指定

INPUT _STAT_$ Price;

する形になるでしょう。なおH0=オプションは、後でご紹介する「対応のあDATALINES;

るt検定」や「2標本のt検定」でも使用できます。ALPHA=オプションは、

N

20

信頼区間のための信頼水準を設定するものです。ここでは、0.10と指定しMEAN

3251.3たことから、1-0.10=0.90、すなわち母平均に対する90パーセント信頼区間

STD

285.08が算出されます。

;
RUN;

TTESTプロシジャの出力/* TTESTプロシジャの構文は同じ */PROC
TTEST プロシジャ

TTEST

DATA=Stat_for_Sample1

H0=3000

ALPHA=0.10;
VAR Price;

統計量

RUN;

平均の

平均の

変数

N

信頼限界の下限

平均

信頼限界の上限

出力結果を確認してみましょう。要約されたデータを分析に使用したため、

Price

20

3141.13251.33361.5前のプログラムでは出力されていた最大値などは得られていませんが、本質的に同じ結果となっていることがわかります。

統計量

Base SASのUNIVARIATEプロシジャを使用して同じ検定を行なうときには、
以下のようにプログラムを記述します。

標準偏差の

標準偏差の

変数

信頼限界の下限

標準偏差

信頼限界の上限

標準誤差

Price

226.33285.08390.6763.745

UNIVARIATEプロシジャによるプログラム例

133 129
155 155/* 要約統計量からなるSASデータセットを作成 */PROC UNIVARIATE DATA=Sample1 MU0=3000;

130 128
136 140

VAR Price;145 150RUN;

137 140
134 138;

前記のTTESTプロシジャとほぼ同様の指定となりますが、帰無仮説におRUN;ける数値を指定するオプションがMU0=となっています。また、TTESTプロ
シジャとは異なり、要約統計量を読み込んで検定を行なう機能はありません。

/* TTESTプロシジャによる対応のあるt検定 */PROC TTEST DATA=Sample2;/* PAIREDステートメントで2つの変数を指定 */UNIVARIATEプロシジャによる出力例の一部

PAIRED After*Before;
RUN;

位置の検定 H0: Mu0=3000
検定---統計量----------p 値-------

対応のあるt検定では、対となる2つの変数をPAIREDステートメントで指Student の t 検定

t

Pr >

符号検定

M

符号付順位検定S|t|0.0009

定します。このとき、アスタリスク * の前後にそれらの変数を与えますが、

5

Pr >= |M|

0.0414

前の変数値から後の変数値を引いた結果を分析では利用します。

82

Pr >= |S|0.0012

3.942259

UNIVARIATEプロシジャによる出力例の一部
UNIVARIATEプロシジャの出力は多岐にわたりますが、「位置の検定」とTTEST プロシジャ

いう項目にt検定の結果が現れます。出力される統計量の桁数が異なるものの、本質的に全く同じ結果が得られています。UNIVARIATEプロシジャ

統計量における位置の検定では、他にもノンパラメトリックな手法である符号検定（signed test）と、（Wilcoxonの）符号付順位検定（signed rank test）の結果もあわせて出力されます。
なお、母 平 均 = 0の 検 定に限れば、他の 様々なプロシジャ、たとえば

平均の

平均の

差

N

信頼限界の下限

平均

信頼限界の上限

After - Before

10-0.5191.9

4.3189MEANSプロシジャなどを用いてその結果を出力することができます。
統計量

2.2 対応のある2標本の場合
この節では、いわゆる「対応のある」t検定をSASで行なう方法を紹介しま

標準偏差の

標準偏差の

す。ここで、「対応のある」データとは、何らかの意味で「対」として考える

差

信頼限界の下限

標準偏差

信頼限界の上限べき数値のペアがあることを指します。たとえば、ある人にある画家の絵をAfter - Before

2.32583.3813

6.173

見せる前と後のその画家が好きであるかを得点化しておくと、その2つの得点はペアとして考えることができます。もう少し緩やかに、同じような属性、

統計量

たとえば年齢や性別が同じである2人をペアとして考え、異なった薬を投与し、反応の違いに差を見るといったことを考えることもあります。

差

標準誤差

最小値

最大値

After - Before

1.0693-46

対応のあるt検定での統計的な計算そのものは、前述の1標本のt検定と全く同じで、TTESTプロシジャを使用して実行できます。ただし、用意する

t 検定

SASデータセットの形状は異なり、1つのオブザベーションにおいて必ず対となる2つの観測値が存在しなくてはなりません。
次の例は、10人を対象としてある薬を使用した前と後で血圧の変化がある

差

自由度

t値

Pr > |t|

After - Before

9

1.78

0.1093かを検討することを想定しています。有意水準α=0.05で検定をしてみましょう。SASデータセットSample2には2つの変数があり、変数Beforeは使用前、
一方Afterは使用後の血圧を表しています。

1標本のt検定と同じ体裁で結果が出力されています。t検定におけるp値が0.05より大きいことから帰無仮説は棄却されず、
この薬の摂取前と後で対応のあるt検定のプログラム

は血圧に変化がある、とまでは言えない、という結論にいたります。
なお、
もしUNIVARIATEプロシジャで対応のあるt検定を行なう場合には、

DATA Sample2;
INPUT Before After;
DATALINES;
122 128
142 146
162 161/* サンプルデータの作成 */D A T Aステップであらかじめ ペ アごとに差を計 算しておいてから、
UNIVARIATEプロシジャを実行してください。

UNIVARIATEプロシジャを利用した対応のあるt検定の実行例

PLOT Score*Method / BOXSTYLE=SCHEMATIC;RUN;DATA Sample2_Diff;/* TTESTプロシジャ */SET Sample2;
Difference=Before-After;/* 差を計算する */PROC TTEST DATA=Sample3;/* 群を識別する変数をCLASSステートメントで指定 */RUN;/* UNIVARIATEプロシジャ */PROC UNIVARIATE DATA=Sample2_Diff;
VAR Difference;

CLASS Method;/* 分析変数をVARステートメントで指定 */VAR Score;
RUN;

RUN;

2.3 独立した2標本の場合
2つの母集団間に統計学的に何らかの関連や対応が存在しないと思われる場合には、それらからそれぞれ標本をとり、群間に平均の差が存在するかを調べるいわゆる2標本のt検定は、同じくTTESTプロシジャで実現できます。
ある教育内容について、2つの異なった教え方で大学生に対して行なうことを考えてみましょう。1つはこれまでと同じ方法（A）で、もう1つは新たに考案された方法（B）です。この2つの教え方に違いがあるかを、学習後に100点を満点とした達成度テストを行ない、その結果から検討するものとします。そこで、教授方法（A）を行なった後でのテスト結果の平均をμA、また（B）に対する平均をμBとおきます。この平均差の検定における帰無仮説

図１ BOXPLOTプロシジャによる箱ひげ図

は2つの教授方法に差はない、対立仮説として2つの教授方法には差があると設定し、有意水準α=0.05で検定を行ないましょう。

+ で表示されている平均と、箱の中央部に存在する中央値を表す横線が近く、また上下の箱の大きさがそれほど異ならないことから、各群の標本分

帰無仮説 H0: μA=μB

布はおおむね対称と考えられ、また上下に外れた点---いわゆる外れ値---

対立仮説 H1: μA ≠μBも存在していないことがわかります。

実際に得られたテスト結果は、以下のようになりました。

という3つの項目に分かれています。順に見ていきましょう。

教授方法Aを行なった後のグループAのテスト結果

TTESTプロシジャの出力「統計量」テーブル

TTESTプロシジャの結果は、
この場合には「統計量」「t検定」「等分散性」

66, 64, 63, 74, 60, 58, 75, 48, 80, 75, 51, 48, 69, 45, 75
統計量
教授方法Bを行なった後のグループBのテスト結果
平均の84, 90, 67, 91, 72, 68, 86, 50, 61, 65, 96, 89, 83, 78, 71, 65
変数

MethodN

信頼限界の下限

平均分析で使用するSASデータセットでは、測定したテストの点数と、2つの教

Score

A

15

57.05563.4

授方法を指し示す変数を用意します。ここでは、それぞれScoreとMethod

Score

B

16

69.071

76という名 前としました。なお、ここではデータの 形 状を見るために、

Score

Diff (1-2)-21.63-12.6

BOXPLOTプロシジャで各教授方法に対するスコアの分布を箱ひげ図で確認しています。

統計量

独立2標本の平均差の検定 1
DATA Sample3;/* SASデータセットSample3の作成 */INPUT Method$ Score @@;DATALINES;

平均の

平均の

変数

Method信頼限界の上限

信頼限界の下限

標準偏差

Score

A

69.7458.387811.457Score

B

82.9299.605113.003

Score

Diff(1-2)-3.5739.780412.281

A 66 A 64 A 63 A 74 A 60 A 58 A 75 A 48 A 80 A 75
統計量

A 51 A 48 A 69 A 45 A 75
B 84 B 90 B 67 B 91 B 72 B 68 B 86 B 50 B 61 B 65 B 96

標準偏差の

B 89 B 83 B 78 B 71 B 65;
RUN;/* BOXPLOTプロシジャで箱ひげ図 */PROC BOXPLOT DATA=Sample3;

変数

Method信頼限界の上限

標準誤差

最小値

最大値

Score

A

18.0682.9581

45

80

Score

B

20.1243.2506

50

96

Score

Diff(1-2)

16.5094.4136

2つの群AとBそれぞれに対して、標本に対する様々な統計量が最初に出力されます。また、2標本間の差に関する統計量もあわせて算出されます。

2.4 TTESTプロシジャで利用できる他のステートメント、オプション
BYステートメント、WHEREステートメント、およびFORMATステートメントなどは、TTESTプロシジャでも利用できます。その他に用意されている構

TTESTプロシジャの出力「t検定」テーブル

文としては、以下のものがあります。

t 検定

・FREQステートメント、WEIGHTステートメント
それぞれ、度数、および重みを表す変数を指定します。

変数

分散

手法

自由度

t 値

Pr > |t|

Score

Pooled

Equal

29

-2.85

0.0079Score

Satterthwaite

Unequal

28.9

-2.87

0.0077・COCHRANオプション（PROC TTESTステートメント）
独立2標本に対するt検定では、母分散が異なると考えられるときにコクランの方法（Cochran、
コクラン-コックスの方法、
コクラン-コックス検定とも呼ばれるときがあります）で自由度を調整した検定があります。

2番目に現れる「t検定」のテーブルでは、名前のとおり独立2標本間の平近 年では前 述 の W e l c h 検 定 が使 用されることが多いのですが、均差に関するt検定の結果が出力されています。このとき、等分散性を仮COCHRANオプションを指定することによってこの検定の結果が出力さ定した場合のt検定が1行目に、また分散が異なることを前提としたいわゆ

れます。

るウエルチ（Welch）検定が2行目に出力されます。どちらの検定結果を見るべきかという問題は、次の「等分散性の検定」の結果をもとに判断する・CI=オプション（PROC TTESTステートメント）

こともあります。

TTESTプロシジャの出力において、先頭の「統計量」テーブルには母標

TTESTプロシジャの出力「等分散性」テーブル

用すると、信頼限界の計算方法を変更することができます。このオプショ

準偏差に対する信頼限界が表示されています。このCI=オプションを利ンを指定しなかった場合にはCI=EQUALという指定に基づいて計算さ等分散性れます。これは、ALPHA=オプションで与えた数値をpとおくと、自由度カイ2乗分布の両端において確率がp/2ずつとなるようにして得られた数

変数

手法

分子の自由度

分母の自由度F 値

Pr > F

Score

Folded F

15

14

1.29

0.6412

値を信頼限界として出力します。一方、CI=UMPUと与えると、一様最強
力不偏検定に基づいた信頼限界が算出されます。CI=NONEと指定す
ると、母標準偏差に対する信頼限界は出力されません。

「等分散性」の項では、2つの群における分散に違いがあると言えるかどう

2.5 SAS® Enterprise Guide® 4.1での実現方法かを調べる検定を行なっています。この検定---TTESTプロシジャでは

ここでご紹介した検定は、いずれもEnterprise Guide 4.1（以下EG4.1）

Folded F検定と呼ばれています---におけるp値は0.6412と計算されていのタスクとして存在します。メニューから、［分析］＞［分散分析］＞［t検定］ることから、等分散性を積極的に否定することはできません。したがって、と選択することで、前記の3つの検定をいずれも実現することが可能です。

通常はひとまず等分散であることを是認することになります。
なお、1標本のt検定と同じように、標本に関する要約統計量がわかっていれば平均差の検定も行なうことができます。群を表す変数を用意する必要がある以外は同じ構成のSASデータセットを用意する形になります。
独立2標本の平均差の検定 2
DATA Stat_for_Sample3;
INPUT Method$ _STAT_$ Score;
DATALINES;
A N

15A MEAN

63.4

A STD

11.457B N

16B MEAN76

B STD

13.003

図２ t検定における画面;
RUN;/* TTESTプロシジャの構文は同じ */PROC TTEST DATA=Stat_for_Sample3;
CLASS Method;
VAR Score;RUN;2.6 その他の話題

TABLESステートメントでは、BINOMIALオプションを指定します。このプ

2006年に米国で開かれたSASユーザー会SUGI31では、次期リリース

ログラムでは、更にサブオプションとして括弧の中にLEVEL=とP=を与え

SAS 9.2におけるTTESTプロシジャの拡張点が開発担当者らによって紹ています。LEVEL=サブオプションでは、2つの事象のうちで関心を持って介されています。

いる方の水準値を指定します。一方P=サブオプションは、帰無仮説におけLike Wine, the TTEST Procedure Improves with Ageと、以下のような出力が得られます。

る比率（割合）、
ここでは0.5の数値を与えます。このプログラムを実行する
http://www2.sas.com/proceedings/sugi31/208-31.pdf
FREQプロシジャの出力例
その中では、SAS 9.2において以下のような機能が追加されるとのことです。
FREQ プロシジャ
・ODS Graphicsによるグラフ描画
・TOST（Two One-Sided Test）に基づく同等性の検定

累積

累積

度数

パーセント

・片側検定のp値と信頼区間の算出

Event

・AB/BAタイプの簡単なクロスオーバー計画に対する分析-----------------------------------------------

上記以外にも、重要な拡張がいくつか計画されています。

度数

パーセント

Head

8

40.00

8

40.00

Tail

12

60.00

20

100.003. 比率に関する推定と検定

Event = Head の二項分布の比率

本項以降では、「表と裏」、「YesとNo」など、観測する事象が高々2つま---------------------------

でである状況を考えます。このような場合には、それらの発生比率（割合）比率0.4000に関心を持つことがあります。1標本、または2標本の違いや、更にデータ

漸近標準誤差0.1095内に対応が存在するか否かによって、一般に2項検定、マクネマー検定、
ま95% 信頼下限

0.1853たはピアソンのカイ2乗検定などを行なうことになります。この節で行なう

95% 信頼上限

0.6147

検定では、いずれも有意水準を0.05として考えます。
正確な信頼限界

3.1 1標本の場合95% 信頼下限

0.1912

ここに一枚のコインがあるとします。このコインを投げ表か裏かを観測する

95% 信頼上限

0.6395とき、一般に表の出る確率は0.5と考えられますが、もしこのコインにゆがみがあるとその限りではありません。ここでは、帰無仮説H0と対立仮説H1を

H0: 母比率 = 0.5 に対する検定

それぞれ帰無仮説が正しいもとでの漸近標準誤差0.1118H0: 表が出る確率は0.5である

Z-0.8944

H1: 表が出る確率は0.5ではない

片側 Pr <

Z

0.1855両側 Pr > |Z|

0.3711と与え、コイン投げを20回行なっていわゆる2項検定を行ない、このコインにはゆがみがあると考えられるか、
それともそれを示す明確な根拠はないか

標本サイズ = 20を調べてみましょう。分析用のSASデータセットでは、表をHead、裏をTailとし、変数Eventに格納しています。そのデータセットをFREQプロシジャで読み込み、分析を行ないます。

FREQプロシジャのアウトプットは、大きく3つのテーブルに分かれています。
1つ目に対しては項目名は特に与えられていませんが、いわゆる一元度数

FREQプロシジャによる2項比率に関する分析プログラム 1

表が出力されています。2つ目の「Event = Head の二項分布の比率」というテーブルには、母比率の推定値（標本における比率）、標準誤差、およ

DATA Sample4;/* サンプルデータの作成 */び正規分布に基づく漸近的な信頼限界、および正確分布に基づいた信頼限界が出力されています。最後のテーブルには、項目名のとおり検定の

INPUT Event$ @@;

結果が表示されています。

DATALINES;
Head Tail Head Head Tail Tail Tail Head Tail Tail

正確分布に基づく2項検定の結果を得るためには、更にEXACTステートメ

Tail Tail Head Head Tail Head Tail Tail Head Tail

ントを追加してBINOMIALオプションを指定する必要があります。

;
EXACTステートメントの例

RUN;

PROC FREQ DATA=Sample4;/* FREQプロシジャ */TABLES Event /BINOMIAL(LEVEL="Head" P=0.5);
RUN;

PROC FREQ DATA=Sample4;
TABLES Event /BINOMIAL(LEVEL="Head" P=0.5);
EXACT BINOMIAL;
RUN;/* EXACTステートメントを追加 */出力結果の一部

力形式を準備し、その一方で水準の並び順はわかり易くしておくと、水準の並び順の誤りを防ぐことができます。
H0: 母比率 = 0.5 に対する検定
マクネマー検定の例

帰無仮説が正しいもとでの漸近標準誤差0.1118Z-0.8944

片側 Pr <

Z

0.1855両側 Pr > |Z|

0.3711
正確検定

片側 Pr <=

P

両側 = 2 * 片側

PROC FORMAT;/* FORMATプロシジャで出力形式を作成 */VALUE Approve 1="支持する" 2="支持しない";
RUN;

DATA Sample6;
0.2517INPUT Last_Year This_Year Freq;

0.5034

FORMAT Last_Year This_Year Approve.;
DATALINES;

標本サイズ = 20

1 1 331 2 132 1 19「正確検定」に関する出力が現れ、片側検定、および両側検定によるp値

2 2 35の表示が追加されていることがわかります。

;

FREQプロシジャを利用しているときには、データがあらかじめ集計されてRUN;いることがよくあります。このようなデータセットでは、水準、および度数を表す変数が対となって存在しており、FREQプロシジャはそのようなタイプ

PROC FREQ DATA=Sample6;のデータも受けつけます。他の分析プロシジャでは度数を表す変数は/* AGREEオプション */FREQステートメントで指定しますが、FREQプロシジャにはこのステートメ

TABLES Last_Year*This_Year / AGREE;

ントが存在せず、その代わりにWEIGHTステートメントを使用します。

EXACT MCNEM;
WEIGHT Freq;

FREQプロシジャによる2項比率に関する分析プログラム 2
DATA Sample5;

RUN;/* サンプルデータの作成 */FREQプロシジャの出力の一部

INPUT Event$ Frequency;
DATALINES;
Head

8

Tail

12

Last_Year * This_Year の統計量
McNemar の検定;
RUN;-------------------------統計量 (S)1

TABLES Event /BINOMIAL(LEVEL="Head" P=0.5);

漸近的な Pr >EXACT BINOMIAL;

正確なWEIGHT Frequency;

1.1250

自由度

PROC FREQ DATA=Sample5;

S

0.2888Pr >= S

0.3771/* WEIGHTステートメント */RUN;
なお、上記プログラムのようにEXACTステートメントを使用すると、ここでも正確な分布に基づく検定の結果も出力されます。いずれの検定方法に
前記のFREQプロシジャと全く同じ出力が得られることを確認してください。

おいても、帰無仮説を棄却するまでにはいたらないという結果が得られています。

3.2 対応のある2標本の場合

なお、FREQプロシジャにおけるマクネマー検定における検定統計量の計

母平均に関する検定を行なったときと同じように、母比率の検定において算式では、
いわゆる連続修正項が含まれています。書籍やソフトウェアによっも対応のある2標本に対する検定と、対応関係を考えない独立なときの検ては、
この修正項を含まない数値を統計量として算出しているものもある

定が考えられます。データの中で対応があると考えられるときにはマクネマー

ことにご留意ください。

（McNemar）検定が、また独立していると考えられるときにはピアソン（Pearson）

AGREEオプションからは、
いわゆるカッパ係数も計算されます。また、分割表のカイ2乗検定が一般的に行なわれます。

が2×2よりも大きな場合には、ボウカー（Bowker）の対称性検定が行なわ

マクネマー検定を行なうためには、FREQプロシジャにおいて分割表の定義れます。また、分割表の性質によって、その他にも統計量が算出されます。

をTABLESステートメントで与え、AGREEオプションをあわせて指定します。
以下の例では、FORMATプロシジャを使用して出力形式（フォーマット）を作成しておき、分析用のSASデータセットに適用しています。FREQプロシ
ジャに限らず、分析においては水準の並びが重要な意味合いを持つことが多々あります。変数の値として文字データをそのまま与えておいたときには、並び順が意図と異なって扱われてしまう恐れがあります。このように出3.3 独立2標本の場合3.4 EG4.1での実現方法

分割表に対するピアソンのカイ2乗検定は、一般に行と列の関連性を調EG4.1ではメニューから「記述統計」＞「一元度数表」と選択することによっべるときに使用されますが、2×2表に対しては独立な2標本の比率に関すて、1標本の比率に関する推定と検定を行なうことができます。

る検定であると考えることができます。ここでは、ある集団からランダムに男
女それぞれ30人ずつを選び出し、答えが「はい」「いいえ」のいずれかである質問をすることを想定します。その集計結果は以下のとおりでした。
はい

いいえ

合計

女性

18

12

30

男性

14

16

30

合計

32

28

60

このデータを使用して、有意水準0.05でピアソンのカイ2乗検定を行なってみましょう。FREQプロシジャのTABLESステートメントでは、CHISQオプ
ションを指定します。
ピアソンのカイ2乗検定のプログラム例/* サンプルデータの作成 */DATA Sample7;

図３ 一元度数表における画面

INPUT Sex$ Answer$ Cnt;
DATALINES;
Female

Yes

18

同じく、
メニューから「記述統計」＞「分割表分析」と選択することにより、Female_No

12マクネマー検定やピアソンのカイ2乗検定を行なうことができます。

Male

Yes

14

Male

_No

16

;
RUN;

PROC FREQ DATA=Sample7;
TABLES Sex*Answer / CHISQ;/* CHISQオプション */WEIGHT Cnt;
RUN;

FREQプロシジャの出力の一部
Sex * Answer の統計量
統計量

自由度

値

p値

-----------------------------------------------

図４ 分割表分析における画面

カイ 2 乗値

11.07140.3006

尤度比カイ 2 乗値

11.07470.2999

ただし、ORDER=オプションなどの細かい設定に関しては、選択メニューと連続性補正カイ 2 乗値

10.60270.4376

して用意されてないものもあります。

Mantel-Haenszel のカイ 2 乗値

11.05360.3047

ファイ係数

0.1336

一致係数0.1325

Cramer の V 統計量

0.1336

たくさんの統計量が出力されますが、一番上の行に出力される内容がここでの目的であるピアソンのカイ2乗検定の結果です。p値が大きな数値であることから、男女間に母比率の差があるとまでは言えないという結論になります。

3.5 FREQプロシジャにおけるその他の機能
FREQプロシジャには、
これまでにご紹介した以外にも数多くの解析機能が存在します。次のリストはその一部です。
・ピアソン（Pearson）の相関係数、スピアマン（Spearman）の相関係数、SomersのD、
ラムダ統計量などの様々な連関統計量
・ヨンキー-タプストラ（ J o n c k h e e r e - T e r p s t r a ）検定（ * ）・コクラン-アーミテージ（Cochran-Armitage）傾向検定
・オッズ比、
リスク比、
およびリスク差・コクラン-マンテル-ヘンツェル（Cochran-Mantel-Haenszel）検定に関連する様々な統計量
・様々な統計量に対する信頼区間
・正確な分布に基づくp値の算出、またそのp値が現実的な時間で求めることが困難である場合のモンテ・カルロシミュレーション（*）JonckheereとTerpstraは、共に人名であり、日本語表記は人によって異なるようです。

3.6 その他の話題
前述のSUGI31では、SAS 9.2におけるSAS/STATソフトウェア全般に対する拡張点を紹介したセッションがありました。
You Can't Stop Statistics
http://www2.sas.com/proceedings/sugi31/185-31.pdf
その中では、FREQプロシジャの追加機能として以下のものが挙げられています。
・Zelen検定
・2項比率に対する信頼区間の計算方法の追加
・ODS Graphicsによるグラフ描画
これら３点以外にも、数多くの機能追加が予定されています。

4. おわりに
今号は、TTESTプロシジャやFREQプロシジャの基本的な使い方についてご紹介しました。今後は、他の分析プロシジャについてもとりあげてまいります。

例：FILEREF関数を使用したマクロ例
FILENAME myfile "C:¥myfile.txt";%MACRO chk(filenm);● 自動呼出しマクロの保存先を出力（表示）する%IF %SYSFUNC(FILEREF(&filenm))=0● ファイル参照名の存在を確認する方法%THEN● RTFファイルの余白を制御する%PUT "FILENAME &filenm は割り当てられています";● SASシステムビューアで日本語を表示する方法%ELSE %IF %sysfunc(fileref(&filenm))>0● シミュレーション実行時の出力を抑制する%THEN● CGM形式のグラフィックデバイスの指定%PUT "FILENAME &filenm は割り当てられていません";● 微分係数の算出方法%ELSE %IF %SYSFUNC(FILEREF(&filenm))<0%THEN%PUT "FILENAME &filenm は割り当てられていますが参照
先が存在しません";%MEND;

自動呼出しマクロを利用していますが、どのフォルダに保存さ%chk(myfile)

れているマクロが呼び出されたかを確認する方法はありますか。
SAS9より追加されたMAUTOLOCDISPLAYマクロシステ
ムオプションを利用することで、自動呼び出しマクロの起動
ODS RTFステートメントにより作成するRTFファイルの余白

時に、ログウィンドウへマクロのソース保存先を出力するこはどのようにして制御することができますか。

とが可能です。以下の例を参考にしてください。

TEMPLATEプロシジャにてODS RTFの際に用いられるテン

例：MAUTOLOCDISPLAYマクロオプションを指定したプログラム例

プレートのLEFTMARGIN、RIGHTMARGIN、TOPMARGIN、
BOTTOMMARGIN属性を変更することにより、作成される/* MAUTOLOCDISPLAY */OPTIONS MAUTOLOCDISPLAY;

RTFファイルの余白を指定することができます。デフォルトでは全て2.5インチ%LET x=%TRIM(abc);に設定されています。
例：各MARGIN一覧

例：出力結果例
1

OPTIONSMAUTOLOCDISPLAY;

2%LET x=%TRIM(abc);

MAUTOLOCDISPLAY(TRIM):

このマクロは、自動呼び出しファイル

LEFTMARGIN: 文書の左側の余白を指定

RIGHTMARGIN: 文書の右側の余白を指定

TOPMARGIN: 文書の上の余白を指定

BOTTOMMARGIN: 文書の下の余白を指定

C:¥Program Files¥SAS¥SAS 9.1¥core¥sasmacro¥trim.sas
からコンパイルされました。
例：TEMPLATEプロシジャ例
PROC TEMPLATE;FILENAMEステートメントを使用する際に、既存のファイル

DEFINE STYLE styles.test;

参照名を上書きしないようにしたいのですが、ファイル参照PARENT=styles.rtf;

名が存在するかチェックすることは可能ですか。

STYLE BODY FROM DOCUMENT//* 左側の余白を指定 */LEFTMARGIN=3in
FILEREF関数を使用することで、ファイル参照名が存在す

RIGHTMARGIN=2.5in/* 右側の余白を指定 */るかどうかの確認を行なうことが可能です。この関数の戻り

TOPMARGIN=2.5in/* 上部の余白を指定 */

BOTTOMMARGIN=2.5in;/* 下部の余白を指定 */値は以下のとおりです。
END;
例：FILEREF関数の戻り値

RUN;/* 上で作成したTEMPLATEの使用例 */=0 ファイル参照名および参照先が存在する

ODS RTF FILE="c:¥temp¥test.rtf" STYLE=styles.test;>0 ファイル参照名が割り当てられていない<0 ファイル参照名は割り当てられているが、参照先が存在しない※同様のサンプルプログラムが、以下のURLにも記載されています。
How can I set the margins for the ODS RTF destination?
http://support.sas.com/faq/040/FAQ04001.html

SASシステムビューアで、日本語が含まれているデータセット

例：オプション指定例

を開くと文字化けします。
どのようにすれば文字を正しく表示できますか。

ODS NORESULTS;

SASシステムビューアの標準のフォント設定を変更すること
で、日本語のデータを表示できます。操作手順は以下のとODS RESULTS; ステートメントにて、デフォルトに戻すことができます。

おりです。
※ログ、アウトプットを外部ファイルに出力することによって、ログ画面、ア
1. SASシステムビューアを起動します。

ウトプット画面における表示を抑制することもできます。この点に関しては、

2. メニューから［表示］-［オプション］を選択します。

以下のFAQをご参照ください。

3.［フォントの設定］タブに移動します。
4.［プロパティ］欄が［Grid］および［Text］の場合のフォントに、 ＭSゴ

http://www.sas.com/japan/service/technical/faq/list/body/ba254.html

シック などの日本語を表示できるフォントを指定します。
5.［OK］ボタンを選択します。
グラフを C G M 形 式 の ファイルとして 出 力 する 際 、
DEVICE=CGMMW6Cと指定していましたが、SAS9では、'デバイスCGMMW6Cが無効です。'のメッセージが表示されシミュレーションを実行していますが、多くのアウトプット、
およびログへのメッセージが出力されます。
これらの出力をせず、必ます。CGM形式にて出力するにはどのようにしたらよいですか。

要とする結果のみをデータセットに出力することはできますか。
'CGMMW6C'のデバイス名に関しては、SAS9以降ではデフォ
ルトにて指定できるデバイス名のリストより外されており、今後のリリースにて削除される予定となっています。このため、ログ画面とアウトプット画面について各々に記載します。

CGM形式のファイルとして出力する場合には、デバイス名として'CGMOF97L'、'CGMOF97P'に変更されることをおすすめします。その他、SAS9以降では、'CGMOFML'、'CGMOFMP'のデバイス名が新たに追加されています。な

ログ画面への出力に関して
マクロ関係以外WARNING、ERRORメッセージは抑制できませんが、NOTEメッセージは、NONOTESオプションにて非表示とすることができます。

お、デフォルトでは'CGMMW6C'のデバイス名を指定できませんが、
このデバイスの情報は、SASHELP.DGDEVICEのカタログに含まれています。
このため、CATALOGプロシジャにてDEVICEドライバをコピーすることによっ

例：オプション指定例て、'CGMMW6C'の指定を有効とさせることができます。次の例では、
GDEVICE0ライブラリとして既存のフォルダを指定し、SELECTステートメ
ントでCGMMW6Cドライバだけをコピーしています。

OPTIONS NONOTES;

例：CATALOGプロシジャによるCGMMW6Cドライバのコピー例
また OPTIONS NOTES; の指定にて、デフォルトのNOTEメッセージ表示に戻すことができます。

/* GDEVICE0のライブラリを作成 */LIBNAME GDEVICE0 'D:¥sasdev¥gdev'; /* 任意の既存フォルダを指定 */アウトプット画面への出力に関してPROC CATALOG C=SASHELP.DGDEVICE;・プロシジャにおけるOUTEST=オプションなどを用い、データセットへ結果を出力している場合には、NOPRINTオプションにてアウトプット
画面への出力を抑制することができます。

/* CGMMW6Cの情報をコピー */COPY OUT=GDEVICE0.DEVICES;SELECT CGMMW6C / ET=DEV;・ ODS OUTPUTステートメントを用いてデータセットに出力している

RUN;

場合には、
アウトプット画面への出力を以下のように記述することによっ

QUIT;て抑制することができます。
例：プログラムでの指定例
ODS LISTING CLOSE;/* アウトプット画面への出力を抑制 */< シミュレーションのプログラム >ODS LISTING;/* デフォルトに戻す */また、結果ウィンドウへも多くの出力がされますので、以下のステートメント
にて、抑制することが有用です。

任意の関数を与えたとき、その微分係数を求めることはできますか。
SAS/ORソフトウェアのNLPプロシジャ、またはSAS/IMLのCALL NLPFDDを使用してください。t以下の例では、2*sin（x）*（ cos（y）+1）という関数を考え、x=3.1415926、
y=1.5707963のときの偏微分係数を計算しています。NLPプロシジャでは、
PHESSIANオプションを指定すると、2回微分を行なって得られる行列も計算することができます。また、
このプロシジャには自動微分の機能が備わっており、基本的にプロシジャ内部で1次（及び2次）の導関数を解析的に求めてから微分係数を算出します。
例：NLPプロシジャの例
PROC NLP TECH=NONE PHESSIAN;
PARMS x=3.1415926, y=1.5707963;
f=2*SIN(x)*(COS(y)+1);
MAX f;
RUN;

一方、SAS/IMLではSTART/FINISHステートメントで目的関数を定めてから、CALL NLPFDDを使用します。
例：IMLプロシジャの例
PROC IML;START func(x);f=2*SIN(x[1])*(COS(x[2])+1);
RETURN(f);FINISH;x0={3.1415926 1.5707963};
CALL NLPFDD(f,g,h,"func",x0);/* fには関数の値が返る *//* gには偏微分係数からなるベクトル、hには2階の偏微分係数からなる行列が返る */PRINT g h;
QUIT;

■「分析力のマネジメント」2007年1月発行「Information Revolution」の邦訳版「分析力のマネジメント」が2007年
1月ダイヤモンド社より発行予定です。本書はSASのBI導入コンサルティ
ング・ナレッジが凝縮された一冊です。企業内の情報活用を進化させるフレー
ムワーク「情報進化モデル」の詳細と、自社のレベルを判定できるアセス

新刊マニュアルのお知らせ

メント方法を紹介しています。使い手の立場に立ち、技術のみならず価値観や体制のレベルアップも重視した内容です。本書に関するお問い合わ
せはマーケティング本部jpnwebmaster@sas.comまで。

SAS¤ Learning Edition リリース 4.1発売開始
発売以来、多くの方にご利用いただいている自宅実習用パッケージ「SASS A Sマニュアル申 込 用 紙、および最 新の P u b l i c a t i o n C a t a l o g

Learning Edition」の最新版リリース4.1が発売開始されました。

（ マ ニ ュ ア ル 案 内 パ ン フ レ ット ）は 弊 社 ホ ー ム ペ ー ジ

SAS Learning EditionはSAS9のBase機能であるBase SAS 9.1.3、（http://www.sas.com/japan/manual/）にて公開しておりますので、
あSAS Enterprise Guide 4.1、SAS/STAT、SAS/GRAPH、SAS/QC、

わせてご利用ください。

SAS/ETSを個人のPCにインストールし、付属の教本や豊富なサンプル素
材、GUIのインターフェイスによる操作性の良さを活かして統計を学習されたい方に向けた、
自宅実習用ソフトウェアパッケージです。

■価格
用52,500円（税込）

アカデミック利用

39,900円（税込）

一

般

利

※アカデミック利用でお申し込みの場合は、必ず学生証または教職員証のコピーが必要になります。

詳しくは、下記URLをご覧ください。
http://www.sas.com/japan/manual/le.html■１月の新刊発売予定「Data Preparation for Analytics Using SAS¤ 」
http://support.sas.com/publishing/bbu/authorline/2006/11̲
06/11̲06̲book.html
著者： Gerhard Svolba

注文番号： 60502
税込価格： 10,920円「Decision Trees for Business Intelligence and Data
Mining: Using SAS¤ Enterprise Miner“ 」
http://support.sas.com/publishing/bbu/authorline/2006/11̲
06/11̲06d.html
著者： Barry de Ville

注文番号： 57587
税込価格： 8,295円「Introduction to Data Mining Using SAS¤ Enterprise
Miner“ 」
http://support.sas.com/publishing/bbu/authorline/2006/11̲
06/11̲06d.html
著者： Patricia Cerrito

注文番号： 59829
税込価格： 17,220円

■文字値の処理
・文字値の抽出・文字値の結合・大文字小文字の修正■条件をつけた値の作成

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

・値の置換タブの使用
・CASE式の使用■クエリ内のデータ要約■特別トレーニングコースの開催のご案内

・データのグループ化と要約●「GENMODプロシジャによるＧＥＥ回帰モデル」コース（1日間）

・要約データのフィルタリング

日

程：2007年2月16日（金）10:00 〜 17:00（東京会場）■その他（自己学習）価

格：57,750円（税込）／チケット捺印数 1

・テーブルの結合・DBMSテーブルの照会

受講対象：SASによる統計解析に従事する方
前提知識：「医薬向けカテゴリカルデータ解析2」コースを受講済みか、同程度の知識のある方●「SAS Information Map Studioの活用」コース（1日間）

学習内容：本講座 は、経時的なデザインあるいはクラスターデザインによ日

程：2007年3月27日（火）10:00 〜 17:00（東京会場）

り、測定値間に何らかの相関が生じるようなデータの解析に携

価格：57,750円（税込）／チケット捺印数 1

わる方を対象としています。たとえば、対象者の失明に関する受講対象：システム管理者、データ管理者、データ設計者、開発者

縦断研究や、世帯および個人の特性を調整した肝臓がんの家

前提知識：下記2コースを受講済みか、同程度の知識のある方族集積性に関する横断研究をＧＥＥ（一般化推定方程式）によってモデル化することができます。
コンテンツ：■GEE回帰モデル

・「SASプログラミング 」
・「SASによるSQL入門」
コンテンツ：■SASエンタープライズ・インテリジェンス・プラットフォーム入門

・2値結果変数のためのGEE回帰モデル■SAS Information Map Studioの概要

・順序結果変数のためのGEE回帰モデル■インフォメーションマップの拡張■上級者のためのGEE回帰■インフォメーションマップとフィルタ

・GEE回帰モデルのためのモデル診断■インフォメーションマップとOLAPキューブ

・Alternating Logistic Regression Models■インフォメーションマップとストアドプロセス

担当講師：東京大学大学院 医学系研究科 生物統計学教室■インフォメーションマップでのデータ表示■インフォメーションマップとXML■新規トレーニングコースの開催のご案内●「SAS Enterprise Guideによる高度なデータ加工」
コース（1日間）■価格改定のご案内

日程：2007年2月9日（金）、3月7日（水）10:00 〜 17:00（東京会場）

弊社Webサイトをご参照ください。

価

格：57,750円（税込）／チケット捺印数 1

受講対象：SAS Enterprise Guideを使用して、ポイント＆クリックでSASの機能を活用したい方
前提知識：「SAS Enterprise Guideによるデータ加工とレポート作成」

2007年1月より受講料の価格改定を実施いたします。詳細につきましては、

SAS Institute Japan株式会社では、今後も多岐にわたったトレーニング
コースを追加していく予定です。コース内容・日程等の詳細は、順次弊社
Webサイトに公開しますので、以下のURLをご参照ください。

コースを受講済みか、同程度の知識のある方
コンテンツ：■はじめに

http://www.sas.com/japan/training/

・高度なクエリの紹介
・クエリビルダの基本操作

その他、
トレーニングに関する情報については、上記のURLをご参照いた■各種機能の使用

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

・一般的な機能の使い方・機能に関するSASヘルプ■数値の処理・行毎に要約統計量を計算する方法
・数値の精度を下げる方法
・乱数の生成■SAS日付値の処理
・SAS日付値の作成
・SAS日付値からの情報の抽出
・日付間隔の計算■データタイプの変換
・文字値から数値への変換
・数値から文字値への変換

SAS Technical News送付についてのご案内

最新リリース情報■PCプラットフォーム

SAS Technical Newsは次の方を対象にお送りしています。

Windows版

SAS 9.1.3

9.1 TS1M3・SASコンサルタントとしてご登録の方

64-bit Windows（Itanium）版

SAS 9.1.3

9.1 TS1M3

・SAS Technical Newsの購読をお申し込みいただいている方
今後SAS Technical News購読が不要の方、配信先の変更等をご希望■UNIXプラットフォームの方は、下記URLよりお手続きください。

Tru64版

SAS 9.1.3

9.1 TS1M3

配信停止

SunOS/Solaris版

SAS 9.1.3

9.1 TS1M3

http://www.sas.com/japan/corporate/material.html

HP-UX版

SAS 9.1.3

9.1 TS1M3

HP-UX（Itanium）版

SAS 9.1.3

9.1 TS1M3

配信先変更手続き

AIX版

SAS 9.1.3

9.1 TS1M3

http://www.sas.com/japan/sasj̲privacy.html#inquiry

Linux（Intel）版

SAS 9.1.3

9.1 TS1M3

ABI+版

SAS 6.11

TS040■ミニコンピュータプラットフォーム
OpenVMS AXP版

SAS 6.12

TS020

OpenVMS VAX版

SAS 6.08

TS407■メインフレームプラットフォーム
IBM版（OS/390, z/OS）

SAS 9.1.3

9.1 TS1M3

富士通版（F4, MSP）

SAS 6.09E

TS470

日立版（VOS3）

SAS 6.09E

TS470

CMS版

SAS 6.08

TS410

発行
テクニカルニュースに関するお問い合わせ先