2013-05-09 6 views
2

현재 R에서 bfast 패키지를 사용하여 시계열을 분해합니다. 중단 점 전후의 추세 세그먼트의 기울기를 추출 할 수 있는지 궁금했습니다 (끝 또는 다른 중단 점까지)?중단 점 전후 기울기 찾기

아래의 예는 참조 설명서에서 가져 왔습니다.

harvest

코드는이 여기에 있었다 생성합니다.

require(bfast) 
require(strucchange) 
require(sandwich) 
require(forecast) 
require(raster) 
require(sp) 
fit <- bfast(harvest, season="harmonic", max.iter=2) 
plot(fit, type="trend") 

문제는 결과 출력 객체 즉, 내가 중단 점 사이의 값을 찾아 그 그래프 값의 기울기를 공식화를 시도 할 수 있습니다, 자동 아니라는 것을, 그러나 과정은 매우 시간 때문에 시간이 많이 소모된다 수동으로 시작/끝 중단 점 값을 찾아서 그 사이의 모든 값을 추출해야합니다. 그래서 이상적으로 여러 시간 계열에 대해 사용 가능한 모든 중단 점 전후의 경향 기울기 (파란색 선)를 쉽게 식별 할 수있는 방법을 찾고자합니다.

감사합니다. 감사합니다.

답변

1

하나는 나중에 사용하기 위해 객체로 저장할 수 있도록 그래프에서 기울기 값을 추출하려면 :

흥미롭게도, 당신이 지정하는 작업을 수행합니다.

(plot(fit, ANOVA=TRUE)$slope) 

꽤 흥미 당신은 플롯 기능에 대한 STR()를 사용합니다.

> str(plot(fit, ANOVA=TRUE)) 
'data.frame': 5 obs. of 2 variables: 
$ slope: num 0.00109 0.01314 -0.20077 0.14659 0.11524 
$ prob : num 9.07e-01 2.41e-05 1.01e-13 3.08e-13 1.06e-13 
> (plot(fit, ANOVA=TRUE)$slope) 
[1] 0.001088344 0.013139678 -0.200767197 0.146594801 0.115236688 
> 
1
plot(fit, ANOVA = TRUE) 

'각 트렌드 세그먼트에 대해 기울기 및 중요도 값'을 제공합니다. 유형 = "추세"

+0

노력에 감사드립니다. ANOVA를 TRUE로 설정하면 플롯에서 슬로프를 얻을 수 있지만 실제로는 슬로프 값을 추출하여 객체로 저장할 수 있습니다. 고마워, 나는 그것을 사용하여 그것을 찾을 수있었습니다. – rj2700

1

이 질문은 아주 오래된,하지만 나는 그들이 내가 희망

niter <- length(fit$output) 
slopes<-coef(fit$output[[niter]]$bp.Vt)[,2] 

을 포함 플롯() 또는 STR() 함수와 계산 시간을 호출하지 않고, 그것을 할 수있는 빠른 방법을 발견 도와 줘!