Il 0% ha trovato utile questo documento (0 voti)
21 visualizzazioni37 pagine

Statistica Con R

Perché usare R ? Sebbene ci siamo molti software, esistono delle ragioni specifiche per usare R: a differenza di molti software, R è gratuito; permette pressoché qualsiasi tipo di analisi statistica; offre la possibilità di estendere le funzionalità di base attraverso l'uso dei pacchetti; è disponibile per sistemi Windows, Mac OS e Linux e la sintassi è sempre la stessa.
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
21 visualizzazioni37 pagine

Statistica Con R

Perché usare R ? Sebbene ci siamo molti software, esistono delle ragioni specifiche per usare R: a differenza di molti software, R è gratuito; permette pressoché qualsiasi tipo di analisi statistica; offre la possibilità di estendere le funzionalità di base attraverso l'uso dei pacchetti; è disponibile per sistemi Windows, Mac OS e Linux e la sintassi è sempre la stessa.
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Statistica con R

Jody Tubi. Email: jodytubi@[Link]

INTRODUZIONE.

Accesso ai dati.

La diffusione dei PC ha reso disponibile una quantit di dati immensa: le


imprese private dispongo di dati su clienti e fornitori e gli enti pubblici
dispongono di dati sulla cittadinanza.
La necessit di migliorare beni e servizi ha reso indispensabile studiare i dati a
disposizione e, per questo motivo sono disponibili molti programmi di statistica
come per esempio, STATA, SPSS, SAS, e R.

3/37

Perch usare R ?

Sebbene ci siamo molti software, esistono delle ragioni specifiche per usare R:
a differenza di molti software, R gratuito;
permette pressoch qualsiasi tipo di analisi statistica;
offre la possibilit di estendere le funzionalit di base attraverso l'uso dei
pacchetti;
disponibile per sistemi Windows, Mac OS e Linux e la sintassi sempre la
stessa.

4/37

Perch usare RStudio ?

RStudio un'applicazione che integra alcuni strumenti di R rendendoli pi


accessibili, e consentendo, cos, di essere produttivi. Ad esempio,

ha una migliore gestione degli script;


rende pi facile l'installazione e l'aggiornamento dei vari pacchetti;
ha la stessa interfaccia grafica indipendentemente dal sistema operativo;
consente di produrre report facilmente riproducili.

5/37

Cos' R?

R un linguaggio e un ambiente per calcoli statistici. Nasce da un'idea di John


Chambers ed in grado di fornire un'ampia scelta di tecniche statistiche e
grafiche.
R un linguaggio di programmazione object oriented: permette di creare
(definire) oggetti che possono interagire gli uni con gli altri.

Le capacit del linguaggio possono essere ampliate tramite l'installazione e l'uso


di pacchetti specifici che contengono ulteriori funzioni.

6/37

I pacchetti.
I pacchetti sono dei file che estendono le possibilit di R e contengono funzioni e
dati. Vanno installati con uno specifico comando. Se, ad esempio, vogliamo
installare il pacchetto car, usiamo il comando [Link]()
[Link](car)

I pacchetti devono essere richiamati all'avvio del programma. Per richiamare


car, usiamo il comando library():
library(car)

Sul sito [Link] si trovano le istruzioni per tutte le funzioni


presenti nei vari pacchetti. In alternativa, si pu usare il tab Help nel pannello in
basso a destra di RStudio.

7/37

GLI OGGETTI IN R.

Gli oggetti.
Gli oggetti sono semplicemente le "cose" che creiamo (o meglio, definiamo)
all'interno di R.
Alcuni degli oggetti pi comuni sono, ad esempio:
i vettori;
i data-frame;
le serie storiche.

9/37

I vettori - 1.
Un vettore pu essere pensato come la colonna di una tabella. Pu essere
chiamato anche variabile.
ESEMPIO: creiamo il vettore v contenente i numeri da 1 a 5:
v = c(1,2,3,4,5)

La c una funzione generica che concatena gli elementi per formare un vettore.

10/37

I vettori - 2.
Esistono diversi tipi di vettori:
vettori numerici (numeric vectors);
vettori con caratteri (character vectors);
vettori logici (logical vectors).
a = c(1,2,5.3,6,-2,4) # vettore numerico
b = c("uno","due","tre") # vettore con caratteri
c = c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE) # vettore logico

11/37

I dataframe - 1.
Un data-frame un insieme di vettori e, banalmente, pu essere pensato come
una tabella con pi colonne. Spesso chiamato anche dataset.
Esempio:
creiamo le colonne della tabella
d = c(673,773,845,923)
e = c("rosso","verde","blu","bianco")
f = c(TRUE,TRUE,TRUE,FALSE)

