R: проблема со смещением в bayesglm

Я пытаюсь подогнать следующую модель с помощью bayesglm. Поскольку у меня есть представление о предварительных распределениях параметров, я указываю Prior.mean, Prior.scale, Prior.mean.for.intercept и Prior.scale.for.intercept:

      prior.mean <- c(0,0.5,0.75) #treated and untreated, assay1, assay2 and assay3
prior.scale <- c(1,0.5,0.5)
prior.mean.for.intercept <- 0
prior.scale.for.intercept <- 1
offsetvalue <- c(0.1703984, -0.6958495, 0.3079694, -0.5582785, 0.2251210, -0.6411269)

form = y ~ offset(ofsetvalue) + 1 + treatment + assay

modelOutput <- bayesglm(formula=form, family="gaussian", data=input, prior.mean=prior.mean,
 prior.scale=prior.scale, prior.df=Inf, prior.mean.for.intercept=prior.mean.for.intercept,
 prior.scale.for.intercept=prior.scale.for.intercept, prior.df.for.intercept=Inf)

Когда я пытаюсь это сделать, появляется следующая ошибка:

      Error in bayesglm.fit(x = X[, "(Intercept)", drop = FALSE], y = Y, weights = weights,  : 
  invalid length for prior.mean

Ошибка возникает из следующих строк в bayesglm:

      if (length(offset) && attr(mt, "intercept") > 0L) {
fit2 <- bayesglm.fit(x = X[, "(Intercept)", drop = FALSE], 
      y = Y, weights = weights, offset = offset, family = family, 
      control = control, intercept = TRUE, prior.mean = prior.mean, 
      prior.scale = prior.scale, prior.df = prior.df, 
      prior.mean.for.intercept = prior.mean.for.intercept, 
      prior.scale.for.intercept = prior.scale.for.intercept, 
      prior.df.for.intercept = prior.df.for.intercept, 
      min.prior.scale = min.prior.scale, print.unnormalized.log.posterior = print.unnormalized.log.posterior, 
      scaled = scaled, Warning = Warning)

Мне интересно, почему нужно подгонять индивидуальную подгонку под перехватчик, в то время как компания Bayesglm уже однажды установила эту модель? Есть ли способ обойти это?

Спасибо,

Юрген

0 ответов

Другие вопросы по тегам