[英]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 以這種形式獲得它?
重命名rownames
和colnames
的輸出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.