Źródło danych
Niniejsze badanie stanowi analizę retrospektywną opartą na bazie danych Medical Information Mart for Intensive Care IV (MIMIC-IV, wersja 3.1), która jest publicznie dostępną bazą danych dotyczącą intensywnej terapii, hostowaną w serwisie PhysioNet (https://physionet.org/content/mimiciv/3.1/). Baza danych została opracowana w ramach współpracy pomiędzy Massachusetts Institute of Technology Laboratory for Computational Physiology, Beth Israel Deaconess Medical Center a firmą Philips i zawiera kompleksowe zanonimizowane dane kliniczne, w tym informacje demograficzne, parametry życiowe, wyniki badań laboratoryjnych oraz rejestry leków.
Wszystkie dane pacjentów w bazie MIMIC-IV zostały w pełni zanonimizowane zgodnie z ustawą Health Insurance Portability and Accountability Act (HIPAA), w związku z czym badanie to nie wymagało zatwierdzenia przez instytucjonalną komisję etyczną (IRB). Korzystanie z bazy danych reguluje umowa o wykorzystaniu danych (DUA), a dostęp jest przyznawany wyłącznie uprawnionym użytkownikom, którzy przeszli wymagane szkolenie i uzyskali certyfikację. Autorzy ukończyli niezbędne szkolenia, uzyskali dane uwierzytelniające (użytkownik z poświadczeniem PhysioNet) i przeprowadzili badanie zgodnie ze wszystkimi odpowiednimi przepisami dotyczącymi wykorzystania danych.
Populacja badania i ekstrakcja danych
Dorośli pacjenci (≥18 lat), u których przeprowadzono neurochirurgiczne zabiegi kręgosłupa, zostali zidentyfikowani w bazie danych MIMIC-IV przy użyciu kodów ICD związanych z procedurami. Neurochirurgiczne zabiegi kręgosłupa zdefiniowano jako kody ICD-9 rozpoczynające się od 03 (operacje rdzenia kręgowego i kanału kręgowego) oraz kody ICD-10 rozpoczynające się od 00B, 00H, 00J, 00N, 00P, 00Q, 00R, 00S, 00T lub 00U (procedury związane z rdzeniem kręgowym). W przypadku pacjentów z wieloma hospitalizacjami, w celu uniknięcia wielokrotnych pomiarów u tej samej osoby, zachowano jedynie pierwszą hospitalizację obejmującą kwalifikujący się zabieg.
Zmienna wynikowa, osteoporoza, została zdefiniowana na podstawie kodów ICD-9 zaczynających się od 733 oraz kodów ICD-10 zaczynających się od M80, M81 lub M82, odnotowanych podczas pobytu indeksowego. Ponieważ zarówno predyktory, jak i wynik pochodziły z tej samej hospitalizacji, zadanie analityczne w niniejszym badaniu sformułowano jako klasyfikację wewnątrzszpitalną, a nie prospektywną predykcję ryzyka.
Łącznie 10 803 pacjentów spełniło kryteria włączenia. Po stratyfikowanym podziale zbiór danych podzielono na zestaw treningowy (n = 7 561), zestaw walidacyjny (n = 1 621) oraz zestaw testowy (n = 1 621). Rozkład klas we wszystkich partycjach był silnie niezrównoważony. W zestawie treningowym 499 pacjentów (6,60%) miało potwierdzoną osteoporozę, a 7 062 (93,40%) nie miało tej choroby. W zestawie walidacyjnym 107 pacjentów (6,60%) było pozytywnych, a 1 514 (93,40%) negatywnych. Zestaw testowy wykazał taki sam rozkład, z 107 przypadkami pozytywnymi (6,60%) i 1 514 negatywnymi (93,40%).
Dane kliniczne zostały wyodrębnione z bazy MIMIC-IV przy użyciu oprogramowania do zarządzania relacyjnymi bazami danych. Wyodrębnione zmienne obejmowały charakterystykę demograficzną (np. wiek i płeć), pomiary laboratoryjne, parametry życiowe oraz dokumentację lekową. W przypadku każdego pacjenta do późniejszej konstrukcji cech wykorzystano dane z indeksowej hospitalizacji.
Aby zapewnić poprawną ewaluację modelu, zbiór danych podzielono najpierw na zbiory treningowy, walidacyjny i testowy, stosując próbkowanie warstwowe (70%, 15% i 15%)3,7. Wszystkie kolejne kroki preprocessingu, które mogłyby wprowadzić błąd systematyczny, w tym selekcja cech i ponowne próbkowanie, były wykonywane wyłącznie w obrębie zbioru treningowego. Nierównowagę klas w zbiorze treningowym rozwiązano poprzez połączenie undersamplingu klasy większościowej oraz techniki SMOTE (Synthetic Minority Over-sampling Technique), podczas gdy zbiory walidacyjny i testowy zachowały pierwotny rozkład klas, aby odzwierciedlić rzeczywistą częstotliwość występowania.
Inżynieria cech
W celu zwiększenia wydajności modelu przy zachowaniu interpretowalności wdrożono wieloetapowy proces inżynierii cech. Dla każdego pacjenta dane dotyczące leków, wyników badań laboratoryjnych oraz parametrów życiowych z przyjęcia indeksowego zostały zagregowane w cechy na poziomie podsumowującym (np. wartości średnie dla pomiarów powtarzanych oraz średnia ekspozycja w przypadku leków).
Aby zmniejszyć rzadkość cech, wykluczono grupy cech kandydackich z więcej niż 30% brakujących wartości. Aby uniknąć wycieku danych, ten etap filtrowania przeprowadzono wyłącznie z wykorzystaniem zbioru treningowego, a następnie ten sam zestaw cech zastosowano do zbiorów walidacyjnego i testowego.
Następnie przeprowadzono jednowymiarową selekcję cech na poziomie grup cech, wykorzystując test U Manna–Whitneya do porównania rozkładów pomiędzy pacjentami z dodatnim i ujemnym wynikiem w kierunku osteoporozy. Grupy cech uszeregowano według istotności statystycznej, a wybrano k najlepszych grup (k = 20) do dalszego modelowania. Procedura wyboru ta została przeprowadzona wyłącznie na zbiorze treningowym, aby zapobiec wyciekowi informacji.
Biorąc pod uwagę stosunkowo wysoki stopień braków danych w grupach cech kandydujących, główną rolą tego etapu selekcji top-k było odfiltrowanie cech o słabych sygnałach statystycznych, a nie rygorystyczna optymalizacja wymiarowości cech. W praktyce wydajność modelu nie była wysoce wrażliwa na dokładną wartość k w rozsądnym zakresie, co sugeruje, że etap ten służył głównie jako procedura przesiewowa zorientowana na odporność, aby wykluczyć cechy o niskiej wartości informacyjnej przy jednoczesnym zachowaniu istotnych klinicznie sygnałów.
W wszystkich modelach zachowano podstawowe cechy demograficzne. Brakujące wartości w tych zmiennych demograficznych uzupełniono za pomocą wartości średniej obliczonej ze zbioru treningowego. Imputacja średnią została wybrana ze względu na prostotę i stabilność w tym dużym zbiorze danych, choć może ona zmniejszyć wariancję i wprowadzić błąd systematyczny; ograniczenie to zostało odnotowane.
W przypadku wybranych cech dotyczących leków, wyników laboratoryjnych oraz parametrów życiowych, brak zapisanego pomiaru lub ekspozycji zakodowano jako zero, aby zapewnić spójne dane liczbowe do trenowania modelu. Przyznajemy, że podejście to może prowadzić do utożsamienia rzeczywistych wartości zerowych z brakami danych lub brakiem ekspozycji, szczególnie w przypadku zmiennych, dla których zero nie ma fizjologicznego znaczenia. Strategia kodowania ta była jednak stosowana spójnie we wszystkich próbkach, a następnie przeprowadzono standaryzację Z-score, co niweluje zniekształcenia związane ze skalą. Potencjalny wpływ tego założenia został omówiony w sekcji ograniczeń.
Wszystkie cechy numeryczne zostały zestandaryzowane przy użyciu normalizacji Z-score na podstawie średniej i odchylenia standardowego obliczonych dla zbioru treningowego:
z = (x — µ)/σ
Gdzie x reprezentuje surową wartość cechy, a µ i σ oznaczają średnią oraz odchylenie standardowe obliczone na podstawie zbioru treningowego. Zmienne kategoryczne zostały zakodowane numerycznie, aby spełnić wymagania wejściowe modeli głębokiego uczenia.
Ta strategia inżynierii cech umożliwiła systematyczną redukcję wymiarowości przy jednoczesnym zachowaniu klinicznie istotnych domen, w tym danych demograficznych, funkcji nerek, wskaźników hematologicznych, markerów stanu zapalnego oraz parametrów metabolicznych. Szczegółowa charakterystyka wyjściowa populacji badanej w zestawach treningowym, walidacyjnym i testowym została przedstawiona w Tabeli 1.
| Cechy | Suma | Zbiór treningowy | Zbiór walidacyjny | Zbiór testowy | Wartość p |
| (n=5238) | (n=1996) | (n=1621) | (n=1621) |
| Płeć | | <0.001 |
| Mężczyzna | 2477 (47.29%) | 834 (41.78%) | 797 (49.17%) | 846 (52.19%) | |
| Kobieta | 2761 (52.71%) | 1162 (58.22%) | 824 (50.83%) | 775 (47.81%) | |
| Wiek | 60.69 (48.29, 70.61) | 63.45 (52.00, 72.41) | 58.00 (46.00, 69.00) | 60.00 (46.00, 70.00) | <0.001 |
| Wzrost | 165.23 (160.79, 171.21) | 164.25(161.41, 172.23) | 166.32 (161.85, 171.22) | 165.22 (161.31, 169.89) | <0.001 |
| Masa ciała | 72.01 (56.77, 82.46) | 75.45 (63.22, 81.45) | 70.55 (60.22, 79.33) | 73.62 (65.22, 81.88) | <0.001 |
| Senna | 1.00 (-0.73, 8.60) | 1.00 (-0.30, 8.60) | 1.00 (-1.00, 8.60) | 1.00 (-1.00, 8.60) | <0.001 |
| Dokuzylan sodu | 100.00 (100.00, 100.00) | 100.00 (100.00, 100.00) | 100.00 (100.00, 100.00) | 100.00 (100.00, 100.00) | 0.001 |
| Heparyna | 5000.00 (1655.28, 5000.00) | 5000.00 (-1.00, 5000.00) | 5000.00 (1600.00, 5000.00) | 5000.00 (3750.00, 5000.00) | 0.292 |
| Przepłukanie 0.9% chlorkiem sodu | 3.00 (1.76, 3.00) | 3.00 (3.00, 3.00) | 3.00 (-1.00, 3.00) | 3.00 (3.00, 3.00) | <0.001 |
| Erytrocyty | 3.96 (3.51, 4.35) | 3.90 (3.49, 4.28) | 4.02 (3.53, 4.40) | 3.97 (3.50, 4.38) | <0.001 |
| Hemoglobina | 11.81 (10.51, 13.02) | 11.66 (10.47, 12.82) | 11.91 (10.58, 13.14) | 11.90 (10.49, 13.15) | <0.001 |
| RDW | 13.98 (13.22, 15.15) | 14.12 (13.35, 15.24) | 13.90 (13.10, 15.06) | 13.90 (13.18, 15.13) | <0.001 |
| Hematokryt | 35.67 (31.95, 39.00) | 35.32 (31.63, 38.50) | 36.00 (32.28, 39.37) | 35.77 (32.01, 39.25) | <0.001 |
| Gęstość właściwa | 1.01 (1.01, 1.02) | 1.01 (1.01, 1.02) | 1.01 (1.01, 1.02) | 1.01 (1.01, 1.02) | <0.001 |
| Wodorowęglany | 25.72 (24.04, 27.15) | 25.86 (24.17, 27.27) | 25.65 (23.92, 27.03) | 25.62 (24.00, 27.12) | <0.001 |
| Neutrofile | 68.67 (60.52, 76.23) | 69.41 (61.90, 76.52) | 68.10 (59.60, 75.88) | 68.34 (59.75, 76.23) | <0.001 |
| Kreatynina | 0.82 (0.68, 1.02) | 0.81 (0.68, 1.00) | 0.83 (0.69, 1.02) | 0.83 (0.68, 1.03) | <0.001 |
| Fosforany | 3.29 (2.92, 3.64) | 3.27 (2.93, 3.57) | 3.30 (2.93, 3.69) | 3.30 (2.90, 3.65) | 0.002 |
| Azot mocznika | 15.43 (12.08, 20.18) | 15.74 (12.50, 20.20) | 15.00 (11.64, 19.89) | 15.48 (12.00, 20.43) | <0.001 |
| Limfocyty | 19.12 (12.22, 26.15) | 18.81 (12.49, 25.30) | 19.36 (12.40, 27.07) | 19.24 (11.72, 26.27) | 0.001 |
| Aminotransferaza alaninowa (ALT) | 20.49 (10.84, 32.82) | 20.47 (11.67, 32.06) | 20.00 (10.00, 32.93) | 21.00 (10.67, 33.67) | 0.3283 |
| MCV | 90.90 (87.50, 94.32) | 91.03 (87.64, 94.51) | 90.64 (87.43, 94.00) | 91.00 (87.40, 94.40) | <0.001 |
| MCHC | 33.14 (32.37, 33.92) | 33.11 (32.37, 33.88) | 33.16 (32.38, 33.97) | 33.16 (32.35, 33.93) | <0.001 |
| Bazofile | 0.42 (0.27, 0.61) | 0.41 (0.27, 0.59) | 0.45 (0.29, 0.63) | 0.41 (0.26, 0.60) | 0.037 |
Tabela 1. Charakterystyka wyjściowa populacji badawczej z podziałem na zbiory treningowy, walidacyjny i testowy.
Architektura modelu
Aby zamodelować złożone zależności między heterogenicznymi tabelarycznymi cechami klinicznymi, zastosowano architekturę opartą na TabTransformer, zaimplementowaną przy użyciu frameworka PyTorch6. Model został zaprojektowany w celu przetwarzania zmiennych kategorycznych i numerycznych oraz przechwytywania kontekstowych interakcji między cechami za pomocą mechanizmu self-attention.
Reprezentacja danych wejściowych
Zmienne kategoryczne zostały najpierw przekształcone w gęste osadzenia (embeddings). Każda cecha kategoryczna została zmapowana na wektor osadzenia o wymiarze d(embedding_dim = 256). Cechy numeryczne zestandaryzowano za pomocą normalizacji Z-score, a następnie rzutowano na tę samą przestrzeń osadzeń poprzez liniową warstwę transformacji, co umożliwiło wspólne przetwarzanie z cechami kategorycznymi.
Osadzone wektory cech zostały sprzężone w celu utworzenia sekwencji tokenów:
X = [x1,x2,…xn]
gdzie każdy xi ∈ Rd reprezentuje osadzoną cechę.
Koder Transformera
Złączone osadzenia cech (feature embeddings) zostały przekazane przez stos warstw kodera Transformera (num_layers = 3). Każda warstwa składała się z wielogłownego mechanizmu samoatencji (multi-head self-attention), po którym następowała pozycyjna sieć przejścia w przód (position-wise feed-forward network).
Mechanizm wielogłowicowej uwagi własnej (multi-head self-attention) definiuje się jako:
—> Attention(Q,K,V) = softmax
V
gdzie Q, K i V oznaczają macierze zapytań (query), kluczy (key) i wartości (value). Aby uchwycić zróżnicowane interakcje cech, zastosowano wiele głów uwagi (num_heads = 8).
Każdy blok transformera obejmował wielogłowicową mechanizm uwagi (multi-head self-attention), połączenie rezydualne i normalizację warstwową, sieć typu feed-forward oraz dropout (rate = 0.243).
Agregacja i klasyfikacja cech
Wynik końcowej warstwy Transformera został spłaszczony i przekazany do wielowarstwowego perceptrona (MLP) w celu klasyfikacji. MLP składał się z jednej lub więcej warstw w pełni połączonych z nieliniowymi funkcjami aktywacji.
W końcowej warstwie wyjściowej zastosowano funkcję aktywacji sigmoid, aby uzyskać przewidywane prawdopodobieństwo wystąpienia osteoporozy:
—>
= σ(z)
Gdzie z jest wynikiem logitowym.
Funkcja straty i strategia trenowania
Model został wytrenowany z wykorzystaniem funkcji straty binarnej entropii krzyżowej:
—> L = −(1/N) Σ [ yi log(ŷi) + (1 − yi) log(1 − ŷi) ]
Gdzie yi oznacza etykietę rzeczywistą, a
i prawdopodobieństwo przewidywane.
Model zoptymalizowano za pomocą optymalizatora Adam (learning rate = 1.9e-4, batch size = 64) przez 100 epok. Aby zapobiec przeuczeniu, zastosowano mechanizm wczesnego zatrzymywania (early stopping) w oparciu o wyniki walidacji (patience = 15). W celu zapewnienia powtarzalności wszystkie procedury eksperymentalne przeprowadzono z użyciem stałego ziarna losowości (seed = 42).
Interpretowalność modelu
W celu zwiększenia interpretowalności do wytrenowanego modelu zastosowano metodę SHapley Additive exPlanations (SHAP). Wartości SHAP obliczono dla zbioru testowego, aby określić wpływ każdej cechy na przewidywany wynik, co umożliwiło interpretację zachowania modelu zarówno na poziomie globalnym, jak i indywidualnym.
Jak pokazano na Rysunku 1, schemat pracy podsumowuje proces od wstępnego przetwarzania danych MIMIC-IV, przez konstrukcję modelu, aż po klasyfikację. Architektura TabTransformer wychwytuje interakcje pomiędzy heterogenicznymi cechami tabelarycznymi za pomocą mechanizmu self-attention, natomiast wizualizacja oparta na SHAP dostarcza interpretowalnych informacji o wkładzie poszczególnych cech. Ramy te umożliwiają wewnętrznie zwalidowaną analizę wzorców związanych z osteoporozą w heterogenicznej kohorcie neurochirurgicznej kręgosłupa.

Rycina 1. Przebieg badania i architektura modelu. Ta rycina przedstawia ogólny plan badania, w tym wybór kohorty, wstępne przetwarzanie danych, inżynierię cech, podział zbioru danych oraz opracowanie modelu. Przedstawia również architekturę TabTransformer wykorzystaną do klasyfikacji, w tym osadzanie cech (feature embedding), warstwy kodera Transformer oraz końcowy wynik klasyfikacji. Uwzględniono tylko pierwszą kwalifikującą się hospitalizację dla każdego pacjenta. Kliknij tutaj, aby wyświetlić powiększoną wersję tej ryciny.