Professional Documents
Culture Documents
0)
2/14
0. Introduzione
http://www.ci.tuwien.ac.at/R/contents.html
In queste pagina si fa riferimento alla versione 1.9.0 di R.
I nomi per gli oggetti possono essere formati dalle lettere dell'alfabeto, dalle cifre 09, e dal carattere punto: ".''. Un nome non pu iniziare con una cifra (9ma non
ammesso ma m9a lo ) n con un punto seguito solo da cifre (.90 non ammesso
Francesco Lisi
ma .9a lo ).
E' importante sottolineare che in R usare lettere maiuscole piuttosto che minuscole
fa differenza e dunque, ad esempio, l'oggetto ma diverso dall'oggetto mA.
1. Comandi generali
Novembre 2006
versione 3.0
Per ottenere vettori di costanti o con andamenti regolari si usa il comando rep
rep(costante, n. di volte)
rep(min:max, n. di volte)
rep(c(0,6), n. di volte)
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
3/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
nrow(x)
comando
ncol(x)
write(y,"c:/sse/reults.out",ncolumns=1)
cbind(mat1, mat2)
Caricamento di un programma
2. Grafici
E' possibile creare il grafico di una serie di dati con il comando plot
plot(x, parametri)
source("c:/sse/sse")
Caricamento di una libreria
Creazione di un istogramma
hist(x,breaks=15)
objects()
Per rimuove l'oggetto di nome pippo
library(forecast)
rm(pippo)
rm(list=ls())
Opzioni
Stile
type="p"
Punti (default)
type="l"
Linee
type="b"
Linee e punti
type="h"
Istogrammi
?mean
Si supponga di avere una serie storica in formato ASCII contenuta nel file
c:\sse\pippo.dat. Per assegnare questa serie storica ad una variabile x di tipo array
x=scan("c:/sse/pippo.dat")
Si noti l'uso della barra / al posto della barra rovesciata \ tipica del DOS.
Nel caso di serie storiche possibile creare degli oggetti di classe ts mediante la
funzione ts. Per esempio, se i dati fossero annuali e partissero dal 1951 si avrebbe
x=ts(scan("c:/sse/pippo.dat"),start=1951,frequency=1)
4/14
Opzioni
Stile
main="titolo"
sub="sottotitolo"
xlab="intestazione"
ylab="intestazione"
xlim=c(xmin,xmax)
Scala dell'asse x
ylim=c(ymin,ymax)
Scala dell'asse y
lwd=1
lty=1
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
5/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
6/14
Mediana
median(x)
Funzione
Descrizione
abline(a,b)
abline(h=c)
abline(v=c)
lines(y, parametri)
text(xpos,ypos,testo)
Varianza
Quantili
var(x)
quantile(x, c(0.3,0.8))
log(x)
# sottoserie n1-n2 #
par(mfrow=c(3,1))
plot(serie1)
plot(serie2)
plot(serie3)
Per rappresentare diverse serie sullo stesso grafico disponibile il comando ts.plot
Grafici multipli
win.graph(width=6, height=9)
Trasformazione logaritmica
asimm(x)
Grafici di sottoserie
plot(window(x,n1,n2))
Differenziazione
diff(x,lag=1,differences=1)
ts.plot(serie1,serie2,,gpars=list(col=c(2,3,)))
x.sub=x[x==1]
x.sub=x[x!=1]
3. Analisi preliminari
rnorm
summary(x)
wn=rnorm(200)
Media
mean(x)
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
7/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
8/14
y=arima.sim(n,model,rand.gen=rnorm,sd,n.start = NA..)
Ad esempio:
(normale di default)
sd = deviazione standard dell'innovazione
n.start = numero di osservazioni da tralasciare
acf(x,lag.max=36,type=c(correlation,covariance,
y=arima.sim(n=100,model=list(ar = c(0.8,-0.4),ma=c(-0.2,
partial),plot=TRUE)
0.3)), sd = 1)
per generare una serie da un modello ARIMA(2,1,1) ad innovazioni normali
y=arima.sim(n=200,list(order=c(2,1,1), ar=c(0.88,-0.48),
ma=c(-0.22)), sd=sqrt(0.18))
Si noti che :
-
z=acf(x,lag.max=36)
z$acf
serie x e y bisogna prima inserirle in una matrice, ad es. z=cbind(x,y) e poi richimare
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
9/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
10/14
Per una serie storica x possibile tracciare i grafici di ACF e PACF in una stessa
cfs(x,lagmax=24,new=T)
ident$sc
lopzione new specifica se la funzione deve aprire una nuova finestra grafica.
ident$hqc
ar.ols.
fit.x=ar.ols(x,aic=TRUE,order.max=10,intercept=T)
best.arima(x,d=1,D=0,max.p=5,max.q=5,
max.P=2,
max.Q=2,
Questo comando adatta alla serie x un modello AR(p) stimando i parametri con le
equazioni di Yule-Walker e selezionandone l'ordine mediante il criterio AIC
nellinsieme dei modelli AR di ordine p (0,1,2,,10)
fit.x=ar.ols(x,aic=FALSE,order.max=3,intercept=F)
La stima avviene come sopra, ma ora viene stimato solo un modello di ordine 3, in
questo caso senza costante.
libreria sse
fit.x$order
pmax e qmax sono i valori massimi degli ordini p e q per i quali si vuole calcoalre il
fit.x$resid
modello ARMA(p,q)
fit.x$aic
ident=automatic(x,pmax,qmax,c)
ident$aic
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
11/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
Una procedura preferibile viene fornita dal comando arima, il quale stima un
fit.x$aic
12/14
fit.x$code
fit.x$resid
fixed=NULL)
se
include.mean=T
viene
stimato
un
modello
con
costante,
se
Si noti che diverse specificazioni dei mofelli ARMA hanno differenti segni per i
coefficienti AR e/o MA. La definizione usata da R la seguente
X[t]=a[1]X[t-1]++a[p]X[t-p]+e[t]+ b[1]e[t-1]+...+ b[q]e[t-q]
),period=12),include.mean=T)
x.modello=arima(x,order=c(p,0,q), include.mean=T)
verosim=x.modello$loglik
varianza=x.modello$sigma2
aic2=(-2*verosim)+2*(p+q)
fit.x
fit.x$coef
aic=log(varianza)+(2*(p+q))/n
scc=log(varianza)+(p+q)*(log(n)/n)
hqc=log(varianza)+(p+q)*c*log(log(n))/n
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
13/14
F. Lisi - I principali comandi di R per lanalisi delle serie storiche (versione 3.0)
14/14
libreria sse
bt=Ljung.Box(x, lag=20, par=2)
pt$statistics
par vale 0 se il test viene effettuato sulla serie originale e p+q se viene applicato ai
pt$p.value
p-value
Per effettuare il test BDS di indipendenza si usa il comando bds.test facente parte
bt$parameter
bt$p.value
p-value
bdsx=bds.test(x,d=4,eps=c(eps1,eps2,eps3,))
indica il massimo valore di d per il quale il test viene calcolato. Ad es. d=4
significa che il test viene calcolato per d=2,3,4
contenente il valore della statistica test, i g.d.l. e il p-value per il particolare ritardo
eps vettore numerico di valori per epsilon. Il test viene calcolato per ogni valore di
considerato.
bdsx$statistics
jb$statistics
jb$parameter
jb$p.value
p-value
bdsx$p.value
8. Previsione
Per effettuare il test di Pierce sulla stagionalit residua si usa il comando pierce.test
facente parte della libreria sse
pt=pierce.test(x,m,s,para)
periodo stagionale
para numero di parametri stimati. Se il test viene fatto sulla serie originale para=0,
altrimenti corrisponde all'ordine del modello ARMA.