Моделирование мощности для модели со смешанными эффектами при различных размерах выборки - PullRequest
0 голосов
/ 03 августа 2020

Мне сложно определить, как провести анализ мощности для модели со смешанными эффектами. Я бы хотел провести серию симуляций, показывающих мощность для заданного размера эффекта при разных размерах выборки (например, n = 50, 100, 200, 300, 500 и т. Д. c), желательно в виде графика или таблицы.

Я слежу за несколькими онлайн-источниками, чтобы узнать о моделировании мощности. Например, я следовал руководствам здесь , здесь , здесь и здесь . Некоторые из примеров работают, а некоторые нет. Что еще более важно, я не могу заставить моделирование работать в моих собственных целях с моим собственным планом исследования.

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

Я пробовал следующее, используя размеры эффекта из некоторых имеющихся у меня пилотных данных.

Во-первых, некоторые данные:

set.seed(1234)
smaller.df <- data.frame(
  subj <- rep(1:106, 2),
  x = sample(1:6, 212, replace = T),
  m = sample(1:3, 212, replace = T),
  y = rnorm(212)
)

Затем я могу подобрать модель и вставить эффекты, которые я наблюдал в свои пилотные данные:

model.of.interest2 <- lmer(y ~ x + (1|subj), data=smaller.df)
fixef(model.of.interest2)['x'] <- .45

Во-первых, результат просто говорит мне, что у меня либо 0, либо 100% власть ... Не знаю почему. Ни один из ресурсов, которые я нашел в Интернете, четко не объясняет, что я должен здесь делать ...

powerSim(model.of.interest2, nsim=100, test = fcompare(y~x))

Во-вторых, я не могу сгенерировать (как я думаю, должен быть) график мощности на различные размеры выборки с использованием следующего кода:

pc <- powerCurve(model.of.interest2 , along = "subj", nsim =  100)
plot(pc)

Он все еще просто показывает, что у меня мощность 0, а затем 100%.

Я также пробовал использовать команды «продлить», которые я мысль создаст различные размеры выборки. Например,

model500 = extend(model.of.interest2, along = "subj", n = 500)

Но он просто возвращает модель с 0 наблюдениями.

Я действительно не уверен, что я делаю не так, или даже что я должен делать.

...