#6. Nov. 2000. library(SfS) library(ts)#Immer zu Beginn ! #Simulation autoregressiver Prozess help(filter)#erklaert genauer, was die Funktion filter macht. x <- filter(ts(rnorm(100)),filter=0.5,method="recursive",init=rnorm(1)) plot(x) #Variieren Sie den Wert 0.5 und beschreiben Sie das qualitative Verhalten ! x_ts(rnorm(100)) for (i in (2:100)) x[i] <- 0.5*x[i-1]+x[i] #Simulation ohne die Funktion filter, gleiches Ergebnis #ARCH-Prozesse f.arch.sim <- function(n=500,init=200,a) { ## Purpose: Simulating the Arch(1) process ## ------------------------------------------------------------------------- ## Arguments: n=length of the series, init=length of the initial segment ## that is discarded, a= Parameter of the model ## ------------------------------------------------------------------------- ## Author: Hans-Ruedi Kuensch, Date: 5 Feb 97, 16:49 m <- n+init x <- rnorm(m) for (i in (2:m)) x[i] <- sqrt(1+a*x[i-1]^2)*x[i] ts(x[(init+1):m],start=1)} plot(f.arch.sim(a=0.8)) #Variieren Sie den Parameter und beschreiben Sie das qualitative Verhalten #Behandlung von Saisoneffekten und Trends airline_ts(scan.url("http://stat.ethz.ch/Teaching/Datasets/airline.dat"), start=c(1949,1),freq=12) #1. Parametrische Schaetzung von Trend und Saisoneffekten zeit <- (1:144)/12 #Definition der Zeit als erklaerende Variable zeit2 <- zeit^2 monat <- factor(rep(1:12,12)) #Definition der Monate als erklaerende Variable reg.airl <- lm(log(airline)~zeit+zeit2+monat) #Anpassen mit Kleinsten Quadraten coef(reg.airl) par(mfrow=c(3,1)) plot(log(airline)) plot(fitted(reg.airl)) plot(resid(reg.airl),type="l") abline(h=0) #2. Differenzenbildung plot(diff(log(airline))) #gewoehnliche Differenzen plot(diff(diff(log(airline)),lag=12)) #saisonale und gewoehnliche Differenzen #3. nichtparametrische Zerlegung in Komponenten help(stl) airl.stl <- stl(log(airline),s.window=7,t.window=21) airl.stl <- stl(log(airline),s.window=7,t.window=21,robust=T) airl.stl <- stl(log(airline),s.window="periodic",t.window=99) #(Gleiches Resultat wie bei parametrischer Zerlegung (Trend linear)) plot.stl(airl.stl) #Untersuchen Sie die Effekte, wenn man die verschiedenen Parameter variiert #Untersuchen Sie die Effekte von Ausreissern, z.B. airline[73] <- 442 airline[73] <- 242 #Vergleich Differenzenbildung und Elimination mit stl: str(airl.stl) airl.irregular <- airl.stl$time.series[,3]#Extrahieren des irregulaeren Teils plot(ts.union(diff(diff(log(airline)),lag=12),airl.irregular)) plot(ts.union(diff(diff(log(airline)),lag=12),airl.irregular), plot.type="s",col=2:3)