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.