Modelli non lineari e cross validazione. Strumenti quantitativi per la gestione

Documenti analoghi
Validazione dei modelli. Strumenti quantitativi per la gestione

Validazione dei modelli Strumenti quantitativi per la gestione

Modelli non lineari Strumenti quantitativi per la gestione

Modelli non lineari. Strumenti quantitativi per la gestione

Modelli con predittori qualitativi e modelli con interazioni. Strumenti quantitativi per la gestione

Il modello di regressione (VEDI CAP 12 VOLUME IEZZI, 2009)

Regressione. Monica Marabelli. 15 Gennaio 2016

Quiz di verifica - Alberi e FC Strumenti Quantitativi per la gestione

Modelli con predittori qualitativi e modelli con interazioni

Statistiche di sintesi

0.1 Percorrenza e Cilindrata

Laboratorio di Statistica Aziendale Modello di regressione lineare multipla

Regressione K-Nearest Neighbors. Strumenti quantitativi per la gestione

Classificazione k-nn con R. Strumenti quantitativi per la gestione

LABORATORIO DI PROBABILITA E STATISTICA

Anova e regressione. Andrea Onofri Dipartimento di Scienze Agrarie ed Ambientali Universitá degli Studi di Perugia 22 marzo 2011

Regressione logistica. Strumenti quantitativi per la gestione

Analisi discriminante in R. Strumenti quantitativi per la gestione

1. ISTOGRAMMI E GRAFICI DI ALCUNE DENSITA (COMPLEMENTO ALLA LEZIONE PRECEDENTE)

Quiz di verifica Classificazione

Selezione del modello Strumenti quantitativi per la gestione

Analisi grafica residui in R. Da output grafico analisi regressionelm1.csv Vedi dispensa. peso-statura

Esercitazione finale - corso R base Francesco Vidoli Ottobre 2018

Regressione lineare semplice. Strumenti quantitativi per la gestione

Analisi della varianza a due fattori

Regressione lineare semplice

Laboratorio 8. Regressione multipla. 8.1 Analisi del dataset HOOK.DAT

Esercizio Dire quale variabile debba essere usata come regressore e quale sia la variabile risposta.

Regressione ridge e LASSO Strumenti quantitativi per la gestione

Metodi Quantitativi per Economia, Finanza e Management. Lezione n 8 Regressione lineare multipla: le ipotesi del modello, la stima del modello

LABORATORIO 5. ANALISI DELLA VARIANZA AD UN CRITERIO DI CLASSIFICAZIONE

Multicollinearità. Strumenti quantitativi per la gestione

Laboratorio R Corso di Algebra e Modelli lineari (Anno Accademico )

Siete invitati a cambiare un po di parametri dell esercizio (es. aumentare Nrow; diminuire sig2; diminuire i coefficienti di X3 ed X4).

Word ha il vantaggio che possiamo salvare un po' di risultati, anche grafici

CAPITOLO 3 Esperimenti con un singolo fattore: l Analisi della Varianza

Analisi Discriminante Strumenti quantitativi per la gestione

REGRESSIONE lineare e CORRELAZIONE. Con variabili quantitative che si possono esprimere in un ampio ampio intervallo di valori

Metodi statistici per la ricerca sociale ANOVA e ANCOVA in

Antonella Bodini Istituto di Matematica Applicata e Tecnologie Informatiche E. Magenes del CNR

Old Faithful, Yellowstone Park. Statistica e biometria. D. Bertacchi. Dati congiunti. Tabella. Scatterplot. Covarianza. Correlazione.

Alberi di decisione con R

Fac-simile prova di esame

Statistical learning. Strumenti quantitativi per la gestione

Introduzione alla Regressione Logistica

Ancora sulla regressione multipla

Ancova: il modello lineare in generale

LABORATORIO DI PROBABILITA E STATISTICA

> cement <- read.table("i:/modelli/cement.dat", col.names=c("tempo", "resist")) > attach(cement)

Esercitazione su outliers e osservazioni influenti

