Estoy tratando de abordar un problema que trata con la imputación de datos faltantes de un estudio de datos de panel (no estoy seguro si estoy usando correctamente el 'estudio de datos de panel', como lo aprendí hoy). Tengo datos de recuento total de muertes para los años 2003 hasta 2009, todos los meses, hombres y mujeres, para 8 distritos diferentes y para 4 grupos de edad.
El marco de datos se parece a esto:
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
Durante los 10 meses repartidos entre 2007 y 2008, no se registraron algunas de las muertes totales de todos los distritos. Estoy tratando de estimar estos valores perdidos a través de un método de imputación múltiple. Ya sea utilizando modelos lineales generalizados o modelos SARIMA.
Mi mayor problema es el uso de software y la codificación. Hice una pregunta sobre Stackoverflow, donde quiero extraer los datos en grupos más pequeños como este:
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
Caminante a
Northern Male 2006 11 01-4 0
Northern Male 2006 12 01-4 0
Pero alguien sugirió que preferiría traer mi pregunta aquí, ¿tal vez pedir una dirección? Actualmente no puedo ingresar estos datos como un estudio adecuado de series de tiempo / panel en R. Mi objetivo final es utilizar estos datos y el amelia2
paquete con sus funciones para imputarlos por faltar TotalDeaths
durante ciertos meses en 2007 y 2008, donde los datos están desaparecido.
Agradeceríamos cualquier ayuda, cómo hacer esto y tal vez sugerencias sobre cómo abordar este problema.
Si esto ayuda, estoy tratando de seguir un enfoque similar al que Clint Roberts hizo en su tesis doctoral .
EDITAR:
Después de crear la variable 'tiempo' y 'grupo' como sugiere @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
Como notará, en realidad hay más detalles 'Natural' y 'Antinatural'.
fuente
Amelia
un poco pero me di por vencido (antes de esto). Anteriormente he visto la viñeta (¡pero la perdí de alguna manera!) Acabo de echarle un vistazo y la pasaré por completo. Un problema que tengo ahora es que no estoy seguro de cómo crear las variablesgroup
ytime
. (Intenté crearlos para el análisis / pronóstico de series de tiempo, pero obtuve un bucle al respecto). Estoy seguro de que está en la vigencia, así que me pondré en contacto con usted si tengo dificultades. Gracias de nuevo :)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)
Básicamente, elegí 500 como límite superior aleatorio. Intenté simplemente no dar una tercera columna, peroAmelia
advertí que requiere la tercera. ¿Hay alguna forma de especificar un límite inferior?