%%%%%% TENTATIVI DI REGRESSIONE % Si consiglia di aprire due pagine R. IB <- read.table(file="indicatori_benessere.txt",header=TRUE) biplot(princomp(IB)) PLIC<-IB$PLIC SC<-IB$SC SA<-IB$SA.SC TD<-IB$TD TMI<-IB$TMI % regressione semplice: plot(TD,TMI) plot(IB) cor(IB) SA.TD <- lm(SA ~ TD) SA.TD plot(TD,SA) x <- ((min(TD)*10):(max(TD)*10))/10 y <- SA.TD$coefficient[1]+SA.TD$coefficient[2]*x lines(x,y) % plot alternativo: plot(TD,SA) abline(SA.TD$coefficient) res<-SA.TD$residuals delta <- sd(res)*qnorm(1-0.05/2) abline(SA.TD$coefficient+c(delta,0), lty=2) abline(SA.TD$coefficient+c(-delta,0), lty=2) $ giudichiamo la bontà della regressione: summary(SA.TD) cor(TD,SA)^2 % è R^2. $ NOTA: p-value piccolo significa che il test sarebbe stato significativo anche con elevata significatività, quindi si rigetta l'ipotesi nulla. Nel caso di un singolo coefficiente, l'ipotesi nulla è che il modello senza di esso produca risultati comparabili a quello con esso. Se viene rifiutata, significa che il coefficiente è importante. Se non viene rifiutata, significa che non abbiamo buone ragioni per ritenere importante quel coefficiente. % Analisi dei residui: plot(SA.TD) % confrontare il primo grafico con: plot(TD,SA) x <- ((min(TD)*10):(max(TD)*10))/10 y <- SA.TD$coefficient[1]+SA.TD$coefficient[2]*x lines(x,y) % nel seguente modo si estraggono i residui: res<-SA.TD$residuals plot(res) % ma il plot è contro l'indice. % Regressione multipla: mod1 <- lm(TMI ~ PLIC + TD) mod1 % notare il segno dei coefficienti summary(mod1) % il modello è scadente plot(mod1) % interpretare i residui. %%%%% FATTORI NASCOSTI PCA <- princomp(IB) plot(PCA) summary(PCA) % da entrambi emerge dimensione (numero di variabili nascoste): 2-3. % Se vogliamo un gruppo uni-dimensionale: IB.new <- matrix(nrow=20,ncol=3) IB.new[,1]<-SC IB.new[,2]<-SA IB.new[,3]<-TD PCA.new<-princomp(IB.new) plot(PCA.new) % tentativo sbagliato: IB.new2 <- matrix(nrow=20,ncol=3) IB.new2[,1]<-PLIC IB.new2[,2]<-SA IB.new2[,3]<-TMI PCA.new2<-princomp(IB.new2) plot(PCA.new2) % Altro modo per scartare variabili e ridursi a 1 dim: PCA$loadings % e qui si scelgono le variabili più legate a comp1. % Per metterle ancor più in evidenza: varimax(PCA$loadings[,1:3]) % varimax(PCA$loadings) non serve a niente. % Solo due comp non separano: varimax(PCA$loadings[,1:2]) %%%% Che modello lineare sta dietro questi numeri???