Anteprima
Vedrai una selezione di 17 pagine su 79
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 1 Statistical learning, appunti programma R completi, prof. Osmetti Pag. 2
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 6
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 11
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 16
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 21
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 26
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 31
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 36
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 41
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 46
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 51
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 56
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 61
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 66
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 71
Anteprima di 17 pagg. su 79.
Scarica il documento per vederlo tutto.
Statistical learning, appunti programma R completi, prof. Osmetti Pag. 76
1 su 79
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Stima del modello di regressione logistica sul training set

Ora se voglio vedere la dimensione del mio test set lancio il comando dim(controlsample) e ho 2907 righe e 13 colonne, questo campione contiene un numero di osservazioni molto più ridotto rispetto al training set.

Come facciamo a stimare il modello di regressione logistica sul training set? Utilizzo la funzione glm(), la mia variabile dipendente è sempre Y, le variabili esplicative sono tutte e lo indico con il punto . , etolgo le variabili che non mi interessano, indico il dataset da cui io prendo le osservazioni, inserisco che sto stimando un modello di regressione logistica e infine aggiungo il comando subset=train ossia vado a dire ad R che non deve stimare i dati su tutte le osservazioni presenti nel dataset, ma solo quelle presenti nel training set ossia per le osservazioni che soddisfano la condizione train: glm.fit=glm(Y~.-date-Long.medtermliab.Totass.,data=dataSME, family=binomial, subset=train)

Vediamo ora l'output ottenuto lanciando la funzione summary() il

nome del modello: <summary(glm.fit)> L'output è simile a quello di prima, ovviamente i valori sono cambiati perché sto valutando un sottocampione ma sono comunque attendibili e analoghi a quelli di prima. Una volta stimato il modello sul training set, io posso volerlo testare sul test set, come faccio? Applico gli stessi codici che abbiamo visto prima per costruire la nostra matrice di classificazione, ma questa volta devo prendere in considerazione il controsample: devo calcolare le previsioni della probabilità di andare in default in base al test set. Per fare questo devo utilizzare la funzione predict() con argomento il nome del modello che ho appena stimato, il campione che voglio utilizzare per fare la mia previsione e poi il type="response" iodico ad R che voglio le previsioni le voglio sulla scala delle variabili di risposta e non sulla scala del logit: glm.probs=predict(glm.fit,controlsample,type="response") vengono salvate.nell'oggetto glm.probs che sarà un vettore che contiene tutti i valori previsti della probabilità di andare in default delle unità statistiche contenute nel test set. A questo punto posso procedere nella classificazione delle unità statistiche del test set in default e non default sulla base del valore trovato della probabilità di andare in default. Come faccio? Costruisco prima un vettore che chiamo glm.pred costituito da valori 0 che avrà la stessa dimensione del test set: glm.pred=rep("0", 2907). A questo punto, a questo vettore tutto di zeri, sostituisci i valori da 0 a 1 per tutte quelle unità statistiche del control sample tale per cui la probabilità stimata è maggiore di 0,3, valore soglia scelto per classificare un'unità statistica in default: glm.pred[glm.probs > .3] = "1". Posso ora costruire la mia matrice di classificazione, per fare questo devo definire prima la variabile Y cheè contenuta nel <controlsample> perché per R Y è la variabile Y contenuta nel dataset <dataSME>, quindi devo definire la nuova variabile Y sul test set: la chiamo Ycontrol e per definirla posso procedere in due modi: 1. Ycontrol = Y[!train]: prendi la variabile Y del dataset originario <dataSME> e di questa non prendere tutte le righe, ma prendi solo le righe che devono finire nel test set, ossia quelle che non soddisfano la condizione train che erano quelle con train=false. 2. controlsample$Y: posso dire a R di prendere il controlsample e con il $ e il nome della variabile Y estrarre dal dataset controlsample la variabile Y. Una volta identificata la mia variabile dipendente osservata sul test set, posso costruire la matrice di classificazione attraverso la funzione table() e nell'argomento metterò il nome della classe prevista sul test set dal modello di regressione logistica e poi la classe osservata sul nostro test set, quindi confronto classe previste e classe osservata.sul test set:
Classificate correttamente Classificate erroneamente
Diagonale principale numero delle volte
Diagonale secondaria numero delle volte
Possiamo calcolare il tasso di corretta classificazione e il tasso di errata classificazione sul test set:
  • tasso di previsioni corrette: mean(glm.pred==Ycontrol)
  • tasso di previsioni errate: mean(glm.pred!=Ycontrol)
In questo caso abbiamo che il tasso di previsioni corrette = 0,81 e il tasso di previsioni errate = 0,19. Quindi abbiamo una diminuzione del tasso di previsioni corrette e un aumento del tasso di previsioni errate. Tuttavia, possiamo comunque notare che il modello è un buon modello, poiché il modello che abbiamo stimato sul training set ha un buon comportamento in termini di tasso di previsioni.

