Previsione di mercato basata su indicatori macroeconomici - pagina 12

 
avtomat:


è vero solo per la classe limitata di modelli che le "vostre università" vi hanno insegnato.


Non l'ho studiato nelle università. Sono un autodidatta. Penso con il mio cervello. Metto in dubbio e ricontrollo tutto. La necessità della stazionarietà stessa mi è venuta dopo molteplici tentativi infruttuosi di ottenere un modello su dati non stazionari. Posso dimostrare nei dettagli, ma mi dispiace per il tempo, perché ognuno si atterrà alle proprie opinioni.

Il mio interesse per questo argomento è iniziato dopo aver visto le notizie di mercato, dove il professor Steve Keen si vantava di come il suo modello economico aveva previsto il crollo del 2008, ma il modello DSGE usato dalla Fed non era in grado di prevedere nulla. Così ho studiato il modello DSGE e il modello di Keen. Per coloro che vogliono seguire il mio percorso, suggerisco di iniziare con questo articolo di Matlab sul modello DSGE. Ha tutti i codici necessari, incluso il codice per scambiare i dati economici dal database FRED fedreserve:

http://www.mathworks.com/help/econ/examples/modeling-the-united-states-economy.html

Il modello Fed utilizza i seguenti predittori:

% FRED Series Description% ---------------------------------------------------------------------------% COE Retribuzione pagata dai dipendenti in miliardi di dollari% CPIAUCSL Indice dei prezzi al consumo% FEDFUNDS Tasso effettivo dei fondi federali% GCE Spese per consumi e investimenti pubblici in miliardi di dollari% GDP Prodotto interno lordo in miliardi di dollari% GDPDEF Deflatore dei prezzi del prodotto interno lordo% GPDI Investimenti interni privati lordi in miliardi di dollari% GS10 Rendimento dei titoli del tesoro a dieci anni % HORendimento dei titoli del tesoro a un anno% HOANBS Indice delle ore lavorate del settore non agricolo% M1SL Massa monetaria M1 (moneta stretta)% M2SL Massa monetaria M2 (moneta larga)% PCEC Spese per consumi personali in miliardi di dollari% TB3MS Rendimento dei buoni del tesoro a tre mesi% UNRATE Tasso di disoccupazione


Poi guardate le conferenze di Steve Keen su YouTube:

https://www.youtube.com/watch?v=aJIE5QTSSYA

https://www.youtube.com/watch?v=DDk4c4WIiCA

https://www.youtube.com/watch?v=wb7Tmk2OABo

E leggere i suoi articoli.

Modeling the United States Economy - MATLAB & Simulink Example
  • www.mathworks.com
The Smets-Wouters model (2002, 2004, 2007) is a nonlinear system of equations in the form of a Dynamic Stochastic General Equilibrium (DSGE) model that seeks to characterize an economy derived from economic first principles. The basic model works with 7 time series: output, prices, wages, hours worked, interest rates, consumption, and...
 
Il programmaminsky (simulatore economico) è allegato, e il sito da cui è tratto, ci sono molti video che spiegano come funziona, e molte altre cose sul sito.

/go?link=http://www.ideaeconomics.org/minsky/

File:
 
ProfSteveKeen
ProfSteveKeen
  • www.youtube.com
Rethinking Economics at the London School of Economics I was invited by the Rethinking Economics student association at the London School of Economics to give a talk about Greece, Austerity, Post Keynesian Economics and anticipating the crisis. There...
 
E per i sottosviluppati, in un linguaggio leggibile
 
Vinin:
E per i sottosviluppati in un linguaggio facile da leggere

Per i tedeschi :)

https://translate.google.com.ua/translate?sl=en&tl=ru&js=y&prev=_t&hl=ru&ie=UTF-8&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSteve_Keen&edit-text=

 
gpwr:

Quindi, il compito è quello di prevedere l'indice S&P 500 sulla base degli indicatori economici disponibili.

