Gegevensbron
Deze studie was een retrospectieve analyse gebaseerd op de Medical Information Mart for Intensive Care IV (Mimic-iv, versie 3.1) database, een openbaar beschikbare intensive care-database die wordt gehost op PhysioNet (https://physionet.org/content/mimiciv/3.1/). De database is ontwikkeld in samenwerking tussen het Massachusetts Institute of Technology Laboratory for Computational Physiology, Beth Israel Deaconess Medical Center en Philips, en bevat uitgebreide gedeïdentificeerde klinische gegevens, waaronder demografische informatie, vitale functies, laboratoriummetingen en medicatiegegevens.
Alle patiëntgegevens in MIMIC-IV zijn volledig gede-identificeerd in overeenstemming met de Health Insurance Portability and Accountability Act (HIPAA), en daarom vereiste deze studie geen goedkeuring van de institutionele beoordelingscommissie (IRB). Het gebruik van de database wordt geregeld door een gegevensgebruiksovereenkomst (DUA), en toegang wordt alleen verleend aan geautoriseerde gebruikers die de vereiste training en certificering hebben afgerond. De auteurs voltooiden de benodigde training, verkregen toegangsgegevens (PhysioNet-geaccrediteerde gebruiker) en voerden deze studie uit in overeenstemming met alle relevante regelgeving voor gegevensgebruik.
Populatie en gegevensextractie bestuderen
Volwassen patiënten (≥18 jaar) die een wervelkolomneurochirurgische ingreep ondergingen, werden geïdentificeerd uit de MIMIC-IV-database met behulp van procedure-gerelateerde ICD-codes. Wervelkolomneurochirurgische ingrepen werden gedefinieerd als ICD-9-codes beginnend met 03 (operaties aan het ruggenmerg en het ruggenmergkanaal) en ICD-10-codes beginnend met 00B, 00H, 00J, 00N, 00P, 00Q, 00R, 00S, 00T of 00U (ruggenmerggerelateerde procedures). Voor patiënten met meerdere ziekenhuisopnames werd alleen de eerste opname met een kwalificerende procedure behouden om herhaalde metingen van dezelfde persoon te voorkomen.
De uitkomstvariabele, osteoporose, werd gedefinieerd op basis van ICD-9-codes beginnend met 733 en ICD-10-codes beginnend met M80, M81 of M82 die tijdens de indexopname werden geregistreerd. Omdat zowel voorspellers als uitkomsten uit dezelfde ziekenhuisopname werden afgeleid, werd de analytische taak in deze studie gepresenteerd als classificatie binnen het ziekenhuis in plaats van prospectieve risicovoorspelling.
In totaal voldeden 10.803 patiënten aan de inclusiecriteria. Na gestratificeerde splitsing werd de dataset verdeeld in een trainingsset (n = 7.561), een validatieset (n = 1.621) en een testset (n = 1.621). De klassenverdeling was sterk onevenwichtig over alle partities. In de trainingsreeks waren 499 patiënten (6,60%) osteoporose-positief en 7.062 (93,40%) osteoporose-negatief. In de validatieset waren 107 patiënten (6,60%) positief en 1.514 (93,40%) negatief. De testset liet dezelfde verdeling zien, met 107 positieve (6,60%) en 1.514 negatieve (93,40%) gevallen.
Klinische gegevens werden geëxtraheerd met behulp van relationele databasebeheersoftware van MIMIC-IV. Extractieve variabelen omvatten demografische kenmerken (bijv. leeftijd en geslacht), laboratoriummetingen, vitale functies en medicatiegegevens. Voor elke patiënt werden gegevens van de indexopname gebruikt voor de daaropvolgende structuur van de kenmerken.
Om een valide modelevaluatie te waarborgen, werd de dataset eerst opgesplitst in trainings-, validatie- en testsets met behulp van gestratificeerde steekproeven (70%, 15% en 15%). Alle daaropvolgende preprocessing-stappen die bias konden introduceren, inclusief featureselectie en resampling, werden exclusief binnen de trainingsset uitgevoerd. Klasse-onevenwicht in de trainingsset werd aangepakt met een combinatie van downsampling van de meerderheidsklasse en de Synthetic Minority Over-sampling Technique (SMOTE), terwijl de validatie- en testsets de oorspronkelijke klassenverdeling behielden om de werkelijke prevalentie te weerspiegelen.
Feature-engineering
Er werd een meerfasige feature engineering-pijplijn geïmplementeerd om de modelprestaties te verbeteren terwijl de interpreteerbaarheid behouden bleef. Voor elke patiënt werden medicatie-, laboratorium- en vitale tekengegevens van de indexopname samengevoegd tot samenvattingskenmerken (bijv. gemiddelde waarden voor herhaalde metingen en gemiddelde blootstelling aan medicatie).
Om de structuurspuilzaamheid te verminderen, werden kandidaat-featuregroepen met meer dan 30% ontbrekende waarden uitgesloten. Om datalekkage te voorkomen werd deze filterstap uitsluitend uitgevoerd met behulp van de trainingsset, waarna dezelfde functieset werd toegepast op de validatie- en testsets.
Vervolgens werd univariate feature screening uitgevoerd op featuregroepniveau met behulp van de Mann–Whitney U-test om de verdelingen tussen osteoporose-positieve en osteoporose-negatieve patiënten te vergelijken. Featuregroepen werden gerangschikt op statistische significantie, en de top-k groepen (k = 20) werden behouden voor downstream modellering. Deze selectieprocedure werd ook exclusief binnen de trainingsset uitgevoerd om informatielekken te voorkomen.
Gezien de relatief hoge mate van ontbreken tussen kandidaten-featuregroepen, was de primaire rol van deze top-k selectiestap het filteren van features met zwakke statistische signalen in plaats van de featuredimensionaliteit strikt te optimaliseren. In de praktijk was de modelprestatie niet zeer gevoelig voor de exacte waarde van k binnen een redelijk bereik, wat suggereert dat deze stap vooral diende als een robuustheidsgerichte screeningsprocedure om laag-informatieve kenmerken uit te sluiten terwijl klinisch relevante signalen behouden bleven.
Basisdemografische kenmerken werden in alle modellen behouden. Ontbrekende waarden in deze demografische variabelen werden berekend met behulp van de gemiddelde waarde berekend uit de trainingsset. Gemiddelde imputatie werd gekozen vanwege de eenvoud en stabiliteit in deze grote dataset, hoewel het variatie kan verminderen en bias kan introduceren; Deze beperking wordt erkend.
Voor geselecteerde medicatie-, laboratorium- en vitale functies werd het ontbreken van een geregistreerde meting of blootstelling als nul gecodeerd om consistente numerieke invoer voor modeltraining mogelijk te maken. We erkennen dat deze benadering echte nulwaarden kan verwarren met ontbreken of niet-blootstelling, vooral voor variabelen waar nul fysiologisch niet betekenisvol is. Deze coderingsstrategie werd echter consistent toegepast in alle steekproeven en gevolgd door standaardisatie van de Z-score, die schaalgerelateerde vervorming vermindert. De mogelijke impact van deze aanname wordt besproken als een beperking.
Alle numerieke kenmerken werden gestandaardiseerd met Z-score normalisatie op basis van het gemiddelde en de standaardafwijking die uit de trainingsset wordt geschat:
z = (x — μ)/σ
Waarbij x de ruwe featurewaarde vertegenwoordigt, en μ en σ het gemiddelde en de standaarddeviatie aangeven die uit de trainingsset zijn berekend. Categorische variabelen werden numeriek gecodeerd om te voldoen aan de invoervereisten van de deep learning-modellen.
Deze feature engineering-strategie maakte systematische reductie van dimensionaliteit mogelijk, terwijl klinisch relevante domeinen behouden bleven, waaronder demografie, nierfunctie, hematologische indices, ontstekingsmarkers en metabole parameters. Gedetailleerde basislijnkenmerken van de studiepopulatie over de trainings-, validatie- en testsets worden weergegeven in Tabel 1.
| Kenmerken | Totaal | Trainingsset | Validatieset | Testset | P-waarde |
| (n=5238) | (n=1996) | (n=1621) | (n=1621) |
| Geslacht | | <0,001 |
| Mannelijk | 2477 (47.29%) | 834 (41.78%) | 797 (49.17%) | 846 (52.19%) | |
| Vrouwelijk | 2761 (52.71%) | 1162 (58.22%) | 824 (50.83%) | 775 (47.81%) | |
| Leeftijd | 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 |
| Hoogte | 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 |
| Gewicht | 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 |
| Docusaatnatrium | 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 |
| Heparine | 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 |
| Natriumchloride 0,9% spoeling | 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 |
| Rode bloedcellen | 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 |
| Hemoglobine | 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 |
| Hematocriet | 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 |
| Soortelijk gewicht | 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 |
| Bicarbonaat | 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 |
| Neutrofielen | 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 |
| Creatinine | 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 |
| Fosfaat | 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 |
| Ureumstikstof | 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 |
| Lymfocyten | 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 |
| Alanine-aminotransferase (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 |
| Basofielen | 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 |
Tabel 1. Basislijnkenmerken van de studiepopulatie gestratificeerd op basis van training, validatie en testsets.
Modelarchitectuur
Om complexe relaties tussen heterogene tabelvormige klinische kenmerken te modelleren, gebruikten we een op TabTransformer gebaseerde architectuur die is geïmplementeerd met het PyTorch-framework6. Het model is ontworpen om zowel categorische als numerieke variabelen te verwerken en contextuele interacties tussen kenmerken vast te leggen via een zelf-aandachtmechanisme.
Invoerrepresentatie
Categorische variabelen werden eerst omgezet in dichte inbeddingen. Elke categorische eigenschap werd afgebeeld op een inbeddingsvector van dimensie d(embedding_dim = 256). Numerieke kenmerken werden gestandaardiseerd met Z-score normalisatie en vervolgens geprojecteerd in dezelfde embeddingruimte via een lineaire transformatielaag, waardoor gezamenlijke verwerking met categorische kenmerken mogelijk werd.
De ingebedde featurevectoren werden samengevoegd om een reeks tokens te vormen:
X = [x1,x 2,... xn]
waarbij elke xi ∈ Rd een ingebedde eigenschap vertegenwoordigt.
Transformatorencoder
De gekoppelde feature-embeddings werden door een stapel van transformatorencoderlagen geleid (num_layers = 3). Elke laag bestond uit multi-head self-attention gevolgd door een positiegewijze feed-forward netwerk.
Het multi-head zelf-aandacht mechanisme wordt gedefinieerd als:
—> Attention(Q,K,V) = softmax
V
Waar Q, K en V query-, key- en value-matrices aanduiden. Meerdere aandachtskoppen (num_heads = 8) werden gebruikt om diverse interacties tussen kenmerken vast te leggen.
Elk transformatorblok bevatte multi-head self-attention, residuele verbinding en laagnormalisatie, feed-forward netwerk, dropout (snelheid = 0,243).
Feature-aggregatie en classificatie
De uitgang van de laatste Transformer-laag werd afgevlakt en door een multilayer perceptron (MLP) geleid voor classificatie. De MLP bestond uit één of meer volledig verbonden lagen met niet-lineaire activatiefuncties.
De uiteindelijke outputlaag gebruikte een sigmoïde activatiefunctie om de voorspelde kans op osteoporose te produceren:
—>
= σ(z)
Waar z de logit-output is.
Verliesfunctie en trainingsstrategie
Het model werd getraind met behulp van binair kruis-entropieverlies:
—> L = −(1/N) Σ [ yi log(ŷi) + (1 − yi) log(1 − ŷi) ]
Waarbij yi het ware label aanduidt en
i de voorspelde waarschijnlijkheid.
Het model werd geoptimaliseerd met de Adam-optimizer (leersnelheid = 1,9e-4, batchgrootte = 64) gedurende 100 epochs. Vroegtijdig stoppen werd toegepast op basis van validatieprestaties (geduld = 15) om overfitting te voorkomen. Om reproduceerbaarheid te ondersteunen, werden alle experimentele procedures uitgevoerd met een constant willekeurig zaad (zaad = 42).
Modelinterpreteerbaarheid
Om de interpreteerbaarheid te verbeteren, werden SHapley Additive explanations (SHAP) toegepast op het getrainde model. SHAP-waarden werden berekend op de testset om de bijdrage van elk kenmerk aan het voorspelde resultaat te kwantificeren, waardoor zowel globale als individuele interpretatie van modelgedrag mogelijk werd.
Zoals geïllustreerd in Figuur 1, vat de workflow het proces samen van MIMIC-IV datapreprocessing tot modelconstructie en classificatie. De TabTransformer-architectuur legt interacties vast tussen heterogene tabelkenmerken via zelfaandacht, terwijl SHAP-gebaseerde visualisatie interpreteerbare inzichten biedt in bijdragen aan kenmerken. Dit kader maakt een intern gevalideerde analyse van osteoporose-gerelateerde patronen mogelijk in een heterogene spinale neurochirurgische cohort.

Figuur 1. Bestudeer workflow en modelarchitectuur. Deze figuur illustreert het algemene studieontwerp, inclusief cohortselectie, data-preprocessing, feature engineering, dataset-splitsing en modelontwikkeling. Het vat ook de TabTransformer-architectuur samen die wordt gebruikt voor classificatie, inclusief feature embedding, Transformer-encoderlagen en uiteindelijke classificatie-output. Alleen de eerste kwalificerende opname per patiënt werd meegenomen. Klik hier om een grotere versie van deze figuur te bekijken.