ESERCIZI 2 CON CORREZIONE
1. I dati del file pioppi.txt riguardano la produzione di legno di una specie di pioppi. Allo scopo di studiare le condizioni ottimali per massimizzare la produzione di legno, ricercatori della Pennsylvania State University hanno piantato alcuni esemplari di ”Poplar Clone 252”
- in due siti differenti (variabile Sito – 1: suolo umido, vicino a un torrente, 2: suolo secco, vicino a un crinale),
- in anni differenti (variabile Anno – 2001 e 2002), - di et` a differenti (variabile Eta – 3 e 4 anni)
- con quattro trattamenti differenti (variabile Trattamento – 1: nessun trattamento, controllo; 2:
fertilizzante; 3: irrigazione; 4: fertilizzante e irrigazione).
Le variabili quantitative prese in esame sono: Diametro (in cm), Altezza (in m) e Peso del legno asciutto (in kg).
[Nota: nel file di dati sono presenti due cifre decimali per Diametro (poco ragionevole come misura) perch´ e probabilmente risultato di trasformazione da inch a cm da parte di chi ha diffuso i dati]
1. Leggere i dati in R. Nel file pioppi.txt i dati sono separati da tabulatore.
2. Considerare le variabili qualitative.
i. Assegnare delle etichette ai livelli di ciascuna variabile
ii. Analizzare i dati costruendo opportune tabelle (quelle che si ritengono pi` u utili tra dis- tribuzione congiunta, profili riga, profili colonna) ed effettuando rappresentazioni grafiche.
PROGRAMMA R E OUTPUT
pioppi=
read.table("http://www.dima.unige.it/~rogantin/IIT/pioppi.txt",header=T, sep="\t") str(pioppi)
’data.frame’: 294 obs. of 7 variables:
$ Sito : int 2 2 1 1 2 2 1 1 1 2 ...
$ Anno : int 2001 2001 2001 2001 2001 2001 2001 2001 2001 2001 ...
$ Trattamento: int 3 3 1 2 1 1 3 3 2 1 ...
$ Diametro : num 1.17 1.58 1.06 1.03 1.18 1.39 1.3 1.44 1.57 1.52 ...
$ Altezza : num 12.6 17.1 20.4 20.4 24.2 ...
$ Peso : num 1.24 3.72 2.48 2.48 3.72 4.96 4.96 6.2 9.92 8.68 ...
$ Eta : int 3 3 3 3 3 3 3 3 3 3 ...
attach(pioppi)
#### le variabili del dataset pioppi possono essere richiamate senza dover essere precedute da pioppi$
#### assegnazione di etichette alle variabili qualitative
#### prima si costruiscono nuove variabili poi si sostituiscono quelle del dateset sito=factor(Sito, levels =c(1,2), labels=c("umido","secco") )
eta=ordered(Eta, levels =c(3,4), labels=c("3anni","4anni")) trattamento=factor(Trattamento, levels =1:4,
labels=c("contr","fertil","irrig","fertil+irrig")) pioppi$Sito=sito
pioppi$Eta=eta
pioppi$Trattamento=trattamento
#### si prende come dataset di lavoro quello con le variabili appena costruite detach(pioppi)
attach(pioppi)
#### tabelle dei conteggi congiunti delle 4 variabili qualitative sito_tratt=table(Sito,Trattamento);sito_tratt
Trattamento
Sito contr fertil irrig fertil+irrig
umido 34 36 37 36
secco 39 39 37 36
sito_eta=table(Sito,Eta);sito_eta | sito_anno=table(Sito,Anno);sito_anno
Anno | Eta
Sito 2001 2002 | Sito 3anni 4anni
umido 69 74 | umido 70 73
secco 73 78 | secco 77 74
|
tratt_eta=table(Trattamento,Eta);tratt_eta | tratt_anno=table(Trattamento,Anno);tratt_anno
Eta | Anno
Trattamento 3anni 4anni | Trattamento 2001 2002
contr 37 36 | contr 36 37
fertil 37 38 | fertil 38 37
irrig 36 38 | irrig 35 39
fertil+irrig 37 35 | fertil+irrig 33 39
| eta_anno=table(Eta,Anno);eta_anno |
Anno |
Eta 2001 2002 |
3anni 75 72 |
4anni 67 80 |
#### l’esperimento risulta approssimativamente bilanciato per tutte le
#### combinazioni di livelli delle variabili
#### ulteriori tabelle e grafici non sono strettamente necessari
2. I dati del file AnimalSleep.xls sono tratti da uno studio sul sonno dei mammiferi le cui conclusioni si trovano nell’articolo “Sleep in Mammals: Ecological and Constitutional Correlates” by Allison, T.
and Cicchetti, D. (1976), Science, November 12, vol. 194, pp. 732-734.
Le variabili riguardano il peso del corpo (in kg), il peso del cervello (in g), il sonno leggero (senza sogni, in ore al giorno), il sonno pesante (con sogni, in ore al giorno), il sonno totale (somma dei due precedenti), la durata massima di vita (in anni), il tempo di gestazione (in giorni) e tre indici: uno di predazione, uno di esposizione durante il sonno e uno generale ricavato dai due precedenti.
I tre indici hanno un range da 1 a 5:
- Predation Index – facilit` a di essere predato (1=Least Likely, 2=Not Likely, 3=Neutral, 4=Likely, 5=Most Likely)
- Sleep Exposure (1=Highly Unexposed, 2=Unexposed, 3=Neutral, 4=Exposed, 5=Highly Exposed) - Dangerous (1=Least Dangerous, 2=Not Dangerous, 3=Neutral, 4=Dangerous, 5=Most Dangerous).
Le specie di mammiferi considerate sono 62 e, naturalmente, i valori riportati sono valori medi per la specie.
Ai dati originali ` e stata aggiunta una colonna con i nomi dei mammiferi in italiano.
1. Leggere in R i dati del secondo foglio di calcolo (ANIMALSLEEP2) del file Excel AnimalSleep.xls, considerando la colonna con i nomi in italiano come row.names
2. Assegnare delle etichette ai livelli di ciascuna variabile qualitativa
3. Considerare i due indici relativi alla facilit` a di essere predato e l’esposizione al sonno. Costruire opportune tabelle (quelle che si ritengono pi` u utili) e rappresentazioni grafiche.
PROGRAMMA R E OUTPUT
library(readxl)
AnimalSleep <- read_excel("C:/c-rogantin/DATI/AnimalSleep.xls",sheet="ANIMALSLEEP2")
## i due comandi precedenti possono essere dati utilizzando il pulsante Import Dataset
AnS=AnimalSleep[,2:11] ### si crea un nuovo dataset con le colonne numeriche di AnimalSleep rownames(AnS)=AnimalSleep[,12] ### si assegna il nume alle righe del nuovo dataset
str(AnS) attach(AnS)
#### le variabili del dataset AnS possono essere richiamate senza dover essere precedute da pioppi$
#### assegnazione di etichette alle variabili qualitative facilita_predato=ordered(‘Predation Index‘, levels=1:5,
labels=c("min_prob", "poca_prob", "prob_neutra", "probabile", "max prob")) esposizione_sonno=ordered(‘Sleep Exposure‘, levels=1:5,
labels=c("min_espos", "poca_espos", "esp_neutra", "esposto", "max_esp")) pericolo=ordered(‘Dangerous‘, levels=1:5,
labels=c("min_peric", "poco_peric", "peric_neutro", "peric", "max_peric"))
Tabelle “facilit` a di essere predato” rispetto a “esposizione durante il sonno”
## conteggi congiunti
predato_esposizione=table(facilita_predato,esposizione_sonno);predato_esposizione esposizione_sonno
facilita_predato min_espos poca_espos esp_neutra esposto max_esp
min_prob 5 1 1 0 0
poca_prob 5 5 1 0 0
prob_neutra 4 2 0 0 0
probabile 2 0 1 3 1
max prob 1 1 1 1 5
## profili riga
pr_riga_predato_esposizione=prop.table(predato_esposizione,1) round(pr_riga_predato_esposizione*100,2)
esposizione_sonno
facilita_predato min_espos poca_espos esp_neutra esposto max_esp
min_prob 71.43 14.29 14.29 0.00 0.00
poca_prob 45.45 45.45 9.09 0.00 0.00
prob_neutra 66.67 33.33 0.00 0.00 0.00
probabile 28.57 0.00 14.29 42.86 14.29
max prob 11.11 11.11 11.11 11.11 55.56
par(mfrow=c(2,3),oma=c(0,0,2,0)) #### posizione per aggiungere un titolo generale for(i in 1:dim(predato_esposizione)[1])
{barplot(pr_riga_predato_esposizione[i,],ylim=c(0,1),main=rownames(predato_esposizione)[i]) abline(h=0)}
mtext("Distribuzione dell’esposizione nel sonno nei livelli di facilita’ di essere predato ", outer = TRUE,cex=1.5) #### si aggiunge un titolo generale
par(mfrow=c(1,1))
min_espos poca_espos esp_neutra esposto max_esp min_prob
0.00.20.40.60.81.0
min_espos poca_espos esp_neutra esposto max_esp poca_prob
0.00.20.40.60.81.0
min_espos poca_espos esp_neutra esposto max_esp prob_neutra
0.00.20.40.60.81.0
min_espos poca_espos esp_neutra esposto max_esp probabile
0.00.20.40.60.81.0
min_espos poca_espos esp_neutra esposto max_esp max_prob
0.00.20.40.60.81.0
Distribuzione dell'esposizione nel sonno nei livelli di facilita' di essere predato
## profili colonna
pr_col_predato_esposizione=prop.table(predato_esposizione,1) round(pr_col_predato_esposizione*100,2)
esposizione_sonno
facilita_predato min_espos poca_espos esp_neutra esposto max_esp
min_prob 29.41 11.11 25.00 0.00 0.00
poca_prob 29.41 55.56 25.00 0.00 0.00
prob_neutra 23.53 22.22 0.00 0.00 0.00
probabile 11.76 0.00 25.00 75.00 16.67
max_prob 5.88 11.11 25.00 25.00 83.33
par(mfrow=c(2,3),oma=c(0,0,2,0)) #### posizione per aggiungere un titolo generale for(i in 1:dim(predato_esposizione)[2])
{barplot(pr_riga_predato_esposizione[,i],ylim=c(0,1),main=colnames(predato_esposizione)[i]) abline(h=0)}
mtext("Distribuzione della facilita’ di essere predato nei livelli di esposizione nel sonno", outer = TRUE,cex=1.5) #### si aggiunge un titolo generale
min_prob poca_prob prob_neutra probabile max_prob min_espos
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob poca_espos
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob esp_neutra
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob esposto
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob max_esp
0.00.20.40.60.81.0
Distribuzione della facilita' di essere predato nei livelli di esposizione nel sonno
Si nota un significativo legame fra la facilit` a di essere predato e l’esposizione durante il sonno.
Tabelle “facilit` a di essere predato” rispetto a “indice di pericolo complessivo”
## conteggi congiunti
predato_pericolo=table(facilita_predato,pericolo);predato_pericolo pericolo
facilita_predato min_peric poco_peric peric_neutro peric max_peric
min_prob 7 0 0 0 0
poca_prob 3 8 0 0 0
prob_neutra 0 2 4 0 0
probabile 0 0 2 5 0
max prob 0 0 1 3 5
## profili riga
pr_riga_predato_pericolo=prop.table(predato_pericolo,1) round(pr_riga_predato_pericolo*100,2)
pericolo
facilita_predato min_peric poco_peric peric_neutro peric max_peric
min_prob 100.00 0.00 0.00 0.00 0.00
poca_prob 27.27 72.73 0.00 0.00 0.00
prob_neutra 0.00 33.33 66.67 0.00 0.00
probabile 0.00 0.00 28.57 71.43 0.00
max_prob 0.00 0.00 11.11 33.33 55.56
par(mfrow=c(2,3),oma=c(0,0,2,0)) for(i in 1:dim(predato_pericolo)[1])
{barplot(pr_riga_predato_pericolo[i,],ylim=c(0,1),main=rownames(predato_pericolo)[i]) abline(h=0)}
mtext("Distribuzione della facilita’ di essere predato rispetto al pericolo complessivo", outer = TRUE,cex=1.5)
par(mfrow=c(1,1))
min_peric poco_peric peric_neutro peric max_peric min_prob
0.00.20.40.60.81.0
min_peric poco_peric peric_neutro peric max_peric poca_prob
0.00.20.40.60.81.0
min_peric poco_peric peric_neutro peric max_peric prob_neutra
0.00.20.40.60.81.0
min_peric poco_peric peric_neutro peric max_peric probabile
0.00.20.40.60.81.0
min_peric poco_peric peric_neutro peric max_peric max_prob
0.00.20.40.60.81.0
Distribuzione della facilita' di essere predato rispetto al pericolo complessivo
## profili colonna
pr_col_predato_pericolo=prop.table(predato_pericolo,1) round(pr_col_predato_pericolo*100,2)
pericolo
facilita_predato min_peric poco_peric peric_neutro peric max_peric
min_prob 70.00 0.00 0.00 0.00 0.00
poca_prob 30.00 80.00 0.00 0.00 0.00
prob_neutra 0.00 20.00 57.14 0.00 0.00
probabile 0.00 0.00 28.57 62.50 0.00
max_prob 0.00 0.00 14.29 37.50 100.00
par(mfrow=c(2,3))
for(i in 1:dim(predato_pericolo)[2])
{barplot(pr_col_predato_pericolo[,i],ylim=c(0,1),main=colnames(predato_pericolo)[i]) abline(h=0)}
mtext("Distribuzione della facilita’ di essere predato nei livelli di pericolo complessivo", outer = TRUE,cex=1.5)
par(mfrow=c(1,1))
min_prob poca_prob prob_neutra probabile max_prob min_peric
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob poco_peric
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob peric_neutro
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob peric
0.00.20.40.60.81.0
min_prob poca_prob prob_neutra probabile max_prob max_peric
0.00.20.40.60.81.0
Distribuzione della facilita' di essere predato nei livelli di pericolo complessivo