2016-02-01 24 views
0

我嘗試比較一個特定值的卡方檢驗和t檢驗的冪函數,以及我的總體目標是爲了表明t-Test更強大(因爲它有關於分佈的假設)。我使用R的pwr軟件包計算每個函數的功率,然後編寫兩個函數並繪製結果。 但是,我沒有發現t檢驗比卡方檢驗好,我對結果感到困惑。我花了幾個小時,所以每一個幫助都非常感謝。比較t檢驗功率和Chi-sqare檢驗功效的圖示

enter image description here

代碼是否錯了,我有權力的功能產生錯誤認識,或者是有什麼錯的包?

library(pwr) 
#mu is the value for which the power is calculated 
#no is the number of observations 
#function of the power of the t-test with a h0 of .2 
g <- function(mu, alpha, no) { #calculate the power of a particular value for the t-test with h0=.2 
     p <- mu-.20 
     sigma <- sqrt(.5*(1-.5)) 
     pwr.t.test(n = no, d = p/sigma, sig.level = alpha, type = "one.sample", alternative="greater")$power # d is the effect size p/sigma 
} 
#chi squared test 
h <- function(mu, alpha, no, degree) {#calculate the power of a particular value for the chi squared test 
     p01 <- .2 # these constructs the effect size (which is a bit different for the chi squared) 
     p02 <- .8 

     p11 <-mu 
     p12 <- 1-p11 

     effect.size <- sqrt(((p01-p11)^2/p01)+((p02-p12)^2/p02)) # effect size 

     pwr.chisq.test(N=no, df=degree, sig.level = alpha, w=effect.size)$power 
} 



#create a diagram 
plot(1, 1, type = "n", 
    xlab = expression(mu), 
    xlim = c(.00, .75), 
    ylim = c(0, 1.1), 
    ylab = expression(1-beta), 
    axes=T, main="Power function t-Test and Chi-squared-Test") 
     axis(side = 2, at = c(0.05), labels = c(expression(alpha)), las = 3) 
     axis(side = 1, at = 3, labels = expression(mu[0])) 
     abline(h = c(0.05, 1), lty = 2) 

legend(.5,.5, # places a legend at the appropriate place 
c("t-Test","Chi-square-Test"), # puts text in the legend 
lwd=c(2.5,2.5),col=c("black","red")) 

curve(h(x, alpha = 0.05, no = 100, degree=1), from = .00, to = .75, add = TRUE, col="red",lwd=c(2.5,2.5)) 
curve(g(x, alpha = 0.05, no = 100), from = .00, to = .75, add = TRUE, lwd=c(2.5,2.5)) 

非常感謝!

回答

0

如果我明白問題是正確的,那麼您正在測試二項分佈,其中null的平均值等於0.2,替代項的值大於0.2?如果是的話,那麼在你的第2行功能g,應該不是sigma <- sqrt(.2*(1-.2))而不是sigma <- sqrt(.5*(1-.5))?這樣,您的標準偏差會更小,從而導致更大的測試統計量,因此更小的p值導致更高的功率。