MCMCglmm трудности с форматом данных - PullRequest
1 голос
/ 26 сентября 2019

Я хочу оценить наследуемость признаков животных, используя модель животных.Однако я не могу понять, как правильно отформатировать мои данные, чтобы MCMCglmm мог создать модель.После долгих проб и ошибок и поиска в Интернете советов, я застрял.Насколько мне известно, я отформатировал данные в соответствии со всеми доступными мне ресурсами, но я получаю следующее сообщение об ошибке: *

Error in MCMCglmm(BWT ~ 1, random = ~animal, pedigree = Ped, data = Data,  : 
some levels of animal do not have a row entry in ginverse

Мои вопросы: Чтоточно ginverse, и почему в нем нет записей строк для всех уровней animal?

Вот мои два (фиктивных) набора данных:

Данные о фенотипе животных:

> Data
# A tibble: 10 x 6
   ANIMAL MOTHER BYEAR   SEX   BWT TARSUS
    <dbl>  <dbl> <dbl> <dbl> <dbl>  <dbl>
 1      1     11   968     1 10.8    24.8
 2      2     11   968     1  9.3    22.5
 3      3     12   970     2  3.98   12.9
 4      4     12   970     1  5.39   20.5
 5      5     13   970     2 12.1    NA  
 6      6     13   970     1 NA      NA  
 7      7     14   971     2 NA      NA  
 8      8     15   971     1  7.63   14.2
 9      9     16   971     1  4.76   NA  
10     10     17   971     1 NA      NA   

names(Data)[1] <- "animal"
Data$animal<-as.factor(Data$animal)
Data$MOTHER<-as.factor(Data$MOTHER)
Data$BYEAR<-as.factor(Data$BYEAR)
Data$SEX<-as.factor(Data$SEX)
Data$BWT<-as.numeric(Data$BWT)
Data$TARSUS<-as.numeric(Data$TARSUS)

Данные родословной:

> Ped
# A tibble: 17 x 3
      ID MOTHER FATHER
   <dbl>  <dbl>  <dbl>
 1     1     11     18
 2     2     11     NA
 3     3     12     NA
 4     4     12     19
 5     5     13     20
 6     6     13     NA
 7     7     14     NA
 8     8     15     21
 9     9     16     22
10    10     17     23
11    11     NA     NA
12    12     NA     NA
13    13     NA     NA
14    14     NA     NA
15    15     NA     NA
16    16     NA     NA
17    17     NA     NA

Загрузка необходимых пакетов.Необходимо отформатировать Ped как матрицу, затем использовать функции insertPed () и orderPed (), чтобы родители появлялись перед потомством в поле ID:

library(MCMCglmm)
library(MasterBayes)
Ped <- as.matrix(Ped)
Ped <- insertPed(Ped)
Ped <- orderPed(Ped)

Переформатировать в data.frame

Ped <- as.data.frame(Ped)

Загрузить пакет, оценить дисперсию и априоры и сгенерировать модель:

p.var <- var(Data$BWT , na.rm=TRUE)
prior1.1 <- list(G=list(G1=list(V=matrix(p.var/2),n=1)), 
             R=list(V=matrix(p.var/2),n=1))   
model1.1 <- MCMCglmm(BWT ~ 1 , random = ~animal, pedigree = Ped, data = Data, prior = prior1.1)

1 Ответ

1 голос
/ 29 сентября 2019

Проблема решена!

Вышло сообщение об ошибке, поскольку набор данных Data также необходимо отформатировать Data <- as.data.frame(Data)

Спасибо Джарроду Хэдфилду за простое, но уклончивое решение.

...