การเลือกตัวแปรแบบเบย์ - ใช้งานได้จริงหรือ


14

ฉันคิดว่าฉันอาจเล่นกับการเลือกตัวแปรแบบเบย์บางอย่างหลังจากโพสต์บล็อกที่ดีและเอกสารที่เชื่อมโยงอยู่ในนั้น ฉันเขียนโปรแกรมในrjags (ที่ฉันค่อนข้างใหม่) และดึงข้อมูลราคาสำหรับ Exxon Mobil พร้อมกับบางสิ่งที่ไม่น่าจะอธิบายผลตอบแทน (เช่นราคาของแพลเลเดียม) และสิ่งอื่น ๆ ที่ควรมีความสัมพันธ์สูง (เช่น SP500 )

วิ่งlm()เราจะเห็นว่ามีหลักฐานที่ชัดเจนของแบบจำลองที่มีพารามิเตอร์มากเกินไป แต่แพลเลเดียมนั้นควรได้รับการยกเว้น:

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

หลังจากแปลงเป็นผลตอบแทนฉันลองใช้แบบจำลองอย่างง่ายเช่นนี้

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

แต่ฉันพบว่าค่อนข้างมากโดยไม่คำนึงถึงพารามิเตอร์ของการแจกแจงแกมม่าที่เลือกฉันได้รับคำตอบที่ไร้สาระเช่นความน่าจะเป็นรวม 20% ที่ไม่เปลี่ยนแปลงสำหรับแต่ละตัวแปร

ฉันยังมีค่าสัมประสิทธิ์การถดถอยเล็ก ๆ น้อย ๆ ซึ่งฉันยินดีที่จะทนตั้งแต่นี้ควรจะเป็นรูปแบบการเลือก แต่ก็ยังดูเหมือนแปลก

                              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

การเลือกตัวแปรแบบเบย์นั้นจริง ๆ แล้วไม่ดี / ละเอียดอ่อน? หรือฉันกำลังทำผิดพลาดที่จ้องมอง?


5
ให้อภัยความไม่รู้ของฉัน; แต่อะไรคือหลักฐานของการอ้างสิทธิ์เกินที่คุณอ้างถึง?
อยากรู้อยากเห็น _cat

คุณควรอธิบายว่าตัวแปรใดที่อยู่ในผลลัพธ์ที่สอง ฉันใช้การเลือกตัวแปรแบบเบย์กับปัญหาที่หลากหลายและในหลาย ๆ สถานการณ์ (รวมถึงการถดถอย) มันมักจะทำงานได้ดีพอสมควร แต่ผลลัพธ์ของคุณโดยเฉพาะอย่างยิ่งการประมาณนั้นดูแปลกสำหรับฉัน
Glen_b -Reinstate Monica

@curious_cat หลักฐานการ overfitting คือเช่นในค่าสัมประสิทธิ์เชิงลบระหว่าง Exxon (บริษัท น้ำมัน) และราคาน้ำมัน มันเกิดขึ้นเพราะผมได้ทำจงใจเหยื่อรุ่นนี้จะพหุ (บางที "overfitting" เป็นคำที่ไม่ถูกต้องที่จะอธิบาย - ฉันคิดว่าพารามิเตอร์มากเกินไปมีความแม่นยำมากขึ้น)
Brian B

@BrianB สัมประสิทธิ์ที่เป็นบวกถ้าคุณวางตัวแปรอธิบายทั้งหมดยกเว้นน้ำมัน? แค่สงสัย.
อยากรู้อยากเห็น _ แมว

@curious_cat ใช่แน่นอน (ประมาณ 0.7) นี่คือกรณีคลาสสิกของความหลากสี (อีกคำที่น่าเกลียด)
Brian B

คำตอบ:


3

ในโค้ดข้อบกพร่องที่ควรจะเป็นmean[i]<-inprod(X[i,],beta)mean[i]<-inprod(X[i,],beta[])

นักบวชของคุณในเอกภาพและ taubeta นั้นให้ข้อมูลมากเกินไป

