尝试运行两个几乎相同的pgls模型时,一个模型的错误消息

时间:2020-10-23 09:12:46

标签: r linear-regression phylogeny

我正在尝试使用pgls()包中的caper函数来创建模型,以查看进纸方式对形状的影响。以下模型有效:

latdata <- comparative.data(lattree, lat, Species, vcv=TRUE, vcv.dim=3)
latpigot <- pgls(PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 ~ Feeding, latdata, lambda = 'ML')

其中lattree是我的系统树,lat是我的数据集,而Species是我的数据集,PC和Feeding是我的数据集中的列名。 PC是具有正值和负值的数字变量。 SpeciesFeeding是分类变量。

但是当我使用新的数据集和新的树尝试相同的代码时,它不起作用并且出现错误:

vendata <- comparative.data(ventree, ven, Species, vcv=TRUE, vcv.dim=3)
venpigot <- pgls(PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 ~ Feeding, vendata, lambda = 'ML')

Error in pgls(PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 ~ Feeding, vendata,  : 
  Problem with optim:52ERROR: ABNORMAL_TERMINATION_IN_LNSRCH

ven具有65个条目,而不是lat中的66个条目。这些树是相同的,除了lattree中的一个分类单元不在ventree中。

据我了解,pgls()函数在其代码中的某个位置具有optim()函数,这就是导致问题的原因,但是我不理解optim()函数如何适合于和为什么它可能引起问题。

有人对可能出什么问题有任何想法吗?

非常感谢,

卡罗琳娜

编辑: 如果我将lambda设置为1,这似乎可行。但是,我不知道这是正确的还是如何确定适当的lambda值。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我找到了此网页:

http://blog.phytools.org/2012/11/fitting-model-in-phylogenetic.html

并使用apenlme软件包使用以下代码编写PGLS模型:

venpigot <- gls(PC1 + PC2 + PC3 + PC4 + PC5 + PC6 + PC7 ~ Pigot, ven, correlation = corPagel(1, ventree, fixed = FALSE), method = "ML")

似乎可行。

相关问题