Passo 1: trovare gli indicatori. Gli indicatori sono disponibili pubblicamente qui: http://research.stlouisfed.org/fred2/ Ce ne sono 240.000. Il più importante è la crescita del PIL. Questo indicatore viene calcolato ogni trimestre. Quindi il nostro passo è di 3 mesi. Tutti gli indicatori su tempi più brevi sono ricalcolati a 3 mesi, gli altri (annuali) sono scartati. Scartiamo anche gli indicatori di tutti i paesi tranne gli Stati Uniti e gli indicatori che non hanno una storia profonda (almeno 15 anni). Quindi setacciamo faticosamente un mucchio di indicatori e otteniamo circa 10 mila indicatori. Formuliamo un compito più specifico per prevedere l'indice S&P 500 per uno o due trimestri avanti, avendo 10 mila indicatori economici con un periodo trimestrale. Faccio tutto in Matlab, ma è anche possibile farlo in R.

Passo 2: Convertire tutti i dati in una forma stazionaria differenziando e normalizzando. Ci sono molti metodi. La cosa principale è che i dati trasformati possono essere recuperati dai dati originali. Nessun modello funzionerà senza stazionarietà. La serie S&P 500 prima e dopo la trasformazione è mostrata qui sotto.

Passo 3: Scegliere un modello. Si potrebbe avere una rete neurale. Può essere unaregressione lineare multivariabile. Potrebbe essere una regressione polinomiale multivariabile. Dopo aver provato modelli lineari e non lineari, concludiamo che i dati sono così rumorosi che non ha senso applicare un modello non lineare poiché il grafico y(x) dove y = S&P 500 e x = uno dei 10 mila indicatori è quasi una nuvola rotonda. Così, formuliamo il compito ancora più concretamente: prevedere l'indice S&P 500 per uno o due trimestri avanti avendo 10 mila indicatori economici con un periodo trimestrale, utilizzando la regressione lineare multivariabile.

Passo 4: Selezionare gli indicatori economici più importanti su 10 mila (ridurre la dimensione del problema). Questo è il passo più importante e difficile. Supponiamo di prendere la storia dello S&P 500 che è lunga 30 anni (120 trimestri). Per rappresentare lo S&P 500 come una combinazione lineare di vari indicatori economici, è sufficiente avere 120 indicatori per descrivere accuratamente lo S&P 500 durante questi 30 anni. Inoltre, gli indicatori possono essere assolutamente qualsiasi tipo di indicatori, al fine di creare un modello così accurato di 120 indicatori e 120 valori di S&P 500. Così, ridurremo il numero di ingressi al di sotto del numero di valori di funzione descritti. Per esempio, stiamo cercando 10-20 indicatori/ingressi più importanti. Tali compiti di descrizione dei dati attraverso un piccolo numero di input selezionati da un gran numero di basi candidate (dizionario) sono chiamati codifica sparsa.

Ci sono molti metodi per selezionare gli input dei predittori. Le ho provate tutte. Ecco i due principali:

  1. Classifichiamo tutti i dati 10k in base alla loro capacità predittiva dello S&P 500. La capacità predittiva può essere misurata dal coefficiente di correlazione o dall'informazione reciproca.
  2. Guardiamo tutti i 10 mila indicatori uno per uno e selezioniamo quello che ha dato il modello lineare y_mod = a + b*x1 descrivendo S&P 500 con l'errore minimo. Poi selezioniamo di nuovo il secondo ingresso provando i restanti 10 mila -1 indicatori in modo che descriva il residuo y - y_mod = c + d*x2 con il minimo errore. E così via. Questo metodo è chiamato regressione stepwise o matching pursuit.

Ecco i primi 10 indicatori con il massimo coefficiente di correlazione con lo S&P 500:

ID serie Lag Corr Informazioni reciproche
'PPICRM 2 0.315 0.102
'CWUR0000SEHE' 2 0.283 0.122
'CES1021000001' 1 0.263 0.095
'B115RC1Q027SBEA' 2 0.262 0.102
'CES1000000034' 1 0.261 0.105
'A371RD3Q086SBEA' 2 0.260 0.085
'B115RC1Q027SBEA' 1 0.256 0.102
'CUUR0000SAF111' 1 0.252 0.117
'CUUR0000SEHE'. 2 0.251 0.098
'USMINE' 1 0.250 0.102

