Który telefon się wcześniej zepsuje?

Uczestniczyłem ostatnio w ciekawym (od strony metodologicznej) projekcie (patrz też komentarz na dole). A ponieważ przy okazji używałem kilku ciekawych narzędzi, więc poniżej krótko o nich opowiem.

Problem:

Przypuśćmy, że mamy taki problem. Mamy telefony dwóch marek, np A i B. Załóżmy też, że w tych telefonach może zepsuć się bateria lub ekran, innych uszkodzeń nie rozważamy. Jeżeli się cokolwiek zepsuje, telefon jest wymieniany na nowy, nie ma sensu go naprawiać.
Chcemy teraz sprawdzić czy tempo psucia się ekranu w telefonach marki A jest inne niż w telefonach marki B. Podobnie chcemy porównać działanie baterii.
Przypuśćmy, że w badaniu obserwujemy dużo (tysiące) telefonów każdej z marek. Badanie prowadzimy przez 3 lata, ale niektóre telefony uczestniczą w badaniu od roku, inne od 2 lub 3 lat.
Pytanie, jaką metoda porównać te marki?

Podejście brutalne 1:

Najbardziej brutalne podejście to policzenie jaki procent ekranów zepsuł się w marce A a jaki w marce B i porównanie tych procentów np. dokładnym testem Fishera (w R funkcja fisher.test {stats}, więcej o teście tutaj) lub regresją logistyczną.
Ale…
To nie jest dobre podejście, ponieważ telefony nie były obserwowane przez tak samo długi czas. Mogło się zdarzyć, że w jednej grupie pozyskano więcej telefonów na początku, 3 lata temu, więc ich czas obserwacji był dłuższy. A może w innej grupie pozyskano telefony niedawno, np. rok temu, czas obserwacji jest krótszy i dlatego mniej ich się zepsuło.

Podejście brutalne 2:

Skoro czas obserwacji jest różny, to porównajmy liczbę dni do czasu zepsucia się ekranu lub baterii. Możemy to zrobić np. testem Wilcoxona (w R funkcja wilcox.test {stats} więcej o teście np. tutaj).
Ale…
To nie jest dobre podejście, ponieważ nie wszystkie telefony się zepsuły, nie dla wszystkich znam czas do zepsucia. Być może w jednej grupie średni czas do uszkodzenia jest niższy, ale też mniej telefonów się zepsuło. Nie chcemy też odrzucać informacji o tych wszystkich telefonach, które się nie zepsuły.

Mniej brutalne podejście 3:

Skoro mamy różne czasy obserwacji i nie dla wszystkich obserwacji wiemy jaki był czas uszkodzenia ekranu lub baterii, to zastosujmy metody analizy przeżycia. Przedstawmy czas działania ekranu/baterii za pomocą krzywych przeżycia (np. Kaplan-Meier) i sprawdźmy czy marki różnią się używając np. testu log rank (w R funkcja survdiff {survival}, więcej o teście).
Ale…
Obserwujemy dwa zdarzenia, uszkodzenie ekranu lub uszkodzenie baterii. Jeżeli wystąpi jedno uszkodzenie to nie widzimy drugiego (telefon oddajemy i nie wiemy kiedy nastąpiłaby druga awaria). Ale analizując uszkodzenia baterii, nie możemy traktować uszkodzeń ekranu jako obserwacje cenzorowane ponieważ nie musi być to cenzorowanie nieinformatywne (brak spełnionych założeń). Być może uszkodzony ekran wpływa na sposób pracy baterii, a być może wadliwe ekrany i baterie produkowane są w jednej fabryce, itp.

Podejście najmniej brutalne 4:

Skoro różne telefony obserwujemy przez różny czas, nie dla wszystkich znamy całkowity czas działania, czyli mamy cenzorowanie, ale obserwujemy dwa (lub więcej) elementów, które mogą ulec uszkodzeniu, to możemy modelować je łącznie używając modelu konkurujących ryzyk.

