Riassumiamo i comandi che ci consentono di generare e manipolare le tabelle di contingenza.
table(x)
: calcola la tabella di contingenza a partire dai dati del vettore x
.
Consideriamo il set di dati smokes. Ogni istanza rappresenta una persona, di cui memorizziamo il fatto che fumi oppure no.
> smokes=c("Y","N","N","Y","N","Y","Y","Y","N","Y") > t<-table(smokes) > t smokes N Y 4 6
prop.table(x)
: prende la tabella di contingenza x, espressa in termini di frequenze assolute, e calcola una corrispondente tabella in termini di frequenze relative.
> prop.table(t) smokes N Y 0.4 0.6
Scrivere la funzione entropia.data
che, sfruttando la funzione entropia
definita in un esercio precedente, calcola l'entropia non a partire da una distribuzione di probabilità ma da un vettore di dati. Ad esempio
> v <- c("a","a","b","c","a") > entropia.data(v) [1] 1.370951
Modificare le funzioni entropia
e entropia.data
in modo da accettare un parametro relative
, di default uguale a FALSE, che se posto a TRUE determina il calcolo della entropia relativa.
> v <- c("a","a","b","c","a") > entropia.data(v,relative=TRUE) [1] 0.8649735
Il sistema R mette a disposizione alcune semplici funzioni per il calcolo di indici statistici. Tutte le funzioni hanno il parametro na.rm
che, se impostato a TRUE, elimina i valori NA prima di effettuare ulteriori calcoli.
range(x,na.rm=FALSE)
: restituisce l'intervallo dei valori (min-max) per il vettore x.mean(x, trim=0, na.rm=FALSE)
: calcola la media aritmetica del vettore x. Se trim
è diverso da zero, esso indica la percentuale di elementi da eliminare in testa e in coda alla distribuzione (per ridurre l'effetto degli outliers).median(x, na.rm=FALSE)
: calcola la mediana del vettore x.quantile(x, pronbs=seq(0,1,0.25), na.rm=FALSE, ..., type=7)
: calcola i quantili del vettore x. Gli ordini dei quantili da calcolare sono specificati col parametro probs
. Il parametro type
serve a specificare uno delle tante definizioni di quantili esistenti. Per utilizzare il metodo descritto nel corso, usare type=2
.var(x, ...., na.rm=FALSE)
: calcola la varianza del vettore x, usando la formula per lo stimatore consistente (ovvero, la somma delle differenze al quadrato non viene diviso per il numero N di elementi di x ma per N-1).sd(x, ...., na.rm=FALSE)
: calcola lo scarto quadratico medio del vettore x, usando la formula per lo stimatore consistente (ovvero, la somma delle differenze al quadrato non viene diviso per il numero N di elementi di x ma per N-1).Come si vede non c'è una scelta molto ampia, tuttavia alcune funzioni sono implementate in package specifici che noi non utilizziamo. Bisogna anche dire che non è difficile scrivere un programmino per il calcolo degli indici statistici che abbiamo visto.