Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Basi di Rstudio (software statistico), Appunti di Statistica Inferenziale

Basi di Rstudio, del corso di Laurea in Digital Marketing (II anno)

Tipologia: Appunti

2022/2023

In vendita dal 12/02/2024

francesca-lelli-6
francesca-lelli-6 🇮🇹

4 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
R STUDIO
E’ un programma per il calcolo statistico e i grafici, molto potente e flessibile
Si scarica legalmente in modo gratuito dal sito www.r- project.org ed è disponibile per Mac OS X, Windows e
Linux.
R non è solamente un software open source che fornisce un ambiente perfetto per le analisi statistiche, è
anche un linguaggio di programmazione (come ad esempio C, C++, Java etc).
Un ambiente di sviluppo integrato per R è RStudio (www.rstudio.com). RStudio include una console, un editor
che evidenzia la sintassi e che fornisce un supporto per la creazione di grafici e la gestione dell’area di lavoro.
Esiste una comunità molto vasta di utenti ed è sempre semplice trovare una soluzione ad eventuali problemi.
Di solito il primo impatto non è dei migliori. Questo perché R non ha una GUI (interfaccia grafica), ma funziona a
righe di comando. Questa è la ragione fondamentale della sua flessibilità: oltre ad utilizzare funzioni già
implementate nel software, è possibile fare cose che nessun altro ha fatto o pensato prima semplicemente
scrivendo noi stessi il codice.
COME SALVARE
In R esistono 3 tipologie di salvataggio, a seconda delle esigenze:
• la cronologia, che salva in formato .R (apribile con un blocco note) tutti i comandi digitati;
l'area di lavoro, che salva in formato .RData tutti gli oggetti creati nella sessione. Per esaminare il contenuto
(cioè gli oggetti) della sessione si utilizza il comando ls();
il salva su file, che salva in formato .txt l'insieme dei comandi e dell'output di R (tranne i grafici che vanno
salvati separatamente).
Nella versione per Windows, le tre opzioni di salvataggio si trovano tutte nel menu File.
In alternativa è possibile salvare utilizzando la sintassi:
per la cronologia: savehistory(‘Percorso di salvataggio/nomefile.R’)
per l’area di lavoro: save.image(‘Percorso di salvataggio/nomefile.Rdata’)
R COME CALCOLATRICE
Il simbolo di prompt > segnala che il programma è pronto per ricevere un'istruzione.
Nella riga di comando è possibile scrivere delle espressioni; queste vengono valutate, e il risultato viene
restituito subito all'utente:
> 2+3
[1] 5
> 29/26
[1] 1.115385
> 1+2/3^4
R prima esegue l'elevamento a potenza ^, poi la divisione / o la moltiplicazione * e infine l'addizione + o la
sottrazione
In caso di pari priorità, R esegue le operazioni da sinistra verso destra.
Come avviene in aritmetica, le parentesi ( ) cambiano l'ordine di priorità.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica Basi di Rstudio (software statistico) e più Appunti in PDF di Statistica Inferenziale solo su Docsity!

R STUDIO

  • E’ un programma per il calcolo statistico e i grafici, molto potente e flessibile
  • Si scarica legalmente in modo gratuito dal sito www.r- project.org ed è disponibile per Mac OS X, Windows e Linux.
  • R non è solamente un software open source che fornisce un ambiente perfetto per le analisi statistiche, è anche un linguaggio di programmazione (come ad esempio C, C++, Java etc).
  • Un ambiente di sviluppo integrato per R è RStudio (www.rstudio.com). RStudio include una console, un editor che evidenzia la sintassi e che fornisce un supporto per la creazione di grafici e la gestione dell’area di lavoro.
  • Esiste una comunità molto vasta di utenti ed è sempre semplice trovare una soluzione ad eventuali problemi. Di solito il primo impatto non è dei migliori. Questo perché R non ha una GUI (interfaccia grafica), ma funziona a righe di comando. Questa è la ragione fondamentale della sua flessibilità: oltre ad utilizzare funzioni già implementate nel software, è possibile fare cose che nessun altro ha fatto o pensato prima semplicemente scrivendo noi stessi il codice. COME SALVARE In R esistono 3 tipologie di salvataggio , a seconda delle esigenze:
  • la cronologia , che salva in formato .R (apribile con un blocco note) tutti i comandi digitati;
  • l'area di lavoro , che salva in formato. RData tutti gli oggetti creati nella sessione. Per esaminare il contenuto (cioè gli oggetti) della sessione si utilizza il comando ls();
  • il salva su file , che salva in formato .txt l'insieme dei comandi e dell'output di R (tranne i grafici che vanno salvati separatamente). Nella versione per Windows , le tre opzioni di salvataggio si trovano tutte nel menu File. In alternativa è possibile salvare utilizzando la sintassi:
  • per la cronologia: savehistory(‘Percorso di salvataggio/nomefile.R’)
  • per l’area di lavoro : save.image(‘Percorso di salvataggio/nomefile.Rdata’) R COME CALCOLATRICE Il simbolo di prompt > segnala che il programma è pronto per ricevere un'istruzione. Nella riga di comando è possibile scrivere delle espressioni ; queste vengono valutate, e il risultato viene restituito subito all'utente: > 2+ [1] 5 > 29/ [1] 1.

