ฉันต้องการใช้อัลกอริธึมซ้ำซึ่งคำนวณค่าถัวเฉลี่ยถ่วงน้ำหนัก กฎหมายน้ำหนักที่เฉพาะเจาะจงไม่สำคัญ แต่ควรใกล้เคียงกับ 1 สำหรับค่าล่าสุดและใกล้เคียงกับ 0 ถึงที่เก่าแก่ที่สุด อัลกอริทึมควรเป็นซ้ำ กล่าวคือไม่ควรจำค่าก่อนหน้าทั้งหมด ควรทราบค่าล่าสุดเพียงอย่างเดียวและข้อมูลรวมเกี่ยวกับอดีตเช่นค่าก่อนหน้าของค่าเฉลี่ยผลรวมนับ ฯลฯ ตัวอย่างเช่นอัลกอริทึมต่อไปนี้สามารถเป็นได้: จะให้น้ำหนักลดลงซึ่งอาจเป็นตัวเลขที่ไม่ดี เป็นไปได้หรือไม่ที่จะลดน้ำหนักหรือบางสิ่งบางอย่างความต้องการในการชั่งน้ำหนักกฎหมายมีดังนี้ 1) น้ำหนักลดลงในช่วงที่ผ่านมา 2) ฉันมีระยะเวลาเฉลี่ยหรือลักษณะเฉพาะบางอย่างเพื่อให้ค่าแก่ช่วงเวลานี้มีค่าน้อยกว่ารุ่นที่ใหม่กว่า 3) ควรจะสามารถตั้งระยะเวลานี้ฉันต้องการต่อไปนี้ สมมติว่า vi เป็นค่าที่ v1 เป็นอันดับแรก สมมติว่า wi มีน้ำหนัก แต่ w0 คือ THE LAST ดังนั้นหลังจากค่าแรกมาฉันมีค่าเฉลี่ยแรกหลังจากค่าที่สอง v2 มาฉันควรจะมีค่าเฉลี่ยที่มีค่าต่อไปฉันควรจะมีหมายเหตุที่น้ำหนักโปรไฟล์จะย้ายไปกับฉันในขณะที่ฉันย้ายไปตามลำดับค่า นั่นคือ แต่ละค่าไม่มีน้ำหนักของตัวเองอยู่ตลอดเวลา เป้าหมายของฉันคือการลดน้ำหนักลงไปในขณะที่กำลังจะผ่านไป gt แต่งานของฉันคือการคำนวณค่าเฉลี่ยใหม่ในแต่ละครั้งที่ค่าใหม่จะมาถึงเมื่อมีค่าที่เก่ากว่า OP งานของคุณแทบจะเป็นไปไม่ได้แม้จะมีแผนการถ่วงน้ำหนักที่เรียบง่าย คุณกำลังขอให้มีหน่วยความจำ O (1) ค่าเฉลี่ยถัวเฉลี่ยถ่วงน้ำหนักที่เปลี่ยนแปลงไป ตัวอย่างเช่นเมื่อมีการส่งผ่านค่าใหม่สำหรับลำดับการชั่งน้ำหนักที่เปลี่ยนแปลงได้โดยพลการ นี้เป็นไปไม่ได้เนื่องจากการฉีด เมื่อคุณรวมตัวเลขเข้าไว้ด้วยกันคุณจะสูญเสียข้อมูลจำนวนมาก ตัวอย่างเช่นแม้ว่าคุณจะมีเวกเตอร์น้ำหนัก คุณไม่สามารถกู้คืนเวกเตอร์ค่าเดิมหรือในทางกลับกันได้ มีเพียงสองกรณีเท่านั้นที่ฉันสามารถนึกถึงตำแหน่งที่คุณสามารถหลีกเลี่ยงได้: น้ำหนักคงที่เช่น 2,2,2 2: นี่เทียบเท่ากับอัลกอริทึมเฉลี่ยแบบออนไลน์ซึ่งคุณไม่ต้องการเนื่องจากไม่มีการคิดมูลค่าเดิมใหม่ น้ำหนักสัมพัทธ์ของคำตอบก่อนหน้านี้ไม่เปลี่ยนแปลง ตัวอย่างเช่นคุณสามารถทำน้ำหนักของ 8,4,2,1 และเพิ่มองค์ประกอบใหม่ที่มีน้ำหนักโดยพลการเช่น 1 แต่คุณต้องเพิ่มทั้งหมดก่อนหน้านี้ด้วยตัวคูณเดียวกันเช่น 16,8,4,21 ดังนั้นในแต่ละขั้นตอนคุณจะเพิ่มน้ำหนักใหม่โดยพลการและการปรับเทียบใหม่โดยพลการของอดีตดังนั้นคุณจึงมี 2 องศาอิสระ (เพียง 1 หากคุณต้องการให้ผลิตภัณฑ์จุดเป็นปกติ) น้ำหนักเวกเตอร์ที่คุณได้รับจะมีลักษณะดังนี้: ดังนั้นรูปแบบการถ่วงน้ำหนักใด ๆ ที่คุณสามารถทำให้รูปลักษณ์คล้ายกับที่จะทำงาน (เว้นแต่คุณจะต้องทำให้สิ่งนั้นเป็นแบบอย่างโดยรวมของน้ำหนักซึ่งในกรณีนี้คุณต้องแบ่งค่าเฉลี่ยใหม่โดยใหม่ รวมซึ่งคุณสามารถคำนวณได้โดยการเก็บหน่วยความจำ O (1) เท่านั้น) เพียงคูณค่าเฉลี่ยก่อนหน้าโดย s ใหม่ (ซึ่งจะแจกจ่ายโดยนัยไปยังจุดผลิตภัณฑ์เป็นน้ำหนัก) และใช้เทคนิคใหม่ในการคำนวณค่า wnewValue ตอบ 29 มี.ค. ที่ 21:27 นี่อิ่มสมมติว่าคุณต้องการน้ำหนักรวมถึง 1 ตราบเท่าที่คุณสามารถสร้างน้ำหนักญาติโดยไม่ได้เปลี่ยนในอนาคตคุณสามารถท้ายด้วยโซลูชันซึ่งเลียนแบบลักษณะการทำงานนี้ นั่นคือสมมติว่าคุณกำหนดน้ำหนักของคุณเป็นลำดับและกำหนดอินพุทเป็นลำดับ พิจารณารูปแบบ: sum (s0i0 s1i1 s2i2. snin) sum (s0 s1 s2. sn) โปรดทราบว่าเป็นไปได้นิดหน่อยที่จะคำนวณแบบเพิ่มทีละขั้นนี้โดยใช้คู่ของตัวนับการรวมกัน: แน่นอน CalculWeightFromCounter () ในกรณีนี้ไม่ควรสร้างน้ำหนักที่รวมกันเป็นหนึ่ง - เคล็ดลับที่นี่คือค่าเฉลี่ยโดยการหารด้วยผลรวมของน้ำหนัก เพื่อให้ในที่สุดน้ำหนักจริงดูเหมือนจะรวมถึงหนึ่ง เคล็ดลับที่แท้จริงคือวิธีการที่คุณคำนวณ (GMT) คุณสามารถส่งคืนตัวนับได้เช่นโปรดทราบว่าหมายเลขที่ถ่วงน้ำหนักสุดท้ายไม่อยู่ใกล้กับผลรวมของตัวนับจำเป็นดังนั้นคุณอาจไม่สามารถใช้คุณสมบัติตรงตามที่คุณต้องการได้ (ยากที่จะพูดตั้งแต่ตามที่กล่าว youve ซ้ายเป็นปัญหาเปิดธรรม.) ตอบ 28 มีนาคม 12 ที่ 21:45 ปัญหาคือน้ำหนักที่มีการเปลี่ยนแปลงกับค่าใหม่แต่ละ ในกรณีของคุณพวกเขาไม่ได้ น้ำหนักที่ใช้จริงมีการเปลี่ยนแปลงกับค่าใหม่แต่ละอัน - เครื่องหมายคำพูดจะถูกหารด้วยจำนวนเต็มที่ต่อเนื่องจึงบังคับให้น้ำหนักที่ใช้จริงทั้งหมดรวมกันเสมอไป 1. ndash Kaganar 29 มี.ค. 12 เวลา 14:45 นี่นานเกินไปที่จะโพสต์ในความคิดเห็น แต่อาจเป็นประโยชน์ต่อการทราบ สมมติว่าคุณมี: w0vn wnv0 (ดีโทรนี้ w0 .. nvn..0 สั้น ๆ ) จากนั้นขั้นตอนต่อไปคือ: w0vn1 wn1v0 (และนี่คือ w0..n1vn1..0 สำหรับสั้น ๆ ) ซึ่งหมายความว่าเราต้องมีวิธีการคำนวณ w1..n1vn..0 จาก w0..nvn..0 เป็นไปได้ว่า vn..0 คือ 0. 0, z, 0.0 ซึ่ง z อยู่ที่ตำแหน่งหนึ่ง x ถ้าเราไม่มีพื้นที่เก็บข้อมูลพิเศษ f (zw (x)) zw (x 1) โดยที่ w (x) คือน้ำหนักของตำแหน่ง x การจัดเรียงสมการใหม่ w (x 1) f (zw (x)) z ดี, w (x 1) ดีกว่าคงที่สำหรับค่าคงที่ x, ดังนั้น f (zw (x)) z ดีกว่าคงที่ ดังนั้น f ต้องปล่อย z propagate นั่นคือ f (zw (x)) zf (w (x)) แต่ที่นี่อีกครั้งเรามีปัญหา โปรดทราบว่าถ้า z (ซึ่งอาจเป็นตัวเลขใดก็ได้) สามารถแพร่กระจายผ่าน f แล้ว w (x) สามารถทำได้อย่างแน่นอน ดังนั้น f (zw (x)) w (x) f (z) ดังนั้น f (w (x)) w (x) f (z) แต่สำหรับค่าคงที่ x w (x) เป็นค่าคงที่ดังนั้น f (w (x)) จึงเป็นค่าคงตัวได้ดีเช่นกัน w (x) เป็นค่าคงที่, ดังนั้น f (z) จะดีกว่าค่าคงที่ดังนั้น w (x) f (z) จึงคงที่ ดังนั้น f (w (x)) w (x) c ซึ่ง c เป็นค่าคงตัว ดังนั้น f (x) cx โดยที่ c เป็นค่าคงที่เมื่อ x เป็นค่าน้ำหนัก นั่นคือแต่ละน้ำหนักเป็นจำนวนที่เท่ากัน ดังนั้นน้ำหนักใช้รูป w (x) mbx โปรดทราบว่านี่ถือว่าข้อมูลเฉพาะ f มีค่ารวมล่าสุด โปรดทราบว่าในบางช่วงเวลาคุณจะลดจำนวนลงในกรณีนี้เว้นแต่คุณจะยินดีที่จะเก็บข้อมูลที่ไม่คงที่ซึ่งเป็นข้อมูลของคุณ คุณไม่สามารถแสดงเวกเตอร์ความยาวที่ไม่มีขีด จำกัด ของตัวเลขจริงได้ด้วยจำนวนจริง แต่คุณสามารถประมาณความยาวของพื้นที่เก็บข้อมูลได้อย่างไม่ จำกัด แต่นี้จะเป็นเพียงการประมาณ แม้ว่าฉันจะไม่ได้รับการพิสูจน์อย่างจริงจัง แต่ก็เป็นข้อสรุปของฉันว่าสิ่งที่คุณต้องการไม่สามารถทำได้ด้วยความแม่นยำสูง แต่คุณอาจสามารถใช้พื้นที่ log (n) (ซึ่งอาจเป็น O (1) สำหรับหลาย ๆ คน การใช้งานจริง) เพื่อสร้างการประมาณคุณภาพ คุณอาจจะใช้น้อยลงได้ ฉันพยายามที่จะจวนรหัสบางสิ่งบางอย่าง (ใน Java) ดังที่ได้กล่าวไปแล้วเป้าหมายของคุณไม่สามารถทำได้ คุณสามารถนับค่าเฉลี่ยจากค่าที่จำได้ครั้งสุดท้ายเท่านั้น หากคุณไม่จำเป็นต้องเป็นที่แน่นอนคุณสามารถประมาณค่าที่เก่ากว่าได้ ฉันพยายามจะทำโดยการจดจำค่าล่าสุด 5 ค่าที่ตรงและเก่าเท่านั้น SUMmed โดย 5 ค่าจดจำ 5 SUMs ล่าสุด จากนั้นความซับซ้อนคือ O (2n) สำหรับการจดจำค่า nnn ล่าสุด นี่เป็นวิธีประมาณคร่าวๆ คุณสามารถปรับเปลี่ยนขนาดอาร์เรย์ของ lastValues และ lasAggregatedSums ได้ตามที่คุณต้องการ ดูภาพ ASCII ที่พยายามแสดงกราฟค่าล่าสุดแสดงว่าคอลัมน์แรก (ข้อมูลที่เก่ากว่า) จำได้ว่าเป็นค่าที่รวมกัน (ไม่ใช่แต่ละรายการ) และจะจดจำเฉพาะ 5 ค่าที่เก่าที่สุดเท่านั้น ความท้าทายที่ 1 ตัวอย่างของฉันไม่นับน้ำหนัก แต่ฉันคิดว่ามันไม่ควรเป็นปัญหาสำหรับคุณที่จะเพิ่มน้ำหนักสำหรับ lastAggregatedSums อย่างเหมาะสม - ปัญหาเดียวก็คือถ้าคุณต้องการลดน้ำหนักสำหรับค่าเก่าก็จะยากขึ้นเนื่องจากอาร์เรย์หมุนดังนั้น มันไม่ง่ายที่จะทราบว่าน้ำหนักที่สมาชิกอาร์เรย์ บางทีคุณสามารถปรับเปลี่ยนอัลกอริทึมเพื่อเปลี่ยนค่าในอาร์เรย์เสมอแทนที่จะหมุนแล้วเพิ่มน้ำหนักไม่ควรเป็นปัญหา ความท้าทายที่ 2 อาร์เรย์จะเริ่มต้นด้วย 0 ค่าและค่าเหล่านี้จะนับเป็นค่าเฉลี่ยตั้งแต่เริ่มต้นแม้ว่าเราจะไม่ได้รับค่าเท่านี้ ถ้าคุณใช้อัลกอริทึมเป็นเวลานานคุณอาจไม่ต้องห่วงว่าจะเรียนรู้อะไรบ้างตั้งแต่เริ่มต้น 2017 Stack Exchange, Inc Repo นี้ให้ขั้นตอนวิธีการถ่วงน้ำหนักแบบถ่วงน้ำหนักแบบยกกำลังหรือ EWMAs สำหรับระยะสั้นโดยอิงจากการพูดคุยเกี่ยวกับพฤติกรรมเชิงปริมาณเชิงปริมาณของเรา ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักเชิงตัวเลข (Exponentially Weighted Moving Average) ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบเลขยกกำลัง (exponentially weighted moving average) เป็นวิธีการคำนวณค่าเฉลี่ยของจำนวนของตัวเลขเป็นค่าตัวเลขต่อเนื่อง หลังจากมีการเพิ่มค่าในชุดค่าเฉลี่ยแล้วน้ำหนักในค่าเฉลี่ยจะลดลงอย่างมากตามเวลาแทน นี่เป็นข้ออ้างเกี่ยวกับข้อมูลล่าสุด EWMA มีประโยชน์เนื่องจากเหตุผลหลายประการซึ่งส่วนใหญ่เป็นค่าใช้จ่ายในการคำนวณและหน่วยความจำที่ไม่แพงรวมถึงข้อเท็จจริงที่ว่าพวกเขาแสดงถึงแนวโน้มของชุดค่านิยมล่าสุดของภาคกลาง อัลกอริทึม EWMA ต้องการปัจจัยการสลายตัวอัลฟา อัลฟาที่ใหญ่กว่าค่าเฉลี่ยจะมีความลำเอียงต่อประวัติล่าสุด อัลฟาต้องอยู่ระหว่าง 0 ถึง 1 และโดยปกติจะเป็นตัวเลขที่ค่อนข้างเล็กเช่น 0.04 เราจะพูดถึงทางเลือกของอัลฟาในภายหลัง อัลกอริธึมทำงานใน pseudocode: คูณเลขต่อไปในชุดข้อมูลโดย alpha คูณค่าปัจจุบันของค่าเฉลี่ยโดย 1 ลบ alpha เพิ่มผลลัพธ์จากขั้นตอนที่ 1 และ 2 และเก็บค่าเป็นค่าปัจจุบันใหม่ของค่าเฉลี่ย ทำซ้ำสำหรับแต่ละหมายเลขในชุด มีพฤติกรรมพิเศษสำหรับวิธีการเริ่มต้นค่าปัจจุบันและแตกต่างกันไประหว่างการใช้งาน วิธีหนึ่งคือการเริ่มต้นด้วยค่าแรกในชุดอีกค่าหนึ่งคือเฉลี่ย 10 ค่าแรกในซีรีส์โดยใช้ค่าเฉลี่ยเลขคณิตและจากนั้นเริ่มต้นการอัปเดตค่าเฉลี่ยที่เพิ่มขึ้นของค่าเฉลี่ย แต่ละวิธีมีข้อดีและข้อเสีย มันอาจช่วยให้มองไปที่มัน pictorially สมมติว่าชุดมีตัวเลขห้าตัวและเราเลือก alpha ให้เท่ากับ 0.50 สำหรับความเรียบง่าย นี่เป็นชุดที่มีตัวเลขอยู่ในละแวก 300 ซึ่งตอนนี้ให้ใช้ค่าเฉลี่ยเคลื่อนที่ของตัวเลขเหล่านี้ อันดับแรกเราตั้งค่าเฉลี่ยเป็นค่าของหมายเลขแรก ต่อไปเราจะคูณเลขถัดไปตาม alpha คูณค่าปัจจุบันโดย 1-alpha และเพิ่มค่าเหล่านี้เพื่อสร้างค่าใหม่ นี้จะดำเนินต่อไปจนกว่าเราจะทำ สังเกตว่าแต่ละค่าในชุดจะลดลงครึ่งหนึ่งของแต่ละครั้งที่มีการเพิ่มค่าใหม่และด้านบนของแถบในส่วนล่างของภาพจะแสดงขนาดของค่าเฉลี่ยเคลื่อนที่ เป็นแบบเรียบหรือต่ำผ่านเฉลี่ยของชุดเดิม พิจารณาค่าเฉลี่ยเคลื่อนที่แบบเลื่อนของหน้าต่างแบบเลื่อนลอย (ไม่ใช่ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแทน) ที่ค่าเฉลี่ยของตัวอย่าง N ก่อนหน้า อายุเฉลี่ยของแต่ละตัวอย่างคืออะไร N2 สมมติว่าคุณต้องการสร้าง EWMA ซึ่งตัวอย่างมีอายุเฉลี่ยเท่ากัน สูตรในการคำนวณอัลฟาที่จำเป็นสำหรับนี้คือ alpha 2 (N1) หลักฐานแสดงอยู่ในหนังสือการผลิตและการวิเคราะห์การดำเนินงานโดย Steven Nahmias ตัวอย่างเช่นถ้าคุณมีชุดเวลากับตัวอย่างหนึ่งครั้งต่อวินาทีและคุณต้องการให้มีค่าเฉลี่ยเคลื่อนที่มากกว่านาทีก่อนหน้าคุณควรใช้ alpha เท่ากับ. 032786885 นี้โดยวิธีการที่เป็นค่าคงที่อัลฟาที่ใช้สำหรับพื้นที่เก็บข้อมูล SimpleEWMA นี้ พื้นที่เก็บข้อมูลนี้มีการใช้งานของอัลกอริธึม EWMA สองชุดโดยมีคุณสมบัติต่างกัน implementations ทั้งหมดสอดคล้องกับ MovingAverage อินเทอร์เฟซและ constructor ส่งกลับชนิดนั้น การใช้งานปัจจุบันสมมติช่วงเวลาโดยนัย 1.0 ระหว่างตัวอย่างทุกตัวที่เพิ่ม นั่นคือเวลาผ่านไปจะถือว่าเหมือนกับว่ามันเหมือนกับการมาถึงของกลุ่มตัวอย่าง หากคุณต้องการการสลายตัวตามเวลาเมื่อตัวอย่างไม่ได้มาถึงอย่างแม่นยำในช่วงเวลาที่กำหนดแพคเกจนี้จะไม่สนับสนุนความต้องการของคุณในปัจจุบัน SimpleEWMA ออกแบบมาสำหรับการใช้หน่วยความจำและหน่วยความจำต่ำ จะมีพฤติกรรมที่แตกต่างจาก VariableEWMA ด้วยเหตุผลหลายประการ ไม่มีเวลาอุ่นเครื่องและใช้การสลายตัวตลอดเวลา คุณสมบัติเหล่านี้ช่วยให้ใช้หน่วยความจำน้อยลง นอกจากนี้ยังจะทำหน้าที่แตกต่างกันเมื่อมีค่าเป็นศูนย์ซึ่งถือว่าไม่ได้ตั้งใจดังนั้นหากค่าที่แท้จริงเป็นศูนย์เป็นระยะ ๆ ค่าที่ไม่ใช่ศูนย์จะทำให้เกิดการกระโดดที่คมชัดแทนที่จะเป็นการเปลี่ยนแปลงเล็ก ๆ ซึ่งแตกต่างจาก SimpleEWMA ซึ่งสนับสนุนอายุที่กำหนดเองซึ่งต้องจัดเก็บไว้และใช้หน่วยความจำมากขึ้น นอกจากนี้ยังมีเวลาอุ่นเครื่องเมื่อคุณเริ่มเพิ่มค่าลงไป จะรายงานค่า 0.0 จนกว่าคุณจะเพิ่มจำนวนตัวอย่างที่ต้องการลงไป ใช้หน่วยความจำบางส่วนในการจัดเก็บจำนวนตัวอย่างที่เพิ่มเข้าไป ด้วยเหตุนี้จึงใช้หน่วยความจำ SimpleEWMA มากกว่าสองเท่า ดูเอกสารที่สร้างโดย GoDoc ที่นี่ เรายอมรับเฉพาะคำขอดึงสำหรับการแก้ไขหรือการปรับปรุงเล็กน้อย ซึ่งรวมถึง: แก้ไขข้อบกพร่องเล็ก ๆ พิมพ์เอกสารหรือความคิดเห็นโปรดเปิดประเด็นเพื่อหารือเกี่ยวกับคุณลักษณะใหม่ ๆ คำขอดึงข้อมูลคุณลักษณะใหม่จะถูกปฏิเสธดังนั้นเราขอแนะนำให้คุณแก้ไขที่เก็บข้อมูลและทำการเปลี่ยนแปลงส้อมสำหรับกรณีการใช้งานของคุณ พื้นที่เก็บข้อมูลนี้เป็นลิขสิทธิ์ (c) 2013 VividCortex, Inc. สงวนลิขสิทธิ์ มีใบอนุญาตภายใต้ใบอนุญาตของ MIT โปรดดูไฟล์ใบอนุญาตสำหรับข้อกำหนดสิทธิการใช้งานการสำรวจค่าความผันผวนตามค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักเป็นจำนวนมากเป็นมาตรการที่ใช้กันทั่วไปในการวัดความเสี่ยง แต่มีหลายรสชาติ ในบทความก่อนหน้านี้เราได้แสดงวิธีการคำนวณความผันผวนทางประวัติศาสตร์ที่เรียบง่าย เราใช้ข้อมูลราคาหุ้นที่เกิดขึ้นจริงของ Google เพื่อคำนวณความผันผวนรายวันตามข้อมูลหุ้นภายใน 30 วัน ในบทความนี้เราจะปรับปรุงความผันผวนที่เรียบง่ายและหารือเกี่ยวกับค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักแบบทวีคูณ (EWMA) Historical Vs ความผันแปรเบื้องต้นก่อนอื่นให้วางเมตริกนี้ไว้ในมุมมองเล็กน้อย มีสองแนวทางที่กว้าง: ความผันผวนในอดีตและโดยนัย (หรือโดยนัย) วิธีการทางประวัติศาสตร์สมมติว่าอดีตเป็นคำนำที่เราวัดประวัติศาสตร์ด้วยความหวังว่าจะเป็นการคาดการณ์ ในทางตรงกันข้ามความผันผวนโดยนัยจะละเลยประวัติความเป็นมาที่จะแก้ปัญหาให้กับความผันผวนโดยนัยตามราคาในตลาด หวังว่าตลาดจะรู้ได้ดีที่สุดและราคาในตลาดมีแม้กระทั่งโดยนัยประมาณการความผันผวน ถ้าเรามุ่งเน้นไปที่สามวิธีทางประวัติศาสตร์ (ด้านซ้ายด้านบน) พวกเขามีสองขั้นตอนที่เหมือนกัน: คำนวณชุดของผลตอบแทนเป็นระยะ ๆ ใช้สูตรการถ่วงน้ำหนักก่อนอื่นเรา คำนวณผลตอบแทนเป็นระยะ ๆ โดยทั่วไปแล้วผลตอบแทนรายวันจะได้รับผลตอบแทนแต่ละรายการในแง่บวก สำหรับแต่ละวันเราจะบันทึกล็อกอัตราส่วนราคาหุ้น (เช่นราคาในปัจจุบันหารด้วยราคาเมื่อวานนี้เป็นต้น) นี่เป็นการสร้างผลตอบแทนรายวันจาก u i to u i-m ขึ้นอยู่กับจำนวนวัน (m วัน) ที่เราวัด ที่ทำให้เราก้าวไปสู่ขั้นตอนที่สอง: นี่คือแนวทางที่แตกต่างกันสามวิธี ในบทความก่อนหน้า (ใช้ความผันผวนเพื่อวัดความเสี่ยงในอนาคต) เราพบว่าภายใต้สอง simplifications ยอมรับความแปรปรวนง่ายคือค่าเฉลี่ยของผลตอบแทนที่เป็นกำลังสอง: ขอให้สังเกตว่าผลรวมนี้แต่ละผลตอบแทนเป็นระยะจากนั้นแบ่งทั้งหมดโดย จำนวนวันหรือสังเกตการณ์ (ม.) ดังนั้นจริงๆมันเป็นเพียงเฉลี่ยของผลตอบแทนเป็นระยะ ๆ squared ใส่อีกวิธีหนึ่งแต่ละยกกำลังสองจะได้รับน้ำหนักเท่ากัน ดังนั้นถ้า alpha (a) เป็นปัจจัยการถ่วงน้ำหนัก (โดยเฉพาะ 1m) ความแปรปรวนแบบง่ายๆมีลักษณะดังนี้: EWMA ช่วยเพิ่มความแปรปรวนอย่างง่ายจุดอ่อนของวิธีนี้คือผลตอบแทนทั้งหมดจะมีน้ำหนักเท่ากัน การกลับมาเมื่อวาน (ล่าสุด) ไม่มีอิทธิพลต่อความแปรปรวนมากกว่าผลตอบแทนของเดือนที่ผ่านมา ปัญหานี้ได้รับการแก้ไขโดยใช้ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบทวีคูณ (EWMA) ซึ่งผลตอบแทนที่มากขึ้นล่าสุดมีน้ำหนักมากขึ้นกับความแปรปรวน ค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักแบบเลขยกกำลัง (EWMA) แนะนำ lambda ซึ่งเรียกว่าพารามิเตอร์การให้ราบเรียบ แลมบ์ดาต้องมีค่าน้อยกว่าหนึ่ง ภายใต้เงื่อนไขดังกล่าวแทนที่จะใช้น้ำหนักที่เท่ากันผลตอบแทนที่ได้รับจะเพิ่มขึ้นตามตัวคูณดังนี้ตัวอย่างเช่น RiskMetrics TM ซึ่งเป็น บริษัท บริหารความเสี่ยงทางการเงินมีแนวโน้มที่จะใช้แลมบ์ดาเท่ากับ 0.94 หรือ 94 ในกรณีนี้เป็นครั้งแรก (1-0.94) (. 94) 0 6. ผลตอบแทนที่ได้จะเป็นตัวเลข lambda-multiple ของน้ำหนักก่อนหน้าในกรณีนี้ 6 คูณด้วย 94 5.64 และสามวันก่อนหน้ามีน้ำหนักเท่ากับ (1-0.94) (0.94) 2 5.30 นั่นคือความหมายของเลขยกกำลังใน EWMA: แต่ละน้ำหนักเป็นตัวคูณคงที่ (เช่น lambda ซึ่งต้องน้อยกว่าหนึ่ง) ของน้ำหนักก่อนหน้า เพื่อให้แน่ใจว่ามีความแปรปรวนที่ถ่วงน้ำหนักหรือลำเอียงไปยังข้อมูลล่าสุด (หากต้องการเรียนรู้เพิ่มเติมโปรดดูที่แผ่นงาน Excel สำหรับความผันผวนของ Google) ความแตกต่างระหว่างความผันผวนเพียงอย่างเดียวกับ EWMA สำหรับ Google จะแสดงไว้ด้านล่าง ความผันผวนอย่างง่ายมีผลต่อการกลับคืนเป็นระยะ ๆ ทุกๆ 0.196 ตามที่แสดงไว้ในคอลัมน์ O (เรามีข้อมูลราคาหุ้นย้อนหลังเป็นเวลา 2 ปีนั่นคือผลตอบแทน 509 วันและ 1509 0.196) แต่สังเกตว่าคอลัมน์ P กำหนดน้ำหนัก 6, 5.64 แล้ว 5.3 และอื่น ๆ Thats ความแตกต่างระหว่างความแปรปรวนง่ายและ EWMA โปรดจำไว้ว่า: หลังจากที่เราสรุปชุดข้อมูลทั้งหมด (ในคอลัมน์ Q) เรามีความแปรปรวนซึ่งเป็นค่าสแควร์ของส่วนเบี่ยงเบนมาตรฐาน ถ้าเราต้องการความผันผวนเราต้องจำไว้ว่าให้ใช้รากที่สองของความแปรปรวนนั้น ความแตกต่างของความแปรปรวนรายวันระหว่างค่าความแปรปรวนและ EWMA ในกรณีของ Googles มีความหมาย: ความแปรปรวนง่ายทำให้เรามีความผันผวนรายวันอยู่ที่ 2.4 แต่ EWMA มีความผันผวนรายวันเพียง 1.4 (ดูสเปรดชีตเพื่อดูรายละเอียด) เห็นได้ชัดว่าความผันผวนของ Googles ตกลงไปเมื่อไม่นานมานี้ดังนั้นความแปรปรวนที่เรียบง่ายอาจเป็นจำนวนเทียมสูง ความแปรปรวนวันนี้เป็นฟังก์ชันของความแตกต่างของวัน Pior คุณจะสังเกตเห็นว่าเราจำเป็นต้องคำนวณชุดน้ำหนักลดลงอย่างมาก เราจะไม่ใช้คณิตศาสตร์ที่นี่ แต่คุณลักษณะที่ดีที่สุดของ EWMA คือชุดผลิตภัณฑ์ทั้งหมดสามารถลดสูตร recursive ได้อย่างง่ายดาย: Recursive หมายถึงการอ้างอิงความแปรปรวนในปัจจุบัน (คือฟังก์ชันของความแปรปรวนในวันก่อนหน้า) คุณสามารถค้นหาสูตรนี้ในสเปรดชีตยังและจะก่อให้เกิดผลแน่นอนเช่นเดียวกับการคำนวณตัวหนังสือมันบอกว่า: แปรปรวนในปัจจุบัน (ภายใต้ EWMA) เท่ากับแปรปรวนเมื่อวาน (ถ่วงน้ำหนักด้วยแลมบ์ดา) บวกเมื่อวานกลับมายกกำลังสอง (ชั่งน้ำหนักโดยแลมบ์ดาลบหนึ่ง) แจ้งให้เราทราบว่าเรากำลังเพิ่มคำสองคำลงท้ายด้วยกันอย่างไร: ความแปรปรวนที่ถ่วงน้ำหนักในวันอังคารและเมื่อวานถ่วงน้ำหนัก แม้กระนั้นแลมบ์ดาก็คือพารามิเตอร์ที่ราบเรียบของเรา แลมบ์ดาที่สูงขึ้น (เช่น RiskMetrics 94) บ่งชี้การสลายตัวช้าลงในซีรีย์ - ในแง่สัมพัทธ์เราจะมีจุดข้อมูลมากขึ้นในซีรีส์และพวกเขาจะลดลงอย่างช้าๆ ในทางกลับกันถ้าเราลดแลมบ์ดาเราจะบ่งชี้ว่าการสลายตัวที่สูงขึ้น: น้ำหนักจะลดลงอย่างรวดเร็วและเป็นผลโดยตรงจากการผุกร่อนที่รวดเร็วใช้จุดข้อมูลน้อยลง (ในสเปรดชีตแลมบ์ดาเป็นอินพุตดังนั้นคุณจึงสามารถทดสอบความไวได้) ความผันผวนโดยสรุปคือส่วนเบี่ยงเบนมาตรฐานของหุ้นและความเสี่ยงที่พบมากที่สุด นอกจากนี้ยังเป็นรากที่สองของความแปรปรวน เราสามารถวัดความแปรปรวนในอดีตหรือโดยนัย (ความผันผวนโดยนัย) เมื่อวัดในอดีตวิธีที่ง่ายที่สุดคือความแปรปรวนที่เรียบง่าย แต่ความอ่อนแอกับความแปรปรวนที่เรียบง่ายคือผลตอบแทนทั้งหมดจะมีน้ำหนักเท่ากัน ดังนั้นเราจึงต้องเผชิญกับข้อเสียแบบคลาสสิก: เราต้องการข้อมูลมากขึ้น แต่ข้อมูลที่เรามีมากขึ้นการคำนวณของเราจะเจือจางด้วยข้อมูลที่อยู่ไกล (ไม่เกี่ยวข้อง) ค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักที่ถ่วงน้ำหนัก (EWMA) ช่วยเพิ่มความแปรปรวนอย่างง่ายโดยกำหนดน้ำหนักให้กับผลตอบแทนเป็นงวด เมื่อทำเช่นนี้เราสามารถใช้ตัวอย่างขนาดใหญ่ แต่ยังให้น้ำหนักมากขึ้นกับผลตอบแทนล่าสุด (หากต้องการดูบทแนะนำเกี่ยวกับภาพยนตร์เกี่ยวกับหัวข้อนี้ไปที่ Bionic Turtle) เบต้าเป็นตัวชี้วัดความผันผวนหรือความเสี่ยงอย่างเป็นระบบของการรักษาความปลอดภัยหรือผลงานเมื่อเปรียบเทียบกับตลาดโดยรวม ประเภทของภาษีที่เรียกเก็บจากเงินทุนที่เกิดจากบุคคลและ บริษัท กำไรจากการลงทุนเป็นผลกำไรที่นักลงทุนลงทุน คำสั่งซื้อความปลอดภัยที่ต่ำกว่าหรือต่ำกว่าราคาที่ระบุ คำสั่งซื้อวงเงินอนุญาตให้ผู้ค้าและนักลงทุนระบุ กฎสรรพากรภายใน (Internal Internal Revenue Service หรือ IRS) ที่อนุญาตให้มีการถอนเงินที่ปลอดจากบัญชี IRA กฎกำหนดให้ การขายหุ้นครั้งแรกโดย บริษัท เอกชนต่อสาธารณชน การเสนอขายหุ้นหรือไอพีโอมักจะออกโดย บริษัท ขนาดเล็กที่มีอายุน้อยกว่าที่แสวงหา อัตราส่วนหนี้สิน DebtEquity Ratio คืออัตราส่วนหนี้สินที่ใช้ในการวัด Leverage ทางการเงินของ บริษัท หรืออัตราส่วนหนี้สินที่ใช้ในการวัดแต่ละ Repo นี้ให้ขั้นตอนวิธีการถ่วงน้ำหนักแบบถ่วงน้ำหนักเชิงตัวเลขหรือ EWMAs สั้น ๆ ขึ้นอยู่กับการพูดคุยพฤติกรรมเชิงปริมาณของเราผิดปกติ ภาพของแมว: Average Weighted Moving Average ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบเรียงซ้อนเป็นวิธีคำนวณค่าเฉลี่ยของตัวเลขเป็นตัวเลขตามจำนวนที่กำหนด หลังจากมีการเพิ่มค่าในชุดค่าเฉลี่ยแล้วน้ำหนักในค่าเฉลี่ยจะลดลงอย่างมากตามเวลาแทน นี่เป็นข้ออ้างเกี่ยวกับข้อมูลล่าสุด EWMA มีประโยชน์เนื่องจากเหตุผลหลายประการซึ่งส่วนใหญ่เป็นค่าใช้จ่ายในการคำนวณและค่าหน่วยความจำรวมทั้งความจริงที่ว่าพวกเขาแสดงถึงแนวโน้มของชุดค่านิยมล่าสุดของภาคกลาง อัลกอริทึม EWMA ต้องการปัจจัยการสลายตัวอัลฟา อัลฟาที่ใหญ่กว่าค่าเฉลี่ยจะมีความลำเอียงต่อประวัติล่าสุด อัลฟาต้องอยู่ระหว่าง 0 ถึง 1 และโดยปกติจะเป็นตัวเลขที่ค่อนข้างเล็กเช่น 0.04 เราจะพูดถึงทางเลือกของอัลฟาในภายหลัง อัลกอริธึมทำงานใน pseudocode: คูณเลขต่อไปในชุดข้อมูลโดย alpha คูณค่าปัจจุบันของค่าเฉลี่ยโดย 1 ลบ alpha เพิ่มผลลัพธ์จากขั้นตอนที่ 1 และ 2 และเก็บค่าเป็นค่าปัจจุบันใหม่ของค่าเฉลี่ย ทำซ้ำสำหรับแต่ละหมายเลขในชุด มีพฤติกรรมพิเศษสำหรับวิธีการเริ่มต้นค่าปัจจุบันและแตกต่างกันไประหว่างการใช้งาน วิธีหนึ่งคือการเริ่มต้นด้วยค่าแรกในชุดอีกค่าหนึ่งคือเฉลี่ย 10 ค่าแรกในซีรีส์โดยใช้ค่าเฉลี่ยเลขคณิตและจากนั้นเริ่มต้นการอัปเดตค่าเฉลี่ยที่เพิ่มขึ้นของค่าเฉลี่ย แต่ละวิธีมีข้อดีและข้อเสีย มันอาจช่วยให้มองไปที่มัน pictorially สมมติว่าชุดมีตัวเลขห้าตัวและเราเลือก alpha ให้เท่ากับ 0.50 สำหรับความเรียบง่าย นี่เป็นชุดที่มีตัวเลขอยู่ในละแวก 300 ซึ่งตอนนี้ให้ใช้ค่าเฉลี่ยเคลื่อนที่ของตัวเลขเหล่านี้ อันดับแรกเราตั้งค่าเฉลี่ยเป็นค่าของหมายเลขแรก ต่อไปเราจะคูณเลขถัดไปตาม alpha คูณค่าปัจจุบันโดย 1-alpha และเพิ่มค่าเหล่านี้เพื่อสร้างค่าใหม่ นี้จะดำเนินต่อไปจนกว่าเราจะทำ สังเกตว่าแต่ละค่าในชุดจะลดลงครึ่งหนึ่งของแต่ละครั้งที่มีการเพิ่มค่าใหม่และด้านบนของแถบในส่วนล่างของภาพจะแสดงขนาดของค่าเฉลี่ยเคลื่อนที่ เป็นแบบเรียบหรือต่ำผ่านเฉลี่ยของชุดเดิม พิจารณาค่าเฉลี่ยเคลื่อนที่แบบเลื่อนของหน้าต่างแบบเลื่อนลอย (ไม่ใช่ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแทน) ที่ค่าเฉลี่ยของตัวอย่าง N ก่อนหน้า อายุเฉลี่ยของแต่ละตัวอย่างคืออะไร N2 สมมติว่าคุณต้องการสร้าง EWMA ซึ่งตัวอย่างมีอายุเฉลี่ยเท่ากัน สูตรในการคำนวณอัลฟาที่จำเป็นสำหรับนี้คือ alpha 2 (N1) หลักฐานแสดงอยู่ในหนังสือการผลิตและการวิเคราะห์การดำเนินงานโดย Steven Nahmias ตัวอย่างเช่นถ้าคุณมีชุดเวลากับตัวอย่างหนึ่งครั้งต่อวินาทีและคุณต้องการให้มีค่าเฉลี่ยเคลื่อนที่มากกว่านาทีก่อนหน้าคุณควรใช้ alpha เท่ากับ. 032786885 นี้โดยวิธีการที่เป็นค่าคงที่อัลฟาที่ใช้สำหรับพื้นที่เก็บข้อมูล SimpleEWMA นี้ พื้นที่เก็บข้อมูลนี้มีการใช้งานของอัลกอริธึม EWMA สองชุดโดยมีคุณสมบัติต่างกัน implementations ทั้งหมดสอดคล้องกับ MovingAverage อินเทอร์เฟซและ constructor ส่งกลับชนิดนั้น การใช้งานปัจจุบันสมมติช่วงเวลาโดยนัย 1.0 ระหว่างตัวอย่างทุกตัวที่เพิ่ม นั่นคือเวลาผ่านไปจะถือว่าเหมือนกับว่ามันเหมือนกับการมาถึงของกลุ่มตัวอย่าง หากคุณต้องการการสลายตัวตามเวลาเมื่อตัวอย่างไม่ได้มาถึงอย่างแม่นยำในช่วงเวลาที่กำหนดแพคเกจนี้จะไม่สนับสนุนความต้องการของคุณในปัจจุบัน SimpleEWMA ออกแบบมาสำหรับการใช้หน่วยความจำและหน่วยความจำต่ำ จะมีพฤติกรรมที่แตกต่างจาก VariableEWMA ด้วยเหตุผลหลายประการ ไม่มีเวลาอุ่นเครื่องและใช้การสลายตัวตลอดเวลา คุณสมบัติเหล่านี้ช่วยให้ใช้หน่วยความจำน้อยลง นอกจากนี้ยังจะทำหน้าที่แตกต่างกันเมื่อมีค่าเป็นศูนย์ซึ่งถือว่าไม่ได้ตั้งใจดังนั้นหากค่าที่แท้จริงมีค่าเป็นศูนย์เป็นระยะ ๆ ค่าที่ไม่ใช่ศูนย์จะทำให้เกิดการกระโดดที่คมชัดแทนการเปลี่ยนแปลงเล็ก ๆ ซึ่งแตกต่างจาก SimpleEWMA ซึ่งสนับสนุนอายุที่กำหนดเองซึ่งต้องจัดเก็บไว้และใช้หน่วยความจำมากขึ้น นอกจากนี้ยังมีเวลาอุ่นเครื่องเมื่อคุณเริ่มเพิ่มค่าลงไป จะรายงานค่า 0.0 จนกว่าคุณจะเพิ่มจำนวนตัวอย่างที่ต้องการลงไป ใช้หน่วยความจำบางส่วนในการจัดเก็บจำนวนตัวอย่างที่เพิ่มเข้าไป ด้วยเหตุนี้จึงใช้หน่วยความจำ SimpleEWMA มากกว่าสองเท่า ดูเอกสารที่สร้างโดย GoDoc ที่นี่
No comments:
Post a Comment