talos-pa-depression/Archive/dep_regression.Rmd

221 lines
5.4 KiB
Plaintext
Raw Normal View History

2022-08-01 13:57:03 +02:00
---
title: "Regression analyses"
author: "Andreas Gammelgaard Damsbo"
date: "Knitted: `r format(Sys.time(), '%d %B, %Y')`"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message = FALSE)
```
# Import
```{r}
dta_all<-read.csv("/Volumes/Data/depression/dep_dataset.csv")
```
# Defining patients to include for analysis
Only including cases with complete pase_0 and MDI at 1 & 6 months
```{r}
dta<-dta_all[!is.na(dta_all$pase_0),]
# &!is.na(dta$mdi_1)&!is.na(dta$mdi_6)
```
## Formatting
```{r echo=FALSE}
dta$diabetes<-factor(dta$diabetes)
dta$pad<-factor(dta$pad)
dta$civil<-factor(dta$civil)
dta$hypertension<-factor(dta$hypertension)
dta$afli<-factor(dta$afli)
dta$smoke_ever<-factor(dta$smoke_ever)
dta$ami<-factor(dta$ami)
dta$tci<-factor(dta$tci)
dta$thrombolysis<-factor(dta$thrombolysis)
dta$thrombechtomy<-factor(dta$thrombechtomy)
dta$rep_any<-factor(dta$rep_any)
dta$pad<-factor(dta$pad)
dta$nihss_0<-as.numeric(dta$nihss_0)
dta$age<-as.numeric(dta$age)
dta$rtreat<-factor(dta$rtreat)
dta$sex<-factor(dta$sex)
dta$pase_0<-as.numeric(dta$pase_0)
dta$pase_6<-as.numeric(dta$pase_6)
dta$bmi<-as.numeric(dta$bmi)
dta$mdi_6<-as.numeric(dta$mdi_6)
dta$pase_0_bin<-factor(dta$pase_0_bin,levels=c("lower","higher"))
```
```{r}
# Backup
dta_b<-dta
```
# Linear regression analysis
```{r}
library(broom)
library(daDoctoR)
library(lubridate)
```
## Tests of variables to adjust for
```{r}
# Possible variables to include
adjs<-c("age","sex","smoke_ever","civil","bmi","diabetes", "hypertension", "afli","pad","nihss_0","rep_any")
```
```{r}
# Variables with p<10% i bivariable linear regression analysis
print(adjs_10<-rep_lm(meas = "mdi_6",string=c("pase_0_bin","rtreat",adjs),data=dta,cut.p = .1)[[2]])
```
## True mean estimations (adjusted)
```{r}
strt<-append(print_pred_stratum(meas = "mdi_6",adj=unique(c("pase_0_bin",adjs_10)),strat="rtreat",data=dta,include.stratum = T),print_pred_stratum(meas = "mdi_6",adj=c(adjs_10[adjs_10!="pase_0_bin"],"rtreat"),strat="pase_0_bin",data=dta,include.stratum = T))
for (i in 1:length(strt)){
write.csv(strt[[i]][[1]],paste0("tbl_md6_",substr(names(strt)[i],1,3),".csv"))
}
c<-c()
for (i in 1:length(strt)){
c<-c(c,paste("Estimated true mean,",names(strt)[i]),strt[[i]][[5]])
}
mat_true<-matrix(c(c,c("Variables adjusted for:",paste(c("rtreat",adjs_10), collapse=', '))), ncol=2, byrow = T)
```
# MDI outcome 2x2
```{r}
sts<-c("pase_0_bin","rtreat")
# sts<-c("rtreat","pase_0_bin")
adjs_10m<-adjs_10[adjs_10!="pase_0_bin"]
```
## One month
### Enriched
```{r echo=FALSE}
outs<-c("mdi_1_enr")
source("/Volumes/Data/depression/script_regression_frame.R")
show(reg_frm)
write.csv(reg_frm,paste0(outs,"_matrix_",today(),".csv"))
```
### Raw
```{r echo=FALSE}
outs<-c("mdi_1")
source("/Volumes/Data/depression/script_regression_frame.R")
show(reg_frm)
write.csv(reg_frm,paste0(outs,"_matrix_",today(),".csv"))
```
## Six months
### New Observations - enriched
```{r echo=FALSE}
outs<-c("mdi_6_newobs_enr") # Outcome is based on new observations for 2nd (6 months) visit
# mean(dta$inc_time[!is.na(dta[,outs])])
# quantile(dta$inc_time[!is.na(dta[,outs])])
source("/Volumes/Data/depression/script_regression_frame.R")
show(reg_frm)
write.csv(reg_frm,paste0(outs,"_matrix_",today(),".csv"))
```
### New Observations
```{r echo=FALSE}
outs<-c("mdi_6_newobs") # Outcome is based on new observations for 2nd (6 months) visit
# mean(dta$inc_time[!is.na(dta[,outs])])
# quantile(dta$inc_time[!is.na(dta[,outs])])
source("/Volumes/Data/depression/script_regression_frame.R")
show(reg_frm)
write.csv(reg_frm,paste0(outs,"_matrix_",today(),".csv"))
```
### New observations - adjusted for 6 months PASE
```{r echo=FALSE}
outs<-c("mdi_6_newobs")
adjs_10m<-c(adjs_10[adjs_10!="pase_0_bin"],"pase_6")
# mean(dta$inc_time[!is.na(dta[,outs])])
# quantile(dta$inc_time[!is.na(dta[,outs])])
source("/Volumes/Data/depression/script_regression_frame.R")
show(reg_frm)
write.csv(reg_frm,paste0(outs,"_matrix_",today(),".csv"))
```
## Dichotomized sensitivity analysis
```{r}
dta$composite_out<-case_when(dta$open_treat=="yes"|(dta$mdi_6_newobs-dta$mdi_1)>5~"yes",
is.na(dta$mdi_6_newobs)~"NA",
is.na(dta$mdi_1)~"NA",
TRUE~"no")
dta$composite_out[dta$composite_out=="NA"]<-NA
summary(dta$composite_out<-factor(dta$composite_out))
```
## Enriching and cleaning variables
```{r}
# Enriching
dta$pad[is.na(dta$pad)]<-"no"
dta$hypertension[is.na(dta$hypertension)]<-"no"
# Cleaning
dta$civil<-factor(ifelse(dta$civil=="unknown",NA,dta$civil))
```
```{r}
table(dta$rtreat,dta$pase_0_bin)
outs<-"composite_out"
sts<-c("pase_0_bin","rtreat")
# sts<-c("rtreat","pase_0_bin")
adjs_10m<-adjs_10[adjs_10!="pase_0_bin"]
dta_frm<-dta[!is.na(dta$composite_out),c(outs,sts,adjs_10m)]
summary(dta_frm)
# colnames(dta_frm)[1]<-"outs"
# print_log(meas="composite_out",var=sts[2],adj=c(sts[1],adjs_10m),data=dta_frm)
# print_pred(meas="composite_out",adj=c(sts[2],adjs_10m),data=dta_frm[dta_frm$pase_0_bin=="lower",],n.by.adj = T)
composite_out_lst<-list(print_pred_stratum(meas="composite_out",strat = sts[1],adj=c(sts[2],adjs_10m),
data=dta_frm,n.by.adj = T),
print_pred_stratum(meas="composite_out",strat = sts[2],adj=c(sts[1],adjs_10m),
data=dta_frm,n.by.adj = T))
# show(composite_out_lst)
capture.output(show(composite_out_lst),
file = paste0("composite_out_lst",today(),".txt"))
```