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