Niedawno zacząłem pracować w klinice gruźlicy. Spotykamy się okresowo w celu omówienia liczby przypadków gruźlicy, które obecnie leczymy, liczby przeprowadzonych testów itp. Chciałbym zacząć modelować te liczby, aby nie tylko zgadywać, czy coś jest niezwykłe, czy nie. Niestety, miałem niewiele szkoleń w szeregach czasowych i większość mojej ekspozycji dotyczyła modeli bardzo ciągłych danych (ceny akcji) lub bardzo dużej liczby przypadków (grypa). Ale mamy do czynienia z 0-18 przypadkami na miesiąc (średnia 6,68, mediana 7, var 12.3), które są dystrybuowane w następujący sposób:
[obraz zagubiony w mgle czasu]
[obraz zjedzony przez grue]
Znalazłem kilka artykułów, które dotyczą takich modeli, ale bardzo doceniam sugestie użytkowników - zarówno dotyczące podejść, jak i pakietów R, których mógłbym użyć do wdrożenia tych podejść.
EDYTOWAĆ: Odpowiedź mbq zmusiła mnie do dokładniejszego zastanowienia się nad tym, o co tu pytam; Byłem zbyt rozczochrany w obliczeniach miesięcznych i straciłem koncentrację na pytaniu. Chciałbym wiedzieć: czy (dość widoczny) spadek, powiedzmy od 2008 r., Odzwierciedla tendencję spadkową w ogólnej liczbie przypadków? Wydaje mi się, że liczba spraw miesięcznych od 2001-2007 odzwierciedla stabilny proces; może trochę sezonowości, ale ogólnie stabilna. Od 2008 r. Do chwili obecnej wygląda na to, że ten proces się zmienia: ogólna liczba przypadków maleje, mimo że miesięczne liczby mogą chybotać w górę i w dół z powodu losowości i sezonowości. Jak mogę sprawdzić, czy w procesie nastąpiła prawdziwa zmiana? A jeśli mogę zidentyfikować spadek,
źródło
Odpowiedzi:
Aby ocenić trend historyczny, użyłbym gry z trendem i składnikami sezonowymi. Na przykład
Następnie
summary(fit)
przeprowadzi test istotności zmiany trendu, a wykres przedstawi przedziały ufności. Zakłada się tutaj, że obserwacje są niezależne, a rozkład warunkowy ma postać Poissona. Ponieważ średnia może zmieniać się płynnie w czasie, założenia te nie są szczególnie mocne.Prognozowanie jest trudniejsze, ponieważ musisz prognozować trend w przyszłości. Jeśli chcesz zaakceptować liniową ekstrapolację trendu na końcu danych (co z pewnością jest niejasne, ale prawdopodobnie wystarcza na kilka miesięcy), użyj
Aby zobaczyć prognozy na tym samym wykresie:
Możesz dostrzec nietypowe miesiące, szukając wartości odstających w (odchyleniu) resztek dopasowania.
źródło
Możesz rzucić okiem na strucchange :
PS. Ładna grafika;)
źródło
Czy naprawdę potrzebuje jakiegoś zaawansowanego modelu? Na podstawie tego, co wiem o gruźlicy, w przypadku, gdy nie ma epidemy, infekcje są aktami stochastycznymi, więc liczba z miesiąca N nie powinna być skorelowana z liczbą z miesiąca N-1. (Możesz sprawdzić to założenie za pomocą autokorelacji). Jeśli tak, analiza samego rozkładu miesięcznych liczb może być wystarczająca, aby zdecydować, czy niektóre liczby są znacznie wyższe niż normalnie.
Z drugiej strony możesz szukać korelacji z niektórymi innymi zmiennymi, takimi jak pora roku, ruch w podróży lub cokolwiek, co możesz sobie wyobrazić, co może być skorelowane. Jeśli znajdziesz coś takiego, można go następnie wykorzystać do normalizacji danych.
źródło
Często takie dane chorobowe są wykonywane za pomocą uogólnionego modelu liniowego, ponieważ niekoniecznie jest to świetne zastosowanie analizy szeregów czasowych - miesiące często nie są ze sobą skorelowane.
Gdybym otrzymał te dane, oto co bym zrobił (i rzeczywiście zrobiłbym z danymi podobnymi):
Utwórz zmienną „czasową”, która jest dokładniej opisana jako „Miesiące od 1/1/2000”, jeśli prawidłowo sprawdzam twoje dane. Następnie uruchomiłbym ogólny model liniowy w R, używając rozkładu Poissona (lub ujemnego dwumianowego) i linku logarytmicznego o mniej więcej następującej formie:
log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)
Gdzie t jest czasem opisanym powyżej, a w wynosi 1/365 dla rocznej choroby, takiej jak grypa. Zasadniczo jest to 1 / n, gdzie n jest długością cyklu choroby. Nie wiem od razu, co to jest dla TB.
Te dwa trendy czasowe pokażą Ci - poza normalną zmiennością sezonową - jeśli masz znaczącą zmienność w czasie.
źródło
Możesz rozważyć zastosowanie tabeli kontrolnej Tukey do danych.
źródło
Możesz spróbować modelować swoje dane przy użyciu dynamicznego uogólnionego modelu liniowego (DGLM). W R można dopasować tego rodzaju modele za pomocą pakietów sspir i KFAS. W pewnym sensie jest to podobne do podejścia do gry sugerowanego przez Roba, z tym wyjątkiem, że zamiast zakładać, że średnia logiczna z obserwacji Poissona będzie gładką funkcją czasu, zakłada, że podąża ona za stochastyczną dynamiką.
źródło
dlm
paczkę. DLM nie są tak łatwe w użyciu jak inne rozwiązania, aledlm
sprawiają, że jest to tak proste, jak to możliwe i ma ładną winietę przeprowadzającą cię przez proces.Główne pytanie pozostawiam w spokoju, ponieważ myślę, że popełniam błąd (chociaż również analizuję dane dla świadczeniodawcy opieki zdrowotnej i, szczerze mówiąc, gdybym je miał, po prostu analizowałbym je przy użyciu standardowych technik i mam nadzieję, że dla mnie wyglądają całkiem dobrze).
Jeśli chodzi o pakiety R, znalazłem bibliotekę TSA i jej towarzysząca książka jest naprawdę bardzo przydatna. Wydaje
armasubsets
mi się, że polecenie to szczególnie oszczędza czas.źródło
Ucieczka od tradycyjnych statystyk wyliczeniowych, jak sugerowałaby Deming, i zapuszczenie się w tradycyjne statystyki analityczne - w tym przypadku wykresy kontrolne. Aby uzyskać więcej informacji, zobacz dowolne książki dr Donalda Wheelera, w szczególności jego „Tematy zaawansowane w SPC”.
źródło
W odpowiedzi na twoje bezpośrednie pytanie: „Jak mogę sprawdzić, czy w procesie nastąpiła prawdziwa zmiana? A jeśli mogę zidentyfikować spadek, jak mogę wykorzystać ten trend i jakąkolwiek sezonowość, aby oszacować liczbę przypadków, które możemy zobaczyć w nadchodzące miesiące? ” Opracuj model funkcji przenoszenia (ARMAX), który łatwo wyjaśnia zależność między okresami, w tym strukturę sezonową ARIMA. Uwzględnij wszelkie możliwe do zidentyfikowania przesunięcia poziomu, sezonowe impulsy, trendy czasu lokalnego i PUlses, które mogły być sugerowane metodami empirycznymi / analitycznymi, takimi jak wykrywanie interwencji. JEŚLI TEN SOLIDNY MODEL ZAWIERA CZYNNIK / SERIE pasujące do „odmów”, wtedy twoje modlitwy zostały wysłuchane. Alternatywnie po prostu dodaj hipotetyczną strukturę, np. Aby przetestować zmianę trendu czasowego w punkcie T1 skonstruuj dwa manekiny X1 = 1,1,2,3 ,,,,,, T i X2 = 0,0,0,0,0,0,0,1,1,2,3,4,5, .... GDZIE ZERO ZNAJDUJĄ SIĘ W OKRESIE T1-1. Test hipotezy znaczącej zmiany trendu w okresie T1 zostanie oceniony przy użyciu „wartości t” dla X2.
Edytowano 22.09.11
Często takie dane o chorobach mają comiesięczny wpływ, ponieważ pogoda / temperatura są często nieokreślonymi przyczynami. Pomijając prawdziwą serię ogonową, modele ARIMA wykorzystują pamięć lub sezonowe manekiny jako surogat. Dodatkowo w podobnych seriach mogą występować przesunięcia poziomów i / lub lokalne trendy czasowe odzwierciedlające zmiany strukturalne w czasie. Wykorzystanie struktury autoregresyjnej w danych zamiast narzucania różnych artefaktów, takich jak czas i kwadrat i czas sześcienny itp., Okazało się dość użyteczne i mniej domniemane i doraźne. Należy również dołożyć starań, aby zidentyfikować „nietypowe wartości”, ponieważ często mogą one być przydatne w sugerowaniu dodatkowych zmiennych przyczyn i w minimalnym stopniu prowadzić do wiarygodnych oszacowań innych parametrów modelu. Wreszcie stwierdziliśmy, że zmienność / parametry mogą się zmieniać w czasie, więc te udoskonalenia modelu mogą być w porządku.
źródło