W R można to zrobić używając pakietu mstate (artykuł z JSS) czy też od jakiegoś czasu można to zrobić pakietem survival (teraz funkcja Surv{survival} może przyjąć argument type=mstate).
Do porównania krzywych można wykorzystać test Gray’s log-rank test. A w pakiecie ggplotit jest nawet przeciążona funkcja ggplotit() rysujące skumulowane funkcje zdarzeń dla obiektów klasy survfitms lub Cuminc.

btw:
Projekt na którym pracowałem dotyczył biologii molekularnej i analizy przeżycia pacjentów, ale dla przykładu i wnioskowania to akurat bez znaczenia. Podobna metodologię można zastosować do analizy usterek w samochodach czy kliknięć internautów na stronach www.

8 myśli na temat “Który telefon się wcześniej zepsuje?”

  1. Bardzo podoba mi się ta seria artykułów o doborze metod do konkretnych problemów.

    Może Pan podpowiedzieć początkującym, jak wyrobić sobie taką sprawność w wyborze testów / metod. Domyślam się, że taka intuicja przychodzi wraz z doświadczeniem i znajomością metod. Może Pan polecić jakąś książkę, w której przedstawione są metody statystyczne wraz z ich zastosowaniami?

    1. @Adrian, trudno polecić mi jakąś książkę. Te bardziej zaawansowane najczęściej zorganizowane są wokół omówienia wybranej metodologi a nie koniecznie dyskusji różnych metod dla jednego problemu.
      Może inny czytelnik bloga coś ciekawego poleci.

      Dla mnie najefektywniejszą metodą poznawania metod są podczas studiów projekty na zajęciach z analizy danych (jeden projekt, kilka zespołów, to daje miejsce na dyskusje różnych podejść)
      lub też praca w miejscu w którym pracują ludzie z rożnymi doświadczeniami a przed projektami robi się burzę mózgów n.t. co się może w tym projekcie sprawdzić a co nie.

  2. Wpis ciekawy z punktu widzenia zwykłego badacza (zjadacza) chleba. Wydaje mi się, że niezwykle mały odsetek prac publikowanych opartych jest na takim rozumowaniu jai przedstawione we wpisie, a nie sądzę, że poruszane przez badaczy tematy są na tyle proste by wystarczyło stosować “brutalne” rozwiązania. Teraz atakuje mnie, jak wyrzut sumienia, pytanie: czy zalecenia oparte o wnioskowania zawarte w większości prac są słuszne… i jak teraz odnieść się do welu badań mówiących czy poranne picie kawy (włąsnie takową muszę zaparzyć) jest zdrowe, czy powoduje choroby….

    Miłego pierwszego jesiennego dnia tego roku wszystkim czytelnikom życzę :)

    1. @Paweł, z jednej strony, w praktyce, jeżeli są różnice to często są one na tyle wyraźne, że widać je zarówno w podejściach brutalnych jak i bardziej wysublimowanych. Używanie tych prostszych technik zazwyczaj nie wypacza wyników.
      Z drugiej strony jest jakiś urok w używaniu bardziej wysublimowanych technik, dają one poczucie lepszego opisu rzeczywistości. W przypadku analizy przeżycia, cała krzywa przeżycia pokazuje więcej niż średni czas działania czy procent działajacych urządzeń po 3 latach. I to jest fajne.

      1. Tak, o ile badacz kontroluje i eliminuje czynniki wpływające na wyniki. Widziałem już wiele wniosków, że czynnik X wpływa na częstość występowania zjawiska Y, ale jak się przyjrzeć wynikom to grupy nie są np. jednolite pod względem wieku. Ciężko jest porównywać cukrzycę typu 1 z cukrzycą typu 2, bo w pierwszym przypadky mamy młodszych pacjentów niż w drugim). Mogę na prv przesłać konkretny artykuł :)

        1. @Paweł, z pewnością niejednorodność porównywanych grup dodaje jeszcze kilka warstw zabawy w modelowanie.
          Znacznie łatwiej jest w analizie danych pozyskanych ze zrandomizowanych eksperymentów.

  3. Podobnie jak @Adrian uważam, że taka forma wpisów i dyskusji nad możliwymi podejściami jest bardzo interesująca. Może warto stworzyć oddzielny tag do tego typu wpisów? :)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">