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 уже однажды установила эту модель? Есть ли способ обойти это?
Спасибо,
Юрген