Selezione variabile bayesiana: funziona davvero?


14

Ho pensato di poter giocare con un po 'di selezione delle variabili bayesiane, seguendo un bel post sul blog e i relativi documenti. Ho scritto un programma in rjags (dove sono piuttosto un principiante ) e ho recuperato i dati sui prezzi per Exxon Mobil, insieme ad alcune cose che difficilmente spiegheranno i suoi rendimenti (ad esempio i prezzi del palladio) e altre cose che dovrebbero essere altamente correlate (come l'SP500 ).

Correndo lm(), vediamo che ci sono forti prove di un modello iperparametrizzato, ma che il palladio dovrebbe assolutamente essere escluso:

Call:
lm(formula = Exxon ~ 0 + SP + Palladium + Russell + OilETF + 
    EnergyStks, data = chkr)

Residuals:
       Min         1Q     Median         3Q        Max 
-1.663e-03 -4.419e-04  3.099e-05  3.991e-04  1.677e-03 

Coefficients:
           Estimate Std. Error t value Pr(>|t|)    
SP          0.51913    0.19772   2.626 0.010588 *  
Palladium   0.01620    0.03744   0.433 0.666469    
Russell    -0.34577    0.09946  -3.476 0.000871 ***
OilETF     -0.17327    0.08285  -2.091 0.040082 *  
EnergyStks  0.79219    0.11418   6.938 1.53e-09 ***

Dopo la conversione in resi, ho provato a eseguire un modello semplice come questo

  model {
    for (i in 1:n) {
      mean[i]<-inprod(X[i,],beta)
      y[i]~dnorm(mean[i],tau)
    }
    for (j in 1:p) {
      indicator[j]~dbern(probindicator)
      betaifincluded[j]~dnorm(0,taubeta)
      beta[j] <- indicator[j]*betaifincluded[j]
    }
    tau~dgamma(1,0.01)
    taubeta~dgamma(1,0.01)
    probindicator~dbeta(2,8)
  }

ma ho scoperto che, praticamente indipendentemente dai parametri per le distribuzioni gamma scelte, ho ottenuto risposte piuttosto insensate, come una probabilità di inclusione del 20% invariabile per ogni variabile.

Ho anche ottenuto minuscoli, minuscoli coefficienti di regressione, che sono disposto a tollerare dal momento che questo dovrebbe essere un modello di selezione, ma sembra comunque strano.

                              Mean        SD  Naive SE Time-series SE
SP         beta[1]       -4.484e-03   0.10999  0.003478       0.007273
Palladium  beta[2]        1.422e-02   0.16646  0.005264       0.011106
Russell    beta[3]       -2.406e-03   0.08440  0.002669       0.003236
OilETF     beta[4]       -4.539e-03   0.14706  0.004651       0.005430
EnergyStks beta[5]       -1.106e-03   0.07907  0.002500       0.002647
SP         indicator[1]   1.980e-01   0.39869  0.012608       0.014786
Palladium  indicator[2]   1.960e-01   0.39717  0.012560       0.014550
Russell    indicator[3]   1.830e-01   0.38686  0.012234       0.013398
OilETF     indicator[4]   1.930e-01   0.39485  0.012486       0.013229
EnergyStks indicator[5]   2.070e-01   0.40536  0.012819       0.014505
           probindicator  1.952e-01   0.11981  0.003789       0.005625
           tau            3.845e+03 632.18562 19.991465      19.991465
           taubeta        1.119e+02 107.34143  3.394434       7.926577

La selezione delle variabili bayesiane è davvero così negativa / sensibile? O sto facendo un errore evidente?


5
Perdonate la mia ignoranza; ma quali sono state le prove del sovradimensionamento cui ti riferisci?
curious_cat il

Dovresti spiegare quali variabili sono quali nel secondo output. Ho usato la selezione delle variabili bayesiane su una varietà di problemi e in diverse situazioni (inclusa la regressione) di solito funziona abbastanza bene. Ma i tuoi risultati, in particolare le stime, mi sembrano strani.
Glen_b

