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


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)

tscs인수는 단순히 시간과 단위 변수를 나타낸다. 이 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조금 놀았 지만 포기했다 (이전에). 나는 이전에 비네팅을 보았지만 (어쨌든 그것을 잃어 버렸습니다!) 그냥 빨리 보았고 그것을 통해 갈 것입니다. 내가 지금 가지고있는 한 가지 문제는 grouptime변수 를 만드는 방법에 대해 확실하지 않다는 것 입니다. (나는 시계열 분석 / 예측을 위해 그것들을 만들려고 시도했지만 그 주위에 고리가 생겼다.) 그것이 비켓에 있다고 확신합니다. 그래서 고투하고 있다면 다시 연락 드리겠습니다. 다시 한번 감사드립니다 :)
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.