Cargamos la libreria y bases
library(readxl)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.1 ✔ purrr 1.0.1
## ✔ tibble 3.1.8 ✔ dplyr 1.1.0
## ✔ tidyr 1.3.0 ✔ stringr 1.5.0
## ✔ readr 2.1.4 ✔ forcats 1.0.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## New names:
## • `Numero Identificación` -> `Numero Identificación...1`
## • `Numero Identificación` -> `Numero Identificación...11`
## • `Tipo Inicio` -> `Tipo Inicio...99`
## • `Motivo suspension` -> `Motivo suspension...118`
## • `Inicio Medicarte` -> `Inicio Medicarte...119`
## • `Tipo Inicio` -> `Tipo Inicio...120`
## • `Motivo suspension` -> `Motivo suspension...124`
## • `Inicio Medicarte` -> `Inicio Medicarte...125`
## • `Tipo Inicio` -> `Tipo Inicio...126`
## • `Motivo suspension` -> `Motivo suspension...130`
## • `Inicio Medicarte` -> `Inicio Medicarte...131`
## • `Tipo Inicio` -> `Tipo Inicio...132`
## • `Manejo` -> `Manejo...230`
## • `Manejo` -> `Manejo...232`
## • `Manejo` -> `Manejo...234`
## • `Manejo` -> `Manejo...236`
## • `Manejo` -> `Manejo...238`
## • `Manejo` -> `Manejo...240`
## • `Manejo` -> `Manejo...242`
## • `Manejo` -> `Manejo...244`
## • `Manejo` -> `Manejo...246`
## • `Manejo` -> `Manejo...248`
## • `Manejo` -> `Manejo...250`
## • `Manejo` -> `Manejo...252`
## • `Clinimetría QF 3 año curso (sep-dic)` -> `Clinimetría QF 3 año curso
## (sep-dic)...303`
## • `Fecha QF 3 ac` -> `Fecha QF 3 ac...304`
## • `Resultado QF 3 ac` -> `Resultado QF 3 ac...305`
## • `InterpretaciOn QF 3 ac` -> `InterpretaciOn QF 3 ac...306`
## • `Clinimetría QF 3 año curso (sep-dic)` -> `Clinimetría QF 3 año curso
## (sep-dic)...321`
## • `Fecha QF 3 ac` -> `Fecha QF 3 ac...322`
## • `Resultado QF 3 ac` -> `Resultado QF 3 ac...323`
## • `InterpretaciOn QF 3 ac` -> `InterpretaciOn QF 3 ac...324`
Extraemos los datos que necesitamos
a <- data.frame("ID" = df$Numero.Identificación...1,
"Fecha.Nacimi" = df$Edad..Años.,
"Sexo" = df$Genero,
"Estrato" = df$Estrato.Socioeconomico,
"Qf" = df$Resultado.QF.Final, #escala sf-36 al finalizar
"Qi" = df$Resultado.QF.Basal, #escala sf-36 al ingreso
"Yi" = df$Fecha.QF.Basal, #tiempo al ingreso
"Yf" = df$Fecha.ultimo.SF36, #tiempo al egreso
"Medicamento" = df$Medicamento.Previo.1.CODIFICADO) #medicamentos de interes
Filtramos el medicamento que nos intereza evaluar
a<- dplyr::filter(a,
Medicamento == "NATALIZUMAB")
Iniciamos los pasos para el calculo de los AVAC:
La fórmula que utilizaremos es: AVAC = f(Qf-Qi, Yf-Yi)
Qf = calidad de vida después del tratamiento. Qi = calidad de vida antes del tratamiento. Yf = cantidad (años) de vida después del tratamiento. Yi = cantidad (años) de vida antes del tratamiento.
Paso 1:
a$Qf <- 100 - a$Qf
a$Qi <- 100 - a$Qi
primero la operación que se acaba de realizar parte con el supuesto que una persona puede tener un puntaje máximo de 100 en la escala sf-36 en donde seria una persona con buena condicion de salud, al restar el puntaje total real obtenido por un individuo de este puntaje máximo, se obtiene una medida de la pérdida de calidad de vida experimentada por ese individuo, esto seria lo que le falta a la persona para tener una calidad de vida igual que una persona con buena calidad de vida.
Cuanto menor sea el puntaje total real, mayor será la pérdida de calidad de vida y, por lo tanto, mayor será el número de años de vida ajustados por calidad perdidos.
Paso 2:
a$Qf <- a$Qf/100
a$Qi <- a$Qi/100
a$deltaQ <- a$Qf-a$Qi
La operación que se realiza en el paso anterior es una normalización de la diferencia obtenida en el paso 1 para obtener un valor entre 0 y 1. El valor 0 representa la peor salud imaginable y el valor 1 representa la mejor salud imaginable, y los valores intermedios representan la salud relativa en esa escala de medida.
Paso 3:
a <- a[!is.na(a$Qf),]
a <- a[!is.na(a$Qi),]
a$deltaY <- difftime(a$Yf, a$Yi,
units ="weeks")
a$deltaY <- as.numeric(a$deltaY)/52.5
a$deltaQ <- a$Qf-a$Qi
En el paso anterior calculamos el tiempo en que las personas duraron con el medicamento el cual seria el complemento para la formula que presentamos en el ejemplo anterior (Yi, Yf)
Paso 4
a$AVAC <- a$deltaQ*a$deltaY
aplicar la fórmula AVAC = ∆Q x ∆t para cada paciente individualmente, este resultado representa la contribución al resultado total de los AVAC en el grupo de pacientes. Para obtener el resultado total de AVAC para un grupo o población, se suman los valores individuales de AVAC de todos los pacientes incluidos.
sum(a$AVAC)
## [1] 7.220294
En este caso, un resultado de AVAC total de 7 sugiere que el tratamiento mejora la calidad de vida en comparación con la linea base en este caso seria al momento del inicio del medicamento.