Я пытаюсь решить проблему, связанную с вменением недостающих данных из исследования данных панели (не уверен, правильно ли я использую «исследование данных панели» - как я узнал это сегодня.) У меня есть данные общего количества смертей за 2003 год до 2009 года, все месяцы, мужчины и женщины, для 8 различных районов и для 4 возрастных групп.
Фрейм данных выглядит примерно так:
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
За 10 месяцев, распределенных в течение 2007 и 2008 годов, некоторые из всех смертей во всех районах не были зарегистрированы. Я пытаюсь оценить эти недостающие значения с помощью метода множественного вменения. Либо с использованием обобщенных линейных моделей, либо моделей SARIMA.
Моя самая большая проблема - использование программного обеспечения и кодирования. Я задал вопрос о Stackoverflow, где я хочу выделить данные в меньшие группы, такие как эта:
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
Собираюсь
Northern Male 2006 11 01-4 0
Northern Male 2006 12 01-4 0
Но кто-то предложил мне поставить этот вопрос здесь - может быть, спросить направление? В настоящее время я не могу ввести эти данные в качестве правильного временного ряда / панельного исследования в R. Моя конечная цель состоит в том, чтобы использовать эти данные и amelia2
пакет с их функциями, чтобы рассчитать их отсутствие в TotalDeaths
течение определенных месяцев в 2007 и 2008 годах, где данные отсутствует.
Буду признателен за любую помощь, как это сделать и, возможно, предложения о том, как решить эту проблему.
Если это помогает, я пытаюсь следовать подходу, аналогичному тому, что сделал Клинт Робертс в своей диссертации .
РЕДАКТИРОВАТЬ:
После создания переменных time и group, предложенных @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
Как вы заметили, на самом деле есть еще детали «Естественный» и «Неестественный».
источник
Amelia
немного, но сдался (до этого). Ранее я видел виньетку (но как-то ее потерял!), Просто быстро взглянул на нее и подробно ее расскажу. Одна из проблем , теперь у меня есть то , что я неопределенный о том , как создатьgroup
иtime
переменные. (Я пытался создать их для анализа / прогнозирования временных рядов, но у меня получилось зацикливаться на этом.) Я уверен, что это в vigette - так что я свяжусь с вами, если буду бороться.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)
я просто выбрал 500 в качестве случайного верхнего предела. Я попытался просто не дать третий столбец, ноAmelia
предупредил, что для этого нужен третий. Есть ли способ указать конкретный нижний предел?