Overfitting (2 lettori)

AndrewLR

Nuovo forumer



Non capisco il ridicolo, in quella conclusione (propugnata da me ed altri) non vi è nessuna pretesa di attenuare l’overfitting, né di aver scoperto chissà quale furbata.
Fare tutto “in sample” è solo un gesto di consapevolezza che spezzettando la serie in due tronconi (di cui il secondo, spesso molto breve, e potenzialmente soggetto a fattori di mercato “particolari”), non si ha alcuna informazione aggiuntiva rispetto al backtesting sull’intera serie.
Ed allora, visto che richiede software dedicati, tempo, lavoro e può ingenerare pericolose illusioni, è assolutamente logico non farlo.
Certo, magari non ridicolo, ma è sempre curioso e divertente toccare con mano quale sia il grado di incomunicabilità che si raggiunge sui forum…..


Imar, capisco quello che vuoi dire e concordo che fare tutto in-sample in alcuni casi specifici ha il suo valore, per me pero' non c'e' bisogno di riunnciare sistematicamente all'out-sample, ma bisogna un po' adattarsi al gioco che si sta giocando:

- anche tralasciando il cross-validation e assumendo un'unica fase di fitting e selezione del modello, i tronconi insample-outsample non devono essere per forza due...

- a seconda di quello che si fa, il data sample non deve per forza essere piccolo...

- e' bene usare misure robuste per provare a capire se l'outsample puo' effettivamente dirsi diverso dall'insample, come accennavo in un altro thread