Ecco i primi 10 indicatori con la massima informazione reciproca con lo S&P 500:

ID serie Lag Corr Informazioni reciproche
CPILEGSL 3 0.061 0.136
'B701RC1Q027SBEA' 3 0.038 0.136
'CUSR0000SAS' 3 0.043 0.134
'GDPPOT' 3 0.003 0.134
'NGDPPOT' 5 0.102 0.134
'OTHSEC' 4 0.168 0.133
3 'LNU01300060' 3 0.046 0.132
'LRAC25TTUSM156N' 3 0.046 0.132
'LRAC25TTUSQ156N' 3 0.046 0.131
'CUSR0000SAS' 1 0.130 0.131

Lag è il ritardo della serie di input rispetto alla serie S&P 500 simulata. Come si può vedere da queste tabelle, diversi metodi di scelta degli input più importanti risultano in diversi set di input. Poiché il mio obiettivo finale è quello di minimizzare l'errore del modello, ho scelto il secondo metodo di selezione degli input, cioè enumerare tutti gli input e selezionare l'input che ha dato l'errore più piccolo.

Passo 5: Scegliere un metodo per calcolare l'errore e i coefficienti del modello. Il metodo più semplice è il metodo RMS, che è il motivo per cui la regressione lineare con questo metodo è così popolare. Il problema con il metodo RMS è che è sensibile agli outlier, cioè questi outlier hanno un effetto significativo sui coefficienti del modello. Per ridurre questa sensibilità, la somma dei valori assoluti dell'errore può essere usata al posto della somma dei quadrati degli errori, il che porta a un metodo di minimo modulo (LMM) o di regressione robusta. Questo metodo non ha una soluzione analitica per i coefficienti del modello, a differenza della regressione lineare. Di solito i moduli sono sostituiti da funzioni approssimative lisce/differenziabili e la soluzione è numerica e lunga. Ho provato entrambi i metodi (regressione lineare e LNM) e non ho notato alcun vantaggio particolare di LNM. Invece di DOM, sono andato per vie traverse. Al secondo passo di ottenere dati stazionari differenziandoli, ho aggiunto un'operazione di normalizzazione non lineare. Cioè, la serie originale x[1], x[2], ... x[i-1], x[i] ... viene prima convertito in una serie differenziale x[2]-x[1] ... x[i]-x[i-1] ... e poi ogni differenza viene normalizzata sostituendola con sign(x[i]-x[i-1])*abs(x[i]-x[i-1])^u, dove 0 < u < 1. Quando u=1, otteniamo il classico metodo RMS con la sua sensibilità agli outlier. A u=0, tutti i valori della serie di input sono sostituiti da valori binari +/-1 con quasi nessun outlier. A u=0,5, otteniamo qualcosa di vicino a RMS. Il valore ottimale di u è da qualche parte tra 0,5 e 1.

Si noti che uno dei metodi popolari per convertire i dati in una forma stazionaria è sostituire i valori della serie con la differenza dei logaritmi di questi valori, cioè log(x[i]) - log(x[i-1]) o log(x[i]/x[i-1]). La scelta di questa trasformazione è pericolosa nel mio caso perché ci sono molte righe con valori zero e negativi nel dizionario di 10k ingressi. Il logaritmo ha anche il vantaggio di ridurre la sensibilità del metodo RMS agli outlier. Come tale, la mia funzione di trasformazione sign(x)*|x|^u ha lo stesso scopo del log(x) ma senza i problemi associati ai valori zero e negativi.

Passo 6: calcoliamo la previsione del modello adattando i nuovi dati di input e calcolando l'output del modello usando gli stessi coefficienti del modello che sono stati trovati dalla regressione lineare nella sezione precedente della storia. È importante ricordare che gli indicatori economici trimestrali e i valori dell'S&P 500 arrivano quasi contemporaneamente (entro 3 mesi). Quindi, per prevedere l'S&P 500 per il prossimo trimestre, il modello dovrebbe essere costruito tra il valore trimestrale corrente dell'S&P 500 e le voci ritardate di almeno 1 trimestre (Lag>=1). Per prevedere l'S&P 500 con un trimestre di anticipo, il modello dovrebbe essere costruito tra il valore trimestrale corrente dell'S&P 500 e input ritardati di almeno 2 trimestri (Lag>=2). E così via. La precisione delle previsioni diminuisce considerevolmente con ritardi superiori a 2.

