Я обнаружил, что этот же вопрос размещен повсюду, и я не могу найти какое-либо решение, подходящее для моих данных, и мне интересно, пытаюсь ли я подогнать свои данные к модели, которая просто слишком сложный
Я пытаюсь согласовать свои данные с моделью многочленной логистической регрессии из пакета MCMCglmm. Я просмотрел много разных документов, учебных пособий и самого руководства MCMCglmm, в первую очередь учебное пособие Флориана Йегера , которое превосходно и тщательно. Однако я теряюсь в выборе значений G-структуры и R-структуры предыдущего, и я продолжаю получать это сообщение об ошибке
Error in priorformat(if (NOpriorG) { :
V is the wrong dimension for some prior$G/prior$R elements
В частности, я не уверен, какие значения n
должны быть указаны в моих данных в обоих случаях, но несколько непрозрачное сообщение об ошибке предполагает, что это проблема с V
Вот (соответствующее) подмножество моих данных:
CG_imm locuteur enquete loc_age loc_sexe left liquid right articulation_C1 voice_C1 NC_C1 NC_right voice_right right2 pos logfreq realization
abordable 44ajs1 Nantes 79 M bl l p stop V Vstop stop NV NVstop adj NA 2
admettre 91adb1 Brunoy 54 M tR R E stop N NVstop mid-vowel V mid-vowel verb 6.52209279 0
adorable 91aal1 Brunoy 27 F bl l break stop V Vstop break break weak break adj NA 0
agréable 92aaf2 PC 55 F bl l break stop V Vstop break break strong break adj 7.95191138 0
agréable 21abm1 Dijon 31 M bl l k stop V Vstop stop NV NVstop adj 7.95191138 1
agréable 75ccr2 Paris NA F bl l break stop V Vstop break break break adj 7.95191138 0
agréable 69ajl1 Lyon 52 M bl l break stop V Vstop break break weak break adj 7.95191138 0
Alexandre 91asl1 Brunoy 64 F dR R break stop V Vstop break break weak break noun NA 0
Из этого набора данных я пытаюсь предсказать realization
переменную на трех уровнях со многими различными предикторами. Вот одна из моделей, которые я попробовал:
k <- length(levels(df$realization))
I <- diag(k-1)
J <- matrix(rep(1, (k-1)^2), c(k-1, k-1))
prior1<-list(
R = list(fix=1, V=0.5 * (I + J), n = 2
),
G = list(
G1 = list(V = diag(4), n = 4),
G2 = list(V = diag(8), n = 8),
G3 = list(V = diag(4), n = 4),
G4 = list(V = diag(4), n = 4),
G5 = list(V = diag(14), n = 14),
G6 = list(V = 3, n = 3),
G7 = list(V = 3, n = 3),
G8 = list(V = diag(6), n = 6)))
m <- MCMCglmm(realization ~ -1 + trait + NC_C1*liquid + right2 + loc_age + logfreq + pos,
random = ~ us(trait):CG_imm + us(NC_C1*liquid):CG_imm +
us(trait):locuteur + us(trait):enquete + us(right2):CG_imm +
us(loc_age):locuteur + us(log_freq):CG_imm + us(pos):CG_imm,
rcov = ~ us(trait):units,
prior = prior1,
burnin = 15000,
nitt = 40000,
family = "categorical",
data = df)
В моем полном наборе данных переменные предиктора, выбранные в качестве случайных эффектов, имеют следующие уровни:
> length(levels(ol_north$CG_imm))
[1] 181
> length(levels(ol_north$enquete))
[1] 13
> length(levels(ol_north$locuteur))
[1] 129
Все предикторы, которые являются фиксированными эффектами, являются категориальными, за исключением loc_age
и log_freq
Категориальные, фиксированные предикторы находятся на следующих уровнях:
> length(levels(ol_north$NC_C1))
[1] 4
> length(levels(ol_north$liquid))
[1] 2
> length(levels(ol_north$right2))
[1] 14
> length(levels(ol_north$pos))
[1] 6
Я играл со значениями n
в списках G-структуры и R-структуры, и я скорректировал значения в аргументе diag()
в G-структуре безрезультатно. С такой сложной моделью я не уверен, где именно происходят мои ошибки. Я упростил модель до этого и получаю ее сходиться, но с предупреждением:
m <- MCMCglmm(realization ~ -1 + trait + NC_C1*liquid + right2,
random = ~ us(trait):CG_imm + us(NC_C1*liquid):CG_imm,
rcov = ~ us(trait):units,
prior = list(
R = list(fix=1, V=0.5 * (I + J), n = 2),
G = list(
G1 = list(V = diag(2), n = 22),
G2 = list(V = diag(8), n = 8))),
burnin = 15000,
nitt = 40000,
family = "categorical",
data = df)
Warning message:
In MCMCglmm(realization ~ -1 + trait + NC_C1 * liquid + right2, :
some fixed effects are not estimable and have been removed. Use singular.ok=TRUE to sample these effects, but use an informative prior!
Большое спасибо за любую помощь заранее!