【问题标题】:How can I export correspondent statistics from linear regression model to a table in R?如何将对应的统计数据从线性回归模型导出到 R 中的表格?
【发布时间】:2019-06-17 02:38:51
【问题描述】:

我正在拟合具有 1 个因变量和 45 个自变量的多元线性回归模型。我想把对应效应、95% CI 和 p 值放到表格中。

我的数据集如下:

a  b  x1 x2 x3 x4 .... x45
23 15 1 34 4  45       8
10 45 2 15 2  55       18

有没有比写lm(y ~ x1 + x2 + x3 + x4...+x45, data=df) 更方便的方法来编写回归语法,因为我有 45 个不同名称的变量?

我试过了

mod1 <- lm(a ~ x1 + x2 + ....+x45, data=df)
mod2 <- lm(b ~ x1 + x2 + .... +x45, data=df)

但我不知道如何将结果放入表格中,如下所示:

model variable     effect       95%CI      p
 mod1    x1       177.93  79.16- 276.71   0.003
 mod1    x2       -75.13 -116.46 - -33.8  0.003 
 ...
 mod1    x45      118.61  53.09-184.13    0.005
 mod2    x1       79.53   36.94 - 122.13  0.004
 mod2    x2       201.93  60.48 - 343.38  0.01 
 ...
 mod2    x45      61.56   20.87 - 102.25   0.005

如果有人可以提供帮助,那就太好了。非常感谢!

【问题讨论】:

    标签: r statistics export regression


    【解决方案1】:

    假设您的数据集仅包含因变量和相关预测变量,您可以像这样指定回归:

    lm(a ~ ., data = df)
    

    在您的情况下,您可以使用dplyr::select 删除ba

    library(dplyr
    mod1 <- df %>%
      select(-b) %>%
      lm(a ~ ., data = .)
    

    要在表格中总结结果,请查看 R 包 stargazersjPlotbroom。我喜欢sjPlot::tab_model,因为它可以在 RStudio 或 RMarkdown 文档中生成干净的 HTML 表格。

    library(sjPlot)
    iris %>%
      lm(Petal.Length ~ ., data = .) %>%
      tab_model()
    

    或者使用broom::tidy:

    library(broom)
    iris %>% 
      lm(Petal.Length ~ ., data = .) %>% 
      tidy()
    
      term              estimate std.error statistic  p.value
      <chr>                <dbl>     <dbl>     <dbl>    <dbl>
    1 (Intercept)         -1.11     0.270      -4.12 6.45e- 5
    2 Sepal.Length         0.608    0.0502     12.1  1.07e-23
    3 Sepal.Width         -0.181    0.0804     -2.25 2.62e- 2
    4 Petal.Width          0.602    0.121       4.96 1.97e- 6
    5 Speciesversicolor    1.46     0.173       8.44 3.14e-14
    6 Speciesvirginica     1.97     0.245       8.06 2.60e-13
    

    【讨论】:

      【解决方案2】:

      当我使用 lmer 函数进行回归时,这段代码可以提取结果表。请参考代码!

      RESULT_model1 <- summary(model1<-lmer(LOGTHSMON_SELNG_AMT~ .-BLK_CD-LOGPERTHSMON_SELNG_AMT
                                            - STDR_YM_CD - bub_dong-M201507-M201508-M201509
                                            -STOR_CO
                                            +(1|BLK_CD)
                                            ,data=dta_fin_WEST))
      
      
      RESULT_model1_cof <- as.data.frame(tidy(RESULT_model1$coefficients))
      RESULT_model1_cof$p.value <- 2 * (1 - pnorm(abs(RESULT_model1_cof$t.value)))
      RESULT_model1_cof$VAR <- RESULT_model1_cof$.rownames
      RESULT_model1_cof$STDERR <- RESULT_model1_cof$Std..Error
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-30
        • 1970-01-01
        • 2018-04-28
        • 1970-01-01
        • 2021-05-25
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        相关资源
        最近更新 更多