Saya mencoba untuk mengatasi masalah yang berhubungan dengan imputasi data yang hilang dari studi data panel (Tidak yakin apakah saya menggunakan 'studi data panel' dengan benar - seperti yang saya pelajari hari ini.) Saya memiliki total data jumlah kematian untuk tahun 2003 hingga 2009, semua bulan, pria & wanita, untuk 8 kabupaten berbeda dan untuk 4 kelompok umur.
Kerangka data terlihat seperti ini:
District Gender Year Month AgeGroup TotalDeaths
Northern Male 2006 11 01-4 0
Northern Male 2006 11 05-14 1
Northern Male 2006 11 15+ 83
Northern Male 2006 12 0 3
Northern Male 2006 12 01-4 0
Northern Male 2006 12 05-14 0
Northern Male 2006 12 15+ 106
Southern Female 2003 1 0 6
Southern Female 2003 1 01-4 0
Southern Female 2003 1 05-14 3
Southern Female 2003 1 15+ 136
Southern Female 2003 2 0 6
Southern Female 2003 2 01-4 0
Southern Female 2003 2 05-14 1
Southern Female 2003 2 15+ 111
Southern Female 2003 3 0 2
Southern Female 2003 3 01-4 0
Southern Female 2003 3 05-14 1
Southern Female 2003 3 15+ 141
Southern Female 2003 4 0 4
Selama 10 bulan yang tersebar di tahun 2007 dan 2008, beberapa kematian total dari semua kabupaten tidak dicatat. Saya mencoba memperkirakan nilai yang hilang ini melalui metode imputasi berganda. Baik menggunakan Generalized Linear Models atau SARIMA models.
Masalah terbesar saya adalah penggunaan perangkat lunak dan pengkodean. Saya mengajukan pertanyaan pada Stackoverflow, di mana saya ingin mengekstraksi data ke dalam kelompok yang lebih kecil seperti ini:
District Gender Year Month AgeGroup TotalDeaths
Northern Male 2003 1 01-4 0
Northern Male 2003 2 01-4 1
Northern Male 2003 3 01-4 0
Northern Male 2003 4 01-4 3
Northern Male 2003 5 01-4 4
Northern Male 2003 6 01-4 6
Northern Male 2003 7 01-4 5
Northern Male 2003 8 01-4 0
Northern Male 2003 9 01-4 1
Northern Male 2003 10 01-4 2
Northern Male 2003 11 01-4 0
Northern Male 2003 12 01-4 1
Northern Male 2004 1 01-4 1
Northern Male 2004 2 01-4 0
Pergi ke
Northern Male 2006 11 01-4 0
Northern Male 2006 12 01-4 0
Tetapi seseorang menyarankan saya sebaiknya membawa pertanyaan saya di sini - mungkin menanyakan arah? Saat ini saya tidak dapat memasukkan data ini sebagai studi time-series / panel yang tepat ke dalam R. Tujuan akhirnya saya adalah untuk menggunakan data ini dan amelia2
paket dengan fungsinya untuk menyalahkan hilang TotalDeaths
selama bulan-bulan tertentu pada 2007 dan 2008, di mana data tersebut hilang.
Bantuan apa pun, cara melakukan ini dan mungkin saran tentang cara mengatasi masalah ini akan sangat dihargai.
Jika ini membantu, saya mencoba mengikuti pendekatan yang serupa dengan apa yang dilakukan Clint Roberts dalam tesis PhD-nya .
EDIT:
Setelah membuat variabel 'waktu' dan 'grup' seperti yang disarankan oleh @Matt:
> head(dat)
District Gender Year Month AgeGroup Unnatural Natural Total time group
1 Khayelitsha Female 2001 1 0 0 6 6 1 Khayelitsha.Female.0
2 Khayelitsha Female 2001 1 01-4 1 3 4 1 Khayelitsha.Female.01-4
3 Khayelitsha Female 2001 1 05-14 0 0 0 1 Khayelitsha.Female.05-14
4 Khayelitsha Female 2001 1 15up 8 73 81 1 Khayelitsha.Female.15up
5 Khayelitsha Female 2001 2 0 2 9 11 2 Khayelitsha.Female.0
6 Khayelitsha Female 2001 2 01-4 0 2 2 2 Khayelitsha.Female.01-4
Seperti yang Anda perhatikan, sebenarnya ada detail lebih lanjut 'Alami' dan 'Tidak Alami'.
sumber
Amelia
sedikit tetapi menyerah (sebelum ini). Saya sebelumnya telah melihat sketsa (tapi entah bagaimana kehilangan itu!) Baru saja melihatnya dan akan melalui itu. Satu masalah yang saya miliki sekarang adalah bahwa saya tidak yakin tentang cara membuatgroup
dantime
variabel. (Saya mencoba membuat mereka untuk analisis deret waktu / perkiraan, tetapi mengitarinya.) Saya yakin itu ada di vigette - jadi saya akan menghubungi Anda jika saya kesulitan. Terima kasih lagi :)a.out=amelia(dat,ts=time,cs=group,splinetime=2,intercs=TRUE,idvars=c("District","Gender","Month","Year","AgeGroup"),bounds=bds) Amelia Error Code: 6 The 'ts' variable is out of the range of possible column numbers or is not an integer.
bds <- matrix(c(6, 7, 8,0, 0,0, 500, 500,500), nrow = 3, ncol = 3)
Saya pada dasarnya hanya memilih 500 sebagai batas atas acak. Saya memang mencoba untuk tidak memberikan kolom ketiga, tetapiAmelia
memperingatkan bahwa itu membutuhkan yang ketiga. Apakah mungkin ada cara untuk menetapkan batas bawah secara spesifik?