以前主要用SPSS的時候,如果要計算效應量(Cohen’s d)和檢驗力(power值)的話,就得SPSS,Gpower軟件來回切換。
現在做研究跑數據更多地用stata了,發現只用stata就可以完成所有的計算。
其中,效應量和檢驗力涉及到的命令分別是esize
和pwoer
。
以軟件自帶數據auto為例,用stata的命令計算獨立樣本t檢驗后的Cohen’s d和power值。
# 調用數據
sysuse auto
# 獨立樣本t檢驗,自變量foreign,因變量mpg
ttest mpg,by(foreign)
# 獲取兩組的均值,樣本量和標準差
local m1=r(mu_1)
local m2=r(mu_2)
local n1=r(N_1)
local n2=r(N_2)
local sd1=r(sd_1)
local sd2=r(sd_2)
#得到效應量
esize twosample mpg,by(foreign)
#得到power值
power twomeans `m1' `m2',n1(`n1') n2(`n2') sd1(`sd1') sd2(`sd2') knownsds
1、獨立樣本t檢驗
獨立樣本t檢驗.png
2、效應量
效應量.png
輸入help esize
后,可以看到該命令的幫助文檔。
esize_help.png
其中,置信區間CI可以通過
level()
進行設置,例如,想看d值的90%CI,則是esize twosample mpg, by(foreign) level(90)
。
3、power值
power值.png
結果顯示是88.87%的power值,這個計算就是根據t檢驗結果后存儲的兩組的均值,樣本量和標準差計算得到的。
輸入help power
后,可以看到該命令的幫助文檔。
power_help1.png
power
這個命令可以計算樣本量,power值和效應量及目標參數。
此外,涉及到的假設檢驗包括以下這些:
power_help2.png
4、多個因變量的循環
總之,在stata里就可以一次性得到檢驗結果,效應量和檢驗力結果了,不用來回切換軟件了。
而且,如果需要做多個因變量的t檢驗的話,寫個循環就好啦~省時省力。
例如:
# 將因變量名放置暫元dep后
local dep price mpg rep78
# 循環暫元dep,對每個因變量進行檢驗
foreach i of local dep {
# 對因變量進行描述
d `i'
ttest `i',by(foreign)
local m1=r(mu_1)
local m2=r(mu_2)
local n1=r(N_1)
local n2=r(N_2)
local sd1=r(sd_1)
local sd2=r(sd_2)
esize twosample `i',by(foreign)
power twomeans `m1' `m2',n1(`n1') n2(`n2') sd1(`sd1') sd2(`sd2') knownsds
}
結果如下:
多個因變量的循環.gif