• 文章總列表
  • 統計分析
    • R SAS All
      R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

      統計分析

      [SAS] Ma…

      2026-01-21

      統計分析

      什麼是meta-…

      2024-11-05

      統計分析

      Test-ret…

      2024-06-07

      統計分析

      [SAS]傾向分…

      2020-10-28

  • SAS
    • SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

      SAS

      [SAS]線性迴…

      2020-02-26

  • R
    • R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      R

      [SAS][R]…

      2019-07-08

  • 機器學習
    • 機器學習

      Unsuperv…

      2021-07-22

      機器學習

      Unsuperv…

      2021-07-12

      機器學習

      Unsuperv…

      2021-05-20

      機器學習

      Unsuperv…

      2021-05-12

      機器學習

      Matrix F…

      2021-04-30

  • 閱讀筆記
    • 閱讀筆記

      [閱讀心得 #2…

      2025-02-05

      閱讀筆記

      [閱讀心得#20…

      2024-10-25

      閱讀筆記

      [閱讀心得#19…

      2024-08-16

      閱讀筆記

      [閱讀心得#18…

      2024-05-10

      閱讀筆記

      [閱讀心得#17…

      2022-01-22

Wenwu's blog
wenwu's blog
  • 請我喝珍奶

Popular Posts

[R]散佈圖...

2019-12-31

[SAS]L...

2020-06-10

[SAS][...

2019-07-08

[R]Log...

2019-10-31

[SAS] ...

2020-01-22

[SAS]線...

2020-02-26

[SAS]存...

2019-12-18

[SAS]迴...

2020-02-28
SAS

[SAS]存活分析(1) KM存活曲線 Kaplan-Meier Method

by wenwu 2019-12-13

[SAS]存活分析(1) KM存活曲線 Kaplan-Meier Method

在醫學上,若我們想要了解某疾病的死亡率以及存活率,可以使用存活分析。 通常我們會設定一個起始時間,像是確診某疾病的時間或是接受手術的時間點,並且觀察特定事件(event)(死亡或疾病復發),進一步計算疾病的存活率。

存活分析的資料特色

  1. 依變項(Y)同時為連續且具有類別的性質
  2. 設限資料

在一般我們使用的分析中,資料不是連續資料就是類別資料,但是存活分析所記錄的資料同時具有這兩種特性。在依變項(Y)中,不只需要紀錄病人的觀察時間,並且需要紀錄在研究結束前,病人的生存與否。

比方說我們研究的時間為今年的一月到十月,A病人從2月確診得了乳癌,8月份時死亡,表示A病人最終死亡(event),且存活6個月。
B病人3月確診,到結束研究時還活著,代表event沒有發生,我們知道這位病人至少存活了7個月,同時這位病人也是設限資料。

什麼是設限資料呢?
在收集資料的過程中,時常發生追蹤不到的情形(轉院,換了電話),或是病人因其他原因(車禍)死亡,我們不想讓這些情況影響到研究結果,所以當1.研究結束時,病人並沒有發生特定事件(event) 2.在研究過程中病人失聯或是被剃除了 我們就把這種情況是為設限(censor )

除了B病人是設限資料之外,假設C病人在3月時確診,5月時C病人轉院\失聯,那C病人也同樣是設限資料


Kaplan-Meier 存活曲線

KM 存活曲線可以看見每個時間的存活率,並且為遞減的函數
要如何繪製KM survival plot 呢? 我們使用SAS 來繪製

example for SAS

這邊先提供SAS code ,基本上給好資料 、追蹤時間 還有是否死亡就行了
STRATA 可以選擇要不要,如果沒有寫的畫會跑出全部的存活率,下面會示範兩種情形!

PROC LIFETEST DATA=survival 
METHOD=KM PLOTS=(S); 
TIME months*dead(0); 
STRATA group; 
RUN;

資料如下,有20位病人追蹤的月份,死亡與否(dead=1為死亡),性別

Data data_survival;
input id time status sex$ @@;
datalines;
1 121.98680 1 M 2 66.33585 0 F 3 101.31992 1 M 4 120.96599 1 F
5 30.89584 1 M 6 88.88542 0 M 7 114.43314 0 F 8 76.36350 0 M
9 139.02362 0 F 10 42.17000 0 F 11 111.80827 1 M 12 122.19009 1 F
13 80.05458 1 M 14 107.82935 0 M 15 81.77838 0 F 16 85.48578 1 M
17 93.72746 1 F 18 69.38994 0 M 19 53.35931 0 F 20 87.06297 1 M
;
proc lifetest data=data_survival
plot=survival(test nocensor) ;
time time*status(0); run;

首先會出現左邊的表格,時間是依照病人離開研究或是發生事件(event 死亡)的時間。當時間為零時,我們的存活率是1

第一位存活的月份為30.896 ,旁邊計算了當時的存活率 ( 計算方法1.0*19/20 = 0.95 ) 
第二到六位的病人並沒有發生事件(死亡),所以並不影響存活率,可以看到時間的旁邊有 * 示為設限資料。

第七位病人到80.055個月的時候發生事件,存活率0.8821
(0.8821=0.95 * 13/14 
 0.95 為 之前時間點的存活率 ,13/14 為在剩下的14 人中 一人發生事件 所以剩13人存活)

以此類推~~~

上述為對時間(月)描述的統計值,輸出四分位數估計值,列有25% 、50% 、75%百分位數。25%的人存活低於87.063個月,半數存活時間為111.808,75%的人存活低於121.987個月,平均存活時間為104.297個月

接下來我們就會看到Kaplan-Meier 存活曲線,其實也就是上面的表格中算出來的存活率畫的

分組 STRATA

通常在使用存活分析時,我們會想要比較兩組的存活率,像是接受A治療跟接受B治療的存活率的差別。同時,我們也會想知道A治療跟B治療的差異是否顯著,這時候就需要用log-tank test

下面示範的是性別的分組,我們想知道男女的存活率是否有差別

proc lifetest data=data_survival
plot=survival(test nocensor) ;
time time*status(0); STRATA SEX; run;

SAS 的output 會如同前面一樣,印出兩組的survival table ,這裡就不再重複解釋了
下圖可以看出男性和女性的存活曲線,看得出來女性(紅色的線)的存活比較差,但是跟男性的存活有顯著差異嗎?
Log-Rank test 的 p-value 為0.0469 <0.05 ,表示男女的存活有顯著的差異

好啦! 存活分析是不是沒有想像中難呢? 
下一篇介紹 Cox proportional hazard model 

2019-12-13 2 comments
0 FacebookTwitterPinterestEmail
R

[R]Logistic Regression 羅吉斯迴歸

by wenwu 2019-10-31

[R]Logistic Regression 羅吉斯迴歸

讓你一次就搞懂 R羅吉斯迴歸的output!

當我們遇到依變項(Y)是二元的類別變項時,我們可以使用羅吉斯迴歸(Logistic regression)
羅吉斯迴歸是甚麼呢? 羅吉斯迴歸(英語:Logistic regression,又譯作對數機率迴歸、羅吉斯迴歸)是一種對數機率模型是離散模型之一,屬於多重變數分析。


Logistic regression(羅吉斯迴歸) vs Linear regression(線性迴歸)

如果你有學過這兩個的話,就會發現羅吉斯迴歸和線性迴歸的很像,他們都要找到一條線,但是意義上完全不同。
羅吉斯迴歸主要是找到一條線,讓資料可以分成兩類(分類);而線性迴歸主要是找到一條線,使我們的每一點資料都盡量靠近這條線(誤差小)。羅吉斯迴歸主要是分類,而線性迴歸主要是預測。

線性迴歸的依變項(Y)通常為連續型變數,且可以超過 (0,1)
羅吉斯迴歸的依變項(Y)主要為二元的類別變項(亦即是或否,0或1)

而羅吉斯迴歸的自變項(X),可以是類別變數,也可以是連續變數。
羅吉斯迴歸中,自變數(X)對依變數(Y)的影響是以指數的方式做變動,因此不需要常態分配的假設


勝算比的計算

勝算比基本上就是事件成功與失敗的比值,我們使用下圖來解釋

實驗組成功的機率= A/N1,失敗的機率= B/N1
實驗組的勝算為 (A/N1)/(B/N1) = A/B = 5/19

控制組成功的機率= C/N2,失敗的機率= D/N2
控制組的勝算為 (C/N2)/(D/N2) = C/D = 3/24

勝算比就是兩個勝算的相除,勝算比=(A/B)/(C/D) = A*D/B*C = 2.11
表示實驗組相對控制組,成功的勝算比=2.11
表示實驗組成功的勝算(非機率)是控制組的2.11倍


example for R

接下來我們使用這組糖尿病的資料
總共有768位病人的資料,每一項變數的意思如下:

1.懷孕次數
2.口服葡萄糖耐量測試中2小時的血漿葡萄糖濃度
3.舒張壓(mm Hg)
4.三頭肌皮膚褶皺厚度(毫米)
5. 2小時血清胰島素(mu U / ml)
6.體重指數(體重(千克)/(身高(米))^2)
7.糖尿病譜系功能
8.年齡(年)
9.糖尿病(0或1)

第九個糖尿病為二元的類別變項,1表示病人有糖尿病,0表示沒有

diabete <-read.csv(“https://gist.githubusercontent.com/chaityacshah/899a95deaf8b1930003ae93944fd17d7/raw/3d35de839da708595a444187e9f13237b51a2cbe/pima-indians-diabetes.csv")
colnames(diabete) <- c(“pregnant”,”glucose”,”blood_pressure”,”triceps”,”serum_insulin”,”mass”,”pedigree”,”age”,”diabetes” )

我們的目標是使用 pregnant 、glucose、triceps、mass 欄位預測 diabetes
模型如下:

MODEL <- glm(diabetes ~ pregnant + glucose + triceps + mass,
 data=diabete,family = “binomial”)

使用glm function ,~的左邊是依變項(Y),羅吉斯迴歸的依變項(Y)一定要是二元的類別變項,~的右邊就是自變項(X),可以是類別變數,也可以是連續變數,而且也可以放多個。我們使用的資料集是diabete。

最後一定要記得加上 family = “binomial” ,這樣跑出來才是羅吉斯迴歸!!

我們來看一下模型:
印出MODEL 就可以看到,每一個變項以及截距的coefficients 
intercept (截距)\ pregnant \ glucose \ triceps \ mass 的coefficients 分別為:
-8.154 \ 0.136 \ 0.034 \ -0.004 \ 0.085

而我們可以將邏輯迴歸模式寫為下:
 logit(p)=-8.154+0.136 pregnant +0.034 glucose -0.004 triceps+ 0.085 mass

輸入 summary(MODEL)
可以在coefficients的地方看到Pr(>|z|) 也就是各個變項的 p-value
這邊只有 triceps 沒有顯著之外,其他三個變項都有顯著,代表這三個變項與Y有關係

而勝算比(OR)=exp(b)

就 pregnant 而言,勝算比=exp(0.136)=1.1457
表示每增加一次懷孕次數,得到糖尿病的勝算提高1.1459倍;
就 glucose而言,勝算比=exp(0.034)=1.0346 
表示每增加一血漿葡萄糖濃度,得到糖尿病的勝算提高1.0346倍;
就 mass 而言,勝算比=exp(0.085)=1.0887
表示每增加一體重指數,得到糖尿病的勝算提高1.0887倍;


2020/6/10 更新: 這篇文章默默成為我最受歡迎的文章,此外我也寫了一篇 [SAS]Logistic regression 羅吉斯迴歸 ,裡面有提及單變項與多變項的羅吉斯迴歸,主要使用SAS 講解,但是也有講到如何使用R操作喔,歡迎大家來看看 →[SAS]Logistic regression 羅吉斯迴歸

2019-10-31 0 comment
0 FacebookTwitterPinterestEmail
SAS

[SAS]卡方檢定 Chi-Square test 三種卡方檢定介紹

by wenwu 2019-09-27

[SAS]卡方檢定 Chi-Square test

上次介紹完用R跑卡方檢定
今天要介紹如何用SAS使用卡方檢定


卡方適合度檢定

主要使用於抽樣一組(次)的樣本

H0 : 資料分配符合期望值
H1 : 資料分配不符合期望值

同樣,我們想知道這顆骰子是否公正,每一面出現的機率是不是都是相同
使用 proc freq 在 斜槓後面加 chisq 就有卡方檢定
可以看到圖中的卡方值是7.12 而 p-value = 0.2119 
因為 p-value >0.05 所以不拒絕 H0,表示這顆骰子是公正的

proc freq data=x; 
tables x /nocol nopercent chisq ; run;

卡方獨立性檢定

主要使用於抽樣兩組(次)與兩組(次)以上的樣本

H0 : 研究資料彼此獨立
H1 : 研究資料彼此不獨立

我們想知道學生餐廳中,同學選擇主餐是否與湯品的選擇是否有關係
使用 proc freq 在 斜槓後面加 chisq 就有卡方檢定
meat * soup 兩個變項相乘,就會出現列連表
可以看到圖中的卡方值是0.5701 而 p-value = 0.7520
因為 p-value >0.05 所以不拒絕 H0,表示同學選擇主餐與湯品是獨立的

roc freq data=customer;
tables meat * soup /nocol nopercent chisq ; run;

卡方同質性檢定

主要使用於抽樣兩組(次)與兩組(次)以上的樣本

H0 : 檢定資料是否來自同一個母體,或母體分配相同
H1 : 檢定資料是否來自不同母體,或母體分配不同

其實「卡方獨立性檢定」跟「卡方同質性檢定」的方法是一樣的,然而兩個切入的角度完全不一樣
兩者的差別是「卡方獨立性檢定」主要探討的是「資料關聯性」,而「卡方同質性檢定」探討的則是「各類別比例是否相同」


如果遇到儲存格內的觀測次數小於五 可以用卡方檢定嗎 ?

最後,介紹一下使用卡方時會遇到的狀況
我們常常看到 使用卡方檢定時每一格子的觀測次數不得小於五
所以遇到小於五的話該怎麼辦呢?

首先,可以判斷一下是否可以繼續使用卡方檢定或是使用別的方法

當df>1 時,如果不超過20%的格子的觀測次數小於五(或是有80%以上的格子都大於五,就可以使用卡方檢定
! 注意不許有儲存格出現0的情況 !

另一種方法,可以合併小於五的儲存格
這個方法可以解決問題,但是我們損失的資訊越多,檢定的結果就越有偏差

如果以上的情況都沒有幫助,可以使用葉式連續校正,或是使用費雪精確檢定(Fisher’s Exact Test)

2019-09-27 0 comment
0 FacebookTwitterPinterestEmail
RSAS

[SAS][R]費雪精確 Fisher Exact test 

by wenwu 2019-09-27

[SAS][R]費雪精確 Fisher Exact test 

前幾篇講到卡方檢定,[SAS]卡方檢定和[R]卡方檢定
當樣本數很小(如20),或是超過20%的格子的觀測次數小於五,不宜用卡方檢定,這時候可以用,費雪精確 Fisher Exact test


lady tasting tea experiment

1935年費雪發表了一篇文章,提到這個有趣的實驗。有位女士提到,她可以輕易的辨別出來,將茶加到牛奶裡,還是將牛奶倒進茶裡。
費雪依照這位女士的說法做了一個實驗。他先準備了八杯奶茶,其中四杯是先放牛奶,另外四杯則是先放茶

上圖為實驗的結果,這位女士總共猜對了六杯,我們將這個實驗結果用於 SAS 和 R 上。


example for R

因為100%的儲存格都小於5,所以這裡並不適合用卡方檢定,使用費雪精確

範例檔中,茶先倒入表示為1,牛奶先倒入為2,
這位女士猜對了六杯,其中有兩杯是錯的
進行費雪精確性檢定後P值的雙尾檢定為0.4857
單尾檢定為0.4857/2=0.2429 不拒絕虛無假設, 
代表猜測與實際沒有顯著性差異

real <- c(rep(1,4),rep(2,4))
guess <- c(rep(1,3),rep(2,3),1,2)
table(real,guess)
fisher.test(table(real,guess))

example for SAS

SAS 的程式碼與卡方檢定非常相像,只需在斜槓後加上 fisher

proc freq data=tea;
table real * guess/nocol nopercent chisq fisher ; run;

下面三張圖為SAS的ouput ,結果與R 一樣
費雪精確性檢定後P值的雙尾檢定為0.4857
單尾檢定為0.2429 不拒絕虛無假設, 代表猜測與實際沒有顯著性差異

2019-09-27 0 comment
0 FacebookTwitterPinterestEmail
R

[R]Chi-square 卡方檢定

by wenwu 2019-09-19

[R]Chi-square 卡方檢定

若要分析類別型資料的話,最入門的就是卡方檢定
今天要介紹如何用R來使用卡方檢定


三種卡方檢定

卡方適合度檢定
卡方同質性檢定
卡方獨立性檢定


卡方適合度檢定

主要使用於抽樣一組(次)的樣本

H0 : 資料分配符合期望值
H1 : 資料分配不符合期望值

我們想知道這顆骰子是不是公正的,那我們檢查骰子出現1到6的機率是不是都是1/6
首先我們紀錄每次投骰子的結果,總共六百次(使用sample.int產生投骰子的資料)
使用table就可以看到每個數字出現的次數
接下來使用卡方檢定 
可以看到圖中的卡方值是7.12 而 p-value = 0.2119 
因為 p-value >0.05 所以不拒絕 H0,表示這顆骰子是公正的

若我們想要知道特定的機率,也可以在chisq.test函數裡面調整
在裡面使用 p=c(2/6,0/6,1/6,1/6,1/6,1/6)
表示我們想要知道投骰子的機率是否為 : 數字1出現的機率為 2/6,而出現的機率為 0 , 而其他的機率同樣為 1/6 
可以看到圖中的卡方值是Inf 而 p-value = <0.0001
因為 p-value <0.05 所以拒絕 H0

set.seed(53) #使用 set.seed可以 設定產生隨機樹的初始值
x <- factor(sample.int(6,size = 600,replace = T))
table(x)
chisq.test(table(x))
chisq.test(table(x),p = c(2/6,0/6,1/6,1/6,1/6,1/6))

卡方獨立性檢定

主要使用於抽樣兩組(次)與兩組(次)以上的樣本

H0 : 研究資料彼此獨立
H1 : 研究資料彼此獨立

假設我們想知道學生餐廳中,同學選擇主餐是否與湯品的選擇是否有關係
同樣,生200個1到3的隨機變數,使用兩個ifelse 將 1 = ”chicken” , 2 = ”pork” , 3 = ”beef”
湯品的地方也是,湯品則是兩種

使用table就可以看到每個類別出現的次數
接下來使用卡方檢定 
可以看到圖中的卡方值是0.57005 而 p-value = 0.752
因為 p-value >0.05 所以不拒絕 H0,表示同學選擇主餐與湯品是獨立的

set.seed(35)
yy = sample.int(3,size = 200,replace = T)
meat = ifelse(yy==1,”chicken”,ifelse(yy==2,”pork”,”beef”)) #分類
#使用兩個 ifelse 將 1 = ”chicken” , 2 = ”pork” , 3 = ”beef”
set.seed(23)
soup = ifelse(sample.int(2,size = 200,replace = T)==1,”tomato”,”mushroom”)
table(meat,soup)
chisq.test(table(meat,soup))

卡方同質性檢定

主要使用於抽樣兩組(次)與兩組(次)以上的樣本

H0 : 檢定資料是否來自同一個母體,或母體分配相同
H1 : 檢定資料是否來自不同母體,或母體分配不同

其實「卡方獨立性檢定」跟「卡方同質性檢定」的方法是一樣的,然而兩個切入的角度完全不一樣
兩者的差別是「卡方獨立性檢定」主要探討的是「資料關聯性」,而「卡方同質性檢定」探討的則是「各類別比例是否相同」

我們直接來看例子

假設想知道不同性別,眼睛的狀況是否有同樣的分配,我們使用卡方同質性檢定
同樣,生200組樣本,分別是性別以及眼睛的狀況(近視和遠視)

使用table就可以看到每個類別出現的次數
接下來使用卡方檢定 
可以看到圖中的卡方值是4.461 而 p-value = 0.03468
因為 p-value < 0.05 所以拒絕 H0,表示不同的性別,眼睛的狀況分布是不同的

set.seed(22)
sex = ifelse(sample.int(2,size = 200,replace = T)==1,”male”,”female”)
set.seed(556)
status = ifelse(sample.int(2,size = 200,replace = T)==1,
 “shortsighted”,”longsighted”) #近視和遠視
table(sex,status)
chisq.test(table(sex,status))

如果遇到儲存格內的觀測次數小於五 可以用卡方檢定嗎 ?

最後,介紹一下使用卡方時會遇到的狀況
我們常常看到 使用卡方檢定時每一格子的觀測次數不得小於五
所以遇到小於五的話該怎麼辦呢?

首先,可以判斷一下是否可以繼續使用卡方檢定或是使用別的方法

當df>1 時,如果不超過20%的格子的觀測次數小於五(或是有80%以上的格子都大於五,就可以使用卡方檢定,! 注意不許有儲存格出現0的情況 !

另一種方法,可以合併小於五的儲存格
這個方法可以解決問題,但是我們損失的資訊越多,檢定的結果就越有偏差

如果以上的情況都沒有幫助,可以使用葉式連續校正,或是使用費雪精確檢定(Fisher’s Exact Test)

2019-09-19 0 comment
0 FacebookTwitterPinterestEmail
RSAS

[SAS][R]Proc Ttest 三種t-test一次搞懂

by wenwu 2019-07-08

[SAS][R]Proc Ttest

進行研究時,我們常常需要比較兩組資料是否有顯著差異,下列三種 t-test 為最常見的狀況,並附上SAS的程式碼 Proc ttest和R的程式碼

一組獨立樣本t檢定(One sample t-test)

當我們想要去檢驗手邊樣本和某特定值之間的關係時,我們會將樣本的平均數和該特定值加以比較 (例如:某班的平均分數是否與全校平均分數有差異),此時則採用單一樣本t檢定來進行檢驗。
*資料必須為常態

H0: μ=μₒ (無顯著差異)
H1: μ≠μₒ (顯著差異)

example for R

t.test(x)

假設 x 為大華國小A班12位同學的數學成績,我們想知道A班的成績和全校的成績(60分)是否有差異
我們可以先看到A班的平均成績為61.25分,進行檢定前先使用 shapiro test 檢定這組資料是否為 normal

shapiro.test(x)

p-value=0.498 , p>0.05 不拒絕虛無假設,表示常態性的假設是合理的

再來就是進入我們的 t-test 了,程式碼非常的簡單
t.test(x,mu=60,alternative=”two.sided”)
p-value=0.862 , p>0.05 不拒絕虛無假設,沒有顯著性差異

那我們再來試試看A班的成績與100分是否有差異呢?
t.test(x,mu=100,alternative=”two.sided”)
p-value=0.0001816 , p<0.05 拒絕虛無假設,有顯著差異

每一種 t-test都可以分成雙尾與單尾檢驗,R只要在alternative設定就可以了alternative的預測值為”two.sided”,所以上面兩種情形沒有寫也是可以的
alternative的另外兩種設定為”greater”和”less”,就是表示 對立假設(alternative hypothesis; H1; Ha)的狀態

H0: μ ≤ μₒ
H1: μ > μₒ

首先來嘗試A班的成績是否有顯著差異大於60呢?
t.test(x,mu=60,alternative=”greater”) 
p-value=0.431 , p>0.05 不拒絕虛無假設,沒有顯著大於60

H0: μ ≥ μₒ 
H1: μ < μₒ

再試試看A班的成績是否有顯著差異小於60呢?
t.test(x,mu=60,alternative=”less”) 
p-value=0.569 , p>0.05 不拒絕虛無假設,沒有顯著小於60

其實這樣的結果完全符合我們的預期,接著再試試看
A班的成績是否有顯著差異小於100呢?
t.test(x,mu=100,alternative=”less”) 
p-value=9.075e-5 , p<0.05 拒絕虛無假設,x顯著小於100


example for SAS

SAS 的程式碼也大同小異

PROC TTEST DATA=xy H0=60 side=2; /*設定H0的值,檢定平均數是否等於60,因此要設立H0*/ 
 VAR math; /*告訴SAS現在欲檢定的變項為math*/
 RUN;

首先,先檢查 x 是否符合常態性假設

PROC UNIVARIATE DATA=xy NORMAL;VAR x; run; 

p-value=0.498 不拒絕虛無假設,表示常態性的假設是合理的

再來,和R的範例做一樣的事情,下面就不詳細敘述了
proc ttest data=xy H0=60;var x;run;
p-value=0.862 , p>0.05 不拒絕虛無假設,沒有顯著性差異
proc ttest data=xy H0=100;var x;run;
p-value=0.0001816 , p<0.05 拒絕虛無假設,有顯著差異

和R一樣,SAS也可以使用單尾檢驗,使用side設定,side的預測值為2(雙尾)
R的”greater”,SAS表示成 side=u
“less”,SAS表示成 side=l (這邊注意是英文的L,不是數字1喔)

同樣的來使用看看

proc ttest data=xy H0=60 sides=u; var x;run; 
p-value=0.431 , p>0.05 不拒絕虛無假設,沒有顯著大於60

proc ttest data=xy H0=60 sides=l; var x;run;
p-value=0.569 , p>0.05 不拒絕虛無假設,沒有顯著小於60

proc ttest data=xy H0=100 sides=l; var x;run;
p-value=<0.0001, p<0.05 拒絕虛無假設,x 顯著小於100


兩組獨立樣本t檢定(Two independent sample t-test)

結束單個樣本的t-test後,若我們想要檢定兩組樣本間母體平均數的差異是否大於、小於或等於某一特定數值,我們可以使用 Two Independent Sample t-test
*資料必須為常態(或是資料中兩組樣本之樣本數皆較大時(≧30))
*注意變異數是否相等 (使用F檢定)

H0: μx = μy (無顯著差異)
H1: μx ≠ μy (顯著差異)

example for R

t.test(x,y)

假設 x 和 y 分別為大華國小A班和B班12位同學的數學成績,我們想知道A班的成績和B班的成績是否有差異
同樣的,進行分析之前需要確認我們的資料是否為常態
shapiro.test(x)
p-value=0.498 不拒絕虛無假設,表示常態性的假設是合理的
shapiro.test(y)
p-value=0.5468 不拒絕虛無假設,表示常態性的假設是合理的

再來使用F檢定來確認兩組的變異數是否相同
var.test(x,y)
p-value=0.005289 ,p<0.05 拒絕虛無假設,表示變異數不相同
***注意*** 如果變異數不相同的話,之後在 t-test的 function 裡面加入var.equal=F ,如果相同就是 var.equal=T

現在我們想要知道 x 和 y 是否有差異,就可以直接用 t-test 了
t.test(x,y,var.equal=F)
p-value=0.04167 p<0.05 拒絕虛無假設,表示 x&y 有顯著差異

而 two sample t-test 一樣可以使用單尾
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≤ 0
H1: μx-μy > 0 
t.test(x,y,alternative=”greater”,var.equal=F)
p-value=0.9792 p>0.05 不拒絕虛無假設 沒有顯著差異

也來試試看”less”吧
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≥ 3
H1: μx-μy < 3
t.test(x,y,mu=3,alternative=”less”,var.equal=F)
p-value=0.0097 p<0.05 拒絕虛無假設 表示 x-y 有顯著差異

example for SAS

PROC TTEST DATA=xy_2;
 CLASS group; /*告知SAS分組變項為何*/
 VAR value; /*欲檢定的變項*/
 RUN;

首先,這邊解釋一下 SAS在 two sample t-test 的資料型態與上面的不同

左邊為這次的資料,x&y的數值和上面的資料都是一樣的

不同的地方在於 需要給兩個變項

type紀錄他是 x or y ,而score則是分別的成績

直接進入我們的程式碼
proc ttest data=xy_2; class type ;var score;run;

和R一樣,我們需要用F檢定來確認兩組的變異數是否相同
不過這邊SAS不需要跑另外的程式,t-test就會幫我們檢定他的變異數是否相同

可以看到左邊的變異數相等性的p-value為0.0053 P<0.05代表表示變異數不相同,所以對到上面的表格分析後 我們可以得到p-value=0.0417
p<0.05 拒絕虛無假設 表示A班和B班的成績有顯著差異

而 two sample t-test 一樣可以使用單尾
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≤ 0
H1: μx-μy > 0 
proc ttest data xy_2 sides=u; class type; var score;run;
p-value=0.9792 p>0.05 不拒絕虛無假設 沒有顯著差異

也來試試看”less”吧
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≥ 3
H1: μx-μy < 3
proc ttest data xy_2 sides=l h0=3; class type; var score;run;
p-value=0.0097 p<0.05 拒絕虛無假設 表示 x-y 有顯著差異


兩組相依樣本t檢定(paired t-test)

前面的 two independent sample t-test 是兩組樣本為獨立的情形,paired t-testy則為非獨立(相依)的情形,像是看樣本前後的差異等
*資料必須為常態

H0: μx = μy (無顯著差異)
H1: μx ≠ μy (顯著差異)

example for R

t.test(x,y,paired = T)

現在假設 x 是大華國小 A 班第一次的數學成績,y 為同樣12位學生補考後的成績(非獨立,使用paired t-test)

t-test 的程式碼非常簡單,只要在後面加上 paired=T
t.test(x,y,paired=T) 
p-value=0.02013 p<0.05 拒絕H0 表示補考後的成績有顯著的差異

而 paired t-test 一樣可以使用單尾
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≤ 0
H1: μx-μy > 0 
t.test(x,y,alternative=”greater”,paired=T)
p-value=0.9899 p>0.05 不拒絕虛無假設 沒有顯著差異

也來試試看”less”吧
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≥ 3
H1: μx-μy < 3
t.test(x,y,mu=3,alternative=”less”,paired=T)
p-value=0.004259 p<0.05 拒絕虛無假設 表示 x-y 有顯著差異

example for SAS

PROC TTEST DATA=wt;
 PAIRED before*after; /*不同於兩組獨立樣本t檢定,以paired後面接著兩個變數,分別是前測與後側的數值*/
 RUN;

資料集的部分和one sample t-test 一樣使用 xy

同樣和R的範例做一樣的事情,下面就不詳細敘述了

proc ttest data=xy ; paired x*y; run;
p-value=0.0201 p<0.05 拒絕H0 表示補考後的成績有顯著的差異

而 paired t-test 一樣可以使用單尾
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≤ 0
H1: μx-μy > 0 
proc ttest data=xy sides=u; paired x*y; run;
p-value=0.9899 p>0.05 不拒絕虛無假設 沒有顯著差異

也來試試看sides=l吧
假設我們想知道 x-y 的差異是否有顯著差異
H0: μx-μy ≥ 3
H1: μx-μy < 3
proc ttest data=xy sides=l h0=3; paired x*y;run; 
p-value=0.0043 p<0.05 拒絕虛無假設 表示 x-y 有顯著差異

三個 t-test 就介紹到此啦~~謝謝收看

2019-07-08 0 comment
0 FacebookTwitterPinterestEmail
Load More Posts

近期文章

  • [SAS] Macro Language 基礎內容
  • ccClub 讀書會推薦,免費學python
  • [閱讀心得 #21]你願意,人生就會值得
  • 理想生活,該長怎麼樣子?
  • 多益330 → 多益785 多益成績棕色到藍色證書

近期留言

  • 「peter」於〈多益330 → 多益785 多益成績棕色到藍色證書〉發佈留言
  • 「wenwu」於〈[SAS]存活分析(2) COX regression model〉發佈留言
  • 「joey53111」於〈Statistical Programmer在CRO工作一年的心得〉發佈留言
  • 「丁柏仁」於〈Statistical Programmer在CRO工作一年的心得〉發佈留言
  • 「peter」於〈Statistical Programmer在CRO工作一年的心得〉發佈留言

免費訂閱

不定期更新文章,點一下追蹤就能夠收到最新文章!

一起加入其他 19 位訂閱者的行列

Statistics

  • 10,870
  • 592,957
  • 73
R 線上課程參考

@2019 - All Right Reserved. Designed and Developed by PenciDesign

Wenwu's blog
  • 文章總列表
  • 統計分析
    • R SAS All
      R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

      統計分析

      [SAS] Ma…

      2026-01-21

      統計分析

      什麼是meta-…

      2024-11-05

      統計分析

      Test-ret…

      2024-06-07

      統計分析

      [SAS]傾向分…

      2020-10-28

  • SAS
    • SAS

      [SAS] Ma…

      2026-01-21

      SAS

      [SAS]傾向分…

      2020-10-28

      SAS

      [SAS]Log…

      2020-06-10

      SAS

      [SAS]迴歸分…

      2020-02-28

      SAS

      [SAS]線性迴…

      2020-02-26

  • R
    • R

      [R]散佈圖與相…

      2019-12-31

      R

      [R]Logis…

      2019-10-31

      R

      [SAS][R]…

      2019-09-27

      R

      [R]Chi-s…

      2019-09-19

      R

      [SAS][R]…

      2019-07-08

  • 機器學習
    • 機器學習

      Unsuperv…

      2021-07-22

      機器學習

      Unsuperv…

      2021-07-12

      機器學習

      Unsuperv…

      2021-05-20

      機器學習

      Unsuperv…

      2021-05-12

      機器學習

      Matrix F…

      2021-04-30

  • 閱讀筆記
    • 閱讀筆記

      [閱讀心得 #2…

      2025-02-05

      閱讀筆記

      [閱讀心得#20…

      2024-10-25

      閱讀筆記

      [閱讀心得#19…

      2024-08-16

      閱讀筆記

      [閱讀心得#18…

      2024-05-10

      閱讀筆記

      [閱讀心得#17…

      2022-01-22