# Esempio dalle slides regressione (spesa alimentare di un camiopne di 20 famiglie) spesa <- c(5.2, 5.1, 5.6, 4.6, 11.3,8.1, 7.8, 5.8,5.1, 18,4.9, 11.8, 5.2,4.8,7.9,6.4,20,13.7,5.1,2.9) reddito <- c(28,26,32,24,54,59,44,30,40,82,42,58,28,20,42,47,112,85,31,26) nc <- c(3,3,2,1,4,2,3,2,1,6,3,4,1,5,3,1,6,5,2,2) d <- data.frame(spesa, reddito, nc)# creo la matrice dati install.packages("questionr") # pacchetto per suddividere una variabile quantitativa in classi d$reddito_rec <- cut(d$reddito, include.lowest=FALSE, right=TRUE, breaks=3) ## Cutting d$reddito into d$reddito_rec class(d$reddito_rec) # dopo la suddivisione in classi la var. quantitativa diventa una variabile qualitativa con tante modalita' quante sono le classi scelte (in R e' un factor) #d$nc_rec <- cut(d$nc, include.lowest=FALSE, right=TRUE, breaks=4) ## Cutting d$nc into d$nc_rec ######################################### # analisi descrittiva univariata (riportato solo per spesa ma va fatto per tutte le variabili attach(d) # carico in memoria il dataframe d (non uso piu il simbolo $ per richiamare le variabili) summary(spesa) # indici descrittivi sd(spesa) # deviazione standard hist(spesa) # istogramma boxplot(spesa) # boxplot ######################################### # analisi bivariata #grafici plot(reddito, spesa) # Diagramma di dispersione plot(nc, spesa) # Diagramma di dispersione plot(nc, reddito) # Diagramma di dispersione cor(reddito, spesa) # coefficiente di regressione cor(nc, spesa) cor(nc, reddito) ######################################### # Modello di regressione semplice # model.redd: spesa = B0 + B1*reddito + e model.redd <- lm(spesa ~ reddito, data=d) summary(model.redd) # model.nc: spesa = B0 + B1*nc + e model.nc <- lm(spesa ~ nc, data=d) summary(model.nc) ######################################### # Analisi multivariata ######################################### # Modello di regressione multipla # model.redd.nc: spesa = B0 + B1*reddito + B2*nc + e # STEP1: matrice di correlazione (se non c'e' multicollinearita' si puo' stimare il model.redd.nc) cor(d[ ,1:3]) # moderata correlazione tra le due variabili esplicative # Stima del modello (ipotizzando che tutte le assunzioni del modello siano rispettate, vedi slides) model.redd.nc <- lm(spesa ~ reddito + nc, data = d) summary(model.redd.nc) # STEP 2: commentare p-value del test congiunto sui coefficienti (p-value: 8.558e-11 --> OK) # STEP 3: Commentare R^2 (Adjusted R-squared: 0.9269 Ok anche se non migliora tantissimo rispetto al valore di R^2 del model.redd) # STEP 4: Commentare p-value dei test sui singoli coefficienti B (eccetto intercetta) --> sembrerebbe ragionevole ritenere che tutti i coefficienti siano significativamente diversi da 0 nella popolazione (forma breve: i coeff. sono statisticamente significativi) # STEP 5: Commentare i volori dei coefficienti (vedi slides del corso) # Eventuale STEP 6: usare il modello per stimare la spesa alimentare familiare annua sapendo reddito annuo e numero componenti famiglia