Passo 7: Controllare la precisione delle previsioni sulla storia precedente. La metodologia originale descritta sopra (scrivere ogni ingresso nella storia precedente, scegliere l'ingresso con il valore RMS più basso, e usare il valore fresco di quell'ingresso per fare la previsione) ha dato anche peggio delle previsioni casuali o nulle. Mi sono chiesto questo: perché un input che si adatta bene al passato dovrebbe avere una buona capacità predittiva del futuro? Ha senso selezionare gli input del modello in base al loro errore di previsione precedente, piuttosto che in base al più piccolo errore di regressione su dati noti.

Dopo tutto, il mio modello può essere descritto passo dopo passo in questo modo:

  1. Scarichiamo dati economici da stlouisfed (circa 10k indicatori).
  2. Trasforma i dati in una forma stazionaria e li normalizza.
  3. Seleziona un modello lineare dell'indice S&P 500, risolto analiticamente con il metodo RMS (regressione lineare).
  4. Selezioniamo la lunghezza della storia (1960 - Q2 2015) e la dividiamo in un periodo di formazione (1960 - Q4 1999) e un periodo di test (Q1 2000 - Q2 2015).
  5. Iniziamo le previsioni con 1960 + N + 1 anni, dove N*4 è il numero iniziale di valori trimestrali noti dell'S&P 500.
  6. Dai primi N dati viene costruito un modello lineare y_mod = a + b*x per ogni indicatore economico, dove y_mod è il modello S&P 500 e x è uno degli indicatori economici.
  7. Prevediamo N + 1 barre con ogni modello.
  8. Calcolare gli errori di previsione di N + 1 barre per ogni modello. Ricorda questi errori.
  9. Aumentiamo il numero di valori noti dello S&P 500 di 1, cioè N + 1, e ripetiamo i passi 6-9 fino a raggiungere la fine del periodo di allenamento (Q4 1999). A questo punto, abbiamo memorizzato gli errori di previsione dal 1960 + N +1 anni al Q4 1999 per ogni indicatore economico.
  10. Iniziamo a testare il modello sul secondo intervallo storico (Q1 2000 - Q2 2015).
  11. Per ognuno dei 10 mila input calcoliamo l'errore quadratico medio delle previsioni per il periodo 1960 - Q4 1999.
  12. Da 10 mila input, scegliete quello con l'errore di previsione RMS più basso dal 1960 al 4° trimestre 1999.
  13. Costruiamo un modello lineare y_mod = a + b*x per ogni indicatore economico per il 1960 - Q4 1999.
  14. Prevediamo il Q1 2000 per ogni modello.
  15. Selezioniamo la previsione dell'input selezionato con il più basso RMS delle previsioni per il periodo di tempo precedente (1960 - Q4 1999) come nostra previsione principale del Q1 2000.
  16. Calcolare gli errori di previsione di tutti gli input nel 1° trimestre 2000 e aggiungerli al RMS degli stessi input nell'intervallo di tempo precedente (1960 - 4° trimestre 1999).
  17. Andiamo al Q2 2000 e ripetiamo i passi 12-17 fino a raggiungere la fine della sezione di test (Q2 2015) con un valore sconosciuto dello S&P 500, la cui previsione è il nostro obiettivo principale.
  18. Accumuliamo gli errori di previsione per il Q1 2000 - Q4 2014 fatti dagli ingressi con il più basso RMS delle previsioni nei segmenti precedenti. Questo errore (err2) è il nostro modello di errore di previsione fuori campione.

In breve, la scelta del predittore dipende dal suo RMS delle previsioni dei precedenti valori di S&P 500. Non si può guardare al futuro. Il predittore può cambiare nel tempo, ma alla fine del segmento di prova smette sostanzialmente di cambiare. Il mio modello ha scelto PPICRM con un ritardo di 2 trimestri come primo input per prevedere il Q2 2015. La regressione lineare dello S&P 500 per l'input PPICRM(2) selezionato per il 1960 - Q4 2014 è mostrata qui sotto. I cerchi neri sono la regressione lineare. I cerchi multicolori sono dati storici per il 1960 - Q4 2014. Il colore del cerchio indica l'ora.


