SAS 講 習 会 資 料 SAS(Statistical Analysis System)とは 1) 統 計 解 析 パッケージの1つ 他 に SPSS, BMDP など 2) 統 計 手 法 が 豊 富 で 先 進 的 医 薬 系 で 多 く 使 われている 3)データハンドリングが 柔 軟 で 容 易 4)グラフ 機 能 が 優 れている 5) 記 述 言 語 が 簡 潔 で 容 易 Page 1/11 Last Edit: 2008-07-11 吉 永 実 行 環 境 : 記 述 方 式 とメニュー 方 式 1) 記 述 方 式 データの 編 集 や 統 計 計 算 の 指 示 を 記 述 する 2)メニュー 方 式 メニュー/マウス 操 作 を 基 本 にデータ 解 析 を 行 う(SAS Enterprise Guide) [ 記 述 方 式 ] 3つの Window エディタ, ログ, アウトプット, 他 に GRAPH 1)エディタ データの 編 集 や 統 計 計 算 の 指 示 を 記 述 する 2)ログ 計 算 を 実 行 した 際 の 履 歴 (エラーやデータ 入 力 状 況 を 確 認 する) 3)アウトプット 計 算 結 果 SAS プログラムの 構 成 1)2 種 類 のステップ DATA ステップ: データの 入 力 加 工 等 行 う PROC フ ロシーシ ャ: 主 に 統 計 処 理 2)ステートメント: セミコロン()までの 文 字 列 自 由 形 式 (コマンドや 変 数 名 の 行 またがり 不 可 ) 大 文 字 小 文 字 の 同 一 視 ( 文 字 データを 除 く) 3)データの 型 : 文 字 型, 数 値 型, 他 欠 損 値 : ピリオド(.) 4) 変 数 名 : 英 字 あるいはアンタ ースコア(_)で 始 まり 32 文 字 以 内 の 英 数 アンタ ースコア * 印 刷 ページの 設 定 OPTIONS PAGENO=1 PAGESIZE=60 LINESIZE=100 /*データの 読 み 込 み BMIの 計 算 */ DATA taikaku INFILE 'd:\ex\ex1.data' LENGTH name $ 20 INPUT name $ sex $ height weight BMI=weight / height **2 PROC SORT DATA=taikaku BY sex PROC MEANS DATA=taikkau BY sex PROC UNIVARIATE DATA=taikkau NORMAL PLOT VAR weight 5)SAS データセット: 主 に DATA ステップで 作 成 される PROC ステップで 参 照 される SAS 専 用 形 式 1 度 作 成 されると SAS を 終 了 するまで 有 効 6)コメントの 記 述 (2 通 り) a)コメント ステートメント * b)コメント ブロック /* */ 中 にセミコロンが 含 まれてもよい ステートメントの 中 にあってもよい
Page 2/11 Ⅰ.DATAステップ 1)SASデータセットの 作 成 : データの 入 力, 新 しい 変 数 の 作 成,データ 値 の 変 換 例. DATA ensyu1 ensyu1 というSASデータセットを 作 成 する 2)データの 入 力 : CARDS, データファイル a)cards DATA ステップに 続 いてデータを 記 述 する データが 少 ないときに 有 効 b)データファイル データファイルから 読 込 3) 入 出 力 書 式 : リスト 入 力,カラム 入 力, 他 a)リスト 入 力 境 界 値 ( 標 準 はスペース)により 順 次 割 り 当 てる b)カラム 入 力 桁 位 置 指 定 により 割 り 当 てる 演 習 1: CARDS によるリスト 入 力 ( 境 界 値 はスペース) 各 データ 項 目 は1 個 以 上 のスペースで 区 切 られている 先 頭 のスペースは 無 視 される INFILE CARDSは 省 略 可 能 縦 にデータを 整 列 する 必 要 はない DATA ensyu1 INFILE CARDS INPUT no height weight CARDS 1 160 60 2 165 63 3 168 65 演 習 2: CARDS による CSV 形 式 ( 境 界 値 がカンマ(,))のリスト 入 力 (Excel の CSV 形 式 出 力 ) 各 データ 項 目 は 1 個 の 境 界 値 (,)で 区 切 られている 縦 にデータを 整 列 する 必 要 はない 補 足 : 一 般 に 境 界 値 は 任 意 の 文 字 で 下 記 のように 境 界 値 を 指 定 すればよい INFILE CARDS DELIMITER=',' 注 意 :この 場 合 項 目 間 を1 個 以 上 の 区 切 りとして 扱 う 演 習 1では DELIMITER=' 'が 省 略 されている DATA ensyu2 INFILE CARDS DSD INPUT no height weight CARDS 1, 160, 60 2, 165, 63 3, 168, 65 演 習 3: CARDS によるカラム 入 力 データの 項 目 が 縦 に 整 列 している 場 合 に 用 いる 桁 範 囲 を 指 定 して 読 込 む( 右 例 ) 桁 位 置 (@x) 桁 数 (n.)による 読 込 方 法 INPUT @8 height 3. weight 4. @1 no 5. 補 足 : 入 力 桁 位 置 を 指 定 すれば 入 力 変 数 の 並 びは 任 意 2 種 類 の 指 定 を 混 合 してもよい 演 習 4: データファイルからのリスト 入 力 ファイルからデータを 読 込 む(CSV 形 式 ) 他 は CARDS 入 力 と 同 様 DATA ensyu3 INFILE CARDS INPUT height 8-10 weight 11-14 no 1-5 /*..+...1...+*/ CARDS 1 160 60 2 165 63 3 168 65 DATA ensyu4 INFILE 'H:\SAS 講 習 会 \ensyu.csv' DSD INPUT no height weight
補 足 a) 読 込 行 指 定 FIRSTOBS: 読 込 開 始 行 OBS: 読 込 最 終 行 例. INFILE FIRSTOBS=100 OBS=200 100 行 目 から 200 行 目 まで 読 込 む Page 3/11 b) 文 字 データの 読 込 INPUT 文 で 読 込 む 際 に 変 数 名 の 後 ろにドル 記 号 ($)を 付 ける 以 後 ではドル 記 号 は 必 要 ない c)リスト 入 力 の 場 合 の 行 末 の 欠 損 値 扱 い 入 力 項 目 に 対 するデータがない 場 合 次 の 行 を 読 みにいく INFILE CARDS MISSOVER とすると 次 の 行 へ 行 くのを 禁 止 する 後 続 を 欠 損 値 とする DATA ensyuaddb INFILE CARDS INPUT no sex$ CARDS 1 M 3 F d) 演 算 子 : 算 術 演 算 子 +( 加 算 ),-( 減 算 ),*( 乗 算 ),/( 除 算 ),**(べき 乗 ) 文 字 結 合 ( 結 合 ) 比 較 演 算 子 =, <, >, <=, >=, ^=( 等 しくない) 論 理 演 算 子 &(AND), (OR),^(NOT),~(NOT) (^と~は 同 じ) 4)プログラムの 制 御 : IF THEN ELSE a)if ( 条 件 ) THEN ( 真 の 場 合 の 処 理 ) ELSE ( 偽 の 場 合 の 処 理 ) 注 意 : 処 理 には1ステートメントしか 書 けない 複 数 ステートメント 書 く 場 合 には DO~END ブロックを 用 いる 注 意 :IF~THEN~ELSE DO~END などの 対 応 を 考 えて 分 かりやすい 構 造 に 記 述 する b) 多 岐 選 択 : SELECT WHEN END 注 意 : 条 件 式 を 先 頭 から 判 定 し 該 当 した 時 点 で SELECT ブロックを 抜 ける DATA ensyu4a INFILE CARDS INPUT no sex$ IF sex='m' THEN sexcode=1 ELSE sexcode=2 IF sex='m' THEN DO sexcode=1 sexcolor='blue' END ELSE DO sexcode=2 sexcolor='red' END CARDS 1 M 3 F DATA ensyu4b INFILE CARDS INPUT no height weight SELECT WHEN (150<=height<160) heigclas=5 WHEN (160<=height<170) heigclas=6 WHEN (170<=height<180) heigclas=7 WHEN (180<=height<190) heigclas=8 OTHERWISE END CARDS 1 160 60 2 180 75 3 145 40 heigclas=. /*.は 欠 損 値 */
c) 反 復 DO ステートメント(ARRAY と 一 緒 によく 用 いる) ARRAY: 変 数 リスト(q1 q2 q5)を 配 列 (q(5))の 要 素 に 順 次 割 り 当 てる DO 変 数 = 初 期 値 TO 終 値 BY 増 分 値 DO 変 数 = 値 リスト DO 変 数 WHILE ( 条 件 ) DO 変 数 UNTIL ( 条 件 ) 変 数 リストの 簡 略 化 q1 q2 q3 q4 q5 q1-q5 と 記 述 できる INPUT q1-q5 ARRAY q(5) q1-q5 DATA ensyu4c ARRAY q(5) q1 q2 q3 q4 q5 INFILE CARDS INPUT q1 q2 q3 q4 q5 qs=0 DO i=1 TO 3, 5 qs=qs+q(i) END CARDS 1 2 3 4 5 6 7 8 9 10 Page 4/11 5) 不 必 要 なレコードの 削 除 : DELETE IF ( 条 件 ) THEN DELETE 6) 既 存 SAS データセットの 読 込 (SET ステートメント) BMI= 体 重 (kg)/ 身 長 (m) 2 DATA ensyu5 INFILE 'H:\SAS 講 習 会 \ensyu.csv' DSD INPUT no height weight IF no=2 THEN DELETE DATA ensyu6 set ensyu1 BMI=weight/(height/100)**2 7)SAS データセットの 結 合 SET ステートメント,MERGE( 順 次,マッチ) a) 複 数 のSASデータセットを 連 結 する DATA ensyu7a 変 数 名 にて 連 結 する ( 縦 方 向 に 連 結 する) SET ensyu1 ensyu2 b) 複 数 のSASデータセットをキーにより 結 合 する 注 意 : 入 力 SASデータセットはキーにより 並 べ 替 えられて いなければならない PROC SORT DATA=ensyu1 OUT=ensyu1 BY no PROC SORT DATA=ensyuAddB OUT=ensyuAddB BY no DATA all MERGE ensyu1 ensyuaddb BY no 並 べ 替 え(ソート)の 記 述 PROC SORT DATA= 入 力 SASデータセット OUT=SASデータセット BY キー 変 数 8)インポート/エクスポートによる 他 のファイルとの 読 書 き 例 : Excel ファイルの 読 書 き エクセルファイル(ensyu.xls)に2つのワークシート PROC IMPORT DBMS=EXCEL OUT= ensyu8a DATAFILE= "H:\SAS 講 習 会 \ensyu.xls" REPLACE SHEET="ensyu" PROC SORT BY no PROC IMPORT DBMS=EXCEL OUT= ensyu8b DATAFILE= "H:\SAS 講 習 会 \ensyu.xls" REPLACE SHEET="sex" PROC SORT BY no DATA all MERGE ensyu8a ensyu8b BY no 注 意 : 第 1 行 目 が 変 数 名 となる PROC EXPORT DBMS=EXCEL DATA=all OUTFILE= "H:\SAS 講 習 会 \ensyu.xls" REPLACE SHEET="Merge"
9) 書 式 設 定 a)カテゴリラベル(format,value) 各 カテゴリにラベルをつける カテゴリ 値 の 代 わりにラベルが 表 示 される PROC FORMAT VALUE sexfmt 1='MALE' 2='FEMALE' DATA ensyu10 INFILE CARDS INPUT no sex FORMAT sex sexfmt. LABEL sex=' 性 別 ' CARDS 1 1 2 2 PROC FREQ TABLES SEX Page 5/11 b) 変 数 ラベル(LABEL) 変 数 にラベルをつける 統 計 量 などの 表 示 時 にラベルが 表 示 され る FREQ プロシジャ 性 別 累 積 累 積 sex 度 数 パーセント 度 数 パーセント ---------------------------------------------------------- MALE 1 50.00 1 50.00 FEMALE 1 50.00 2 100.00 Ⅱ.PROCステップ 一 般 形 式 PROC プロシジャ 名 オプション 付 随 ステートメント 一 般 に 用 いるオプション DATA=SASデータセット 最 後 に 作 成 されてものと 同 じであれば 省 略 できる よく 用 いる 付 随 ステートメント WHERE ( 条 件 ) BY 変 数 名 対 象 オブザベーションを 制 限 する カテゴリ 別 に 処 理 する 事 前 に SORT されている 必 要 がある 簡 単 なものをいくつか 紹 介 する 1)データのプリント 例 印 刷 対 象 の 指 定 : WHERE ステートメント 性 別 : BY ステートメント 印 刷 変 数 の 指 定 : VAR ステートメント PROC PRINT DATA=ensyu1 WHERE (no>2) BY sex VAR no height 2)データの 並 べ 替 え 昇 順 / 降 順, 複 数 キーの 指 定 も 出 来 る 出 力 が 入 力 と 同 じ 場 合 は OUT を 省 略 できる PROC SORT DATA=ensyu1 OUT=ensyu2 BY sex 記 述 統 計 と 予 備 的 解 析 として 単 変 量 統 計 量 (p.96 のサンプルデータの IMPORT による 読 込 ) /* p.96の 身 長 データファイル(エクセル 形 式 )*/ PROC IMPORT DBMS=EXCEL OUT= height DATAFILE= "H:\SAS 講 習 会 \height.xls" REPLACE SHEET="height"
Page 6/11 1)グラフによる 視 覚 的 観 察 (ヒストグラム:GCHART)(p.97) PROC CHART HVAR sex/type=freq PROC GCHART HBAR sex/type=freq キャラクター 図 グラフィカル 図 2) 単 純 集 計 表 (FREQ)(p.103) 性 別 の 単 純 集 計 PROC FREQ TABLES sex 3) 要 約 統 計 量 a) MEANS 平 均 値, 標 準 偏 差, 最 小 値, 最 大 値 など 基 本 統 計 量 (p.107~) sex 累 積 累 積 sex 度 数 パーセント 度 数 パーセント ------------------------------------------------------- F 19 47.50 19 47.50 M 21 52.50 40 100.00 PROC MEANS VAR student MEANS プロシジャ 分 析 変 数 : student N 平 均 値 標 準 偏 差 最 小 値 最 大 値 ------------------------------------------------------------------ 40 165.3750000 7.7416208 153.0000000 181.0000000 ------------------------------------------------------------------ b) UNIVARIATE MEANS に 加 え 分 布 の 検 定 などを 行 う(p.109~) PROC UNIVARIATE NORMAL の NORMAL は 正 規 分 布 検 定 を 行 うオプション HISTGRAM student / NORMAL の NORMAL は 正 規 分 布 グラ フを 重 ねるオプション PROC UNIVARIATE NORMAL VAR student HISTGRAM student / NORMAL
Page 7/11 UNIVARIATE プロシジャ 変 数 : student (student) モーメント 標 本 数 40 重 み 変 数 の 合 計 40 平 均 値 165.375 合 計 6615 標 準 偏 差 7.74162078 分 散 59.9326923 歪 度 0.29733853 尖 度 -1.147488 無 修 正 平 方 和 1096293 修 正 平 方 和 2337.375 変 動 係 数 4.68125217 平 均 の 標 準 誤 差 1.22405772 基 本 統 計 量 位 置 ばらつき 平 均 値 165.3750 標 準 偏 差 7.74162 中 央 値 164.0000 分 散 59.93269 最 頻 値 156.0000 範 囲 28.00000 四 分 位 範 囲 13.50000 正 規 性 の 検 定 検 定 ---- 統 計 量 ---- -------p 値 ------- Shapiro-Wilk W 0.940563 Pr < W 0.0361 Kolmogorov-Smirnov D 0.156253 Pr > D 0.0151 Cramer-von Mises W-Sq 0.136433 Pr > W-Sq 0.0362 Anderson-Darling A-Sq 0.83779 Pr > A-Sq 0.0288 :: :: :: :: 2 変 量 間 の 関 連 1) 相 関 係 数 (CORR)(p.125~) Pearson の 相 関 係 数, N = 21 帰 無 仮 説 Rho=0 に 対 する Prob > r student father mother student 1.00000 0.51411 0.24992 student 0.0171 0.2746 father 0.51411 1.00000-0.06875 father 0.0171 0.7672 mother 0.24992-0.06875 1.00000 mother 0.2746 0.7672 PROC CORR PEARSON SPEARMAN WHERE sex='m' Spearman の 相 関 係 数, N = 21 帰 無 仮 説 Rho=0 に 対 する Prob > r student father mother student 1.00000 0.51829 0.14014 student 0.0161 0.5446 father 0.51829 1.00000-0.01900 father 0.0161 0.9348 mother 0.14014-0.01900 1.00000 mother 0.5446 0.9348
Page 8/11 統 計 的 検 定 ( 第 6 章 ) 2 群 間 の 平 均 値 の 差 の 検 定 (p.142~) 1) 対 応 なし:TTEST 等 分 散 性 のチェック:F-test PROC TTEST CLASS sex VAR student The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Variable sex N Mean Mean Mean Std Dev Std Dev Std Dev Std Err Minimum Maximum student F 19 157.16 158.53 159.89 2.1427 2.8357 4.1934 0.6505 153 164 student M 21 169.31 171.57 173.84 3.8067 4.9757 7.1852 1.0858 162 181 student Diff (1-2) -15.68-13.05-10.41 3.3536 4.1035 5.2885 1.2993 T-Tests Variable Method Variances DF t Value Pr > t student Pooled Equal 38-10.04 <.0001 student Satterthwaite Unequal 32.3-10.31 <.0001 Equality of Variances Variable Method Num DF Den DF F Value Pr > F student Folded F 20 18 3.08 0.0199 等 分 散 の 場 合 は 上 段, 不 等 分 散 の 場 合 は Satterthwaite の 補 正 検 定 2) 対 応 あり a)paired Ttest PROC TTEST WHERE sex='m' PAIRED student*father The TTEST Procedure Statistics Lower CL Upper CL Lower CL Upper CL Difference N Mean Mean Mean Std Dev Std Dev Std Dev Std Err Minimum Maximum student - father 21 5.7754 8.2857 10.796 4.2192 5.5149 7.9639 1.2035-2 20 T-Tests Difference DF t Value Pr > t student - father 20 6.88 <.0001 b) : 各 差 に 対 して 平 均 値 =0 の 検 定 :UNIVARIAVTE ( 省 略 )
独 立 性 の 検 定, 一 致 性 の 検 定 (p.149~) 1)χ 2 検 定 ( 最 小 期 待 値 が5 以 上 ) Fisher の 直 接 確 率 ( 最 小 期 待 値 が 5 未 満 ) FREQ プロシジャ 表 : treat * resp treat resp 度 数 パーセント 行 のパーセント 列 のパーセント + - 合 計 --------------+--------+--------+ control 7 13 20 17.50 32.50 50.00 35.00 65.00 36.84 61.90 --------------+--------+--------+ treat 12 8 20 30.00 20.00 50.00 60.00 40.00 63.16 38.10 --------------+--------+--------+ 合 計 19 21 40 47.50 52.50 100.00 Page 9/11 DATA frq INPUT treat$ resp$ w CARDS control - 13 control + 7 treat - 8 treat + 12 PROC FREQ WEIGHT w TABLES treat * resp / CHISQ treat と resp の 統 計 量 統 計 量 自 由 度 値 p 値 ---------------------------------------------------------- χ 2 乗 値 1 2.5063 0.1134 尤 度 比 χ 2 乗 値 1 2.5334 0.1115 連 続 性 補 正 χ 2 乗 値 1 1.6040 0.2053 Mantel-Haenszel のχ 2 乗 値 1 2.4436 0.1180 φ 係 数 -0.2503 一 致 係 数 0.2428 Cramer の V 統 計 量 -0.2503 Fisher の 正 確 検 定 ----------------------------- セル (1,1) 度 数 (F) 7 左 側 Pr <= F 0.1025 右 側 Pr >= F 0.9719 表 の 確 率 (P) 0.0744 両 側 Pr <= P 0.2049 サンプルサイズ = 40
SAS プロダクトの 構 成 (SAS ヘルプ) SAS ヘルプメイン SAS/ BASE SAS/ STAT( 統 計 ) Page 10/11
Page 11/11 メニュー/マウス 操 作 によるデータ 解 析 [メニュー 方 式 ] SAS Enterprise Guide(SAS EG と 記 す) Statview や SPSS のようにメニュー 形 式 で 指 示 し 統 計 計 算 を 行 う インストール(SAS とは 別 にインストールする) 1)インストールする 前 にコンピュータが 最 低 限 のシステム 必 要 条 件 を 満 たしているか 確 認 System Requirements Wizard for SAS Enterprise Guide(CD)により 事 前 設 定 2)SAS Enterprise Guideのインストール SAS Enterprise Guide(CD)によりインストール 体 験 してみよう 1)Enterprise Guide の 起 動 スタート すべてのプログラム SAS Enterprise Guide xx 2) 新 規 プロジェクトの 作 成 3)エクセルデータを 読 込 む(さきの height ファイルを 読 込 む) ファイル データのインポート ローカルコンピュータ 4) 要 約 統 計 量 の 計 算 男 女 別 に student の 統 計 量 を 計 算 メニューから 要 約 統 計 量 データの 新 規 作 成 (SAS EG でデータを 新 規 作 成 し 保 存 する 場 合 ) SAS EG 上 でデータの 新 規 作 成 を 行 うと データは 一 時 ファイル 扱 いとなり 保 存 されない 保 存 する 場 合 は SAS 形 式 にエクスポートして 保 存 する 1) 新 規 作 成 :ファイル 新 規 作 成 データ SAS の 作 業 フォルダ(WORK)に 作 成 する 変 数 名, 変 数 ラベル,データ 形 式 等 を 設 定 する 2) データのエクスポート:ファイル データのエクスポート 3) エクスポートしたデータと 置 換 :フロー 上 のデータを 右 クリック プロパティ ファイルを 変 更