MCMCglmm 具有生态因素和系统发育树:“某些级别的动物在 ginverse 中没有行条目”

问题描述 投票:0回答:1

我正在尝试针对数量性状和生态因素运行 MCMCglmm,同时考虑系统发育。我正在研究猫头鹰物种的头骨不对称性,因此我使用系统发育树而不是谱系。

我的数据中没有任何缺失值,但我收到此错误:

MCMCglmm 中的错误(依赖 ~ 独立,随机 = ~ 动物 + 样本,: 某些级别的动物在 ginverse 中没有行条目

我尝试了以下建议:MCMCglmm 与基因组相关性矩阵:“水平在 ginverse 中没有行条目”MCMCglmm 数据格式困难,但我不使用谱系或基因组相关性矩阵。我有一个系统发育树,它是 BirdTree 的修剪版本,并且与我的数据匹配。我尝试过 .tree 和 .nex 类型,这是代码前面部分的过程:

tree = read.nexus('C:/Users/User/Desktop/newtree.nex')
merged_data = data.frame(unique_species,merged_PC1,merged_PC2,merged_radii)

missing_species = setdiff(tree$tip.label, merged_data$unique_species)
new_tree = drop.tip(tree, missing_species)

这是 mcmcglmm 的尝试:

library(MCMCglmm)
mcmcdata <- read.csv(file = "C:/Users/User/Desktop/owls.csv")

我的数据集是一个 .csv,其中包含样本 ID、物种、属、性状(不对称性)和生态因素(夜间活动、耳簇)等列,无 NA

Sum_radii 是我正在研究的特征,源自我分析的早期部分,它显示为:#Named num [1:98] 0.592 0.534 0.392 等

dependent = sum_radii

names(dependent) = mcmcdata$Species
#生态因素和动物指定为.因素在某些时候向我建议

tuft<-as.factor(mcmcdata$TuftPr)
len<-as.factor(mcmcdata$TuftLen)
cat2<-as.factor(mcmcdata$cat2)

independent = cbind(tuft,len,cat2)
names(independent) =mcmcdata$Species

animal<-as.factor(mcmcdata$Species)

sample = as.factor(c(1:length(mcmcdata$Species)))

尝试使用 as.data.frame 建议进行故障排除

mcmcdata = data.frame(animal,dependent,independent,sample)
names(mcmcdata) = c('animal','dependent','independent','sample')

mcmcdata <- as.data.frame(mcmcdata)

型号

prior <- list(R = list(V=1, fix=1),
              G = list(G1 = list(V=1, nu=1000, alpha.mu=0, alpha.V=1),G2 = list(V=1, nu=1000, alpha.mu=0, alpha.V=1)))

nitt <- 2000000
burnin <- 200000
thin <- 10
MCMCresults2 = MCMCglmm(dependent~independent,
                       random=~animal+sample, 
                       family='gaussian',
                       data = mcmcdata, 
                       pedigree=new_tree,
                       nitt = nitt,
                       burnin = burnin,
                       thin = thin,
                       prior = prior)

提前感谢您的宝贵时间,如有任何建议,我们将不胜感激!

r modeling glm mcmc
1个回答
0
投票

如果没有最小的可重现代码,很难回答,但请检查您的数据是否采用“data.frame”格式而不是 tibble,后者经常使物种名称与逆矩阵中的物种不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.