代码之家  ›  专栏  ›  技术社区  ›  John Conor

以数据帧+r+lme的形式访问intervals.lme的结果

  •  1
  • John Conor  · 技术社区  · 1 年前

    我使用线性混合效应模型来确定两个变量随时间的关系,模型-

    data(mtcars)
    
    # linear mixed effects model
    mlme <- lme(mpg ~ wt, random = ~ 1|cyl, data = mtcars)
    

    然后我使用-

    conf <- intervals(mlme, level = 0.95, which = 'fixed')
    conf
    

    返回结果-

    Approximate 95% confidence intervals
    
     Fixed effects:
                   lower      est.    upper
    (Intercept) 7.431921 18.416639 29.40136
    DairyTotal  2.001397  6.716849 11.43230
    

    我想访问下限和上限的值,这样我就可以将它们用作变量,但找不到这样做的方法。例如,如果你想访问系数,你可以使用 coef(summary(mlme)) 并将其转换为数据帧。

    我尝试使用将结果转换为数据帧 data.frame(coef) 但是得到错误:

    > data.frame(conf)
    Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
      cannot coerce class ‘"intervals.lme"’ to a data.frame
    

    有人能推荐一种方法来访问以这种格式返回的变量吗?

    1 回复  |  直到 1 年前
        1
  •  3
  •   Ben Bolker    1 年前

    另一种可能性是使用 broom.mixed::tidy() .以@TarJae为例:

    broom.mixed::tidy(mlme, conf.int = TRUE, effects = "fixed") |> 
         dplyr::select(term, estimate, conf.low, conf.high)
    
    # A tibble: 2 × 4
      term        estimate conf.low conf.high
      <chr>          <dbl>    <dbl>     <dbl>
    1 (Intercept)    31.5     25.7      37.3 
    2 wt             -3.52    -4.99     -2.04
    
        2
  •  2
  •   TarJae    1 年前

    以下是mtcars数据集的一个例子,我们可以如何访问下和上ci作为变量:

    library(nlme)
    
    data(mtcars)
    
    # linear mixed effects model
    mlme <- lme(mpg ~ wt, random = ~ 1|cyl, data = mtcars)
    
    # Confidence intervals
    conf <- intervals(mlme, level = 0.95, which = 'fixed')
    
    # Lower and upper confidence intervals as variables
    lower <- conf$fixed["(Intercept)", "lower"]
    upper <- conf$fixed["(Intercept)", "upper"]
    
    [1] 25.7204
    [1] 37.32919