คุณต้องมีข้อมูลที่ไม่ใช่ข้อมูลก่อนหน้า Betaifincluded ใช้เช่น a gamma(0.1,0.1)taubeta นี่อาจอธิบายได้ว่าทำไมคุณถึงได้ค่าสัมประสิทธิ์การถดถอยเพียงเล็กน้อย


ขอบคุณที่สังเกตว่า น่าเสียดายที่มันไม่ได้ปรับปรุงสถานการณ์
Brian B

2

ใช้งานได้ แต่คุณให้ตัวบ่งชี้การรวมตัวแปรทั้งหมดมีการแจกแจงต้นแบบเดียวกัน

  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)

  }

อาจทำงานได้ดีขึ้นด้วยตัวแปรจำนวน จำกัด


การลองใช้สูตรนี้ไม่ได้ผลดีกว่าอย่างน้อย 10,000 ตัวอย่าง
Brian B

2

หากคุณใช้บันทึกส่งคืนแสดงว่าคุณมีข้อผิดพลาดในการให้น้ำหนักเล็กน้อย แต่ถ้าคุณใช้มูลค่าในอนาคตหารด้วยมูลค่าปัจจุบันแสดงว่าโอกาสของคุณไม่ถูกต้อง ที่จริงแล้วความเป็นไปได้ของคุณผิดทั้งสองกรณี มันผิดพอที่จะสำคัญ

พิจารณาว่าสถิติเป็นหน้าที่ของข้อมูลใด ๆ การส่งคืนไม่ใช่ข้อมูล แต่เป็นการแปลงข้อมูล พวกเขาคือมูลค่าในอนาคตหารด้วยมูลค่าปัจจุบัน ราคาเป็นข้อมูล ราคาจะต้องมีฟังก์ชั่นการกระจาย แต่ฟังก์ชั่นการกระจายสำหรับผลตอบแทนจะต้องขึ้นอยู่กับลักษณะของราคาเท่านั้น

พีเสื้อพีเสื้อ+1ควรกระจายตามปกติ ดังนั้นผลตอบแทนควรเป็นอัตราส่วนของ

พีเสื้อ+1พีเสื้อ-1

ฟังก์ชันความน่าจะเป็นสำหรับการถดถอยของคุณควรเป็น

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

OLS บังคับให้เหมาะสมที่สุดกับข้อมูลที่สังเกตแม้ว่าจะเป็นวิธีแก้ไขที่ผิด วิธีการแบบเบย์พยายามค้นหาฟังก์ชั่นการสร้างข้อมูลผ่านความน่าจะเป็น คุณมีโอกาสผิดพลาดจึงไม่สามารถหาได้

ฉันมีเอกสารเกี่ยวกับเรื่องนี้ถ้าคุณต้องการข้อมูลเพิ่มเติม

แก้ไข ฉันคิดว่าคุณเข้าใจผิด หากคุณจะแปลงความน่าจะเป็นของฟังก์ชั่นความหนาแน่นและคาดหวังคุณจะพบว่ามันไม่มีเลย โดยการพิสูจน์โดย Augustin Cauchy ในปี 1852 หรืออาจ 1851 รูปแบบของการแก้ปัญหากำลังสองน้อยที่สุดนั้นไม่สมบูรณ์ มันจะล้มเหลวเสมอ ไม่ใช่ว่าคุณควรใช้การถดถอยมาตรฐานเพราะ Bayesian นั้นไวต่อความเป็นไปได้ที่ว่า Bayes นั้นเป็นทางออกเดียวที่ยอมรับได้โดยมีข้อยกเว้นพิเศษสำหรับกรณีพิเศษบางอย่างที่ผิดปกติ

ในการทำการทดสอบเชิงประจักษ์เกี่ยวกับเรื่องนี้และก่อนที่ฉันจะอ่านคณิตศาสตร์เพียงพอฉันคิดอย่างไร้เดียงสาว่า Bayesian และวิธีแก้ปัญหาประจำควรตรงกับ มีทฤษฎีบทหนึ่งที่บอกว่าเมื่อกลุ่มตัวอย่างมีขนาดใหญ่พอทั้งสองจะมาบรรจบกัน ฉันใช้การค้าขายสิ้นวันทั้งหมดในจักรวาล CRSP ตั้งแต่ปีพ. ศ. 2468-2556 เพื่อทดสอบ นั่นไม่ใช่สิ่งที่ทฤษฎีบทกล่าวไว้ ฉันเข้าใจผิดกฎ

ฉันลองแก้ไขปัญหาในบันทึกแล้ว แต่ก็ยังไม่ตรงกัน ดังนั้นฉันจึงรู้ว่ามีบางอย่างการกระจายทั้งหมดเป็นรูปร่างดังนั้นฉันจึงสร้างโซลูชันเรขาคณิตเพื่อพิจารณาว่าโซลูชันใดถูกต้อง ฉันถือว่าเป็นปัญหาทางเรขาคณิตที่บริสุทธิ์เพื่อกำหนดว่าคำตอบพีชคณิตใดที่ตรงกับข้อมูล

คนเบย์จับคู่ สิ่งนี้นำฉันไปสู่เส้นทางคณิตศาสตร์อย่างมากเพราะฉันไม่สามารถเข้าใจได้ว่าทำไมตัวประมาณค่าที่เป็นกลางจึงผิด สำหรับการบันทึกการใช้ผลตอบแทนแบบกระจายในช่วงปีพ. ศ. 2468-2556 และการกำจัด บริษัท เชลล์กองทุนปิดและอื่น ๆ ความคลาดเคลื่อนระหว่างจุดศูนย์กลางของที่ตั้งคือ 2% และการวัดความเสี่ยง 4% สำหรับผลตอบแทนประจำปี . ความคลาดเคลื่อนนี้เก็บไว้ภายใต้การแปลงล็อก แต่ด้วยเหตุผลอื่น มันอาจแตกต่างกันสำหรับแต่ละดัชนีหรือชุดย่อยของข้อมูล

เหตุผลของความคลาดเคลื่อนคือสองเท่า อย่างแรกคือการแจกแจงที่เกี่ยวข้องนั้นขาดสถิติที่เพียงพอ สำหรับปัญหาบางประเภทสิ่งนี้ไม่สำคัญ สำหรับวัตถุประสงค์ที่คาดการณ์ได้เช่นการคาดการณ์หรือการจัดสรรอย่างไรก็ตามมันมีความสำคัญมาก เหตุผลที่สองคือตัวประมาณค่าที่เป็นกลางเสมอรุ่นของค่าเฉลี่ย แต่การแจกแจงไม่มีค่าเฉลี่ย

ความหนาแน่นด้านบนไม่ได้เป็นสมาชิกของตระกูลเลขชี้กำลังตามปกติหรือมีการแจกแจงแกมม่า โดยทฤษฎีบทพิตแมน –Koopman – Darmois ไม่มีสถิติจุดเพียงพอสำหรับพารามิเตอร์ นี่ก็หมายความว่าความพยายามใด ๆ ในการสร้างตัวประมาณค่าจะต้องทิ้งข้อมูล นี่ไม่ใช่ปัญหาสำหรับการแก้ปัญหาแบบเบย์เพราะด้านหลังมีความหนาแน่นทั้งหมดและหากคุณต้องการการประเมินแบบจุดคุณสามารถค้นหาความหนาแน่นแบบทำนายได้และลดฟังก์ชั่นค่าใช้จ่ายให้ต่ำลงเพื่อลดจุดเดียว ความน่าจะเป็นแบบเบย์นั้นเพียงพอเพียงเล็กน้อยเท่านั้น

ความแปรปรวนขั้นต่ำตัวประมาณค่าแบบไม่เอนเอียงสำหรับฟังก์ชันด้านบนคือการรักษาส่วนกลาง 24.6% ของข้อมูลค้นหาค่าเฉลี่ยที่ถูกตัดทิ้งและเพื่อละทิ้งข้อมูลที่เหลือ นั่นหมายความว่าข้อมูลมากกว่า 75% ถูกลบและข้อมูลสูญหาย แค่ทราบก็อาจเป็น 24.8% ในขณะที่ฉันทำงานจากหน่วยความจำ คุณสามารถค้นหากระดาษของ Rothenberg ได้ที่:

