options(repos = c(CRAN = "https://cloud.r-project.org"))
library(readxl)
library(gtsummary)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(broom)
library(purrr)
library(gt)
# Đọc dữ liệu
outcomehq <- read_excel("C:/dl/data/R-Rstudio/outcomehq.xlsx",
col_types = c("text", "numeric", "numeric",
"text", "text", "numeric", "numeric",
"text", "text", "text", "text", "numeric",
"numeric", "numeric", "text", "text",
"numeric", "numeric", "numeric",
"text", "text", "text", "text", "text",
"text", "text", "numeric", "numeric",
"numeric", "numeric", "text", "text", "text", "text", "text",
"text", "text", "text", "text","numeric", "numeric", "text",
"text", "text", "numeric", "numeric", "text",
"numeric", "numeric", "text", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"text", "text", "text", "text", "text", "text", "text", "text", "numeric",
"text", "text", "text", "text", "text",
"text", "text", "text"))
# Chạy hồi quy logistic đơn biến cho từng biến độc lập
regression_results <- outcomehq %>%
select(age, sex, tha, dtd, dysl, htl, weight, height, bmi, classbmi,
cre, MDRD, CrCl, hr, HATTh, HATTr, GRACE, ClassGRACE, GRACE1, GRACE2, GRACE3,
ClassTIMI, TIMI1, TIMI2, TIMI3, STEMIequi, AtoD, AmitDSA, StoD, SymtompDSA,
cTnIhs1, cTnIhs2, Chototal, TG, HDLC, LDLC, leuko,
Hgb, dapt, LVEF, LVEF40, RWMA, Predominant,
KILLIP, KILLIP1, Culprit, LAD, LCx, RCA, LM1, LM, Multivesseld, THBH,
RENTROP, PCIk, POBA, DES, SuccessPCI, RLN, MACCE) %>%
imap(~ {
# Chạy hồi quy logistic cho từng biến
glm_formula <- as.formula(paste("TOCA ~", .y))
model <- glm(glm_formula, family = binomial, data = outcomehq)
# Lấy kết quả hồi quy
tidy(model, exponentiate = TRUE, conf.int = TRUE) %>%
mutate(variable = .y)
})
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
# Tính giá trị p chung cho các biến phân loại KILLIP và Culprit
categorical_vars <- c("KILLIP", "Culprit")
summary_table <- bind_rows(regression_results) %>%
filter(term != "(Intercept)") %>% # Loại bỏ hệ số chặn
select(variable, term, estimate, conf.low, conf.high, p.value) %>%
group_by(variable) %>%
summarise(
estimate = mean(estimate),
conf.low = mean(conf.low),
conf.high = mean(conf.high),
p.value = min(p.value) # Hoặc sử dụng max nếu muốn
) %>%
ungroup()
# Hiển thị kết quả với tên biến đầy đủ
summary_table %>%
gt::gt() %>%
tab_header(title = "Hồi quy logistic đơn biến cho TOCA",
subtitle = "Tỷ số chênh, khoảng tin cậy 95% và giá trị p")
| Hồi quy logistic đơn biến cho TOCA |
| Tỷ số chênh, khoảng tin cậy 95% và giá trị p |
| variable |
estimate |
conf.low |
conf.high |
p.value |
| AmitDSA |
3.095238e-01 |
1.290457e-01 |
7.482738e-01 |
0.0083991036 |
| AtoD |
1.000976e+00 |
9.920997e-01 |
1.009311e+00 |
0.8218999536 |
| Chototal |
8.436388e-01 |
6.370652e-01 |
1.103489e+00 |
0.2222351553 |
| ClassGRACE |
1.376232e+00 |
5.307840e-01 |
3.781269e+00 |
0.3664735419 |
| ClassTIMI |
7.558309e-01 |
NA |
1.229478e+72 |
0.3357337260 |
| CrCl |
1.020214e+00 |
1.003917e+00 |
1.037416e+00 |
0.0160536395 |
| Culprit |
1.655372e+07 |
1.237496e+00 |
NA |
0.0005822195 |
| DES |
1.492977e-07 |
NA |
1.989517e+71 |
0.9857943456 |
| GRACE |
1.003426e+00 |
9.923449e-01 |
1.014487e+00 |
0.5401065853 |
| GRACE1 |
7.333333e-01 |
2.884340e-01 |
1.705160e+00 |
0.4890053418 |
| GRACE2 |
1.401330e+00 |
6.575181e-01 |
2.948630e+00 |
0.3755609102 |
| GRACE3 |
9.060284e-01 |
4.184918e-01 |
1.908512e+00 |
0.7975974255 |
| HATTh |
9.835729e-01 |
9.696377e-01 |
9.967490e-01 |
0.0178143089 |
| HATTr |
9.838546e-01 |
9.597273e-01 |
1.007152e+00 |
0.1830940443 |
| HDLC |
3.214581e-01 |
7.108502e-02 |
1.156266e+00 |
0.1159072566 |
| Hgb |
9.812489e-01 |
8.387574e-01 |
1.040004e+00 |
0.6783249550 |
| KILLIP |
2.388145e+06 |
1.218213e-01 |
NA |
0.3837428266 |
| KILLIP1 |
2.705882e+00 |
6.393143e-01 |
1.078133e+01 |
0.1542166448 |
| LAD |
1.971015e-01 |
7.861408e-02 |
4.472007e-01 |
0.0002136497 |
| LCx |
2.700000e+00 |
1.261258e+00 |
5.798436e+00 |
0.0103305188 |
| LDLC |
8.468999e-01 |
5.891682e-01 |
1.193698e+00 |
0.3541382019 |
| LM |
1.200000e+00 |
2.526146e-01 |
4.404997e+00 |
0.7956947141 |
| LM1 |
6.869773e+06 |
5.154439e-72 |
NA |
0.9857714654 |
| LVEF |
9.623583e-01 |
9.343358e-01 |
9.901396e-01 |
0.0091099839 |
| LVEF40 |
1.920635e+00 |
8.062822e-01 |
4.423463e+00 |
0.1298561035 |
| MACCE |
1.277778e+00 |
1.777400e-01 |
6.210577e+00 |
0.7751610082 |
| MDRD |
1.016498e+00 |
9.965490e-01 |
1.038066e+00 |
0.1142674351 |
| Multivesseld |
2.960674e+00 |
1.070731e+00 |
1.050185e+01 |
0.0561153041 |
| PCIk |
4.022989e-01 |
8.477743e-02 |
2.122106e+00 |
0.2477127515 |
| POBA |
4.318182e+00 |
1.084478e+00 |
1.832852e+01 |
0.0364618736 |
| Predominant |
5.393130e-07 |
NA |
7.518467e+63 |
0.9888103917 |
| RCA |
1.920635e+00 |
8.062822e-01 |
4.423463e+00 |
0.1298561035 |
| RENTROP |
6.549000e+00 |
1.836664e+00 |
2.573069e+01 |
0.0020398726 |
| RLN |
5.057143e+00 |
8.079613e-01 |
3.955271e+01 |
0.0823336774 |
| RWMA |
2.095238e+00 |
9.998198e-01 |
4.528465e+00 |
0.0535146708 |
| STEMIequi |
1.279570e+00 |
4.618955e-01 |
3.239618e+00 |
0.6151622295 |
| StoD |
9.983880e-01 |
9.909791e-01 |
1.005384e+00 |
0.6588697379 |
| SuccessPCI |
1.767750e+06 |
1.275169e-64 |
NA |
0.9888474105 |
| SymtompDSA |
2.982158e-01 |
1.198381e-01 |
7.473501e-01 |
0.0089437687 |
| TG |
1.008325e+00 |
9.798751e-01 |
1.035459e+00 |
0.4930903366 |
| THBH |
6.413333e+00 |
2.500335e+00 |
1.718191e+01 |
0.0001350918 |
| TIMI1 |
6.696915e-01 |
2.758501e-01 |
1.507534e+00 |
0.3500840973 |
| TIMI2 |
1.551440e+00 |
6.901930e-01 |
3.762851e+00 |
0.3053530001 |
| TIMI3 |
1.478429e-06 |
NA |
1.970138e+72 |
0.9878664482 |
| age |
9.736138e-01 |
9.431471e-01 |
1.003771e+00 |
0.0904942999 |
| bmi |
1.052713e+00 |
9.310950e-01 |
1.185698e+00 |
0.3999438590 |
| cTnIhs1 |
9.999914e-01 |
9.999306e-01 |
1.000031e+00 |
0.7151220467 |
| cTnIhs2 |
1.000002e+00 |
9.999925e-01 |
1.000011e+00 |
0.5997819766 |
| classbmi |
1.946488e+00 |
8.395467e-01 |
4.389316e+00 |
0.1119551413 |
| cre |
9.772085e-01 |
9.531200e-01 |
9.977873e-01 |
0.0536061467 |
| dapt |
9.635066e-01 |
9.260860e-01 |
9.987466e-01 |
0.0525157990 |
| dtd |
1.212121e+00 |
5.705970e-01 |
2.539224e+00 |
0.6115870300 |
| dysl |
5.555556e-01 |
2.639057e-01 |
1.170962e+00 |
0.1201703432 |
| height |
7.895860e+00 |
4.347858e-02 |
1.585530e+03 |
0.4377609864 |
| hr |
9.899383e-01 |
9.689054e-01 |
1.009529e+00 |
0.3333414145 |
| htl |
5.360502e-01 |
2.218708e-01 |
1.197922e+00 |
0.1432847588 |
| leuko |
1.013970e+00 |
8.924855e-01 |
1.144879e+00 |
0.8256469186 |
| sex |
1.350649e+00 |
6.343201e-01 |
2.838483e+00 |
0.4292300607 |
| tha |
4.324324e-01 |
1.447203e-01 |
1.373565e+00 |
0.1371369347 |
| weight |
1.022909e+00 |
9.866694e-01 |
1.060557e+00 |
0.2140641986 |