1+2/3^

  • R prima esegue l'elevamento a potenza ^, poi la divisione / o la moltiplicazione * e infine l'addizione + o la sottrazione
  • In caso di pari priorità, R esegue le operazioni da sinistra verso destra.
  • Come avviene in aritmetica, le parentesi ( ) cambiano l'ordine di priorità.

FUNZIONI MATEMATICHE

Tutte le principali funzioni matematiche sono disponibili in R: HELP DI UNA FUNZIONE Per qualsiasi dettaglio o chiarimento (ad es. argomenti in ingresso, valori restituiti) riguardo una funzione si consiglia di controllare il relativo help , anteponendo al nome il punto interrogativo (ad es. ?log), oppure utilizzando la funzione help (ad es. help(“log”)). Se non ci si ricorda esattamente lo spelling di una funzione è possibile provare il completamento automatico con il tasto TAB. DISTRIBUZIONI DI PROBABILITA’ Tutte le principali distribuzioni di probabilità sono disponibili in R. Le principali caratteristiche di ciascuna distribuzione sono accessibili attraverso le funzioni: Per controllare i parametri richiesti da ciascuna funzione occorre controllare l’help Simbolo Significato abs (x) Restituisce il^ valore assoluto^ di x sqrt (x) Restituisce la^ radice quadrata^ (“Square root”) di x exp (x) Restituisce^ l’esponenziale^ di x log (x) Restituisce il^ logaritmo^ naturale di x sin (x); cos (x); tan (x) Restituisce rispettivamente il seno , il coseno e la tangente di x y%%x Restituisce il resto della divisione in^ numeri interni^ di y su x y%/%x Restituisce il quoziente della divisione in^ numeri interi^ di y su x Simbolo Significato dxyz (x) restituisce la densità di probabilità della v.a. xyz nell'intervallo (- ∞; a ) pxyz (x) Restituisce la^ funzione di massa^ di probabilità della^ v.a xyz^ del^ quartile a qxyz (x) Restituisce il^ quartile^ corrispondente ad una certa^ probabilità a^ della^ v.a xyz rxyz (x) Restituisce^ a numeri casuali^ provenienti dalla v.a^ xyz Simbolo Significato qnorm ( ) Si riferisce alla distibuzione Normale o Gaussiana qt ( ) (^) Si riferisce alla distribuzione t di student qpois ( ) Si riferisce alla distibuzione di Poisson qchisq ( ) (^) Si riferisce alla distibuzione χ^2 qf ( ) Si riferisce alla distribuzione F di Fischer

MANIPOLAZIONE DI VETTORI

Alcune funzioni molto utili per trattare con i vettori sono le seguenti: I vettori possono essere anche accodati :

y<-c (a,b,0,15,a) y [1] 3.0 2.0 -4.0 0.5 8.0 0.0 15.0 3. Per accedere all’elemento n-esimo di un vettore x si utilizzano le parentesi [ ]. Ad esempio bbb[3] [1] "lezione" p[5:7] [1] 2.0 2.5 3. Consideriamo i vettori: a<-c(1,2,3) b<-c(4,5) Le operazioni tra vettori vengono eseguite elemento per elemento aa* restituisce un vettore della stessa lunghezza di a ; esso ha per elementi i quadrati degli elementi di a. Simbolo Esempio seq (from=,to=,by=) p <-seq (o,4,0.5) p [ 1 ] 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4. In alternativa alla funzione seq ( ), per creare una sequenza di numeri interi si può utilizzare il comando: -2: [1] -2 -1 0 1 2 3 rep (x, t) Ripete t volte l’oggetto x ad esempio: d < -rep (a, 5) d [1] 3 3 3 3 3 Attenzione agli apici Se si scrive ‘a’ ci si riferisce alla stringa a e non all’altro oggetto a rep (‘a’,5) [1] “a” “a” “a” “a” “a” sample (x, size, replace=TRUE) La funzione restituisce un campione casuale di dimensione size esatto con reintroduzione (replace=TRUE) dal set di valori x. Ad esempio: sample(1:20,7,TRUE) [1] 8 6 10 14 18 4 8 s ample (x, size, replace=FALSE ) La funzione restituisce un campione casuale di dimensione size estratto senza reintroduzione (replace=FALSE) dal set di valori x. Ad esempio sample (1:20,7,FALSE) [1] 8 9 7 1 11 12 19

