Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Corso di Inferenza Statistica
Laboratorio statistico con R
Nicola Torelli
Roberta Pappadà
[email protected]
[email protected]
Dipartimento di Scienze Economiche, Aziendali, Matematiche e
Statistiche “B. de Finetti”
a.a. 2016/2017
1 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
1. Introduzione al pacchetto R
2 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
• Il software statistico
è un progetto open source basato sul
linguaggio S e, diversamente da S–Plus, è gratuito ed è scaricabile dal sito http://www.r-project.org.
• R is a free software environment for statistical computing and
graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.
http://www.r-project.org.
• R è stato ideato da due ricercatori neozelandesi, Robert Gen-
tleman and Ross Ihaka. Attualmente R viene sviluppato dall’ R
Development Core Team (ultima versione R 3.3.1 2016-06-21.).
• La sua popolarità è dovuta anche all’ampia disponibilità di mod-
uli distribuiti con la licenza GPL (GNU General Public Licence) e
organizzati in un apposito sito chiamato "CRAN" (Comprehensive
Archive Network).
3 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
• R è basato su un linguaggio ad oggetti che può essere esteso
liberamente dall’utente.
• R ammette una grande varietà di tipi di dati, tra cui vettori, matrici,
data-frames e liste.
• Le funzioni create dagli utenti e tutti gli oggetti di dati sono con-
servati in memoria durante una sessione interattiva.
• Permette diverse rappresentazioni grafiche dei dati.
• Si può interfacciare con altri linguaggi di programmazione, quali
C, C++ e le varie versioni del Fortran.
• R contiene un set standard di pacchetti, che comprendono fun-
zioni R, dati, e codice compilato in un formato ben definito. La directory in cui sono archiviati i pacchetti si chiama la libreria. Molti
altri pacchetti sono disponibili per il download e l’installazione.
4 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Sturmenti di lavoro, aiuto e salvataggio
Una volta aperta la console di R (doppio click di mouse sull’icona di
R), esistono due modi per eseguire dei comandi specifici:
• digitare il comando dal prompt > e premere "Invio" (se un co-
mando non viene completato alla fine della linea, può venire concluso nelle linee successive, nelle quali il prompt diventa +)
• creare uno script (file .R) e digitare Ctrl+R per eseguire una linea
di comando
Il sistema mette a disposizione dell’utente un sistema di aiuto attraverso
il quale si può consulatare manuali, ricercare e/o identificare librerie,
funzioni, esempi
• il comando help.start() attiva il browser di sistema utilizzato
per navigare nella documentazione disponibile
• l’istruzione help(nomeComando) (o ?nomeComando) fornisce
informazioni dettagliate su un comando specifico
5 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
La Working directory è la directory dove R collocherà i file riguardanti
una determinata elaborazione. Per selezionare il percorso scelto si
può utilizzare la finastra di dialogo Change directory dal menù
File
• getwd() ritorna l’indicazione dell’indirizzo relativo alla directory
di lavoro corrente
• ls() per controllare gli oggetti presenti nella directory di lavoro
corrente
Per concludere una sessione di lavoro si utilizza il comando q().
• R salva gli oggetti creati (workspace) in un file con estensione
.RData
• è possibile ripristinare in una sessione successiva il workspace in
memoria (Load Workspace)
6 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Semplice aritmetica in R
• operatori aritmetici: + , - , ∗ , / , ^
• operatori logici: & (AND), | (OR), ! (NOT)
• operatori di confronto: < (minore), > (maggiore), <= (minore o
uguale), >= (maggiore o uguale), == (uguale), != (diverso)
• La valutazione di espressioni che coinvolgono operatori di con-
fronto e operatori logici fornisce come risultato TRUE o FALSE
• funzioni matematiche: sqrt(), abs(), exp(), log(), log2(),
sin(), cos(), sum(), max(), min(), etc.
• operatori di assegnamento: <- o ->
7 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Esempio: Vettori
> vett<-c(100,18,41,21,53)
> vett
[1] 100 18 41 21 53
> vett[2]
[1] 18
> vett[c(1:3)]
[1] 100 18 41
> vett>50
[1] TRUE FALSE FALSE FALSE TRUE
> vett[vett>20 & vett<80]
[1] 41 21 53
> vett*3
[1] 300 54 123 63 159
> length(vett)
[1] 5
> sum(vett)
[1] 233
> cumsum(vett)
[1] 100 118 159 180 233
> mean(vett)
[1] 46.6
> sortvett<-sort(vett)
> sortvett
[1] 18 21 41 53 100
> median(vett)
[1] 41
8 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
2. Elementi di programmazione
9 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
R fornisce una cospicua varietà di procedure e funzioni per analisi
statistiche anche molto sofisticate raccolte in pacchetti aggiuntivi, che
possono essere caricati facilmente dalla console
> install.packages("ggplot2")
> library(ggplot2)
o considerando le opzioni del menù Packages.
Il comando ??ggplot2 permetterà di accedere alle Help pages e
visionare la documentazione relativa alle funzioni presenti nel pacchetto.
In R è possibile definire nuove funzioni.
10 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
La definizione di una funzione in R deve rispettare la seguente sintassi
nomefunzione <- function(arg1,arg2,...){espressione}
• espressione è un’espressione, o un insieme di espressioni e
arg1, arg2, ... sono gli input passati alla funzione.
• Il comando che attiva la funzione è
> nomefunzione(espressione1,espressione2,...)
• Il risultato coincide con il valore determinato dall’ultima espres-
sione del corpo della funzione o con quella individuata dal comando return().
• Le funzioni in R possono essere anche ricorsive!
11 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Costrutti condizionali
if (condizione) {istruzione}
if (condizione) {istruzione1}
else {istruzione2}
Costrutti iterativi
for (nome.var in sequenza)
corpo del ciclo
while (condizione)
corpo del ciclo
12 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Esempio: La funzione fattoriale
>
+
+
+
+
+
+
+
+
+
fatt<-function(n){
if(n<0)
stop("argomento negativo")
ris<-1
while(n>0){
ris<-ris*n
n<-n-1
}
return(ris)
}
> fatt(5)
[1] 120
13 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
3. Argomenti del Laboratorio
14 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
1. Distribuzioni di probabilità discrete: Binomiale e Poisson
choose(),sum(),plot(),seq(),points(),dbinom(),
rbinom(),dpois(),...
2. Distribuzioni di probabilità continua
?Distributions,curve(),dnorm(),dgamma(),dbeta(),
qnorm(),runif(),table(),...
3. Modello Gaussiano bivariato, distribuzione di somme di variabili
aleatorie, Teorema limite centrale
persp(),countour(),dchisq(),rchisq(),...
4. Distribuzioni campionarie e introduzione ai metodi Monte Carlo
for(),mean(),var(),vector(),...
5. Stimatori e loro proprietà, funzione di verosimiglianza
boxplot(),cbind(),sqrt(),sort(),...
6. Intervalli di confidenza e verifica di ipotesi
abline(),lines(),qt(),qqnorm(),qqline(),t.test(),
var.test(),...
15 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
N◦ ore laboratorio: 10
è un ambiente di sviluppo integrato per R.
Si può scaricare da http://www.rstudio.com
E’ costituito da
• finestra del codice (scrivere-eseguire script);
• finestra della console (riga di comando - output);
• finestra degli oggetti (elenco oggetti-cronologia dei comandi);
• la finestra dei pacchetti-dei grafici-dell’aiuto in linea.
16 / 17
Introduzione al pacchetto R
Elementi di programmazione
Argomenti del Laboratorio
Bibliografia
Bibliografia
• Iacus, S.M., Masarotto, G. (2007). Laboratorio di statistica con R.
II ed., Mc Graw-Hill.
• Crivellari, F. (2006). Analisi statistica dei dati con R. Apogeo
• Trevisani, M, N. Torelli (2003) Introduzione all’Analisi Esplorativa
dei Dati mediante R. Edizioni Goliardiche
17 / 17