Esercizio 1 GRAFICO 1. X e Y sono indipendenti. X e Y non sono correlate. La correlazione tra X e Y è <1. X e Y sono perfettamente correlate

Statistical learning. Strumenti quantitativi per la gestione. Emanuele Taufer

Analisi Discriminante. Strumenti quantitativi per la gestione

ESERCITAZIONE REGRESSIONE MULTIPLA

Computazione per l interazione naturale: Regressione lineare

Regressione lineare multipla Strumenti quantitativi per la gestione

Analisi discriminante in R Strumenti quantitativi per la gestione

Metodi di regressione multivariata

Statistica. Capitolo 12. Regressione Lineare Semplice. Cap. 12-1

Capitolo 12 La regressione lineare semplice

I modelli lineari generalizzati: il modello di Poisson

CAPITOLO 5 Introduzione ai piani fattoriali

ESERCITAZIONE C. Analisi di dati sperimentali PARTE 3: REGRESIONE

Modelli statistici: sessione 1

STATISTICA 1, metodi matematici e statistici Introduzione al linguaggio R Esercitazione 7:

IL CRITERIO DELLA MASSIMA VEROSIMIGLIANZA

Prova scritta di Statistica Applicata alle Decisioni Aziendali Prof.ssa Conigliani -...

Computazione per l interazione naturale: Regressione lineare (MSE)

()Probablità, Statistica e Processi Stocastici

Esercizio 8. Ne segue, ovviamente che le aree geografiche di riferimento sono Africa e America del Sud.

Minimi quadrati ordinari Interpretazione geometrica. Eduardo Rossi

Complementi di Matematica e Calcolo Numerico A.A

Variabili indipendenti qualitative. In molte applicazioni si rende necessario l introduzione di un fattore a due o più livelli.

Metodi per la riduzione della dimensionalità. Strumenti quantitativi per la gestione

STATISTICA 1 ESERCITAZIONE 6

Analisi della regressione

Regolarizzazione (Shrinkage) Strumenti quantitativi per la gestione

STATISTICA A K (60 ore)

Elementi di Psicometria con Laboratorio di SPSS 1

Il modello di regressione lineare multipla. Il modello di regressione lineare multipla

9.3 Il metodo dei minimi quadrati in formalismo matriciale

Statistica Applicata all edilizia: il modello di regressione

Metodi statistici per la ricerca sociale Capitolo 13. Combinare regressione e ANOVA: predittori categoriali e quantitativi Esercitazione

Excel. È data la distribuzione di 1863 famiglie italiane secondo il numero di componenti:

Esercitazione 5 - Statistica (parte II) Davide Passaretti 9/3/2017

Minimi quadrati e massima verosimiglianza

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 9 Metodi numerici per equazioni differenziali ordinarie

Regressione. Lineare Simple linear regression Multiple linear regression Regression vs Geometrical fitting

Valutazione dei modelli matematici

Corso di Matematica per la Chimica

ANALISI DELLA VARIANZA

REGRESSIONE MULTIPLA E CORRELAZIONE. Nicola Tedesco (Statistica Sociale) REGRESSIONE MULTIPLA E CORRELAZIONE 1 / 16

Foglio Esercizi A (interpolazione, approssimazione, integrazione)

STIMA DELLA PIENA INDICE

> d = alimentazione == "benz" > mean(percorr.urbana[!d]) - mean(percorr.urbana[d]) [1] > sd(percorr.urbana[d]) [1] 2.

INTRODUZIONE AI MODELLI LINEARI

Università di Pavia Econometria Esercizi 5

Nel modello omoschedastico la varianza dell errore non dipende da i ed è quindi pari a σ 0.

Test F per la significatività del modello

Transcript:

Modelli non lineari e cross validazione Strumenti quantitativi per la gestione Emanuele Taufer file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 1/28

Metodi per affrontare problemi nonlineari Regressione polinomiale Regressione k-nn Regressione con funzioni costanti (step functions) Regressione polinomiale locale (regression splines) Smoothing splines Regressione locale Modelli additivi generalizzati: approccio che permette di usare diversi tipi di tecniche simultaneamente file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 2/28

