簡體   English   中英

如何在 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

我應該使用什么代碼來獲得這種格式?

我已經完成了以下操作,但無法弄清楚如何將 Intercept 和 x 顯示為 beta0 和 beta1 以及它們的 Estimate 和 Lower CI 以及 Upper 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 以這種形式獲得它?

重命名rownamescolnames的輸出confint

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM