Pemilihan variabel Bayesian - apakah ini benar-benar berfungsi?

14

Saya pikir saya mungkin mempermainkan beberapa pemilihan variabel Bayesian, mengikuti posting blog yang bagus dan makalah terkait di dalamnya. Saya menulis sebuah program dalam rjags (di mana saya cukup pemula) dan mengambil data harga untuk Exxon Mobil, bersama dengan beberapa hal yang tidak mungkin menjelaskan pengembaliannya (misalnya harga paladium) dan hal-hal lain yang harus sangat berkorelasi (seperti SP500 ).

Berjalan lm(), kita melihat bahwa ada bukti kuat dari model overparameter, tetapi palladium harus dikecualikan:

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 ***

Setelah mengonversi ke pengembalian, saya mencoba menjalankan model sederhana seperti ini

  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)
  }

tetapi saya menemukan bahwa, terlepas dari parameter apa pun untuk distribusi gamma yang dipilih, saya mendapat jawaban yang sangat tidak masuk akal, seperti probabilitas inklusi 20% yang tidak berubah untuk setiap variabel.

Saya juga mendapat koefisien regresi yang sangat kecil, yang bersedia saya toleransi karena ini seharusnya menjadi model seleksi, tetapi itu masih tampak aneh.

                              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

Apakah pemilihan variabel Bayesian benar-benar buruk / sensitif? Atau apakah saya membuat beberapa kesalahan mencolok?

Brian B
sumber
5
Maafkan ketidaktahuan saya; tetapi apa bukti untuk overfitting yang Anda maksud?
curious_cat
Anda harus menjelaskan variabel mana yang mana pada output kedua. Saya telah menggunakan pemilihan variabel Bayesian pada berbagai masalah dan dalam sejumlah situasi (termasuk regresi) biasanya bekerja dengan cukup baik. Tetapi hasil Anda - terutama perkiraan - terlihat aneh bagi saya.
Glen_b -Reinstate Monica
@curious_cat Bukti overfitting adalah, misalnya, dalam koefisien negatif antara Exxon (perusahaan minyak) dan harga minyak. Itu muncul karena saya sengaja membuat model ini menjadi korban multikolinieritas . (Mungkin "overfitting" adalah kata yang salah untuk menggambarkannya - saya kira overparameter lebih akurat).
Brian B
@BrianB Apakah koefisien itu menjadi positif jika Anda menjatuhkan semua variabel penjelas kecuali minyak? Hanya penasaran.
curious_cat
@curious_cat Ya, tentu saja (sekitar 0,7). Ini adalah kasus klasik multikolinearitas (kata jelek lainnya).
Brian B

Jawaban:

3

Dalam kode BUGS, mean[i]<-inprod(X[i,],beta)seharusnya mean[i]<-inprod(X[i,],beta[]).

Prior Anda tentang tau dan taubeta terlalu informatif.

Anda memerlukan non-informatif sebelum betaifincluded, gunakan mis a gamma(0.1,0.1)on taubeta. Ini mungkin menjelaskan mengapa Anda mendapatkan koefisien regresi kecil.

Crispin
sumber
Terima kasih telah memperhatikan itu. Sayangnya itu tidak memperbaiki situasi.
Brian B
2

Itu berhasil, tetapi Anda memberikan semua indikator inklusi variabel distribusi dasar yang sama.

  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)

  }

mungkin bekerja lebih baik dengan sejumlah variabel.

Erik
sumber
Mencoba resep ini tidak berhasil, setidaknya pada 10.000 sampel.
Brian B
2

Jika Anda menggunakan pengembalian log, maka Anda membuat kesalahan biasing sedikit tetapi jika Anda menggunakan nilai masa depan dibagi dengan nilai sekarang maka kemungkinan Anda salah. Sebenarnya, kemungkinan Anda salah dalam kedua kasus tersebut. Cukup salah untuk masalah.

Pertimbangkan bahwa statistik adalah fungsi data apa pun. Pengembalian bukan data, mereka adalah transformasi data. Mereka adalah nilai masa depan dibagi dengan nilai sekarang. Harga adalah data. Harga harus memiliki fungsi distribusi, tetapi fungsi distribusi untuk pengembalian harus semata-mata bergantung pada sifat harga.

halthalt+1

halt+1halt-1.

1πσσ2+(y-β1x1-β2x2-βnxn-α)2.

OLS memaksakan kesesuaian terbaik terhadap data yang diamati bahkan jika itu adalah solusi yang salah. Metode Bayesian berusaha untuk menemukan fungsi menghasilkan data melalui kemungkinan. Kemungkinan Anda salah, sehingga tidak dapat menemukannya.

Saya punya makalah tentang ini jika Anda memerlukan informasi tambahan.

EDIT Saya pikir Anda salah paham. Jika Anda akan mengubah kemungkinan menjadi fungsi kepadatan dan mengambil harapan, Anda akan menemukan bahwa itu tidak memilikinya. Dengan bukti oleh Augustin Cauchy pada tahun 1852 atau mungkin tahun 1851, segala bentuk solusi kuadrat terkecil sangat tidak tepat. Itu akan selalu gagal. Bukannya Anda harus menggunakan regresi standar karena Bayesian sensitif terhadap kemungkinan, itu adalah bahwa Bayes adalah satu-satunya solusi yang tersedia yang dapat diterima, dengan beberapa pengecualian khusus untuk beberapa kasus khusus yang tidak biasa.

Dalam melakukan pengujian empiris tentang ini, dan sebelum saya membaca cukup banyak matematika, saya dengan naif berpikir bahwa solusi Bayesian dan Frequentist harus cocok. Ada, kira-kira, sebuah teorema yang mengatakan bahwa ketika sampel menjadi cukup besar, keduanya akan bertemu. Saya menggunakan semua perdagangan akhir hari di alam semesta CRSP dari 1925-2013 untuk mengujinya. Namun bukan itu yang dikatakan teorema. Saya salah paham aturan.

Saya juga mencoba masalah dalam log, dan masih tidak cocok. Jadi saya menyadari sesuatu, semua distribusi adalah bentuk, dan saya membangun solusi geometris untuk menentukan solusi mana yang benar. Saya memperlakukannya sebagai masalah geometri murni untuk menentukan jawaban aljabar yang cocok dengan data.

Yang Bayesian cocok. Ini membawa saya ke jalur yang sangat matematis karena saya tidak tahu mengapa penaksir yang tidak memihak begitu salah. Sebagai catatan, menggunakan pengembalian terpilah selama periode 1925-2013 dan menghapus perusahaan shell, dana tertutup dan sebagainya, perbedaan antara pusat lokasi adalah 2% dan ukuran risiko dikecilkan oleh 4% untuk pengembalian tahunan . Perbedaan ini berlaku di bawah transformasi log, tetapi untuk alasan yang berbeda. Mungkin berbeda untuk masing-masing indeks atau subset data.

Alasan perbedaan adalah dua kali lipat. Yang pertama adalah bahwa distribusi yang terlibat tidak memiliki statistik yang memadai. Untuk jenis masalah tertentu, ini tidak masalah. Untuk keperluan proyektif, seperti prediksi atau alokasi, bagaimanapun, mereka cukup penting. Alasan kedua adalah bahwa estimator yang tidak bias selalu merupakan versi rata-rata, tetapi distribusinya tidak memiliki rata-rata.

Kepadatan di atas bukan anggota dari keluarga eksponensial sebagaimana distribusi normal atau gamma. Dengan teorema Pitman – Koopman – Darmois, tidak ada statistik titik yang memadai untuk parameter. Ini menyiratkan bahwa setiap upaya untuk membuat penduga titik harus membuang informasi. Ini bukan masalah untuk solusi Bayesian karena posterior adalah seluruh kepadatan dan jika Anda memang membutuhkan estimasi titik, Anda dapat menemukan kepadatan prediktif dan meminimalkan fungsi biaya di atasnya untuk menguranginya menjadi satu titik. Kemungkinan Bayesian selalu minimal memadai.

Penaksir tidak bias varians minimum untuk fungsi di atas adalah untuk menjaga pusat 24,6% dari data, menemukan rata-rata yang dipangkas, dan untuk membuang sisa data. Itu berarti lebih dari 75% data hilang, dan informasinya hilang. Hanya sebuah catatan, mungkin 24,8%, karena saya bekerja dari memori. Anda dapat menemukan kertas Rothenberg di:

Rothenberg, TJ dan FM Fisher, dan CB Tilanus, Catatan tentang Estimasi dari Sampel Cauchy, Jurnal Asosiasi Statistik Amerika, 1964, vol 59 (306), hlm. 460-463

Masalah kedua mengejutkan bagi saya. Sampai saya mengerjakan geometri, saya tidak menyadari apa penyebabnya. Pengembalian terikat di bagian bawah di -100%. Ini menggeser median sebesar 2% dan rentang interkuartil digeser sebesar 4% meskipun setengah-massa masih pada titik yang sama. Setengah-massa adalah ukuran skala yang tepat, tetapi setengah-lebar tidak. Jika tidak ada pemotongan, maka setengah-lebar dan setengah-massa akan berada di titik yang sama. Demikian juga, median dan mode akan tetap pada titik yang sama. Median adalah pengembalian untuk aktor rata-rata atau setidaknya perdagangan rata-rata. Karena itu, selalu lokasi MVUE dan rata-rata log.

Pemahaman yang benar tentang teorema adalah bahwa semua estimator Bayesian adalah estimator yang dapat diterima. Penaksir frekuensi adalah penaksir yang dapat diterima jika salah satu dari dua syarat diperoleh. Yang pertama adalah bahwa dalam setiap sampel, solusi Frequentist dan Bayesian identik. Yang kedua adalah bahwa jika solusi pembatas dari metode Bayesian cocok dengan solusi Frequentist, maka solusi Frequentist dapat diterima.

Semua penduga yang dapat diterima bertemu dengan solusi yang sama setelah ukuran sampel cukup besar. Estimator Frequentist mengandaikan bahwa modelnya adalah model yang benar dan datanya acak. Bayesian menganggap data itu benar, tetapi modelnya acak. Jika Anda memiliki jumlah data yang tak terbatas, maka model subjektif harus menyatu dengan kenyataan. Jika Anda memiliki jumlah data yang tak terbatas, tetapi model yang salah, maka model Frequentist akan menyatu dengan kenyataan dengan probabilitas nol.

Dalam hal ini, solusi Bayesian, di bawah prior prior, akan secara stokastik mendominasi setiap estimator Frequentist karena pemotongan dan hilangnya informasi untuk membuat estimator.

Dalam log, fungsi kemungkinan adalah distribusi sekan hiperbolik. Ini memiliki varian yang terbatas, tetapi tidak ada kovarians. Matriks kovarians yang ditemukan menggunakan OLS adalah artefak dari data dan tidak menunjuk ke parameter yang ada dalam data yang mendasarinya. Seperti halnya bentuk mentah, tidak ada dalam bentuk log kovari, tetapi tidak ada yang independen juga. Alih-alih, ada hubungan yang jauh lebih kompleks yang melanggar definisi kovarians, tetapi di mana mereka dapat berkembang.

Markowitz dan Usman hampir menemukannya dalam pekerjaan mereka pada distribusi, tetapi distribusi garis potong hiperbolik tidak dalam keluarga Pearson dan mereka salah mengartikan data dengan tidak memperhatikan bahwa ketika Anda mengubah distribusi dari data mentah ke data log Anda juga mengubah sifat statistiknya . Mereka pada dasarnya menemukan ini tetapi ketinggalan karena mereka tidak punya alasan untuk mencarinya dan mereka tidak menyadari konsekuensi yang tidak diinginkan dari menggunakan log.

Saya tidak memiliki Markowitz dan Usman mengutip di mana saya berada, tetapi mereka melakukan salah satu dari beberapa pekerjaan yang sangat baik dalam memperkirakan distribusi yang ada di luar sana.

Bagaimanapun, saya tidak menggunakan JAGS. Saya tidak tahu bagaimana melakukannya. Saya kode semua pekerjaan MCMC saya dengan tangan.

Saya memiliki makalah yang jauh lebih lengkap dan akurat tentang topik ini di:

Harris, DE (2017) Distribusi Pengembalian. Jurnal Keuangan Matematika, 7, 769-804.

Ini akan memberi Anda metode untuk membangun distribusi untuk setiap kelas aset atau liabilitas, juga rasio akuntansi.

Saya bertele-tele, tetapi saya bisa melihat Anda salah memahami hubungan antara Bayes dan metode Pearson-Neyman. Anda membuatnya terbalik. Bayes selalu bekerja, tetapi Anda terjebak dengan kepadatan sebelumnya yang akan mengganggu solusi Anda. Dengan tepat sebelum Anda dijamin penaksir yang bias dan untuk jenis fungsi kemungkinan ini, saya yakin Anda harus menggunakan yang tepat sebelum menjamin integrasi ke kesatuan. Metode yang sering dilakukan cepat dan biasanya berfungsi. Mereka tidak bias, tetapi mungkin tidak valid.

Dave Harris
sumber
Perbedaan antara logaritma dan pengembalian harga di tingkat harian adalah sekitar 1 bagian dalam 500 (saya telah mengambil pengembalian 50 basis poin sebagai baseline). Perlu juga dicatat bahwa pengembalian harian, diukur dengan cara apa pun, cukup jauh dari distribusi normal (terlepas dari teori ekonomi yang bertentangan). Dalam kasus apa pun jika algoritme sensitif terhadap masalah ini, maka tidak berguna untuk tujuan praktis. Saya ingin tahu bagaimana kemungkinan fungsi Anda mengutip peta ke kode JAGS - dapatkah Anda menguraikannya?
Brian B
@BrianB Saya mengedit jawabannya. Anda membuat kesalahan dengan berpikir yang saya buat. Saya butuh selamanya untuk mencari tahu mengapa saya salah.
Dave Harris