패널 연구에서 시계열의 누락 된 카운트 데이터에 대한 다중 대치


9

패널 데이터 연구에서 누락 된 데이터의 전가를 다루는 문제를 해결하려고합니다 (오늘 내가 배운 것처럼 '패널 데이터 연구'를 올바르게 사용하고 있는지 확실하지 않습니다.) 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

2007 년과 2008 년에 걸쳐 10 개월 동안 전 지구의 총 사망자 중 일부는 기록되지 않았습니다. 다중 대치 방법을 통해 이러한 결 측값을 추정하려고합니다. 일반 선형 모델 또는 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와 해당 기능 이 포함 된 패키지를 사용하여 TotalDeaths2007 년과 2008 년에 특정 월 동안 누락 된 것으로 대치 하는 데 있습니다. 잃어버린.

도움, 방법 및이 문제를 해결하는 방법에 대한 제안이 있으면 감사하겠습니다.

이것이 도움이된다면 Clint Roberts가 박사 학위 논문 에서 한 것과 비슷한 접근법을 따르려고합니다 .

편집하다:

@Matt가 제안한 'time'및 'group'변수를 만든 후 :

> 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

아시다시피 실제로 '자연'과 '자연스럽지 않음'에 대한 자세한 내용이 있습니다.

답변:


10

Amelia패키지를 사용하여 데이터를 대치 할 수 있습니다 (전체 공개 :의 저자 중 하나임 Amelia). 패키지 네트는 누락 된 데이터를 전가하는 데 사용하는 방법의 확장 된 예제를 가지고있다.

지구 성별 그룹 그룹이 월 단위로 관찰되는 것처럼 보입니다. 먼저 각 유형의 단위 (즉, 각 지구-성별 그룹에 대해 한 수준)에 대한 요인 변수를 만듭니다. 이것을 호출합시다 group. 그런 다음 2003 년 1 월 이후의 개월 수인 시간에 대한 변수가 필요합니다. 따라서이 변수는 2004 년 1 월에 13이 time됩니다. 이 변수를 호출하십시오 . Amelia를 사용하면 다음 명령으로 시간 추세에 따라 대치 할 수 있습니다.

library(Amelia)
a.out <- amelia(my.data, ts = "time", cs = "group", splinetime = 2, intercs = TRUE)

ts및 cs인수는 단순히 시간과 단위 변수를 나타낸다. 이 splinetime인수는 누락 된 데이터를 대치하기 위해 시간을 얼마나 유연하게 사용해야하는지 설정합니다. 여기서 2는 대치가 2 차 함수를 사용하지만 값이 높을수록 더 유연하다는 것을 의미합니다. 여기서 intercs논증은 Amelia에게 각 지구-성별 그룹에 대해 별도의 시간 추세를 사용하도록 지시합니다. 모델에 많은 매개 변수가 추가되므로 문제가 발생하면이 FALSE를 디버깅하도록 설정할 수 있습니다 .

어쨌든 데이터의 시간 정보를 사용하여 대치 할 수 있습니다. 누락 된 데이터는 0으로 제한되므로 bounds인수를 사용하여 대치를 해당 논리적 범위로 강제 적용 할 수 있습니다 .

편집 : 그룹 / 시간 변수를 만드는 방법

시간 변수는 2002 년부터 계산하기 만하면되기 때문에 가장 쉬운 방법 일 수 있습니다 (데이터에서 가장 낮은 연도라고 가정).

my.data$time <- my.data$Month + 12 * (my.data$Year - 2002)

그룹 변수는 약간 어렵지만 붙여 넣기 명령을 사용하는 빠른 방법입니다.

my.data$group <- with(my.data, 
                      as.factor(paste(District, Gender, AgeGroup, sep = ".")))

이러한 변수를 작성하면 대치에서 원래 변수를 제거하려고합니다. 이를 위해 다음 idvars인수를 사용할 수 있습니다 .

a.out <- amelia(my.data, ts = "time", cs = "group", splinetime = 2, intercs = TRUE,
                idvars = c("District", "Gender", "Month", "Year", "AgeGroup"))

답변 주셔서 감사합니다! 나는 Amelia조금 놀았 지만 포기했다 (이전에). 나는 이전에 비네팅을 보았지만 (어쨌든 그것을 잃어 버렸습니다!) 그냥 빨리 보았고 그것을 통해 갈 것입니다. 내가 지금 가지고있는 한 가지 문제는 group및 time변수 를 만드는 방법에 대해 확실하지 않다는 것 입니다. (나는 시계열 분석 / 예측을 위해 그것들을 만들려고 시도했지만 그 주위에 고리가 생겼다.) 그것이 비켓에 있다고 확신합니다. 그래서 고투하고 있다면 다시 연락 드리겠습니다. 다시 한번 감사드립니다 :)
— OSlOlSO

유용합니다. 이러한 변수를 만드는 방법에 대한 예를 추가했습니다. 희망이 도움이됩니다.
— 매트 블랙웰

@Matt 예제를 주셔서 감사합니다. 이상한 이유로 "ts = time"및 "cs = group"을 사용할 때 오류가 발생했습니다. "시간"과 "그룹"을 해당 열 번호로 바꾼 다음 작동했습니다. 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.
— OSlOlSO

경계의 경우 비네팅을 따르고 다음을 사용하여 경계를 만들었습니다 bds <- matrix(c(6, 7, 8,0, 0,0, 500, 500,500), nrow = 3, ncol = 3). 나는 세 번째 열을주지 않으려 고했지만 세 번째 열 Amelia이 필요하다고 경고했습니다. 하한을 구체적으로 지정할 수있는 방법이 있습니까?
— OSlOlSO

질문에 데이터의 예를 추가했습니다. 아마도 이것이 오류를 일으켰습니까? 그러나 나는 그것을 의심한다.
— OSlOlSO
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.