Previsioni dello S&P 500 in forma stazionaria (linea rossa):

Previsioni S&P 500 in forma grezza (linea rossa):

Il grafico mostra che il modello prevede un aumento dello S&P 500 nel secondo trimestre del 2015. L'aggiunta di un secondo ingresso aumenta l'errore di predizione:

1 err1=0,900298 err2=0,938355 PPICRM (2)

2 err1=0,881910 err2=0,978233 PERMIT1 (4)

Dove err1 è l'errore di regressione. Ovviamente diminuisce con l'aggiunta del secondo ingresso. err2 è l'errore di predizione radice-media quadrata diviso per l'errore di predizione casuale. Quindi err2>=1 significa che la previsione del mio modello non è migliore delle previsioni casuali. err2<1 significa che la previsione del mio modello è migliore delle previsioni casuali.

PPICRM = Indice dei prezzi alla produzione: Materiali grezzi per ulteriore lavorazione

PERMIT1 = Nuove unità abitative private autorizzate dai permessi di costruzione - in strutture con 1 unità

Il modello descritto sopra può essere riformulato così. Riuniamo 10 mila economisti e chiediamo loro di prevedere il mercato per il trimestre successivo. Ogni economista arriva con la sua previsione. Ma invece di scegliere qualche previsione basata sul numero di libri di testo che hanno scritto o di premi Nobel che hanno ricevuto in passato, aspettiamo qualche anno, raccogliendo le loro previsioni. Dopo un numero significativo di previsioni, vediamo quale economista è più accurato, e cominciamo a credere alle loro previsioni fino a quando qualche altro economista li supera in accuratezza.

La risposta è semplice - fare trading su timeframe annuali....
 
IvanIvanov:
La risposta è semplice - fare trading su timeframe annuali....
È uno scherzo?
 
gpwr:
È uno scherzo?

:-) non lo so.... se l'analisi è su anni..... non so su cosa fare trading... Su m5 è improbabile che abbia qualche effetto pratico...

Come opzione, prova ad applicare la tua analisi a H4...

 

gpwr:

...Dopo un numero significativo di previsioni, vediamo quale economista è più accurato e cominciamo a credere alle sue previsioni finché qualche altro economista lo supera in accuratezza...


Mmmm, questo contraddice Taleb con il suo cigno nero. Come possono gli economisti che prevedono bene in un ambiente prevedere il crollo?

Non voglio dire come, ma perché succederà? perché sono abbastanza sicuri di essere nel giusto, perché dovrebbero rivedere quel giusto, così avremo dei lemming che si precipitano con entusiasmo nell'abisso.

 

Ecco l'articolo di Keane sul suo modello:

http://keenomics.s3.amazonaws.com/debtdeflation_media/papers/PaperPrePublicationProof.pdf

Anche se dirò subito che non mi piace il suo modello. Il suo scopo è quello di spiegare i cicli economici e i crolli, non di prevedere con precisione il mercato o la performance economica come il PIL. Per esempio, il suo modello prevedeva che l'aumento del debito delle famiglie avrebbe portato al collasso dell'economia. Ma quando esattamente il suo modello ha previsto. Né è in grado di prevedere cosa succederà dopo il crollo. Tutte le sue curve teoriche vanno all'infinito e vi siedono indefinitamente, anche se il mercato e l'economia degli Stati Uniti si sono ripresi nel 2009. Questo deve essere il motivo per cui continua ad essere molto negativo su questa ripresa, non credendoci e sostenendo che sta arrivando una grande depressione peggiore di quella giapponese lunga due decenni. Penso che questo sia il problema di tutti i modelli economici dinamici: sono difficili da stabilizzare e se diventano instabili si bloccano e non possono più prevedere il futuro. Anche se un famoso hedge fund ha assunto Kean come consigliere economico.