Объект ошибки не найден в r.squaredGLMM с блеском в функции в R - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь написать функцию, которая вычисляет R ^ 2 из обобщенной линейной смешанной модели в R, используя glmer.Почему-то, как только я пытаюсь использовать функцию, я получаю сообщение об ошибке:

Error in checkFormulaData(formula, data, checkLHS = control$check.formula.LHS ==  :  bad 'data': object 'input_data' not found

Если я использую тот же код без функции, все в порядке.Чтобы проверить, была ли общая проблема с r.squaredGLMM внутри функций, я также создал функцию для линейной смешанной модели, которая работает, как и ожидалось.

Вот воспроизводимый пример:

library(lme4)
library(MuMIn)


#Generate some sample data
x <- rnorm(100)
y1 <- sample(c(0,1), 100, replace = TRUE)
y2 <- rnorm(100)
subject <- rep(1:10, 10)

df <- data.frame(x,y1,y2,subject)

#Calculate glmer and get the R^2
mod1_outside_function <- glmer(y1 ~ x + (1|subject), data = df,family="binomial")

#Works just fine
R2 <- r.squaredGLMM(mod1_outside_function)
print(R2)

#Create a function to get the R2
R2_glmer <- function(input_data)
{
  glmer_inside_function <- glmer(y1 ~ x + (1|subject), data = input_data,family="binomial")

  R2 <- r.squaredGLMM(glmer_inside_function)

  print(R2)

}

#I get the error running this:
R2_glmer(input_data = df)


#The same function works with lmer:
R2_lmer <- function(input_data)
{

  lmer_inside_function <- lmer(y2 ~ x + (1|subject), data = input_data)

  R2 <- r.squaredGLMM(lmer_inside_function)

  print(R2)

}

R2_lmer(input_data = df)

1 Ответ

0 голосов
/ 05 декабря 2018

Это ошибка с оценкой нулевой модели в неглобальных средах.Теперь он должен работать с версией MuMIn> = 1.42.4 (в настоящее время на R-forge).Чтобы обойти это, вы можете предоставить нулевую модель в качестве второго аргумента:

r.squaredGLMM(glmer_inside_function, null.fit(glmer_inside_function, RE.keep = TRUE, evaluate = TRUE))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...