Я пытаюсь подогнать 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()
функция, переменные присвоены правильным категориям
Может ли кто с этим помочь?