In questa esercitazione ci concentreremo su: regressione polinomiale regressione k-nn in un problema non-lineare di previsione dei picchi nella domanda di energia. I due modelli saranno comparati per mezzo di cross validazione file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 3/28

Regressione polinomiale Il metodo più tradizionale per estendere il modello di regressione a contesti non-lineari è quello di usare una funzione polinomiale: y i = β0 + β1x i + β2x 2 + + β + i d x d ε i i può essere stimato semplicemente con il metodo dei minimi quadrati: infatti è un modello di regressione standard con predittori x i, x 2, x 3, x d i i i difficilmente si usa troppo flessibile d > 4 poichè il polinomio tende a diventare la stessa tecnica può essere estesa al caso della regressione logistica file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 4/28

Esempio: modellare i picchi di domanda di energia Per operare efficacemente le aziende elettriche devono essere in grado di prevedere il picco giornaliero di richiesta di energia La richiesta di energia è misurata in megawatt per ora Il picco giornaliero è definito come il massimo di domanda nell arco delle 24 ore Le compagnie elettriche monitorano costantemente il fenomeno attraverso modelli di regressione file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 5/28

Fattori che determinano la domanda di energia Meteo-sensibili: Il fattore principale in questo caso è la temperatura (collegata all uso di impianti di riscaldamento e di condizionamento) Non meteo-sensibili Il fattore principale in questo caso è il giorno della settimana: feriale, sabato o domenica (collegato all uso di frigoriferi, luci, computer, impianti industriali) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 6/28

I dati Temp-2014-F.dat Osservazioni giornaliere di una compagnia elettrica nel periodo 1/1/14-31/12/14 Y : Picco di domanda in megawatt (Peak) X1: Temperatura in F al momento del picco (Tmax), X2 X3: indicatori se sabato o domenica file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 7/28

Dataset Temp Temp<-read.table("http://www.cs.unitn.it/~taufer/Data/Temp-2014-F.dat",header=T,sep="") head(temp) Date Tmax Peak Sat Sun 1 2014-01-01 39.74 3928.294 0 0 2 2014-01-02 34.52 4419.036 0 0 3 2014-01-03 40.10 4114.751 0 0 4 2014-01-04 38.84 4096.177 1 0 5 2014-01-05 42.08 3676.929 0 1 6 2014-01-06 47.66 3410.767 0 0 Per comodità, costruiamo la variabile factor Day Temp$Day<-Temp$Sat+2*Temp$Sun Temp$Day<-factor(Temp$Day, c(0,1,2),c("wday","sat","sun")) str(temp$day) Factor w/ 3 levels "Wday","Sat","Sun": 1 1 1 2 3 1 1 1 1 1... file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 8/28

Plot Picco-Temperatura massima plot(temp$tmax,temp$peak,pch=3, col="red",lwd=2.5) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 9/28

Regressione quadratica - output R Per provare a catturare l andamento non lineare del fenomeno, utilizziamo un modello di regressione lineare con un termine quadratico. Si noti l uso del wrapper I() nella formula. fit2<-lm(peak~tmax+i(tmax^2)+day,data=temp) summary(fit2) Call: lm(formula = Peak ~ Tmax + I(Tmax^2) + Day, data = Temp) Residuals: Min 1Q Median 3Q Max -504.76-115.79 0.63 113.86 695.00 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 1.123e+04 1.847e+02 60.801 < 2e-16 *** Tmax -2.505e+02 6.032e+00-41.533 < 2e-16 *** I(Tmax^2) 1.853e+00 4.755e-02 38.968 < 2e-16 *** DaySat -1.207e+02 2.684e+01-4.496 9.37e-06 *** DaySun -2.624e+02 2.684e+01-9.775 < 2e-16 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 176.7 on 360 degrees of freedom Multiple R-squared: 0.8645, Adjusted R-squared: 0.863 F-statistic: 574.2 on 4 and 360 DF, p-value: < 2.2e-16 file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 10/28