@curious_cat L'evidenza di un overfitting è, ad esempio, nel coefficiente negativo tra Exxon (una compagnia petrolifera) e il prezzo del petrolio. Nasce perché ho deliberatamente reso questo modello vittima della multicollinearità . (Forse "eccesso di adattamento" è la parola sbagliata per descriverlo - suppongo che un eccesso di parametrizzazione sia più preciso).
Brian B,

@BrianB Questo coefficiente diventa positivo se si eliminano tutte le variabili esplicative tranne il petrolio? Solo curioso.
curious_cat

@curious_cat Sì, certamente (circa 0,7). Questo è un classico caso di multicollinearità (un'altra brutta parola).
Brian B,

Risposte:


3

Nel codice BUGS, mean[i]<-inprod(X[i,],beta)dovrebbe essere mean[i]<-inprod(X[i,],beta[]).

I tuoi priori su Tau e Taubeta sono troppo istruttivi.

È necessario un precedente non informativo su betaifincluso, utilizzare ad esempio un gamma(0.1,0.1)su taubeta. Questo potrebbe spiegare perché si ottengono piccoli coefficienti di regressione.


Grazie per averlo notato. Purtroppo non ha migliorato la situazione.
Brian B,

2

Funziona, ma hai dato a tutti gli indicatori di inclusione variabile la stessa distribuzione sottostante.

  model {
    for (i in 1:n) {
      mean[i]<-inprod(X[i,],beta)
      y[i]~dnorm(mean[i],tau)
    }
    for (j in 1:p) {
      indicator[j]~dbern(probindicator[j])
      probindicator[j]~dbeta(2,8)
      betaifincluded[j]~dnorm(0,taubeta)
      beta[j] <- indicator[j]*betaifincluded[j]
    }
    tau~dgamma(1,0.01)
    taubeta~dgamma(1,0.01)

  }

potrebbe funzionare meglio con un numero limitato di variabili.


Provare questa ricetta non ha funzionato meglio, almeno a 10000 campioni.
Brian B,

2

Se hai utilizzato i ritorni di registro, hai commesso un errore di differenziazione, ma se hai utilizzato un valore futuro diviso per il valore attuale, la tua probabilità è errata. In realtà, la tua probabilità è sbagliata in entrambi i casi. È abbastanza sbagliato importare.

Considera che una statistica è una funzione dei dati. I ritorni non sono dati, sono trasformazioni di dati. Sono un valore futuro diviso per un valore presente. I prezzi sono dati. I prezzi devono avere una funzione di distribuzione, ma la funzione di distribuzione per i resi deve dipendere esclusivamente dalla natura dei prezzi.

ptpt+1

pt+1pt-1.

1πσσ2+(y-β1X1-β2X2-βnXn-α)2.

OLS impone il miglior adattamento ai dati osservati anche se si tratta della soluzione sbagliata. I metodi bayesiani tentano di trovare la funzione di generazione dei dati attraverso la probabilità. Hai sbagliato la probabilità, quindi non è stato possibile trovarlo.

Ho un documento su questo se hai bisogno di ulteriori informazioni.

EDIT Penso che tu abbia frainteso. Se convertissi la probabilità in una funzione di densità e prendessi le aspettative, scopriresti che non ne ha. A riprova di Augustin Cauchy nel 1852 o forse nel 1851, qualsiasi forma di soluzione dei minimi quadrati è perfettamente imprecisa. Fallirà sempre. Non è che dovresti usare la regressione standard perché il bayesiano è sensibile alla probabilità, è che Bayes è l'unica soluzione disponibile che è ammissibile, con alcune eccezioni speciali per alcuni casi speciali insoliti.

Nel fare i test empirici su questo, e prima di aver letto abbastanza della matematica, ho ingenuamente pensato che la soluzione bayesiana e quella frequentista dovessero corrispondere. C'è, approssimativamente, un teorema che dice che quando il campione diventa abbastanza grande, i due convergeranno. Ho usato tutte le negoziazioni di fine giornata nell'universo CRSP dal 1925 al 2013 per testarlo. Non è quello che dice il teorema. Stavo fraintendendo le regole.

Ho anche provato il problema nei registri, e ancora non corrispondeva. Così ho realizzato qualcosa, tutte le distribuzioni sono forme e quindi ho costruito una soluzione geometrica per determinare quale soluzione era corretta. L'ho trattato come un puro problema di geometria per determinare quale risposta algebrica corrispondeva ai dati.

Quello bayesiano si accordò. Questo mi ha portato su un percorso molto matematico perché non riuscivo a capire perché lo stimatore imparziale fosse così sbagliato. Per la cronaca, usando i rendimenti disaggregati nel periodo 1925-2013 e rimuovendo le società di copertura, i fondi chiusi e così via, la discrepanza tra il centro della posizione è del 2% e la misura del rischio è minimizzata del 4% per i rendimenti annuali . Questa discrepanza è soggetta alla trasformazione del registro, ma per un motivo diverso. Potrebbe essere diverso per singoli indici o sottoinsiemi di dati.

Il motivo della discrepanza è duplice. Il primo è che le distribuzioni coinvolte mancano di una statistica sufficiente. Per alcuni tipi di problemi, questo non ha importanza. Ai fini proiettivi, come la previsione o l'allocazione, tuttavia, sono abbastanza importanti. Il secondo motivo è che lo stimatore imparziale è sempre una versione della media, ma la distribuzione non ha media.

La densità sopra non è un membro della famiglia esponenziale come la distribuzione normale o gamma è. Secondo il teorema di Pitman – Koopman – Darmois, non esiste una statistica dei punti sufficiente per i parametri. Ciò implica che qualsiasi tentativo di creare uno stimatore punti deve eliminare informazioni. Questo non è un problema per le soluzioni bayesiane perché il posteriore è un'intera densità e se fosse necessaria una stima puntuale, è possibile trovare la densità predittiva e ridurre al minimo una funzione di costo su di essa per ridurla a un singolo punto. La probabilità bayesiana è sempre minimamente sufficiente.

Lo stimatore imparziale della varianza minima per la funzione sopra è quello di mantenere il 24,6% centrale dei dati, trovare la sua media tagliata e scartare il resto dei dati. Ciò significa che oltre il 75% dei dati viene eliminato e le informazioni vengono perse. Solo una nota, potrebbe essere del 24,8%, poiché sto lavorando dalla memoria. Puoi trovare l'articolo di Rothenberg su:

Rothenberg, TJ e FM Fisher e CB Tilanus, una nota sulla stima da un campione di Cauchy, Journal of American Statistical Association, 1964, vol 59 (306), pp. 460-463

Il secondo numero è stato sorprendente per me. Fino a quando non ho lavorato attraverso la geometria, non avevo capito quale fosse la causa. I rendimenti sono limitati in basso a -100%. Ciò sposta la mediana del 2% e l'intervallo interquartile viene spostato del 4% sebbene la mezza massa sia ancora negli stessi punti. La mezza massa è la misura corretta della scala, ma la mezza larghezza no. Se non ci fosse troncamento, allora la mezza larghezza e la mezza massa sarebbero negli stessi punti. Allo stesso modo, la mediana e la modalità rimarrebbero nello stesso punto. La mediana è il ritorno dell'attore medio o almeno del commercio medio. Come tale, è sempre la posizione della MVUE e la media dei log.

La corretta comprensione del teorema è che tutti gli stimatori bayesiani sono stimatori ammissibili. Gli stimatori frequentisti sono stimatori ammissibili se si ottiene una delle due condizioni. Il primo è che in ogni campione, la soluzione Frequentist e Bayesian sono identiche. Il secondo è che se la soluzione limitante del metodo bayesiano corrispondeva alla soluzione frequentista, allora la soluzione frequentista è ammissibile.

Tutti gli stimatori ammissibili convergono nella stessa soluzione quando le dimensioni del campione sono sufficientemente grandi. Lo stimatore frequentista presume che il suo modello sia il modello reale e che i dati siano casuali. Il bayesiano assume che i dati siano veri, ma il modello è casuale. Se avevi una quantità infinita di dati, il modello soggettivo deve convergere in realtà. Se avevi una quantità infinita di dati, ma un modello sbagliato, allora il modello Frequentist converge in realtà con probabilità zero.

In questo caso, la soluzione bayesiana, a condizioni ragionevoli, dominerà sempre stocasticamente qualsiasi stimatore frequentista a causa del troncamento e della perdita di informazioni per creare lo stimatore.

Nei log, la funzione di verosimiglianza è la distribuzione secante iperbolica. Ha una varianza finita, ma nessuna covarianza. La matrice di covarianza trovata usando OLS è un artefatto dei dati e non punta a un parametro esistente nei dati sottostanti. Come nel caso del modulo non elaborato, nulla nel covary del modulo di registro, ma neanche nulla è indipendente. Invece, esiste una relazione molto più complessa che viola la definizione di covarianza, ma in cui possono confondersi.

Markowitz e Usman l'hanno quasi trovato nel loro lavoro sulle distribuzioni, ma la distribuzione secolare iperbolica non appartiene a una famiglia Pearson e hanno frainteso i dati non notando che quando si cambia una distribuzione da dati grezzi a dati di registro si cambiano anche le sue proprietà statistiche . Fondamentalmente l'hanno scoperto, ma l'hanno perso perché non avevano motivo di cercarlo e non si sono resi conto delle conseguenze indesiderate dell'utilizzo dei registri.

Non ho Markowitz e Usman che mi citano dove sono, ma hanno fatto uno dei pochi ottimi lavori per stimare la distribuzione che sono là fuori.

In ogni caso, non uso JAGS. Non ho idea di come farlo. Codifico tutto il mio lavoro MCMC a mano.

Ho un documento che è molto più completo e accurato su questo argomento su:

Harris, DE (2017) The Distribution of Returns. Journal of Mathematical Finance, 7, 769-804.

Ti fornirà un metodo per costruire distribuzioni per qualsiasi classe di attività o passività, anche rapporti contabili.

Ero prolisso, ma potevo vedere che stavi fraintendendo il rapporto tra i metodi di Bayes e Pearson-Neyman. Li hai fatti invertire. Bayes funziona sempre, ma sei intrappolato con una densità precedente che disturberà la tua soluzione. Con un precedente adeguato ti viene garantito uno stimatore distorto e per questo tipo di funzione di verosimiglianza, credo che tu debba usare un preventivo adeguato per garantire integrabilità all'unità. I metodi frequentist sono veloci e di solito funzionano. Sono imparziali, ma potrebbero non essere validi.


La differenza tra logaritmi e rendimenti dei prezzi a livello giornaliero è di circa 1 parte su 500 (ho preso un ritorno di 50 punti base come base). Vale anche la pena notare che i rendimenti giornalieri, misurati in entrambi i casi, sono abbastanza lontani dalla distribuzione normale (indipendentemente dalle teorie economiche contrarie). In ogni caso se l'algoritmo è sensibile a questi problemi, allora è inutile per scopi pratici. Vorrei sapere come funziona la probabilità che citi mappi al codice JAGS - puoi elaborare?
Brian B,

@BrianB Ho modificato la risposta. Stai commettendo un errore nel pensare che io abbia fatto. Mi ci è voluto un'eternità per capire perché mi sbagliavo.
Dave Harris,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.