### Esempio da Tab. 7.1 Tab7.1 <- read.table(file="Tab7.1.txt", h=T, sep="\t", dec=",") head(Tab7.1) ## time plot plot(Tab7.1$vendite, type="l", col="blue", xlab="Tempo", ylab="Vendite", main="Vendite ex Tab. 7.1") ## Sistemazione dei dati da long a wide form: ## reshape series in wide form library(reshape) ## melt has no visible effect on structure ## (but reorders months by alphabet!) t7 <- Tab7.1 t7$mese <- rep(1:12, 2011-2005+1) vend.long <- melt(t7, id=c("anno", "mese")) ## reshape in wide format vend.wide <- as.matrix(cast(vend.long, anno~mese)) ## seasonal plot plot(vend.wide[1, -1], type="l", ylim=c(min(vend.wide), max(vend.wide)), main="Vendite ex Tab. 7.1, Seasonal plot", xlab="Mese", ylab="Vendite") for(i in 2:(2011-2005+1)) { lines(vend.wide[i, -1], col=i) } ## month plot plot(vend.wide[, 1], pch=19, ylim=c(min(vend.wide), max(vend.wide)), main="Vendite ex Tab. 7.1, Month plot", xlab="Anno", ylab="Vendite") for(i in 2:(2011-2005+1)) { points(vend.wide[, i], col=i, pch=19) } ## detrend series y <- Tab7.1$vendite ## modello di trend lineare tmod <- lm(y ~ I(1:84)) plot(Tab7.1$vendite, type="l", col="blue", xlab="Tempo", ylab="Vendite", main="Vendite ex Tab. 7.1") abline(tmod, col="orange") ## se le stime y.hat rappresentano il trend, ## allora i residui sono la serie detrendizzata y.det <- resid(tmod) plot(y.det, type="l", xlab="Mesi", ylab="", main="Vendite ex Tab. 7.1, detrended") abline(h=0, lty=2) ## trasformiamo in time series (ts) per ## applicare automaticamente la stima della ## funzione di autocorrelazione (ACF) ts.ydet <- ts(y.det, start=c(2005,1), freq=12) plot(acf(ts.ydet), main="ACF delle vendite detrend.") ## decomposizione di una serie storica in ## T/C, S e R: ## (anche qui serve un oggetto ts) ts.y <- ts(y, start=c(2005,1), freq=12) plot(decompose(ts.y))