correttesul test set. A volte però possiamo essere più interessati a capire se il modello ha classificato bene non in generale, ma se si è comportato bene a classificare le unità statistiche appartenenti a una delle due classi. 34 Nel nostro contesto, se io sono una banca e devo concedere un prestito a queste piccole-medie imprese magari io sono più interessata a classificare bene i default piuttosto che i non default. Infatti se noi concentriamo la nostra attenzione sui default il numero dei default per i quali Ycontrol=1 che sono stati classificati correttamente cioè con glm.pred=1, sono pochissimi, sono 7 su 545. Se io vado a classificare il tasso di previsione errata dei default ossia che è altissimo, se con positivi intendiamo default, questo è il tasso di falsi negativi ossia di quelli che sono stati mandati in non default ma invece sarebbero dovuti essere mandati in default e quindi positivi. Cosa succede? Questo valore è

molto alto e quindi se sono una banca, anche se questo modello ha un buon comportamento complessivo, questo modello di classificazione non è un buon classificatore per quanto riguarda la classificazione dei default perché il tasso di errata classificazione dei default è molto alto e il tasso di corretta classificazione è molto alto.

Perché è successo questo? Il campione è sbilanciato, ho un numero ristretto di default rispetto ai nondefault che invece nel campione sono in percentuale maggiore. Questo sbilanciamento del campione ha comportato una sottostima della probabilità di andare in default per le piccole-medie imprese che effettivamente sono andate in default e questo ha comportato un'errata classificazione.

Quindi bisogna avere un atteggiamento molto critico quando si leggono gli output e quando si stimano dei modelli.

A questo punto cambio livello per la classificazione ossia cambio il valore soglia, chiamato anche cutoff,

default.

default, mentre 275 piccole-medie imprese che erano in default sono state classificate correttamente come default. Quindi rispetto a prima è aumentato il numero di piccole-medie imprese che sono state classificate correttamente come default ed è diminuito il numero di piccole-medie imprese che sono state classificate erroneamente come non default. Vuol dire che cambiando il valore soglia, la classificazione è migliorata, quindi è migliorato il tasso di corretta classificazione sui default, se poi calcoliamo i tassi su tutto il dataset vediamo che:

  • mean(glm.pred==Ycontrol) : tasso di previsioni corrette
  • mean(glm.pred!=Ycontrol) : tasso di previsioni errate

In questo caso abbiamo che il tasso di previsioni corrette = 0,824 e il tasso di previsioni errate = 0,176, vediamo che i due tassi complessivamente non sono cambiati molto, il modello è un buon modello in generale. Rispetto a prima il modello ha classificato meglio rispetto a prima i valori 1, ma

è peggiorato nella classificazione dei valori 0. Se sono una banca preferisco questo secondo tipo di classificazione rispetto al precedente perché mi conviene classificare correttamente i default rispetto ai non default.

36LABORATORIO 5
Oggi parliamo di analisi discriminante. L'analisi discriminante è un modello di statistical learning supervisionato perché abbiamo una variabile dipendente e delle variabili esplicative, il nostro obiettivo è quello di cercare di prevedere il valore assoluto dipendente in funzione delle variabili esplicative; è un modello di classificazione alternativo al modello di regressione logistica, l'obiettivo è quello di classificare le unità statistiche in una delle classi della variabile di risposta che risulta essere qualitativa in base al valore della stima della probabilità di appartenenza alla classe che viene effettuata attraverso il modello. Questo modello ha delle ipotesi iniziali esono ben definite e distinte  Quando si desidera ottenere una stima delle probabilità a posteriori di appartenenza alle classi  Quando si desidera utilizzare la regola del classificatore Bayesiano per la classificazione  Quando si desidera considerare l'effetto dei predittori separatamente nelle diverse classi della variabile dipendente.risultano essere ben separate dai predittori, infatti in questo caso il modello di repressore logistica non funziona molto bene Quando si ha una variabile dipendente che può assumere solo due valori, come ad esempio "successo" o "fallimento", è possibile utilizzare il modello di regressione logistica per stimare la probabilità di successo in base ai predittori. Tuttavia, se i dati non sono ben separati dai predittori, il modello potrebbe non funzionare correttamente. In questi casi, potrebbe essere necessario utilizzare altri modelli o considerare l'aggiunta di nuovi predittori per migliorare le prestazioni del modello.
Dettagli
Publisher
A.A. 2019-2020
79 pagine
2 download
SSD Scienze economiche e statistiche SECS-S/01 Statistica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher nicoletta0597 di informazioni apprese con la frequenza delle lezioni di Statistical learning e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Cattolica del "Sacro Cuore" o del prof Osmetti Silvia.