knitr::opts_chunk$set(echo = TRUE)
require(ggplot2)
require(gtsummary)
require(gt)
이전 포스트에서 gtsummary
를 통해 회귀분석 테이블을 만들어봤습니다. 그 때의 테이블은 로지스틱 회귀분석 테이블이었습니다.
이번에는 종속변수가 연속형 변수인 다중회귀분석 테이블을 만들어보도록 하겠습니다.
0. 패키지 불러오기
require(ggplot2)
require(gtsummary)
1. 모델만들기
ggplot2
패키지에 내장되어 있는 diamonds
데이터셋을 활용하여 다중회귀분석을 실시해보도록 하겠습니다.
diamonds %>% head()
이제 다중회귀분석 모델을 만들어 줍니다.
model <- lm(price ~ carat + depth+ table + x+y+z,
data=diamonds)
2. 회귀분석 테이블 만들기
이제 gtsummary
의 tbl_regression
기능을 통해 회귀분석 테이블을 만들어봅시다.
tbl_regression(
model,
) %>% as_flex_table()
간단한 코드만으로 벌써 회귀분석 테이블이 완성되었습니다.
그런데 테이블이 뭔가 허전합니다. standard error
도 안보이고
설명력(R²)도 보이지 않습니다.
지금부터 gtsummary
내의 기능들을 통해 테이블을 하나씩 완성시켜보겠습니다.
우선 standard error
열을 추가시켜볼까요?standard error
행은 기본적으로 숨겨져 있습니다. 따라서 숨김을 해제해야(unhide) 합니다.
tbl_regression(
model
) %>%
modify_column_unhide(columns = std.error) %>%
as_kable()
std.error
열이 테이블에 나타난 것을 확인할 수 있습니다.
significance 추가하기
테이블에 p-value
에 따라 * 표시 (asterisk) 를 추가하고 싶을 수도 있습니다. add_significance_stars()
기능을 통해 테이블에 *표시를 추가할 수 있습니다. add_significance_stars()
을 사용할 시, p-value
와 CI
열이 사라집니다. 함께 나타내고 싶은 경우 추가해주어야 합니다.
tbl_regression(
model
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F)
설명력 및 N수 추가하기
R에서 회귀분석 모델을 summary
하면 설명력과 N수, 그리고 F-statistic
가 함께 나옵니다.
model %>% summary()
회귀분석 테이블에도 위의 결과값들들을 추가해보도록 하겠습니다.
tbl_regression(
model
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F) %>%
add_glance_table(include = c(nobs, r.squared,adj.r.squared,statistic))
만약 테이블의 행이 아닌 테이블의 주석 (source note) 로 결과값들을 추가하고 싶다면 add_glance_source_note()
를 사용하시면 됩니다.
tbl_regression(
model
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F) %>%
add_glance_source_note(include = c(nobs, r.squared,adj.r.squared,statistic))
테이블 라벨 변경하기
어느 정도 회귀분석 테이블이 만들어졌습니다. 이제 테이블의 column 명과 변수의 이름들을 바꿔보도록 하겠습니다.
우선 변수이름은 label()
인자를 통해서 변경할 수 있습니다.
tbl_regression(
model,
label = list(
carat ~ '캐럿',
depth ~ '깊이',
table ~ '테이블'
)
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F) %>%
add_glance_source_note(include = c(nobs, r.squared,adj.r.squared,statistic))
테이블의 carat, depth, table을 각각 캐럿, 깊이, 테이블로 변경하였습니다.
다음으로 테이블의 헤더 이름은 modify_header()
으로 바꿀 수 있습니다. 테이블의 헤더를 바꾸기 전에 원래 어떤 이름을 갖고 있는지 살펴봅시다.
tbl_regression(
model,
label = list(
carat ~ '캐럿',
depth ~ '깊이',
table ~ '테이블'
)
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F) %>%
add_glance_source_note(include = c(nobs, r.squared,adj.r.squared,statistic)) %>%
show_header_names()
header 의 이름은 label, estimate, std.error, ci, p.value 네요.
헤더명을 바꿔보도록 하겠습니다.
tbl_regression(
model,
label = list(
carat ~ '캐럿',
depth ~ '깊이',
table ~ '테이블'
)
) %>%
modify_column_unhide(columns = std.error) %>%
add_significance_stars(hide_ci = F,
hide_p = F) %>%
add_glance_source_note(include = c(nobs, r.squared,adj.r.squared,statistic)) %>%
modify_header(label = "**Variable**",
estimate = "**β**",
ci = '**CI**',
p.value = "**P value**")
테이블 헤더의 이름이 변경되었습니다.
'R > Tables' 카테고리의 다른 글
[r] gtsummary 로 기초통계 테이블 만들기 (0) | 2022.04.25 |
---|---|
[R] tableone 으로 기초통계테이블 만들기 (0) | 2022.04.25 |
[R table] gtsummary로 회귀분석 테이블 만들기 (0) | 2022.04.20 |
댓글