Неправильные априоры для байесовских многомерных обобщенных линейных моделей в R - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь запустить байесовскую многомерную обобщенную линейную модель с OFT1, MIS1, wt и g.rate в качестве переменных ответа, grid, collar, sex, fieldBirthDate и trialnumber в качестве переменных-предикторов, и sq_id в качестве случайного эффекта.

Мои данные выглядят так:

sq_id sex grid trialnumber collar       OFT1        MIS1 fieldBirthDate          wt      g.rate
22640   F   KL           2      Y -2.1947851  0.08686934      -2.036220  2.04349949 0.202092846
22640   F   KL           1      Y  0.7661517  2.65544077      -2.036220 -0.09300674 0.546493570
22641   F   KL           1      Y  0.9689955  1.38944543      -2.036220  0.04942701 0.582793646
22653   F   SU           1      Y -2.1524967  1.03831742      -1.665209  0.44824150 0.691384500
22657   M   KL           1      N  1.0918323 -2.03883227      -1.788879 -0.40636099 0.008592439
22657   M   KL           2      N  3.1173521 -2.34449199      -1.788879  2.44231398 0.249185968 

И, доступно здесь (эта ссылка больше не активна с 22.06.19).Используемый пакет R был MCMCglmm.

Я начинаю с того, что заявляю свой предыдущий:

#inverse whishart prior
prior.miw<-list(R=list(V=diag(4), nu=0.002), 
            G=list(G1=list(V=diag(4), 
            nu=0.002,   
            alpha.mu=c(0,0,0,0), 
            alpha.V=diag(4)*1000))) 

Затем моя модель:

mod.1 <- MCMCglmm(
    cbind(OFT1, MIS1, wt, g.rate) ~ (trait-1):grid + (trait-1):collar + (trait-1):sex + (trait-1):fieldBirthDate + (trait-1):trialnumber,
    random = ~us(trait):sq_id,
    rcov = ~us(trait):units, #allows for trait to have different residuals
    family = c("gaussian", "gaussian", "gaussian", "gaussian"), #state response variables distributions
    data=multi_data, 
    prior = prior.miw, 
    verbose = FALSE, 
    nitt=103000, #number of iterations
    thin=100, #the interval at which the Markov chain is stored
    burnin=3000) #number of iterations before samples are stored

Но затем я получаюследующие две ошибки (которые меняются каждый раз, когда я запускаю свой код):

G-структура 1 плохо подготовлена: используйте надлежащие априоры, если у вас их нет, или масштабируйте данные, если у вас есть

и

плохо обусловленный перекрестный продукт: не может сформировать коэффициент Холецкого

Я удостоверился, что правильно измерил свои переменные (среднее по центру и стандартизированное), и я пробовал другие приоры, такие как обратная гамма априор (это работает).Тем не менее, я хочу использовать обратный Whishart до.Если я изменю свой предыдущий код обратного изменения, удалив из него функции alpha.mu и alpha.V, например:

prior.miw<-list(R=list(V=diag(4), nu=0.002), 
            G=list(G1=list(V=diag(4), 
            nu=0.002))) 

, запустится моя многомерная модель.Но я хотел бы сохранить alpha.mu и alpha.V в моем предыдущем.

У меня есть два вопроса:

  1. Почему я получаю эти ошибки?(т. е. почему мой обратный whishart предшествовал, вызывая у меня эту проблему в том виде, в котором я ее написал в настоящее время?)это?

Любые предложения или идеи будут высоко оценены!

...