Creiamo la tabella con il comando [Link]()


dat = [Link](d,e,f)

12/37

I dataframe - 2.
Infine, visualizziamo la tabella scrivendo il nome che le abbiamo assegnato:
dat
##
##
##
##
##

1
2
3
4

d
e
f
673 rosso TRUE
773 verde TRUE
845
blu TRUE
923 bianco FALSE

13/37

Lavorare con i dataframe.


A volte pu essere necessario lavorare solo con alcune variabili del data-frame.
Per fare ci ci sono 2 modi:
usare i comandi attach() e detach()
attach(dat) # "apro" il dataframe
e # richiamo la variabile
detach(dat) # "chiudo" il dataframe

usare il comando $
dat$e # sintassi: NomeDataFrame$NomeVariabile

14/37

Le serie storiche.
Le serie storiche sono, semplicemente, dei dati legati al tempo.
In R, il comando ts() la serie storica pi semplice e consente di trasformare un
insieme di dati in serie storiche.
Per fare questo necessario conoscere l'istante di partenza della serie storica e
la frequenza.

15/37

Esempio.
Disponiamo del numero di laureati triennali in materie umanistiche rilevato
annualmente fra il 2002 e 2008 e vogliamo "trasformare" il vettore in una serie
storica.
lut=c(77312,90929,102935,121557,144322,143881,140697)
LUT=ts(lut,start=2002,frequency=1)
LUT
##
##
##
##
##

Time Series:
Start = 2002
End = 2008
Frequency = 1
[1] 77312 90929 102935 121557 144322 143881 140697

16/37

RAPPRESENTAZIONE DEI DATI.

Scatterplot - 1.
importante rappresentare graficamente i dati di cui si dispone per renderli pi
comprensibili. Uno dei grafici pi comuni il grafico a dispersione o
"scatterplot", un tipo di grafico che mette in relazione 2 variabili.
data(mtcars)
plot(mtcars$hp, mtcars$mpg, xlab = "Potenza (cv)",
ylab = "Consumo (miglia US/gallone)", [Link]=1.2,
[Link]=1.8, main="Consumo e Potenza", font = 2,
[Link] = 2, [Link]="DodgerBlue",
[Link]="DarkSlateGray", pch = 16, col = "RoyalBlue")
abline(lm(mtcars$mpg~mtcars$hp), lwd = 3,lty = 4, col = "SeaGreen")
text(155,25,"retta di regressione", font=2,col = "SeaGreen", cex=1.5)

18/37

Scatterplot - 2.

19/37

STATISTICA DI BASE.

Statistica di base.
Con R calcolare le statistiche di base come media, davvero molto semplice.
v1=c(134,636,139,131,237,144,901,656,149,604,093,154,918,648,161,304,728,
163,293,324,944,594,110,189,132,502,844,604,147,264,156,976,156,854,434)
mean(v1) # calcola la media
## [1] 412.0857
median(v1) # calcola la mediana
## [1] 293

21/37

var(v1) # calcola la varianza campionaria


## [1] 89140.79
sd(v1) # calcola la standard deviation campionaria
## [1] 298.5645
v2=c(134636,139131,144901,149040,154918,161030,163293)
v3=c(94494,110189,132004,147264,156976,156854,159434)
cor(v2,v3) # calcola la correlazione
## [1] 0.9452311

22/37

Statistica di base - 3.
Esistono delle funzioni, poi, che con un unico comando ci riassumono tutte le
informazioni che ci servono:
summary(v1)
##
##

Min. 1st Qu.


93.0
151.5

Median
293.0

Mean 3rd Qu.


412.1
642.0

Max.
976.0

library(psych)
describe(v1)
##
vars n
mean
sd median trimmed
mad min max range skew kurtosis
## 1
1 35 412.09 298.56
293 387.97 238.7 93 976
883 0.57
-1.27
##
se
## 1 50.47

23/37

I TITOLI AZIONARI.

Le serie storiche delle azioni - 1.


Le serie storiche dei titoli azionari sono oggetti pi complessi degli oggetti ts che
abbiamo visto prima: in R sono scaricati con il pacchetto quantmod e gestiti dal
pacchetto xts.
#[Link]("quantmod") # installo il pacchetto quantmod
library(quantmod) # richiamo il pacchetto quantmod
getSymbols("[Link]") # scarico i valori dell'azione
## [1] "[Link]"

