# Research Group Discussion NO. 9 ###### tags: `R` `statistics` `OR` `RR` ## Dataset **Data Set Information:** plosone dataset contains the medical records of **66 patients who had Hepatic portal venousgas(HPVG)**. Each patient profile has **13 clinical variables**. heart dataset contains the medical records of **303 patients who had heart failure**, collected during their follow-up period, where each patient profile has **13 clinical features**. ## Relative Risk and Odds Ratio Before obtaining RR or OR, we can first check the correlation and Chi-square. ```r= # load library library(ggplot2) #graph library(PerformanceAnalytics) #correlation library(epiR) #RR or OR # import heart.txt and pone_data.txt files data_ER <- read.table("data/pone_data.txt", header = T, sep = "\t") data_heart <- read.table("data/heart.txt", header = T, sep = "\t") # correlation matrix chart.Correlation(data_ER, histogram=TRUE, method = "spearman", pch=19) chart.Correlation(data_heart, histogram=TRUE, method = "spearman", pch=19) ``` For calculate RR, OR or Chi-square, first, we need to create a table. ```r= # make a table # use factor to set the sex and target as categorical variables # Reset the level (reorder the column) data_heart$sex <- factor(data_heart$sex) data_heart$target <- factor(data_heart$target, levels = c(1, 0)) my_table <- table( Sex = data_heart$sex, Outcome = data_heart$target) my_table # change row name rownames(my_table) <- c("female","male") my_table # change column name colnames(my_table) <- c("Heart_Failure", "Control") my_table # let us make a graph ggplot(data = data_heart, aes(x = target, fill = sex )) + geom_bar() # little adjustment ggplot(data = data_heart, aes(x = target, fill = sex )) + geom_bar(position = "dodge") + scale_x_discrete(labels = c("HF","Control"))+ scale_fill_discrete(labels = c("Female","Male")) ``` Then, we performed chi-square test. ```r= # perform Chi-square test of independence chisq.test(my_table) ``` Let's use epiR package to calculate RR and OR.... ```r= # RR and OR : cohort.count, case.control epi.2by2(my_table, method = "cohort.count", conf.level = 0.95) epi.2by2(my_table, method = "case.control", conf.level = 0.95) ``` Obtain the OR for our logistic regression. ```r= # build models (multivariate logistic) model <- glm(outcome ~ rr + age + bp + RAPS, data = data_ER, family = binomial) summary(model) coefficients(model) exp(coefficients(model)) # OR exp(confint(model)) # CI for OR ```