medicaldata (https://higgi13425.github.io/medicaldata/) es un repositorio de bases de datos de salud en R, que cuenta con excelente documentación y que puede ser empleada como herramienta educativa para enseñanza de métodos estadísticos.
En esta publicación revisamos la base de datos de escorbuto, una enfermedad que se produce por la falta de vitamina C en la alimentación, y que provoca una serie de síntomas como: debilidad general, anemia, gingivitis, hemorragias cutáneas y musculares, y mala cicatrización de heridas. Hace siglos, fue común entre los marineros que realizaban largos viajes, ya que no tenían acceso a alimentos frescos. James Lind (1716-1794), un médico escocés, fue quien por primera vez utilizó una prueba imparcial para comparar los remedios tradicionales (tratamientos) que se utilizaban para curar el escorbuto.
En 1747, Lind servía como cirujano a bordo del buque de guerra HMS Salisbury, donde seleccionó a 12 de pacientes con escorbuto, en estadios similares de la enfermedad; los alojó en la misma sección del barco y se aseguró de que todos recibieron la misma alimentación, buscando conformar poblaciones lo más homogéneas posibles. Posteriormente les asignó en grupos de dos (emparejamiento) y aplicó seis tratamientos para el escorbuto, los cuales se enlistan a continuación: 1. Sidra 2. Vinagre 3. Nuez moscada 4. Ácido sulfúrico 5. Agua de mar 6. Dos naranjas y un limón
El experimento de Lind es uno de los primeros estudios de casos registrados que más se acerca, en cuanto a características a un ensayo clínico. Nótese que en el estudio de Lind no se consideró un método de aleatorización de los tratamientos a los pacientes, esta situación pudo influir en el resultado debido al sesgo por sujeto; por ejemplo, pudo ocurrir que al mejor paciente sea a quien se le aplicó el mejor tratamiento y, por ello la rápida recuperación a la enfermedad del escorbuto. El concepto de aleatorización fue introducido en 1926 por Ronald A. Fisher en su publicación “Métodos estadísticos para investigadores”.
list.of.packages <- c("medicaldata", "tidyverse", "janitor","rstatix")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
##
## Attaching package: 'rstatix'
##
## The following object is masked from 'package:janitor':
##
## make_clean_names
##
## The following object is masked from 'package:stats':
##
## filter
## tibble [12 × 8] (S3: tbl_df/tbl/data.frame)
## $ study_id : chr [1:12] "001" "002" "003" "004" ...
## $ treatment : Factor w/ 6 levels "cider","citrus",..: 1 1 3 3 6 6 5 5 2 2 ...
## $ dosing_regimen_for_scurvy: chr [1:12] "1 quart per day" "1 quart per day" "25 drops of elixir of vitriol, three times a day" "25 drops of elixir of vitriol, three times a day" ...
## $ gum_rot_d6 : Factor w/ 4 levels "0_none","1_mild",..: 3 3 2 3 4 4 4 4 2 1 ...
## $ skin_sores_d6 : Factor w/ 4 levels "0_none","1_mild",..: 3 2 4 4 4 4 4 4 2 1 ...
## $ weakness_of_the_knees_d6 : Factor w/ 4 levels "0_none","1_mild",..: 3 3 4 4 4 4 4 4 1 1 ...
## $ lassitude_d6 : Factor w/ 4 levels "0_none","1_mild",..: 3 4 4 4 4 4 4 4 2 1 ...
## $ fit_for_duty_d6 : Factor w/ 2 levels "0_no","1_yes": 1 1 1 1 1 1 1 1 1 2 ...
## # A tibble: 12 × 3
## study_id treatment fit_for_duty_d6
## <chr> <fct> <fct>
## 1 001 cider 0_no
## 2 002 cider 0_no
## 3 003 dilute_sulfuric_acid 0_no
## 4 004 dilute_sulfuric_acid 0_no
## 5 005 vinegar 0_no
## 6 006 vinegar 0_no
## 7 007 sea_water 0_no
## 8 008 sea_water 0_no
## 9 009 citrus 0_no
## 10 010 citrus 1_yes
## 11 011 purgative_mixture 0_no
## 12 012 purgative_mixture 0_no
## tibble [12 × 3] (S3: tbl_df/tbl/data.frame)
## $ study_id : chr [1:12] "001" "002" "003" "004" ...
## $ treatment : Factor w/ 6 levels "cider","citrus",..: 1 1 3 3 6 6 5 5 2 2 ...
## $ fit_for_duty_d6: Factor w/ 2 levels "0_no","1_yes": 1 1 1 1 1 1 1 1 1 2 ...
## Rows: 12
## Columns: 3
## $ study_id <chr> "001", "002", "003", "004", "005", "006", "007", "008"…
## $ treatment <fct> cider, cider, dilute_sulfuric_acid, dilute_sulfuric_ac…
## $ fit_for_duty_d6 <fct> 0_no, 0_no, 0_no, 0_no, 0_no, 0_no, 0_no, 0_no, 0_no, …
## study_id treatment fit_for_duty_d6
## Length:12 cider :2 0_no :11
## Class :character citrus :2 1_yes: 1
## Mode :character dilute_sulfuric_acid:2
## purgative_mixture :2
## sea_water :2
## vinegar :2
## # A tibble: 12 × 3
## study_id treatment fit_for_duty_d6
## <chr> <fct> <fct>
## 1 001 cider 0_no
## 2 002 cider 0_no
## 3 003 dilute_sulfuric_acid 0_no
## 4 004 dilute_sulfuric_acid 0_no
## 5 005 vinegar 0_no
## 6 006 vinegar 0_no
## 7 007 sea_water 0_no
## 8 008 sea_water 0_no
## 9 009 citrus 0_no
## 10 010 citrus 1_yes
## 11 011 purgative_mixture 0_no
## 12 012 purgative_mixture 0_no
Lind observó que los pacientes que consumieron naranja y limón mostraron una notable mejoría, uno de los dos pacientes sometidos a este tratamiento, incluso ya estaba en condiciones para el servicio al cabo de una semana. Lind, se dio cuenta de que la gente que consumía cítricos se curaba rápidamente del escorbuto y, que la gente cuya dieta era escasa o nula en frutas y verduras era quien padecía de forma más severa y prolongada esta enfermedad.