Analiza krzywych ROC — zastosowanie, interpretacja i komendy SPSS
Analiza krzywych ROC jest metodą statystyczną wykorzystywaną do oceny jakości testu diagnostycznego, skali, modelu predykcyjnego albo zmiennej, która ma rozróżniać dwie grupy. Najczęściej stosuje się ją w medycynie, farmacji, naukach o zdrowiu, biotechnologii, psychologii, epidemiologii, rolnictwie oraz w badaniach, w których ważna jest ocena zdolności klasyfikacyjnej danego wskaźnika.
Krzywa ROC pozwala sprawdzić, jak dobrze dana zmienna odróżnia osoby chore od zdrowych, pacjentów z powikłaniami od pacjentów bez powikłań, osoby z wysokim ryzykiem od osób z niskim ryzykiem albo próbki pozytywne od negatywnych. W praktyce analiza ROC jest szczególnie przydatna wtedy, gdy chcemy określić punkt odcięcia, czyli wartość graniczną, przy której test najlepiej rozdziela analizowane grupy.
Co to jest krzywa ROC?
Krzywa ROC, czyli Receiver Operating Characteristic curve, przedstawia zależność między czułością a wartością 1 − swoistość dla różnych punktów odcięcia analizowanej zmiennej.
W uproszczeniu krzywa ROC pokazuje, jak zmienia się skuteczność klasyfikacji w zależności od tego, gdzie ustawimy próg decyzyjny.
Przykład: jeśli analizujemy stężenie markera laboratoryjnego, możemy sprawdzić, przy jakiej wartości tego markera najlepiej odróżnić osoby chore od zdrowych. Dla każdego możliwego progu obliczana jest czułość i swoistość, a następnie tworzona jest krzywa ROC.
Kiedy stosuje się analizę ROC?
Analiza krzywej ROC może być stosowana, gdy w badaniu występuje:
- zmienna wynikowa dychotomiczna, np. chory/zdrowy, tak/nie, obecność/brak powikłań;
- zmienna testowa ilościowa lub porządkowa, np. wynik skali, poziom biomarkera, liczba punktów, wiek, wynik pomiaru;
- potrzeba oceny jakości klasyfikacji;
- potrzeba wyboru najlepszego punktu odcięcia;
- potrzeba porównania kilku testów diagnostycznych, skal lub wskaźników.
Najczęstsze zastosowania analizy ROC to:
- ocena testu diagnostycznego;
- analiza biomarkerów;
- dobór punktu odcięcia w skali klinicznej;
- ocena modelu predykcyjnego;
- porównanie skuteczności kilku metod diagnostycznych;
- analiza ryzyka powikłań;
- ocena jakości klasyfikatora;
- analiza wyników badań medycznych, farmaceutycznych i biologicznych.
Podstawowe pojęcia w analizie ROC
Aby poprawnie zinterpretować krzywą ROC, trzeba znać kilka podstawowych pojęć: wynik prawdziwie dodatni, wynik fałszywie dodatni, wynik prawdziwie ujemny i wynik fałszywie ujemny.
| Pojęcie | Skrót | Znaczenie |
|---|---|---|
| True Positive | TP | wynik prawdziwie dodatni |
| False Positive | FP | wynik fałszywie dodatni |
| True Negative | TN | wynik prawdziwie ujemny |
| False Negative | FN | wynik fałszywie ujemny |
Przykład medyczny:
- TP — osoba chora została poprawnie zaklasyfikowana jako chora;
- FP — osoba zdrowa została błędnie zaklasyfikowana jako chora;
- TN — osoba zdrowa została poprawnie zaklasyfikowana jako zdrowa;
- FN — osoba chora została błędnie zaklasyfikowana jako zdrowa.
Czułość w analizie ROC
Czułość informuje, jaki odsetek osób rzeczywiście dodatnich został prawidłowo rozpoznany przez test.
Inaczej mówiąc, czułość odpowiada na pytanie:
Jaki odsetek osób chorych test wykrywa poprawnie?
Wysoka czułość jest szczególnie ważna wtedy, gdy zależy nam na tym, aby nie przeoczyć osób rzeczywiście chorych lub zagrożonych. Przykładem mogą być badania przesiewowe, w których fałszywie ujemny wynik może mieć poważne konsekwencje.
Swoistość w analizie ROC
Swoistość informuje, jaki odsetek osób rzeczywiście ujemnych został prawidłowo rozpoznany jako ujemny.
Inaczej mówiąc, swoistość odpowiada na pytanie:
Jaki odsetek osób zdrowych test poprawnie rozpoznaje jako zdrowe?
Wysoka swoistość jest szczególnie ważna wtedy, gdy chcemy ograniczyć liczbę wyników fałszywie dodatnich. Ma to znaczenie na przykład wtedy, gdy dodatni wynik testu prowadzi do kosztownej, obciążającej lub stresującej procedury diagnostycznej.
Co oznacza 1 − swoistość?
Na osi X krzywej ROC znajduje się zwykle wartość 1 − swoistość, czyli odsetek wyników fałszywie dodatnich.
Im mniejsza wartość 1 − swoistość, tym mniej wyników fałszywie dodatnich. Dobra krzywa ROC przebiega blisko lewego górnego rogu wykresu, ponieważ oznacza to jednocześnie wysoką czułość i niską liczbę wyników fałszywie dodatnich.
Czym jest AUC?
Najważniejszym parametrem w analizie ROC jest AUC, czyli Area Under the Curve — pole pod krzywą ROC.
AUC informuje, jak dobrze analizowana zmienna odróżnia dwie grupy. Można je interpretować jako ogólną miarę zdolności klasyfikacyjnej testu, markera, skali lub modelu.
Interpretacja AUC:
| AUC | Interpretacja |
|---|---|
| 0,50 | brak zdolności klasyfikacyjnej, wynik jak losowy |
| 0,60–0,69 | słaba zdolność klasyfikacyjna |
| 0,70–0,79 | umiarkowana zdolność klasyfikacyjna |
| 0,80–0,89 | dobra zdolność klasyfikacyjna |
| 0,90–1,00 | bardzo dobra lub doskonała zdolność klasyfikacyjna |
Wartość AUC = 0,5 oznacza, że test nie rozróżnia grup lepiej niż przypadek. Wartość AUC = 1,0 oznacza idealną klasyfikację.
W praktyce sama wartość AUC nie zawsze wystarcza. Należy ją interpretować razem z przedziałem ufności, poziomem istotności oraz znaczeniem klinicznym lub praktycznym analizowanego punktu odcięcia.
Przedział ufności AUC
Wynik AUC warto interpretować razem z przedziałem ufności, najczęściej 95%. Przedział ufności pokazuje, z jaką precyzją oszacowano pole pod krzywą ROC.
Jeżeli 95% przedział ufności dla AUC nie obejmuje wartości 0,5, można uznać, że analizowana zmienna ma zdolność rozróżniania grup większą niż losowa klasyfikacja.
Przykład interpretacji:
AUC = 0,84; 95% CI: 0,76–0,92
Taki wynik wskazuje na dobrą zdolność klasyfikacyjną analizowanej zmiennej.
Punkt odcięcia w analizie ROC
Jednym z najważniejszych praktycznych zastosowań analizy ROC jest wyznaczenie optymalnego punktu odcięcia. Punkt odcięcia to wartość zmiennej, przy której klasyfikacja jest najlepsza według przyjętego kryterium.
Przykład: jeżeli analizujemy skalę ryzyka od 0 do 100 punktów, analiza ROC może wskazać, że najlepszym punktem odcięcia jest np. 42 punkty. Oznacza to, że osoby z wynikiem powyżej 42 mogą być klasyfikowane jako grupa podwyższonego ryzyka.
Wybór punktu odcięcia powinien zależeć nie tylko od statystyki, ale także od celu badania. W niektórych sytuacjach ważniejsza jest wysoka czułość, a w innych wysoka swoistość.
Indeks Youdena
Do wyboru optymalnego punktu odcięcia często stosuje się indeks Youdena. Jest to miara, która łączy czułość i swoistość dla danego punktu odcięcia.
Im większa wartość indeksu Youdena, tym lepszy punkt odcięcia. Najczęściej wybiera się punkt, dla którego indeks Youdena osiąga najwyższą wartość.
Przykład:
| Punkt odcięcia | Czułość | 1 − swoistość | Swoistość | Indeks Youdena |
|---|---|---|---|---|
| 35 | 0,91 | 0,40 | 0,60 | 0,51 |
| 42 | 0,84 | 0,20 | 0,80 | 0,64 |
| 50 | 0,72 | 0,12 | 0,88 | 0,60 |
W tym przykładzie najlepszy punkt odcięcia to 42, ponieważ indeks Youdena jest najwyższy.
Trafność klasyfikacji
Oprócz czułości, swoistości i AUC można obliczyć także trafność klasyfikacji. Trafność informuje, jaki odsetek wszystkich przypadków został poprawnie sklasyfikowany.
Warto jednak pamiętać, że trafność może być myląca, zwłaszcza gdy jedna grupa jest znacznie liczniejsza od drugiej. Dlatego w analizie ROC większe znaczenie mają zwykle czułość, swoistość, AUC i punkt odcięcia.
Dodatnia i ujemna wartość predykcyjna
W analizach diagnostycznych można również interpretować dodatnią i ujemną wartość predykcyjną.
Dodatnia wartość predykcyjna, czyli PPV, informuje, jaki odsetek osób z dodatnim wynikiem testu rzeczywiście należy do grupy dodatniej.
Ujemna wartość predykcyjna, czyli NPV, informuje, jaki odsetek osób z ujemnym wynikiem testu rzeczywiście należy do grupy ujemnej.
Wartości PPV i NPV zależą nie tylko od jakości testu, ale także od częstości występowania badanego zjawiska w analizowanej populacji.
Jak przygotować dane do analizy ROC?
Do wykonania analizy ROC potrzebne są przynajmniej dwie zmienne.
Pierwsza to zmienna klasyfikująca, czyli zmienna określająca stan rzeczywisty. Powinna być dychotomiczna, np.:
- 0 = brak choroby;
- 1 = choroba.
Druga to zmienna testowa, czyli zmienna, której zdolność klasyfikacyjną chcemy ocenić. Może to być np.:
- wynik skali;
- poziom markera;
- liczba punktów;
- wiek;
- wynik pomiaru;
- wynik modelu predykcyjnego.
Przykładowa struktura danych:
| ID | choroba | marker |
|---|---|---|
| 1 | 1 | 78 |
| 2 | 0 | 34 |
| 3 | 1 | 91 |
| 4 | 0 | 45 |
| 5 | 1 | 82 |
W tym przykładzie:
chorobato zmienna stanu rzeczywistego;markerto zmienna testowa, dla której chcemy wykonać analizę ROC.
Jak wykonać analizę ROC w SPSS?
Analizę krzywej ROC można wykonać w SPSS z menu lub za pomocą składni syntax.
Analiza ROC w menu SPSS
W SPSS należy wybrać:
Analyze → Classify → ROC Curve
Następnie:
- w polu Test Variable umieścić zmienną testową, np.
marker; - w polu State Variable umieścić zmienną dychotomiczną, np.
choroba; - określić wartość pozytywną, np.
1; - zaznaczyć opcje wykresu, przedziału ufności i punktów odcięcia, jeśli są potrzebne.
Składnia SPSS — podstawowa analiza ROC
Poniższa komenda wykonuje podstawową analizę ROC dla zmiennej marker, gdzie zmienna choroba określa stan rzeczywisty, a wartość pozytywna to 1.
ROC marker BY choroba (1)
/PLOT = CURVE
/PRINT = SE COORDINATES
/CRITERIA = CUTOFF(INCLUDE) TESTPOS(LARGE) DISTRIBUTION(FREE) CI(95)
/MISSING = EXCLUDE.
Wyjaśnienie składni
ROC marker BY choroba (1) wykonuje analizę ROC dla zmiennej testowej marker, przy czym wartość pozytywna zmiennej choroba to 1.
/PLOT = CURVE tworzy wykres krzywej ROC.
/PRINT = SE COORDINATES wyświetla błąd standardowy AUC oraz współrzędne krzywej, czyli punkty odcięcia, czułość i 1 − swoistość.
/CRITERIA = CUTOFF(INCLUDE) uwzględnia wartości odcięcia.
TESTPOS(LARGE) oznacza, że wyższe wartości zmiennej testowej wskazują na większe prawdopodobieństwo wyniku dodatniego.
CI(95) ustawia 95% przedział ufności.
/MISSING = EXCLUDE wyklucza braki danych.
Gdy niższe wartości oznaczają wynik dodatni
Czasami niższe wartości zmiennej testowej oznaczają większe ryzyko lub większe prawdopodobieństwo wystąpienia stanu dodatniego. Wtedy należy zmienić kryterium na TESTPOS(SMALL).
ROC marker BY choroba (1)
/PLOT = CURVE
/PRINT = SE COORDINATES
/CRITERIA = CUTOFF(INCLUDE) TESTPOS(SMALL) DISTRIBUTION(FREE) CI(95)
/MISSING = EXCLUDE.
Analiza ROC dla kilku zmiennych testowych
Jeżeli chcemy porównać kilka markerów lub kilka skal, można podać więcej zmiennych testowych.
ROC marker1 marker2 marker3 BY choroba (1)
/PLOT = CURVE(REFERENCE)
/PRINT = SE COORDINATES
/CRITERIA = CUTOFF(INCLUDE) TESTPOS(LARGE) DISTRIBUTION(FREE) CI(95)
/MISSING = EXCLUDE.
Przykład interpretacyjny:
marker1— AUC = 0,72, umiarkowana jakość klasyfikacji;marker2— AUC = 0,84, dobra jakość klasyfikacji;marker3— AUC = 0,61, słaba jakość klasyfikacji.
Najlepszą zdolność klasyfikacyjną ma zmienna o najwyższym AUC.
Jak uzyskać punkty odcięcia w SPSS?
Aby SPSS pokazał punkty odcięcia, czułość i swoistość, należy użyć opcji:
/PRINT = COORDINATES
ROC marker BY choroba (1)
/PLOT = CURVE
/PRINT = SE COORDINATES
/CRITERIA = CUTOFF(INCLUDE) TESTPOS(LARGE) DISTRIBUTION(FREE) CI(95)
/MISSING = EXCLUDE.
- punkt odcięcia;
- czułość;
- 1 − swoistość.
Aby uzyskać swoistość, należy odjąć wartość pokazywaną przez SPSS od 1.
Przykład: jeśli SPSS pokazuje 1 − swoistość = 0,20, to swoistość wynosi 0,80.
Jak wybrać najlepszy punkt odcięcia?
SPSS pokazuje wiele możliwych punktów odcięcia. Aby wybrać najlepszy, można obliczyć indeks Youdena. Najlepszy punkt odcięcia to zwykle ten, dla którego indeks Youdena jest największy.
W praktyce można wyeksportować tabelę współrzędnych krzywej ROC, obliczyć swoistość oraz indeks Youdena, a następnie wybrać punkt odcięcia o najwyższej wartości indeksu.
Syntax SPSS do obliczenia indeksu Youdena po eksporcie współrzędnych
SPSS standardowo pokazuje współrzędne krzywej ROC w tabeli wynikowej. Jeżeli przepiszemy lub wyeksportujemy tabelę do danych, można obliczyć swoistość i indeks Youdena.
Przykład, jeśli w bazie mamy zmienne:
cutoff— punkt odcięcia;sensitivity— czułość;one_minus_specificity— wartość 1 − swoistość.
Można użyć składni:
COMPUTE specificity = 1 - one_minus_specificity.
COMPUTE youden_j = sensitivity + specificity - 1.
EXECUTE.
SORT CASES BY youden_j (D).
LIST cutoff sensitivity specificity youden_j /CASES = FROM 1 TO 10.
- oblicza swoistość;
- oblicza indeks Youdena;
- sortuje punkty odcięcia od najlepszego;
- pokazuje najwyższe wartości indeksu Youdena.
Jak opisać wynik analizy ROC w pracy lub publikacji?
Zamieszczamy przykładowy opis do wyników w publikacji:
W celu oceny zdolności zmiennej marker do różnicowania osób z chorobą i bez choroby wykonano analizę krzywej ROC. Pole pod krzywą wyniosło AUC = 0,84, co wskazuje na dobrą zdolność klasyfikacyjną analizowanego markera. Wynik był istotny statystycznie, a 95% przedział ufności nie obejmował wartości 0,50. Na podstawie indeksu Youdena wyznaczono optymalny punkt odcięcia równy 42. Dla tego punktu czułość wyniosła 0,84, a swoistość 0,80.
Lub opis w krótszej postaci:
Analiza ROC wykazała, że marker dobrze różnicuje badane grupy, AUC = 0,84. Optymalny punkt odcięcia wyniósł 42, przy czułości 84% i swoistości 80%.
Jak interpretować krzywą ROC?
Im bardziej krzywa ROC przebiega w pobliżu lewego górnego rogu wykresu, tym lepszy test. Lewy górny róg oznacza wysoką czułość i wysoką swoistość.
Interpretacja graficzna:
- krzywa blisko przekątnej — test słaby, zbliżony do losowego;
- krzywa wyraźnie powyżej przekątnej — test ma wartość diagnostyczną;
- krzywa blisko lewego górnego rogu — test bardzo dobrze rozróżnia grupy.
Najczęstsze błędy w analizie ROC
W analizie krzywych ROC często pojawiają się błędy, które mogą prowadzić do nieprawidłowej interpretacji.
Najczęstsze problemy:
- zmienna stanu nie jest dychotomiczna;
- błędnie określono wartość pozytywną, np. zamiast 1 wskazano 0;
- nieprawidłowo ustawiono kierunek testu
TESTPOS(LARGE)lubTESTPOS(SMALL); - analizowana zmienna nie ma sensu diagnostycznego;
- wybrano punkt odcięcia bez sprawdzenia czułości i swoistości;
- interpretowano samo p-value bez wartości AUC;
- pominięto przedział ufności AUC;
- porównywano AUC bez uwzględnienia celu klinicznego lub badawczego;
- zastosowano analizę ROC tam, gdzie zmienna wynikowa nie jest binarna.
Analiza ROC a badania medyczne
W medycynie i naukach o zdrowiu analiza ROC jest często stosowana do oceny markerów diagnostycznych, skal ryzyka i wyników badań laboratoryjnych.
Przykłady zastosowań:
- ocena przydatności markera zapalnego w rozpoznawaniu choroby;
- analiza wyniku skali bólu jako predyktora powikłań;
- ocena poziomu glukozy jako wskaźnika ryzyka;
- dobór punktu odcięcia dla skali jakości życia;
- ocena modelu ryzyka w badaniu klinicznym;
- porównanie kilku parametrów laboratoryjnych.
W takich analizach warto pamiętać, że najlepszy punkt odcięcia statystycznie nie zawsze musi być najlepszy klinicznie. Czasami ważniejsza jest wysoka czułość, np. gdy chcemy nie przeoczyć osób chorych. W innych sytuacjach ważniejsza może być wysoka swoistość, np. gdy fałszywie dodatni wynik prowadzi do kosztownej lub obciążającej procedury.
Co przesłać do wykonania analizy ROC?
Aby wykonać analizę krzywej ROC, najlepiej przygotować:
- plik z danymi, np. Excel, SPSS, CSV lub SAV;
- zmienną dychotomiczną określającą stan, np. chory/zdrowy;
- zmienną lub zmienne testowe, np. wynik skali, marker, pomiar;
- informację, która kategoria oznacza wynik pozytywny;
- hipotezę lub cel analizy;
- informację, czy wyższe wartości testu oznaczają większe ryzyko;
- wymagania promotora, recenzenta lub czasopisma;
- informację, czy potrzebny jest punkt odcięcia;
- informację, czy potrzebny jest opis wyników do pracy lub publikacji.
Pomoc w analizie krzywych ROC
Jeżeli potrzebujesz wykonać analizę ROC do pracy magisterskiej, doktoratu, publikacji naukowej, raportu medycznego lub badania ankietowego, możesz zlecić przygotowanie obliczeń i interpretacji wyników.
Pomoc może obejmować:
- przygotowanie danych;
- sprawdzenie poprawności zmiennych;
- wykonanie krzywej ROC;
- obliczenie AUC;
- wskazanie punktu odcięcia;
- obliczenie czułości i swoistości;
- przygotowanie tabel i wykresu;
- interpretację wyników;
- opis analizy ROC do pracy lub publikacji.
Podsumowanie
Analiza krzywych ROC pozwala ocenić, jak dobrze dana zmienna, test diagnostyczny, marker lub model odróżnia dwie grupy. Najważniejszym wynikiem jest AUC, czyli pole pod krzywą ROC. Dodatkowo analiza pozwala określić czułość, swoistość oraz optymalny punkt odcięcia, często wyznaczany na podstawie indeksu Youdena.
Krzywe ROC są szczególnie przydatne w medycynie, farmacji, naukach o zdrowiu, biotechnologii, psychologii, rolnictwie i innych dziedzinach, w których ważna jest klasyfikacja przypadków oraz ocena jakości testu diagnostycznego.
Poniżej film doktora Grande na temat krzywych ROC:
FAQ do krzywych ROC
Co oznacza krzywa ROC?
Krzywa ROC pokazuje zależność między czułością a wartością 1 − swoistość dla różnych punktów odcięcia analizowanej zmiennej. Pozwala ocenić jakość klasyfikacji testu, markera lub modelu.
Co oznacza AUC w analizie ROC?
AUC to pole pod krzywą ROC. Im większa wartość AUC, tym lepsza zdolność analizowanej zmiennej do rozróżniania dwóch grup. AUC równe 0,5 oznacza klasyfikację losową, a AUC bliskie 1,0 oznacza bardzo dobrą klasyfikację.
Jak wybrać punkt odcięcia w analizie ROC?
Jednym ze sposobów wyboru punktu odcięcia jest indeks Youdena. Najlepszy punkt odcięcia to często ten, dla którego indeks Youdena jest najwyższy, chociaż wybór powinien uwzględniać także cel kliniczny lub badawczy.
Jak wykonać analizę ROC w SPSS?
W SPSS można wybrać Analyze → Classify → ROC Curve albo użyć składni ROC w syntax. Najważniejsze jest prawidłowe wskazanie zmiennej testowej, zmiennej stanu i wartości pozytywnej.
Czy analiza ROC nadaje się do pracy magisterskiej?
Tak, analiza ROC może być wykorzystana w pracy magisterskiej, jeśli badanie dotyczy oceny jakości testu, skali, markera lub modelu rozróżniającego dwie grupy.