如何在 R 中使用置信区间格式化 beta0 和 beta1?

How to format beta0 and beta1 with confidence intervals in R?

我需要为简单线性回归 yi = β0 + β1xi 计算 β^0 和 β^1,β0 和 β1 的置信区间为 87%,并且必须按以下格式用三位有效数字显示我的结果:

      Est    L    U
beta0 1.13 0.889 1.37
beta1 3.57 1.950 5.19

我应该使用什么代码来获取这种格式的文件?

我已经完成了以下操作,但无法弄清楚如何将截距和 x 显示为 beta0 和 beta1 以及它们的估计值和下限 CI 和上限 CI:

> M <- lm(y ~ x) # fit linear model
> signif(coef(M), digits = 2) # MLE's of beta
(Intercept)           x 
      -5.40        0.13 
> 
> signif(confint(M, level = 0.87), digits = 3)
             6.5 % 93.5 %
(Intercept) -5.710 -5.160
x            0.127  0.136

我在 RStudio 中这样做

编辑: 我用 data.frame 得到它是这样的:

> # data.frame for MLE's of beta with 87% confidence interval for beta0 and beta1
> data.frame(df, stringsAsFactors = )
        Est      L      U
beta0 -5.40 -5.710 -5.160
beta1  0.13  0.127  0.136
> Est <- c(-5.40, 0.13)
> L <- c(-5.710, 0.127)
> U <- c(-5.160, 0.136)
> df <- data.frame(Est,L,U)
> row.names(df) <- c('beta0', 'beta1')

但是有没有更好的方法使用内置的 R 函数 lm、coef、confint 以这种形式获取它?

重命名 confint 输出的 rownamescolnames

n <- 50
df <- data.frame(x = rnorm(n), y = rnorm(n))
fit <- lm(y ~ x, data = df)
ci <- confint(fit, level = .87)
colnames(ci) <- c("L", "U")
rownames(ci) <- c("beta0", "beta1")

ci
               L           U
beta0 -0.4962463 0.002210674
beta1 -0.3157171 0.152844873

如果您需要将估算值作为附加行,请将 ci 矩阵转换为数据框并添加 fit$coefficients 作为附加列:

ci_df <- data.frame(ci)
est <- fit$coefficients
ci_df$Est <- est

ci_df
               L           U         Est
beta0 -0.4962463 0.002210674 -0.24701781
beta1 -0.3157171 0.152844873 -0.08143609

如果你需要四舍五入,只需round(ci_df, 3)