par(mfrow=c(1,1),mar=c(4,4,2,2))
library(HSAUR)
data(Forbes2000)
names(Forbes2000)
# Analizziamo solo i record che abbiano sempre valori nella variabile profits
Forbes2000<-subset(Forbes2000,!is.na(profits))
# Visualizziamo i primi 10 record
head(Forbes2000,10)
library(rpart)
forbes.tr<-rpart(profits~assets+marketvalue+sales,data=Forbes2000,method="anova")
summary(forbes.tr)
# Visualizziamo il risultato
post(forbes.tr,file="",title="Analisi binaria: Forbes data",pretty=TRUE)
# Visualizzazione alternativa
plot(forbes.tr,uniform=TRUE,margin=0.1,branch=0.5,compress=TRUE)
text(forbes.tr)
# Controlliamno se tutti i rami sono accettabile e non siano necessarie delle potature
# i valori del criterio cp sono utili
# La colonna xerror elenca l'errore di adattamento per un fissato numero
# di suddivisioni.
print(forbes.tr$cptable)
opt<-which.min(forbes.tr$cptable[,"xerror"])
# Il numero consigliato è opt
# Grafico con spiegazioni aggiuntive.
par(mfrow=c(1,2),mar=c(4,4,2,2))
cp<-forbes.tr$cptable[opt,"CP"]
forbes.pru<-prune(forbes.tr,cp=cp)
post(forbes.pru,file="",title="Analisi binaria: Forbes data",pretty=TRUE)
# Osservate il lato destro per individuare le compagnie più in salute.
#plot(forbes.pru,uniform=TRUE,branch=0.5,margin=0.1,compress=TRUE)
#text(forbes.pru)
#par(mfrow=c(1,1),mar=c(4,4,2,2))
rn<-rownames(forbes.pru$frame)
lev<-rn[sort(unique(forbes.pru$where))]
where<-factor(rn[forbes.pru$where],levels=lev)
n<-tapply(Forbes2000$profits,where,length)
boxplot(Forbes2000$profits~where, varwidth=TRUE,ylim=range(Forbes2000$profit)*1.3,pars=list(axes=FALSE),ylab="profitti in dollari USA")
abline(h=0,lty=3)
axis(2)
text(1:length(n),max(Forbes2000$profit)*1.2,paste("n = ",n))