Rothenberg, TJ และ FM Fisher, และ CB Tilanus, ข้อความเกี่ยวกับการประเมินจากตัวอย่าง Cauchy, วารสารสมาคมสถิติอเมริกัน, 1964, vol 59 (306), pp 460-463

ปัญหาที่สองก็ทำให้ฉันประหลาดใจ จนกระทั่งฉันทำงานผ่านรูปทรงเรขาคณิตฉันไม่ได้ตระหนักว่าสาเหตุคืออะไร ผลตอบแทนถูกผูกไว้ที่ด้านล่างที่ -100% สิ่งนี้จะเลื่อนค่ามัธยฐาน 2% และช่วง interquartile จะถูกเลื่อนขึ้น 4% แม้ว่าครึ่งมวลจะยังคงอยู่ที่จุดเดียวกัน มวลครึ่งเป็นเครื่องชั่งที่เหมาะสม แต่ความกว้างครึ่งไม่ได้ หากไม่มีการตัดทอนดังนั้นความกว้างครึ่งและมวลครึ่งจะอยู่ที่จุดเดียวกัน ในทำนองเดียวกันค่ามัธยฐานและโหมดจะยังคงอยู่ที่จุดเดียวกัน ค่ามัธยฐานคือผลตอบแทนสำหรับนักแสดงที่มีความหมายหรืออย่างน้อยก็ค้าขายเฉลี่ย ดังนั้นจึงเป็นที่ตั้งของ MVUE เสมอและหมายถึงบันทึก

ความเข้าใจที่ถูกต้องของทฤษฎีบทคือตัวประมาณแบบเบย์ทั้งหมดเป็นตัวประมาณค่าที่ยอมรับได้ ตัวประมาณค่าความถี่เป็นตัวประมาณค่าที่ยอมรับได้หากเงื่อนไขหนึ่งในสองเงื่อนไขนั้นได้รับ อย่างแรกคือในทุกตัวอย่างการแก้ปัญหาของผู้ใช้บ่อยและเบย์นั้นเหมือนกัน อย่างที่สองก็คือถ้าการแก้ปัญหาการ จำกัด ของวิธีการแบบเบย์จับคู่กับวิธีการแก้ปัญหาประจำ

ตัวประมาณค่าที่ยอมรับได้ทั้งหมดมารวมกันเป็นโซลูชันเดียวกันเมื่อขนาดตัวอย่างมีขนาดใหญ่พอ ตัวประมาณบ่อย ๆ สันนิษฐานว่าโมเดลเป็นโมเดลจริงและข้อมูลเป็นแบบสุ่ม Bayesian สันนิษฐานว่าข้อมูลเป็นจริง แต่ตัวแบบสุ่ม หากคุณมีข้อมูลจำนวนไม่ จำกัด โมเดลแบบอัตนัยจะต้องมาบรรจบกันกับความเป็นจริง หากคุณมีข้อมูลจำนวนไม่ จำกัด แต่เป็นโมเดลที่ไม่ถูกต้องโมเดลที่ใช้บ่อยจะมาบรรจบกันในความเป็นจริงด้วยความน่าจะเป็นศูนย์

ในกรณีนี้วิธีการแก้ปัญหาแบบเบย์ภายใต้นักบวชที่สมเหตุสมผลมักจะเป็นผู้ควบคุมตัวประมาณค่าแบบสุ่มใด ๆ เสมอเนื่องจากการตัดทอนและการสูญเสียข้อมูลเพื่อสร้างตัวประมาณ

ในบันทึก, ฟังก์ชันความน่าจะเป็นคือการกระจายตัวของไฮเพอร์โบลิกซีแคนต์ มันมีความแปรปรวนแน่นอน แต่ไม่มีความแปรปรวนร่วม เมทริกซ์ความแปรปรวนร่วมที่พบโดยใช้ OLS เป็นสิ่งประดิษฐ์ของข้อมูลและไม่ได้ชี้ไปที่พารามิเตอร์ที่มีอยู่ในข้อมูลพื้นฐาน เช่นเดียวกับรูปแบบดิบไม่มีอะไรในโควารี่ฟอร์มบันทึก แต่ไม่มีอะไรเป็นอิสระเช่นกัน ความสัมพันธ์ที่ซับซ้อนยิ่งกว่านั้นมีอยู่ที่ละเมิดคำนิยามของความแปรปรวนร่วม แต่พวกเขาสามารถเข้ามาแทนที่