Peak osservato e previsto plot(temp$tmax,temp$peak,pch=3, col="red",lwd=2.5) points(temp$tmax,i(predict(fit2,temp)),col="blue",pch=8,lwd=2) I valori previsti dal modello fit2 sono in blu. Si noti che vi sono tre diverse curve corripondenti ai 3 livelli della variabile Day. file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 11/28

Validazione dei modelli di regressione. Per la scelta e la comparazione di modelli di regressione è possibile utilizzare delle statistiche tradizionali che tengono conto del numero di predittori utilizzati: R 2 -corretto RSE Se i modelli di regressione da comparare sono innestati fra loro, è possibile ricorrere all uso dei test F parziali (vedi lezioni precedenti). file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 12/28

Cross-validazione (CV) Nel caso in cui si voglia comparare un modello di regressione lineare con un modello di diversa natura, ad esempio un modello di regressione non-parametrica, è opportuno ricorrere alla CV. La CV può, in generale, essere applicata a tutti i modelli di statistical learning supervisionato e fornisce un criterio unico per il loro confronto. In questa esercitazione useremo LOOCV k-fold CV Nota: poiché in questa esercitazione si userà anche la regressione k- NN, per evitare confusione, parleremo d ora in poi di m-fold CV file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 13/28

Cross-validazione LOOCV per fit2 Il codice seguente calcola una LOOCV utilizzando la funzione glm() e la funzione accessoria cv.glm(). La funzione glm() (generalized lm) può essere utilizzata per stimare un modello di regressione lineare. library(boot) glm.fit=glm(peak~tmax+i(tmax^2)+day,data=temp) cv.err =cv.glm(temp,glm.fit) La stima del test MSE da LOOCV è contenuta nell oggetto cv.err. Per accedervi, digitare cv.err$delta ## [1] 31726.47 31725.16 Dove il primo numero è il valore di test MSE stimato ed il secondo una sua versione corretta per la distorsione (in questo caso quasi coincidono). Vedremo che potranno essere diversi nella m-fold CV. file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 14/28

CV m-fold per fit2 Utilizziamo ancora le funzioni glm e cv.glm per ottenere un CV m-fold con. m = 10 cv.err.m =cv.glm(temp,glm.fit,k=10) Da cui cv.err.m$delta ## [1] 31636.99 31592.38 La stima è molto simile a quella ottenuta con LOOCV file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 15/28

Struttura del fenomeno file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 16/28

Regressione k-nn La regressione quadratica è vincolata alla struttura simmetrica della parabola. Maggior flessibilità potrebbe essere introdotta dall uso di un termine cubico. fit3<-lm(peak ~ Tmax + I(Tmax^2)+I(Tmax^3)+Day,data=Temp) In quest esempio utilizziamo una regressione non-parametrica, la k- NN, per cercare di seguire più fedelmente la particolare struttura del fenomeno. file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 17/28

Regressione k-nn Per adattare una regressione k-nn ai dati è necessario costruire una funzione ad hoc. La funzione knn.reg() disponibile nel file KNNR.r (scaricabile dalla pagina web del corso) produce le previsioni per il vettore di dati x.test dato l input x.train e l output y.train. E possibile specificare una lista (o anche solo uno) di valori di K da considerare Per indicare ad R dove trovare la funzione knn.reg(), copiare il file KNNR.r nella directory di lavoro di R e richiamarlo con la funzione source() knn.reg <- function(klist,x.train,y.train,x.test) # Regressione k-nearest neighbors # # klist è la lista dei valori K da usare # x.train, y.train: il training set (indipendente-dipendente) # x.test: il test set (o ancora x.train se interessati all'interpolazione) # Output: una matrice di valori previsti per il test set (una colonna per ogni K in klist) source("knnr.r") file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 18/28

Input nella funzione knn.reg() In questo caso, la funzione knn.reg(), ci chiede di fornire come input i dati separati in variabile dipendente -indipendenti, training e, se a disposizione, test. x.train<-temp[,c(2,4,5)] y.train<-temp$peak Si noti che per formare x.train non si seleziona la variabile Day, che ha natura factor ed è appropriata per l utilizzo con lm(), ma si selezionano le due variabili numeriche Sat e Sun. In questo caso non abbiamo un set di dati test, pertanto utilizziamo la cross-validazione per: scegliere il valore ottimale di k confrontare la regressione k-nn con quella quadratica file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 19/28

