Образец образца в R, понимая параметры

Небольшой отказ от ответственности: я подумал о том, чтобы опубликовать это на перекрестной проверке, но я чувствую, что это больше связано с программной реализацией. Вопрос может быть перенесен, если вы не согласны.

Я пробую размеры пакета. Я пытаюсь расшифровать что k параметр для функции 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 доля одной группы в общем количестве наблюдений? Или что-то еще? Если я прав, то пропорция соответствует группе с sd1 или же sd2?

1 ответ

Решение

Ваш первый инстинкт был верным - это относится к stats.SE, а не к SO. Параметр k имеет статистическую интерпретацию, которая может быть найдена в любой ссылке на анализ мощности. Он в основном устанавливает размер выборки для второй выборки, когда, как и в случае тестов с двумя выборками, вторая выборка ограничивается определенной долей первой.

Вы можете увидеть соответствующие строки кода здесь (строки с 106 по 120 n.ttest):

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`)
Другие вопросы по тегам