【问题标题】:extract estimate of a gls提取 gls 的估计值
【发布时间】:2014-02-03 14:03:25
【问题描述】:

我正在尝试从 ML 拟合的模型中提取参数,该模型具有从 corPagel 获得的相关结构(在包 ape 中定义)。感兴趣的参数位于摘要中名为 apVar 的元素内。

library(ape); library(nlme)
cor_lambdaML <- corPagel( 1, avestree, fixed=FALSE )
m <- gls(AUTUMN ~ GREGARIOUSNESS + SEASON + TARSUS + MATURATION + SPRING + MIGRATION + DICHROMATISM + HABITAT + POSTJUVENILE + CONSPICUOUSNESS, correlation = cor_lambdaML, data = avesdata, method = 'ML' )
names(m)
m$apVar

此代码产生以下输出(请下载模型为 m here 的 dput):

           corStruct     lSigma
corStruct 0.03848807 0.03090663
lSigma    0.03090663 0.04403168
attr(,"Pars")
  corStruct      lSigma 
0.858126838 0.008131981 
attr(,"natural")
[1] TRUE

提取第一个矩阵的值很简单,但是如何提取元素 attr(, "Pars") 中的 corStruct 的值?

【问题讨论】:

    标签: r nlme ape-phylo


    【解决方案1】:

    不确定您需要挖掘多远,但m$Pars$corStruct 是存储数据的位置。也就是说:m 是一个有很多组件的 list,其中一个是 Pars 。这本身就是一个list,带有一个组件corStruct

    ?glsObject 将引导您了解所有列表元素的详细信息。

    【讨论】:

    • 据我了解,Pars 不是我的 gls 对象的列表组件。组件 apVar 包含一个协变量矩阵和两个我无法提取的元素。如果 try 'm$Pars$corStruct' 返回 NULL;如果我尝试 'm$apVar$Pars' 返回错误 $ 运算符对原子向量无效; 'm1023$apVar[[3,1]]' 返回超出限制的子索引。有什么线索吗?
    • 不知道。您可以使用names 查找m 的所有元素并递归查找这些列表元素的元素。
    • 显然,没有办法接触到这些元素。 m$apVar 的结构表明有一个元素..- attr(*, "Pars")= Named num [1:2] 0.85813 0.00813,但如果我尝试m$apVar..- attr(*, "Pars"),它不喜欢星号。然后,如果我尝试 m$apVar..- attr(3, "Pars") 我会得到 numeric(0)
    • m$apVar$Pars 不明白吗?
    • 不!正如我所说,它会引发一条错误消息:$ 运算符对原子向量无效
    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多