MCMCGlmm «контрасты могут применяться только к факторам с 2 или более уровнями» в R - PullRequest
2 голосов
/ 07 мая 2020

Я пытаюсь подогнать mcmcglmm с помощью пакета «MCMCglmm» в R. У меня есть фрейм данных с 7 переменными.

df <- NNMixedModel2
$Dyad_code 
$Sex
$Parity
$Age
$Breed
$Relatedness_m

Я указал числовые значения / коэффициенты, например

NNMixedModel2$Dyad_code <- as.factor(NNMixedModel2$Dyad_code)
NNMixedModel2$Sex <- as.factor(NNMixedModel2$Sex)
NNMixedModel2$Parity <- as.factor(NNMixedModel2$Parity)
NNMixedModel2$Breed <- as.factor(NNMixedModel2$Breed)
NNMixedModel2$Age <- as.numeric(NNMixedModel2$Age)
NNMixedModel2$Relatedness_m <- as.numeric(NNMixedModel2$Relatedness_m)
NNMixedModel2$weightlg1p <- as.numeric(NNMixedModel2$weightlg1p)

Однако, когда я пытаюсь подогнать под модель (ниже)

prior1.1 <- list(G = list(G1 = list(V = 1, nu = 0.002)), R = list(V = 1, nu = 0.002))

model1.1 <- MCMCglmm(weightlg1p ~ Sex+Parity+Age+Relatedness_m, random = ~Dyad_code, pedigree =NULL, rcov=~us(trait):units, family="gaussian", data = NNMixedModel2, nitt = 13000, thin = 10, burnin = 3000, prior = prior1.1, verbose = FALSE)

, я получаю следующее сообщение об ошибке:

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
 contrasts can be applied only to factors with 2 or more levels

Все мои факторы имеют 2 уровня (пол имеет 377 мужчин и 840 женщин, паритет имеет 498 типов 1 и 719 типов 2, порода имеет 90 экземпляров одной породы и 1127 других) Кроме того, ни одна из переменных не имеет пропущенных значений, и когда я использую head() функция, переменные присвоены правильным категориям

Может ли кто с этим помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...