Ho specificato questi punti in particolare perche' non li vedo praticamente mai discussi.
Nessuna magia ovviamente e nessuna garanzia di non overfitting, ma per me sono passi nella giusta direzione (ovviamente inutili se si cade in altre trappole, ma questo va da se')

PS: per gli interessati, sto leggendo questo libro:
Learning From Data: Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin: 9781600490064: Amazon.com: Books
e lo sto trovando davvero ben fatto (il tipo ha anche un MOOC su edx). Tratta solo le basi, ma mi sembra farlo davvero bene. PG se lo conosci e vuoi dare un parere... (perdono per aver messo da parte per ora le tue precedenti raccomandazioni :bow:)
 
Ultima modifica:

GiuliaP

The Dark Side
Imar, vista l'eliminazione del thread di la (ma perché? :-x) riprendo qui il concetto di "fraintendimento", perché conoscendoti un poco secondo me hai frainteso il mio applauso al post di ecce bombo.

Legge nei nostri post "lo skew come panacea" , è "da anni che lo sbircia", ci dice "non venite a cazzare", poi "se non trovate niente sul vix...cosa volete trovare qua", ed infine, mitica ciliegina sulla torta, posta un grafico con l'indice skew del CBOE, ... e non si merita un applauso? :clap:

Mi avevi frainteso, dici la verità! :lol: :prr:
 

Imar

Forumer attivo
............ fare tutto in-sample in alcuni casi specifici ha il suo valore,

:eek::eek::eek::eek::(:(:(

Again???

Once More ........................(forse sono io che non mi spiego bene, o forse, più semplicemente, lo considero una cosa talmente ovvia che sono stato troppo ermetico...) .......... fare tutto in sample NON HA NESSUN PARTICOLARE VALORE AGGIUNTO........ semmai è solo la logica conseguenza del comprendere a priori che spezzando la serie storica in N tronconi .......NON stai validando il sistema con un periodo OUT OF SAMPLE, ma stai - once more - giocando con il caso ............ (imho, as always...)


per me pero' non c'e' bisogno di riunnciare sistematicamente all'out-sample,

Non solo non c'è bisogno di rinunciarvi, anzi, bisogna praticarlo sistematicamente. Solo che l'unico out of sample che conta E' QUELLO CHE FAI CON TRADES REALI a mercato, magari con quantità ridicole e P&L che per te non significano nulla (rispetto al contesto generale), ma che ti danno l'unica vera misura di valore del tuo trading system.

Nenache questa è una garanzia assoluta, ..... ma di meglio non possiamo fare.

Tra l'altro, è per questo che ti dissi, tempo fà, di non dare mai la colpa ad una cattiva execution per la differenza tra risultati simulati e reali: l'execution in realtà è il trading system.

ma bisogna un po' adattarsi al gioco che si sta giocando:

- anche tralasciando il cross-validation e assumendo un'unica fase di fitting e selezione del modello, i tronconi insample-outsample non devono essere per forza due...

- a seconda di quello che si fa, il data sample non deve per forza essere piccolo...

- e' bene usare misure robuste per provare a capire se l'outsample puo' effettivamente dirsi diverso dall'insample, come accennavo in un altro thread

Per come la vedo io, questi aspetti sono abbastanza irrilevanti, rispetto all'esigenza di valutare la coerenza logica delle regole e dei risultati............ ma non voglio insistere, è giusto che ognuno segua la sua strada.

Ciao!!

Imar, vista l'eliminazione del thread di la (ma perché? :-x) riprendo qui il concetto di "fraintendimento", perché conoscendoti un poco secondo me hai frainteso il mio applauso al post di ecce bombo.

Legge nei nostri post "lo skew come panacea" , è "da anni che lo sbircia", ci dice "non venite a cazzare", poi "se non trovate niente sul vix...cosa volete trovare qua", ed infine, mitica ciliegina sulla torta, posta un grafico con l'indice skew del CBOE, ... e non si merita un applauso? :clap:

Mi avevi frainteso, dici la verità! :lol: :prr:


Non sarò abbastanza gentiluomo da darti ragione :bow::bow:...... ma secondo me era un applauso del tipo " :eek::eek: ecco cosa significa non capire niente al 100%.... evidentemente è vero che "Dio li fa e poi li accoppia" :D:D:D

PS Noi non ci conosciamo - checchè ne possa pensare illo - ma io ho la presunzione di immaginare molto bene cosa pensi della SKEW e di suoi eventuali utilizzi un pò più realistici che non prevedere l'SP500....:cool::cool::cool:

PS sparito tutto di là.... e perchè... mò vado a vedere...........

EDIT: visto! ma rob de matt........... è tre anni che prendo(prendiamo) insulti ed ora mi invitano a redimermi.... :eek::sad::D diciamo la verità illo ed il suo clan sono fonte continua ed inesauribile di comicità involontaria.....:clap::clap::clap:
 
Ultima modifica:

AndrewLR

Nuovo forumer
Ok, non mi ero accorto che anche queste differenze sono dovute alla diversa visione di fondo che abbiamo su strategie che sfruttano dinamiche non pienamente comprensibili, mea culpa.

(e giusto per chiarire: in queste faccio rientrare trend-following, momentum, modelli alla Crabel o alla smodato, long-short equities, anche pairs-trading, stagionalita' di vario tipo...)



:eek::eek::eek::eek::(:(:(

Again???

Once More ........................(forse sono io che non mi spiego bene, o forse, più semplicemente, lo considero una cosa talmente ovvia che sono stato troppo ermetico...) .......... fare tutto in sample NON HA NESSUN PARTICOLARE VALORE AGGIUNTO........

Fare tutto in-sample per me ha valore (rispetto al non testare) nel momento in cui sai di preciso cos'e' che vuoi testare, i.e. c'e' una logica ben chiara dietro il tuo backtest. E allora in ogni caso fai 1 backtest e hai finito, e quindi il fare in-sample/out-sample appunto non ha nessun valore aggiunto.

semmai è solo la logica conseguenza del comprendere a priori che spezzando la serie storica in N tronconi .......NON stai validando il sistema con un periodo OUT OF SAMPLE, ma stai - once more - giocando con il caso ............ (imho, as always...)

Non solo non c'è bisogno di rinunciarvi, anzi, bisogna praticarlo sistematicamente. Solo che l'unico out of sample che conta E' QUELLO CHE FAI CON TRADES REALI a mercato, magari con quantità ridicole e P&L che per te non significano nulla (rispetto al contesto generale), ma che ti danno l'unica vera misura di valore del tuo trading system.

Nenache questa è una garanzia assoluta, ..... ma di meglio non possiamo fare.

[..]
Per come la vedo io, questi aspetti sono abbastanza irrilevanti, rispetto all'esigenza di valutare la coerenza logica delle regole e dei risultati............ ma non voglio insistere, è giusto che ognuno segua la sua strada.

Agreed che trades reali, piccoli che siano, >> outsample simulato.

Inutile specificarlo per te, ma e' proprio nel caso in cui non sai esattamente quale sia il driver dietro certe dinamiche che questi aspetti diventano piu' rilevanti, esattamente perche' devi trovare un modo esterno alla logica umana per distinguere casualita' da causalita' (ole'), in un contesto come quello dei mercati che lo rende MOLTO difficile.

E specifico anche che all'opposto in casi in cui hai chiara la logica sottostante, usare accorgimenti del genere possa essere in proporzione meno utile perche' data-snooping e overfitting vengono da te che hai trovato la logica dietro la strategia.


Tra l'altro, è per questo che ti dissi, tempo fà, di non dare mai la colpa ad una cattiva execution per la differenza tra risultati simulati e reali: l'execution in realtà è il trading system.

Non ricordo il caso specifico, ma in casi in cui l'internet ti va giu' e l'execution se ne va a **** non puoi pensare che sia l'inefficienza che effetivamente non fosse sfruttabile/esistesse.
Esempio stupido solo per dire che, in proprio, queste considerazioni si possono piu' o meno fare (e penserei fosse questo il tono ingenuo della mia affermazione che ha suscitato la tua risposta, in un contesto in cui si era appena iniziato ad implementare il tutto), ma chiaramente hai ragione che a fine giornata solo carta canta.

Ad ogni modo, solo la mia opinione.
Spero d'immergermi presto in robe piu' "comprensibili" :)
 

GiuliaP

The Dark Side
Ok, non mi ero accorto che anche queste differenze sono dovute alla diversa visione di fondo che abbiamo su strategie che sfruttano dinamiche non pienamente comprensibili, mea culpa.

(e giusto per chiarire: in queste faccio rientrare trend-following, momentum, modelli alla Crabel o alla smodato, long-short equities, anche pairs-trading, stagionalita' di vario tipo...)...

Ma è proprio nella visione di fondo tipica del "data snooping" (quella in cui fai rientrare le casistiche da te citate) che tipicamente un analista esperto, dopo essere andato in tondo per un tempo inversamente proporzionale al suo grado di consapevolezza, torna al punto in cui decide di eliminare l'out of sample, semplicemente perché capisce che il rapporto costi/benefici del suo utilizzo è diventato praticamente infinito, visto che benefici non ne da più nessuno.

Dal momento che l'hai citato, in questo contesto credo che smodato possa dire qualcosa di interessante, visto che per quanto mi riguarda lo incasello in una sorta di "zona d'ombra".

Riguardo la visione "intuition driven", o se preferisci "experience driven", il backtesting, quando possibile, è sempre è solo (quasi) unico, sempre e solo di verifica univoca, e sempre e solo fatto su dati da ricavare con lacrime e sangue. Oppure, quando non è possibile il backtesting, si fa unicamente, come dice Imar, "out of sample reale".
Tanto, se ci si è sbagliati (o si è sbagliato ISIN :prr:), a mercato lo si capisce relativamente in fretta.
 
Ultima modifica:

AndrewLR

Nuovo forumer
Se il tuo internet va giù e tu non puoi operare mentre in tutto il resto del mondo è business as usual, non è colpa di internet... è colpa tua.

Se - per qualche ragione - tu non inserisci gli ordini del sistema o non ti scatta uno stop e perdi in un trade il guadagno di un mese non è questione di sfiga. E' questione che puoi avere il miglior sistema del mondo, ma se l'execution non è ottimale, non te ne fai nulla...

Dunque - di questo mi pare parlammo un pò di tempo fà - casi come quelli sopra esposti non dovrebbero essere neanche citati come giustificazioni per risultati reali diversi da quelli ipotetici...

Le mie capacita' di esprimermi in italiano cominciano a preoccuparmi :D

Non solo concordo, ma era anche quello che intendevo nel messaggio precedente. Quando si parla dei propri risultati non ci sono giustificazioni e "ma" che tengano, solo i risultati parlano (e meglio se fatti con account grossi, ahime')

Aggiungevo pero' che in proprio uno puo' (e deve) provare a distinguere fra "assenza di un'inefficienza" e "l'essere stato un cazz*ne" :cool:


Ma è proprio nella visione di fondo tipica del "data snooping" (quella in cui fai rientrare le casistiche da te citate) che tipicamente un analista esperto, dopo essere andato in tondo per un tempo inversamente proporzionale al suo grado di consapevolezza, torna al punto in cui decide di eliminare l'out of sample, semplicemente perché capisce che il rapporto costi/benefici del suo utilizzo è diventato praticamente infinito, visto che benefici non ne da più nessuno.

:mumble: non ti seguo. Andato in tondo significa?
e perche "diventato"?

Personalmente vedo una differenza nello data-snooping ottenuto da strategie puramente logiche vs altre, che rende l'out-sample piu' difficile da valutare nelle prime, a causa della stessa consapevolezza che ha partorito la strategia.

Dal momento che l'hai citato, in questo contesto credo che smodato possa dire qualcosa di interessante, visto che per quanto mi riguarda lo incasello in una sorta di "zona d'ombra".

Aspetto curioso un suo intervento allora :up:



ps: fa strano notare il continuo estroso shadowing da parte del vostro amico di qualunque tematica discussa qua...
 
Ultima modifica:

GiuliaP

The Dark Side
:mumble: non ti seguo. Andato in tondo significa?
e perche "diventato"?

Perché idealmente il test out of sample perde significato ad ogni suo successivo utilizzo. Se sei un neofita che prova il suo primo sistema per la prima volta out of sample, praticamente ti equivale ad andare a mercato.

Ma più esperienza e test fai, più le tue probabilità di fare overfitting crescono esponenzialmente, qualunque sample tu voglia utilizzare.

La consapevolezza di questo ti dovrebbe portare in prima battuta a rinunciare all'out of sample, ed in seconda battuta a ... "pensare fuori dagli schemi".

Personalmente vedo una differenza nello data-snooping ottenuto da strategie puramente logiche vs altre, che rende l'out-sample piu' difficile da valutare nelle prime, a causa della stessa consapevolezza che ha partorito la strategia.

Quelle che tu chiami "strategie puramente logiche", per loro stessa definizione, non utilizzano il data snooping. In altri termini, non sono "data driven", ma, come già detto, "intuition/experience driven".
Il problema dell'out of sample, nel loro caso, praticamente non si pone neanche.

...Aspetto curioso un suo intervento allora :up:...

Idem! :)
 

AndrewLR

Nuovo forumer
Perché idealmente il test out of sample perde significato ad ogni suo successivo utilizzo. Se sei un neofita che prova il suo primo sistema per la prima volta out of sample, praticamente ti equivale ad andare a mercato.

Ma più esperienza e test fai, più le tue probabilità di fare overfitting crescono esponenzialmente, qualunque sample tu voglia utilizzare.

La consapevolezza di questo ti dovrebbe portare in prima battuta a rinunciare all'out of sample, ed in seconda battuta a ... "pensare fuori dagli schemi".

Giustissimo, ma questo non si chiama fare in-sample/out-sample...quindi non vedo il nesso fra questo e prima e seconda battuta.


Quelle che tu chiami "strategie puramente logiche", per loro stessa definizione, non utilizzano il data snooping. In altri termini, non sono "data driven", ma, come già detto, "intuition/experience driven".
Il problema dell'out of sample, nel loro caso, praticamente non si pone neanche.



Idem! :)

Ok, dipende dalla definizione che ciascuno ha di "puramente logiche". Anche definendole "intuition/experience driven" per me possono essere vittime di overfitting (in effetti ha meno senso parlare di data-snooping in questo caso). Se rendiamo la definizione ancora piu' stringente pero' concordo.
 

smodato 2

Nuovo forumer
Aspetto curioso un suo intervento allora :up:

Ciao, dico come mi comporto io e quindi non necessariamente come ci si dovrebbe comportare.
Sviluppo strategie solo In-Sample per evitare il circolo vizioso del passo indietro qualora l'OOS desse risultati negativi.
L'esperienza maturata mi permette di capire se il tipo di ingressi/uscite utilizzati possano incontrare problemi in realtime (parlo di problemi ripetitivi come per esempio un ingresso limit in orari di bassa volatilità, non del problema una tantum dovuto a fattori casuali) e quindi il mio "test di robustezza" consiste nel dimenticarmi della strategia per qualche mese (la durata dell'oblio va ovviamente tarata in base al numero di trade/mese della strategia).
Alle volte mi dimentico proprio e ritrovo script "antichi" su cui curiosare ma se i compiti sono fatti bene dopo il periodo di cassetto guardo come si sarebbe comportata la strategia e, se soddisfatto e convinto decido se metterla live.
La fase di sviluppo usa iterazioni tra pattern ed altri setup ma viene sempre posta al vaglio cercando di identificare la logicità o meno di quanto trovato. Questo credo sia un processo molto discrezionale e credo dipenda dalla sensibilità di ciascuno a meno che non si utilizzino ovviamente metodi "nudi e crudi".
In base alla risposta dei sistemi ai pattern utilizzati ho l'impressione (illusione nel vocabolario di PGP) di leggere i cambiamenti dei mercati e quindi l'input per un lavoro di analisi e studio aggiuntivo.
Se una strategia zoppica vistosamente valuto il da farsi. Se il problema nasce immediatamente alla partenza live di solito ammetto l'errore e la spengo per sempre, non cerco di "aggiustarla" manovrando i parametri a meno che non "veda" qualcosa di evidente (ma è molto raro).
Credo che il fattore umano in tutto ciò incida parecchio, non sono infatti un fan di software di ricerca automatica di sistemi né dell'uso di reti neurali al pure scopo di sviluppo, il confine poi tra questi approcci e quello che faccio io credo non sia chiaro nemmeno nella mi testa :wall: .
Alle volte mi viene il dubbio se un approccio puramente discrezionale (non di istinto ovviamente ma di pianificazione manuale dell'operatività) non possa essere una valida alternativa a parità di lavoro, se è vero che i sistemi girano in automatico (compatibilmente con le mie capacità prossime al solo utilizzo del pallottoliere) è pure vero che il lavoro di ricerca è continuo e assiduo e si potrebbe immaginare di utilizzare la sensibilità acquisita negli anni per decidere direttamente cosa fare, sto facendo dei test (molto costosi per ora :sad: ) in questa direzione, vedremo :mumble:.
:ciao:
Smodato
 

tdazio

Nuovo forumer
Perché idealmente il test out of sample perde significato ad ogni suo successivo utilizzo. Se sei un neofita che prova il suo primo sistema per la prima volta out of sample, praticamente ti equivale ad andare a mercato.

Ok, anche se la figura del neofita 'vergine' è abbastanza irreale: probabilmente avrà letto qualche libro per cui avrà inglobato l'esperienza altrui, sia su ciò che può funzionare che su ciò da evitare

Ma più esperienza e test fai, più le tue probabilità di fare overfitting crescono esponenzialmente, qualunque sample tu voglia utilizzare.

perché esponenzialmente e non linearmente?
in realtà quello che conta è la correlazione tra le varie strategie che testi: meno sono correlate, maggiore è la chance di incappare nell'overfitting

La consapevolezza di questo ti dovrebbe portare in prima battuta a rinunciare all'out of sample, ed in seconda battuta a ... "pensare fuori dagli schemi".

oppure, in terza battuta, a contare il numero di test e associare al backtesting migliore una sorta di 'livello di confidenza'
è la strada seguita dalla produzione scientifica degli ultimi anni in questo campo (data-snooping in senso lato, non necessariamente legato alla finanza), anche se la realizzazione è decisamente problematica e dal punto di vista logico la cosa può condurre a strani paradossi.

sul 'pensare fuori dagli schemi' resto perplesso: questo è un campo in cui gli 'schemi' vengono protetti gelosamente da occhi indiscreti, spesso anche se sono dei vicoli ciechi.
l'originalità può anche essere solo apparente.
 

Users who are viewing this thread

Alto