ab* se i vettori non hanno la stessa lunghezza, i vettori più corti sono riciclati tante volte quando necessario, finché non raggiungono le dimensioni del vettore più lungo; se le due lunghezza non sono proporzionali R produce un warning.

FUNZIONI VETTORIALI

VETTORI LOGICI

I vettori possono contenere dei valori logici, TRUE o FALSE ad esempio:

x<-c(2,-1,4,7,-6,5) y<-c(1,4,-2,9,5,-6) x> [1] TRUE FALSE TRUE TRUE FALSE TRUE x>y [1] TRUE FALSE TRUE FALSE FALSE TRUE x==y [1] FALSE FALSE FALSE FALSE FALSE FALSE Gli operatori logici più usati in R sono: >,< maggiore di …,minore di ... == uguale a … (da non confondere con il simbolo di =, che può essere usato come operatore di assegnazione != diverso da … & valore di AND logico | valore di OR logico ! valore di NOT logico Oltre ai vettori numerici e di stringhe, ci sono altri tipi di oggetto in R; i principali sono di seguito elencati:

  • Matrix (le matrici sono vettori con due indici)
  • Factor (il fattore è un tipo di carattere che serve a gestire dati categorici)
  • List (le liste sono una sorta di vettore generico i cui elementi possono essere di qualsiasi tipo)
  • Data.frame (i dataframe sono strutture simili alle matrici, le cui colonne possono però essere di tipo diverso) Simbolo Significato Lenght (x) Restituisce la^ lunghezza^ di un vettore x Sum (x) Restituisce la^ somma^ degli elementi di un vettore x Sum (x^2) Restituisce la^ somma dei quadrati^ degli elementi di un vettore x mean(x) Restituisce la^ media aritmetica^ degli elementi di un vettore x sd (x) Restituisce la^ deviazione standard Sqrt (x) Restituisce la^ radice quadrata sort (x) Ordina in senso^ crescente order (x) Restituisce ordine^ (i.e la posizione in graduatoria) Rev (x) Restituisce l’ordine rovesciato degli elementi di un vettore (salvo specifiche

SELEZIONI

Ci sono 3 modi di selezionare un sottoinsieme degli elementi di un vettore d:

d<-c(1,2,3,4,5,6) d [2:5] per selezionare dal 2° al 5° elemento; d [-3] per selezionare tutto il vettore meno il 3° elemento; d [c(TRUE,FALSE,FALSE,TRUE,TRUE,FALSE)] per selezionare il 1° , il 4° e il 5° elemento. Tutti questi modi possono essere applicati a ciascun dei due indici di una matrice e al bisogno possono essere mixati. FUNZIONI MATRICIALI OPERAZIONI MATRICIALI Le operazioni matriciali richiedono operatori speciali; per effettuare il prodotto matriciale l’operatore è %% e [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 0 7 11 [4,] 4 8 12 Operazioni matriciali t(e)%*%e [,1] [,2] [,3] [1,] 21 49 77

[2,] 49 174 278

[3,] 77 278 446

Simbolo Significato Lenght (x) Restituisce il n.^ Totale^ di un vettore x Sum (x) Restituisce la^ somma^ degli elementi di un vettore x nrow (x) Restituisce il^ numero di righe^ degli elementi di un vettore x ncol (x) Restituisce il^ numero di colonne^ di una matrice x dim (x) Restituisce le^ dimensioni^ di una matrice x t (x) Restituisce la matrice^ trasposta^ di una matrice x det(x) Restituisce il^ determinate^ di una matrice quadratica di x solve(x) Restituisce la^ matrice inversa^ di una matrice x eigen(x) Restituisce gli^ autovalori/autovettori^ di una matrice di x svd(x) Restituisce la^ scomposizione spettrale^ della matrice x

  • Il simbolo di prodotto semplice ***** invece effettua il prodotto scalare (i.e. elemento per elemento):

e [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 0 7 11 [4,] 4 8 12 Operazioni matriciali e*e [,1] [,2] [,3] [1,] 1 25 81 [2,] 4 36 100 [3,] 0 49 121 [4,] 16 64 144

  • Il prodotto con uno scalare viene eseguito con il simbolo di prodotto semplice *

e [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 0 7 11 [4,] 4 8 12 Operazioni matriciali 2*e [,1] [,2] [,3] [1,] 2 10 18 [2,] 4 12 20 [3,] 0 14 22 [4,] 8 16 24

  • La somma con uno scalare si effettua con il simbolo +

e

[,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 0 7 11 [4,] 4 8 12 Operazioni matriciali

2+e [,1] [,2] [,3] [1,] 3 7 11

[1] 1 2 3 4 5 6 7 8 9 10

lista[[2]] [1] "casa" “giardino" È possibile nominare le componenti di una lista: amici<- list(nomi=c("Andrea","Marco","Elena"), eta=c(20,22,21)) amici $nomi [1] "Andrea" "Marco" "Elena" $eta [1] 20 22 21 Se un elemento di una lista ha un nome , può essere indicato con la sintassi: nomelista$nomeelemento Ad esempio: amici$nomi [1] "Andrea" "Marco" “Elena"

DATAFRAME

Un dataframe è una lista disposta come una matrice. Il dataframe è l'oggetto centrale che maggiormente viene usato per svolgere analisi statistiche su problemi reali. Se si hanno dei dati di dimensioni conformi in forma di lista è possibile creare un dataframe convertendo l'oggetto con la funzione as.data.frame ():

amici<-as.data.frame(amici) amici nomi eta 1 Andrea 20 2 Marco 22 3 Elena 21 In alternativa, è possibile creare un dataframe con la funzione data.frame(): amici2<- data.frame(nomi=c("Andrea","Marco","Elena"),eta=c(20,22,21)) Per accedere agli elementi di un dataframe si possono utilizzare i metodi visti per le matrici e le liste. Ad esempio: amici[1,1] restituisce il primo elemento della prima riga, cioè "Andrea"; amici[1,] restituisce la prima riga amici[,1] restituisce la prima colonna Se le colonne del dataframe hanno un nome : amici[1,]$nomi oppure amici$nomi[1] restituisce il primo elemento della colonna "nomi", cioè “Andrea"

amici$eta restituisce la colonna “eta"

MANIPOLARE UN DATAFRAME

  • Per aggiungere una nuova colonna si procede nel seguente modo:

amici$citta<-c("Roma","Bologna","Pescara") amici nomi eta citta 1 Andrea 20 Roma 2 Marco 22 Bologna 3 Elena 21 Pescara

  • Al contrario, per rimuovere una colonna

amici$citta<-NULL oppure amici3<-amici[,-3]

  • Per cambiare l’ordine delle colonne , anteponendo la citta all’eta:

amici<-amici[,c(1,3,2)] amici nomi citta eta 1 Andrea Roma 20 2 Marco Bologna 22 3 Elena Pescara 21

ORDINARE UN DATAFRAME

Per ordinare un dataframe rispetto ai valori di una delle colonne, si utilizza la funzione order Tale funzione restituisce per ciascun elemento dell'oggetto in questione il suo numero d'ordine nella graduatoria crescente dei valori (o decrescente se l'argomento decreasing=FALSE ). Ad esempio, per ordinare il dataframe amici in ordine alfabetico :

amici3<-amici[order(amici$nome),] amici nomi citta eta 1 Andrea Roma 20 3 Elena Pescara 21 2 Marco Bologna 22 Si consideri il dataset happy contenuto nella libreria faraway di R: library(faraway) data(happy) dim(happy) [1] 39 5 Controllando l’help del dataset è possibile leggere la sua descrizione: >?happy

c(‘Lonely','Secure','Deep') Supponiamo ora di voler descrivere i dati in esame. La rappresentazione più semplice è la costruzione di distribuzioni di frequenza. La funzione di R per poterlo fare è table()

table(happy$happy) 2 3 4 5 6 7 8 9 10 1 1 4 5 2 8 14 3 1 Supponiamo ora di voler descrivere i dati in esame. La rappresentazione più semplice è la costruzione di distribuzioni di frequenza. La funzione di R per poterlo fare è table(): table(happy$happy) 2 3 4 5 6 7 8 9 10 1 1 4 5 2 8 14 3 1 Per ottenere una distribuzione di frequenze relative percentuali basterà richiamare il comando precedente e aggiungere la moltiplicazione per 100 (all’interno della funzione di arrotondamento): round(prop.table(table(happy$happy))*100,2) 2 3 4 5 6 7 8 9 10 2.56 2.56 10.26 12.82 5.13 20.51 35.90 7.69 2. La stessa procedura può essere applicata a tutte le variabili di tipo categorico. Per poter rappresentare graficamente le distribuzioni di frequenza con un grafico a torta si usa il comando pie. La funzione prende in ingresso le frequenze assolute e le eventuali etichette. Per rappresentare la variabile love, ad esempio: valori<-table(happy$love) valori

1 2 3 3 15 21

labels<-c(‘Lonely','Secure','Deep')

RAPPRESENTAZIONI GRAFICHE

Se vogliamo aggiungere agli spicchi i valori delle percentuali occorre specificare nelle etichette:

perc<-round(prop.table(valori)*100,2) perc 1 2 3 7.69 38.46 53. lbls <- paste(labels,perc) lbls <- paste(lbls,'%',sep="") lbls [1] "Lonely 7.69%" "Secure 38.46%" "Deep 53.85%”

pie(valori,lbls)

pie(valori,lbls,col=rainbow(length (lbls))

library(plotrix)

pie3D(valori,labels=lbls,explode= .1)

pie3D(valori,labels=lbls,explode= .1,theta=pi/4)

(variabile work: 1- no job, 5-great job).

boxplot(happy$money~happy$work, xlab=‘JobSatisfaction', ylab='Family Income’)

  • Aggiunge semplicemente delle etichette Da 1 a 5 quanto sei soddisfatto. In questo boxplot non si vedono i baffi perché’ c’è una coincidenza perfetta tra il primo quartile e il valore minimo e il terzo quartile e il valore massimo

TAVOLE DI CONTINGENZA

Per analizzare la relazione tra due variabili qualitative e costruire quindi una tavola di contingenza si può usare nuovamente la funzione table(). Supponiamo ad esempio di voler mettere in relazione la felicità percepita con la vita sentimentale:

table(happy$happy.cat,happy$f.love) Lonely Secure Deep Low 3 3 0 Medium 0 11 4 High 0 1 17 In alternativa, si possono utilizzare i grafici a barre con il comando BARPLOT() : barplot(table(happy$happy.cat,happy$work), beside=TRUE, legend=TRUE, main='Happyness vs. Job Satisfaction’) Oppure : barplot(table(happy$happy.cat,happy$work), beside=FALSE,legend=TRUE,main='Happyness vs. Job Satisfaction') Par(mfrow=c(1,2)) mi permette di mettere a confronto due grafici. Nella nostra situazione spiega meglio il primo modello.

  • (^) É consigliato dare un nome a ciascun grafico

La funzione unclass serve per eliminare, la classe da variabili di tipo Factor trasformandole nell’equivalente numerico.

ISTOGRAMMA

è un grafico molto informativo circa la distribuzione di carattere continuo. Per creare un istogramma si utilizza la funzione hist() :

hist(iris$Sepal.Length, breaks=20, xlim=c(4,8)) Possiamo andare a vedere la distribuzione dei petali nelle diverse specie andando a disaggregare l’istogramma. hist(iris$Sepal.Length[ iris$Species=="virginica"], xlim=c(4,8),breaks=20,col=3, main="",xlab="Sepal Length”) hist(iris$Sepal.Length[ iris$Species=="setosa"], xlim=c(4,8),breaks=20,col=1, add=TRUE) hist(iris$Sepal.Length[ iris$Species=="versicolor"], xlim=c(4,8),breaks=20,col=2, add=TRUE)

DATI INDAGINE MERCATO

  • Legame singolo e il legame mediano sono illeggibili
  • (^) Legame medio e legame completo sono più leggibili
  • (^) Se taglio a 0.6 individuo due gruppi
  • (^) Decido io i gruppi in cui dividere. Per vedere i tagli da fare posso usare il comando abline da usare dopo aver fatto il grafico. Mi consente di tracciare una linea, all’interno delle parentesi ci inserisco le coordinate su cui voglio la linea: (h= orizzontale di cui posso scegliere il colore tramite col)
  • Posso tagliare anche due parti contemporaneamente e posso sceglierne il colore
  • (^) A seguito di questo decido quanti gruppi voglio in base ai tagli.
  • (^) Cutree = ha bisogno dell’output, e ha bisogno del numero di gruppi che vogliamo tirare fuori dall’analisi cluster.