2013-09-02 4 views
0

일부 시계열 데이터를 분석하기 위해 R 패키지 robfilter을 사용하고 있습니다. 보다 구체적으로 함수 robust.filter. 그러나 인수로 길이 38의 시계열을 전달할 때 출력 목록을 구성하는 벡터의 길이가 일치하지 않습니다. 나는 그들과 같은 길이가 될 것이라고 기대했을 지 모르지만, 아마도 나는 결과를 잘못 해석하고있다. 여기서 예robfilter (robust.filter) 패키지의 결과 해석

tmp1 <- c(21.40253, 21.71123, 23.62187, 23.34300, 22.81753, 25.05459, 19.13591, 
18.75162, 19.92034, 19.98294, 20.07355, 19.76710, 18.87155, 20.06639, 
19.69027, 21.33667, 21.57617, 20.84389, 22.28439, 21.73989, 21.82995, 
23.02375, 21.99251, 24.88138, 27.75982, 28.84098, 27.67645, 27.04585, 
27.16779, 25.62208, 25.90392, 26.92163, 26.83929, 26.83194, 30.43352, 
30.95034, 32.41596, 31.87539) 

length(tmp1) 
이다

길이는 38

library(robfilter) 
tmp2 <- robust.filter(tmp1, width=7, shiftd=4, extrapolate=TRUE) 
length(tmp2[["y"]]) 
length(tmp2[["ol"]]) 
length(tmp2[["level"]]) 
원본 데이터가 38 나타낸다

y이지만, 아웃 라이어를 식별하는 벡터의 길이는 41이고, 해당하는 필터링 된 시리즈를 나타낸다 길이는 40이다.

예를 들어 "ol"의 첫 번째 관찰이 원래 시리즈의 첫 번째 지점과 일치한다고 가정 할 수 있습니까? 나는 일관성없는 길이로 인해 혼란 스럽다.

위의 시리즈의 경우 실제로 이상 치가 확인되지 않았습니다. robust.filter가 다시 특이점

tmp3 <- c(9.590999, 10.736618, 11.213917, 11.486491, 9.727762, 
7.564208, 7.995007, 7.718619, 7.908130, 7.598344, 7.884147, 
8.560636, 9.490633, 9.768715, 9.221128, 8.535356, 9.589786, 
9.900386, 10.496643, 10.817289, 11.371327, 12.310138, 11.572224, 
13.117717, 13.720533, 12.880585, 12.830893, 12.578935, 11.910936, 
11.063447, 10.916194, 10.881677, 11.246900, 11.264994, 9.844785, 
10.512842, 10.609419, 10.866941, 11.541334, 12.041648, 12.188250, 
12.289139, 11.412508, 11.603581, 11.018384, 12.374552, 12.010114, 
11.701049, 11.550803, 11.029398, 11.109258, 11.263335, 11.201110, 
11.047172, 11.398097, 11.068206, 11.639072, 12.182218, 11.574394, 
12.970866, 12.214502, 12.271814, 11.529558, 13.413776, 13.452780, 
12.854925, 13.494725, 13.381464, 13.054178, 13.346170, 12.622088, 
15.365530, 10.252811, 11.067396, 10.791832, 9.584768, 10.765442, 
10.781584, 9.646298, 10.452633) 

length(tmp3) #80 
tmp4 <- robust.filter(tmp3, width=9, shiftd=4, extrapolate=TRUE) 
length(tmp4[["y"]]) #80 
length(tmp4[["ol"]]) #81 
length(tmp4[["level"]]) #80 

데이터 포인트 특이 일관성의 길이가 어느 나타내는 벡터가있는 곳 나타낸다 그래서 다른 예를 제공했다.

이 문제가 항상 발생하는 것은 아닙니다. 종종 벡터의 길이는 일정합니다.

답변

0

소스 코드와 robust-filter.R 파일을 조금 보았고 약간 패딩 된 벡터가 될 수있는 천장 (m/2)과 천장 (m/3)의 결과 값을 기록했습니다. 벡터 $ ol, $ level, ect의 길이는 창 크기와 관련이있는 것 같습니다. 예를 들어, 주어진 크기가 42이고 창 크기가 7 인 경우 42/7이 균등하게 나뉘기 때문에 모든 결과 집합은 42입니다.