Markowitz และ Usman เกือบจะพบว่ามันทำงานในการกระจาย แต่การกระจายไฮเพอร์โบลิกซีแคนต์ไม่ได้อยู่ในตระกูลเพียร์สันและพวกเขาตีความข้อมูลผิดโดยไม่สังเกตว่าเมื่อคุณเปลี่ยนการกระจายจากข้อมูลดิบเพื่อบันทึกข้อมูล . โดยทั่วไปพวกเขาพบสิ่งนี้ แต่พลาดไปเพราะพวกเขาไม่มีเหตุผลที่จะมองหามันและพวกเขาไม่ได้ตระหนักถึงผลที่ไม่ได้ตั้งใจจากการใช้บันทึก

ฉันไม่มี Markowitz และ Usman อ้างถึงฉันว่าฉันอยู่ที่ไหน แต่พวกเขาทำงานได้ดีมากเพียงไม่กี่อย่างในการประเมินการกระจายที่อยู่ข้างนอก

ไม่ว่าในกรณีใดฉันจะไม่ใช้ JAGS ฉันไม่รู้ว่าจะทำอย่างไร ฉันเขียนโค้ด MCMC ทั้งหมดของฉันด้วยมือ

ฉันมีกระดาษที่สมบูรณ์และแม่นยำกว่าในหัวข้อนี้ที่:

Harris, DE (2017) การกระจายของผลตอบแทน วารสารการเงินคณิตศาสตร์, 7, 769-804

มันจะช่วยให้คุณมีวิธีในการสร้างการกระจายสำหรับสินทรัพย์หรือระดับความรับผิดใด ๆ เช่นเดียวกับอัตราส่วนทางบัญชี

ฉันพูดมาก แต่ฉันเห็นว่าคุณเข้าใจผิดเกี่ยวกับความสัมพันธ์ระหว่าง Bayes กับวิธีของ Pearson-Neyman คุณมีพวกเขากลับรายการ เบย์ใช้ได้เสมอ แต่คุณถูกขังด้วยความหนาแน่นก่อนหน้าซึ่งจะรบกวนการแก้ไขปัญหาของคุณ ด้วยความเหมาะสมก่อนที่คุณจะรับประกันตัวประมาณแบบเอนเอียงและสำหรับฟังก์ชันความน่าจะเป็นประเภทนี้ฉันเชื่อว่าคุณต้องใช้งานที่เหมาะสมก่อนที่จะรับประกันความสามารถในการผสานรวมเป็นหนึ่งเดียว วิธีการที่ใช้บ่อยเป็นไปอย่างรวดเร็วและมักจะใช้งานได้ มันไม่เอนเอียง แต่อาจไม่ถูกต้อง


ความแตกต่างระหว่างลอการิทึมและผลตอบแทนของราคาในระดับรายวันคือประมาณ 1 ส่วนใน 500 (ฉันได้รับผลตอบแทน 50 คะแนนเป็นพื้นฐาน) นอกจากนี้ยังเป็นที่น่าสังเกตว่าผลตอบแทนรายวันที่วัดได้ไม่ว่าจะทางใดทางหนึ่งนั้นค่อนข้างห่างไกลจากการแจกแจงแบบปกติ ไม่ว่าในกรณีใดหากอัลกอริทึมมีความอ่อนไหวต่อปัญหาเหล่านี้แสดงว่าไม่มีประโยชน์สำหรับการใช้งานจริง ฉันอยากจะรู้ว่าฟังก์ชั่นความเป็นไปได้ที่คุณอ้างถึงแผนที่กับรหัส JAGS คืออะไรคุณสามารถอธิบายรายละเอียดได้อย่างไร
Brian B

@BrianB ฉันแก้ไขคำตอบ คุณกำลังทำผิดพลาดของการคิดที่ฉันทำ ฉันใช้เวลาตลอดไปคิดออกว่าทำไมฉันผิด
เดฟแฮร์ริส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.