## Esempio 'mtcars' data(mtcars) ## ridefinisco l'autonomia con un gallone in galloni per 100 miglia mtcars$cons <- 1/mtcars$mpg*100 ## così evito di dover sempre "puntare" alla variabile dentro il ## dataframe, es. cons$mtcars, e posso usarla direttamente attach(mtcars) ## analisi grafica preliminare 1: la variabile di interesse plot(cons) ## (identificazione interattiva di dati nello scatterplot:) ## identify() ## ho scoperto che la macchna dal consumo mostruoso è il 15o dato: ## lo evidenzio in rosso... points(15, cons[15], pch=19, col="red") ## ...e ci scrivo il nome come etichetta di testo text(15, cons[15]-0.2, dimnames(mtcars)[[1]][15]) ## analisi grafica preliminare 2: le correlazioni a due a due ## graficamente: pairs(mtcars[ , c("cons", "wt", "hp", "disp")]) ## calcolo dei coefficienti di correlazione: round(cor(mtcars[ , c("cons", "wt", "hp", "disp")]), 2) ## Ci concentriamo sulla relazione bivariata tra peso (wt) e consumo plot(wt, cons, xlim=c(0,6), ylim=c(0,10)) ## immaginiamo che i dati siano generati come cons = a + b*wt + u ## (modello di regressione lineare) e stimiamo OLS a, b "a mano": b.hat <- cov(wt, cons)/var(wt) ## nota che b.hat è diverso dal coefficiente di correlazione! cor(cons, wt) a.hat <- mean(cons) - b.hat*mean(wt) ## adesso disegniamo la retta stimata... abline(a=a.hat, b=b.hat, col="orange", lwd=2) ## ... ed evidenziamo i valori stimati sulla retta points(wt, a.hat+b.hat*wt, pch=19, col="green3") ## con le funzioni "pronte" di R si farebbe così: mod <- lm(cons ~ wt, data=mtcars) coef(mod) summary(mod) plot(wt, cons, xlim=c(0,6), ylim=c(0, 10)) abline(a=a.hat, b=b.hat, col="orange", lwd=2)