Изменение CI для difflsmeans

Я запускаю линейную смешанную модель и использую функцию diffslmeans() из пакета lmerTest для вычисления попарных различий в моих фиксированных эффектах.

Функция, кажется, производит 95% CI независимо от того, что я пытаюсь. Однако я хотел бы использовать 90% CI. Я пробовал conf = 0.9, conf.int = 0.9 и conf = 90.

Нельзя ли изменить уровень достоверности этой функции?


person user3585829    schedule 04.02.2017    source источник


Ответы (1)


После изучения репозитория GitHub этого пакета ( https://github.com/cran/lmerTest/blob/master/R/generalFunctions.R ) Я думаю, что значение 95% CI жестко закодировано в файле diffslmeans. Вот его код:

difflsmeans <- function(model, test.effs=NULL, ddf = "Satterthwaite", ...)
{
  if(!inherits(model, "lmerMod"))
    stop("The model is not linear mixed effects model")

  ddf <- checkNameDDF(ddf)
  result <- lsmeans.calc(model, 0.05, test.effs = test.effs, 
                         lsmeansORdiff = FALSE, ddf)  
  res <- list(diffs.lsmeans.table=result$summ.data, 
              response=result$response)
  class(res) <- "difflsmeans"
  res 
}

Второй параметр lsmeans.calc равен 0,05, что, как я полагаю, означает уровень значимости. Вы можете посмотреть на https://github.com/cran/lmerTest/blob/master/R/lsmeans.R для получения дополнительной информации.

Способ использования переменной CI состоит в том, чтобы создать свою единственную функцию с дополнительным параметром conf, например. что-то вроде этого:

difflsmeans_new <- function(model, test.effs=NULL,
                            ddf = "Satterthwaite",
                            conf = 0.95)
{
  if(!inherits(model, "lmerMod"))
    stop("The model is not linear mixed effects model")

  ddf <- checkNameDDF(ddf)
  result <- lsmeans.calc(model, 1-conf, test.effs = test.effs, 
                         lsmeansORdiff = FALSE, ddf)  
  res <- list(diffs.lsmeans.table=result$summ.data, 
              response=result$response)
  class(res) <- "difflsmeans"
  res 
}
person echasnovski    schedule 04.02.2017
comment
Спасибо за ваш ответ. Интересно, что это жестко закодировано. Я попробовал вашу новую функцию и получил сообщение об ошибке: не удалось найти функцию checkNameDDF. Я попытался удалить эту строку кода из функции, чтобы посмотреть, что произойдет, и получил: не удалось найти функцию lsmeans.calc - person user3585829; 04.02.2017
comment
Ну тогда простой метод не работает. В этом случае вы можете посмотреть код на странице GitHub, чтобы скопировать все функции, необходимые для того, чтобы эта новая функция работала. - person echasnovski; 05.02.2017
comment
Попробую разобрать. Спасибо - person user3585829; 05.02.2017