Baru-baru ini saya mulai bekerja di klinik TBC. Kami bertemu secara berkala untuk membahas jumlah kasus TB yang saat ini kami tangani, jumlah tes yang diberikan, dll. Saya ingin mulai memodelkan jumlah ini sehingga kami tidak hanya menebak apakah ada sesuatu yang tidak biasa atau tidak. Sayangnya, saya hanya memiliki sedikit pelatihan dalam rangkaian waktu, dan sebagian besar paparan saya adalah model untuk data yang sangat berkelanjutan (harga saham) atau jumlah yang sangat besar (influenza). Tetapi kami menangani 0-18 kasus per bulan (rata-rata 6,68, median 7, var 12,3), yang didistribusikan seperti ini:
[gambar hilang karena kabut waktu]
[gambar dimakan oleh grue]
Saya telah menemukan beberapa artikel yang membahas model-model seperti ini, tetapi saya sangat menghargai mendengar saran dari Anda - baik untuk pendekatan maupun untuk paket R yang dapat saya gunakan untuk mengimplementasikan pendekatan tersebut.
EDIT: jawaban mbq telah memaksa saya untuk berpikir lebih hati-hati tentang apa yang saya tanyakan di sini; Saya terlalu terpaku pada hitungan bulanan dan kehilangan fokus sebenarnya dari pertanyaan itu. Yang ingin saya ketahui adalah: apakah (cukup terlihat) penurunan dari, katakanlah, 2008 dan seterusnya mencerminkan tren penurunan jumlah kasus secara keseluruhan? Bagiku jumlah kasus setiap bulan dari 2001-2007 mencerminkan proses yang stabil; mungkin beberapa musim, tetapi secara keseluruhan stabil. Dari tahun 2008 hingga sekarang, sepertinya proses itu berubah: jumlah kasus secara keseluruhan menurun, meskipun jumlah bulanan mungkin bergetar naik turun karena keacakan dan musiman. Bagaimana saya bisa menguji jika ada perubahan nyata dalam proses? Dan jika saya bisa mengidentifikasi penurunan,
sumber
Jawaban:
Untuk menilai tren historis, saya akan menggunakan gam dengan komponen tren dan musiman. Sebagai contoh
Kemudian
summary(fit)
akan memberi Anda tes signifikansi dari perubahan tren dan plot akan memberi Anda beberapa interval kepercayaan. Asumsi di sini adalah bahwa pengamatan independen dan distribusi kondisional adalah Poisson. Karena mean dibiarkan berubah dengan lancar dari waktu ke waktu, ini bukanlah asumsi yang kuat.Peramalan lebih sulit karena Anda perlu memproyeksikan tren ke masa depan. Jika Anda bersedia menerima ekstrapolasi linear tren di akhir data (yang tentu saja cerdik tapi mungkin ok untuk beberapa bulan), maka gunakan
Untuk melihat perkiraan pada grafik yang sama:
Anda dapat melihat bulan-bulan yang tidak biasa dengan mencari pencilan dalam residu (penyimpangan) yang cocok.
sumber
Anda mungkin ingin melihatnya strucchange :
PS. Grafik yang bagus;)
sumber
Apakah itu benar-benar membutuhkan model yang canggih? Berdasarkan apa yang saya ketahui tentang TB, jika tidak ada epidemi, infeksi adalah tindakan stokastik sehingga hitungan bulan N tidak boleh dikorelasikan dengan hitungan dari bulan N-1. (Anda dapat memeriksa asumsi ini dengan autokorelasi). Jika demikian, menganalisis hanya distribusi jumlah bulanan mungkin cukup untuk memutuskan apakah beberapa jumlah secara signifikan lebih tinggi dari normal.
Di sisi lain Anda dapat mencari korelasi dengan beberapa variabel lain, seperti musim, lalu lintas perjalanan, atau apa pun yang dapat Anda bayangkan yang mungkin berkorelasi. Jika Anda akan menemukan sesuatu seperti ini, maka dapat digunakan untuk beberapa normalisasi data.
sumber
Seringkali, data penyakit seperti ini dilakukan dengan model linier umum, karena tidak selalu merupakan aplikasi analisis deret waktu - bulan-bulan sering tidak semuanya berkorelasi satu sama lain.
Jika saya diberi data ini, inilah yang akan saya lakukan (dan memang, telah dilakukan dengan data yang mirip dengan itu):
Buat variabel "waktu" yang lebih akurat digambarkan sebagai "Bulan sejak 1/1/2000" jika saya mengamati data Anda dengan benar. Kemudian saya menjalankan model linear umum dalam R menggunakan distribusi Poisson (atau Negative Binomial) dan tautan log dengan kira-kira bentuk berikut:
log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)
Di mana t adalah waktu yang dijelaskan di atas, dan w adalah 1/365 untuk penyakit tahunan seperti flu. Umumnya 1 / n, di mana n adalah panjang siklus penyakit Anda. Saya tidak tahu apa itu TB.
Dua tren waktu akan menunjukkan Anda - di luar variasi musiman normal - jika Anda memiliki variasi yang berarti dari waktu ke waktu.
sumber
Anda mungkin mempertimbangkan menerapkan diagram Kontrol Tukey ke data.
sumber
Anda dapat mencoba memodelkan data Anda menggunakan Dynamic Generalized Linear Model (DGLM). Di R, Anda dapat memuat model seperti ini menggunakan paket sspir dan KFAS. Dalam arti tertentu, ini mirip dengan pendekatan gam yang disarankan oleh Rob, kecuali bahwa alih-alih mengasumsikan rata-rata log dari pengamatan Poisson menjadi fungsi waktu yang lancar, ia mengasumsikan bahwa ia mengikuti dinamika stokastik.
sumber
dlm
paket. DLM tidak semudah digunakan sebagai solusi lain, tetapidlm
membuatnya semudah mungkin dan memiliki sketsa bagus yang memandu Anda melalui proses.Saya akan meninggalkan pertanyaan utama sendirian, karena saya pikir saya akan salah (walaupun saya juga menganalisis data untuk penyedia layanan kesehatan, dan jujur, jika saya memiliki data ini, saya hanya akan menganalisisnya menggunakan teknik standar dan berharap yang terbaik, mereka terlihat cukup oke untuk saya).
Adapun paket R, saya telah menemukan perpustakaan TSA dan buku yang menyertainya memang sangat berguna. The
armasubsets
perintah, terutama, saya pikir adalah penghemat waktu yang besar.sumber
Melarikan diri dari statistik enumeratif tradisional seperti yang disarankan Deming dan menjelajah ke statistik analitik tradisional - dalam hal ini, diagram kontrol. Lihat buku apa pun oleh Donald Wheeler PhD, khususnya "Topik Tingkat Lanjut dalam SPC" untuk info lebih lanjut.
sumber
Menanggapi pertanyaan langsung Anda, "Bagaimana saya bisa menguji jika ada perubahan nyata dalam proses? Dan jika saya dapat mengidentifikasi penurunan, bagaimana saya bisa menggunakan tren itu dan apa pun musim mungkin ada untuk memperkirakan jumlah kasus yang mungkin kita lihat dalam bulan-bulan mendatang? " Mengembangkan Model Fungsi Transfer (ARMAX) yang siap menjelaskan ketergantungan periode-ke-periode termasuk dan struktur ARIMA musiman. Menggabungkan Pergeseran Level yang Dapat Diidentifikasi, Pulsa Musiman, Tren Waktu Lokal, dan PUlses yang mungkin telah disarankan oleh metode empiris / analitis seperti Deteksi Intervensi. JIKA MODEL ROBUST INI TERMASUK FAKTOR / SERI yang cocok dengan "menurun" Maka doa-doa Anda telah dijawab. Dalam alternatifnya tambahkan struktur yang dihipotesiskan misalnya untuk menguji perubahan tren waktu pada titik T1 membangun dua boneka X1 = 1,1,2,3 ,,,,,, T dan X2 = 0,0,0,0,0,0,0,0,1,2,3,4,5, .... DI MANA NOL AKHIR DI PERIODE T1-1. Tes hipotesis dari perubahan tren yang signifikan pada periode waktu T1 akan dinilai menggunakan "nilai t" untuk X2.
Diedit 9/22/11
Seringkali, data penyakit seperti ini memiliki efek bulanan karena cuaca / suhu sering merupakan penyebab yang tidak ditentukan. Untuk menghilangkan seri caudsal sejati, model ARIMA menggunakan memori atau boneka musiman sebagai pengganti. Selain itu seri seperti ini dapat memiliki perubahan level dan / atau tren waktu lokal yang mencerminkan perubahan struktural dari waktu ke waktu. Mengeksploitasi struktur autoregresif dalam data daripada memaksakan berbagai artefak seperti waktu dan waktu dan waktu kubik dll telah ditemukan sangat berguna dan kurang anggapan dan ad hoc. Kehati-hatian juga harus diambil untuk mengidentifikasi "nilai-nilai yang tidak biasa" karena mereka sering dapat berguna dalam menyarankan variabel penyebab tambahan dan setidaknya mengarah pada perkiraan yang kuat dari parameter model lainnya. Akhirnya kami telah menemukan bahwa variabilitas / paramaters dapat bervariasi dari waktu ke waktu sehingga penyempurnaan model ini dapat dilakukan.
sumber