2015-11-09 30 views
1

小免責聲明:我認爲發佈這個交叉驗證,但我覺得這更多與軟件實現有關。如果您不同意,可以遷移問題。R中的samplesize包,瞭解參數

我正在試用包samplesize。我正試圖破譯n.ttest功能的k參數。該文件中指出:

K個樣本部分ķ

這是不是非常有幫助。這個參數究竟是什麼?

我執行下述計算,所有的基本價值觀是在vals變量,這是我在下面提供:

power <- 0.90 
alpha <- 0.05 
vals <- ??? # These values are provided below 
mean.diff <- vals[1,2]-vals[2,2] 
sd1 <- vals[1,3] 
sd2 <- vals[2,3] 
k <- vals[2,4]/(vals[1,4]+vals[2,4]) 
design <- "unpaired" 
fraction <- "unbalanced" 
variance <- "equal" 

# Get the sample size 
n.ttest(power = power, alpha = alpha, mean.diff = mean.diff, 
     sd1 = sd1, sd2 = sd2, k = k, design = design, 
     fraction = fraction, variance = variance) 

vals包含以下值:

> vals 
    affected  mean  sd length 
1  1 -0.8007305 7.887657  57 
2  2 4.5799913 6.740781  16 

k比例一組中的觀察總數是多少?或者是別的什麼?如果我是正確的,那麼這個比例是否與sd1sd2

回答

1

你的第一個直覺是對的 - 這屬於stats.SE而不是SO。參數k有一個統計解釋,可以在任何有關功率分析的參考文獻中找到。它基本上設置了第二個樣本的樣本大小,例如在雙樣本測試的情況下,第二個樣本被限制爲第一個樣本的某個部分。

您可以在這裏看到代碼的相關線路(線路106的n.ttest 120):

unbalanced = { 
        df <- n.start - 2 
        c <- (mean.diff/sd1) * (sqrt(k)/(1 + k)) 
        tkrit.alpha <- qt(conf.level, df = df) 
        tkrit.beta <- qt(power, df = df) 
        n.temp <- ((tkrit.alpha + tkrit.beta)^2)/(c^2) 
        while (n.start <= n.temp) { 
        n.start <- n.start + 1 
        tkrit.alpha <- qt(conf.level, df = n.start - 
         2) 
        tkrit.beta <- qt(power, df = n.start - 2) 
        n.temp <- ((tkrit.alpha + tkrit.beta)^2)/(c^2) 
        } 
        n1 <- n.start/(1 + k) 
        n2 <- k * n1 

你的情況:

library(samplesize) 

vals = data.frame(
    affected = c(1, 2), 
    mean = c(-0.8007305, 4.5799913), 
    sd = c(7.887657, 6.740781), 
    length = c(57, 16)) 

power <- 0.90 
alpha <- 0.05 
mean.diff <- vals[1,2]-vals[2,2] 
sd1 <- vals[1,3] 
sd2 <- vals[2,3] 
k <- vals[2,4]/(vals[1,4]+vals[2,4]) 
k <- vals[2,4]/vals[1,4] 

design <- "unpaired" 
fraction <- "unbalanced" 
variance <- "equal" 

# Get the sample size 
tt1 = n.ttest(power = power, 
     alpha = alpha, 
     mean.diff = mean.diff, 
     sd1 = sd1, 
     sd2 = sd2, 
     k = k, 
     design = design, 
     fraction = fraction, 
     variance = variance) 

你可以看到:

assertthat::are_equal(ceiling(tt1$`Sample size group 1`*tt1$Fraction), 
         tt1$`Sample size group 2`) 
+0

謝謝!我看到我應該查看函數的代碼。這澄清了它。 – Gumeo