221 lines
5.4 KiB
Plaintext
221 lines
5.4 KiB
Plaintext
---
|
|
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"))
|
|
|
|
```
|
|
|
|
|
|
|