L'oggetto ottenuto ha classe xts zoo.

25/37

Le serie storiche delle azioni - 2.


tail([Link], n = 5)
##
##
##
##
##
##
##
##
##
##
##
##

2015-12-07
2015-12-08
2015-12-09
2015-12-10
2015-12-11
2015-12-07
2015-12-08
2015-12-09
2015-12-10
2015-12-11

[Link] [Link] [Link] [Link] [Link]


12.88
13.11
12.87
13.02
8601400
12.91
12.93
12.67
12.74
9105300
12.80
12.84
12.55
12.64
10476800
12.59
12.76
12.51
12.62
8652200
12.57
12.63
12.31
12.48
10499000
[Link]
13.02
12.74
12.64
12.62
12.48

26/37

Ancora grafici - 1.
La prima cosa da fare quando abbiamo una qualsiasi serie storica tracciarne il
grafico. Nel caso delle serie storiche finanziarie usiamo il comando
chartSeries():
[Link]=[Link]['2015-10-01::2015-12-11']
chartSeries([Link], type = "candlesticks",
name="Fiat Chrysler Automobiles",
theme = chartTheme("black"))

27/37

Ancora grafici - 2.

28/37

Le serie storiche delle azioni - 3.


In pratica, l'oggetto [Link] una specie di data-frame composto da 6 colonne e
ciascuna colonna una serie storica.
Come per i data-frame, possibile usare delle colonne con il comando $. Ad
esempio, per usare solo la colonna con i valori di apertura scriviamo:
[Link]$[Link].

29/37

Ancora grafici - 2.
Per esempio, diciamo di voler rappresentare i valori di chiusura del titolo:
chartSeries([Link]$[Link], name="Fiat Chrysler Automobiles")

30/37

RENDIMENTI.

Rendimenti giornalieri del titolo FCA.


Anche calcolare i rendimenti giornalieri di un titolo azionario con R molto
semplice, basta usare la funzione periodReturn() contenuta nel pacchetto
quantmod:
rendimenti1=periodReturn([Link],period='daily',type='log')
rendimenti2=periodReturn([Link],period='daily',type='log')

Per avere un data-set sui rendimenti dei giornalieri, settimanali, mensili,


trimestrali e annuali, si pu usare la funzione allReturns():
RendGen=allReturns([Link],type="log")

32/37

Statische sui rendimenti - 1.


possibile applicare le funzioni della statistica descrittiva di base anche ai
rendimenti:
mean(rendimenti1); sd(rendimenti1)
## [1] 0.0003121559
## [1] 0.02847879
mean(rendimenti2); sd(rendimenti2)
## [1] 0.0008023816
## [1] 0.01900184

33/37

Statische sui rendimenti - 2.


Eventualmente, possibile anche usare le funzioni riassuntive summary() e
describe() per avere un quadro pi completo:
describe(rendimenti1); summary(rendimenti1)
##
vars
n mean
sd median trimmed mad
min max range
## [Link]
1 2328
0 0.03
0
0 0.02 -0.16 0.24
0.4
##
skew kurtosis se
## [Link] 0.22
4.27 0
##
##
##
##
##
##
##

Index
Min.
:2007-01-01
1st Qu.:2009-03-24
Median :2011-06-25
Mean
:2011-06-22
3rd Qu.:2013-09-18
Max.
:2015-12-11

[Link]
Min.
:-0.1572472
1st Qu.:-0.0153606
Median : 0.0000000
Mean
: 0.0003122
3rd Qu.: 0.0164662
Max.
: 0.2399476
34/37

describe(rendimenti2); summary(rendimenti2)
##
vars n mean
sd median trimmed mad
min max range skew
## [Link]
1 52
0 0.02
0
0 0.02 -0.05 0.04 0.09 -0.25
##
kurtosis se
## [Link]
-0.03 0
##
##
##
##
##
##
##

Index
Min.
:2015-10-01
1st Qu.:2015-10-19
Median :2015-11-05
Mean
:2015-11-06
3rd Qu.:2015-11-24
Max.
:2015-12-11

[Link]
Min.
:-0.0541844
1st Qu.:-0.0115163
Median : 0.0011200
Mean
: 0.0008024
3rd Qu.: 0.0143869
Max.
: 0.0402955

35/37

Grafico dei rendimenti.


plot(rendimenti1, main="Rendimenti dal 2007", [Link]="#4682B4", font=2)

36/37

plot(rendimenti2, main="Rendimenti da ottobre 2015", [Link]="#2E8B57", font=2)

37/37

Potrebbero piacerti anche