CV per la regressione k-nn La CV può essere fatta utilizzando la funzione knn.reg.cv() disponibile in KNNR.r knn.reg.cv <- function(klist,x.train,y.train,nfolds) klist è la lista dei valori K da usare x.train, y.train: il training set (indipendente-dipendente) nfolds: il numero di folders per la m-fold CV, indicare n (numerosità dei dati) per ottenere una LOOCV Output: una matrice di valori previsti per la CV (una colonna per ogni K in klist) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 20/28

Seleziona il valore k ottimale con 10- fold CV k = 1, 2,, 30 Il codice seguente, per i valori esegue una 10-fold CV e salva i risultati (ossia le previsioni ottenute dalla CV) nell oggetto (matrice) p.cv. I test MSE calcolati successivamente sono nel vettore m.vec. # Consideriamo valori di k da 1 a 30 klist<-seq(30) ## Ottiene le previsioni da CV (una matrice di dati) p.cv<-knn.reg.cv(klist,x.train,y.train,10) ## Calcola i valori di test MSE stimato per k =1, 2,... 30 p.cv<-(p.cv-y.train)^2 m.vec<-apply(p.cv, 2, mean) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 21/28

Grafico dei test MSE stimati con 10- fold CV par(mfrow=c(1,1)) plot(klist,m.vec,pch=3, col="red",lwd=2.5) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 22/28

Determinare il valore minimo Utilizziamo la funzione which.min() per determinare l elemento (posizione) del vettore m.vec che contiene il valore minimo di MSE Il modello preferito per la regressione k-nn è quello con k uguale a which.min(m.vec) ## [1] 9 Il test MSE stimato dalla 10-fold CV è m.vec[which.min(m.vec)] ## [1] 38040.7 file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 23/28

Valori previsti Ottenuto il valore ottimale di k, lo utilizziamo per stimare un modelli di regressione k-nn ed ottenere le previsioni. klist<- which.min(m.vec) fit.knn<- knn.reg(klist,x.train,y.train,x.train) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 24/28

Valori osservati e valori previsti k-nn par(mfrow=c(1,1)) plot(temp$tmax,temp$peak,pch=3, col="red",lwd=2.5) points(temp$tmax,fit.knn,col="blue",pch=8,lwd=2) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 25/28

LOOCV per il modello k-nn scelto Per confrontare opportunamente fit2 e fit.knn crossvalidiamo la regressione non-parametrica utilizzando LOOCV klist<- which.min(m.vec) cvr<-knn.reg.cv(klist,x.train,y.train,nrow(temp)) LOOCV.knn<-mean((cvr-Temp$Peak)^2) LOOCV.knn ## [1] 38552.95 file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 26/28

Confronto grafico dei due modelli par(mfrow=c(1,2)) plot(temp$tmax,temp$peak,pch=3, col="red",lwd=2.5) points(temp$tmax,fit.knn,col="blue",pch=8,lwd=2) plot(temp$tmax,temp$peak,pch=3, col="red",lwd=2.5) points(temp$tmax,i(predict(fit2,temp)),col="blue",pch=8,lwd=2) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 27/28

Scelta del modello Dalla LOOCV abbiamo una stima del test MSE: 3.1726510^{4} per la regressione quadratica 3.855310^{4} per la regressione k-nn La regressione quadratica pur non catturando adeguatamente la struttura del fenomeno sembra sfruttare appieno l informazione data dal giorno della settimana. Se si considera anche la facilità di interpretazione, fit2 è decisamente preferito a fit.knn. Un modello più adatto potrebbe essere ottenuto utilizzando le spline (non trattate nel corso) file:///c:/users/emanuele.taufer/google%20drive/2%20corsi/3%20sqg/labs/l3-temperature_max.html#(24) 28/28