2016-01-25 1 views
0

J'ai une question concernant le résultat de la fonction bfast dans R. Supposons que j'ai une série chronologique où aucune rupture n'est détectée.Comment extraire la pente d'un objet bfast

library(bfast) 
library(zoo) 

NDVI <- as.ts(zoo(som$NDVI.b,som$Time)) 
NDVI_w <- window(NDVI, c(2001, 4) , c(2008, 13)) 
fit <- bfast(NDVI_w, h=1/2, season="dummy", max.iter=1) 
plot(fit) 

Comment puis-je extraire la valeur de pente du composant de tendance de l'objet bfast (fit)? L'option 'plot' avec ANOVA = TRUE ne fonctionne pas.

plot(fit, ANOVA=TRUE)$slope 

Une option pourrait être, pour le calculer basé sur la composante tendancielle prévue, mais est-il possible de l'obtenir directement de l'objet « fit »?

out <- fit$output[[1]] 
plot(out$Tt) 
lm(out$Tt ~ time(out$Tt))$coefficients[2] 

Tout indice est plus qu'apprécié.

Répondre

1

Vous avez déjà compris (vraisemblablement à partir du fichier d'aide) que le composant de tendance est donné par fit$output[[1]]$Tt.

Vous dites que vous voulez la "valeur de pente du composant de tendance". Il suffit donc de prendre la pente à partir des deux premières valeurs de tendance: diff(fit$output[[1]]$Tt[1:2])/diff(time(fit$output[[1]]$Tt)[1:2]).