[SAS] PROC TTEST 基本款使用(revised990614)
好一陣子還沒補實習課的教材,在介紹下周內容前先補已經上過的PROC TTEST
因為帶的課是初等統計學,因此讀者若想學到比較艱難的部分,可能要等之後~
就大學部初等統計學而言,會學到的主要有以下三種t test
t test (PROC TTEST):
- One sample t test
- Two sample t test → Paired t test、Indepedent two sample t test
t test常用在檢定一組或兩組平均值是否相同,並以一個範例作說明。
一組獨立樣本t檢定(one sample t test):
問題:衛生人員在速食店隨機抽查食物內的防腐劑,總共抽五個產品(防腐劑含量單位ppm),想要了解這些產品的防腐劑含量是否高於3ppm。
先複習有關假設檢定,看到研究題目先以該問題思考假設如何設定、單尾或雙尾、接著計算統計量、下結論。
以此範例而言,問題為「含量是否高於3ppm」,有念書的學生應該會馬上頓悟:單尾!
通常one sample t test會有一個比較的數值,如同此範例的「含量是否高於3ppm」或是「全校女生體重為50公斤、抽到某班女生的體重是否有代表性」等
SAS的程式指令如下:
PROC TTEST DATA=ppm3 H0=3; /*除了PROC TTEST之外,由於是檢定是否高於3,因此要設立H0(零,不是英文字母o)*/
VAR ppm; /*告訴SAS現在欲檢定的變項為ppm*/
RUN;
輕鬆完成SAS程式編輯,接著看output

主授老師很強調SAS報表解讀,因此我將對此output作詳細說明,後面兩款t test的output解讀可以依樣畫葫蘆!
- N: 樣本數,從這裡可以確認是否有讀錯dataset
- Mean: 平均數,即變項food的五個數值平均數(單位ppm)
- Std Dev: 變項food的標準差
- Std Err: 樣本平均數估計的標準差,即標準誤,也就是如果我們可以重複抽樣本上百次,可以期待平均數的標準差接近標準誤
- 95% CL Mean: 平均數的信賴上下界
- 95% CL Std Dev: 標準差的信賴上下界
- DF: 自由度,即樣本數減1
- T value: Student t-statistic的統計量
- Pr > |t|: 利用t分布所抓出來的雙尾機率,(附註:For a one-tailed test, halve this probability)
兩組獨立樣本t檢定 (two indepedent sample t test):
透過兩組獨立樣本t檢定,可以比較兩組的平均值是否有差異
如男女生身高是否不同?台大生X組與流X組英文成績是否不同?以下介紹範例
問題:痛風病人與正常人血中尿酸量(變項value)是否不同?
PROC TTEST DATA=gout;
CLASS group; /*告知SAS分組變項為何*/
VAR value; /*欲檢定的變項,如尿酸量的變項為何*/
RUN;
不同於one sample t test,檢定獨立樣本兩組是否有差多了CLASS指令需要設定
報表如下:

報表顯然比上者大上許多,但是無須害怕。
首先可以發現group欄位中出現1、2、Diff (1-2),SAS分別給你痛風病人、正常人、兩組相減的平均數、標準差等描述性統計量
但是最大的不同在於多檢定Equality of Variances,看變異數是否相同後再決定要用Pooled、Satterthwaite
若變異數小於研究者訂定的alpha level (顯著水準) 例0.05,就要使用變異數unequal解讀資料。
以此題痛風與正常人的尿酸量,由於Equality of variance=0.007 < alpha=0.05,因此採Unequal的方式,對出來的P value=0.0099
因此就可以下結論了 。
兩組相依樣本t檢定 (paired t test):
最後介紹的是pairted t test,適用的情境例如看病人前後測的數值是否有差異、雙胞胎的數學成績是否有差異等
兩組樣本是有某種程度上的相關。以下是範例
問題:六位病人洗腎病人透析前後體重是否不同?
PROC TTEST DATA=wt;
PAIRED before*after; /*不同於兩組獨立樣本t檢定,此處以paired後面接著兩個變數,分別是前測與後側的數值,以星號連結*/
RUN;
謝謝gafa指正0614

有沒有覺得報表很像one sample t test的output?
解讀的部分可參照上述例子。
資料來源:沈明來(2007)生物統計學入門,第五版,九州
同場加映:
在SAS裡面預設皆以雙尾檢定, 如果想要呈現單尾,在SAS9.1版本中需要人工自行將p-value除以二;在SAS9.2版中可以設定option讓p-value自動轉成單尾
PROC TTEST SIDES=2/L/U; /*2表示(default)雙尾、L表示Lower one-sided test、U表示Higher one-sided test*/
以指令舉例,在PROC後面輸入SIDES=,報表就會跑出單尾的P-value,但是output不會特定標示
不過在95%信賴上下界的地方可以看出。
有興趣的讀者可以試試看

6月 14th, 2010 at 10:44 am
您好:
您的網頁讓我獲益良多~~謝謝
我想請問一下
兩組相依樣本t檢定 (paired t test):
PROC TTEST DATA=wt;
VAR before*after;
RUN;
==============================
VAR before*after;—–>是否要改成paired before*after;???
不好意思,因為我完全沒有接觸過SAS…
純粹是看你的網頁學習…
所以想請教你..謝謝喔
6月 14th, 2010 at 11:41 am
HELLO:
謝謝你的細心指正~我眼殘打錯了orz
非常感謝你!
文章已經修正[SAS] PROC TTEST 基本款使用
謝謝!!!
6月 14th, 2010 at 1:43 pm
^^謝謝喔
因為覺得你的SAS教學網頁真不錯!
對初學者很有幫助..
有不會的..再跟你請教喔~~^^
6月 14th, 2010 at 3:34 pm
HELLO:
好說好說,互相切磋
8月 11th, 2010 at 3:29 pm
請問 paired t test 適用之 sample 數有無限制
8月 11th, 2010 at 9:25 pm
HELLO:
基本上paired t test是屬於有母數的統計分析方法,建立在樣本分布為normal distribution假設之下。
倘若你的樣本數很少,沒有符合常態分布假設
可以考慮使用對應的無母數分析方法sign test或Wilcoxon sign rank test(Wilcoxon符號等級檢定)
2月 16th, 2011 at 3:35 am
請問什麼時候要求P-VALUE時要用 1- “Pr > |t|”的值,
如 Pr > |t| = 0.5625
P-VALUE = 1-0.5625 = 0.4375
謝謝
2月 16th, 2011 at 9:53 am
建議回到「假設檢定」統計書籍章節, 了解P-value的定義與意義後, 相信會有所斬獲
6月 5th, 2011 at 7:58 am
At last, someone comes up with the “right” anewsr!
12月 28th, 2011 at 5:00 pm
你好!PROC TTEST DATA=ppm3 H0=3; 是檢定是否高於3,
請問如果我要檢定是否低於3該怎麼寫語法?
12月 28th, 2011 at 6:21 pm
Hello,
你手上使用的sas版本是?
5月 1st, 2012 at 1:33 pm
你好 我想請問
如果我想要測兩個族群 是否有t-test 顯著,
請問程式碼該怎麼寫呢? 如果匯入資料時 又該怎麼匯入呢?
比如說
GOOD | BAD
Bank A 的 Stock Return | Bank D 的 Stock Return
.
.
.
.
這樣子可以跑嗎? 我是用SAS 9.3
5月 3rd, 2012 at 9:41 pm
兩個族群是獨立還是有相依關係?
匯入資料有好幾種方式, 你可以用匯入精靈或是寫code讓他匯入
檔案格式為何? 看妳9.3的版本是否有支援匯入精靈