Untitled

 avatar
unknown
plain_text
5 months ago
2.3 kB
3
Indexable
# wczytanie danych
# The number of international passenger bookings (in thousands) per month
# on an airline (Pan Am) in the United States were obtained from the Federal
# Aviation Administration for the period 1949–1960 (Brown, 1963) -> 12 years

# timeseries.object.name <-  ts(data, start, end, frequency)


data(AirPassengers)

tabela <- AirPassengers
tabela

print(tabela) 
length(tabela)
head(tabela, n=10)  #first 10 observations
tail(tabela, n=12)  #last 10 observations -> here last year


class(tabela) # time series object
start(tabela)
end(tabela)
frequency(tabela) # liczba obserwacji w jednostce czasu
deltat(tabela)  #okres czasu pomiędzy kolejnymi obserwacjami -> here 1/12
deltat(tabela)*length(tabela) # = frequency
cycle(tabela) # pozycje każdej obserwacji w danym cyklu (tu roku)

summary(tabela)  # useless?

plot(tabela, ylab = "Passengers (in 1000's)")

#  widoczny trend i komponenta sezonowa

############ Funkcja sACF

# funkcja z pakietu stats
acf(tabela, lag.max = 40) # zbędna wartość w 0 oraz lag jest ułamkiem częstości

# leipiej użyć pakietu forecast
library(forecast)

Acf(tabela, lag.max = 40, main = "Funkcja sACF", col = "darkolivegreen4")

# dla porównania

white_noise <- as.ts(rnorm(100))

Acf(white_noise, lag.max = 30, main = "Funkcja sACF", col = "darkolivegreen4")


# znów widoczny trend i komponenta sezonowa
# trend moze byc tez losowy !!!
mean(tabela)  # what about mean within years ?
tapply(tabela, cycle(tabela), mean)   # średnia w miesiącach po latach
# po latach
meanyear<-aggregate(tabela, 1, function(x) mean(x[1:12]))
meanyear
plot(meanyear) 
# trend ewidentnie wzrostowy (linowy)?

# średnia od stycznia do marca po latach
meanyear<-aggregate(tabela, 1, function(x) mean(x[1:3]))
meanyear
plot(meanyear) 

# Estymacja trendu

# Średnia ruchoma

tabela_smooth <- filter(tabela, sides = 2, filter = rep(1 /13, 13)) # q=6
head(tabela_smooth) # 2q wartości NA
sum(is.na(tabela_smooth))
# pozbywamy się NA
tabela_smooth_no_na <- na.omit(tabela_smooth)
sum(is.na(tabela_smooth_no_na))

plot(tabela, main = "Metdoa średniej ruchomej", col = "darkolivegreen4", lty = 1, lwd =2, ylab = "AirPassengers")
lines(tabela_smooth_no_na, col = "red", lty = 2)
legend("bottomright", legend = c("szereg", "wyestymowany trend"), col = c("darkolivegreen4", "red"), lty = c(1,2))
Editor is loading...
Leave a Comment