【问题标题】:How to extract confidence intervals from multiple regression models?如何从多个回归模型中提取置信区间?
【发布时间】:2021-03-10 12:37:12
【问题描述】:

我正在提取两个不同组的回归结果,如下面的示例所示。在temp data.frame 中,我得到估计值、std.error、统计数据和 p 值。但是,我没有得到置信区间。有没有一种简单的方法来提取它们?

 df <- tibble(
  a = rnorm(1000),
  b = rnorm(1000),
  c = rnorm(1000),
  d = rnorm(1000),
  group = rbinom(n=1000, size=1, prob=0.5)
)

df$group = as.factor(df$group)

temp <- df %>%
  group_by(group) %>%
  do(model1 = tidy(lm(a ~ b + c + d, data = .))) %>%   
  gather(model_name, model, -group) %>%                        
  unnest() 

【问题讨论】:

    标签: r regression confidence-interval broom


    【解决方案1】:

    你正在整理一个 lm 对象。如果您检查help page,则可以选择包含置信区间conf.int=TRUE

    temp <- df %>%
      group_by(group) %>%
      do(model1 = tidy(lm(a ~ b + c + d, data = . ), conf.int=TRUE)) %>%   
      gather(model_name, model, -group) %>%                        
      unnest()
    
    # A tibble: 8 x 9
      group model_name term  estimate std.error statistic p.value conf.low conf.high
      <fct> <chr>      <chr>    <dbl>     <dbl>     <dbl>   <dbl>    <dbl>     <dbl>
    1 0     model1     (Int…  0.0616     0.0423    1.46    0.146   -0.0215    0.145 
    2 0     model1     b      0.00178    0.0421    0.0424  0.966   -0.0808    0.0844
    3 0     model1     c     -0.00339    0.0431   -0.0787  0.937   -0.0881    0.0813
    4 0     model1     d     -0.0537     0.0445   -1.21    0.228   -0.141     0.0337
    5 1     model1     (Int… -0.0185     0.0454   -0.408   0.683   -0.108     0.0707
    6 1     model1     b      0.00128    0.0435    0.0295  0.976   -0.0842    0.0868
    7 1     model1     c     -0.0972     0.0430   -2.26    0.0244  -0.182    -0.0126
    8 1     model1     d      0.0734     0.0457    1.60    0.109   -0.0165    0.163 
    

    【讨论】:

      【解决方案2】:

      如果您的dplyr 版本高于1.0.0,您可以使用:

      df %>%
       group_by(group) %>%
       summarise(tidy(lm(a ~ b + c + d), conf.int = TRUE), .groups = "drop") 
      #> # A tibble: 8 x 8
      #>   group term        estimate std.error statistic p.value conf.low conf.high
      #>   <fct> <chr>          <dbl>     <dbl>     <dbl>   <dbl>    <dbl>     <dbl>
      #> 1 0     (Intercept)   0.0734    0.0468     1.57   0.117   -0.0185    0.165 
      #> 2 0     b            -0.101     0.0461    -2.19   0.0292  -0.191    -0.0102
      #> 3 0     c             0.0337    0.0464     0.726  0.468   -0.0575    0.125 
      #> 4 0     d            -0.101     0.0454    -2.23   0.0265  -0.190    -0.0118
      #> 5 1     (Intercept)  -0.0559    0.0468    -1.20   0.232   -0.148     0.0360
      #> 6 1     b            -0.0701    0.0474    -1.48   0.140   -0.163     0.0230
      #> 7 1     c             0.0319    0.0477     0.668  0.504   -0.0619    0.126 
      #> 8 1     d            -0.0728    0.0466    -1.56   0.119   -0.164     0.0188
      

      【讨论】:

        猜你喜欢
        • 2022-01-07
        • 2019-04-23
        • 2019-05-29
        • 1970-01-01
        • 2019-04-09
        • 2023-03-26
        • 2019-12-26
        • 1970-01-01
        • 2020-08-01
        相关资源
        最近更新 更多