#2011, Eulalie Sauthier, Master Thesis

statio <- function(input_data,seuil_m,colonne,dbt,dbt_j,fin,fin_j,fq) {

#permet de calculer la stationarité, les résidus et les autocorrélations des données

name<-colnames(input_data)[colonne] #déclaration des noms de fichier
name_k<-paste("Stationarité pour", colnames(input_data)[colonne])
nom<-paste("Stationarité_", name)
nom_1<-paste("Auto-Correlation", name)
 
buffer<-ts(input_data[ ,colonne], start=c(dbt,dbt_j),end=c(fin,fin_j),freq=fq)
pouf<-buffer>seuil_m #garde les valeurs supérieures au seuil
  
x<-length(cumsum(buffer[which(pouf)]))
y<-sum(buffer[which(pouf)])
 
pente<-y/x
#plots de stationarité
pdf(paste("../Image/stationarité_",name,".pdf"))
plot(na.omit(time(buffer)[pouf]),cumsum(buffer[which(pouf)]),type="l",main=nom, ylab="Rang",xlab="Temps")
lines(c(na.omit(time(buffer)[pouf])[1],na.omit(time(buffer)[pouf])[length(na.omit(time(buffer)[pouf]))]),c(0,sum(buffer[which(pouf)])), col="red")
dev.off()
 
vecteur_residus <- (cumsum(buffer[which(pouf)])) - pente*1:x #vecteur de résidus
zero<- vector(length=x)*0
color=rainbow(17)
pf<-paste("../Image/Residus",name,".pdf") #graphe de résidus
pdf(pf)
plot(na.omit(time(buffer)[pouf]), vecteur_residus, type="l", main= paste("Résidus pour", colnames(input_data)[colonne]),ylab="Résidus", xlab="Temps")
lines(zero)
legend("bottomright",colnames(input_data)[colonne])
dev.off()

pf<-paste("../Image/Auto_correlation_auto",name,".pdf") #autocorrélation 
pdf(pf)
a<-acf(buffer,na.action=na.pass, main=nom_1)
dev.off()

pf<-paste("../Image/Auto_correlation_entiere",name,".pdf") #autocorrélation avec fit exponentielle
pdf(pf)
plot(a,xlim=c(-10,10), main=nom_1)
curve(splinefun(a$acf,a$lag)(x))
dev.off()

return(vecteur_residus)

 }