Author

RLP

Análises ajustadas

Como citar o conteúdo deste site

Pacheco RL, Martimbianco ALC, Riera, R. Análises ajustadas. 2024. Disponível em: www.nepsbeats.com.

Última atualização: 10/abr/2024.


Continuaremos analisando um ensaio clínico randomizado que possui o seguinte PICO:

  • P: pacientes com Covid-19 grave

  • I: “covidina”

  • C: placebo

  • O: mortalidade em 28 dias e tempo de internação

A hipótese principal do estudo é a de que a covidina reduziria a mortalidade e o tempo de internação dos pacientes com Covid-19 em 28 dias, podendo ser utilizada no tratamento de pacientes graves. No total, o ensaio clínico recrutou 200 participantes para o grupo covidina e 200 participantes para o grupo placebo.

Code
set.seed(150393)

n <- 400
n_group <- 100

#df control_1
group <- rep("Placebo", n_group)
marker <- rep(1, n_group)
days_hosp <- rnorm(n_group, mean = 25, sd = 2)
days_hosp <- round(days_hosp)
age <- rnorm(n_group, mean = 60, sd = 30)
age <- ifelse(age <18, 18, age)
age <- ifelse(age > 90, 90, age)
age <- round(age)
df_control_1 <- data.frame(group, age, days_hosp, marker)

#df control_2
group <- rep("Placebo", n_group)
marker <- rep(0, n_group)
days_hosp <- rnorm(n_group, mean = 12, sd = 3)
days_hosp <- round(days_hosp)
age <- rnorm(n_group, mean = 60, sd = 30)
age <- ifelse(age <18, 18, age)
age <- ifelse(age > 90, 90, age)
age <- round(age)
df_control_2 <- data.frame(group, age, days_hosp, marker)

# df int_1
group <- rep("Intervention", 10)
marker <- rep(1, 10)
days_hosp <- rnorm(10, mean = 25, sd = 2)
days_hosp <- round(days_hosp)
age <- rnorm(10, mean = 60, sd = 30)
age <- ifelse(age <18, 18, age)
age <- ifelse(age > 90, 90, age)
age <- round(age)
df_int_1 <- data.frame(group, age, days_hosp, marker)

# df int_2
group <- rep("Intervention", 190)
marker <- rep(0, 190)
days_hosp <- rnorm(190, mean = 12, sd = 3)
days_hosp <- round(days_hosp)
age <- rnorm(190, mean = 60, sd = 30)
age <- ifelse(age <18, 18, age)
age <- ifelse(age > 90, 90, age)
age <- round(age)
df_int_2 <- data.frame(group, age, days_hosp, marker)


df <- rbind(df_control_1, df_control_2, df_int_1, df_int_2)

df <- df[sample(nrow(df)),]

id <- 1:n
df <- data.frame(id, df)

Base 1. Base de dados do ensaio clínico randomizado que avaliou a covidina para pacientes com Covid-19 grave.

Code
knitr::kable(df[1:10, ], )
id group age days_hosp marker
190 1 Placebo 53 14 0
163 2 Placebo 36 15 0
201 3 Intervention 55 23 1
373 4 Intervention 56 11 0
207 5 Intervention 69 26 1
43 6 Placebo 56 20 1
384 7 Intervention 50 20 0
243 8 Intervention 90 17 0
387 9 Intervention 50 11 0
273 10 Intervention 90 14 0

Analisaremos se a covidina reduz o tempo de internação dos pacientes com Covid-19 grave. Pela inspeção visual do scatterplot, parece que há um número maior de participantes do grupo de placebo com tempo de internação maior em comparação com o grupo covidina.

Code
library(tidyverse)
ggplot(df, aes(x = group, y = days_hosp)) + 
  geom_jitter() + 
  theme_minimal() +
  ylab("Dias de hospilização") +
  xlab("Grupo")

Para a análise inferencial mais robusta, utilizaremos um modelo de regressão linear para avaliar a diferença entre os grupos de intervenção e controle. Como esta análise nào é ajustada, o resultado será equivalente a de um teste T.

Code
library(tidyverse)
df <- df |> 
  mutate(group_num = ifelse(group == "Intervention", 1, 0))

m1 <- glm(df$days_hosp ~ df$group_num)
summary(m1)

Call:
glm(formula = df$days_hosp ~ df$group_num)

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   18.3800     0.4110  44.723   <2e-16 ***
df$group_num  -5.6700     0.5812  -9.756   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 33.77965)

    Null deviance: 16659  on 399  degrees of freedom
Residual deviance: 13444  on 398  degrees of freedom
AIC: 2547.1

Number of Fisher Scoring iterations: 2

O resultado acima mostra que a média de dias de hospitalização no grupo placebo foi de 18,4 dias e o grupo covidina teve -5,7 dias de hospitalização. O p-valor foi < 0,0001, indicando que a diferença entre os grupos é estatisticamente significativa e que a hipótese nula pode ser afastada com segurança.

Um leitor desavisado poderia concluir que a intervenção reduz de maneira importante o tempo de internação dos pacientes com Covid-19 grave.

No entato, vamos adicionar uma nova varíavel na nossa análise: um marcador genético hipotético que piora substancialmente o prognóstico de pacientes com Covid-19.

Este marcador genético é representado pela variável marker, que assume o valor 1 para os pacientes que possuem o marcador e 0 para os que não possuem.

Code
ggplot(df, aes(x = group, y = days_hosp, colour = as.factor(marker))) +
  geom_jitter() +
  theme_minimal() +
  ylab("Dias de hospilização") +
  xlab("Grupo") + 
  labs(colour = "Marcador genético")

O gráfico mostra um desbalanço no tempo de hospilização dos pacientes que tinham ou não o fator prognóstico. Ao compararmos os pacientes sem fator prognóstico no grupo intervenção ou placebo, a distribuição nos dias de hospitalização parecem similares.

Um ponto importante de ser notado é que por algum motivo mais participantes com o marcador positivo estão no grupo placebo, o que levanta dúvidas sobre a randomização, uma vez que um desbalanço importante como este não era esperado.

Vamos ajustar o modelo anterior para incluir o marcador genético na análise.

Code
m2 <- glm(df$days_hosp ~ df$group_num + df$marker)
summary(m2)

Call:
glm(formula = df$days_hosp ~ df$group_num + df$marker)

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   11.8094     0.2710  43.573   <2e-16 ***
df$group_num   0.2435     0.3271   0.744    0.457    
df$marker     13.1412     0.3663  35.877   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 7.982907)

    Null deviance: 16659.2  on 399  degrees of freedom
Residual deviance:  3169.2  on 397  degrees of freedom
AIC: 1971.1

Number of Fisher Scoring iterations: 2

Podemos notar que a diferença do tempo de hospitalização entre os grupos desapareceu, a diferença de média da análise ajustada foi de 0,2 dias e o valor de p = 0.457.

A presença do marcador genético foi estatisticamente significante, com pacientes com o marcador positivo tendo em média 13 dias a mais de hospitalização.

Portanto, a análise ajustada mostrou que a covidina não reduziu o tempo de hospitalização dos pacientes com Covid-19 grave, mas que a presença do marcador genético aumentou o tempo de hospitalização.

Neste caso hipotético, a análise não ajustada levaria a uma conclusão errônea devido ao desbalanço do fator prognóstico conhecido (marcador genético).

A decisão de ajustar modelos estatístico deve ser sempre muito bem ponderada, pois os resultados e conclusões podem ser substancialmente diferentes.

Conhecimento da situação clínica e bom senso são fatores essenciais na condução de análises estatísticas.

Back to top